575 liens privés
Règle 4
Aucune fonction ne doit être plus longue que ce qui peut être imprimé sur une seule feuille de papier, dans un format de référence standard, avec une ligne par instruction et une ligne par déclaration. En règle générale, cela signifie qu’il n’y a pas plus de 60 lignes de code par fonction.
Ayant parfois affaire à des fichiers Excel de quelques centaines de lignes, et parfois plusieurs dizaines de colonne, ça me rend fou.
Donc j'aime bien cette règle : maximum 60 lignes. À cela on peut ajouter une des règles du PEP-8 Python qui préconise pas + de 79 caractères par ligne.
Voir aussi la RFC 2223 qui indique :
3a. ASCII Format Rules
[…]
Each page must be limited to 58 lines followed by a form feed on a
line by itself.
Each line must be limited to 72 characters followed by carriage
return and line feed.
Cela donne un formatage un peu surprenant mais cela donne une bonne idée de ce qui est humainement révisable.
Édition 2024-09-26
Finalement ces « 10 règles pour écrire du code sécurisé » s'inspire/a inspiré les règles de codage du JPL de la NASA 👇
- Éviter les constructions de flux complexes, telles que goto et récursivité .
- Toutes les boucles doivent avoir des limites fixes. Cela évite de créer involontairement des boucles infinis.
- Éviter d'allouer de la mémoire sur la heap.
- Limiter les fonctions à une seule page affichable sur un écran.
- Utiliser un minimum de deux assertions par fonction.
- Limiter la portée des variables au plus petit possible.
- Vérifier la valeur de retour de toutes les fonctions non-void ou transformer en void pour indiquer que la valeur de retour est inutile.
- Utiliser le préprocesseur avec parcimonie.
- Limiter l'utilisation du pointeur à un seul déréférencement et ne pas utiliser de pointeur de fonction.
- Compiler avec tous les avertissements possibles actifs ; tous les avertissements doivent alors être pris en compte avant la publication du logiciel.
Je suis un boulet !
Je cherche depuis plusieurs minutes comment inverser les touches fonction Fn
et les Fx
: ma touche F11
qui me permet de passer en plein écran pour de nombreuses applications est affecté au « mode avion » (coupant le WiFi). Autant c'est pratique pour gérer la luminosité et le son d'accéder aux fonctions ; autant devoir utiliser une combinaison de toucher pour cela, et F2
(renommer des fichiers) ou F5
(actualiser une page), est contraignant.
Et en fait, cela ne se gère pas dans le système d'exploitation, mais directement au clavier en appuyant sur [Fn]+[Ver Fn]
. “facepalm”
Rien à voir avec le sujet, mais je ne l'avais pas ce raccourci clavier dans Windows : [Alt]+[Esc]
pour basculer entre les fenêtres mais sans le menu qui apparaît au milieu de l'écran avec un [Alt]+[Tab]
Bon dans Excel quand on veut défiler horizontalement avec la molette de la souris, il suffit d'appuyer en même temps sur les touches [Ctrl]+[Shift]
. Il me semble que dans LibreOffice, c'est un simple [Shift]
.
pour kinda remettre à zéro ubuntu
pour les applications
- afficher les dossiers cachés avec
[Ctrl]+[H]
- ouvrir les dossiers de chaque appli dans
~/(nom-application)
, et supprimer directement - idem éventuellement à
~/.config/(nom-application)
pour gnome
dconf reset -f /
Merci Parigot ; avec ma précédente fraîche installation de Lubuntu 22.04 sur une machine poussive, je ne comprenais pas pourquoi Firefox mettait autant de temps à se charger. J'ai maintenant un moyen de contournement :
sudo apt update && sudo apt upgrade -y
sudo apt install software-properties-common apt-transport-https -y
firefox --version
sudo add-apt-repository ppa:mozillateam/firefox-next -y
sudo apt-get update
sudo snap disable firefox
sudo snap remove --purge firefox
sudo apt autoremove firefox -y
Par contre, je ne comprends pas trop le principe des snap… entre ça et les AppImage et autres créations artistiques, on perd l'interopérabilité propre aux systèmes Linux :-(
- J'ai un fichier
.txt
, créé avec un simple éditeur dans Ubuntu. - J'ai écrit du contenu avec des
é
,è
,à
et autres caractères peu "standards". - En l'ouvrant avec
gedit
, je vois qu'il est bien encodé en UTF-8. - Par contre en l'envoyant en FTP sur mon serveur, je vois des
é
ou desè
en y accédant avec Firefox. - Pour résoudre cela, j'ouvre le fichier avec
ghex
, je passe en mode d'édition "insertion", et au tout début du fichier, j'ajoute les 6 caractères suivants (qui correspondent donc à l'UTF-8) :EFBBBF
. - Et « paf! ça fait des chocapic »
Wow ! Excellente technique.
C'est un exercice de calcul pour lequel je n'avais pas d'astuce.
Là ça passe par quelques étapes simples :
- Connaître le carré des chiffres de 0 à 9.
- Se rendre compte de l'effet miroir de l'unité autour du carré de 5.
- Utiliser cela pour apprécier le carré de l'unité+dizaine de notre devinette (A).
- Idem pour la centaine+millier (B).
- Si besoin de discriminer, on fait le carré de
(B)|5
qui s'estime avec(B) × (B)+1|5
.
(bon, faut voir la vidéo en vrai pour bien comprendre quand même)
Quelques astuces pour améliorer la vitesse dans Ubuntu-like :
- Réduire le
GRUB_TIMEOUT
, par défaut à 10, peut-être le réduire à 2 secondes. - Vérifier les applications lancées au démarrage, les désactiver voire leur ajouter un
sleep 30
pour qu'elles se lancent plus tard. - Installer le démon
preload
. - Utiliser un miroir pertinent pour les sources de logiciel ; et éventuellement utiliser
apt-fast
au lieu de deapt-get
; possiblement aussi désactiver le téléchargement des packages de langues additionnelles. - Installer
tlp
. - Utiliser un environnement plus léger : XFCD ou LXDE.
- Utiliser des applications alternatives plus légère.
Et pour cette dernière astuce, via, je me note à tester :
Ça c'est bien vrai ! Au perso j'utilise un Ubuntu ou équivalent depuis… 13 ans ? au perso cela fait peut-être 1 an, dans un contexte où personne ne se pose la question dans un cadre de « bureautique ». J'ai toujours un Dual Boot pour utiliser Word dans certains contexte ; mais pour le reste Windows ne me sert plus !
Reprise, traduction et commentaire de l'article
- Première impression : en effet, l'interface n'est pas homogène du tout et conserve des reliquats d'il y a 20 ans…
- On ne peut rien personnaliser : sur Ubuntu il est possible par exemple d'utiliser une police pour dyslexique sur l'ensemble des fenêtres…
- Les logiciels ne sont pas inter-connectables
- Les chemins stupidement long et incohérent : y'a encore besoin d'avoir un
C:/
?! Certes l'arborescence linuxienne n'est pas triviale, mais a du sens. - Variables d'environnements : /
- L'installation de logiciels : quelle plaie ! Même avec Ninite ou Chocolatey ce n'est pas aussi simple que du côte pingouin.
- Le terminal : /
- La récupération des paramètres au redémarrage : c'est pratique qu'Ubuntu (ou Mate) mémorise la position des fenêtres, dans les différents bureaux virtuels, parmi les écrans.
- Les bureaux virtuels : une fois que l'on y a goûté, c'est difficile de faire machine arrière.
- Les fenêtres sont toutes déplacées vers le moniteur principal après la mise en veille/arrêt : ah bah c'est ce que je disais avant …
- Pas de coller par clic-molette ; SSH : /
- Raccourcis clavier : clairement un point pour Buntu-world !
J'ajoute deux points que j'apprécie dans l'interface ubuntienne : pouvoir déplacer et redimensionner les fenêtres avec un [Alt]
+(clic souris — droit ou gauche)
; que la fenêtre sous le curseur de la souris prenne automatiquement le focus.
Après un joli freeze de mon interface, j'ai essayé de faire quelque-chose avec les tty. Mais n'ayant que peu l'occasion de l'utiliser, j'étais un peu démuni. Merci le smartphone :-)
Du coup :
- on trouve son premier télétype soit avec
[Ctrl]
+[Alt]
+[F1]
(c'est mon cas sur Ubuntu Mate) ou[Ctrl]
+[Alt]
+[F3]
; pour récupérer celui avec l'interface graphique c'est soit[F7]
, soit[F1]
. - pour voir « le monde », on peut faire un
who
ou untty
- et avec Korben (il a l'avantage d'être plutôt fiable selon sa hauteur dans les réponses d'un moteur de recherche), la commande
top
me revient - et on peut tuer un process avec
kill -9 <pid>
ou bien le recharger aveckill -1 <pid>
.
That's all folks!
Édition-2022-01-26T23:25 : puisque Seb m'envoie du trafic (PS : ça fait plaisir de voir que tu me lis toujours ;-) ), alors je vais me garder sous le coude ici ses astuces car je pourrais en avoir besoin ultérieurement :
Astuces supplémentaires:
htop est bien meilleur que top:
- touche "P" pour voir les processus qui consomment le plus de CPU
- "M" : même chose pour la mémoire vive
- "t" pour voir la hiérarchie des processus (qui a lancé qui).
- "H" pour afficher/masquer les threads des processus (je recommande de masquer)
- F3 pour rechercher un processus
- F4 pour filtrer les processus
- "k" pour tuer un processus. Envoyer d'abord 15 (SIGTERM) pour lui demande gentiment de s'arrêter. S'il n'obéit pas, le tuer avec un 9 (SIGKILL)
pkill nomduprocessus est plus pratique que kill (il a même l'auto-complétion: pkill st
te donnera steam) Quand tu as ton terminal avec CTRL+ALT+F1/F2/F3, si la machine n'arrive pas à te donner la mire de connexion, tu peux lui balancer un CTRL+ALT+SUPPR dans la tronche pour le forcer à rebooter (ça va quand même le forcer à flusher le cache disque).
Si par hasard ce sont les accès disque qui mettent la machine par terre, un "sudo iotop" te montrera les applications qui font le plus de lectures/écritures disque.
D'une manière général quand une machine ne répond pas bien, il s'agit de l'un des 4 goulots d'étranglement:
- le CPU
- la mémoire
- le disque
- le réseau
top/htop te permettent d'examiner la consommation CPU et mémoire.
iotop te permet de voir celle du disque.
pour le réseau, il y a nethogs.
Édition-2022-01-26T23:27, ah, on me glisse dans l'oreille que htop
, iotop
, et nethogs
nécessitent d'être installés au préalable ; ce n'est pas le cas (sur Ubuntu Mate 20.04) pour pkill
.
si je veux chercher toto
uniquement dans des fichiers markdown
de manière récursive (en parcourant les sous-dossiers) à partir du répertoire courant, alors :
grep -ir "toto" --include \*.md ./
(attention à la combinaison de 2 options -i
pour ignorer la casse et -r
pour récursif)
complète ceci
Quelques options utiles :
-i
pour ignorer la casseC 3
ou-3
pour ajouter 3 lignes de contexte-r coucou .
pour chercher récursivement (dans les sous-dossiers) à partir du répertoire couranthello *
pour chercher dans l'ensemble des fichiers du répertoire courantpwet monfichier.ext
pour chercher le texte dansmonfichier
uniquement
Pas mal ça !
Je prépare une présentation ; et évidemment je prends toutes mes notes au format markdown. Et Pandoc nous permet de l'exporter en une présentation html :
pandoc -t FORMAT -s Demo.txt -o Demo.html
where FORMAT is eithers5
,slidy
,slideous
,dzslides
, orrevealjs
.
J'ai pris mes notes brutes sans reformatage, et je dois dire que slidy m'offre un résultat satisfaisant. J'ai juste à reprendre un peu car chaque titre de niveau créé une nouvelle diapositive ; mais peut-être qu'une astuce me permettra facilement de mettre le contenu sur une seconde diapo…
Et il y a une autre solution avec beamer
To produce a PDF slide show using LaTeX beamer, type
pandoc -t beamer Demo.txt -o Demo.pdf
Mais il faut installer LaTeX, ce que je n'ai pas.
Edition :
Et ce Slidy est normé par le W3C : https://www.w3.org/Talks/Tools/Slidy2/#(1) . Je sens que je vais l'adopter !
Edition 2 :
Et paf ! Voilà que je découvre que Pandoc a documenté cette fonction. Maintenant en utilisant l'option --slide-level=3
à ma commande, je m'y retrouve.
J'ai donc : pandoc -t slidy --slide-level=3 -s in.md -o out.html
Je viens de lire sur la page d'ubuntu-fr ceci :
Youtube-dl étant actuellement en arrêt de développement, si le téléchargement ne fonctionne pas, utilisez yt-dlp.
J’atterris donc ici. Et procède à l'installation ainsi :
sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
Et pour récupérer une musique, mise à part la commande initiale qui varie, on garde la même syntaxe ; soit : yt-dlp -x --audio-format mp3 <url_de_la_vidéo>
Et un second livre sur des fondamentaux
Un premier wikibook qui m'a permis d'avoir des rappels sur la syntaxe concernant les sous-réseau.
ah bah c'est pas mal ça !
J'entends dans l'open space "ah mais tu peux pas installer WinMerge sur Linux". Ma réaction "utilise diff
", sauf que je me rend compte que je ne l'ai jamais vraiment utilisé.
Les 3 options à connaître :
diff un.txt deux.txt -c
pour ajouter du contexte. mais sur de gros fichiers, ce n'est pas forcément très lisible.diff un.txt deux.txt -u
pour un affichage unifié, à la suite (et avec du contexte), c'est à combiner avec l'ultime option :diff un.txt deux.txt --color
pour un rendu coloré
J'utilise souvent Meld mais là en mode rapide je vois que l'on a facilement moyen de s'en sortir !