HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

5780 articles Page 525/578 Sans filtre

07:03

Forward propagation of errors through time

Cet essai examine s'il est nécessaire d'exiger une rétropropagation des signaux d'erreur dans le temps lors de l'apprentissage des RNN. Il propose une méthode appelée propagation des erreurs en avant (FPTT) qui utilise une passe d'échauffement pour estimer les conditions initiales et inverse les Jacobiennes pour reconstruire les gradients. Les expériences sur une version simplifiée du MNIST séquentiel montrent que l'algorithme peut apprendre des tâches non triviales, mais souffre d'une instabilité numérique grave lorsque le réseau oublie l'information. Cependant, l'inversion des Jacobiennes introduit une instabilité numérique majeure dans les régimes d'oubli, rendant l'approche imprévisible et difficile à étendre. Pour ces raisons, les auteurs concluent qu'ils ne poursuivront pas cette voie, bien qu'ils partagent des réflexions utiles sur les limites de BPTT et les perspectives pour des architectures ou types de calcul alternatifs.

07:03

Coccinelle: Source-to-source transformation tool

Cet outil permet d'effectuer des transformations source-à-source sur du code C tout en préservant le style. Pour l'installation depuis le code source, suivez les instructions et, une fois installé, un script nommé spatch se trouve dans /usr/bin ou /usr/local/bin. Des versions précompilées existent et des liens de téléchargement sont fournis sur le site officiel. Il est possible de l'utiliser sans installation en le lançant directement depuis le répertoire de téléchargement ou de construction, avec éventuellement la configuration de variables d'environnement. Les contributions doivent être signées par une ligne de type Signed-off-by selon la procédure décrite, conformément au Developer's Certificate of Origin.

07:03

Carelessness versus Craftsmanship in Cryptography

aes-js et pyaes exposent par défaut leurs utilisateurs à la réutilisation de clé et d’IV en mode CTR, créant des vulnérabilités qui peuvent toucher de nombreux projets. Ces bibliothèques sont largement utilisées, avec des centaines de milliers de dépôts qui les intègrent. De plus, elles ne prennent pas en charge des modes modernes comme AES-GCM ou GCM-SIV, et CTR demeure sans mécanisme d’authentification. La réaction des mainteneurs a été perçue comme cavalier pour aes-js et pyaes, tandis que strongSwan a réagi rapidement avec une correction coordonnée et des outils de migration. Le cas illustre que la correction responsable exige savoir-faire et transparence, et peut impliquer des migrations et des choix de modes modernes pour prévenir les réutilisations.

07:03

A New Perspective on Drawing Venn Diagrams for Data Visualization

Nous présentons VennFan, une méthode pour générer des diagrammes de Venn à n ensembles à partir de la projection polaire des frontières trigonométriques, produisant des diagrammes qui ressemblent à des pales de ventilateur. Cette approche met l'accent sur la lisibilité et la personnalisabilité en utilisant des sinusoïdes façonnées et une mise à l'échelle d'amplitude. L'article décrit des variantes basées sur le sinus et sur le cosinus et propose une heuristique de placement automatique des étiquettes adaptée à ces dispositions en éventail. VennFan est disponible en tant que package Python. L'historique de soumission indique l'auteur et la date de soumission.

07:02

zclaw: personal AI assistant in under 888 KB, running on an ESP32

C'est le plus petit assistant personnel IA pour ESP32, écrit en C et conçu pour un budget firmware strict de 888 KiB. Il gère les tâches planifiées, le contrôle des GPIO, la mémoire persistante et permet une composition d'outils personnalisés via le langage naturel. La contrainte de 888 KiB couvre la taille totale du firmware, y compris l'environnement ESP-IDF/FreeRTOS, le Wi-Fi, TLS et le bundle de certificats. Le projet est testé sur ESP32-C3, ESP32-S3 et ESP32-C6 et propose des outils et scripts pour le développement local et le prototypage. La licence MIT et la documentation associée complètent les guides de démarrage, les cas d'utilisation et les options de test et de benchmarking.

07:02

Parse, Don't Validate and Type-Driven Design in Rust

Cet article présente le motif parse-dont-validate et propose une approche Rust‑centrée qui encode des invariants directement dans les types plutôt que de s’appuyer sur des vérifications à l’exécution. Il montre comment la division par zéro peut panique au runtime et compare des solutions avec Option ou Result pour signaler les échecs de façon explicite. Pour éviter les panics, il introduit le pattern newtype comme NonZeroF32 et NonEmptyVec, afin que les invariants soient établis avant l’exécution et réduire les vérifications répétées. L’article évoque aussi des usages concrets comme String et la désérialisation via des types pour transformer des données en structures sûres plutôt que de s’appuyer sur des validations dynamiques. Enfin, il tire des leçons sur rendre les états illégaux impossibles et privilégier la validation précoce (type-driven design), tout en reconnaissant les limites et les défis de ce paradigme.