OK donc ça part d'une bonne intention (uniforiser la liberté de panorama), et vlam retourné dans l'autre sens. Bon je pense pas que ça gênerait qui que ce soit de prendre des photos mais par contre si on tombait sur un chieur (style les éditions Moulin***), il aurait les mains libre pour exiger ce qu'il veut.
Pas super intuitif d'aller sur un host pour faire un graph qui regroupe des métriques de plusieurs machines mais y'a de la bonne doc donc on va pas se plaindre :)
Les fameux tunnels HE pour se connecter au monde IPv6 quand on est chez un FAI qui n'en fournit pas.
Sauf que là on vient de tester en mode BGP, bah ça juste marche direct du premier coup avec bird et leur conf d'exemple. Même pas drôle.
La seule "contraite" c'est d'écrire un mail pour prouver que c'est une demande legit et que t'opères bien les AS/préfixes pour lesquels la demande a été faite.
« Windows itself does not provide a API or option to allow the power pins of USB ports to be switched off. » :)
Donc on dirait que pour allumer / éteindre une LED alakon en USB, bah tu peux pas.
Quand on crée une dummy (ip link add type dummy), il charge automatiquement le module qui va bien. Sauf que le module créée de base dummy0. Et si la commande doit créer dummy0 elle aussi ? Eh bien, elle passe pas. Parce que dummy0 existe déjà ! Donc avant la commande, dummy0 existe pas et… la commande se plaint que dummy0 existe déjà :)
Pratique aussi pour aptitude -f install quand on est dans un chroot sur une machine qui boot plus.
Virer initctl :
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
Remettre :
rm /sbin/initctl
dpkg-divert --local --rename --remove /sbin/initctl
"On a BIOS/GPT configuration a BIOS boot partition is required. GRUB embeds its core.img into this partition."
Oui bref donc une seule partition pour tout le RAID5, ça passe pas. Heureusement, GPT demande apparemment 2048 secteurs vides pour aligner au début. Si on savait pas et qu'on a la flemme de refaire toute l'installation, on peut créer une mini-partition là-dedans (dans l'espace d'alignement), qui commence au secteur 63 et finit au 2047, en mettant le flag type qui va bien (4 dans fdisk). GRUB peut alors enfin poser tout ce dont il a besoin pour charger un empilement RAID/LVM.
Donc procédure complète de resize (agrandissement) de VM sans rebooter, avec ou sans LVM et avec ext4 (qui supporte l'agrandissement à chaud) :
Petit file/directory chooser ajax qui juste marche, tient en pas beaucoup de code que je comprends à peu près et a un connector en python.
Basé sur ce post, ici une ligne pour ajouter quelque chose dans le rc.local automatiquement en dernier (donc avant la dernière ligne qui a exit 0).
sed -i '$!{p;d;};i'"$COMMAND" /etc/rc.local
Pour éviter que dpkg pose des question ou les préconfigurer à l'avance. Pratique. Il y a aussi debconf-show.
Exemple :
debconf-set-selections <<< "debconf grub-pc/install_devices string /dev/vda"
… et oui ça marche, avec gdb on peut apparemment call une fonction, donc close(). Donc quand on a un bout de code mal foutu qui leak des FDs et qu'on a pas trop d'idée de comment le fix (pour le moment), on peut s'amuser et feel le power en les lui closant à la gueule directement en live. :)
Il faut le pid du programme en question (ça vous savez tous le trouver), et un fichier de commandes gdb pour pas se palucher à la main tous les 1023 - 3 FD. Attention bashisme ! :P
for ((i=3; i<=1023; i++)); do echo "call close($i)"; done > fixfds.gdb
gdb -p 4242 --command=fixfds.gdb --batch
Ah et pour voir les FDs ouverts, il suffit de regarder dans /proc/<pid>/fd
Un window recorder pour terminal, tout en texte. Y compris dans le replay, on peut toujours C/C, pas mal.
Voir s'ajouter les petits bonhommes un-à-un ça a quand même un côté impressionnant, même si on le sait.
Bon alors moi naïvement je croyais que hosts.{deny, allow} c'était un truc global au système, utilisé par la libc par exemple (comme resolv.conf quoi). Hé bin non. Uniquement par la libwrap des TCP wrappers.
Au moins apparemment sur RH-like, on a droit à un commentaire bien explicite au début de ces fichiers, sur du Debian j'ai rien vu d'évident, y compris dans le man hosts_access.
un mythe s'effondre
WinXP qui tente de réassigner la même IP en boucle sur toutes les interfaces ? Il se peut qu'il traine une conf débile dans un coin (et une conf en dur, genre reboot change rien). La commande miracles :
netsh int ip reset netsh.log
En gros ça clean plein de "trucs" et ça arrête de gueuler. Ne pas chercher. :)
Petit module python pour jouer avec les tar. Je voulais lire que un fichier d'un tar (le premier) sans tout parcourir. J'ai pas trouvé comment avec la commande tar normale (ou même avec du GNU tar) mais là en quelques lignes de python c'est bon !
Toujours dans le cadre de dev web @taff, un petit splitter en JS qui juste marche. Avé cookies pour retenir la position ! :)
J'aide à améliorer une interface web au boulot (deadline très proche). Du coup, petite astuce qui change la vie quand on veut bourriner des trucs dans le DOM en javascript : ici des options dans une datalist (pour un champ de recherche avec autocomplete).
Pour un set d'environ 4100 entrées, c'était juste pas possible avec des appendChild au kilomètre : UI complètement freezée avec Firefox, alerte que le script est peut-être dans les choux etc. Un workaround très simple est de travailler sur un "document fragment" qui permet de travailler en-dehors du DOM lui-même et est donc beaucoup plus efficace (forcément, le navigateur n'a pas à répercuter les modifications sur la page à chaque fois).
Du coup, créer un fragment, append dessus et l'append lui-même une seule fois dans la datalist change tout : ça devient quasi instantané !
Par ailleurs je craignais que l'autocomplete soit trop lent mais en pratique aucun soucis (testé avec jusqu'à 6000 entrées).