HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

Les meilleurs longs formats de Hacker News, relus plus calmement.

3748 articles Page 162/375 Sans filtre

07:04

Should QA exist?

Dans certains cercles d'ingénierie on remet en question l'utilité d'une équipe QA, qui est parfois vue comme un frein à la vitesse et source de transferts de responsabilité, tandis que d'autres soulignent que le test est une compétence spécialisée utile pour réduire les risques. L'auteur recommande de ne pas démarrer systématiquement avec une équipe QA et d'exiger que l'ingénierie soit responsable de la qualité en intégrant dès le départ tests unitaires et d'intégration, CI/CD et automatisation. Lorsqu'il existe, le QA doit être "shift left" et embarqué dans les équipes sans passage de témoin, privilégier les tests automatisés, rapides et non instables, et s'intégrer au flux de travail des développeurs. L'article propose d'expérimenter un rôle d'Automated Verification Engineer (AVE) axé sur la vérification automatique, souvent assistée par l'IA, dont le succès se mesurerait notamment au "time to feedback" et à la fiabilité des suites de tests. Enfin, l'auteur considère ces approches comme expérimentales et conseille aux responsables QA de collaborer étroitement avec l'ingénierie, d'améliorer en continu la vitesse et la couverture des tests et d'utiliser QA de façon stratégique pour les architectures fragiles ou les projets sensibles.

07:04

21,864 Yugoslavian .yu domains

En 2010 l'extension nationale .yu a été retirée d'Internet après la disparition de la Yougoslavie. Anat Ben-David a reconstruit un graphe des domaines .yu à partir du Wayback Machine en s'appuyant sur des listes de départ et a identifié environ 17 460 sites uniques. L'auteur a exploré l'API CDX de l'Internet Archive, a constaté qu'une requête pour un TLD entier nécessite une autorisation, et a exploité les pages d'annuaires (notamment www.yu géré par Memodata) pour lister des domaines. En téléchargeant les pages d'annuaire, en extrayant les liens .yu et en vérifiant chaque domaine via la CDX, il a constitué une liste de 21 864 domaines dont 13 292 disposent d'au moins une copie archivée. Le fichier complet est proposé au téléchargement au format CSV et l'auteur suggère d'explorer memodata.net ou de contacter Nikola Smolenski et Anat Ben-David pour des listes complémentaires.

07:03

Hold on to Your Hardware

L'industrie du matériel connaît un basculement structurel qui fait grimper les prix et restreint l'offre disponible pour les consommateurs. La demande massive des centres de données et des projets d'intelligence artificielle concentre la production de DRAM, HBM et NAND au profit des hyperscalers, entraînant pénuries et hausses durables des prix pour la mémoire et les SSD. Cela se manifeste déjà par des ruptures de stock, des augmentations tarifaires, la disparition d'options réparables ou évolutives et des modèles commerciaux orientés vers l'entreprise plutôt que vers l'utilisateur final. Les fabricants favorisent les contrats longs et la location de capacité, ce qui risque d'éroder l'accès à la propriété matérielle et la souveraineté numérique, même si l'expansion de fabricants chinois pourrait offrir un soulagement limité et soumis à des contraintes géopolitiques. Il est donc recommandé de préserver et d'entretenir son matériel actuel et, si possible, d'anticiper des augmentations de mémoire et de stockage, car remplacer des composants à l'avenir pourrait devenir plus difficile et plus coûteux.

07:03

Everything old is new again: memory optimization

L'article note qu'une forte demande de mémoire a rendu la RAM des appareils grand public plus limitée et a relancé l'intérêt pour l'optimisation de l'utilisation de la mémoire. L'exemple étudié consiste à écrire un script qui ouvre un fichier texte encodé en UTF-8, le découpe en mots selon les espaces, compte les occurrences et affiche les mots triés par fréquence décroissante. Une implémentation Python concise (moins de 30 lignes) affiche un pic de consommation d'environ 1,3 Mo sur un petit fichier (le README du dépôt). Une version native en C++ utilisant des string_view, mmap et une table de hachage pour les clés atteint un pic d'environ 100 Ko, soit environ 7,7 % de la consommation de la version Python. L'auteur précise que la comparaison est partiellement injuste en raison des coûts des environnements d'exécution et affirme qu'en supprimant le support des exceptions le binaire C++ pourrait descendre à ~21 Ko, soit une réduction potentielle d'environ 98,4 %.

07:03

Capability-Based Security for Redox: Namespace and CWD as Capabilities

L'article présente un projet visant à réimplémenter la gestion des espaces de noms et du répertoire de travail courant (CWD) dans Redox OS en utilisant des capacités. Dans Redox OS, les services système sont fournis par des « schemes » en espace utilisateur et relibc offre une couche de compatibilité POSIX tout en gérant des descripteurs de fichiers internes. Avant la transition, le noyau gérait l'espace de noms en liant des noms de schemes aux processus et relibc stockait le CWD comme chaîne, ce qui exigeait la conversion des chemins relatifs en chemins absolus et le parsage des chemins par le noyau. La nouvelle architecture place un gestionnaire d'espace de noms (nsmgr) en userspace et représente l'espace de noms par un descripteur de fichier; nsmgr reçoit les openat, extrait le scheme et transmet les descripteurs, ce qui évite au noyau de connaître ou d'analyser les noms de schemes. relibc conserve désormais le CWD comme descripteur (capabilité), ce qui permet de traiter les chemins relatifs sans reconstruction, d'appliquer des restrictions comme O_RESOLVE_BENEATH pour prévenir les échappements et de simplifier le noyau tout en renforçant la sécurité.

07:03

Type Construction and Cycle Detection

Le code Go est d'abord analysé en un AST puis vérifié par le vérificateur de types qui construit pour chaque type une représentation interne afin de vérifier la validité des types et des opérations à la compilation. La construction de types est normalement effectuée en profondeur et produit des types « complets » dont on peut décomposer en toute sécurité les détails, mais les définitions récursives introduisent des types incomplets dont la décomposition est indéfiniment retardée. Certaines expressions de valeur peuvent produire des valeurs incomplètes (par exemple T{}), et les opérations qui décomposent ces valeurs—comme le calcul d'une taille de tableau via unsafe.Sizeof ou l'indexation—créent des dépendances cycliques illégitimes exposées par des erreurs de cycle. Pour résoudre cela, le compilateur vérifie désormais la complétude des types au niveau des expressions amont qui peuvent produire des valeurs incomplètes (conversions, appels, assertions, réceptions, accès map, déréférences, etc.), et il signale une erreur et retourne un opérande invalide si la complétude fait défaut. Cette détection systématique des cycles, introduite dans Go 1.26, a simplifié l'algorithme de construction des types, corrigé plusieurs plantages du compilateur et rendu l'outil plus robuste tout en préparant des améliorations futures.

07:03

Desk for people who work at home with a cat

Une entreprise japonaise a conçu un bureau qui intègre des espaces destinés aux chats afin de faciliter le partage du poste de travail entre l'humain et l'animal. Le bureau comprend un espace à deux niveaux sur le côté droit avec des accès latéraux et une capacité de charge de 20 kilogrammes pour la section supérieure. Un autre espace pour le chat se trouve sous le plateau, devant les genoux de la personne assise, et il est relié au niveau supérieur pour permettre au chat de circuler et de venir sur les genoux sans gêner l'utilisateur. Les concepteurs ont également prévu un trou sur le dessus pour que le chat puisse passer la tête, ainsi que des passages pour câbles et un emplacement pouvant accueillir une tour PC (qui occupe la moitié inférieure de l'espace à deux niveaux). Le bureau est vendu au Japon environ 24 800 yens et peut être accompagné d'une tour pour chat vendue séparément à 16 862 yens, tous deux disponibles sur Amazon Japon.