Lorsque j'ai lancé ce site, le premier jour de l'année 2009, il avait exactement le même aspect visuel qu'à ce jour. J'ai juste faite une parenthèse pour un Blackout à l'efficacité prévisible.

Ça fait presque huit ans sans changer. Huit ans en informatique, c'est long. Huit ans sur le web, c'est vraiment super long.

Pour vous donner une idée, au moins à ceux à qui ça parle, à l'époque j'avais hésité à utiliser la propriété CSS max-width pour la zone de contenu centrale (où devrait se trouver le présent texte, si vous le lisez sur mon site), pour finalement renoncer parce que ce n'était pas assez largement supporté à mon goût.

Du coup je suis en train d'envisager un sérieux relooking du site, en prenant en compte les dernières avancées du design fluide, ou liquide, ou visco-plastique (c'est dur se maintenir à la page).

Mais ces dernières avancées impliquent de laisser sur la route les navigateurs les plus anciens. Quelle proportion de mon lectorat cela représente-t-il ? Difficile à évaluer, surtout que c'est le lectorat futur qui sera impacté qu'il faudrait mesuré, et non pas celui qui a laissé une trace dans mes logs.

Si je pouvais faire du A/B testing comme c'est la mode, je le ferai, mais je ne vois même pas quelle métrique utiliser pour évaluer un design.

L'évaluation la plus efficace, c'est vous demander votre avis, ce que je fais au travers du présent billet.

J'ai donc mis mon nouveau design comme feuille de style alternative sur toutes les pages, pour que vous puissiez essayer, tout en gardant le style traditionnel pour ne pas effrayer les nouveaux (au cas où le nouveau style soit effrayant).

Avec Firefox, il suffit d'aller chercher le « Thème en développement » dans le sous-menu « Style de la page » du menu « Affichage », comme ceci :

Capture d'écran dans firefox

On pourrait objecter que c'est chiant de devoir remettre le style à tester à chaque fois qu'on change de page, on pourrait préférer un autre navigateur qui ne permet pas de choisir une feuille de style alternative (par exemple Chrome).

Dans ce cas, je propose de visiter beta.instinctive.eu à la place d'instinctive.eu, avec la mise en garde que comme son nom l'indique, c'est mon site en bêta, donc parfois il n'est pas disponible pendant que j'essaye des nouveaux trucs. Et je n'ai pas d'alerte sur les éventuels commentaires ajoutés sur le site bêta, et ils peuvent être perdus à la prochaine synchronisation avec le site en production, donc faites attention à bien poster les commentaires sur le bon site.

Je vous remercie par avance pour tous les retours sur ce nouveau style, aussi bien de ce qu'il vaut par rapport à l'ancien ou de conseils pour l'améliorer encore plus.

Et si la mise en forme ne marche pas sur un navigateur, ça m'intéresse aussi de le savoir, pour éventuellement le corriger, ou au moins le dégrader avec grâce.

Note : je tiens à démentir toutes les folles rumeurs qui prétendent que ce changement de design n'aurait rien à voir avec l'âge du site ou les avancées graphiques, et ne serait dû qu'à mon ras-le-bol de me taper la marge de 35ex sur un écran de quatre pouces. Ces allégations relèvent de la médisance.

Merci encore d'avance pour vos avis.

Posted Sun Sep 25 18:37:49 2016

fibres-deau

Posted Sun Sep 18 12:19:40 2016

Gilet en denim

Vous ne voyez pas le sac à main ? C'est le but !

Contexte et motivations

J'ai déjà développé l'idée de l'Everyday Concealed Carry et mes motivations dans un billet passé.

Pour résumer, le pays dans lequel je vis est secoué par des gens terrorisés à l'idée de perdre les prochaines élections ou de se voir reproché de n'avoir pas agi ostensiblement. Donc ils gesticulent de façon à pourrir la vie d'un maximum de gens, stratégie infaillible pour que les gens en question remarquent que quelque chose est fait.

Il vaut mieux pomper même s'il ne se passe rien que de risquer qu'il se passe quelque chose de pire en ne pompant pas.

Devise des Shadoks

Le truc à la mode semble être de s'attaquer aux « sacs et bagages », qui offre un large public à emm*rder en soulevant très peu de critique. Au point que j'ai souvent l'impression qu'il n'y a que moi que ça gêne.

Donc pour minimiser les conséquences négatives de ce théâtre sécuritaire, il faut se retenir de démontrer par l'exemple à quel point la sécurité est pathétique, et juste passer sans sac visible.

Conception

Comment transporter toutes les petites choses qui facilitent tellement mon quotidien sans un sac pour les contenir ?

Avec des poches.

Mais les vêtements féminins ne sont pas très portés sur les poches. De façon plus générale, les éléments sont principalement des contraintes affichées pour montrer qu'on peut vivre avec (et/ou des amplifications de caractères sexuels féminins). Donc plutôt chercher un tas de poches dédiés.

J'avais fait quelques essais avec des conteneurs à la ceinture, mais je n'étais satisfaite ni de la capacité ni de l'esthétique.

Restent les tas de poches comme ceux qu'utilisent les pêcheurs, les photographes, les militaires, bref tous les gens qui ont leur tas de petites choses qui facilitent tellement leur activité : rassembler les poches sur un gilet.

Mais pour le côté concealed, et pour limiter les vols, j'ai préféré mettre les poches à l'intérieur du gilet, car je cherche à ne pas donner l'impression visuelle d'avoir un sac, et non pas à rendre mon équipement plus facile d'accès que dans un sac.

Je suis donc partie de l'idée de faire un haut tout ce qu'il y a plus basique, en surestimant mon tour de taille de 6 cm (un peu moins en fait, parce que le dos n'est pas chargé) pour avoir deux centimètres d'épaisseur pour le contenu des poches.

Contenu

Voici donc une photo du côté intéressant de la bête (ou cliquez dessus pour en voir une version plus grande) :

Intérieur du gilet

On y retrouve presque tout mon EDC version 2016 (sans la partie « travail »), avec même la place pour y mettre quelques mètres de paracord, un minimum de maquillage, une batterie USB, une torche et des mouchoirs en papier.

Le principal manque est le lecteur de e-books, pour lequel je n'ai pas trouvé de position satisfaisante sur le gilet : il y a trop de courbures sur mon corps pour un rectangle rigide aussi grand. Et même pour le carnet c'est limite, à force d'être à ma taille il est un peu gondolé, même si le renforcer avec ma carte d'identité a beaucoup limité cet effet.

Un manque moins évident est le sifflet. Si je pourrais facilement lui trouver une place, le but n'est pas seulement de le transporter, mais de pouvoir s'en servir en situation d'urgence. Il faut donc qu'il soit facile d'accès avec n'importe quelle main et dans le plus de positions possibles. J'avais pensé a une petite poche de poitrine, comme sur les chemises, mais elle devrait trop bailler pour que je trouve ça esthétiquement acceptable. Je cherche encore une solution pour ça‥

Au quotidien

Après l'échec cuisant des poches sur ceinture, ma plus grosse crainte était qu'après avoir mis tout ce temps et tous ces efforts dans un gilet, il se révèle inutilisable.

À ce niveau, c'est un succès : c'est aussi pratique et confortable qu'un sac à main. Évidemment, ça ne dispense pas de sac pour transporter le lecteur d'e-book, ou alors il faut le prendre à la main, ce qui est nettement pratique qu'un sac. Mais si j'accepte de me passer du lecteur, c'est aussi confortable qu'un sac à dos, avec le poids largement réparti sur les deux épaules, c'est aussi pratique qu'un sac en bandoulière ou à l'épaule pour accéder aux objets, et c'est plus rassurant que tous les sacs que j'ai connus vis-à-vis du risque de vol.

La seule difficulté que j'ai rencontré dans le port, c'est que j'ai vu un peu large pour le tour de taille ou la marge à y ajouter, et le gilet flottait au niveau de la taille, où sont tous les objets. Environ 1.5 kg mal attaché, c'est super pénible pour courir ou sauter. J'ai arrangé ça avec deux pinces dans le dos, mais c'est encore un tout petit peu trop large, surtout si je perds encore du poids.

Il y a une autre difficulté, lorsque je l'enlève : toutes les poches sont ouvertes, et les objets ont tendance à glisser en dehors des poches si le gilet n'est pas posé et déplacé avec précaution. Je cherche encore une bonne façon de résoudre ça sans rendre pénible l'utilisation des poches.

Au niveau de la résistance au théâtre sécuritaire, c'est aussi un franc succès. J'ai croisé un bon nombre de vigiles plus ou moins agressifs envers les sacs, et aucun ne s'est intéressé à moi.

Je n'ai pas encore eu l'occasion de tester l'effet du gilet face à un dispositif pseudo-sécuritaire plus flashy, genre avec un portique et un scanner de valises.

Enfin, une crainte que j'avais était que le denim épais, choisi pour encaisser le poids des objets et ne pas trop se déformer, soit trop chaud. Il est de fait que ce n'est pas super-agréable à porter pendant les canicules, mais en même temps ce n'est pas tellement pire qu'un sac à dos. Et concrètement, les températures me semble si rapidement insupportables qu'il n'y a que très peu d'occasions où je vivrais significativement moins mal sans le gilet qu'avec, même au plus chaud de l'été.

La dernière question en suspens, c'est comment ça va se passer en hiver, en dessous d'une veste.

Chroniques de la construction

Je ne sais plus où j'ai entendu qu'une journée au cours de laquelle on n'a rien appris est une journée perdue, mais je suis d'accord avec cette philosophie, donc j'ai expérimenté quelques nouvelles choses au cours de la confection de ce gilet.

D'abord, c'est la première fois que je fais un haut sans patron. Je n'ai pas vraiment fait de modélisme dans les règles de l'art, avec la construction du patron. J'ai directement tracé et découpé le tissu final, en re-mesurant et en ajustant le tir en cours de route. Avec des surplus de couture énormes, il y avait quand même des ajustements énormes (jusqu'à une dizaine de centimètres), j'ai eu de la chance de m'en sortir sans remplacer de pièce.

Ensuite, comme je m'attendais à ce que les pinces soient pénibles avec les poches qui s'y trouvent, j'ai fait pour la première fois les coutures courbes de la coupe princesse. Je m'attendais à ce que ce soit difficile, et finalement pas tant que ça. Mais du coup je n'ai pas essayé la couture courbe à la surjeteuse, que j'imagine quand même un cran au dessus en termes de difficulté.

J'ai été agréablement surprise de voir que six épaisseurs de denim ne posent pas trop de problème à la surjeteuse, à condition de ne pas utiliser le moteur et de tourner à la main. Sinon, même avec seulement trois épaisseurs, le fil de l'aiguille gauche casse très rapidement. Je ne comprends toujours pas pourquoi. On trouve pas mal d'explications sur un fil de boucleur qui casse, mais sur les aiguilles ça a l'air plus rare.

Enfin, j'ai pour la première fois usé une aiguille jusqu'au bout. C'est intéressant de voir les signes avant-coureurs, parce que sur du tissu moins robuste que du denim ça pourrait très mal se finir.

Pour se faire une idée des coûts, comme d'habitude la main d'œuvre l'emporte largement sur tout le reste. J'ai passé un peu plus de 53 heures sur ce projet, dont 3 heures sur les mesures et le design, 28 heures pour faire le gilet en lui-même, et 22 heures pour construire et assembler les poches.

Conclusion

Ça a été un sérieux investissement de ma part, et je suis plutôt contente du résultat.

Je crois que je préfère légèrement avoir un sac à main, pour la flexibilité supplémentaire du non-EDC qu'il peut transporter. Mais tant que les inepties du coup d'état d'urgence permanent dureront (j'imagine à peu près aussi longtemps que Vigipirate), c'est une alternative tout à fait à mon goût.

Je me pose juste quelques question sur l'image qu'envoie le port d'un gilet en denim comme ça. Qu'en pensez-vous ?

J'essayerais bien d'en faire un homologue dans un tissu plus classe, et/ou plus steampunk, mais je me demande vraiment quel autre tissu supporterait les contraintes mécaniques sans être trop chaud. Auriez-vous une idée ?

Avez-vous d'autres astuces pour continuer à vivre malgré les terrorisés qui ont trop de pouvoir ?

Posted Wed Aug 31 23:52:39 2016

Il y a presque six ans, j'ai publié Clonage de FreBSD, qui rassemble mes notes sur la fabrication d'un disque bootable à partir d'un FreeBSD existant, en branchant le futur disque système cible comme une unité de stockage externe sur le système hôte.

Depuis je me suis servie moult fois de ces notes, dont un fois pas plus tard qu'il y a deux semaines, pour l'arrivée de Tsuiraku. J'ai vu au fil du temps mes pratiques s'écarter de mes vieilles notes, À tel point qu'il m'a semblé utile cette fois-ci de refaire un billet avec la dernière version de la procédure et mes commentaires sur l'évolution depuis mon billet précédent.

Ce billet ne suppose pas la lecture du billet d'il y a six ans, par contre des notions de gestion ou d'administration système FreeBSD seront nécessaires.

Rappel du contexte

J'ai donc machine cible, en l'occurrence Tsuiraku, qui existe matériellement mais qui n'a pas encore de système d'exploitation.

J'ai aussi une machine hôte, en l'occurrence Yulai, qui fonctionne sous FreeBSD, qui a accès à internet et sur laquelle est branché le disque système de la machine cible, en tant que stockage externe, qui se trouve être /dev/da0.

Une particularité de Tsuiraku est d'être refroidi passivement. Pour faciliter la circulation d'air, j'utilise une clef USB comme disque système, au lieu d'utiliser l'emplacement 2.5" au dessus du processeur.

(Re)partitionnement du disque

Il y a six ans, je créais le pool directement sur le disque, en suivant des recommandations venues de Solaris, ce qui revient à sauter cette étape. Non seulement ce n'est pas utile pour FreeBSD, mais parfois ça pose des problèmes au niveau de la swap et/ou du bootloader.

# gpart delete -i 1 da0
# gpart destroy da0

La clef USB cible était livrée pré-formattée, donc il a fallu détruire la partition existante avant re répartir sur des bases saines.

# gpart create -s gpt da0
# gpart add -s 64K -t freebsd-boot da0
# gpart add -s 4G -t freebsd-swap -l swap1 da0
# gpart add -t freebsd-zfs -l disk1 da0

Il y a six ans je copiais sauvagement le booloader à coups de dd, mais comme j'utilise maintenant gpart, autant le faire à ce stade avec les autres commandes gpart:

# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0

Notons cependant que cette commande installe le bootloader de l'hôte. Dans mon cas ce n'est pas un problème, car l'hôte et la cible sont tous les deux des 10.3-RLEASE, mais une différence significative pourrait justifier de télécharger les tarballs avant ce stade pour utiliser un bootloader cohérent avec le reste du système.

Chiffrement du disque

Philosophiquement, je suis de plus en plus partisane du chiffrement généralisé de mes supports de stockage, si possible avec un bouton « panique » qui coupe le courant et/ou détruit la clef, et/ou un jeux de mots de passe qui détruisent la clef au lieu de déchiffrer, et/ou des zones chiffrées niables

En pratique, c'est une image expérimentale pour une machine dont j'ignore les performances de chiffrement, donc autant expérimenter sur un système en clair.

D'autre part, je peux imaginer plusieurs scénarios où je serais contente de voir cette machine redémarrer complètement après une coupure de courant, sans intervention physique de ma part. J'imagine que ça se résoudrait avec le système d'exploitation en clair et le home chiffré, mais ça rend beaucoup plus difficile de s'assurer que des informations importantes ne se retrouvent pas dans la zone en clair.

Bref, j'ai couardement laissé tomber le chiffrement dans cette procédure, mais j'écris ce paragraphe pour me rappeler de ce problème à chaque fois que je verrai ces notes. Je mettrai à jour cette section quand j'aurai une solution satisfaisante.

Création du système de fichiers

J'ai pas mal changé le partitionnement. J'ai cherché l'intérêt de découper base, et faute de le trouver j'ai tout simplement arrêté. Je suis donc repartie de mes besoins et mes usages pour justifier mes découpages.

# zfs create ztsuiraku/root
# zfs create ztsuiraku/root/usr.local
# zfs create ztsuiraku/root/usr.local/db
# zfs create ztsuiraku/root/var
# zfs create ztsuiraku/root/var/log
# zfs create ztsuiraku/home
# zfs create ztsuiraku/home/nat
# zfs create ztsuiraku/reserve

D'abord, je veux séparer le système d'exploitation de mes données perso', pour pouvoir changer le premier sans toucher au second, et sauvegarder le second sans gaspiller des ressources sur le premier. D'où root et home.

home est découpé par politique de sauvegarde et d'utilisation, soit en première approximation par utilisateur.

root contient essentiellement le système de base, et je laisse tout ensemble pour les systèmes de courte espérance de vie, par exemple ma 11.0-BETA1.

Sinon son premier découpage est les répertoires demandant une politique spéciale, comme nosetuid ou un quota. En gros, /tmp, /var/tmp et /var/log. Je n'ai pas mis les tmp ici à cause du support clef USB, ils seront en mfs à la place.

Je sépare aussi les ports du système de base, avec root/usr.local qui sera monté sur /usr/local et root/usr.local/db monté sur /var/db/pkg. L'idée est de pouvoir snapshot et rollback des ports, par exemple lors de l'expérimentation de nouvelles options ou d'une nouvelle version à proposer. On m'a confirmé que ça ne suffit pas forcément, les ports peuvent faire à peu près n'importe quoi n'importe où, mais c'est ce qu'on peut faire de mieux sans snapshot tout root (ce qui reste possible avec cette construction).

J'ai re-séparé /var pour essayer une politique particulière décrite plus bas.

Enfin, ZFS a de gros problèmes quand le pool est presque plein. Il parait que c'est le cas avec tous les systèmes de fichiers qui essayent d'éviter intelligemment la fragmentation, mais j'ai cru comprendre que c'est encore pire avec ZFS. Pour éviter de trop remplir le pool, j'ajoute un FS vide auquel 10% du pool sont réservés.

J'imagine que j'aurais pu créer les fs directement avec les options ci-dessous, mais je préfère les lignes plus courtes et les explications séparées.

# zfs set compression=on ztsuiraku/home
# zfs set compression=on ztsuiraku/root
# zfs set compression=gzip-9 ztsuiraku/root/var/log

La compression, c'est bien et ce n'est pas cher. Enfin, j'espère. Je ne sais pas trop ce que ça donne sur un Celeron basse puissance, mais j'espère que c'est encore valable, surtout avec un système sur USB.

Je ne sais pas à quel point gzip-9 l'emporte sur simplement on quand on est certain d'avoir majoritairement du texte, comme c'est le cas pour /var/log.

# zfs set sync=disabled ztsuiraku/root/var

Il parait que désactiver la synchronisation sur /var aide les performances des systèmes sur clef USB. Ça me semble quand même plutôt dangereux, mais en même temps je ne sais as ce qui utilise vraiment /var, donc je suppose que je vais le découvrir à l'usage.

# zfs set reservation=3G ztsuiraku/reserve

La réserve pour empêcher le pool de dépasser 90% d'utilisation. Je me demande si je pourrais garantir la non-utilisation du FS en ajoutant un quota nul ou très faible, mais pour en vérifier l'efficacité il faudrait une expérimentation trop pénible à mettre en œuvre. Déjà que je n'ai jamais été en situation de vérifier que la réservation fonctionne bien…

Installation et configuration de FreeBSD

Il y a six ans, il était de compilation, en plus d'installation et de configuration. Ça ne m'amuse plus vraiment de compiler, et les paquets binaires aussi bien que les mises à jour binaires ont fait leurs preuves depuis.

Donc je ne compile plus, je télécharge directement les binaires.

# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/10.3-RELEASE/base.txz
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/10.3-RELEASE/doc.txz
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/10.3-RELEASE/kernel.txz
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/10.3-RELEASE/lib32.txz

# tar -xvC /ztsuiraku/root -f base.txz
# tar -xvC /ztsuiraku/root -f doc.txz
# tar -xvC /ztsuiraku/root -f kernel.txz
# tar -xvC /ztsuiraku/root -f lib32.txz

Il faudrait sans doute que j'ajoute entre le téléchargement et l'extraction une étape de vérification des archives. Je pense sincèrement que ce n'est pas de la paranoïa que de faire cette vérification avec ce que l'on sait du monde actuel. Par contre ça demande de réfléchir fort à comment vérifier utilement, donc un modèle d'attaquant et tout et tout. La flemme l'emporte, et je mets un paragraphe pour me rappeler de le faire à chaque fois que je relirai ces notes, au lieu de le faire tout de suite.

Pour la configuration, il y a six ans je n'avais mis que la liste des fichiers à modifier, mais j'ai trouvé pénible de réinventer à chaque fois leur contenu, donc cette fois que vais le mettre avec.

# cat >/ztsuiraku/root/boot/loader.conf <<-EOF
vfs.root.mountfrom="zfs:ztsuiraku/root"
zfs_load="YES"
kern.hz=100
EOF

Du full ZFS classique, avec un kern.hz pour une utilisation interactive et basse consommation.

# cat >/ztsuiraku/root/etc/rc.conf <<-EOF
hostname="tsuiraku"

ifconfig_DEFAULT="DHCP"

devfs_system_ruleset="localrules"

kld_list="aesni coretemp"
ntpd_enable="YES"
ntpdate_enable="YES"
sendmail_enable="NONE"
sshd_enable="YES"
tmpmfs_enable="YES"
tmpsize="1g"
zfs_enable="YES"
EOF

Pour celui-là, j'ai un peu triché, parce que je n'avais aucune idée du type d'interface réseau dans la machine avant le premier boot, donc en fait la ligne ifconfig_re0 a été ajoutée dans un deuxième temps.

Correction : on peut arranger ce problème de divination en mettant ifconfig_DEFAULT au lieu de ifconfig_re0, et j'ai mis à jour le code ci-dessus dans ce sens. Mille mercis à Olivier de me l'avoir soufflé et de m'avoir rappelé qu'il faut charger aesni explicitement (même si en fait le Celeron J1800 de Tsuiraku n'a pas le support).

En plus des mes trucs habituels, il y a le tmpmfs que j'ai évoqué plus haut. J'ai mis 1g plus ou moins au hasard, je verrai à la longue si c'est trop peu (et peut-être si c'est trop, quoique ça risque d'être moins facile à percevoir).

Ajout : J'ai désactivé sendmail dans le rc.conf ci-dessus, mais je n'ai jamais tenu compte des conséquences de l'absence de MTA sur mes machines de bureau, surtout par rapport à periodic.

# mkdir /ztsuiraku/root/var/log/periodic
# cat >/ztsuiraku/root/etc/periodic.conf <<-EOF
daily_output=/var/log/periodic/daily-$(date +%F).log
weekly_output=/var/log/periodic/weekly-$(date +%F).log
monthly_output=/var/log/periodic/monthly-$(date +%F).log
daily_status_security_inline="YES"

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

daily_scrub_zfs_enable="YES"
daily_status_smart_devices="AUTO"
EOF

Le premier bloc élimine toutes les sorties par e-mail, et concentre tout dans /var/log/periodic. Le deuxième bloc recopie bêtement les recommandations pour ceux qui n'utilisent pas sendmail comme MTA. Il faudra d'ailleurs que je vérifie comment ça évolue avec l'arrivée de DMA dans base. Le dernier bloc contient mes ajustements personnels : un scrub et un test SMART périodiques. Même si en vrai, la clef USB de Tsuiraku n'a pas l'air de supporter SMART, donc je n'ai pas mis la dernière ligne, et j'hésite à augmenter l'intervalle entre deux scrubs, mais il me semble que c'est surtout de la lecture, donc ça ne devrait pas trop user la clef. Fin d'ajout

# cat >/ztsuiraku/root/etc/devfs.rules <<-EOF
[localrules=5]
add path 'da*' mode 0660 group operator
EOF

# cat >>/ztsuiraku/root/etc/sysctl.conf <<-EOF
vfs.usermount=1
hw.acpi.cpu.cx_lowest=C3
dev.cpu.0.cx_lowest=C3
dev.cpu.1.cx_lowest=C3
EOF

Le usermount standard, et l'activation des gros C-states pour continuer dans le thème basse consommation.

# cat >/ztsuiraku/root/etc/fstab <<-EOF
/dev/da0p1                      none            swap    sw 0 0
ztsuiraku/root/var              /var            zfs     rw 0 0
ztsuiraku/root/var/log          /var/log        zfs     rw 0 0
ztsuiraku/root/usr.local        /usr/local      zfs     rw 0 0
ztsuiraku/root/usr.local/db     /var/pkg/db     zfs     rw 0 0
EOF

C'est parfois un peu fastidieux de mettre tous les systèmes de fichiers dans /etc/fstab, mais je n'ai pas trouvé d'autre façon de changer facilement de système de base. Comme /etc/fstab est dans /, il suffit de changer le bootfs du pool pour passer sur une autre base. Avec tout ce que j'ai jonglé entre la 10.3-RELEASE, les 11.0-BETA et les CFT, je suis plutôt contente d'avoir fait comme ça.

Ajout :

# cat >/etc/syslog.conf <<-EOF
*.err;kern.warning;auth.notice;mail.crit                /dev/console
*.*     @172.22.0.2
EOF

Dans le cas particulier de Tsuiraku, qui sera éventuellement amené à se reproduire donc je le note ici, je préfère envoyer les logs système sur le réseau local plutôt que de les écrire sur la clef, donc j'ai piqué le syslog.conf d'un nanoBSD. Fin d'ajout

# mv -i /ztsuiraku/root/var/tmp{,-no}
# ln -s /tmp /ztsuiraku/root/var/tmp

Je n'ai jamais vraiment compris la différence entre /tmp et /var/tmp. Plutôt que de faire deux mfs, j'ai juste fait un lien symbolique, en gardant de côté le /var/tmp que les tarballs ont peuplé, des fois qu'en fait il soit vraiment utile. Là c'est de l'expérimental pur, je consignerai par ici mes éventuelles mauvaises expériences.

# chroot /ztsuiraku/root /bin/sh
passwd
tzsetup

Il y a peut-être une façon plus propre d'initialiser le mot de passe root et le fuseau horaire, ou peut-être simplement le faire après le premier boot. Pour l'instant je n'ai pas encore essayé autrement, c'est pareil qu'il y a six ans.

Rendre le disque dur bootable

J'ai déjà mis le bootloader dans une section précédente, donc je passe directement à la suite.

# zpool export ztsuiraku
# zpool import ztsuiraku
# cp -i /boot/zfs/zpool.cache /ztsuiraku/root/boot/zfs/

En vrai je n'ai pas fait l'export suivi de l'import, et j'ai été obligée de remettre à la main le mountfrom au boot suivant. Je ne sais pas s'il y a un lien de cause à effet, ou si j'ai eu une lenteur d'énumération de l'USB (da0 est apparu après le prompt) pour une autre raison. Dans le doute, je laisse l'export/import dans ces notes.

# zpool export ztsuiraku
# zpool import -R /zt ztsuiraku
# zfs set mountpoint=legacy ztsuiraku/root
# zfs set mountpoint=none ztsuiraku/reserve
# zfs set mountpoint=/home ztsuiraku/home
# zpool set bootfs=ztsuiraku/root ztsuiraku

Retour vers la cible

À ce stade, le disque est prêt, au petit détail près qu'il faut réussir à le débrancher de l'hôte pour le remettre dans la machine. Je n'ai toujours pas trouvé de solution satisfaisante.

Exporter le pool empêcher de démarrer dessus, arracher violemment pose de gros problème de cohérences des FS.

On m'avait suggéré de démonter tous les FS, et d'arracher ensuite, ce qui casse le pool du point de vue de l'hôte. Ça marche bien dans la machine cible, mais l'hôte se retrouve avec un pool fantôme, et tous mes essais pour le faire disparaitre ont soit été vains, soit aboutis à une commande qui ne termine pas (parfois même entrainant toutes les commandes zfs avec elle).

Reste éteindre complètement l'hôte avant de transplanter le stockage. C'est pénible, mais c'est propre.

Epilogue

Comme pour le contenu des fichiers à configurer, j'ai plusieurs fois regretté ne pas avoir dans mes notes les première commandes à faire sur la cible.

# pkg install tmux zsh vim-lite fossil smartmontools

Les outils de base.

# pw useradd -n nat -u 1001 -G wheel,operator -s =zsh

La commande que j'ai le plus de mal à retrouver, et que je ne semble pas capable d'assimiler (faute de m'en servir suffisamment souvent ?).

# pkg install pekwm rxvt-unicode xorg-server xinit xrdb xmodmap xauth xrandr setxkbmap conky xf86-input-{keyboard,mouse} xf86-video-intel

Le minimum pour avoir une interface graphique à mon goût.

Posted Fri Jul 29 21:27:56 2016

canornitorynque

Posted Sun Jul 10 22:19:16 2016

Impressions_cygnées

Posted Sun Jul 10 11:31:28 2016

Hier, j'étais très très inquiète pour mes ressources informatiques pendant quelques heures – les joies de les gérer soi-même au lieu de sous-traiter au Cloude. En voici l'histoire et son dénouement heureux (pour une fois).

Un observateur attentif de mes machines aura remarqué que beaucoup d'entre elles fonctionnent avec FreeBSD. Et en fait même la totalité de celles que j'utilise régulièrement depuis des années.

FreeBSD a la bonne idée de fournir par défaut un système nommé periodic, qui lance à intervalles régulier des scripts et envoie par e-mail l'éventuelle sortie de ces scripts.

C'est ainsi que tous les jours je reçois un rapport, qui ne contient généralement rien d'intéressant (ce qui est une bonne chose), mais que je lis quand même soigneusement, au cas où.

Une des raisons pour lesquelles j'aime beaucoup cet e-mail est qu'il quitte le serveur qui l'a généré juste après sa génération, de sorte que des éventuels indices d'un piratage (qui auraient subsisté jusqu'à la génération du rapport) ne puissent plus être effacés ou maquillés (à moins de pirater en plus le serveur mail, ou la machine où je les lis, rien n'est infaillible mais ça aide à rendre l'attaque trop chère pour mes ennemis).

Hier, j'ai eu la malheureuse idée de dépiler mes e-mails à une heure déraisonnablement tardive, mais j'ai quand même lu soigneusement le rapport de la veille (mercredi, donc).

Quelle ne fut pas ma surprise de trouver, au milieu des banalités habituelles, les lignes suivantes :

rebma login failures:
Jun 22 20:07:05 rebma sshd[1023]: error: PAM: authentication error for root from ███.███.███.███
Jun 22 20:07:08 rebma sshd[1023]: error: PAM: authentication error for root from ███.███.███.███

En réalité, ce n'est pas tout à fait ça que j'ai vu, il y avait une vraie adresse IP numérique à la place de ███.███.███.███, mais je préfère ne pas la publier.

Que quelqu'un cherche à se connecter sur le compte root de mon serveur dédié Rebma ne m'étonne pas plus que ça, ma première réaction a plutôt été l'étonnement de ne pas en voir d'habitude.

Cependant, je me suis rapidement rendue compte que l'adresse IP numérique (que j'ai censuré ici) me disait quelque chose. Après vérification, il s'agit bien d'une machine que je contrôle.

Ou du moins, que je croyais contrôler, parce que je suis certaine de ne pas avoir essayé de me connecter où que ce soit mercredi soir vers 22h (le log de Rebma est en UTC).

Par acquis de conscience, j'ai quand même vérifié, des fois qu'un Alzheimer ou un coup à la Medivh me guette, et les logs sont formels, je ne me suis connectée nulle part mercredi soir.

Donc pour résumer, quelqu'un qui n'est pas moi a essayé de se connecter par SSH au compte root de Rebma, depuis une machine que devrais être la seule à contrôler, et sur laquelle il y a un .ssh/config qui décrit le compte root de Rebma et la clef (chiffrée) pour s'y connecter. Je vois difficilement plus clair comme symptôme qu'on s'est fait trouer.

Et évidemment, ça ne peut pas arriver un jour où on est en forme et où on a du temps. Il faut que ça arrive à 1h du matin, alors qu'on est ivre de fatigue depuis au moins 22h, et que le moral n'est pas vraiment à son maximum.

J'ai quand même fait le tour des processus et des logs locaux, sans rien trouver d'anormal. J'ai remonté quelques jours dans le passé, toujours rien.

Donc non seulement je me suis fait trouer, mais en plus par un ennemi qui nettoie bien. Sans la tentative de connexion sur Rebma, je n'aurais rien remarqué.

Alors je me sous avouée vaincue, et je suis partie au lit, après avoir un peu hésité à éteindre la machine, mais ce sera plus facile de la passer au napalm réinstaller si elle est allumée, et ce que l'Ennemi en fait pendant ce temps ne doit pas être tellement grave si c'est si bien caché.

Aller au lit, c'est une chose, mais ensuite, comment dormir juste après s'être pris un truc comme ça sur la figure ?

Quand j'en ai eu marre de gaspiller du temps à vainement essayer de dormir, je me suis relevée pour inspecter les logs plus en profondeur.

Et cette fois, j'ai regardé les logs de Rebma, des fois que d'autres indices y soient restés. Mais sur Rebma, aucune trace de ces tentatives de connexion.

Évidemment, je me dis tout de suite que Rebma aussi s'est fait trouer. Il va falloir une plus grosse bouteille de napalm.

Mais avant de céder à la panique, j'ai quand même trouvé étonnant qu'un ennemi capable de trouer deux machines et de tout nettoyer derrière se fasse avoir par un pauv' script periodic qui est activé par défaut. Surtout avec sept heures entre les tentatives ratées de connexion et l'envoi du rapport, largement plus de temps qu'il n'en faut pour nettoyer, ou au moins retarder periodic.

Je ne sais pas trop ce qui m'a pris, mais du coup j'ai regardé le script periodic, pour voir où exactement aurait dû être ces informations si bien nettoyées.

J'y trouve find ${LOG} -name 'auth.log.*' -mtime -2 et $LOG/auth.log, avec LOG qui a gardé sa valeur par défaut, /var/log. Alors que ça fait des années que mes logs sont rangés dans /var/log/${host}/${year}/${month}/. Cela dit il reste bien un /var/log/auth.log d'avant cette "nouvelle" organisation des logs.

J'y trouve aussi un egrep -ia "^$yesterday…, avec yesterday=`date -v-1d "+%b %e "`. Donc avec le jour et le mois, mais pas l'année.

Et effectivement, il y a bien des tentatives de connexion dans /var/log/auth.log, datant du 22 juin… 2011.

Autant j'ai les idées très claires sur ce que j'ai fait dans la soirée du 22 juin 2016, autant les détails de la soirée du 22 juin 2011 m'échappent un peu.

Donc finalement, ce n'est pas un indice de compromission d'un de mes systèmes. On peut garder le napalm en stock pour le prochain barbecue récalcitrant.

J'ai pu me recoucher avec plus de sérénité.

Mais ça veut quand même dire que ça fait cinq ans que dans chaque rapport du 23 et 24 juin il y a ces mêmes lignes, et ce n'est que maintenant que je le remarque. Tu parles de lire soigneusement les rapports…

Au moins ça relance la question des logs distants inaltérables, et du monitoring (genre un SMS à chaque connexion root).

Posted Fri Jun 24 19:48:44 2016

Ça ne va pas très fort ces derniers temps au boulot, au point d'affecter mon état émotionnel général. Cependant je vais essayer de laisser les vannes fermées dans ce billet (sinon je l'aurais tagué Noir), car je ne cherche pas à m'épancher ici mais à documenter ma situation, que je soupçonne plus commune qu'on pourrait imaginer. Il est néanmoins possible que ce billet soit un petit peu plaintif que les autres.

Ma situation actuelle

Je ne vais pas m'étendre sur le détail de ces problèmes professionnels, parce qu'éthiquement ça me semble malsain de le publier, et parce que ça ne correspond pas à ma ligne éditoriale.

J'en dirais seulement que la trame de fond est un effet « boule de neige » d'accumulation d'erreurs, tristement classique : des personnes incapables de se remettre en question (en général ou sur un point particulier dont il est question), face à une mise en évidence de leurs erreurs (soit par ma propre communication, comme dans l'article lié, soit par les faits, comme c'est le cas ici) déforment cette mise en évidence pour la rendre compatible avec leurs conceptions erronées, ce qui augmente encore la quantité d'erreur.

La nature de ces erreurs, le sujet dont il est question, et les autres soucis plus ou moins graves par dessus cette trame font que ce problème me touche très profondément.

D'un autre côté, l'accumulation progressive fait qu'au début c'était facile à supporter, et qu'il a fallu que ça devienne très grave avant que je le remarque, comme la grenouille proverbiale dans une casserole d'eau sur le feu.

À tel point que je situais le début de ce problème à il y a entre deux ans et deux ans et demi, jusqu'à très récemment lorsque j'ai relu des archives de peu après mon embauche où j'avais déjà remarqué ce qui allait devenir ce problème.

Du coup ça fait depuis un bon bout de temps que je regarde sérieusement ailleurs, mais sans trop me presser parce que je pensais encore pouvoir encaisser.

Comme tellement de monde, j'ai sous-estimé le coût émotionnel de prendre sur moi, et c'est récemment devenu beaucoup plus pressant.

Le futur

Regarder ailleurs sans trop se presser, ou « être à l'écoute du marché » comme certains disent, permet une introspection intéressante sur ce dont on a besoin et sur ce sur quoi on accepte de compromettre.

C'est un peu de cet état d'esprit qu'est sorti le billet sur mes besoins professionnels, où j'explique que je considère mon emploi comme alimentaire, et je n'ai pas particulièrement besoin qu'il me procure un certain épanouissement personnel, ou qu'il pose une certaine complexité ou un certain défi, ou même qu'il ait un sens.

Par contre, j'aimerais éviter mon plus gros problème avec l'informatique professionnelle, le « vite fait, mal fait » si courant dans le développement logiciel, ou qu'on me prenne pour une conne (sans se donner la peine de faire en sorte que je ne le remarque pas).

Donc globalement, je cherchais à faire la même chose mais ailleurs : du développement logiciel (voire de l'architecture logicielle), plutôt bas niveau (C ou Ada), éventuellement critique (ou en tout cas qui évite le « vite fait, mal fait »), en région parisienne, de préférence pas trop loin de chez moi (ou en télétravail), avec un poste de travail sur lequel je suis efficace (donc sur un UNIX, de préférence libre, avec un environnement à base de terminaux et vim).

Et autant au début de la liste ça va, autant au fil de l'accumulation de critères les offres d'emplois conformes s'amenuisent.

Au point que malgré tout ce temps passé à regardé, je n'ai toujours rien trouvé qui soit un net progrès par rapport à mon poste actuel (mais sans corriger la mésestimation du coût émotionnel que j'ai évoquée).

Cela dit, si vous avez vent d'un poste qui satisfait la liste précédente, je diffuse mon CV à qui veut.

Pourquoi ? Pourquoi ! Pourquoi…

À force de voir des listes complètement vidées par des critères qui me semblaient pourtant raisonnables, j'ai inévitablement dû les remettre en question. Ou au moins, chercher à comprendre d'où il vienne est à quel point je peux compromettre dessus.

La géographie, c'est facile : j'ai besoin de mes soutiens émotionnels et sentimentaux, donc je refuse de déménager, et le temps de transport (en fait surtout les conditions du transport) est principalement l'épuisement à gérer mon ochlophobie (le malaise vis-à-vis des foules, souvent appelé agoraphobie).

Et tout le reste, c'est ma tendance presque maladive à vouloir faire de mon mieux, en toutes circonstances. Ou à vouloir éviter le gaspillage, je ne sais pas trop.

Combinée avec ma maîtrise de l'outil informatique, à un niveau presque fusionnel, et une tournure d'esprit visiblement peu commune, je me retrouve avec une inefficacité et un gâchis incroyable (pour beaucoup d'interlocuteur) quand on me force à utiliser les outils prétendument grand public. Je rechigne à utiliser Windows ou Eclipse ou Word comme je rechigne à planter un gros clou avec un tournevis à cliquet.

Résultat, ces critères découlent de caractéristiques profondes à ce que je suis, donc compromettre dessus ne va pas se faire sans douleur. Ça donne une sérieuse impression d'inadaptation à ce monde, qui n'est probablement pas étrangère à ma déprime professionnelle présente.

Mais quel futur ?

Si je pouvais trouver un emploi compatible avec mes critères de base, je saurais dessus et ce serait un futur tout-à-fait à mon goût.

Mais que faire si un tel futur se révèle impossible ?

On pourrait être volontariste et le forcer à exister, en créant moi-même mon emploi sur mesures. Concrètement, ça voudrait dire partir en freelance, mais j'ai vraiment trop de doutes sur mes capacités commerciales pour imaginer vivre comme ça. Et j'ai aussi de gros doutes sur la taille du marché des logiciels bien faits, ce qui limite fatalement les besoins en développeurs comme moi.

Ou alors il y a la solution d'Eevee, que beaucoup de monde lui envie, mais je n'ai pas du tout l'impression qu'un modèle de style Patreon soit viable dans la culture française ou francophone, et quand bien même il le serait je n'ai pas du tout l'impression d'avoir des choses suffisamment intéressantes à écrire et/ou à produire artistiquement pour pouvoir survivre avec ce modèle, même avec une cible américaine ou anglophone.

Et que faire si on ne peut pas créer un tel futur ?

Compromettre, évidemment.

Pour résoudre une incompatibilité entre ce que je suis et le type d'emploi que je cherche, il suffit de changer l'un ou l'autre.

Mauvais métier, changer métier

Depuis quelques temps j'envisage sérieusement cette solution. J'ai déjà dit moult fois avoir envie de « laisser tomber l'informatique et faire autre chose ».

Je suis régulièrement plus spécifique sur le « autre chose », selon deux caractéristiques majeures :

  • un métier qui ne demande pas d'interagir (profondément) avec un ordinateur, pour contourner tout le problème de la trop grande maîtrise d'outils trop peu communs,
  • un métier dans lequel je peux laisser aller mon besoin de faire de mon mieux.

Je crois que je prends le plus souvent l'ébénisterie, parce que (pour autant que je sache) le deuxième point est inclus dans le nom.

Ça pourrait aussi bien être la couture, la serrurerie, la mécanique, l'électricité, la plomberie, ou même n'importe quel autre artisanat que je suis encore capable d'apprendre et dans lequel je pourrais satisfaire le deuxième point. Mais si je ne sais même pas comment contacter des artisans qui font de leur mieux (quitte à y mettre le prix) pour leur donner du boulot, comment en trouver pour me former et les rejoindre ?

Et puisque ces questions semblent souvent se poser, oui je me sens parfaitement capable de passer mes journées professionnelles sans toucher à un ordinateur, oui je suis prête à taper dans mes économies le temps d'apprendre, et oui je suis prête à y laisser un quart de mon salaire actuel à terme (là tout de suite je dirais même la moitié sans problème, mais je ne sais pas si je pourrai encore le dire sans la charge émotionnelle présente).

Honnêtement, je n'ai pas encore osé regarder comment mettre ça en pratique, ou même dans quelle mesure c'est effectivement possible dans ce monde. Parce que derrière la diversité de ces artisanats dans lesquels je suis prête à me lancer se cache un piège : il faut en choisir un seul. Et autant ils me semblent tous aussi faisables a priori, autant je n'arrive pas (encore ?) à me convaincre que je puisse en choisir un sans le regretter amèrement un an plus tard.

« Ne fais pas quelque chose que tu ne peux pas défaire avant d'avoir bien réfléchi à tout ce que tu ne pourras plus faire une fois que tu l'as fait. » conseillait Chade.

Il y en a bien un qui sort du lot, que je serais super motivée pour apprendre et pour exercer, et qui a de très grandes chances de me plaire sur la durée, de ce que je connais de moi : perceur de coffres. C'est d'ailleurs ma réponse depuis plusieurs années lorsqu'on me demande ce que je voudrais faire si je pouvais magiquement faire n'importe quel métier, sans considération de réalisme.

Parce que pour atteindre ce métier, ça a l'air encore plus terrible que les autres.

Mauvaise Nat', changer Nat'

Il suffirait finalement de peu de choses pour assouplir mes critères d'emploi. Juste changer mon échelle de valeurs et ma façon de faire les choses.

« Plus tu vivras dans ce monde, plus tu te rendras compte à quel point tu lui es étranger. » disait Whistler.

Il y a presque deux décennies, j'ai découvert le cyberpunk. Ça collait étrangement avec mon état d'esprit, et ça en a façon les derniers détails.

Depuis j'ai vécu pas mal de choses, et j'ai changé. Aujourd'hui, je n'ai plus tellement l'impression de coller à une bonne partie de l'« esprit cyberpunk ». Même en littérature je penche plus vers le post-cyberpunk que vers l'original.

Si le chemin a été fait dans un sens, il doit bien pouvoir être fait dans l'autre sens.

Je dois bien pouvoir travailler sur moi et m'adapter à ce monde si obstinément incompatible avec moi.

Je dois bien pouvoir renoncer à l'authenticité et à la sincérité, et apprendre à manipuler les gens pour arriver à mes fins.

Je dois bien pouvoir renoncer à la quête de l'amélioration personnelle et accepter d'avoir autant de gaspillage de compétences et de productivité à mon qu'autres niveaux de l'organisation sociale.

Je dois bien pouvoir renoncer à l'éthique professionnelle, et faire le minimum de ce que l'on attend de moi pour avoir plus de temps en télémaison.

Je dois bien pouvoir renoncer à la morale et aux bien communs, et exploiter le système à mon avantage.

Je suis sûre qu'avec un peu d'assistance chimique ce sera encore plus facile.

Ouais, j'ai aussi réfléchi à d'autres possibilités autodestructrices, mais est-ce vraiment si mal ? Si c'est le prix du bonheur (ou d'une relative tranquillité matérielle) est-ce si cher ?

Conclusion

Plein de chemins possibles, mais un seul peut être emprunté. Lequel choisir ? Ou laisser les évènements choisir pour moi ?

Que ferait Mme Golovina ?

Et vous, avez-vous aussi eu des critères à la con qui réduisent désespérément votre liste d'emplois acceptables ? Comment les avez-vous gérés ?

Partageriez-vous un brin de votre expérience collective pour éclairer la brebis égarée que je suis ?

Posted Fri Jun 17 00:28:33 2016

Tttoutuottoulououlse

Posted Tue May 31 23:29:32 2016