Frontend

Sunsetting Create React App – React

#Vite #TypeScript #Frontend #Framework #React

Après des années à laisser le projet à l'abandon, Create-React-App (CRA) est enfin officiellement déprécié !

Tout le monde est encouragé à partir vers un framework construit autour de React ou construire son propre framework.

Le framework le plus léger étant "React Router" qui inclus essentiellement React Router et Vite, ça correspond plutôt bien à ce que les gens sont habitués à faire.

Personnellement pour faire du React je resterai (en perso au moins) sur la stack Vite (react-ts template) + swan-io/chicane (router) + TanStack Query + PicoCSS. C'est simple, efficace et bien type.

Try Out the New Signal Input Migrations | by Angular | Jan, 2025 | Angular Blog

#Angular #Frontend

Pour rappel : l'équipe Angular fait évoluer les pratiques, mais ils accompagnent aussi les projets vers ces nouvelles pratiques en facilitant la migration. Ici le schematics pour transformer vos @Input() en Signal Input input(). Comme ça vous n'aurez plus qu'à relire ce qui a été fait plutôt que devoir tous les reprendre un par un

Move on to ESM-only

#ESModule #JavaScript #TypeScript #Frontend

Anthony Fu explique sa position en 2025 sur le fait qu'on (les mainteneurs de lib / outils) devrait sûrement tous passer sur du ESM-only et ne plus chercher à faire du commonjs

Je pense en effet que l'écosystème est prêt. Je pense aussi que travailler uniquement en module ESM ouvre la porte à moins dépendre de Node.JS mais aussi s'ouvrir la porte à Deno par exemple (Bun étant compatible avec Node entièrement en théorie).

Standard Schema

#JavaScript #Frontend #Backend #DX

Créer un standard pour un format permettant de valider de manière standard des données. L'idée est très bonne et elle émerge de plusieurs librairies de validation de données (Zod, Valibot et ArkType) qui ont fait un travail commun pour directement supporter un format commun, le standardiser, le diffuser et inciter à une adoption plus large.

Très très bonne initiative qui commence à bien se diffuser (je l'ai utilisé avec Hono y'a peu de temps sans même réaliser). Par contre j'ai l'impression que personne ne s'y intéresse hors du monde JavaScript, et c'est dommage, car avoir le même format aussi avec Spring (Java), Quarkus (Java), .Net (C#) et Symfony (PHP) (et beaucoup d'autres mais déjà ceux-là), ça voudrait dire une seule expression des règles de validation partout dans beaucoup de cas ! 🤞 que ça vienne un jour

Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite

#Deno #Backend #TypeScript #JavaScript #Frontend

Énormément de changement dans cette version 2.2 ! 😮

Ce que je retiens le plus :

  • OpenTelemetry en natif (et automatique si on utilise des console.log() ou Deno.serve())
  • pas mal d'amélioration du linter, en particulier pour tout ce qui concerne le JSX
  • des améliorations pour les Deno tasks (équivalent des scripts du package.json en node) avec en particulier une gestion de script qui dépend d'autres (comprendre : vous pouvez créer un script qui ne fait que lancer d'autres scripts, sans syntaxe Unix, donc portable) ; et vous pouvez maintenant lancer plusieurs scripts d'un coup avec une étoile (deno task "start-*" pour lancer directement les tasks deno task start-back et deno task start-front par exemple)
  • grosse amélioration des tailles de binaire avec deno compile (pour rappel : ça permet de directement créer un binaire all-in-one qui ne demande plus d'installer Deno avant d'exécuter votre code)
  • plein d'amélioration sur la compatibilité avec npm (en particulier avec les modules commonjs)

Et plein d'autres choses. Vraiment Deno c'est devenu bien plus complet que Node.

Backend

🚨 Chers développeurs d'APIs HTTP, on doit parler... 🚨... -- Jonathan FRANCOIS

#Backend #API #HTTP #Humour #Développement #Web

Je cite entièrement le post, car le rappel est bon et l'humour mérite d'être partagé 😇

🚨 Chers développeurs d'APIs HTTP, on doit parler... 🚨
Aujourd'hui j'ai encore perdu 1h à cause de vous!
HTTP 200 c'est pas le juste prix 😆

Tu fais une requête et ton API est en maintenance ? 200 OK.
Tu t'es trompé de token ? 200 OK.
La base de données est en train de prendre un bain ? 200 OK.

Et dans le body :
👉 "Désolé, l'API est en maintenance. Dédé il a tout pété!"
👉 "Erreur d'authentification: token invalide"
👉 "Oups... (putain Dédé!)"
👉 "{"success": false}"

Non, pitié, stop, on arrête ! 🛑

📢 Une bonne API, ce n'est pas juste un endpoint qui répond, c'est aussi un respect des standards.
Si on les a créé c'est parce qu'on avait un problème et qu'on s'est mis d'accord sur des trucs pour se simplifier la vie!

Petit rappel non exhaustif:

🟢 2xx – Je vais bien, tout va bien
🔹200 OK 🗣 "It's all good man"
🔹201 Created 🗣 "Félicitations, t'as réussi à créer un truc et c'était pas gagné!"
🔹202 Accepted 🗣 "C'est intéressant ce que tu me demandes... Mais là j'ai pas le temps. Je verrais plus tard"
🔹204 No Content 🗣 "Tout est OK, c'est juste que je suis pas très bavard."
🔹205 Reset Content 🗣 "Efface tout et recommence. Genre, vraiment"
🔹206 Partial Content 🗣 "T'as demandé un gâteau, t'auras une part"

🟡 3xx – Quand tu te fais promener par ton serveur 🤷♂️
🔹300 Multiple Choices 🗣 "T'as le choix entre A, B, C, ou la réponse D. C'est ton dernier mot?"
🔹301 Moved Permanently 🗣 "C'était ici, mais maintenant c'est là-bas. Faut suivre les mecs!"
🔹302 Found (ou Moved Temporarily) 🗣 "Pour l'instant c'est ici, mais demain on sait pas. Mystère dans les internets."
🔹304 Not Modified 🗣 "Arrête de me SPAM, y'a rien de neuf depuis il y a 3 secondes!"

🔴 Erreurs 4xx : Quand le client se trompe mais refuse d'assumer.
🔹400 Bad Request 🗣 "T'as oublié un truc ou t'as juste tout pété"
🔹401 Unauthorized 🗣 "T'as vraiment cru que tu pouvais rentrer comme chez Mémé? Nope."
🔹402 Payment Required 🗣 "Fait chauffer la CB mon copain!"
🔹403 Forbidden 🗣 "Je sais pas comment tu as eu l'URL mais en tout cas je sais que t'as rien à foutre ici!"
🔹404 Not Found 🗣 "La page que tu cherches est partie acheter du pain"
🔹405 Method Not Allowed 🗣 "Tu n'as pas le sens du verbe HTTP"
🔹406 Not Acceptable 🗣 "T'as demandé du JSON, mais ici on sert que du XML."

🟠 Erreurs 5xx : Quand le serveur part en PLS 🫠
🔹500 Internal Server Error 🗣 "J'ai vu ta request, j'ai essayé mais j'ai eu des problèmes."
🔹501 Not Implemented 🗣 "T'as demandé un truc que mon dev a oublié de coder"
🔹502 Bad Gateway 🗣 "J'ai demandé à un autre serveur... Il m'a répondu nawak"
🔹503 Service Unavailable 🗣 "C'est la pause syndicale, revient l'année prochaine"
🔹504 Gateway Timeout 🗣 "J'ai demandé un truc et j'attends encore"

Je sais, il en manque, si tu y tiens manifeste toi en commentaire avec ton code HTTP favoris et je tenterai une blague pourrie.

👇💬
Si toi aussi tu n'en peux plus de ces API bingo 200, commentes et milite avec moi pour éradiquer cette maladie.
👇💬

-- Jonathan FRANCOIS

IA

AI Is Spamming Open Source Repos With Fake Issues - The New Stack - Liens en vrac de sebsauvage

#Open-Source #IA

Avec les nouvelles IAs branchées sur le web et la tendance à les utiliser pour tout et surtout n'importe quoi, des mainteneurs de projets open source se sont retrouvés envahi par des fausses issues générés par IAs… On parle de gros projets comme Curl, React, CSS ou Apache Airflow, qui ont vu des gros volumes d'issues débarquer leur faisant perdre un temps fou…

Des chercheurs ont créé un équivalent open source au modèle de « raisonnement » o1 d'OpenAI pour moins de 50 $, en utilisant la méthode controversée de « distillation » désapprouvée par certains Big Tech

#IA #Open-source #s1 #Stanford

Un modèle de raisonnement pour IA qui a été entraîné par distillation (= en s'appuyant sur les données d'autres modèle d'IA) pour $50 et en 30min. Le tout en open source à 100% donc peu importe le niveau actuel de ce modèle (annoncé comme proche de o1 d'OpenAI), il va être amélioré.

Merci Stanford pour ce modèle qui va permettre de développer la recherche publique !

Évidemment ça ne plaît pas aux Google, DeepSeek, OpenAI, etc. qui voit des concurrents faire aussi bien qu'eux pour une bouchée de pain ce qui ne va bientôt plus du tout justifier de payer très cher les modèles d'IA. Peut-être bientôt l'explosion de la bulle IA ? 🤷‍♂️

Lien vers le repo Github du modèle : https://github.com/simplescaling/s1

Free offre un assistant IA premium à ses abonnés, une première en France

#Free #Free-Mobile #Mistral-AI #IA

Si vous êtes abonnées Free / Free Mobile, vous pouvez utiliser gratuitement pendant 1 an Mistral AI Chat Pro. Je n'ai pas encore pris le temps de tester celui-là, alors que c'est un acteur français, donc je vais en profiter !

Le fondateur de Stability AI prévoit la « destruction complète » du marché de l'externalisation en 2025 : « l'IA est meilleure que n'importe quel programmeur indien externalisé à l'heure actuelle »

#IA #Stability-AI

Donc pour un des ex-fondateurs de Stability AI : tous les "programmeurs" externes (et même interne mais dans un peu plus de temps) vont disparaître, car les IAs serait meilleure 🤣

Honnêtement : si l'IA me remplace à 100%, let's go. Mon travail c'est beaucoup de choses aujourd'hui : coder des trucs bateaux (ce que même l'IA n'arrive pas à faire tout seul à date), analyser du code, analyser des besoins fonctionnels, discuter avec les gens pour comprendre des problèmes, aller creuser tous les non-dits / implicites, aider mes collègues à monter en compétence, avoir une vision large du code / du projet / du contexte / de l'industrie, etc.

Être développeur ce n'est pas juste vomir du code bêtement. C'est beaucoup plus que ça. Il faut un humain pour piloter l'IA (encore plus les LLMs qui ne font que générer du texte sans le comprendre pour rappel), c'est comme si y'a 20 ans (date hasardeuse 🤔) on avait dit "plus besoin de dev, y'a l'autocomplétion", l'IA c'est pour moi pas plus que ça : de l'autocomplétion++

Et le fait de pointer du doigt les travailleurs off-shore d'Indes ou du Mexique comme un simple coût, car ils ne travailleraient pas bien, je reste sur mon avis : oui c'est compliqué de travailler avec des gens qui ont une culture différente + un fuseau horaire différent + à distance ; non ce n'est pas impossible si tout le monde travaille dans des bonnes conditions et qu'on prend le temps de s'aligner

Il y aura des cours sur l'IA obligatoire dans les collèges et lycées dès la rentrée 2025

#IA

Des cours obligatoires en 4ème et 2nde sur l'IA pour comprendre ce que c'est, apprendre à bien les approcher, apprendre les limites et biais, etc.

Si c'est bien fait : c'est une excellente idée ! Car oui l'IA fait maintenant partie du paysage numérique et si on n'éduque pas les jeunes à ça ils vont faire n'importe quoi avec…

Maintenant faut que ce soit bien fait 🤷‍♂️

Cette arnaque cible 100% des vieux ?! -- Hardisk

#Sécurité #IA #Arnaque

https://youtube.com/shorts/SFv4FzduG1I

Parce que c'est aussi ça l'IA : des gens qui génèrent des photos via IA, les diffusent sur Facebook pour repérer les personnes âgées qui commentent comme si c'était vrai ce qui implique une mauvaise maîtrise de la technologie et donc des cibles faciles pour certains types d'arnaques

Sécurité

Justice : l’Assemblée approuve l’activation des caméras et micros de téléphones à distance

#Vie-privée #Sécurité

À partir de maintenant, vous pouvez être surveillé via l'activation à distance de la caméra, du micro et du GPS de vos téléphones, ordinateurs ou objets connectés.

Éric Dupond-Moretti nous "rassure" en disant que ça ne concerne que quelques dizaines d'affaires judiciaire par an. Mais comme ça concerne toutes les affaires où une condamnation à 5 ans ou plus et les cas de suspicion de terrorisme c'est super large et facile à ouvrir très fort…

La porte est ouverte vers une dérive très forte vers une absence de vie privée. Rappelons qu'on parle de plus en plus d' "eco-terrorisme" pour parler des gens qui défende un peu trop la planète… Rappelons qu'on envoie au tribunal pour comportement à risque et suspicion de terrorisme à cause de l'utilisation de messagerie sécurisé comme Signal…

À quand des hard-switch sur nos appareils pour couper tout ça ?

Les gestionnaires de mots de passe sont les nouvelles cibles des hackers : 25 % des logiciels malveillants ciblent désormais ces magasins de mots de passe, selon une nouvelle étude de Picus Security

#Mot-de-passe #Sécurité

Les gestionnaires de mot de passe sont de plus en plus la cible des attaques. Ça semble logique : si on peut voler les clés, pourquoi s'embêter à forcer la serrure ?

Je déconseille depuis toujours les gestionnaires de mot de passe des navigateurs, car trop peu sécurisés à mon goût. Prenez des solutions robustes et dont vous êtes garantie du fonctionnement dans le temps (Open Source donc) : Keepass, BitWarden, Passbolt ou pass

Apple pulls encryption feature from UK over government spying demands | The Verge

#Apple #UK #Vie-privée #Sécurité

À partir ce maintenant les nouveaux clients britanniques ne peuvent plus utiliser le chiffrement end-to-end (pour rappel : c'est le seul moyen de garantir que seul vous avez la capacité de lire les données) et les clients actuels devront désactiver ce chiffrement prochainement pour continuer à utiliser iCloud.

Apple s'en fiche de votre vie privée au fond, ce qui les intéresse c'est de gagner de l'argent et rester sur le marché britannique.

En tout cas, factuellement : si vous êtes client britannique, considérez que vous n'avez plus droit à la vie privée, car Apple est à priori le premier gros acteur visé, mais ce succès à tuer la vie privée servira d'exemple pour les autres.

Signal's CEO: Then We're Leaving Sweden | Sweden Herald

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

La Suède veut forcer Whatsapp et Signal à stocker les messages pour avoir un accès à ce contenu. Signal dit non, et si ça devient une obligation : ils quitteront la Suède.

À suivre et confirmer si ça passe que Signal choisira la vie privée et la sécurité au marché suédois

Towards a test-suite for TOTP codes – Terence Eden’s Blog

#TOTP #Sécurité

Je me suis plusieurs fois posé la question de m'essayer à créer une app de TOTP (plus par challenge que volonté de l'utiliser) mais finalement ça semble peut-être pas une si bonne idée que ça vu que personne n'a l'air respecter strictement la spécification 😅

Jeux-videos

Le monde perturbant des jeux de "Kanoguti" - Findings N°106 -- Feldup

#Jeu-indépendant #Feldup #Jeux-videos

https://youtu.be/i422ne5jx6Q

Je vous ai dit que j'aimais beaucoup le travail de Feldup sur Youtube ?

Cette vidéo parle d'un auteur de jeux-vidéos très confidentiel, qui a créé un ensemble de jeux (beaucoup de jeux, vraiment beaucoup) cohérent avec chaque fois des éléments cachés, des trucs à découvrir en faisant ou ne faisant pas des actions. C'est super intéressant de découvrir ça !

La vidéo est longue (1h46) mais je trouve que ça vaut vraiment le coup !

Divers

Une société condamnée pour surveillance excessive des salariés (télétravail et présentiel) - Next

Rappelez-vous qu'il y aura toujours des employeurs qui iront trop loin pour fliquer leurs employés…

À mon avis :

  • si vous pensez que vos employés ne travaillent pas autant qu'ils le disent trouver des moyens de mesure le résultat du travail accompli et si c'est insuffisant licenciez-les ;
  • si vous ne pensez pas pouvoir faire confiance en une personne pour qu'elle fasse le travail que vous lui confier : ne l'embauchez pas et passez au CV suivant ;

Ça peut sembler froid comme raisonnement mais soyons honnête : est-ce qu'être fliqué en permanence vous rendra plus efficace ? Est-ce que vous attendre sur un résultat cohérent avec un délai et vous foutre la paix n'est pas plus constructif pour tout le monde ?

Si je prends 5 pauses de 20min dans la journée, que j'étale un peu mes heures pour être un peu relaxe quand je suis en télétravail mais que le travail attendu est fait, que je vole pas en termes de temps, juste que je suis mieux dans ma vie, est-ce que c'est un problème ?

Si je pars 15min plus tôt, car j'ai fini une grosse tâche mais que à un autre moment je pars 15min plus tard pour finir un truc quasi fini, ça change quoi ?

Pour moi c'est une histoire de confiance, de liberté et de responsabilité.

Qwant épinglé par la CNIL pour avoir transmis des données soi-disant anonymisées à Microsoft

#Qwant #Moteur-de-recherche #Microsoft #Vie-privée

Tout est dans le titre : Qwant file vos données à Microsoft.

Malgré les dires de Qwant, ce moteur de recherche ne fait que re-brander les recherche Bing depuis toujours. En soi pourquoi pas, mais dites-le honnêtement.

Append-only programming

#Dev

L'idée est intéressante : ne jamais changer le corps d'une fonction mais toujours ajouter une nouvelle version si on doit corriger quelque chose, obligeant à mettre à jour les appelants (donc les réécrire) si on corrige 🤔

Clairement : c'est une pratique intenable dans la vraie vie mais comme challenge de code c'est intéressant car ça oblige à bien réfléchir en amont à ce qu'on veut faire avant de le faire !

Amazon met fin à une fonctionnalité qui vous permettait de télécharger et de sauvegarder des livres Kindle, à partir du 26 février, vous ne pourrez plus télécharger des livres du magasin Kindle que par Wi-Fi

#Amazon #Amazon-Kindle

En résumé : Amazon nous interdit de copier les ebooks qu'on achète sur sa plateforme pour les garder chez nous afin de garder le contrôle sur le contenu qu'on a acheté.

Donc je ne vais clairement plus jamais acheter de ebook que Amazon car quand j'achète un livre ce n'est pas un service que je veux c'est posséder un droit de lecture illimité dans le temps (sinon c'est quoi l'intérêt d'acheter ?)

Suite à un décret présidentiel, Adobe va couper les comptes de ses clients au Venezuela - Next

#Adobe #Venezuela

Les clients Adobe au Venezuela ne pourront plus utiliser les produits Adobe à partir du 28 octobre 2025 suite à un décret présidentiel qui interdit quasi tous les échanges commerciaux entre les USA et le Venezuela. Aucun remboursement n'est prévu non plus.

Donc les clients vénézuéliens n'ont plus que leurs yeux pour pleurer face à leurs fichiers projet Adobe qui ne seront plus exploitables en fin d'année. La seule alternative pour eux sera le piratage ou la conversion dans un format plus ouvert. La joie de ce genre d'outils en cloud. Avant les licences pour installation physique sur leurs machines les auraient juste cantonnés à une ancienne version 🤷‍♂️

Et dans le futur, il se passera quoi quand les USA décideront qu'ils ont un problème avec nous et qu'ils voteront un embargo sur la France et/ou l'Europe ?

3D Printed Pocket Ratchet! -- @freedom_reigns

#3DPrinting

https://youtube.com/shorts/Fi-QHSSFQPY

Je suis assez impressionné par ce genre d'impression 3D assez simple mais complètement fonctionnelle : là un tournevis à cliquet compatible avec des embouts classiques et avec un aimant au fond pour maintenir l'embout en place. C'est tout bête, ça coûte pas cher pour un truc basique mais celui-là coûte encore moins cher et est réparable (il suffit de défaire la vis en plastique, et on peut désassembler pour changer une pièce qui va coûter quelques centimes). J'aime ce genre de design. Je suis un peu juste un poil jaloux de pas savoir faire ça, mais bon c'est une question de travail on va pas se mentir 😅

How to Play Scoundrel: a SOLO DUNGEON CRAWL with a deck of cards! -- Riffle Shuffle & Roll

#Jeux-de-sociétés

https://youtu.be/7fP-QLtWQZs

Je trouve la mécanique très sympa pour faire une partie de jeu sans écran (pour changer) : il faut un paquet de 54 cartes (on enlève toutes les têtes, les as rouges et les jokers), on mélange et la pile forme le donjon.

L'idée c'est de simuler une exploration de donjon :

  • on commence avec 20 points de vie (on ne peut pas en avoir plus de 20)
  • ouvrir une salle = compléter à 4 cartes le tirage
  • les cartes noires sont des monstres à combattre (Valet = 11 points, Dame = 12 points, Roi = 13 points, As = 14 points)
  • les cœurs sont des potions
  • on ne peut utiliser qu'une potion par salle
  • les carreaux sont des équipements pour réduire les dégâts des monstres
  • on ne peut avoir qu'un seul équipement à la fois
  • affronter un monstre avec un équipement va stacker le monstre sur l'équipement, et on ne pourra plus combattre avec cet équipement que des monstres moins forts
  • on peut passer à la salle suivante quand il reste une carte ou moins dans la salle, on peut donc garder pour plus tard une potion, un monstre ou un équipement
  • on peut fuir une salle avant d'affronter/prendre une carte mais pas 2 salles de suite ; fuir implique de prendre les cartes de salle et les mettre sous la pile du donjon

On dépile des cartes jusqu'à mourir (ne plus avoir de point de vie) ou épuiser les cartes.

Why and How I Version My Blog

#Blog #Versioning

Réflexion intéressante sur le versioning d'un blog qui est un mélange de code, de contenu texte, de configuration, le tout évoluant dans le temps, parce qu'il peut y avoir des bugs / typo, mais aussi un besoin d'ajouter des liens, de mettre à jour du contenu, etc.

La proposition de Rishikesh Sreehari est de prendre le format suivant :

YY.Push.Type.DDMM

 24.50.M.1904
 │  │  │   └─── Date
 │  │  └─────── Type
 │  └────────── Push
 └───────────── Year
  • YY = The year of the most recent update.
  • Push = A sequential counter tracking the total updates made during the year.
  • Type = Categorizes the nature of the update:
    • N: New post.
    • U: Content update (e.g., clarifications or expansions).
    • F: Fix (e.g., typos or formatting corrections).
    • X: Feature update (e.g., design or functionality changes).
    • M: Mixed updates involving multiple types of changes.
  • DDMM = The date (day and month) of the latest update.

Donc une version aura cette tête par exemple : v24.628.M.2111

Sur le papier j'aime bien l'idée (modulo que la date serait mieux en MMDD à mon avis) mais si ce n'est pas 100% automatisé je sais que je ne serais jamais assez rigoureux sur mon blog pour le faire. Mais je garde ça dans un coin de ma tête

Alibaba Launches C930 RISC-V Chip Amid Shift from Western Tech

#CPU #Alibaba #RISC-V

Alibaba annonce un CPU d'une puissance suffisante pour être utilisé côté serveur, le tout sur une architecture opensource (RISC-V).

J'en parle de temps en temps, mais je vais le redire : soyez prêt·e à voir Intel, AMD et l'architecture x86 mourir.

Why Blog If Nobody Reads It? | Andy's Blog

#Blogging

(Via Internet Archive comme le site d'origine semble hors ligne 😕)

Je suis complètement d'accord avec cet article, j'en parle régulièrement à droite et à gauche, je cite directement le passage qui pour moi est le plus important :

You’re not just writing for today’s invisible audience. You’re writing for:

  • Future you. Your posts become a time capsule of your evolving mind.
  • One right person. Maybe one day, someone stumbles across your words at exactly the right moment. And that changes something for them.
  • The work itself. Consistency beats virality. A hundred posts with depth will outlast a single viral hit.

Crédit photo : Générée via Microsoft Designer avec le prompt suivant :

newspaper, reading, press, news