Category: Développement

Indexation efficace dans les frameworks d'apprentissage profond : Comparaison de Torch, TensorFlow et Einops

2025-09-24

Cet article compare différentes approches de l'indexation efficace des tableaux dans PyTorch, TensorFlow et Einops. En comparant `torch.gather`, `torch.take_along_dim`, `torch.index_select`, `torch.take`, `tf.gather`, `tf.gather_nd` et `einx.get_at` d'Einops, il met en évidence leurs différences de flexibilité et d'efficacité dans la gestion des différentes dimensions et de l'indexation par lots, fournissant ainsi aux développeurs une référence pour choisir la solution optimale.

Développement indexation de tableaux

Fortran contre Python : une découverte inattendue dans l’enseignement de l’informatique scientifique aux étudiants en ingénierie

2025-09-24
Fortran contre Python : une découverte inattendue dans l’enseignement de l’informatique scientifique aux étudiants en ingénierie

Un professeur qui enseigne un cours d’introduction à l’informatique scientifique depuis plus de 10 ans à l’aide de Python remet en question le choix de Python comme langage optimal pour les débutants, notamment en algèbre linéaire numérique. Il soutient qu’un langage fortement typé comme Fortran pourrait offrir une meilleure expérience d’apprentissage. La flexibilité de Python, bien que pratique, conduit à des erreurs courantes chez les étudiants : confusion avec la bibliothèque numpy, erreurs d’indentation et erreurs d’indice incorrectes dues à l’indexation commençant à zéro. En revanche, le typage fort de Fortran et les structures de boucle explicites aident les étudiants à mieux comprendre les algorithmes et à réduire les erreurs. L’article prend pour exemples la méthode de Jacobi et la décomposition QR, en comparant les implémentations en Python et en Fortran et en plaidant pour les avantages potentiels de Fortran dans l’enseignement, malgré l’écosystème plus vaste et la polyvalence de Python.

Développement informatique scientifique

Mise à jour : Manuel d’introduction aux langages de programmation

2025-09-24

Les professeurs Jaemin Hong et Sukyoung Ryu du KAIST ont publié une version mise à jour de leur manuel, "Introduction aux langages de programmation". Ce manuel introductif couvre les concepts fondamentaux des langages de programmation, notamment la syntaxe, la sémantique, les systèmes de types et les implémentations d’interpréteurs/vérificateurs de types. Les auteurs encouragent son utilisation par toute personne apprenant ou enseignant ces concepts et reconnaissent les contributions des étudiants et des assistants d’enseignement. La dernière édition comporte des corrections typographiques et des marges de page réduites.

Développement

Podman Desktop dépasse les 3 millions de téléchargements !

2025-09-24
Podman Desktop dépasse les 3 millions de téléchargements !

Podman Desktop, une application de bureau pour la gestion des conteneurs et de Kubernetes, a franchi le cap des 3 millions de téléchargements ! Ce succès est dû au fort soutien de la communauté et aux améliorations continues, notamment des flux de travail Kubernetes plus fluides, une meilleure compatibilité avec Docker et des améliorations de la qualité de vie quotidienne. Podman Desktop a également rejoint le projet CNCF Sandbox et est de plus en plus adopté par les entreprises. L'équipe remercie les utilisateurs pour leurs commentaires et s'engage à apporter des améliorations continues pour offrir aux développeurs une expérience de gestion des conteneurs et de Kubernetes encore plus efficace.

Développement

Journal des mises à jour du projet Vterm : Améliorations continues des performances et des fonctionnalités

2025-09-24

Le développeur de Vterm, Tom Szilagyi, a effectué de nombreux commits récemment, couvrant les optimisations de performances, les corrections de bogues et les nouvelles fonctionnalités. Ces mises à jour incluent des améliorations des performances du GPU, la correction d'un bogue de signe, l'ajout de nouvelles options de ligne de commande et l'amélioration du rendu des caractères et de l'affichage des soulignements. Les améliorations continues du code améliorent la stabilité et l'efficacité de Vterm.

Développement mises à jour du code

fetch_max de Rust : Plongeon au cœur de l'optimisation du compilateur

2025-09-24
fetch_max de Rust : Plongeon au cœur de l'optimisation du compilateur

Lors d'un récent entretien d'embauche pour un poste d'ingénieur, un candidat a utilisé une seule ligne de code Rust pour résoudre un problème classique de concurrence : suivre la valeur maximale sur plusieurs threads producteurs. Cela a suscité la curiosité de l'auteur : comment fonctionne réellement fetch_max de Rust ? L'article explore en profondeur le processus de compilation, du code Rust à l'assemblage, en révélant les couches d'optimisation impliquant des macros, la représentation intermédiaire LLVM, les intrinsèques du compilateur et les spécificités de l'architecture cible. Sur x86-64, fetch_max se compile en une boucle compare-and-swap (CAS) ; sur ARM, il utilise directement l'instruction max atomique du matériel. Cet article démontre la puissance des compilateurs modernes et les détails de bas niveau derrière les abstractions de haut niveau.

Développement

Val Town réécrit l'intégration TypeScript pour des performances fulgurantes

2025-09-24
Val Town réécrit l'intégration TypeScript pour des performances fulgurantes

Val Town a entièrement réécrit l'intégration TypeScript de son éditeur en ligne, remplaçant l'implémentation précédente côté client basée sur Web Worker par un serveur de langage Deno basé sur des conteneurs cloud. Cela résout les problèmes d'importations lentes de paquets NPM et d'incompatibilité entre TypeScript et Deno dans l'ancien système, atteignant des vitesses de déploiement de 100 ms à la sauvegarde. Le nouveau système utilise les conteneurs Cloudflare pour garantir l'isolation de la charge de travail de l'utilisateur et les limites de ressources, et tout le code est open source, offrant aux développeurs une expérience de développement TypeScript plus fluide et efficace.

Développement Éditeur en ligne

Preuves à connaissance zéro en espace sous-linéaire : une percée majeure

2025-09-24
Preuves à connaissance zéro en espace sous-linéaire : une percée majeure

Des chercheurs ont développé SSZKP, un système de preuve à connaissance zéro en espace sous-linéaire avec une implémentation en Rust utilisant KZG/BN254. Il atteint une utilisation de la mémoire O(√T) pour une trace de longueur T, en utilisant des IFFTs par blocs et des accumulateurs en streaming. SSZKP utilise des engagements KZG standard sans tamponner les polynômes entiers, offrant une approche très efficace pour construire des systèmes zk évolutifs. Le projet inclut des outils CLI complets pour le prouveur et le vérificateur, ainsi que des scripts de test de bout en bout.

Développement

L'avenir des langages de programmation : la popularité est-elle terminée ?

2025-09-24
L'avenir des langages de programmation : la popularité est-elle terminée ?

Les classements des langages de programmation 2023 sont sortis, Python étant une fois de plus en tête. Cependant, l'essor de l'IA est en train de bouleverser le paysage. Les outils de codage assistés par IA comme ChatGPT et Cursor réduisent la dépendance des programmeurs à des langages spécifiques, rendant même le concept de popularité d'un langage ambigu. Les programmeurs se soucient moins des détails syntaxiques et se concentrent davantage sur l'architecture des programmes et la conception d'algorithmes. Cela rend plus difficile l'émergence de nouveaux langages, et la popularité des langages pourrait devenir aussi obscure que la popularité relative des écartements de voie ferrée. Les programmeurs de demain auront besoin de solides bases en informatique, plutôt que d'une maîtrise d'un langage particulier.

Développement

Webshell cachée : fichiers PHP avec hash MD5 identique

2025-09-24
Webshell cachée : fichiers PHP avec hash MD5 identique

Deux fichiers PHP partagent le même hachage MD5, mais l'un d'eux est une webshell. Cette technique permet aux attaquants de contourner la détection des webshells mises en cache. Un hexdump révèle de subtiles différences entre les fichiers, ce qui entraîne des hachages MD5 identiques malgré des fonctionnalités très différentes. Cela souligne l'insuffisance de se fier uniquement au hachage MD5 pour les vérifications de sécurité ; une stratégie de sécurité plus complète est nécessaire.

Lancement de libghostty, la bibliothèque d'émulateur de terminal embarquable de Ghostty

2025-09-24

Le projet Ghostty a publié libghostty, une bibliothèque intégrable permettant à n'importe quelle application d'intégrer un émulateur de terminal moderne et rapide. La première version, libghostty-vt, est une bibliothèque sans dépendances (pas même libc !) fournissant une API pour analyser les séquences de terminal et maintenir l'état du terminal, extraite directement du cœur de Ghostty. Une API Zig est disponible pour les tests dès maintenant, et une API C arrivera bientôt. libghostty vise à résoudre les lacunes courantes des implémentations existantes d'émulateurs de terminal : incomplétude, bogues et lenteur, offrant aux développeurs une solution stable et réutilisable. Les projets futurs incluent l'extension des fonctionnalités avec la gestion des entrées, le rendu GPU et plus encore.

Développement bibliothèque embarquable

Trois bogues du compilateur C++ : une histoire de fonctionnalités obscures

2025-09-23
Trois bogues du compilateur C++ : une histoire de fonctionnalités obscures

L'ingénieur principal Michael Gibson raconte la découverte d'un bogue du compilateur clang++ résultant de la combinaison de trois fonctionnalités C++ rarement utilisées. Lors de l'implémentation d'une assertion REACHABLE dans son SDK C++, il a utilisé l'initialisation statique, des paramètres de modèle non typés et des espaces de noms anonymes. Cependant, un nouveau pipeline d'optimisation dans clang++ 17+ est entré en conflit avec cette combinaison, entraînant des erreurs de déduplication de symboles. Cela souligne le risque de bogues obscurs provenant d'interactions de fonctionnalités inhabituelles dans les systèmes complexes et montre la puissance des tests automatisés pour découvrir de tels problèmes.

Zig : Un choix plus pratique que Rust pour les outils CLI du monde réel

2025-09-23
Zig : Un choix plus pratique que Rust pour les outils CLI du monde réel

Cet article explore les avantages pratiques de Zig par rapport à Rust pour la création d'interfaces en ligne de commande. L'auteur illustre les différences à travers un outil CLI simple de gestion de notes. Bien que le vérificateur d'emprunts de Rust garantisse la sécurité mémoire, sa complexité et sa formalité s'avèrent lourdes pour les CLIs simples. Zig offre une approche plus directe de la gestion de la mémoire, combinant les instructions `defer` et les allocateurs pour faciliter la création de code efficace et sûr avec moins de surcharge du compilateur. Pour les petits outils CLI, la nature légère, rapide et directe de Zig le rend plus pratique. La sécurité mémoire est importante, mais le code maintenable et l'efficacité du développeur sont tout aussi critiques.

Développement

Vaincre la fatigue JavaScript : MESH, un framework SSR modulaire basé sur HTMX

2025-09-23

Le développement web est confronté à la « fatigue JavaScript » et à la « fatigue des frameworks ». Cet article explore l’utilisation d’HTMX, une approche déclarative du développement web utilisant des attributs HTML, comme solution. Cependant, le manque de structure d’HTMX a conduit l’auteur à créer le framework MESH, un framework modulaire de rendu côté serveur (SSR). MESH utilise un modèle « un composant, un point de terminaison », tirant parti de Go et de Web Components pour le SSR et l’hydratation. Les défis liés à l’incapacité d’HTMX à traverser les limites de Shadow DOM ont été surmontés grâce à des solutions ingénieuses. La collaboration en temps réel avec les Server-Sent Events (SSE) a également été implémentée. Enfin, l’auteur a même supprimé HTMX complètement, en utilisant un JS plus propre pour obtenir la même fonctionnalité, et réfléchit aux lacunes et aux orientations futures d’HTMX.

Développement

WebKit d'Apple : Plongeon au cœur de la participation aux standards du Web

2025-09-23
WebKit d'Apple : Plongeon au cœur de la participation aux standards du Web

Cet article propose une analyse approfondie de la participation d'Apple aux standards du Web, utilisant des données et des graphiques pour illustrer le retard d'adoption et le manque de collaboration d'Apple sur des API Web cruciales telles que Web MIDI, Web USB et Web Bluetooth. L'auteur soutient qu'Apple invoque fréquemment des préoccupations de « confidentialité et de sécurité » pour rejeter ou retarder l'implémentation de ces fonctionnalités, sans toutefois fournir de preuves suffisantes à l'appui de ses affirmations. Au contraire, les données suggèrent qu'Apple rattrape principalement son retard par rapport aux autres navigateurs, plutôt que de participer activement à la conception collaborative. L'article remet en question l'engagement d'Apple envers les standards du Web et suggère que ses actions pourraient être liées à la protection des intérêts commerciaux de son App Store.

Développement

oLLM : Exécution de LLMs à grand contexte sur des GPU grand public

2025-09-23
oLLM : Exécution de LLMs à grand contexte sur des GPU grand public

oLLM est une bibliothèque Python légère permettant l'inférence de LLMs à grand contexte tels que gpt-oss-20B et qwen3-next-80B sur des GPU grand public avec 8 Go de VRAM (par exemple, une Nvidia 3060 Ti à 200 $), gérant jusqu'à 100 000 contextes. Ceci est réalisé sans quantification, en déchargeant les poids des couches et le cache KV sur un SSD et en utilisant des techniques telles que FlashAttention-2 et des MLP segmentées. Prenant en charge divers LLMs, oLLM offre une API conviviale pour les tâches de traitement de texte à grande échelle, telles que l'analyse de contrats, la synthèse de littérature médicale et le traitement de fichiers journaux volumineux.

arXivLabs : Collaboration communautaire sur les nouvelles fonctionnalités d'arXiv

2025-09-23
arXivLabs : Collaboration communautaire sur les nouvelles fonctionnalités d'arXiv

arXivLabs est un cadre expérimental permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités d'arXiv directement sur le 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 est engagé envers ces valeurs et ne travaille qu'avec des partenaires qui les respectent. Vous avez une idée de projet qui apportera une valeur ajoutée à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Image Docker qBittorrent infectée mine secrètement des cryptomonnaies

2025-09-23

Lors de la migration de serveurs, l'auteur a découvert un processus suspect, netservlet, consommant des ressources CPU excessives dans un conteneur Docker hotio/qbittorrent. L'enquête a révélé que netservlet est un mineur de cryptomonnaie furtif, probablement XMRig ou une variante. L'analyse d'un vidage de mémoire a révélé des chaînes de caractères liées à l'extraction de cryptomonnaie (par exemple, cryptonight, ethash_calculate_dag_item) et une adresse de pool de minage (auto.c3pool.org:19999). Cela souligne l'importance de ne pas faire confiance aux images Docker aléatoires, de surveiller régulièrement les ressources système et d'auditer les hôtes et les conteneurs pour éviter les failles de sécurité.

StringZilla v4 : Lancement de la bibliothèque de traitement de chaînes SIMD avec accélération CUDA

2025-09-23
StringZilla v4 : Lancement de la bibliothèque de traitement de chaînes SIMD avec accélération CUDA

StringZilla v4 est arrivé ! Cette bibliothèque de traitement de chaînes SIMD prend désormais en charge CUDA, ce qui signifie qu’elle est extrêmement rapide, non seulement sur les CPU, mais aussi sur les GPU ! La version 4 offre de nombreuses nouvelles fonctionnalités, notamment des algorithmes de programmation dynamique accélérés par GPU, plusieurs fonctions de hachage (dont une nouvelle fonction basée sur AES) et l’empreinte digitale de bio-séquences à l’aide d’entiers 52 bits. Les benchmarks montrent que StringZilla v4 atteint plus de 500 GCUPS dans les calculs de distance de Levenshtein, surpassant d’autres bibliothèques de dizaines, voire de centaines de fois. La bibliothèque est sous licence Apache 2.0 et est gratuite pour un usage commercial.

Développement bio-informatique

YAML : Le fichier de configuration infernal ?

2025-09-23

Cet article critique la complexité des fichiers de configuration YAML, arguant que son apparente simplicité cache de nombreux pièges. L’auteur utilise plusieurs exemples pour illustrer les incohérences entre les versions de YAML, les résultats d’analyse imprévisibles et les risques de sécurité potentiels, tels que les problèmes liés aux nombres sexagésimaux, aux balises et à l’analyse booléenne. L’auteur recommande des alternatives plus simples comme TOML ou la génération de JSON pour éviter les problèmes de YAML, suggérant des options plus puissantes comme Nix et Python pour les configurations complexes.

Développement

Compilation d'un petit langage fonctionnel vers LLVM : exemple de calculatrice simple

2025-09-23

Cet article détaille le processus de compilation d'un petit langage fonctionnel vers LLVM. En commençant par un langage de calculatrice basique, l'auteur construit progressivement un analyseur lexical, un analyseur syntaxique et un générateur de code LLVM. L'article explique minutieusement chaque étape, notamment l'analyse avec la bibliothèque megaparsec, la génération de code LLVM IR à l'aide des bibliothèques llvm-hs-pure et llvm-hs-pretty, et enfin la compilation et l'exécution du résultat. Grâce à cet exemple, les lecteurs peuvent apprendre à traduire les caractéristiques des langages fonctionnels (comme la correspondance de motifs) en LLVM IR et à utiliser LLVM pour la génération et la compilation de code.

Développement Langage fonctionnel

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

2025-09-23
arXivLabs : Projets expérimentaux avec les collaborateurs de la communauté

arXivLabs est un framework qui permet aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv 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 envers ces valeurs et ne travaille qu'avec des partenaires qui les respectent. Vous avez une idée de projet qui apportera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Les Crottes de Chat d'un Programmeur et la Rédemption

2025-09-23
Les Crottes de Chat d'un Programmeur et la Rédemption

Un programmeur, voyant un collègue manger des crottes de chat déguisées en bonbons à la menthe dans un bar, tombe dans une profonde réflexion. Il commence à réfléchir aux années passées à rencontrer des problèmes de « crottes de chat » dans son travail de programmation : modifications de code inutiles, processus lourds et son ancienne impatience et manque de compréhension envers les autres. Il réalise qu'il s'est autrefois enorgueilli de son expertise, l'utilisant même pour juger les autres, mais qu'il se sent maintenant fatigué et perdu. L'article explore les difficultés auxquelles les programmeurs sont confrontés dans leur carrière et comment maintenir la passion et la créativité, se terminant par le fait qu'il recherche l'aide de l'IA pour résoudre des problèmes et réfléchit à sa propre attitude, montrant un cheminement de rédemption.

Développement

Créez votre propre système local de transcription vocale avec Python et Whisper

2025-09-23
Créez votre propre système local de transcription vocale avec Python et Whisper

Fatigué des risques liés à la confidentialité liés au téléchargement d'audio sensible vers des services de transcription dans le cloud ? Cet article vous montre comment créer un système local de transcription vocale à l'aide de Python et du modèle Whisper d'OpenAI. Transcrivez vos fichiers audio en moins de 10 minutes avec une précision de 96 % — entièrement gratuit et traité localement sur votre ordinateur portable. Le tutoriel couvre la configuration de FFmpeg, de votre environnement Python, l'utilisation du modèle Whisper, le traitement par lots, la création de sous-titres SRT et la résolution des problèmes courants. Une méthode alternative utilisant la bibliothèque `speech_recognition` est également fournie.

Développement transcription vocale

Incident de sécurité RubyGems et Bundler : Explication d'un trésorier

2025-09-23
Incident de sécurité RubyGems et Bundler : Explication d'un trésorier

MINASWAN, membre du conseil d'administration et trésorier de Ruby Central, a publié une déclaration concernant la récente controverse autour de la sécurité de RubyGems et Bundler. Il explique qu'en raison d'un manque de communication et de la pression du temps, le conseil a décidé de révoquer temporairement l'accès de certains mainteneurs afin d'assurer la sécurité du système et d'éviter la perte de financement. Il reconnaît des défaillances de communication et s'excuse pour la peur et la confusion qui en ont résulté, soulignant que cette mesure visait à protéger la stabilité et la sécurité de l'écosystème Ruby.

Développement

Repenser l'unité de travail dans le développement logiciel

2025-09-23

Cet article explore les meilleures pratiques pour définir l'«unité de travail» dans le développement logiciel. L'auteur soutient qu'une bonne unité de travail doit être décomposable, vérifiable, indépendante et priorisable, similaire à une user story, mais avec un accent plus fort sur son rôle tout au long du cycle de vie du logiciel. Définir clairement l'unité de travail, affirme l'auteur, augmente l'efficacité de l'équipe, réduit la complexité inutile et, finalement, offre plus de valeur au client. L'article critique également la pratique consistant à mesurer uniquement l'efficacité du développement assisté par IA par le volume de code généré, préconisant plutôt une évaluation axée sur la valeur client de l'impact réel de l'unité de travail.

Développement unité de travail

httpjail : Filtrage HTTP granulaire pour les agents d'IA

2025-09-23

À mesure que les agents d'IA deviennent plus puissants, les risques de sécurité augmentent. httpjail est un outil offrant un filtrage HTTP(S) granulaire, permettant aux développeurs de contrôler l'accès au réseau de l'agent à l'aide d'expressions JavaScript ou de scripts personnalisés. Cela empêche les fuites de données et les actions malveillantes. Il fonctionne en deux modes : fort (utilisant les espaces de noms Linux et nftables) et faible (utilisant les variables d'environnement), et dispose d'une interception TLS pour le trafic HTTPS sécurisé. Bien qu'aucun système ne soit parfaitement sûr, httpjail apporte des améliorations significatives à la sécurité de l'utilisation d'agents d'IA puissants.

Développement Filtrage HTTP

Les tests surpassent les algorithmes : guide pour les ingénieurs logiciels à la recherche d’un emploi

2025-09-23

Un ingénieur chevronné soutient que les demandeurs d’emploi accordent trop d’importance aux structures de données et aux algorithmes (DSA), tout en négligeant la compétence cruciale des tests. Bien que les DSA constituent la base de la programmation, la réalité est que les algorithmes complexes doivent rarement être implémentés à partir de zéro dans les emplois du monde réel. L’auteur recommande d’apprendre les structures de données et les algorithmes fondamentaux, de comprendre la complexité temporelle et de maîtriser les structures de données intégrées de Python. Plus important encore, priorisez la maîtrise des compétences en matière de tests, qui sont essentielles dans le travail réel et peuvent vous aider à vous démarquer lors des entretiens. Au lieu de vous acharner sur LeetCode, concentrez-vous sur l’amélioration de vos compétences en matière de tests pour écrire du code de haute qualité.

Développement

Notion 3.0 : les agents IA automatisent les tâches fastidieuses

2025-09-23
Notion 3.0 : les agents IA automatisent les tâches fastidieuses

Notion 3.0 est arrivé avec des agents IA capables d'effectuer toutes les tâches qu'un humain peut réaliser dans Notion. Ces agents automatisent les tâches répétitives, créant des documents, des bases de données et des rapports. Contrairement aux chatbots génériques, les agents IA de Notion comprennent votre flux de travail et prennent des mesures contextuelles. Des options de personnalisation vous permettent de personnaliser le comportement et les instructions de votre agent. Les futures mises à jour incluront des agents personnalisés pour l'automatisation à l'échelle de l'équipe. Cette version inclut également des fonctionnalités très demandées comme les permissions de ligne de base de données et de nouveaux connecteurs IA.

Développement

Couche d'interface GNU (GIL) pour g++

2025-09-23
Couche d'interface GNU (GIL) pour g++

Ce dépôt fournit une implémentation de la couche d'interface GNU (GIL) et de la bibliothèque standard pour g++. Il inclut un exemple simple de "Bonjour le monde !" en C++, ainsi que d'autres exemples tels qu'une calculatrice et un tri fusion. L'exécution du code nécessite le compilateur g++ et une attention particulière à la configuration des chemins. Le projet présente une approche non traditionnelle de la programmation C++ utilisant une bibliothèque standard personnalisée.

Développement
2 4 5 6 7 8 9 214 215