HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

8183 articles Page 1/819 Sans filtre

06:06

C++ float-to-int conversion can be undefined behavior

La conversion d'un float en int en C++ est un comportement indéterminé lorsque la valeur tronquée ne tient pas dans le type entier, et ce cas arrive facilement par inadvertance dans le code. Les trois formes courantes de conversion (implicite, int(f) et static_cast<int>(f)) n'émettent généralement aucun avertissement avec -Wall et -Wextra et sont pourtant indéterminées pour certains inputs. Cppreference précise que la partie fractionnaire est supprimée et que si la valeur ne peut pas être représentée dans le type de destination, le comportement est indéterminé, même pour les entiers non signés. La bibliothèque GSL fournit gsl::narrow qui promet de lever une erreur quand la valeur ne tient pas, mais elle n'adresse pas correctement les conversions float→int et laisse place à du comportement indéterminé, problème que les mainteneurs ont qualifié de « bénin » pour leurs plateformes cibles. La solution correcte est de vérifier les bornes avant la conversion ou d'utiliser une approche saturante, on peut détecter ces UB avec UBSan (-fsanitize=float-cast-overflow), et le défaut n'a pas été corrigé dans GSL.

06:06

Don't start a startup with the goal of getting acquired

L'auteur critique l'état d'esprit de nombreux fondateurs précoces qui multiplient les projets en raison d'une vision à court terme jugée illogique et nocive. Il estime grossièrement les probabilités d'entrée à Y Combinator à 1% et d'acquisition après YC à 10%, soit environ 0,1% de chance d'être acquis. Si l'on vise une acqui‑hire d'environ 5 millions de dollars pour deux fondateurs avec vesting sur quatre ans, cela revient à une probabilité d'environ 0,1% d'obtenir cet objectif sur quatre ans. En comparaison, accepter un poste dans une grande entreprise technologique offre une probabilité beaucoup plus élevée d'atteindre une somme comparable en progressant et en restant une dizaine d'années, malgré le risque de licenciements. Pour quelqu'un dont l'objectif est de monétiser rapidement, l'auteur conclut qu'il est souvent plus rationnel d'accepter un emploi salarié — notamment après YC, où un salaire à ~400k TC est accessible pour une part significative — car les startups exigent un succès majeur pour justifier l'espérance de gain.

06:05

Use Task Runners for Common Coding Tasks

Les développeurs jonglent entre plusieurs dépôts et stacks et doivent répéter des commandes différentes pour des tâches communes comme installer des dépendances, builder, formater et lancer les tests. L'auteur propose d'uniformiser ces actions avec des outils de commodité permettant d'exécuter des commandes standardisées quel que soit le projet. Il passe en revue plusieurs approches pratiques : scripts bash personnalisés, Makefile, just et mise, en présentant pour chacune leur syntaxe, exemples d'usage et avantages ou inconvénients. Les avantages incluent la possibilité d'appliquer la mémoire musculaire, d'ajouter des validations et d'obtenir des fonctionnalités utiles comme l'autocomplétion, tandis que les inconvénients concernent la disponibilité des outils ou la complexité syntaxique. L'auteur conclut que ces solutions sont simples à mettre en place, améliorent la qualité de vie des équipes et valent la peine d'être adoptées rapidement.

06:05

The AI Productivity Gap

L'article explique que, malgré les progrès de l'IA, la productivité des équipes d'ingénierie n'a augmenté que modestement parce que la rédaction du code n'occupe qu'une partie de la journée des développeurs. Un tableau comparatif montre qu'un développeur senior gagne environ 1,25 heure par jour (≈15%) tandis qu'un junior gagne environ 2 heures (≈25%) quand l'IA accélère principalement l'écriture de code. L'auteur note que les tâches non liées au codage — lecture et débogage, architecture, revues, documentation et réunions — restent largement inchangées et limitent les gains globaux. Il est aussi souligné que l'IA peut parfois ralentir certaines tâches, par exemple lorsque des documents générés automatiquement sont trop verbeux et difficiles à résumer. La conclusion prévient de ne pas attendre des augmentations spectaculaires de productivité pour les seniors, tout en reconnaissant que les gains devraient s'accroître à mesure que l'IA progresse.

06:05

The Potomac River Midair Collision

Le 29 janvier 2025, un Sikorsky UH-60 Blackhawk de l'armée et un CRJ-700 exploité par une filiale régionale d'American Airlines sont entrés en collision au‑dessus du Potomac près de l'aéroport national de Washington, causant la mort de 67 personnes et constituant le premier accident aérien majeur d'une compagnie américaine depuis 2009. L'enquête a montré que l'accident résultait d'un enchevêtrement de causes systémiques, notamment des niveaux de trafic élevés à DCA amplifiés par des dérogations du Congrès, des taux d'arrivée proches des limites opérationnelles, l'usage routinier de la séparation visuelle entre hélicoptères et avions, et un itinéraire héliporté (Route 4) qui croisait la trajectoire d'approche de la piste 33. Des facteurs militaires ont aggravé le risque, en particulier l'emploi par la 12th Aviation Battalion d'UH‑60L anciens et moins automatisés, des erreurs d'altimétrie liées à des réservoirs externes, un entraînement et des heures de vol insuffisants des équipages, ainsi que des politiques autorisant l'extinction d'ADS‑B Out pour certaines missions. Les systèmes techniques et opérationnels ont montré leurs limites : les inhibitions de TCAS en basse altitude, l'absence d'ADS‑B In obligatoire sur les transporteurs, des alertes de conflit en tour souvent non discriminantes, des transmissions radio bloquées et des silos de données ont empêché la détection et le partage efficaces des zones à risque. Depuis l'accident le NTSB a formulé de nombreuses recommandations, la FAA a supprimé Route 4 et abaissé temporairement les taux d'arrivée et des améliorations technologiques et procédurales sont en cours, mais des débats législatifs et des exemptions militaires maintiennent des enjeux non résolus.

06:05

George Orwell's 1984 (Hinge Dating App)

L'auteure s'est inscrite sur l'application de rencontre Hinge pour enquêter sur des signalements et sur l'usage de l'IA en matière de sécurité. Après quinze minutes d'utilisation et un commentaire anodin supprimé avant publication, elle a reçu un courriel l'informant que son compte avait été supprimé sans motif détaillé. Les explications fournies par Hinge ont renvoyé aux conditions générales et à des réponses standardisées, et le processus d'appel semble obscur et peu informatif. Elle émet l'hypothèse que des suppressions automatiques peuvent viser des utilisateurs gratuits ou certains profils démographiques, sans que l'entreprise ne le confirme. L'auteure conclut que la combinaison de la politique de sécurité et d'algorithmes d'IA permet des décisions opaques, potentiellement injustes et préjudiciables aux droits des utilisateurs.

06:05

SearXNG in Rust

Le projet interroge simultanément DuckDuckGo, Brave, Startpage et Yahoo, scrappe leurs résultats HTML et agrège les réponses. Les résultats sont dédupliqués en normalisant les URL (suppression des paramètres de suivi, retrait des préfixes de langue, tri des paramètres) puis fusionnés et classés avec Reciprocal Rank Fusion. L'API expose des endpoints GET /search?q=<query> et /health et renvoie les meilleurs résultats au format JSON avec titre, URL, extrait, score et moteurs ayant répondu. Le paquet s'installe comme bibliothèque via cargo add metadata-search-engine-rs ou se compile et exécute comme serveur en Rust 1.75+ avec des variables d'environnement pour PORT et MAX_RESULTS. Le dépôt fournit des exemples asynchrones, des tests unitaires et des tests live optionnels, ainsi que des instructions pour ajouter de nouveaux moteurs en implémentant le trait SearchEngine.

06:04

The Apple Calculator Language

En parcourant des documents de Jef Raskin de 1979, l'auteur a découvert un langage « calculator » proposé par Raskin, présenté dans le cadre des langages de programmation et envisagé comme fondation possible d'un langage plus ambitieux. Le manuscrit contient aussi un addendum critique aux langages contemporains (BASIC, ALGOL, APL, Cobol, Fortran, Lisp, Pascal, PL/1, SNOBOL), où Raskin déplore les défauts de nombreux langages tout en louant particulièrement APL. Le langage AppleCalculator évalue strictement de gauche à droite sans priorités opératoires, traite des suites de nombres adjacents comme des « clumps », et applique une opération à la totalité du clump de gauche tout en consommant un seul élément à droite. L'implémentation moderne réalisée par Claude Opus 5 met en œuvre des syntaxes et fonctionnalités détaillées (underscore pour les négatifs, accolades pour les notes, opérateurs avant/après, PLACES, RADIANS, constantes, INSERT, stockage par :, indexation par [ ], fonctions trigonométriques et d'arrondi, etc.). Le spécimen original présente quelques contradictions d'exemples que l'implémentation résout en favorisant l'évaluation gauche-à-droite, en adoptant l'arrondi « moitié vers pair » et en définissant NOT comme 1 moins la partie entière.

06:04

Living in the Math World Means Threading the Needle

Hong Wang, mathématicienne sino-américaine de 35 ans, a reçu la Médaille Fields 2026 après une série de prix récompensant sa preuve, en collaboration avec Joshua Zahl, de la conjecture de Kakeya en trois dimensions. Leur démonstration de 127 pages montre que tout ensemble de Kakeya en 3D doit être tridimensionnel en analysant les structures possibles des contre-exemples et en traitant notamment les configurations dites « collantes ». Spécialiste des problèmes de type Kakeya et des liens entre analyse harmonique, théorie géométrique de la mesure et équations aux dérivées partielles, Wang s’est imposée par plusieurs résultats marquants et collaborations avec des chercheurs comme Larry Guth. Née à Guilin, elle a étudié en Chine puis en France avant d’effectuer son doctorat au MIT, et son travail se caractérise par une grande discipline, l’usage d’analyses à plusieurs échelles et des collaborations étroites. Malgré la reconnaissance publique et les invitations accrues qui empiètent sur son temps de recherche, elle recherche un meilleur équilibre personnel et envisage de s’attaquer à d’autres problèmes ouverts, notamment les versions en dimensions supérieures.