HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

3654 articles Page 189/366 Sans filtre

07:09

GrapheneOS: Duress Pin/Password

GrapheneOS est un système d'exploitation mobile privé et sécurisé basé sur l'Android Open Source Project (AOSP), visant à réduire la surface d'attaque tout en préservant l'utilité et la compatibilité des applications. Le projet améliore substantiellement la confidentialité et la sécurité grâce à des fonctionnalités conçues contre de réels adversaires, tout en privilégiant la substance plutôt que le marketing. GrapheneOS n'inclut pas par défaut les services Google et offre une sandbox Google Play optionnelle, tout en renforçant l'intégrité via le démarrage vérifié et le confinement par SELinux et seccomp-bpf. Il réduit l'attaque surface et renforce les protections par des mécanismes comme la réduction de code inutile, le contrôle granularisé des permissions et des sandboxes améliorés pour l'app et le navigateur. Enfin, le système propose des outils comme Auditor pour la vérification matérielle, des améliorations de profils d'utilisateur et des solutions de confidentialité réseau et localisation, ainsi que des sauvegardes chiffrées et le navigateur Vanadium axé sur la sécurité.

07:09

TI-89 Height-Mapped Raycaster

Il s'agit d'un moteur de raycasting à hauteur mappée et d'un dungeon crawler personnalisé pour la calculatrice TI-89, construit sur le FAT Engine de 2002. Le rendu couvre des murs texturés, des escaliers, des sprites d'ennemis billboards et des donjons générés procéduralement sur un 68000 cadencé à 10 MHz avec un écran grayscale 160x100 à 4 nuances, et tourne sur TI-89 ou TI-89 Titanium via un câble USB. Le jeu propose un donjon procédural, un système de combat par Bump-to-attack, le suivi des HP et du niveau, et une minimap qui clignote. Des composants complémentaires existent, comme fatd_stairs.c, fatd_hw4.c, fatd_life.c, fatd_plasma.c et des outils USB pour les transferts DUSB et DBUS. Le projet peut être assemblé via Docker avec GCC4TI et packaging en .89g, et des binaires précompilés sont fournis dans output/.

07:09

Cover Flow with Modern CSS: Scroll-Driven Animations in Action (2025)

Cover Flow est né comme une idée tierce et est devenu emblématique chez Apple dans iTunes et Finder, où les jaquettes sont présentées en 3D et tournent comme une collection tangible. Aujourd'hui, on peut reproduire cet effet sur le web avec HTML et CSS uniquement, grâce à des avancées comme les animations pilotées par le défilement. Une approche purement CSS, popularisée par Bramus, utilise le scroll snap et les timelines de défilement pour animer les jaquettes sans JavaScript, en s’appuyant sur une liste d’images et des transforms 3D. Le mécanisme s’appuie sur une view timeline pour suivre chaque élément dans le conteneur et sur des animations liées au défilement qui font varier l’ordre z et l’angle des jaquettes. Des considérations de performance et d’accessibilité guident l’implémentation, comme la fluidité du défilement, la navigation clavier, l’accessibilité ARIA et les options de réduction des animations.

07:09

Android developer verification: Balancing openness and choice with safety

Android démontre qu'il est possible de concilier écosystème ouvert et sécurité grâce à un flux avancé qui autorise l'installation d'applications de développeurs non vérifiés. Ce flux avancé est un processus unique pour les utilisateurs avancés, conçu pour prévenir les tentatives d'arnaque et les pressions coercitives. Les étapes incluent l'activation du mode développeur, la vérification qu'on n'est pas coaché, le redémarrage et la réauthentification, puis une période d'attente et une vérification biométrique ou par code PIN. Après cela, il est possible d'installer des applications de développeurs non vérifiés avec une option de 7 jours ou permanente, tout en restant averti que l'application est non vérifiée. Des comptes de distribution limitée pour étudiants et hobbyistes seront proposés, permettant le partage d'applications sur jusqu'à 20 appareils sans ID ni frais, et seront disponibles en août avant l'entrée en vigueur des nouvelles exigences.

07:08

macOS 26 breaks custom DNS settings including .internal

La mise à jour macOS 26.3.1 casse le mécanisme de résolution par domaine via /etc/resolver pour les TLD non présents dans la zone racine IANA. mDNSResponder intercepte les requêtes pour ces TLD privés et les résout via mDNS, sans consulter le résolveur unicast spécifié. Ce dysfonctionnement rompt les flux DNS locaux utilisés par dnsmasq et d'autres résolveurs privés, impactant le développement local et des environnements comme Docker, Kubernetes ou VPN. Le problème est silencieux: scutil --dns montre le resolver enregistré alors que getaddrinfo échoue et aucune requête n'atteint 127.0.0.1:53. Le seul moyen fiable pour l’instant est d’ajouter des entrées manuelles dans /etc/hosts, ce qui est peu pratique pour les usages dynamiques.

07:08

The day I discovered type design

Il y a cinquante ans ce mois-ci, en mars 1976, à vingt ans, j'ai commencé mon intérêt pour la conception de caractères dans le cadre d'un programme d'art commercial de deux ans au North Hennepin Community College près de Minneapolis. J'étudiais l'histoire de l'art, le dessin, la peinture, le lettrage, la gravure et d'autres disciplines artistiques, tout en envisageant une carrière d'illustrateur ou de designer graphique. Mon intérêt pour le design de caractères a été réveillé par un projet dans un cours avancé de lettrage dirigé par Lance Kiland, et j'apprenais le lettrage avec des pinceaux et des stylos Speedball avant l'arrivée de l'informatique. Déjà actif avec des caractères au lycée en tant que rédacteur et designer du journal et de l'annuaire, j'avais commencé à acheter du rub-down type et j'étais inspiré par Chartpak, Letraset et mon oncle Knut, designer graphique à Chicago. Le projet final du cours de lettrage donna naissance à un alphabet original nommé Uncial Sans, et la découverte du magazine U&lc et l'appel d'ITC à proposer des polices m'encouragèrent à envisager sérieusement la conception de polices, ce qui aboutit à une première publication près de vingt ans plus tard.

07:08

“Your frustration is the product”

L’article montre que des pages de grands éditeurs, comme le New York Times, génèrent des centaines de requêtes réseau et près de 49 Mo de données, et mettent du temps à se charger. Selon l’auteur, les choix de conception visent à augmenter le temps passé sur la page et les revenus publicitaires, rendant l’expérience du lecteur frustrante et hostile. Il rappelle que les éditions imprimées respectent davantage le lecteur et compare cela à des sites qui saturent l’écran avec publicités, modales et vidéos en autoplay. La répétition des mêmes annonces au sein d’un même article et les contenus non pertinents interrompent sans raison la lecture et aggravent l’ennui. L’auteur conclut que les décideurs des sites web, loin d’aimer le médium, adoptent des modèles économiques qui poussent les lecteurs à s’éloigner.

07:07

My Random Forest Was Mostly Learning Time-to-Expiry Noise

Après une première phase de réglage des paramètres, l'auteur s'attaque à l'optimisation des caractéristiques de la forêt aléatoire via l'OOS (Out of Sample Permutation Feature Importance). L'approche OOS consiste en trois étapes: entraîner la forêt sur les données d'entraînement, prendre des données de validation hors échantillon et permuter les valeurs d'une seule caractéristique puis les faire passer au modèle, et évaluer l'importance d'une caractéristique si sa permutation diminue significativement la performance. Une caractéristique est considérée importante lorsque la puissance prédictive recule après la permutation, ce qui est évalué sur des données hors échantillon pour limiter le bruit. Par défaut, scikit-learn utilise l'importance de Gini, mais celle-ci est jugée inadaptée ici en raison d'un biais de cardinalité, du fait qu'elle est calculée sur les données d'entraînement et du partage d'importance entre caractéristiques corrélées. Le AUC hors échantillon de 0,7566 paraît irréaliste, ce qui suggère soit un biais de lookahead ou un surapprentissage, soit que le modèle dépend principalement de signaux temporels et du temps à l'expiration, ce qui justifie le nettoyage en cours.

07:07

I turned Markdown into a protocol for generative UI

Un prototype montre comment une IA agentique peut générer des interfaces React en flux continu, avec les données circulant entre client, serveur et LLM. Le protocole repose sur Markdown comme support unique, intégrant texte, code et données dans des blocs interopérables et lus par le modèle. Trois blocs principaux sont définis : texte pour le flux utilisateur, fence de code pour l’exécution sur le serveur et fence de données pour diffuser des données vers l’interface. La primitive mount() permet de sérialiser une UI React et d’envoyer l’interface sur le réseau tout en maintenant le lien de données et les mises à jour réactives. Le texte détaille quatre mécanismes de passage de données, discute des enjeux de sécurité et argue que l’approche s’appuie sur des motifs appris par les modèles sans enseignement nouveau.