HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

6614 articles Page 239/662 Sans filtre

06:05

Building a web server in aarch64 assembly to give my life (a lack of) meaning

L'auteur a écrit un petit serveur HTTP statique nommé ymawky entièrement en assembleur aarch64 pour macOS, utilisant des appels système Darwin bruts et sans bibliothèques externes. Il prend en charge GET, HEAD, PUT, OPTIONS, DELETE, plages d'octets, listings de répertoires et pages d'erreur personnalisées, avec contraintes strictes (assembleur uniquement, macOS, fichiers statiques, pas de parsers ou de bibliothèques préexistantes). Écrire tout en assembleur implique de gérer manuellement les registres, les chaînes, les erreurs de syscall et le parsing HTTP octet par octet, y compris la normalisation d'URL, le décodage pourcentage, l'analyse des en-têtes et la conversion d'entiers avec détection de débordement. Pour la sécurité et la robustesse, le serveur utilise des fichiers temporaires pour les PUT atomiques, vérifie les traversées de chemin et les liens symboliques (O_NOFOLLOW_ANY), encode correctement les noms dans les listings, et impose des minuteries et des débits minimaux pour limiter les attaques de type slowloris et les téléchargements très lents. L'auteur conclut que le plus difficile n'était pas d'ouvrir des sockets mais de gérer toutes les erreurs et cas limites au niveau des octets, et que l'assembleur oblige à implémenter à la main toutes les subtilités du protocole et du système au prix d'une grande complexité.

06:05

CUDA-oxide: Nvidia's official Rust to CUDA compiler

Ce projet est un compilateur expérimental qui permet d'écrire des kernels GPU SIMT en Rust idiomatique et de les compiler directement en PTX sans DSL ni liaisons à un autre langage. La documentation suppose une bonne connaissance de Rust, notamment ownership, traits et generics, et une familiarité avec async/.await pour les chapitres sur la programmation GPU asynchrone. La version v0.1.0 est un alpha précoce avec bugs, fonctionnalités incomplètes et ruptures d'API, et les auteurs sollicitent des retours d'expérience. L'exemple fourni illustre l'embarquement de l'artéfact device dans le binaire hôte et la génération automatique de fonctions de chargement typées ainsi que de méthodes de lancement pour chaque kernel. Parmi les objectifs figurent la sécurité, un backend rustc compilant du Rust pur en PTX plutôt qu'un DSL, et la prise en charge de l'exécution asynchrone avec composition d'opérations GPU et await.

06:04

AMÁLIA and the future of European Portuguese LLMs

En décembre 2024 le gouvernement portugais a annoncé un investissement de 5,5 millions d'euros pour AMÁLIA, un grand modèle de langue open source visant à traiter le portugais européen comme une langue prioritaire et développé en collaboration par plusieurs universités et laboratoires portugais. AMÁLIA prolonge la phase de pré-entraînement d'EuroLLM plutôt que d'être entraîné from scratch, avec une architecture similaire ajustée (longueur de contexte et RoPE) et une stratégie visant à augmenter la part de données en portugais européen via Arquivo.pt en pré-entraînement, génération synthétique en SFT et sous-échantillonnage lors de l'entraînement par préférence. Peu d'éléments sont actuellement publiquement disponibles : les poids du modèle, les jeux de données finaux, les journaux d'entraînement et les nouveaux benchmarks ne semblent pas accessibles, seules certaines scripts d'Arquivo.pt et quelques dépôts GitHub ont été diffusés. Selon le rapport l'extension de pré-entraînement porte sur 107 milliards de tokens dont environ 5,8 milliards proviennent d'Arquivo.pt (~5,5 %), le SFT contient une proportion plus élevée (~17–18 %), mais la part totale de portugais européen reste incertaine, et AMÁLIA bat plusieurs modèles SOTA sur la plupart des benchmarks portugais tout en étant devancé sur ALBA par Qwen 3-8B. Les conclusions soulignent la nécessité de davantage de données de pré-entraînement en portugais européen et d'évaluations mesurant la connaissance locale du Portugal, tout en reconnaissant la qualité du travail et en appelant à une plus grande ouverture des poids, des données et des évaluations.

06:04

Show HN: OpenGravity – A zero-install, BYOK vanilla JS clone of Antigravity

C'est une version expérimentale et légère, construite en HTML/CSS/JS, d'un IDE basé sur le navigateur avec un terminal xterm.js via WebContainer, synchronisation locale des fichiers et un agent autonome capable d'exécuter des commandes et modifier des fichiers en temps réel. Le projet est encore en version Alpha et adopte le principe BYOK (clé API conservée localement), en supportant pour l'instant uniquement les modèles Gemini. L'auteur a recréé l'interface à partir d'exemples de Google Antigravity en utilisant Gemini 3.1 Pro pour générer le design, puis a intégré la logique de gestion de fichiers et d'agent. Les besoins identifiés incluent une meilleure orchestration agentique, le support d'autres fournisseurs (OpenAI, Anthropic), la stabilisation de la synchronisation et du terminal, ainsi que des améliorations UI comme menus, sélection de modèle, Git et un panneau de paramètres. Pour tester, il suffit de servir le projet (par exemple python3 server.py), ouvrir http://localhost:8000, entrer une clé Gemini via l'icône en haut à droite, et noter que le développement est en pause pendant les études de l'auteur mais que les PR sont relus le dimanche ; la licence est GPL-3.0.

06:04

Interfaze: A new model architecture built for high accuracy at scale

Une nouvelle architecture hybride combine des encodeurs DNN/CNN spécialisés et des transformeurs pour optimiser des tâches déterministes comme l'OCR, la détection d'objets, la transcription vocale et la sortie structurée. Sur neuf benchmarks comparatifs couvrant OCR, vision, STT et sorties structurées, le modèle devance majoritairement des modèles flash/mini et des solutions spécialisées cités dans le texte. Il propose un contexte d'un million de tokens, une sortie maximale de 32k tokens, des modalités multiples (texte, image, audio, fichier), des activations partielles de tâches pour gagner en vitesse et en coût, et une API compatible avec le standard Chat Completions. Les cas d'usage mis en avant incluent l'OCR riche avec boîtes englobantes et scores de confiance, la transcription longue et rapide, l'extraction web indexée et la génération de JSON formaté évaluée par le nouveau benchmark SOB. Le tarif annoncé est comparable aux modèles flash/mini cités et l'équipe précise vouloir compléter plutôt que remplacer les LLMs en se concentrant sur l'efficacité et la fiabilité pour des tâches à grand volume.

06:04

Training an LLM in Swift, Part 1: Taking matrix mult from Gflop/s to Tflop/s

L'auteur cherche à accélérer une implémentation manuelle de la multiplication matricielle en Swift pour entraîner un petit modèle de langage sur Apple Silicon. Il décrit la progression depuis une version Swift très lente due notamment au coût des vérifications de copy‑on‑write jusqu'à des optimisations comme MutableSpan et InlineArray pour éviter les allocations et frais d'accès. L'utilisation de Swift Numerics Relaxed pour activer des opérations FMA SIMD, le dépliage des boucles, le parallélisme avec DispatchQueue.concurrentPerform, puis l'exploitation d'instructions AMX et de noyaux Metal a permis d'améliorer progressivement les performances. Au total, ces optimisations ont fait passer l'implémentation de 2,8 Gflop/s à environ 1,1 Tflop/s (un gain d'environ 382×), Swift atteignant des performances comparables voire supérieures au C optimisé selon les cas. L'auteur conclut que ces expérimentations montrent la complexité de l'optimisation bas niveau et recommande d'utiliser les bibliothèques optimisées d'Apple pour des usages en production.