Enfin une bonne raison d’utiliser Linux : en utilisant xrandr et une détection de visage par la webcam, on pourrait enfin avoir un vrai écran virtuel dans lequel se déplacer en bougeant la tête.


Si vous voulez savoir quand vous devez recevoir votre dose de rappel, ce site est aussi simple que pratique.



Je trouve ça drôle …​ et horriblement triste en même temps. Et le complice qui sort son sexe, c’est vraiment l’illustration de l’homme de pouvoir qui ne sait pas la garder dans son froc


Une façon très cool de faire de l’injection de dépendances "légèrement" est d’utiliser le ServiceLoader. Et avec cet annotation processor, même pas besoin d’écrire le fichier à la main !


Un SCP où le monde n’est pas menacé, ça change. Et dans celui-ci, le jeu n’est pas aussi innocent que ce qu’on croit



Je suis absolument d’accord avec ce qui est écrit dans cet article (et le bullet point sur le fait que mon téléphone portable ait plus de puissance CPU/GPU qu’une instance chez un cloud provider me donne une idée horrible)


Review

Dans ce troisième tome, l'auteur explore le mythe de la hache noire, qui traverse l'histoire de sa communauté de souris.
Ca donne un très beau voyage en mer, puis un combat absolument épique contre un renard que j'ai trouvé monstrueusement terrifiant, avant un retour au pays qui n'est pas si simple.
Les décors sont beaux, les dialogues heureusement réduits à la portion congrue, et l'humanité de ces souris fait mouche.
Bref, c'est toujours aussi bien.

Je ne connaissais pas ce site de streaming *gratuit\*. Ca m’a l’air moins que légal, mais plutôt bien fait, et je parierai sur l’existence d’outils de téléchargement associés assez rapidement.


Depuis 2020, nous sommes tous plus ou moins confinés. Et nous faisons tous de la visio, encore et encore. Et je me suis rendu compte que la webcam de mon ordinateur portable était d'une qualité ... discutable. N'écoutant que mon esprit hacker, je me suis donc renseigné sur les alternatives.

Pied de portable alpha

J'ai naturellement commencé par chercher des moyens d'utiliser l'appareil photo de ma femme comme webcam (parce que franchement, c'est un appareil photo super canon). Mais les cartes d'acquisition, c’est pas donné. Et surtout, il faut un pied ... solide. Bon, j'en ai un, mais on arrive vite dans un bureau domestique assez lourd. Donc j'ai changé d'idée, d'une part parce que les optiques de mon téléphone sont de bonne qualité. Et d'autre part, parce que récupérer la vidéo de mon téléphone dans mon ordinateur est bien plus facile (avec des logiciels comme DroidCam, par exemple). Il me restait donc à trouver un support pour mon téléphone (bien moins lourd que l'appareil photo). Et si Amazon est riche d'innombrables produits, les hackers Lego ont aussi des tonnes d'idées. Et comme les lego sont avant tout des jouets, en plus de ces idées, je peux aussi faire le mien.

Pied de téléphone version beta.
On glisse le téléphone contre
la roulette et ça marche

C'est naturellement la solution d'imaginer le mien que j'ai choisi.

Avec un premier modèle (photographié ici devant l'ancien papier peint de ma cage d'escalier) un peu plus haut qu'un tabouret Ikea, comme on le voit sur la photo.

C'était un bon premier prototype, qui n'avait que le défaut d'être rigoureusement intransportable (normal, vue la taille). Cela dit, j'ai réalisé quelques présentations en l'utilisant, et c'était assez confortable, quoi qu'instable.

Et en plus, le pied avant était singulièrement fragile. J'ai donc, muni de ces apprentissages, créé une deuxième version beaucoup plus portable (qui s'appelle légitimement la version beta).

Cette version beta était beaucoup plus portable. Mais le fait qu'on glisse le téléphone entre deux paires de barres lego rendait son écran inutilisable une fois installé comme webcam. Qui plus est, elle était assez lourde.

J'ai donc tout démonté, et tout recommencé pour arriver à la version que j'utilise actuellement, la version beta 2 qui a quelques points communs avec la première beta.

la version actuelle, beta 2

Comme la première, elle se pose gentiment sur l'écran de l'ordinateur portable.

Et comme la première, le téléphone n'est pas dans le même axe que l'écran (sinon je me retrouve comme avec une webcam à être un homme-tête, ce que je n'apprécie pas).

En revanche, contrairement à la première version (qui reprenait le mécanisme de la version alpha), le téléphone n'est plus glissé entre deux paires de lego, mais accroché par une griffe qui se situe en haut. Et je dois dire que ça marche bien mieux !

Résultat, mon téléphone est bien posé sur mon écran, j'ai un support léger, mais qui peut encore être amélioré un poil pour être encore plus léger.

Mais franchement, je ne sais pas si j'attaquerai ça tout de suite, parce que je suis déja bien content de ce support.


Admettons que vous soyez un fan de sql …​ Ou que vous souhaitiez vous construire une base de données analysable de votre activité sur internet. Eh bien dogsheep serait une bonne idée …​ (mais ça n’est pas mon usage)



Ca me rappelle un peu les pogoplugs, mais en plus riche, beaucoup plus riche (et en même temps, je crois qu’on peut aussi faire du NAS sur mesure avec le Raspberry 4)


Très bonne nouvelle pour tous les paranoïaques (qui ne relient jamais leur télé à internet) : Samsung a décidé de bricker les télés volées dans un entrepôt à distance …​ Et on voit immédiatement tous les abus arriver.


Quelques exemples simples d’optimisation (j’ignorais la plupart de ces optimisations, et elles semblent vraiment efficaces)


En revoyant passer cet article, je me dis vraiment que je devrais faire cette conférence sur les patterns d’intégration expliqués avec Mindustry


Si vous cherchez à profiler un programme écrit dans …​ n’importe quel langage …​ ce site vous aidera à trouver votre bonheur



Review

Le vaisseau est le six-millième vaisseau.
Le vaisseau est utilisé par des employés de la corporation.
Les employés sont des humains ou des ressemblants. Les ressemblants sont comme des humains en apparence, mais sont plus forts, plus résistants, immortels, et leur logiciel est mis à jour régulièrement.
Le vaisseau contient des objets. Ces objets ont été tirés de la planète autour de laquelle semble orbiter le vaisseau. Ces objets peuvent - ou pas - avoir provoqué quelque chose chez les ressemblants.
Le vaisseau fait l'objet d'une enquête de la part d'une commission qui se doute de ce qui va se passer, mais n'interviendra pas, car ça n'est pas son rôle.
Que raconte ce livre ? C'est difficile à expliquer, puisqu'il s'agit avant tout d'un recueil de dépositions. Les dépositions sont celles d'humains ou de ressemblants, mais on ne le sait jamais. Elles parlent des objets, ou des incidents, ou de la vie à bord. Elles ne sont pas forcément dans l'ordre. Certains intervenants font plusieurs dépositions, et on peut parfois s'en rendre compte, parfois non. Et avec ce formalisme d'écriture, tout sombre dans une bureaucratie morne qui efface les sentiments, les désirs, l'humanité, pour ne laisser que le travail, et c'est bien évidement morbide.
Ca donne un roman court (encore plus court sans la mise en page qui laisse des moitiés de pages blanches un peu partout), pas facile à lire, mais pas si difficile à comprendre (en-dehors des motivations, qui restent absolument obscures, parce que ça n'est pas l'objet de la commission).
Et si formellement, c'est un exercice intéressant, ça n'est pas vraiment le genre de livre que j'affectionne.


En discutant codingame avec un collègue, on a parlé rapidement de contiperf (qui est maintenant déprécié). Du coup, j’ai cherché la version moderne pour lancer JMH avec JUnit …​ et voilà


Les coulisses de la politique semblent remplies de ce genre de sinistre individu …​



Review

Ce roman, raconté par la voix d'Agniezka, nous raconte une partie significative de sa vie.
Jeune fille de bucherons ayant grandi dans une vallée menacée par le Bois, Agniezka doit aussi affronter l'épreuve du choix, fait tous les dix ans par le Dragon, un magicien vivant dans la vallée et combattant lui aussi le bois. Personne ne sait comment il choisit les jeunes filles, on sait seulement que celles qui ont été choisies, lorsqu'elles quittent la tour du magicien, ne veulent plus vivre dans la vallée ... Et évidement, Agniezka jouera un rôle important dans le combat entre les hommes et le Bois.
J'ai vraiment beaucoup aimé ce roman qui joue habilement avec pas mal d'attentes.
Je m'explique.
Dans le premier chapitre, on apprend par exemple que les jeunes femmes qui accompagnent le Dragon ne veulent plus revenir dans la vallée. Et c'est assez marrant parce qu'en un sens, on comprend bien que des jeunes femmes de basse extraction ayant eu accès à une éducation plus poussée n'ont pas envie de rester dans ce coin perdu. Et puis on comprend peu à peu que les choses ne sont pas aussi simple, et que leur affection pour leur région n'est peut-être pas aussi "normale" que ça (même si pour chaque personne sur terre, le meilleur endroit pour vivre est souvent celui de leur naissance).
De la même manière, si on s'attend à une relation amoureuse entre l'apprentie et son maître, nos espoirs sont déçus. D'abord parce que le Dragon apparaît dès le début comme inaccessible à ce genre de sentiments, et ensuite parce qu'Agniezka elle-même ne s'y intéresse pas. Pourtant, l'autrice joue avec nos attentes amoureuses d'une manière aussi subtile qu'intéressante, d'une façon qui nous aide à comprendre toute la complexité qu'il peut y avoir dans des relations aussi mélangées (l'apprentissage se confond avec le sentiment amoureux et avec la pénible sensation d'être emprisonnée.
Et puis la relation amicale entre Agniezka et Kasia passe à travers des dangers tels qu'on comprend difficilement, au début, pourquoi elle dure. Et heureusement, au fil du roman, les choses s'éclairent, littéralement par magie, mais avec une magie assez subtile.
Autrement dit, on a affaire à un personnage central particulièrement bien dessiné, qu'accompagnent d'autres personnages tout en nuance, même les plus déplaisants d'entre eux (comme le Faucon, qui m'a particulièrement agacé).
Et ces personnages sont pris dans un récit que l'autrice arrive avec beaucoup de talent à faire tenir autour d'une forme de combat entre l'homme et une nature que celui-ci a corrompu. On a donc au début une menace terrifiante, mais d'ordre naturel, c'est-à-dire qu'on l'imagine aveugle, ravageant la vie des gens comme une inondation, avant de comprendre peu à peu qu'il existe un dessein, une motivation, et que cette motivation est hostile. En quelque sorte, c'est un péril qui se situe à mi-chemin entre le dragon (le lézard, pas le personnage) et l'abomination cthulienne. Et évidement, cette menace, qui plane sur chaque page du récit ou presque, donne une ambiance plutôt apocalyptique à ce récit d'une vallée dont les habitants savent qu'ils risquent d'y mourir ... salement.
Et c'est une forme de talent de la part de l'autrice de réussir à instiller une ambiance, une menace, alors qu'il ne se passe en fait pas grand chose de terrifiant ... au début. On pourrait penser que c'est une forme de facilité, parce qu'instiller la peur est en général assez simple. Mais les choses se compliquent quand on réalise qu’au-delà de la peur, d'autres sentiments existent : les gens peuvent être heureux malgré la menace qui pourra les détruire demain. Et dans ce roman, on ressent bien ce choc des émotions.
Et cette finesse dans la description des états d'esprit fait partie des grandes réussites de cette histoire, tant et si bien que la conclusion apparaît logique, rebouclant avec une vision de la sorcière beaucoup plus typique, mais en même temps porteuse d'un sens qu'on retrouve par exemple dans les link:../series/Magies_Secretes.html[trois soeurcières Magies Secrètes] de Terry Pratchett.
Pour tout dire, je comprends parfaitement pourquoi ce roman a reçu autant de prix (Nebula, Locus, Mythopoietic, British Fantasy, ...), parce que franchement, c'est un très très beau livre. Lisez-le, il y a peu de chances que vous soyez déçus.

Le fait que GitHub intègre complètement le bug tracking à toute sa chaîne de valeur permet des choses vraiment chouettes, comme la transformation automatique de tickets de bugs en code (du test, de la config, …​)




Très chouette inventaire des différents programmes utilisables pour créer des constructions lego virtuelles. Je ne dis pas que ça pourrait me servir (je préfère la version physique), mais ça me donne quelques idées …​



J’ai déja dû partager la version originale. Mais en version traduite en français, c’est encore plus percutant


[archiloque.net Fichiers de configuration]

Très bon article de vulgarisation sur les fichiers de configuration, rappelant bien la limite de Turing : dès que votre fichier de configuration devient programmable, il vaut mieux utiliser un vrai interpréteur.


Avec cette carte esp32 pour Minitel, vous pouvez enfin retrouver l’expérience du terminal physique (avec supplément de clavier louche). C’est fou, génial, bizarre, et complètement green




Oh mais c’est pas mal cet outil de binding JS dans le HTML! Ca ajoute facilement de l’animation.




Oh super : comme Google et Microsoft disposent de protocoles concurrents (Chromecast et Miracast), Google a déprécié le support de Miracast à partir d’Android Oreo …​



Parfois sur Internet, on tombe sur des trucs vraiment bizarre …​






Une feuille de style CSS bien plus légère que Bootstrap (évidement) à laquelle je devrais jeter un oeil pour mon site personnel




Le portrait qui est construit dans cet article de la personnalité d’Herbert est terrifiant. Et l’angle de vue sur le récit me fait reconsidérer beaucoup de choses …​


Review

J'aime beaucoup Neil Gaiman, et le dessin de Dave McKean est vraiment sympa.
Mais cette histoire de femmes-fleurs recherchant une forme de liberté dans la fuite m'a paru assez creuse.
Et si il y a bien une originalité certaine dans cette histoire, je trouve que le récit se délite assez rapidement.

Je suis impressionné par ces gens qui ont implémenté une machine virtuelle x86 en WebAssembly, pour que n’importe quel langage puisse s’exécuter dans le navigateur.



Si vous êtes pythonistes, voici toute la liste des étapes pour créer votre projet chez GitHub. Si vous n’êtes pas pythonistes, le début est quand même intéressant.


Un ebook sur l’apprentissage de la programmation à des chercheurs. Ca change l’angle de vue


Très bon article de Cory Doctorrow faisant le lien entre la science-fiction et les luddites.Et il y a effectivement un vrai rapport entre les deux.


La question est chouette, mais je suis stupéfait par la réponse d’un suédois qui explique qu’en suède, en février, la sécurité sociale choisit des gens au hasard pour les mettre en congés maladie. C’est fou (si c’est vrai)





Un guide de sécurité sur internet qui m’a l’air raisonnablement clair et progressif.


Tout le mal de la technologie moderne exposé en un article. Et j’ai envie de dire à tous les utilisateurs de produits Apple que je connais que vous soutenez ce genre de comportement prédateur …​


Un bouquin qui peut être très chouette sur l’écriture d’interpréteur.


T’imagines que le mec est dans un gouvernement de droite et demande l’extension du rôle de la sécurité sociale. Mais qu’est-ce qu’il fait là ? (son métier, je sais)




Je trouve l’idée absolument fascinante, mais la limitation aux followers ou aux interactions me gêne un poil (j’aurais préféré pouvoir afficher d’autres choses)



Par Aurélie Vache et Guillaume Laforge.

La présentation commence en doublage en langue des signes fait par Guillaume, en plus de la vélotypie faite par le DevFest (bravo!). Et on va parler de le faire aussi par des APIs.

30% des français sont impactés directement ou pas par le handicap. Les personnes en situation de handicap ne sont pas une minorité. Et les aménagements d’accessibilité ne profitent pas seulement aux personnes en situation de handicap.

L’accessibilité n’est pas seulement l’ajout de balises ALT aux images. De la même manière, les assistants vocaux ne sont pas forcément très accessibles.

Google propose des APIs potentiellement utiles (comme l’exemple de Video intelligence API - qui inclut de la transcription en texte). L’appli d’exemple de Guillaume est open-source (TODO demander l’url). Elle est codée en Python

Ca ressemble à du fourchelangue

L’api est très simple à utiliser.

Et l’accessibilité, c’est avant tout un ensemble de moyens permettant d’augmenter l’expérience.

Reconnaissance de la parole

Par exemple, la reconnaissance de la parole a de nombreux usages (messages vocaux, podcasts, centres d’appels). Les sous-titres automatiques ne sont pas parfaits, mais dans l’ensemble la qualité s’améliore.

La reconnaissance de la parole, c’est quand même pas tout neuf : ça commence en 1971, et il y a tout un tas d’innovations sophistiquées (chaînes de markov cachées, réseaux de neurones récurrents, …​).

Google fournit une API de transcription de parole en texte, qui marche dans 180 langues. On peut lui ajouter des termes spécifiques (typiquement le vocabulaire technique). On peut faire de lra reconnaissance synchrone ou asynchrone. Par exemple, pour retranscrire les castcodeurs (un podcast un peu long, Guillaume le sait), cette API prendra environ 15 minutes.

Toujours pour les castcodeurs, l’API permet également d’identifier les différents orateurs (avec la diarization). Et ça donne un JSON qu’on peut facilement parser (en Goovy, évidement) pour reconstruire visuellement le dialogue.

Le taux d’erreur est assez bas (4%), mais encore plus élevé que l’humain. Des alternatives existent: sonix.ai, rev.ai, Microsoft cognitive services

Transcription du texte

C’est utile pour de multiples populations (aveugles, dyslexiques, les enfants avant l’âge où ils maîtrisent la lecture). Ca peut servir pour améliorer par exemple le fameux message "rouge piéton" aux intersections, mais aussi pour lire un PDF facilement.

Le synthétiseur de parole peut partir d’un fichier plat (associé à un fichier SSML) pour produire un mp3. L’API peut parler dans une quarantaine de langues, avec plus de 220 voix, avec une vitesse variable. L’API de Google utilise WaveNet.

Aurélie nous fait une démo en GO (Guillaume aurait préféré des legos, même si il aime le logo). Et quand Aurélie tente aily tts "j’aime les gophers", Guillaume nous parle de son amour pour les gaufres. Et le code générant tout ça est quand même sacrément simple : on déclare les paramètres de l’appel, et boum, ça marche.

Ce genre d’API est utilisé par le site de Numerama, le blog d’Amazon, et même un mod pour HeartStone.

Par contre, ce genre d’API n’interprète pas correctement les fancy fonts, ce qui rend le texte illisible.

Dans Android, la fonctionnalité Live Transcribe est une fonctionnalité d’API qui va transcrire ce qu’entend le micro du téléphone en texte (y compris les bruits ambiants). Et Live Caption permet également de sous-titrer tous les sons qui viennent du téléphone (Chrome fournit aussi cette fonctionnalité).

Vision API

Avec cette API, on peut détecter les différents objets présents sur une image. Guillaume a développé avec cette API une application permettant anonymement d’uploader des photos, dans lesquelles il détectera automatiquement les objets et affichera la liste de ces objets. En bonus, on peut détecter automatiquement les "contenus incorrects" (selon la classification faite par Google). Et si vous voulez rendre vos images accessibles, cetre API permettra d’ajouter les balises d’accessibilité.

Attention

Saviez-vous que les logiciels de reconnaissance de la parole reconnaissent mieux les hommes que les femmes ? Et même si Mozilla a lancé le projet Common Voice, il y a encore 77% de voix masculines. Chez Google, le projet Euphonia vise à aider les personnes ayant des voix atypiques (comme le bégaiement d’Aurélie). Apple a un projet de reconnaissance de parole avec bégaiement (dans les podcasts). Chez Amazon, le projet voiceitt vise les mêmes objectifs.

Conclusion

Il n’y a pas besoin d’avoir une thèse pour pouvoir utiliser ces APIs, qui sont déja performantes et peuvent aider le quotidien. Et même si ce sont de belles idées, l’accessibilité n’est pas réservée au machine learning. Et pour Aurélie, la plus grose innovation d’accessibilité est la borne de commande tactile chez McDo. Dans le même ordre d’idée, Doctolib est une belle idée. Même si le site de Doctolib n’est pas parfaitement accessible …​


par William Badiabantou

William a créé son premier langage chiffré en sixième pour communiquer avec sa copine. Il a créé son deuxième pour écrire un livre ("The invisible") racontant l’histoire d’une civilisation inspiré du manuscrit de Voynich, de Kryptos, et de plein d’autres langages.

Un langage, avant tout, c’est un moyen de communication. Un langage de programmation permet à un humain de communiquer avec un ordinateur. Le compilateur permet de transformer le langage de haut niveau (un flux de caractère) en langage de bas niveau. Le compilateur effectue un ensemble de transformation pour passer de l’un à l’autre.

Le front-end analyse le code source Le middle end optimise Le backend génère le langage bas-niveau.

Pour lire ce langage, il faut définir une grammaire (formes BNF ou EBNF).

Donc maintenant, on va écrire un compilateur, en Rust, évidement. Le projet s’appelle qhantoom et est disponible dans GitHub.

Les possibilités d’interprétation d’un langage sont multiples

On a donc

  • le tokenizer lit la chaîne de caractère et y associe des tokens
  • le parser génère l’AST à partir de ces tokens
  • l’analyzer contrôle les types définit dans l’AST et valide que les éléments sont bien compatibles
  • le code generator convertit l’AST ou une représentation intermédiaire en code exécutable (en tenant compte des scopes de déclaration des différentes variables)

Evidement, tout ça peut se faire en AOT (ahead of time) ou JIT (Just In Time)

William utilise cranelift pour effectuer ces opérations. Et on passe à la démo.

Cette démonstration nous montre un langage complet, pour lequel William dispose d’un repl, et d’un compilateur (offerts par cranelift). C’est vraiment séduisant.

En conclusion, il y a beaucoup de concepts à aborder, qui ont été fortement simplifiés par les travaux académiques. Et l’énergie follement chouette de William m’a beaucoup rappelé Xavier Van de Woestyne. Avec ce talk, on était vraiment dans le turfu !


Une keynote d’Audrey Neveu et Agnès Crépêt.

Premier sujet, les impacts environementaux. Evidement, on pale des rejets de gaz à effets de serre. Mais on parle aussi de l’utilisation de l’eau (par exemple la sécheresse à Taïwan), et des matières premières. Une mesure existe, le MIUS (material input per unit of service). Un smartphone est à 1200 (ça fait 120 Kg par smartphone).

Quand on regarde les émissions de gaz à effet de serre, 84% proviennent de la fabrication et à l’usage des appareils (et 16% pour le réseau). Chaque année, il se vend 1,5 milliards de smartphones. Et que les smartphones ont une durée de vie moyenne de 2 ans. Liée soit à la mode, soit aussi au mode de construction (batteries et écrans collés). Qui plus est, moins de 20% des matières d’un smartphone sont recyclées. Chaque année, on produit 50 millions de tonnes de déchets.

Fabrication d'un téléphone

Extraction

Avant tout, il faut des minerais, puisqu’il y a près de 200 composants, basés sur une cinquantaine de minerais, qui sont présents dans les solutions d’énergie verte (éolien, photovoltaïque, batteries de voitures électriques, …​). Et évidement, il faut les raffiner. Par exemple, pour raffiner l’or, on utilise soit du mercure, soit du cyanure. Avec des impacts environnementaux terribles. Dans le même ordre d’idée, pour extraire le cuivre, on utilise de l’acide sulfurique, qui se diffuse dans les nappes phréatiques et vient contaminer l’eau potable. Ca c’est pour les mines industrielles. Dans les mines artisanales, il y a d’autres problèmes : travail des enfants, absence de règles de sécurités. Qui plus est, Fairphone essaye de ne pas utiliser de minerai de conflit, c’est-à-dire de minerai extrait par des mafias ou des gouvernements utilisant cette extraction pour financer leur guerre.

Assemblage

Les smartphones sont majoritairement assemblés en Chine ou en Inde, essentiellement par des femmes. Par exemple, Foxconn emploie 1,3 millions d’employés et a, grâce à ses exportations, un pouvoir politique énorme en chine comme à Taïwan. En Chine, le revenu minimal est d’environ 253 €. Pour obtenir un revenu décent, ils souhaiteraient 650 €. Chez Fairphone, ça a coûté 1,85$ par téléphone …​

Usage du téléphone

Si vous connaissez la loi de Moore, vous ne connaissez peut-être pas la loi de Wirth. Par exemple, en 8 ans, les besoins processeur de Windows ont été multiplié par 8 et les besoins mémoire par 50. De la même manière, Office demande 150 fois plus de puissance maintenant. Qu’est-ce qui justifie cette augmentation des besoins ?

Le smartphone est le pire exemple de ça : il peut vous être livré par votre opérateur avec deux surcouches à l’OS. Et ces surcouches viennent avec des logiciels installés, qui vont venir avec des tâches de fond (utilisables pour partager votre localisation avec des éditeurs, typiquement).

Obsolescence programmée

Côté matériel, les puces ne sont conçues pour ne supporter qu’une ou deux versions d’Android. Et mettre à jour Android au-delà de ces versions est …​ risqué (pour l’anecdote, j’ai briqué une tablette comme ça).

Effet rebond

L’informatique facilite la mise en place des effets rebonds : l’amélioration des technologies permet de nouveaux usages qui in fine sont plus consommateurs que les précédents. Quelques exemples.

  • le passage au cloud a entraîné beaucoup plus d’applications les utilisant, et donc une consommation d’énergie augmentée
  • l’augmentation de la bande passante a permis le streaming (qui utilise près de 80% de la bande passante aujourd’hui)

Design d'attention

Les techniques de design d’attention, pour lequel des cours existent dans les grandes plateformes, visent à augmenter votre dépendance aux plateformes pour vous pousser à y passer plus de temps, pour consommer plus de publicité et fournir plus d’information

Vie privée

Les outils des plateformes surveillent les utilisateurs pour accumuler plus de données. Les usages funs permettent par les mêmes moyens des choses moins fun. En France, en 2020, des soignants ont été suivis après des manifestations par des drones pour être ensuite arrêtés pendant la pandémie. La reconnaissance faciale, que vous utilisez pour déverrouiller vos logiciels, est aussi utilisée par le gouvernement chinois dans la répression Ouighour.

The platforms that connect us also control us

https://www.thesocialdilemma.com/

Vient maintenant le marronier du moment: Facebook. Par exemple, si vous pensez ne pas avoir de profil facebook (comme moi), jetez un oeil aux shadow profiles crées à partir des des informations à votre sujet détenues par vos proches. De la même manière, la modération de contenu est un vrai problème chez facebook, puisqu’il vaut mieux ne pas empêcher les annonceurs de payer. On peut également parler de leurs expériences menées sur leurs utilisateurs snas encadrement scientifique pour déterminer comment le flux d’actualité impacte l’humeur des utilisateurs. Ou encoe du colonialisme digital avec leur service free basics, qui visait à "offrir" un accès internet gratuit, mais avec des biais induits par l’entreprise assez pénible (accès limités, informations partiales, voire même dans une langue incorrecte). Toujours dans le groupe facebook, Instagram sait maintenant que le réseau social a un effet toxique sur les adolescent(e)s grâce à un rapport interne, laissé sans conséquence.

Et comme Audrey et Agnès sont passionnées par leurs sujets, elles débordent de l’horaire (ça arrive à tous les speakers du monde).

Conclusion

Nous avons un rôle de sachants, en permettant aux utilisateurs de devenir autonomes sur ces sujets.


par Alexandre Jomin.

Alexandre est manager dans une startup de mise à disposition de vélos d’entreprise.

Un jour, on peut vous proposer un poste de manager. Ca n’est pas une promotion, mais un changement de carrière. Cette présentation n’est évidement pas une formation au management.

Mais au fond, c'est quoi un manager ?

  • Garant d’une équipe
  • Responsable de la communication avec les équipes
  • responsable du bon déroulé des projets
  • responsable du reporting
  • (il en manque un)

Quelles sont les motivations

  • Sentir que c’est le bon moment
  • Remplacer les tech skills par les soft skills
  • Avoir envie d’accompagner
  • Diversifier ses activités
  • Avoir envie de monter en responsabilité

Ce qui va changer

D’abord il faut communiquer beaucoup plus vers l’équipe et vers l’extérieur. Par ailleurs, il faut être capable de synthétiser les informations, à nouveau dans les deux sens. Il faut également porter les choix de la direction auprès de l’équipe.

Affronter ses peurs

En tant que développeur, on déteste avant tout les interruptions. Manager, c’est se mettre dans un rythme très différent, et la méthodologie pour être productif est très différente. Parce que le rôle du manager est d’être disponible pour l’équipe et le reste de l’entreprise. Et donc être interruptible. Vous devez même faire rempart pour garantir la productivité de l’équipe. Pour minimiser la durée d’interruption, Alexandre utilise beaucoup les todolist (et la fonction remind later de slack).

Le paradoxe du manager

Pour un développeur, il est facile d’évaluer sa productivité (via l’activité GitHub/GitLab, par exemple). Le manager, lui, n’a pas vraiment d’objectif concret, ni d’ailleurs de moyen de mesurer sa productivité. Ca mène au paradoxe de journée très remplies, sans impression d’avoir réellement produit.

En fait, en tant que manager, on donne les clés de la production à l’équipe. Le manager doit travailler à son inutilité. Dans une équipe qui fonctionne bien, on peut d’ailleurs avoir cette impression

Des hard skills aux soft skills

En tant que manager, on requalifie ses hard skills. On peut utiliser y sa capacité à apprendre et à s’adapter.

Trouver son style de management

Etymologie

Ca vient d’augeo, qui veut dire augmenter. C’est la racine de l’autorité, qui est le rôle du manager.

Il n’y a autorité que quand il y a augmentation.

Michel Serres

Le rôle du manager, c’est de comprendre les attentes de l’équipier pour les mettre en relation avec les objectifs de l’entreprise.

Comprendre l'autre

Vous devez mettre à profit les profils des salariés pour les aligner avec les objectifs de l’entreprise. Il faut avant tout se connaître soi-même pour pouvoir travailler avec les autres.

On peut utiliser la méthode des 5 drivers

  • Sois parfait
  • Fais plaisir
  • Fais des efforts
  • Sois fort
  • Dépêche-toi

Ces drivers éclairent le mode de communication qu’on peut avoir avec les autres. Ca conditionne pas mal les échanges avec les autres

Puiser dans ses expériences passées

Un ancien manager basait sa vision des développeurs sur le nombre de contributions données par GitHub/GitLab. Ca a aidé Alexandre a forger sa propre méthode : en essayant d’éviter cette mesure

Etre garant d'un planning

Estimation des tâches

Rappel de la loi de Hofsdater "Il faut toujours plus de temps que prévu, même en tenant compte de la loi de Hofsdater". Il y a toujours des imprévus dans les projets. Et les gens sont mauvais pour estimer la difficulté. Qui plus est, on est mauvais en terme de perception du temps. Par exemplen pour un alpiniste, évaluer le temps de parcours d’une nouvelle voie dépend de la météo, du matériel, et d’autres facteurs. Le framework Cynefyn aide beaucoup en segmentant les tâches en quatre grandes catégories :

  • Simple
  • Compliqué
  • Complexe
  • Chaotique

Priorisation du backlog

Choisir, c’est renoncer (ou plutôt dire "pas tout de suite"). L’ancienne équipe d’Alexandre a utilisé le WSJF (weighted shortest job first). Ca permet de sortir du backlog passioné pour arriver à une vision analytique.

Concilier build & run

C’est souvent compliqué, parce qu’on intègre à tout ça une grosse inconnue. D’une façon "classique", la seule méthode a consisté à détacher une personne de l’équipe pour s’occuper du run (en rôle tournant chaque semaine). Cette personne fait comme le manager rempart pour protéger la productivité de l’équipe.

Construire une équipe

C’est le privilège du manager. Quand on recrute, on recrute une personne qui va prendre une place dans l’équipe. Est-ce que cette personne est compatible avec l’équipe et avec le projet de l’entreprise

Quelle taille d'équipe

Chaque taille d’équipe présente des défis particuliers. Le nombr d’interaction pourrait être modélisée par (x²-x)/2. Autrement dit, quand on ajoute une personne, on rajoute autant d’interactions qu’il y a déja de membres. Le risque, c’est de perdre en capacité de communication. Cette règle est généralement associée à la loi de Brooks ("ajouter des personnes à un projet en retard augmentera son retard").

Au-dela d’une certaine taille, l’être humain n’est pas capable de dénombrer rapidement. Et en fait, ça impacte la capacité à interagir en grands nombres (donc pour faire les dailys quand on dépasse 5-6 personnes).

C’est peut-être ce qui sous-tend la règle de la pizza-team chez Amazon …​

Evolution d'une équipe

Par ailleurs, pour un manager, voir son équipe évoluer en homéostasie est vraiment flatteur. Qui plus est, une équipe est immutable : quand on ajoute/supprime/change un membre, c’est en fait une nouvelle équipe qui naît.

A retenir

Ecrivez les règles

Le but n’est pas d’écrire le code pénal, mais plutôt de définir un cadre pour permettre aux collaborateurs de s’exprimer en son sein. C’est précieux lors de l’onboarding, mais également en phases critiques.

Attitude et exemplarité

C’est difficile de demander plus aux autres qu’à soi-même. En tant que manager, il faut gérer la toxicité, c’est-à-dire tuer les conflits pour garantir un bon climat dans l’équipe.

Encouragements et reproches

Les encouragements doivent être publics, et les reproches privés. Qui plus est, les reproches doivent être factuels, sans jugement.

Communication

Pensez à remplacer "je" par "nous", parce que c’est l’équipe qui travaille, pas le manager.

Meeting 1:1

C’est un très bon moyen de développer une relation de confiance entre manager et managé. On va essayer de s’y poser des questions générales. Alexandre pose toujours les mêmes questions

  • Est-ce que tu prends plaisir à réalise tes tâches ?
  • Est-ce que tu apprends au quotidien ?
  • Quelle est la santé de la base de code ?
  • Y a-t-il quelque chose qui te bloque ?

Conclusion

C’est un changement de cap dans la carrière qui met en valeur les soft skills. Il faut y faire le deuil du code quotidien. On se met au service de l’équipe. Et c’est bon de faire preuve de bienveillance.


Par Louis Tournayre

Commençons notre aventure avec un site qui ne marche pas bien. La direction demande aux ops de faire une version Halloween, qui a été livrée après Halloween. Comment livrer la version de Noël ? La direction a entamée des séances de brainstorming. Les développeurs aimeraient faire des livraisons plus petites, et disposer de plus de temps pour effacer la dette technique. Pour ça, il faut faire plus de livraisons, et que ce soit des non-événements. Dans l’équpe d’ops, c’est la cata, parce qu’il faut passer des documents de livraison à quelque chose de plus rapide. En en discutant avec les collègues, Louis propose de packager les applications dans des conteneurs Docker livrés dans Kubernetes en livrant grâce aux principes GitOps.

NOTE: Toute la présentation est animée façon livre dont vous êtes le héros, ce qui dynamise bien un sujet qui arrive au moment de la digestion.

GitOps n’est pas une révolution, c’est simplement l’application des concepts de livraison continue au monde Kubernetes grâce à la boucle de réconciliation. On a deux principes fondamentaux . Git est la source de vérité . Chaque environnement est décrit dans une branche différente.

Et dans chaque branche, on ne met que l’état désiré de l’infrastructure. Et évidement, on ne touche pas à l’infrastructure à la main.

GitOps, c’est un peu l’anneau unique du déploiement dans K8s. Pour ça, on va déployer un opérateur Kubernetes ArgoCD, qui va lire les informations depuis les dépôts Git configurés pour appliquer les changements.

Et Louis se lance dans une démo d’installation d’argocd dans un cluster Kubernetes. A laquelle suit logiquement le déploiement d’une application dans K8s avec ArgoCD. Et l’interface d’argoCD est vraiment bien faite : on y voit toutes les ressources nécessaires au fonctionnement de l’application (ce qui nous montre que l’application est correctement déployée). Hélas, pour l’instant, on ne déploie que l’environnement de prod. Comment faire pour déployer ces autres environnements pour lesquels les URLs, le nombre d’instance, les connexions aux bases de données. On a le choix entre Helm et Kustomize.

Helm fournit le templating, le packaging, et un système de gestion de dépendances. Testons ce déploiement avec YAML. Ca marche bien. A noter qu’ArgoCD rafraîchit les différentes branches toutes les 3 minutes.

Passons maintenant aux secrets (les mots de passe JDBC, par exemple) potentiellement contenus dans l’application. On pourrait utiliser Vault, qui est très sophistiquée et marche très bien, mais notre équipe n’a pas encore la compétence. On ne doit pas utiliser les secrets natifs de K8s, puisqu’il s’agirait simplement d’encoder les mots de passe en base 64 pour les stocker dans notre repository Git. C’est une mauvaise idée. On va donc utiliser des "sealed secrets", c’est-à-dire des secrets chiffrés via des clés asymétriques. Il y a quelques subtilités dans la gestion de ces sealed secrets (en termes de namespaces) que Louis détaille.


par Jean-Phi Baconnais & Guillaume Le Floch

Tout le monde parle de Quarkus en parlant de la faible consommation de mémoire et du bon temps de démarrage. Quarkus fournit un mécanisme d’extension qui permet facilement de l’étendre. Et on ne va pas parler de tout ça.

Mais plutôt de l’expérience développeur.

Quarkus CLI

Elle est développée avec picocli et distribuée avec jbang. On peut créer des projets, gérer les extensions, démarrer et construire nos applications. On peut également lister les extensions disponibles.

Extension VSCode

Avec le plugin Java fourni par RedHat, on peut faire des trucs vraiment puissants

Quarkus dev mode

Il permet le rechargement à chaud de l’application, pour fournir une expérience développeur fluide. Ca fonctionne sur le code, les dépendances (et même la version de Quarkus). Les variables déja initialisées seront conservées dans la plupart des cas.

Quarkus dev services

Pour démarrer facilement un service dont l’application dépend, il est possible de démarrer la dépendance directement automatiquement depuis les tests.

Quarkus dev UI

Quarkus fournit une interface d’admin qui affiche l’ensemble des services démarrés par l’application (y compris l’ensemble des beans CDI, et ça c’est très cool).

Continuous testing

Comme avec Infinitest, quand on modifie les classes, les tests associés sont exécutés automatiquement.



Un article intéressant pour les devrels, mais aussi pour toutes les personnes qui s’intéressent à leur impact communautaire


Un pont bidirectionnel entre Python et Rust. L’idée est vraiment chouette, je crains juste l’enfer de l’interopérabilité des structures.



C’est pas pour dire, mais en faisant du Java (qui est juste deux fois moins efficace que le C) et du Rust (qui est 1.03 fois moins efficace que le C), je ne suis pas mauvais …​


Une alternative open-source à Notion. Ca a l’air bien (d’autant plus que le back-end est codé en Rust), mais je n’ai pas trouvé la doc d’installation.




Review

J'aime beaucoup John Varley.
Et si j'ai lu Le Système Valentine et Gens de la Lune il y a un bon moment, je garde le souvenir d'un auteur sacrément intéressant, avec un un humour assez iconoclaste (qui se révèle pleinement dans la trilogie Gaïa).
Dans ce roman-ci, qui se passe assez longtemps après l'action de Gens de la Lune, on suit les pas d'un nostalgique des films noirs américains des années 50 (ambiance détective privée, femme fatale et mafieux terriblement méchant) qui se prend pour un détective privé, accompagné de son chien super-intelligent. Et évidement, il recevra la visite d'une femme nécessitant son aide. Et évidement, cette enquête l'emmènera, avec son chien, dans une direction tout-à-fait inattendue.
On retrouve dans ce roman ce qui fait le talent de Varley : un humour parfois un peu leste, mais toujours bien trouvé (surtout quand le chien Sherlock porte le récit), une lune complètement transformée, remplie des fameux disneylands qui étaient un des éléments magiques des précédents romans, et puis des personnages impeccablement dressés. Parce que ce roman est en fait un portrait psychologique intéressant, ou plutôt un double personnage. Evidement, Bach, le personnage principal, est torturé à souhait (à cause précisément de Gens de la Lune), et on plonge au cours de cette histoire dans ses côtés les plus sombres. Et c'est une exploration vraiment intéressante. A côté de ça, Sherlock, comme tous les personnages de chiens (sauf Gaspode dans les romans de Terry Pratchett) est magnifiquement et superbement gentil, et bon. On a vraiment envie d'aider ce chien qui veut aider ce maître. Et la complémentarité entre l'humain qui a besoin d'aide, et le chien qui a envie de l'aider.
Malheureusement, un défaut sévère vient pour moi diminuer grandement l'intérêt de ce roman. En effet, si cette enquête démarre bien, le passage dans Irontown, et en particulier le fait de rejouer les événements de Gens de la Lune sous un autre angle pour en tirer une autre conclusion, m'a paru souligner de façon flagrante un des défauts de l'auteur : ce côté un poil nonchalant, qui utilise une intrigue un peu trop simple, ou déjà trop utilisée, pour éviter d'avoir à y réfléchir et faire à la place des blagues un peu lestes. Autrement dit, John Varley pèche par facilité.
L'inconvénient, c'est que si vous n'êtes pas fan de cet auteur, comme moi, vous risquez de trouver ce roman trop léger, trop superficiel pour être réellement intéressant. Et ça malgré cette intéressante relation entre l'homme et son chien.



En lisant ce très intéressant article sur le calcul de valeurs dépendantes "à la manière d’un tableur", j’ai eu ce frémissement intellectuel qui m’a poussé à me demander si ça marcherait bien pour codingame. Et je pense que ça marcherait terriblement bien.



Il va falloir que je regarde ce truc un peu sérieusement, ça m’a l’air riche de possibilités assez fascinantes


Il y aurait un plugin OBS pour faire de l’écran vert virtuel ? Cool !




Très belle présentation sur les moyens d’optimiser un build maven. Certains résultats sont surprenants.



Un DSL de définition de recettes de cuisine. C’est curieux (et sacrément malin)


Un outil de gestion spécifique des ADR. C’est intéressant, mais je ne suis pas toujours pas sûr d’aimer ça.


[MNG-5102 Mixin POM fragments - ASF JIRA]

Depuis 2011, des utilisateurs demandent la création de mixins Maven. Et pour la première fois, j’ai un vrai beau cas d’utilisation.


Ca répondrait à un problème que j’ai actuellement, mais je crains fort que la solution soit pire que le mal …​



Ca par exemple ! Les oiseaux sont capables de parténogénèse dans certains cas (cet article documente le cas de condors de Californie, pais ça marche aussi chez les poules)