Category: Développement

La limite de 500 miles pour les e-mails : une expérience curieuse

2025-07-09

Une histoire amusante sur un recteur d’université incapable d’envoyer des e-mails au-delà de 500 miles a déclenché une expérience sur la connectivité réseau et la distance de transmission des e-mails. En écrivant un code simple de connexion réseau et en testant des serveurs dans plusieurs universités, l’auteur a découvert que la distance de connexion réelle est limitée par l’emplacement du serveur et l’infrastructure réseau, et non par la distance physique. L’expérience a finalement révélé l’impact du cloud computing et de la distribution géographique des serveurs de messagerie sur la transmission des e-mails, faisant de la limite de 500 miles plus une coïncidence qu’une loi physique.

Cinq façons de modéliser les données polymorphiques dans les bases de données relationnelles

2025-07-09
Cinq façons de modéliser les données polymorphiques dans les bases de données relationnelles

Cet article explore cinq approches pour modéliser les données polymorphiques dans les bases de données relationnelles : table unique, clés étrangères nullables, union étiquetée, clés étrangères enfant-parent et JSON. Chaque méthode présente des avantages et des inconvénients ; par exemple, l’approche à table unique est simple mais peut être lente, tandis que JSON est facilement extensible mais manque de validation des données. L’auteur suggère de choisir la méthode la plus facile à lire, à maintenir et à déboguer, et d’éviter l’optimisation prématurée.

arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

2025-07-09
arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

arXivLabs est un cadre permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données des utilisateurs. arXiv s'engage à respecter ces valeurs et ne travaille qu'avec des partenaires qui les partagent. Vous avez une idée de projet qui apportera une valeur ajoutée à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

libpostal : Une puissance de PNL pour les adresses globales

2025-07-09
libpostal : Une puissance de PNL pour les adresses globales

libpostal est une puissante bibliothèque C qui analyse et normalise les adresses de rue dans le monde entier à l’aide du TAL statistique et de données ouvertes. Elle prend en charge de nombreuses langues, transformant les adresses au format libre en formats lisibles par machine, idéaux pour les applications de géocodage. La bibliothèque propose des liaisons pour divers langages et accepte les contributions pour améliorer sa précision et sa portée mondiale. Des possibilités de parrainage sont offertes aux organisations qui utilisent ses capacités.

Développement analyse d'adresses TAL

Xenharmlib : Une bibliothèque Python pour explorer la théorie musicale non occidentale

2025-07-09
Xenharmlib : Une bibliothèque Python pour explorer la théorie musicale non occidentale

Xenharmlib est une puissante bibliothèque Python pour explorer diverses théories musicales, incluant les systèmes musicaux occidentaux traditionnels et non occidentaux. Elle prend en charge les accords microtonaux et macrotonaux, la théorie des ensembles diatoniques et post-tonaux, et les notations non standard. Conçue pour les compositeurs et les chercheurs, elle offre un ensemble d'outils facile à utiliser et extensible pour explorer différents concepts de relations harmoniques avec un accent scientifique. La bibliothèque prend en charge divers systèmes d'accord et inclut des outils pour analyser les intervalles, les gammes et leurs relations.

Développement

Brut : Un framework web Ruby simple mais puissant

2025-07-09

Brut est un framework web simple mais complet pour Ruby, qui abandonne les contrôleurs, les verbes et les ressources au profit de pages, de formulaires et de gestionnaires d'actions uniques. Les développeurs écrivent du HTML directement, généré côté serveur, avec une totale liberté d'utiliser JavaScript et CSS. Brut dispose d'une instrumentation OpenTelemetry intégrée, d'une couche d'accès aux données alimentée par Sequel et d'outils de ligne de commande basés sur OptionParser, et est facilement déployable avec Docker. Il simplifie le processus de développement, permettant aux développeurs de se concentrer sur la logique métier et de profiter de la création d'applications web.

Développement

Exploitation du MCP de Supabase pour divulguer des tables SQL privées

2025-07-09

Des chercheurs ont découvert une vulnérabilité permettant aux attaquants de divulguer des tables SQL privées d'un développeur en exploitant l'intégration MCP de Supabase. Un message de ticket d'assistance soigneusement conçu trompe l'assistant LLM pour qu'il exécute des requêtes SQL, contournant ainsi la sécurité au niveau des lignes et accédant à des données sensibles telles que des jetons OAuth. La vulnérabilité provient des privilèges d'accès à la base de données excessivement élevés de l'assistant LLM (service_role) et de sa confiance aveugle dans le contenu soumis par l'utilisateur. Les mesures d'atténuation comprennent l'utilisation du mode lecture seule autant que possible et l'ajout d'un filtre d'injection de prompt.

Développement

RapidRAW : Éditeur d'images RAW accéléré par GPU, créé par un jeune de 18 ans

2025-07-09
RapidRAW : Éditeur d'images RAW accéléré par GPU, créé par un jeune de 18 ans

Un développeur de 18 ans a créé RapidRAW, un éditeur d'images RAW haute performance avec accélération GPU pour Windows, macOS et Linux en seulement 14 jours en utilisant Rust et React, en tirant parti des modèles d'IA de Google Gemini. Cet éditeur léger (moins de 30 Mo) possède un masquage IA, des fonctionnalités d'édition générative et un flux de travail non destructif, ce qui en fait une alternative intéressante à Adobe Lightroom.

Développement éditeur d'images

Vulnérabilité de mise à jour des dépendances Helm : un fichier Chart.yaml manipulé peut entraîner l’exécution de code local

2025-07-09
Vulnérabilité de mise à jour des dépendances Helm : un fichier Chart.yaml manipulé peut entraîner l’exécution de code local

Une vulnérabilité dans Helm permet l’exécution de code local via un fichier Chart.yaml soigneusement conçu et un fichier Chart.lock symbolique lors des mises à jour des dépendances. Les champs de Chart.yaml sont écrits dans Chart.lock lors des mises à jour. Si Chart.lock est un lien symbolique vers un fichier exécutable (par exemple, bash.rc), la mise à jour des dépendances écrit le contenu de Chart.lock dans le fichier symbolique, entraînant l’exécution de code arbitraire. Helm v3.18.4 corrige ce problème ; effectuez une mise à jour et vérifiez la présence de fichiers Chart.lock symboliques.

Développement exécution de code local

Vulnérabilité de clonage de sous-module Git : exécution de code à distance via injection CRLF

2025-07-08

Une vulnérabilité dans Git permet aux attaquants d’exécuter du code à distance sur les systèmes de type Unix en créant un fichier .gitmodules malveillant. La vulnérabilité exploite les incohérences dans la gestion des caractères de retour chariot (CR) et de saut de ligne (LF). En injectant du CRLF, un attaquant peut modifier les chemins des sous-modules, ce qui entraîne le clonage du sous-module dans un répertoire inattendu, permettant l’exécution de code. Ce problème a été corrigé ; mettez à jour les versions de Git et les versions intégrées de Git.

(dgl.cx)

Berry : Un langage de script embarqué léger, rapide et puissant

2025-07-08
Berry : Un langage de script embarqué léger, rapide et puissant

Berry est un interpréteur de langage de script léger, rapide et puissant, conçu pour les microprocesseurs. Il utilise un compilateur de bytecode en une seule passe et une machine virtuelle basée sur les registres, prenant en charge les paradigmes de programmation impérative, orientée objet et fonctionnelle. Sa syntaxe simple et naturelle, le ramassage des ordures et l'interface de fonction étrangère (FFI) facile à utiliser le rendent convivial pour les développeurs. La construction d'objets à la compilation minimise l'utilisation de la RAM en stockant la plupart des objets constants dans des segments de données de code en lecture seule. Son typage dynamique et sa flexibilité le rendent idéal pour l'intégration dans les applications, offrant une excellente évolutivité dynamique.

iOS 26 Beta 3 : Liquid Glass se fait un lifting givré

2025-07-08
iOS 26 Beta 3 : Liquid Glass se fait un lifting givré

Le nouveau langage de design Liquid Glass d'Apple dans iOS 26 beta 3 a subi un changement significatif. Les barres de navigation, les boutons et les onglets sont désormais moins transparents, ce qui répond aux plaintes des utilisateurs concernant les problèmes de lisibilité dans les versions bêta précédentes. Bien que visant à améliorer la convivialité, certains utilisateurs estiment que ce changement diminue l'esthétique vitreuse distinctive présentée à la WWDC, le considérant comme un recul. Cette version bêta pour développeurs suggère qu'Apple continue d'affiner le design avant la sortie publique en septembre.

Développement

epanet-js : Un outil de simulation hydraulique révolutionnaire basé sur l'open source

2025-07-08

epanet-js est une application web combinant des cartes web modernes avec l'algorithme de simulation hydraulique EPANET. Développée par Iterating en utilisant le code du projet open source Placemark, elle offre une alternative basée sur navigateur aux logiciels propriétaires coûteux. Cet outil innovant remet en question le statu quo, en fournissant une solution puissante et accessible pour la planification et la mise à jour des systèmes de services d'eau. La bibliothèque principale est open source, démontrant la puissance de la contribution communautaire et des principes de l'open source.

Développement simulation hydraulique

Limitations de la macro `#[derive]` de Rust et solutions alternatives

2025-07-08
Limitations de la macro `#[derive]` de Rust et solutions alternatives

La macro `#[derive]` de Rust, lors de la génération d'implémentations pour des traits comme `Clone`, exige que tous les paramètres génériques implémentent également `Clone`. Cela limite son applicabilité. L'article analyse deux exemples montrant pourquoi cette restriction empêche la compilation du code. L'auteur propose deux solutions : soumettre un RFC pour modifier le comportement du compilateur et écrire une macro personnalisée pour contourner la limitation. L'auteur opte pour la seconde solution, prévoyant d'implémenter des macros `derive` plus flexibles dans le crate `derive_more` ou dans un crate qu'il créera lui-même pour résoudre ce problème.

Développement

Lean 4.22 : Une nouvelle infrastructure de vérification pour les programmes impératifs

2025-07-07

Lean 4.22 introduit une nouvelle fonctionnalité passionnante : une nouvelle infrastructure de vérification pour prouver les propriétés des programmes impératifs. L’article utilise un exemple simple — déterminer si une liste contient deux entiers dont la somme est égale à zéro — pour démontrer l’utilisation de cette fonctionnalité et la comparer à des outils similaires tels que Dafny et Verus. Le nouveau framework, Std.Do, utilise des triplets de Hoare et combine les tactiques `mvcgen` et `grind` pour simplifier considérablement le processus de vérification des programmes impératifs, même ceux comportant un flux de contrôle complexe comme des boucles et des retours anticipés. Contrairement aux systèmes automatisés qui reposent sur des solveurs SMT externes, l’approche de preuve interactive de Lean offre une meilleure fiabilité, une débogage plus facile et une meilleure maintenabilité, ce qui en fait un choix convaincant pour les tâches de vérification de programmes en environnement réel.

Ossia Score : Séquenceur Open Source pour Performances Audiovisuelles Interactives

2025-07-07
Ossia Score : Séquenceur Open Source pour Performances Audiovisuelles Interactives

Ossia Score est un séquenceur open source conçu pour les artistes audiovisuels afin de créer des spectacles interactifs. Il permet de séquencer OSC, MIDI, DMX, son, vidéo, et plus encore sur plusieurs logiciels et matériels. Créez des partitions interactives et intermédiaires, des scripts et du code en direct avec JavaScript, ISF Shaders, Faust, PureData ou C++. Interagissez avec des joysticks, des Wiimotes, des Leap Motions, des API Web et des capteurs BLE. Traitez les visuels via Spout, Syphon, NDI, Shmdata ou Sh4lt ; et sonorisez des ensembles de données avec le support CSV et HDF5. Gratuit, open source, et fonctionne sur les ordinateurs de bureau, les mobiles, le web et les systèmes embarqués (même Raspberry Pi Zero 2).

tinymcp : Contrôler les dispositifs embarqués avec les LLMs

2025-07-07
tinymcp : Contrôler les dispositifs embarqués avec les LLMs

Le projet tinymcp permet aux grands modèles linguistiques (LLM) de contrôler les dispositifs embarqués via le protocole Model Context Protocol (MCP). Il exploite l'état LightDB et les appels de procédure à distance (RPC) de la plateforme Golioth pour y parvenir. Les dispositifs existants peuvent exposer les RPC sans modification du firmware en mettant à jour l'état LightDB. Un exemple simple de blinky montre comment exposer le contrôle des LED à un LLM via tinymcp. Les utilisateurs doivent connecter un dispositif à la plateforme Golioth et exécuter le serveur tinymcp localement. Des outils tels que MCP Inspector et Claude Code sont disponibles pour tester et interagir avec tinymcp.

Développement Dispositifs embarqués

SUS HDL : Un langage de description matérielle plus intuitif

2025-07-07

SUS HDL est un nouveau langage de description matérielle (HDL) visant à simplifier le processus de conception de matériel. Contrairement à Verilog ou VHDL, SUS propose un comptage de latence pour faciliter la gestion du temps et des pipelines, un compilateur qui suit et affiche les aspects de la conception dans l'éditeur, et de puissantes capacités de métaprogrammation pour générer des LUT. Sa philosophie principale est une syntaxe claire pour la génération directe de netlists, compatible avec les outils de synthèse traditionnels. Bien qu'il exige un matériel synchrone, sa facilité d'utilisation et ses fonctionnalités puissantes en font une alternative prometteuse.

Développement

ChatGPT a menti, alors nous avons créé une fonctionnalité

2025-07-07

Le scanner de partitions de Soundslice a commencé à recevoir de nombreux journaux d'erreurs : des captures d'écran de sessions ChatGPT où les utilisateurs essayaient de télécharger des tablatures de guitare ASCII. Le rebondissement ? ChatGPT affirmait à tort que Soundslice le prenait en charge ! Pour gérer l'afflux de nouveaux utilisateurs induits en erreur par cette désinformation, Soundslice a créé un importateur de tablatures ASCII, une fonctionnalité très éloignée de sa feuille de route 2025. Cela soulève la question : les entreprises devraient-elles développer des fonctionnalités en réponse à la désinformation générée par l'IA ?

Livre Springer sur l'apprentissage automatique accusé de citations fabriquées

2025-07-07
Livre Springer sur l'apprentissage automatique accusé de citations fabriquées

Un manuel d'apprentissage automatique à 169 $, "Mastering Machine Learning", publié par Springer Nature, a été accusé de contenir de nombreuses citations fabriquées. Une enquête a révélé que les deux tiers des 18 citations vérifiées n'existaient pas ou contenaient des erreurs significatives. Plusieurs chercheurs cités ont confirmé que les travaux étaient faux ou que les citations contenaient des inexactitudes substantielles. Cela soulève des inquiétudes quant à la fiabilité du contenu généré par les grands modèles de langage (LLM) et à la réglementation des outils d'IA dans l'édition universitaire. L'éditeur enquête, mais l'incident souligne les défis à l'intégrité académique posés par l'écriture assistée par IA.

Résolution de Wordle avec uv et les paquets Python

2025-07-07

L'auteur avait précédemment écrit un solveur de Sudoku utilisant le résolveur de dépendances de Poetry et tente maintenant de résoudre Wordle en utilisant uv, plus avancé. L'article détaille comment traduire le problème de Wordle en un problème de dépendances de paquets Python, utilisant intelligemment le résolveur de dépendances d'uv pour trouver la solution. En créant une série de paquets représentant les positions des lettres et les retours, et en définissant des dépendances entre eux, l'auteur résout Wordle avec succès en utilisant uv.

Développement

Microjax : JAX en deux classes et six fonctions

2025-07-07
Microjax : JAX en deux classes et six fonctions

Inspiré par Micrograd d'Andrej Karpathy, Microjax est une bibliothèque qui reproduit les fonctionnalités de JAX en utilisant seulement deux classes et six fonctions. Contrairement au populaire PyTorch, Microjax adopte le style de programmation plus fonctionnel de JAX. Ce tutoriel s'inspire largement de l'excellente présentation de Matthew J Johnson de 2017 sur autograd, le prédécesseur de JAX, en le simplifiant et en le proposant sous forme de notebook.

Développement

arXivLabs : Expérimenter avec la collaboration communautaire

2025-07-07
arXivLabs : Expérimenter avec la collaboration communautaire

arXivLabs est un cadre permettant de développer et de partager de nouvelles fonctionnalités arXiv directement sur le site web, de manière collaborative. Les participants doivent adhérer aux valeurs d'arXiv : ouverture, communauté, excellence et confidentialité des données utilisateur. Vous avez une idée pour améliorer la communauté arXiv ? En savoir plus sur arXivLabs !

Développement

Deno 2.4 : Compilation, importations améliorées et fonctionnalités stables

2025-07-07
Deno 2.4 : Compilation, importations améliorées et fonctionnalités stables

Deno 2.4 arrive avec des mises à jour passionnantes ! La commande `deno bundle`, de retour, permet de créer des bundles JavaScript en un seul fichier, en utilisant esbuild pour le tree-shaking et la minification. Le nouveau drapeau `--unstable-raw-imports` permet l’importation directe de données texte et binaires, simplifiant l’importation de fichiers autres que JavaScript. La prise en charge intégrée d’OpenTelemetry est désormais stable, supprimant le besoin du drapeau `--unstable-otel`. De plus, un nouveau drapeau `--preload` vous permet d’exécuter du code avant votre script principal, la commande `deno update` simplifie la gestion des dépendances, et `deno run --coverage` collecte désormais la couverture des sous-processus. La gestion des permissions est améliorée avec la prise en charge des caractères génériques de sous-domaine et des plages CIDR. La prise en charge de `package.json` est améliorée, incluant une meilleure gestion des exportations conditionnelles et des paquets npm locaux.

Développement

Face-à-face des formats Tar : lequel est le meilleur ?

2025-07-07

Cet article explore un test complet de compatibilité de différents formats tar (v7, ustar, pax, GNU, etc.). Les résultats montrent que le format POSIX ustar offre la meilleure compatibilité, tandis que le format GNU excelle pour les longs chemins d'accès et les fichiers volumineux. Le format pax, bien que riche en fonctionnalités, souffre d'une faible compatibilité. L'auteur recommande de privilégier le format ustar, d'utiliser le format GNU pour les longs chemins d'accès et les fichiers volumineux si nécessaire, et de faire preuve de prudence avec les fonctionnalités étendues du format pax pour assurer une compatibilité maximale.

L'essor du concepteur de puces full-stack : une révolution impulsée par l'IA ?

2025-07-07
L'essor du concepteur de puces full-stack : une révolution impulsée par l'IA ?

Cet article explore comment l'IA pourrait révolutionner la conception de puces en permettant une approche « full-stack ». Traditionnellement, les équipes front-end (conception RTL) et back-end (génération GDS) travaillent de manière isolée, ce qui entraîne des inefficacités. L'auteur soutient que l'IA, en particulier les LLM, peut combler ce manque en créant des bases de données de connaissances, en améliorant la génération de RTL et en améliorant la documentation. Cela réduira les cycles d'itération, permettant à des individus ou à de petites équipes de gérer l'ensemble du flux de conception de puces. Cette efficacité accrue est cruciale pour faire face à la hausse des coûts de fabrication et des outils EDA, et deviendra un avantage concurrentiel clé pour les entreprises de conception de puces.

Développement conception de puces

Astuces Python inhabituelles dans les bibliothèques courantes

2025-07-07
Astuces Python inhabituelles dans les bibliothèques courantes

Cet article dévoile des techniques Python moins connues découvertes en explorant des bibliothèques largement utilisées. L'auteur met en lumière l'utilisation de `super()` dans les classes de base pour une héritage multiple coopératif, l'emploi de mixins pour l'ajout modulaire de fonctionnalités, l'utilisation d'importations relatives pour des recherches spécifiques de paquets et l'utilisation de `__init__.py` au-delà de la déclaration de paquet pour la simplification de l'API et l'initialisation. L'article révèle également le rôle de `conftest.py` dans la reconnaissance des modules pytest et la valeur de l'étude des articles de conception de bibliothèques pour une compréhension plus approfondie.

Développement

systemd-lsp : Optimisez l'édition de vos fichiers d'unité systemd

2025-07-07
systemd-lsp : Optimisez l'édition de vos fichiers d'unité systemd

Fatigué de vous battre avec les fichiers d'unité systemd ? systemd-lsp change la donne. Cette implémentation du Protocole de serveur de langage (LSP) basée sur Rust fournit la mise en évidence de la syntaxe, les diagnostics, la saisie semi-automatique, la documentation au survol et la mise en forme pour vos fichiers d'unité systemd. Construit avec Rust pour la vitesse et la sécurité, c'est un seul binaire autonome avec une documentation intégrée, compatible avec tous les principaux éditeurs compatibles LSP sous Linux, macOS et Windows. L'installation est simple grâce à Cargo. Essayez-le dès aujourd'hui !

Développement

Backlog.md : Gestion de tâches native Markdown pour les dépôts Git

2025-07-07
Backlog.md : Gestion de tâches native Markdown pour les dépôts Git

Backlog.md transforme n'importe quel dépôt Git en un tableau de projet autonome utilisant des fichiers Markdown simples. Cet outil CLI sans configuration offre un système de gestion de tâches natif Markdown, une expérience privée hors ligne, une vue Kanban instantanée en terminal, une interface web moderne, des commandes prêtes pour l'IA et des capacités de requête riches. Il est multiplateforme, sous licence MIT et parfait pour gérer les tâches directement dans votre flux de travail Git.

Développement

Entretien de programmation asynchrone : un défi assisté par l’IA

2025-07-07

Cet article de blog détaille une question d’entretien de programmation unique : implémenter une file d’attente asynchrone, `sendOnce`, garantissant qu’un client monofilaire n’envoie qu’une seule requête à un serveur défaillant à la fois. L’entretien évalue la capacité des candidats à gérer une logique de drapeau complexe, à déboguer du code, à programmer dans un environnement monofilaire et à s’adapter à de nouvelles exigences (tels que des délais minimums, l’envoi par lots, des mécanismes d’annulation, des nouvelles tentatives, etc.). L’auteur aborde également le rôle de l’IA dans les entretiens, en faisant valoir que, si l’IA peut aider à la programmation, les candidats doivent néanmoins posséder des compétences en révision de code ; l’utilisation efficace des outils d’IA est un nouveau critère d’évaluation.

Développement file d'attente asynchrone
1 2 45 46 47 49 51 52 53 214 215