HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

6102 articles Page 481/611 Sans filtre

07:10

Gabibi is a tool for intentionally degrading images (in Japanese)

GABIBI est un outil créatif qui transforme des images numériques modernes en textures dégradées évoquant une perte d’information et le bruit. Il convertit des photos récentes et des illustrations soignées en visuels nostalgiques rappelant l’époque des débuts d’internet et les fonds d’écran de téléphone. Son fonctionnement combine trois étapes essentielles: le sous-échantillonnage pour réduire temporairement la taille de l’image, la compression JPEG récursive qui multiplie les artefacts de bloc et les déformations de couleur, puis l’upscaling pour revenir à la taille d’origine tout en accentuant le flou et la granulation. Les usages incluent la création de visuels pour les réseaux sociaux, le traitement de matériaux design pour sites web et l’apport d’un style glitch ou cyberpunk et de fragments de mémoire dans les œuvres d’art. Le traitement s’exécute entièrement localement dans le navigateur, et aucune image n’est envoyée ni stockée sur des serveurs externes.

07:09

Algebraic topology: knots links and braids

Un nœud est une courbe fermée simple dans l'espace euclidien E^3 et deux nœuds sont équivalents s'il existe une homéomorphie orientation-preserving qui les envoie l'un sur l'autre. Des embeddings sauvages existent en E^3, mais on se restreint aux nœuds tamisés, par exemple des courbes polygonales simples, même si des exemples comme la sphère cornu d'Alexander ou le collier d'Antoine illustrent les cas extrêmes. À partir d'un nœud projeté dans le plan, les mouvements de Reidemeister, de types I, II et III, permettent de déterminer l'équivalence des diagrammes. Un nœud peut être décomposé comme somme de nœuds premiers et l'on associe à chaque nœud une surface de Seifert dont le genre est additif et nul uniquement pour l'unknot. Les invariants tels que le groupe fondamental du complément, le Kauffman bracket et le polynôme de Jones permettent de distinguer les nœuds, et les braids fournissent une description généralisée des nœuds via la fermeture des entrelacs et le groupe de braid Artin.

07:09

FFmpeg at Meta: Media Processing at Scale

FFmpeg est un outil polyvalent pour le traitement des médias, capable de prendre en charge une large variété de codecs audio et vidéo et de formats de conteneurs. Meta utilisait FFmpeg et ffprobe à grande échelle et avait maintenu un fork interne pour ajouter des fonctionnalités, ce qui compliquait la gestion des divergences avec les versions open-source. En collaboration avec la communauté FFmpeg, FFlabs et VideoLAN, des améliorations ont été intégrées en amont pour remplacer le fork, notamment le transcodage multi-lanes et les métriques de qualité en temps réel. Pour les flux VOD et en direct, une chaîne de transcoding produit plusieurs sorties à partir d’un seul décodage, réduisant le travail redondant et les coûts. Le passage à FFmpeg en amont, avec le support matériel via NVDEC/NVENC, QSV, UVD et MSVP, a permis d’évoluer et de contribuer à la communauté tout en continuant d’investir dans l’écosystème.

07:09

Durdraw – ANSI art editor for Unix-like systems

C'est un éditeur d'art ASCII, Unicode et ANSI conçu pour les systèmes Unix-like. Il s'exécute dans les terminaux modernes en Utf-8 et offre l'animation de trames, des modes couleur 256 et 16, le dessin à la souris et des pinceaux. Il prend en charge le mélange et la conversion CP437 et Unicode, ainsi que la génération de sorties HTML et mIRC colorées. Le logiciel s'inspire des éditeurs ANSI du MS-DOS et de Windows tels que TheDraw, Aciddraw et Pablodraw, tout en apportant une approche moderne sous Unix. Le projet est disponible sur GitHub ou via les dépôts de paquets et est distribué sous BSD 3-Clause, avec des composants comme Durfetch et Durview et des options de don.

07:08

Restoring a Sun SPARCstation IPX part 1: PSU and NVRAM (2020)

Cet article décrit la remise en état d'une alimentation défaillante et le remplacement de la NVRAM sur une Sun SPARCstation IPX. La panne provenait de condensateurs électrolytiques défectueux et une corrosion sur le dessous de la carte a été observée lors du démontage. Tous les condensateurs, à l'exception du condensateur de filtre secteur de grande taille, ont été remplacés en utilisant des pièces Nichicon, Panasonic et Wurth Elektronik. La NVRAM a été remplacée et l’adresse MAC ainsi que le hostid ont été reprogrammés via l'OBP et des commandes Forth, avec des essais des variantes M48T02 et M48T12 lorsque l’erreur persistait. Le système a finalement démarré sous Solaris 7 et l’auteur prévoit de nettoyer l’enveloppe et d’envisager une version Solaris plus ancienne adaptée au modèle.

07:08

Rethinking Syntax: Binding by Adjacency

L'idée est que l'adjacence devienne un opérateur binaire permettant de réunir des expressions adjacentes en une unique expression, selon leurs types statiques. Le mécanisme, nommé binding expressions, résout ces expressions adjacentes grâce à des méthodes définies sur leurs types, via prefixBind et postfixBind. Un exemple montre LocalDate date = 2025 July 19, où July et 19 s'alignent par des bindings de type pour finalement produire un LocalDate. L'objectif est de proposer des DSLs et des littéraux directement dans Java, sans macros ni modification des types de base, tout en conservant la sécurité de type. Le projet est expérimental dans Manifold, avec des usages dans les unités, les plages et les vecteurs, et un support IDE, mais il comporte des défis de parsing et une certaine charge cognitive.

07:08

Windows: Microsoft broke the only thing that mattered

Windows demeure largement dominant et profondément ancré dans les systèmes critiques et l’infrastructure publique. Des incidents comme la panne CrowdStrike de juillet 2024 montrent qu’un seul mauvais correctif peut bloquer des vols, des hôpitaux et des services d’urgence. La controverse Recall illustre l’écart entre les ambitions IA et les risques de confidentialité, et a été abandonnée après une réaction publique forte. À partir de 2025, Windows 10 est officiellement hors support et Windows 11 a dû faire face à des exigences TPM 2.0 et à des choix de design contestés par les utilisateurs. Nadella a réorienté les ressources vers Azure et l’IA, laissant Windows comme une plateforme de maintenance, tandis que MacOS et Linux restent des alternatives qui ne remplacent pas aisément Windows pour un utilisateur moyen.

07:07

Show HN: The Mog Programming Language

Mog est un langage embarqué, statiquement typé et compilé, conçu pour que des agents IA écrivent leur propre code puis le charger comme plugin dans une application hôte. Il repose sur un modèle de sécurité par capacités: le host déclare quelles capacités Mog peut appeler et les capacités ne peuvent être utilisées sans autorisation. Le compilateur, écrit en Rust, produit du code natif via rqbe et exécute les programmes Mog sans interpréteur ni JIT, avec une gestion mémoire par GC. Le langage est fortement typé et sans conversions implicites, avec des types scalaires, chaînes UTF-8, tableaux, maps et structs; les opérateurs sont plats et les priorités explicites par parenthèses, tandis que les erreurs et optionnels s'expriment par Result<T> et ?T. Mog s’emploie dans un hôte via un cycle d’intégration en cinq étapes et peut aussi être utilisé comme plugin dynamique, avec des fichiers mogdecl pour décrire les capacités publiques.

07:07

Reverse-engineering the UniFi inform protocol

J'ai expérimenté l'hébergement de contrôleurs UniFi et le modèle par VM par client donnait peu de marge, rendant l'entreprise impraticable financièrement. Le problème majeur est que les contrôleurs UniFi ne gèrent pas le multi-tenant, puisque chaque appareil a sa clé et sa base de données isolée, ce qui complique le routage partagé. Les quarante premiers octets de l'inform sont en clair et contiennent l'adresse MAC, permettant d'identifier l'appareil sans déchiffrer le payload. On peut construire un proxy d'inform qui lit la MAC (octets 8 à 13) et délègue le paquet chiffré au backend du locataire correspondant, évitant d'exposer les clés. Pour peupler la table MAC, on peut préenregistrer les adresses MAC ou utiliser des plages IP d'origine; après adoption, l'appareil passe à un sous-domaine dédié et le routage via Host prend le relais.