Auteur/autrice : Éric

  • Le poids d’une machine

    Depuis un peu mois de 6 mois je suis sur une mission pour laquelle on m’a donné un PC sous Ubuntu. Dell Lati­tude 5440, CPU i7U 12ème géné­ra­tion, 32 Go de RAM. Sur le papier c’est une bonne machine pour mes usages essen­tiel­le­ment web et bureau­tique.

    En pratique c’est pénible à chaque instant. Le clavier est dur sous les doigts. Le track­pad n’est pas fluide. La webcam est juste mauvaise. Le son est faible et peu clair. La puce WIFI tombe en veille régu­liè­re­ment m’obli­geant à éteindre et rallu­mer la connexion. Je ne sais pas si je dois accu­ser l’OS ou le CPU mais le système lui-même est peu réac­tif. Le simple fait de passer régu­liè­re­ment de Mac à PC fait que je me plante systé­ma­tique­ment quand je tape certains carac­tères placés diffé­rem­ment sur le clavier ou pour des choses aussi courantes que les copier-coller.

    Bref, c’est une tannée. Je me suis depuis quelques jours auto­risé à utili­ser mon Macbook pro perso quand je suis à distance : Mon niveau de stress et de fatigue a immé­dia­te­ment signi­fi­ca­ti­ve­ment baissé.

    Stress, fatigue, effi­ca­cité, impact, initia­tive, tout ça est forte­ment corélé. Je ne sais pas ce que ma mission aurait été avec un bon maté­riel mais mon travail aurait indu­bi­ta­ble­ment meilleur.

    Ne faites pas d’éco­no­mies sur le maté­riel


    On parle chiffres plutôt que convic­tion ?

    Je pars d’un système cheap : 50 € d’abon­ne­ments SaaS indi­vi­duels par mois, 150 € de chaise de bureau, 100 € de bureau, 1 000 € d’or­di­na­teur portable, 250 € d’écran. Renou­vel­le­ment tous les 5 ans. On s’en sort à 75 € HT par mois.

    La version luxe corres­pon­dante, en prenant tout ce qu’il y a de plus cher ajoute 325 € HT par mois : 200 € d’abon­ne­ments SaaS indi­vi­duel par mois, 1 500 € de chaise ergo­no­mique, 750 € pour un bureau assis-debout, 3 000 € d’or­di­na­teur portable, 1 500 € d’écran. Ajou­tons 300 € pour un casque ou des oreillettes audio anti-bruit. Imagi­nons renou­ve­ler ça plutôt plus rapi­de­ment, tous les 3 ans.

    325 € HT, pour quelqu’un qui va en coûter 20x plus, ce n’est pas rien mais ça n’est que 5% du coût total. On renta­bi­lise très faci­le­ment ces 5% si on gagne en stress, si le meilleur ordi­na­teur permet d’évi­ter un peu de temps, si l’écran permet de gagner en effi­ca­cité avec tout visible plutôt qu’à jongler entre les fenêtres, si la bonne webcam et le casque audio permettent de mieux se comprendre et d’éco­no­mi­ser du temps ou des incom­pré­hen­sions en visio, si le bureau assis-debout et la chaise ergo­no­mique permettent une fois de temps en temps d’évi­ter un mal de dos ou de la fatigue, si les outils en SaaS permettent de faire plus faci­le­ment les mêmes tâches, etc.

    J’ai forcé le trait à la fois pour la version cheap et pour la version luxe. La réalité c’est qu’on gagne bien plus que 5% d’ef­fi­ca­cité, pour une diffé­rence de coût bien plus faible que 5% du coût.

    Essayer de gagner quelques euros ou dizaines d’eu­ros par mois sur le maté­riel en impac­tant le travail de celui qui en coûte plusieurs milliers, ça n’a juste aucun sens.


    Un bon indi­ca­teur : Si des employés utilisent leur maté­riel person­nel plutôt que profes­sion­nel quand ils en ont l’oc­ca­sion, et encore plus s’ils le ramènent au bureau, c’est qu’il y a poten­tiel­le­ment un problème à régler. Si ces employés achètent du maté­riel person­nel dans l’objec­tif unique de l’uti­li­ser au travail, votre problème est sérieux.

  • Sauve­gar­der Gmail

    J’ai un histo­rique de 25 ans d’emails et j’y tiens. Il m’ar­rive encore régu­liè­re­ment d’al­ler fouiller pour retrou­ver trace de contacts ou d’échanges d’il y a 10 ans. Je l’ai fait encore ce matin.

    Je tiens donc à assu­rer la péren­nité de tout ça. J’ai confiance en Google1 mais j’ai déjà lu les récits de personnes qui se sont vus clôtu­rer leur compte sans préavis ni possi­bi­lité de récu­pé­ra­tion. Je ne suis pas non plus à l’abri de faire moi-même des bêtises dans mon compte.

    J’ai déjà utilisé Getmail par le passé pour télé­char­ger un à un tous mes emails en prove­nance de Google. Il n’a cepen­dant pas été mis à jour pour Python3. Getmail6 semble avoir pris le relai et il a la bonne idée d’être dispo­nible sous macos via home­brew.

    POP3

    Mon compte dépasse le demi-million d’emails archi­vés. La synchro­ni­sa­tion IMAP semble prendre des années à balayer tous les emails pour savoir lesquels sont nouveaux depuis la dernière fois. C’est jouable si vous avez juste quelques dizaines de milliers d’emails. Au-delà il faut utili­ser le bon vieux POP3.

    1. Acti­ver POP3 dans les options de Gmail
    2. S’as­su­rer de le confi­gu­rer pour récu­pé­rer tous les emails et pas unique­ment ceux qui arrivent à partir d’aujourd’­hui.

    Si vous aviez déjà utili­ser POP3 par le passé, il faut lui deman­der de réac­ti­ver le télé­char­ge­ment de tous les emails, y compris ceux qui ont déjà été télé­char­gés.

    Si vous avez déjà un client email qui se connecte en POP3, passez-le en IMAP. Ils se feraient concur­rence. Vous auriez une partie des emails d’un côté et une partie de l’autre.

    Confi­gu­ra­tion

    Ma confi­gu­ra­tion getmailrc ressemble à ça :

    L’uti­li­sa­teur est l’adresse email complète. N’uti­li­sez pas votre mot de passe Google et créez un mot de passe d’ap­pli­ca­tion dédié, ça vous permet­tra de le révoquer un jour. Pensez à proté­ger ce fichier de confi­gu­ra­tion parce que celui qui y aura accès aura aussi accès à votre compte Google.

    Le para­mètre recei­ved assure que Getmail récu­père le message tel quel, sans ajou­ter d’en­tête.

    Erreurs de synchro­ni­sa­tion

    Google envoie tous les emails par groupes de 200 à 1000 non télé­char­gés à chaque appel POP3. Si le para­mètre read_all est à false, Getmail ne télé­charge pas les emails qu’il a déjà vu.

    Pour une raison ou une autre, ça peut partir en boucle si Getmail pense avoir déjà vu un email que Google pense pour­tant ne pas être déjà télé­chargé : L’email va être repro­posé à chaque fois. Si ça fait ça sur plusieurs centaines d’emails, vous prenez le risque que vous restiez bloqué sur le même groupe d’emails indé­fi­ni­ment à chaque appel.

    Véri­fiez bien que le read_all est à true. Si le problème persiste, une solu­tion est de passer par le type BrokenUIDLPOP3SSLRe­trie­ver plutôt que SimplePOP3SSLRe­trie­ver. Getmail télé­charge alors systé­ma­tique­ment les messages sans se préoc­cu­per de ce qu’il a déjà lu ou non.

    Quota

    Gmail a des quota sur ses APIs. Pour initia­li­ser mon demi-million d’emails j’ai lancé Getmail en boucle et je suis tombé sur des erreurs 403. Si vous devez comme moi initia­li­ser plusieurs dizaines de Go, ça demande un peu de surveillance.

    Le quota semble toute­fois très très large. En rythme de croi­sière je compte proba­ble­ment synchro­ni­ser 1 à 2 fois par jours mais on peut sans problèmes faire plusieurs synchro­ni­sa­tion par heures si ça vous semble indis­pen­sable.

    Mail­dir

    Il y a deux formats, mbox et mail­dir. Mbox c’est un unique gros fichier, un peu comme une archive tar. Mail­dir c’est un réper­toire avec un fichier par email, ce qui me semble plus adapté pour des sauve­gardes avec de nouveaux emails tous les jours.

    Initia­li­ser un mail­dir c’est juste un réper­toire qui contient un sous-réper­toire tmp, un new, et un cur. Tous les emails envoyés par Getmail iront dans new.

    Il reste que pour mon demi-million d’emails ça commence à faire beau­coup de fichiers dans un seul réper­toire. J’ai fait un petit script qui parcourt l’in­té­gra­lité des emails, lit la date2, et les répar­tit dans des mail­dir spéci­fiques par année. Ça faci­li­tera aussi la sauve­garde et me permet­tra éven­tuel­le­ment de faire un zip pour les vieilles années.

    Emails envoyés

    Le problème du POP3 c’est que ça ne télé­charge que les emails reçus, pas les emails envoyés. J’ai donc dû ajou­ter une seconde synchro­ni­sa­tion IMAP sur le dossier des emails envoyés. Là j’ai dans les 30 000 emails. C’est long à parcou­rir mais encore jouable tant que je ne lance pas la récu­pé­ra­tion toutes les deux minutes.

    J’ai donc deux fichiers getmailrc, un pop.getmailrc (emails reçus) et un imap.getmailrc (emails envoyés). Je dois donc manuel­le­ment spéci­fier les para­mètres –rcfile= quand j’ap­pelle Getmail. On peut spéci­fier plusieurs fois le para­mètre, les synchro­ni­sa­tions sont alors lancées l’une après l’autre.

    J’en­vois ça vers le même dossier mail­dir, puis fais la même répar­ti­tion par année.

    Enre­gis­trer en tâche plani­fiée

    Sous Linux il suffit proba­ble­ment de faire une entrée dans le cron.

    Sous Macos, si je veux que la synchro­ni­sa­tion s’exé­cute même quand je ne suis pas connecté, il faut enre­gis­trer le script dans /Library/Laun­chDae­mons.

    Comme le réper­toire desti­na­tion de mes sauve­garde est hors de mon disque prin­ci­pal, Macos impose aussi que le programme lancé ait la permis­sion spéciale « full disk access ». Getmail n’est qu’un script Python et je n’ai pas voulu donner des droits larges à tout Python. J’ai dû faire un programme natif qui lance mon script Getmail et donner les droits sur le disque à ce script là.

    Je ferai proba­ble­ment un billet dédié à tout ça.

    Entre temps j’ai presque 40 Go d’his­to­rique email à synchro­ni­ser depuis Google par batch de 200 à 1000 mails. Ça va me prendre un peu de temps.


    1. Oui, j’uti­lise Google. J’ai soupesé plein de fois les alter­na­tives mais toutes auraient demandé un compro­mis signi­fi­ca­tif et je ne suis pas encore passé à l’ac­tion. Ça vien­dra. J’ai besoin de trou­ver le bon équi­libre et de ne pas perdre la recherche dans le passé. ↩︎
    2. Je ferais un billet spéci­fique, ça s’est révélé bien moins évident que je ne l’ima­gi­nais naïve­ment. ↩︎
  • Tu veux quoi comme rôle ?

    Je crois avoir derniè­re­ment compris un truc sur les rôles ou contextes que je cherche : Je ne veux pas être restreint.

    La ques­tion n’est pas « code ou mana­ge­ment ? » ni « quel niveau hiérar­chique » ou « combien de personnes à mana­ger ». C’est « ne me restreins pas une seule case, peu importe laquelle est-ce ».

    Je veux parler code, mana­ge­ment, orga­ni­sa­tion, busi­ness, ergo­no­mie, recru­te­ment, métier, client, déploie­ment, commu­ni­ca­tion, stra­té­gie de l’en­tre­prise, support et encore plein d’autres choses.

    Les postes de direc­tion m’ont souvent permis ça dans une certaine mesure. Rétros­pec­ti­ve­ment, j’ar­rive à corré­ler me hauts et mes bas profes­sion­nels avec ma capa­cité à inter­ve­nir partout où c’était utile, ou au contraire à des contextes où je me suis senti réduit à une unique facette du problème à résoudre.

    Je ne suis pas expert de tout. J’ai ma propre exper­tise mais je ne veux pas m’y restreindre. Je veux pouvoir travailler avec les autres sur tous les sujets qui nous semblent perti­nents, chacun avec son angle et son exper­tise. Je veux pouvoir avan­cer là où mes équipes ont besoin sans savoir qui a quel rôle ou quel péri­mètre.

    Ça colle d’ailleurs avec mon passé. J’ai refusé de me limi­ter à une seule étiquette. J’ai commencé par du pur réseau mais je peux me récla­mer d’avoir été expert web back-end, expert web front-end, d’avoir déve­loppé une exper­tise métier sur le livre numé­rique. C’est déjà beau­coup. J’ai aussi fait de la forma­tion, du mana­ge­ment, de l’or­ga­ni­sa­tion. J’ai colla­boré quand j’ai pu avec la busi­ness, les rh, les ques­tions client et produit, la vie de l’en­tre­prise, etc.

    Main­te­nant que j’ai compris ça, il va me falloir défi­nir ce que ça implique dans les postes à recher­cher, et trou­ver le bon. Vous êtes — réel­le­ment — bien­ve­nus à m’y aider, serait-ce unique­ment par vos feed­backs.

  • Micro­soft Teams

    Real thing : une boite qui utilise Teams c’est main­te­nant un vrai point en moins dans mon envie de les rejoindre et il faut qu’il y ait de vrais atouts pour contre­ba­lan­cer.

  • Fire­fox, cœur du web ouvert

    Fire­fox ce n’est pas juste un navi­ga­teur. Sans Mozilla et Fire­fox, nous n’au­rions pas le web libre d’aujourd’­hui. Sans Mozilla et Fire­fox nous n’en auront peut-être plus demain, ou plus sous cette forme. Rien que ça.

    La situa­tion pré-1998

    Pour ceux qui n’ont pas vécu la période pré-2005, Inter­net c’était essen­tiel­le­ment Nets­cape, AOL et Micro­soft.
    Oui, je remonte loin mais c’est impor­tant.

    Si les stan­dards du web exis­taient déjà, il y avait beau­coup de choses non spéci­fiées, beau­coup d’ano­ma­lies propres à chaque navi­ga­teur, et beau­coup d’ex­ten­sions proprié­taires. Faire un site compa­tible avec plusieurs navi­ga­teurs deman­dait un effort parti­cu­lier, voire un double déve­lop­pe­ment.

    Nets­cape c’était le navi­ga­teur dont est issu Mozilla puis Fire­fox. Jusqu’en 1995–98, tout le monde utili­sait Nets­cape, ou presque.

    Micro­soft a pris le pas entre 1996 et 1998 avec l’ar­ri­vée de Windows 95 Plus et de Windows 98. Ils ont fourni Inter­net Explo­rer par défaut comme navi­ga­teur, inté­gré à l’OS. À l’époque on parlait même d’avoir une page web à la place de l’image de fond d’écran, et des widgets web pour avoir des actus, la bourse, la météo, etc. Tout lançait Inter­net Explo­rer sans alter­na­tive, possible, y compris la mise à jour de Windows lui-même.

    La guerre des navi­ga­teurs

    Nets­cape a lancé la suite de navi­ga­tion Mozilla en open-source. AOL a ensuite racheté Nets­cape pour avoir son propre navi­ga­teur basé sur Mozilla.

    Malheu­reu­se­ment Micro­soft a profité de sa posi­tion domi­nante sur Windows pour non seule­ment pré-instal­ler Inter­net Explo­rer partout mais aussi en faire une pièce incon­tour­nable.

    À l’époque la mise à jour de Windows se faisait par Inter­net Explo­rer. Micro­soft inci­tait même à rempla­cer le fond d’écran par une page web (gérée par Inter­net Explo­rer) et des widgets web pour les actua­li­tés, la météo, la bourse, etc. Même Apple est passé à Inter­net Explo­rer sur les Mac quand Micro­soft est entré dans le capi­tal.

    La majo­rité des sites, petits et gros, étaient conçus pour Inter­net Explo­rer et compa­tibles unique­ment avec ce dernier. Nets­cape, seule vraie alter­na­tive, n’a pas tenu.

    La bataille du web ouvert

    Des anciens de Nets­cape sont restés autour de la partie open-source de Mozilla. Avec le temps est sorti Fire­fox : ultra-léger (par rapport à Nets­cape) et ultra-rapide (idem).

    On est déjà en 2003–2005. C’est le début de Mozilla (l’as­so­cia­tion) telle qu’on la connait aujourd’­hui.

    L’an­cien Inter­net Explo­rer est mort, le web ouvert a gagné. Fire­fox a fini par deve­nir le navi­ga­teur majo­ri­taire en Europe.

    Il était infi­ni­ment meilleur que Micro­soft Inter­net Explo­rer mais il n’y a pas que ça : On a aussi eu une bataille massive pour le web ouvert, à faire chan­ger de pratique les sites web pour qu’ils respectent les normes et qu’ils assurent la compa­ti­bi­lité. Je me rappelle le web-compat de Mozilla qui inter­pe­lait et propo­sait des correc­tifs aux sites web un à un.

    C’était du mili­tan­tisme partout. C’est d’ailleurs là que — self-promo — est né Paris-Web.

    Les deux se sont nour­ris. Sans Fire­fox et Mozilla, le web ouvert n’au­rait peut-être jamais vu le jour malgré tous nos efforts. Sans les efforts sur le web ouvert Fire­fox et Mozilla auraient proba­ble­ment été des impasses.

    Garder le web ouvert

    Fire­fox et web ouvert sont histo­rique­ment intrin­sèque­ment liés. C’est pour ça que je dis que Fire­fox ce n’est pas juste un navi­ga­teur.

    Aujourd’­hui c’est Google Chrome qui a la main et on voit appa­raitre le même schéma que par le passé : diffu­sion par pré-instal­la­tion, sites qui ne sont parfois conçus ou testés que pour un seul moteur de navi­ga­tion, abus de posi­tion domi­nante, etc.

    La situa­tion n’est pas exac­te­ment la même que celle des années 2000 mais elle n’est pas si éloi­gnées que ça.

    Il y a plein de navi­ga­teurs mais en réalité Brave, Opera, Vivaldi, Inter­net Explo­rer et les autres sont des déri­vés de Chro­mium. Chro­mium c’est la base open source de Chrome, contrô­lée par Google.

    Le web est défi­ni­ti­ve­ment plus ouvert mais du fait de la main mise sur Chro­mium, Google est quand même en posi­tion forte pour faire avan­cer ce qu’il veut et refu­ser ce qu’il ne veut pas. Pas mal de sites se basent sur des APIs et exten­sions présentes dans Chro­mium mais pas encore ailleurs, ou qui n’ont pas voca­tion à être présentes ailleurs.

    Seule alter­na­tive

    Pour ne pas lais­ser l’his­toire se répé­ter, on a besoin d’al­ter­na­tives.

    Une fois qu’on a retiré tout ce qui se base sur Chro­mium, il reste Safari et Fire­fox. Les inté­rêts d’Apple ne sont pas toujours extrê­me­ment diffé­rents de ceux de Google. On a besoin d’un acteur qui sort de ces acteurs privés mono­po­lis­tiques et domi­nants.

    Fire­fox est seul dans cette situa­tion. Sa survie est juste essen­tielle pour garder un web ouvert.

  • Petit aven­ture de phishing

    Parce que ça sert toujours, petit récit d’un phishing subi par une personne de mon entou­rage.

    Un colis est attendu. Ce n’est pas à l’adresse habi­tuelle et le comman­di­taire n’est présent que pour peu de jours. Un message est reçu pour aver­tir qu’il y a eu une diffi­culté et que le colis sera fina­le­ment livré dans un relai colis.

    Il y a un lien pour avoir les infos. La page web demande des infor­ma­tions, pas mal d’in­for­ma­tions, dont au moins nom, adresse, télé­phone.

    Je n’ai pas compris pourquoi mais la page a aussi incité au paie­ment d’un montant symbo­lique par carte bancaire. Norma­le­ment c’est là que ça doit coin­cer si ça n’a pas coincé plus haut mais entre l’at­tente du colis le même jour, le stress de la nouvelle adresse avec un temps contraint pour la récep­tion, et simple­ment un mauvais réveil le matin, l’inat­ten­tion arrive vite.

    C’est là que ça devient inté­res­sant.

    Dans la jour­née la banque appelle au télé­phone, dit qu’il semble y avoir une fraude sur la carte bancaire, qu’ils l’ont repéré, qu’il y a eu d’autres paie­ments dont un paie­ment louche de 500 € sur AirBnb.

    Ils s’ac­cordent sur un rembour­se­ment, le préposé indique qu’il va y avoir une noti­fi­ca­tion à accep­ter sur l’ap­pli­ca­tion bancaire pour confir­mer.

    La noti­fi­ca­tion arrive.

    Coup de bol, ma connais­sance repère avant de cliquer qu’il s’agit d’un paie­ment et non d’un rembour­se­ment, et se rappelle la règle « on ne valide rien et on rappelle soi-même la banque pour confir­mer l’in­ter­lo­cu­teur avant quoi que ce soit, ils sauront reprendre là où on en était si l’ap­pel est légi­time ».

    La seconde étape a échoué mais ça aurait été facile de passer sans faire atten­tion : Il y a un contexte réel de phishing quelques heures avant qui rend tout ça crédible, un coup de stress, un inter­lo­cu­teur qui sait qui on est et qui renvoie vers l’en­vi­ron­ne­ment sécu­risé de la banque.

    C’était un lundi. Appel au central de gestion de la carte qui conseille de faire oppo­si­tion par acquis de conscience.

    Le lende­main, appel à la banque, qui accom­pagne. L’ac­cès au compte est verrouillé on ne sait pas pourquoi. Ils déver­rouille­ront ça ensemble.

    Je publie parce que je trouve l’en­chai­ne­ment inté­res­sant.

    On peut tous se faire avoir par du phishing pour peu que ça tombe au bon moment et que ça coïn­cide par chance avec une situa­tion réelle et un contexte d’ur­gence. Un colis coincé, les proba­bi­li­tés ne sont pas nulles1.

    Faire un paie­ment sur une page web à partir d’un lien envoyé devrait faire tiquer mais le montant symbo­lique ne réveille pas forcé­ment les alertes mentales2 s’il y a un peu d’inat­ten­tion suite à une situa­tion agaçante.

    Ce que je trouve inté­res­sant c’est que cette première étape sert en fait à iden­ti­fier les personnes qui sont suscep­tibles de se faire avoir et qui justi­fient un appel via un humain pour la vraie arnaque.

    J’ima­gine qu’une fois sur ces listes il y aura d’autres tenta­tives, et que ma connais­sance va devoir redou­bler de vigi­lance pendant au moins 18 mois.

    Il parait que la banque et le service carte ont été top. Je suis par contre furieux du déblo­cage du compte en banque au télé­phone à partir de quelques « ques­tions person­nelles ». Ces ques­tions person­nelles on peut proba­ble­ment y répondre faci­le­ment à la place de plein de proches, voire après recherche inter­net à la place de beau­coup d’in­con­nus dont on connait le nom. C’est une illu­sion de sécu­rité et c’est drama­tique qu’on se repose dessus.

    Je suis furieux mais cepen­dant pas surpris. Je n’ai connais­sance d’au­cune banque, assu­rance ou opéra­teur télé­pho­nique grand public qui fasse mieux de ce point de vue là. Dans le meilleur des cas il y a appel télé­pho­nique ou échange d’email, ce qui n’est pas forcé­ment une protec­tion si on vient de se faire voler son smart­phone.

    Bref, faites atten­tion.


    1. Je ne comprends toujours pas pourquoi tous les services de livrai­sons sont aussi mauvais. Seul Amazon semble avoir un niveau de pres­ta­tion correct. C’est hallu­ci­nant qu’il soit normal et attendu d’avoir des problèmes lors de livrai­sons. ↩︎
    2. Et, là aussi, malheu­reu­se­ment on est telle­ment habi­tués à ce que ces services de livrai­sons soient pour­ris et profitent de tout que le paie­ment suite à une anoma­lie devient presque crédible. ↩︎
  • Orga­ni­sa­tion des sauve­gardes

    Je me suis remis à mes sauve­gardes. Le dernier épisode était en septembre et ça commence à faire presque deux ans que rien n’est fina­lisé.

    Je reste sur mon plan précé­dent. J’ai juste aban­donné l’idée d’uti­li­ser Crash­plan. Ça part de messages sur des forums où ils disent expli­ci­te­ment qu’ils ne pouvaient pas garan­tir le bon fonc­tion­ne­ment quand on dépasse quelques To de sauve­garde. Derrière j’ai exploré plus et les débits famé­liques rendent de toutes façons illu­soire une restau­ra­tion complète sur des volumes de cet ordre de gran­deur en cas de défaillance disque.

    J’irai chez BorgBase ou Hetz­ner, proba­ble­ment Hetz­ner parce que même en coupant l’inu­tile j’ai quand même au moins 3 To aujourd’­hui et que va commen­cer à faire cher chez BorgBase avec l’aug­men­ta­tion natu­relle.

    Disque externe – Disque interne

    Le vrai sujet de ce week-end, c’est comment monter une parti­tion chif­frée depuis un disque externe. C’était déjà mon problème en septembre.

    Macos consi­dère que les disques externes sont comme des clés usb, lisibles par tous les utili­sa­teurs, sans droits d’ac­cès, et démon­tées dès qu’on se décon­necte de sa session.

    Passer à un système chif­fré empêche qu’il soit montable par tout le monde tant qu’on n’ajoute pas la clé de chif­fre­ment dans le trous­seau.

    Si c’est monté manuel­le­ment, on peut ajou­ter le para­mètre owners pour faire en sorte que le système respecte les permis­sions sur les fichiers et n’ouvre pas tout à tout le monde.

    J’ai pu faire monter le disque au démar­rage en ajou­tant un plist dans /Library/Laun­chDea­mons et en le char­geant avec un laun­chctl load. Le plist exécute un script au démar­rage qui déver­rouille le disque et le monte avec les bonnes options. Ça veut dire que la clé de chif­fre­ment est en clair dans un fichier du disque interne. Le disque interne est chif­fré lui aussi, le fichier n’est lisible que par root. Ce n’est pas parfait mais suffi­sant pour mon usage.

    Ça reste visible comme un disque externe, donc tout le monde peut deman­der à l’éjec­ter. J’ai palier au problème ajou­tant un petit code dans le script de démar­rage qui entre dans le disque et attend indé­fi­ni­ment. Le disque étant occupé, personne ne peut l’éjec­ter.

    J’ai l’im­pres­sion de batailler à faire du brico­lage sur ce qui m’au­rait pris quelques minutes sous Linux mais ça fonc­tionne.

    L’étape suivante ça va être de s’as­su­rer que tous les fichiers se retrouvent sur le disque prévu pour, en synchro­ni­sant tous les comptes Google Drive et Treso­rit. Ensuite je vais instal­ler un getmail pour archi­ver en temps réel les boites email, proba­ble­ment un script pour archi­ver le Github. La dernière étape sera de bran­cher Borg pour envoyer le backup en ligne et d’at­tendre un bon mois qu’il finisse la synchro­ni­sa­tion initiale.

  • Garder ouvert un script shell

    Je cherche à ce qu’un script shell reste ouvert comme un démon au lieu de rendre la main après s’être exécuté. Comme un démon, je veux qu’il réagisse en se termi­nant de lui-même quand il reçoit une demande de SIGTERM.

    Ma première approche c’est une boucle infi­nie avec un sleep.

    trap 'quit' SIGTERM SIGKILL
    
    function quit() {
      exit 1
    }
    
    while true; do
      sleep 10
    done 

    Le trap n’in­ter­rompt pas le sleep. J’ai mis 10 secondes pour garder une réac­ti­vité raison­nable à l’ex­tinc­tion.

    Même si un réveil toutes les 10 secondes est proba­ble­ment insi­gni­fiant, quelque chose en moi est quand même gêné et aurait aimé mettre plusieurs heures ici.

    Je vois sur le web pas mal d’exemples avec un sleep 1, qui m’in­ter­roge encore plus. Quel est le coût réel de ce sleep 10 dans une boucle infi­nie ?

    Certains ont élaboré des solu­tions pour rendre le sleep inter­rup­tible en l’en­voyant en tâche de fond :

    PID=
    
    trap '[[ $PID ]] && kill "$PID"' SIGTERM SIGKILL
    
    while true; do
      sleep 100000 & pid=$!
      wait
    done

    Je vois aussi, et ça m’a l’air simple & smart, des scripts utili­ser des read­line plutôt que des sleep. Les read­line ont la bonne idée d’être inter­rup­tibles et de durée infi­nie tant qu’on n’en­voie rien sur stdin.

    trap 'quit' SIGTERM SIGKILL
    
    function quit() {
      exit 1
    }
    
    read

    Dites, les amateurs de shell, quelle est la méthode recom­man­dée pour garder un script ouvert en tâche de fond ? Est-ce qu’il y a une réelle diffé­rence entre ces méthodes ou est-ce juste une ques­tion de style ?

  • Fin ou trans­for­ma­tion d’un métier

    BD tirée de CommitStrip.

Première case: le chef/commercial parle avec l'ingénieur informaticien.
Case 1 : le commercial vient voir l'informaticien, un mug à la main. L'informaticien est sur son PC, un mug à côté aussi.
Commercial : un jour on n'aura plus besoin de codeur. On aura juste à définir des spécifications et ça générera automatiquement une application.

Case 2 : le commercial est en train de boire dans son mug.
Infoteux, devant son PC et un mug de café : T'as raison, il suffira simplement d'écrire des spécifications complètes et précises et pouf, plus besoin de codeur !
Commercial, l'air satisfait : c'est ça !

Case 3.
Infoteux : Et tu sais comment on appelle des spécifications suffisamment complètes et précises pour qu'un programme puisse générer une application ?
Commercial, dubitatif : Euh... Non ?

Case 4.
Informaticien, l'air blasé, pointant son clavier : Du code. On appelle ça du code.

Le commercial est tellement surpris qu'il penche son mug par inadvertance et renverse un peu le breuvage sacré.

(le alt n'est pas de moi et à été honteusement repompé)
    « Il suffira d’écrire des spéci­fi­ca­tions complètes et précises »

    Je revois cette planche de BD dans une conver­sa­tion et je trouve qu’elle passe à côté d’un élément fonda­men­tal : On ne trans­met pas juste­ment pas de spéci­fi­ca­tions complètes et précises au déve­lop­peur.

    Complé­ter, préci­ser

    Une grosse partie du boulot de déve­lop­peur c’est complé­ter et préci­ser ces spéci­fi­ca­tions incom­plètes et impré­cises.

    Complé­ter, préci­ser, le tout à partir du contexte projet, des habi­tudes et de l’im­pli­cite courant… C’est le cas d’usage exact des LLM.

    On essaie de leur faire faire « de l’IA » mais ces outils sont en premier lieu de formi­dables outils de complé­tion à partir d’un contexte et de l’im­pli­cite habi­tuel pour un type de tâche donnés. Bref, le travail d’un déve­lop­peur.

    Refor­mu­ler dans un langage plus formel

    Que fait le déve­lop­peur d’autre ? Il traduit ça dans un langage formel (le code).

    Refor­mu­la­tion, ça aussi c’est le cas d’usage parfait pour les LLM.

    La dernière tâche du déve­lop­peur est très tech­nique. C’est de l’in­gé­nie­rie logi­cielle, réus­sir à tout agen­cer pour que ce soit faci­le­ment testable, main­te­nable, évolu­tif, etc.

    Une grosse part de cette dernière tâche est basée sur l’ap­pren­tis­sage et la repro­duc­tion de motifs ou de pratiques. Le LLM est aussi parfait pour ça.

    Il reste aussi qu’il s’agit de rendre les choses testables, main­te­nables et évolu­ti­ves… par des humains. Peut être qu’une partie de ce besoin va dispa­raître ou du moins évoluer le jour où le code sera plus mani­pulé par des LLM que par des humains. Leurs besoins, faci­li­tés et diffi­cul­tés sont forcé­ment diffé­rents des nôtres.


    Appren­tis­sage

    Oui il faudra faire des aller-retours avec l’ou­til pour complé­ter ou corri­ger sa complé­tion. Il en va de même du déve­lop­peur, surtout lors de sa première arri­vée dans une équipe ou dans un projet.

    Oui un LLM fera des erreurs d’in­ter­pré­ta­tion. Un déve­lop­peur aussi.

    Est-ce que les allers-retours et erreurs seront plus impor­tants que ceux avec un déve­lop­peur ? Aujourd’­hui proba­ble­ment, demain je n’en sais rien, peut-être.

    Est-ce que ces allers-retours et correc­tions seront plus coûteux qu’un déve­lop­peur ? Alors là je n’en sais rien, mais je ne parie­rai pas dessus.

    Besoin d’ex­per­tise

    Est-ce qu’on aura toujours besoin d’un déve­lop­peur et d’ex­per­tise pour accom­pa­gner l’ou­til auto­ma­tique ? Très proba­ble­ment sur une partie, oui, mais proba­ble­ment moins en propor­tion qu’on n’en a besoin aujourd’­hui.

    Très certai­ne­ment aussi que le travail sera diffé­rent de celui d’aujourd’­hui, et que savoir inter­agir avec les outils auto­ma­tiques sera essen­tiel dans les compé­tences requises. C’est déjà partiel­le­ment le cas aujourd’­hui. On ne code pas comme au temps des cartes perfo­rées. C’est juste que les outils vont chan­ger et vont très proba­ble­ment prendre une plus grande place.


    Certi­tudes

    Je ne donne que mes certi­tudes, mes croyances et mes craintes. Je ne connais pas plus le futur que d’autres. J’ai juste le senti­ment, sans aucune tech­no­béa­ti­tude, qu’il est en train d’ar­ri­ver.

    On fait faire, dire ou espé­rer plein de choses quand on parle d’IA. Il ne s’agit pas de voiture volantes et autres IA sentientes ici.

    Ici je parle LLM, complé­tion et refor­mu­la­tion de textes. Je peux me trom­per et je ne mets ma main au feu à propos de rien, mais je me base sur des capa­ci­tés qui sont déjà là aujourd’­hui.

    Juger le futur

    Est-ce souhai­table socia­le­ment ? Est-ce soute­nable pour la planète ? Comment va-t-on gérer la tran­si­tion au niveau de la société ?

    Ce sont honnê­te­ment d’ex­cel­lentes ques­tions dont j’ai­me­rais avoir les réponses.

    Le fond n’est pas si je souhaite ou pas ce futur, c’est que je constate qu’il est en train d’ar­ri­ver, et que je veux pas faire semblant de l’igno­rer.


    Pour les futurs déve­lop­peurs

    Je crains une vraie crise dans le métier dans quelques années. Certains, beau­coup, vont rester sur le carreau.

    Je ne sais pas si j’en­cou­rage les plus jeunes à se lancer dans le déve­lop­pe­ment infor­ma­tique. Si vous le faites, je vous encou­rage à à la fois deve­nir très vite expert (parce que j’ima­gine qu’on aura besoin des experts pour complé­ter les LLM), et apprendre à coder via les LLM (pas juste « avec ») même si ce n’est pas rentable aujourd’­hui.

    Je suis conscient de la contra­dic­tion à deman­der aux juniors de deve­nir immé­dia­te­ment expert.

    Je ne suis pas certain qu’il y ait un avenir pour les déve­lop­peurs moyens, ou pour les junior. Leur valeur ajou­tée sera faible et il y aura dans un premier temps suffi­sam­ment de déve­lop­peurs formés pour jouer les experts sans devoir inves­tir des années dans des compé­tences inter­mé­diaires qui pour­raient deve­nir experts un jour.

    Pour choi­sir son futur

    Si vous êtes très tech, faites des maths, de la mani­pu­la­tion de données, des statis­tiques, et globa­le­ment de l’IA. Les places seront peut être chères et deman­de­ront des compé­tences plus avan­cées que pour être déve­lop­peur, mais il y aura du travail.

    Si vous avez envie de créer, pour moi l’ave­nir est plus dans les métiers du produit, des product mana­ger avec une colo­ra­tion et un inté­rêt tech­nique. Ça veut dire savoir parler busi­ness, marché, client, etc.

    Pour les déve­lop­peurs actuels

    Pour ceux qui sont encore majo­ri­tai­re­ment les mains dans le code, je vous conseille de passer au plus tôt dans le déve­lop­pe­ment via les LLM.

    Je sais que vous n’en ressen­tez pas le besoin, que ces outils font des erreurs que vous ne faites pas, que ça ne vous accé­lère pas aujourd’­hui.

    Le fond c’est que les plus jeunes ça les accé­lère, que demain ils auront déve­loppé leur exper­tise mais sauront aussi utili­ser ces outils, et qu’ils en compren­dront assez les limites et les défauts pour être l’ex­pert dont le métier aura besoin.

    Il y aura encore long­temps de la place pour des vieux experts du code pour la main­te­nance et pour les gros groupes qui ont plusieurs géné­ra­tions de retard. Il y a aujourd’­hui toujours besoin de déve­lop­peurs et Cobol. La vraie ques­tion : Est-ce le posi­tion­ne­ment auquel vous aspi­rez ?

    Et moi, direc­teur tech­nique ?

    Honnê­te­ment je ne sais pas. Je ne sais pas bien quel sera mon avenir.

    Le mana­ge­ment de grandes équipes de déve­lop­pe­ment risque d’être aussi has been demain que les vieux DSI dépas­sés d’aujourd’­hui. Est-ce que je veux être de ceux là ? Je ne sais pas.

    J’ado­re­rais prendre la tête d’équipes de data science, mais j’ima­gine qu’il y a une batte­rie de docteurs sur les rangs, avec une exper­tise qui me ferait défaut.

    Entre temps je vais proba­ble­ment au moins essayer d’in­té­grer des équipes qui ont sont alignées avec tout ce que je viens d’écrire.

  • Safe­tyCore

    Je vois passer pas mal d’af­fo­le­ment et de FUD à propos du nouveau service Safe­tyCore sur Android.

    C’est quoi ?

    Le service a été annoncé par Google. Il sert à clas­ser les messages entrants pour iden­ti­fier les usages malveillants ou douteux. Il iden­ti­fie aussi la nudité sur les images pour la masquer en l’at­tente de confir­ma­tion de l’uti­li­sa­teur.

    Ce dernier usage est indiqué comme activé par défaut pour les mineurs, qui béné­fi­cie­raient aussi d’une alerte infor­ma­tive quand ce sont eux qui envoient des images sensibles.

    Tout ça est traité en local. En consé­quence, ce n’est pas un service d’es­pion­nage, de tracking ou d’in­for­ma­tion vers les auto­ri­tés. Rien n’est échangé avec les serveurs de Google ou envoyé vers une autre desti­na­tion.

    Est-ce qu’on peut avoir confiance ?

    La confiance ça ne se dicte pas, et c’est très person­nel. Les déve­lop­peurs de Graphe­neOS, qu’on peut diffi­ci­le­ment quali­fier de pro-Google, ne semblent rien avoir à y redire.

    Alors oui, on peut imagi­ner que main­te­nant ou à l’ave­nir, Google utilise ce service ou une future mise à jour de ce service pour un usage malveillant. C’est toute­fois vrai avec tous les services de Google, que Google Play met à jour en perma­nence.

    Si vous n’avez pas confiance en Google, le problème n’est pas ce nouveau service. C’est tout l’OS qu’il faut chan­ger, pour un dont Google ne gère pas les mises à jour auto­ma­tiques. Note : Vous devrez quand même faire confiance à quelqu’un, ce sera juste quelqu’un d’autre.

    Ok, mais l’ins­tal­la­tion est cachée quand même…

    Je ne crois pas qu’on puisse dire que l’ins­tal­la­tion est cachée si l’évo­lu­tion a été annon­cée publique­ment il y a plusieurs mois.

    Elle par contre auto­ma­tique. Oui, c’est discu­table. Main­te­nant il faut voir d’où on vient pour comprendre.

    Par le passé Android était un nid à problèmes de sécu­rité. Les construc­teurs ne mettaient pas tous les appa­reils à jour, ou peu long­temps et avec une forte latence.

    Google a fait le choix, proba­ble­ment à raison, de sépa­rer l’OS en deux couches et de s’oc­cu­per lui-même de la mise à jour des services cœurs pour répondre à ces diffi­cul­tés. Il le fait pour les correc­tions comme pour les évolu­tions. Si un service cœur change ou s’ajoute, votre télé­phone en profite même si le construc­teur n’est pas dili­gent.

    Le service dont on parle est bien un service cœur, qui a un rôle de protec­tion. Il est normal qu’il ait suivi la voie de la mise à jour auto­ma­tique.

    C’est discu­table mais mieux que l’al­ter­na­tive.

    Pourquoi n’est-il pas Open Source ?

    Je ne sais pas, mais je peux tenter de suppo­ser.

    Le premier point, c’est que c’est un modèle de tri, pas un algo­rithme. Le code source a moins de sens si le cœur reste un gros paquet binaire.

    Ils auraient pu ouvrir le modèle lui-même, avec son appren­tis­sage. Je ne sais pas pourquoi ils ne l’ont pas fait. Peut-être est-ce pour ne pas donner d’in­di­ca­tion sur comment éviter le clas­se­ment, peut-être est-ce juste parce que l’IA est le sujet à la mode sur lequel ils veulent garder un avan­tage.