NG Baguette Conf 2025

Je profite de cette revue de presse pour (re-)partager la conférence que je co-organise le 24 mai 2025 !

Cette conférence est dédiée au framework Angular et son écosystème. C'est une conférence qui n'a aucun équivalent en France aujourd'hui ! On a rassemblé des très bons speakers, avec des sujets super intéressant pour à la fois découvrir certains aspects du framework et se tenir à jour des nouveautés récentes d'Angular.

Les billets coûtent 30€ avec petit déjeuner et repas du midi inclus, car on souhaitait faire un événement accessible au plus grand nombre ! Il reste encore quelques places donc il est encore temps de vous inscrire ou partager autour de vous ! 🤓

Frontend

Rewriting my site in vanilla web

#HTML #CSS #JavaScript #Frontend

L'auteur de l'article explique sa démarche de passer d'une plateforme complexe à un site homemade, complètement static, reposant uniquement sur des standards du web moderne : HTML, CSS et JavaScript. Ça lui permet de ne plus dépendre de choses complexes ou de devoir suivre des patterns / règles / structures autres que celle qu'il s'impose.

J'aime bien cette démarche : il sait ce dont il a besoin, il sait ce qu'il veut, il élimine toute la complexité pour se concentrer là-dessus.

Against Horizontal Scroll

#HTML #CSS #Frontend #UI #UX

Je suis plutôt d'accord avec l'auteur : le scroll horizontal n'est pas du tout pratique, encore plus sur mobile, mais y'a quelques cas où c'est pratique (comme avoir des blocs de code un peu large). Il donne une solution qu'il a trouvée sur un autre site :

<body>
  <main>
    <article>
    <h1>
      Against Horizontal Scroll <time class="meta" datetime="2025-04-22">Apr 22, 2025</time>
    </h1>
    <p>
      What’s in common between these two blog posts (pardon me, my fellow
      crustaceans of lobster variety)?
    </p>
    <figure class="code-block">
      <pre><code>A bunch of code here.</code></pre>
    </figure>
    </article>
  </main>
</body>
/* Set the body width to how wide you want the code to be */
body {
    max-width: 80ch;
    padding: 2ch;
    margin-left: auto;
    margin-right: auto;
}

/* Then, limit every "paragraph" of article to be narrower.
 * Paragraph is just any descendant of the main article tag.
 */
article > *,
article > section > *
{ max-width: 55ch; }

/* Finally, opt-out of narrow width for figures with code */
article > section,
article > figure,
article > section > figure
{ max-width: 80ch; }

figure.code-block > pre > code {
    overflow-x: auto;
}

Backend

GitHub - holepunchto/bare: Small and modular JavaScript runtime for desktop and mobile

#JavaScript #Backend

Encore un runtime JavaScript mais modulaire : on peut n'embarquer que ce dont on a besoin pas plus. C'est une bonne idée je trouve, y'a des cas où JavaScript avec son approche event driven en event loop est super adapté, mais Node.js n'est pas toujours adapté comme c'est un monolithe. Ici c'est un compromis intéressant.

Par contre autant c'est basé sur v8, autant à aucun moment l'idée est de supporter l'api Node.js ou l'api d'un autre runtime. Bare a sa propre API qu'on devra apprendre à manipuler.

IA

Show HN: I vibecoded a 35k LoC recipe app | Hacker News - Liens en vrac de sebsauvage

#IA #Vibe-Coding

Il était une fois un gars qui coda une app en vibe coding avec une IA parce que c'est tellement plus rapide que quand c'est un humain qui fait le travail. Évidemment le gars consciencieux a tout bien testé et tout, surtout en sachant qu'il allait diffuser un site de recette de cuisine… Évidemment que non il a rien testé ! Ça donnait un résultat à peu près ok, donc go prod ! 💩

Résultat : des recettes avec des ingrédients complètement farfelus (viande de guêpe, de rat, de chien), de truc dégueu (80 litres de diarrhée humaine) ou carrément dangereux (glace au cyanure)…

Je suis complètement d'accord avec ce que dit Sebsauvage sur le fait que faire du developpement c'est beaucoup plus que produire du code.

Et je le cite complètement sur cette phrase :

Le "vibe coding" résoud (mal) un seul problème (l'écriture du code) mais laisse tous les autres de côté.

Est-ce qu'il faut jeter l'IA par principe dans le développement ? Absolument pas. Est-ce qu'il faut accepter les productions faites par IA sans prendre de recul / relire ? Absolument pas !

The Problem with “Vibe Coding” : dylanbeattie.net

#IA #Vibe-Coding

Encore un bon résumé de ce que c'est le code généré par IA et la tendance actuelle au "vibe coding" : avec une IA vous pouvez générer du code, ce code constitue un programme mais pas un produit. Un produit c'est beaucoup plus que du code, c'est se confronter à une réalité beaucoup plus complexe que le "ça marche sur ma machine en une demi-journée".

Le vibe coding c'est de la programmation, pas du développement logiciel.

Why I stopped using AI code editors ·Luciano Nooijen

#IA #Dev

Article super intéressant ! Je ne vais même pas chercher à le résumer, je vais juste copier la conclusion :

When you are using AI, you are sacrificing knowledge for speed. Sometimes it’s worth making this trade-off. Though it is important to remember that even the best athletes in the world are still doing their basic drills for a reason. The same applies to software development: you need to practice the basics, to be able to do the advanced work. You need to keep your axe sharp.

We are still a long way out from AI taking over our jobs. A lot of companies are creating FOMO10 as a sales tactic to get more customers, to show traction to their investors, to get another round of funding, to generate the next model that will definitely revolutionize everything.

AI is a tool, it is not good or bad in itself, it’s what you do with it. I do think it can be a great tool, as long as you are not reliant on it for your workflow. Make sure you can still work effectively without it, make sure you don’t push code to production that you don’t fully understand and don’t think of AI as a replacement for your own thinking. Stay curious, keep learning.

Sécurité

Gmail ajoute le chiffrement de bout en bout pour les organisations. Mais il y a un hic : les clés sont gérées de manière centralisée par les administrateurs, ils peuvent donc espionner les communications

#E2EE #Sécurité #Vie-privée

Chiffrement bout en bout = vous et votre interlocuteur êtes les seuls à pouvoir lire la communication, car vous êtes les seuls à posséder la/les clés de déchiffrement (en chiffrement asymétrique, on s'en fiche de qui peut chiffrer globalement)

Ce que propose Google = l'administrateur (et donc Google aussi quoi que Google en dise comme les clés sont sur les serveurs de Google et non chez le client) peut lire les échanges et le client n'a pas géré ses clés comme elles sont fournies par le serveur de Google

Donc ne parlons pas de bout en bout pour ce que propose Google : ça n'en est pas ! Et quand bien même j'aurais mal compris et que Google n'a pas accès aux clés, si l'administrateur de l'organisation a accès aux échanges, ce n'est pas privé et pas du chiffrement bout en bout

Behind the 6-digit code: Building HOTP and TOTP from scratch

#HOTP #TOTP #OTP #Sécurité

Article super intéressant qui explique comme un HOTP et un TOTP (tous les deux standardisés). Finalement c'est vraiment simple !

Et au passage l'auteur propose un testeur én ligne pour si vous voulez implémenter un HOTP ou TOTP !

I use Zip Bombs to Protect my Server

#Sécurité #Bot #Crawler

Idée intéressante pour se protéger des bots : servir un zip bomb quand on détecte une IP blacklistée ou un bot malicieux.

Un zip bomb étant une archive zip tout petite mais qui une fois décompressée va devenir énorme. Ici il utilise deux tailles : 1Mo qui contient 1Go, et 10Mo qui contient 10Go.

Il existe comment fabriquer les zipbomb (attention ça peut crasher votre machine comme ça demande pas mal de RAM) :

dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz

En résumé : fabriquer un fichier de 10Go composé uniquement de zéro puis le compresseur avec gzip pour ensuite l'injecter dans un fichier. Comme le fichier ne contient que des zéros, la compression est très très forte même avec gzip

Attention à bien cibler à qui vous servez ce fichier mais sinon l'idée n'est pas si bête, car c'est rare que les scripts ou les crawlers bot aient 1Go de RAM.

Divers

Your Next Two Zeroes

#Divers

L'article explique qu'en général faire x10 n'est pas un gros problème mais faire x100 demande de tout repenser

Je trouve son exemple du pont très pertinent : un pont de 1 mètre c'est tellement simple qu'on peut en faire un avec des pâtes crus (sans trop réfléchir), un pont de 10 mètres peut se faire avec un peu n'importe quel matériel de construction (bois, métal, béton, etc.) et être fait par n'importe qui, quand on atteint 100m il faut un ingénieur pour que ça tienne, pour 1000m il faut un ingénieur civil pour prendre en compte beaucoup de paramètre, 10000m c'est de l'exception (Viaduc de Millau) il faut réunir des experts de haut niveau pour que le projet aboutisse.

Thundermail and Thunderbird Pro Services - The Thunderbird Blog

#Thunderbird #Mozilla #OpenSource

Thunderbird va proposer des services payants en plus : mail, calendrier, partage de fichier, gestion de rendez-vous (comme Calendly), etc. L'idée n'est pas de transformer Thunderbird en produit payant, mais d'apporter quelque chose en plus en alternative aux GAFAMs avec une solution open-source, auto-hebergeable au besoin, mais pratique d'accès pour la majorité des gens aussi.

Je me suis inscrit en liste d'attente pour tester ce que je pourrais. Maintenant, à voir ce que ça donnera. Et à voir aussi où ce sera hébergé !

En tout cas l'idée est bonne sur le principe !

G̶o̶o̶g̶l̶e̶r̶… ex-Googler.

#Google #Chrome

Une partie de l'équipe Chrome a été licencié par Google du jour au lendemain. Des femmes et des hommes qui travaillaient chaque jour sur un produit qui n'a pas disparu mais dont on a supprimé le rôle sans leur proposer d'alternative.

Désolé mais c'est tellement inhumain

Few build Hypervisors. We’re one of them.

Article super intéressant sur la place des briques fondamentales d'un système (ici les hyperviseurs, sans eux pas de Cloud par exemple) qui pourtant sont considérés comme annexes / secondaires / acquises / maîtrisées alors c'est toujours plus compliqué que ça…

Je connais peu/pas le monde des hyperviseurs, mais je comprends complètement la logique de se dire que certaines briques, le seul moyen de comprendre vraiment ce qu'elles font c'est de mettre les mains dans le code et de le faire vivre. Une brique que personne ne maîtrise vraiment dans le milieu du web c'est le navigateur : on l'utilise, on l'a dompté (à peu près ? on a juste l'illusion de l'avoir dompté ?), mais on ne sait pas ce qui se passe sous le capot, on ne fait que le déduire de ce qu'on voit sans s'occuper des specs qui changent, etc.

Convert Linux to Windows

#Desktop-Environment #Windows #Linux #Win32

L'article part d'un constat : l'API win32 (utilisé depuis Windows 95) est stable, alors que l'API de la libc (et des autres implémentations) ne l'est pas ce qui provoque des incompatibilités dans le temps des binaires sous Linux. La solution proposée par l'auteur serait d'utiliser Wine pour tous les logiciels, et ainsi avoir une compatibilité Win32 dans le temps sous Linux, ainsi qu'un environnement de bureau "à la Windows" pour que les utilisateurs puissent migrer de manière assez transparente.

Je trouve l'idée intéressante en vrai. Pour moi ça fait très longtemps que Windows aurait dû devenir un environnement de bureau pour Linux à mon avis. Peut-être que la voie pour le faire serait plutôt celle décrite par l'auteur.. Qui sait ?

Why Is This Site Built With C

#Blog #Blogging #Web

Même si ça me paraît pas du tout une option pour moi de partir sur du C pour créer un site web, je comprends complètement le raisonnement :

  • avoir le moins de dépendance possible, si possible aucune, de sorte à n'avoir aucun suivi à faire pour maintenir à jour ;
  • avoir un système rapide ;
  • avoir un système qui fonctionne pour les 10 prochaines années ;

Je comprends complètement le choix de C (et de la seule dépendance qu'il a prise pour parser les fichiers Markdown).

Arch Linux - News: Valkey to replace Redis in the [extra] Repository

#ArchLinux #Redis #Valkey #BSD

Change important : à cause des changements de licence de Redis, le package redis ne sera plus présent dans le dépôt "extra" (paquet officiellement maintenu par les mainteneurs ArchLinux) mais uniquement dans AUR (Arch User Repository) donc simplement sous forme d'une recette de compilation / installation maintenu par la communauté. La recommandation est de migrer vers Valkey qui est un fork avec une api identique mais qui maintient la licence BSD-3-Clause.

C'est une rupture forte mais qui montre une volonté de garder un socle cohérent et facilement maintenable au niveau de ArchLinux tout en laissant les utilisateurs choisir.

À noter quand même que la version 8.0 de Redis inclue un retour à la licence AGPL, mais j'ai l'impression que la confiance est rompue entre Redis et ses utilisateurs...

Warez alive -- Warrior du Dimanche

Cette page se met à jour toute seule en fonction des redirections qui se font toute seule quand les domaines changent vis-à-vis des blocages de liens. Donc vous pouvez retrouver sans souci les bons liens pour Yggtorrent, wawacity, kick Ass Torrent, Pirate Bay, z-library, anna's archive et cie sans vous prendre la tête !

J'aime bien l'idée, et c'est tout simple comme c'est un simple script et JSON en backend !

Évidemment c'est d'intérêt public comme c'est pour télécharger vos distributions Linux ou des films / livres libres de droits 🤪

La Chine dévoile GPMI, un puissant concurrent de HDMI et DisplayPort avec une bande passante de 192 Gbps et une puissance de 480 W, compatible avec l'USB-C, prenant en charge la vidéo 8K et la mise en réseau

#Chine #GPMI #HDMI #Technologie #USB #USB-C

Un consortium d'entreprise chinoise lance le GPMI : un concurrent à l'HDMI ou DisplayPort qui permet de porter à la fois l'alimentation et l'image avec une très bonne puissance et une très bonne qualité d'image.

Pour l'instant y'a rien de fait mais à mon avis on aura sur les cartes mères asiatique du GPMI à côté de l'HDMI dans pas longtemps et c'est tant mieux. Les Chinois cherchent à réduire leurs dépendances aux USA depuis longtemps, c'est un pas de plus dans cette direction.

Par contre on notera l'intelligence d'avoir 2 formats de connecteur : un type C qui est compatible USB type C et un type B propriétaire (comme HDMI ou Display Port)

Smartphones and Tablets - European Commission - Liens en vrac de sebsauvage

#Smartphone #Loi #Europe

Je cite directement Sebsauvage qui a parfaitement résumé la décision prise au niveau de l'Europe :

À partir de juin 2025, de nouvelles règles vont entrer en vigeur en Europe concernant les appareils électroniques. En particulier pour les téléphones portables. En plus d'un label "énergie" comme sur la plupart des appareils électroménagers, il y aura les obligations suivantes :

  • Batteries suffisamment durables pour supporter au moins 800 cycles de charge et de décharge tout en conservant au moins 80 % de leur capacité initiale.
  • Obligations pour les producteurs de rendre les pièces détachées critiques disponibles pendant 7 ans après la fin des ventes du modèle.
  • Disponibilité des mises à jour du système d'exploitation au moins 5 ans à partir de la date de la fin de la mise sur le marché d'un modèle.
  • Accès non discriminatoire pour les réparateurs professionnels à tout logiciel ou microprogramme nécessaire pour le remplacement.

C'est un changement super important, qui va révolutionner notre capacité à faire durer nos appareils le plus longtemps possible !

Trump s’appuie sur Palantir, l’entreprise de Peter Thiel, pour déporter des migrants et assister le DOGE d’Elon Musk  | Le Grand Continent

#USA #Trump #Palantir

Le numérique n'est pas neutre : chaque acteur choisi de collaborer ou non avec des acteurs et est coresponsable de ce qui est fait des outils développés

Palantir qui collabore avec le gouvernement Trump sur le sujet des déportations des migrants, c'est un choix conscient de faire du mal à des innocents contre du fric.

You wouldn't steal a car font

#Font #Piratage #Divers

Anecdote plutôt drôle : la police d'écriture (généralement appelée "font") utilisé pour la campagne anti-piratage "You wouldn't steal a car" est la version piratée, pas la version originale payante 😇

Categorize Your Dependencies

#NPM #JavaScript #Node.JS

Vision plutôt intéressante : à la base le découpage dependancies / devDependancies est fait pour les librairies. Dans les faits on a attribué beaucoup de convention autour de ce découpage et c'est pas vraiment clair de pourquoi on met une dépendance dans les dépendances ou les dépendances de dev.

Anthony Fu propose d'utiliser les named catalog de PNPM pour catégoriser plus finement les dépendances, il propose une dizaine d'exemples de catégorie (mais chaque équipe de trouver les catégories les plus adaptées). C'est plutôt une bonne idée comme avec les bons plugins on peut afficher l'information clairement !

J'aime beaucoup l'idée, juste dommage que ça ne fonctionne qu'avec PNPM (très bon outil et le meilleur remplaçant de NPM à mon avis) donc pas utilisable par tous...

Crédit photo : Générée via Mistral AI avec le prompt suivant :

Illustrate a vibrant scene of a woman engrossed in reading a newspaper, surrounded by a stack of various newspapers and magazines. The setting should be warm and inviting, perhaps in a cozy café or a well-lit study. Include elements like a steaming cup of coffee, a vintage desk lamp, and a background hinting at a bustling newsroom or a cityscape visible through a window. The focus should be on the act of reading and the tactile experience of holding a newspaper, with headlines and text subtly visible to emphasize the theme of press and news.