Category: Développement

Tutoriel C interactif gratuit lancé

2025-04-27
Tutoriel C interactif gratuit lancé

learn-c.org a lancé un tutoriel de programmation C interactif et gratuit. Que vous soyez débutant ou programmeur expérimenté, ce site est conçu pour tous ceux qui souhaitent apprendre le C. Aucun téléchargement requis ; cliquez simplement sur un chapitre pour commencer. Le site est encore en construction et les contributions sont les bienvenues.

Développement

go-mysql-server de Dolt après cinq ans : Le parcours d'une requête

2025-04-27
go-mysql-server de Dolt après cinq ans : Le parcours d'une requête

Cet article revient sur les cinq années d'utilisation de go-mysql-server par Dolt, en détaillant le fonctionnement interne de son moteur SQL. Il décrit le cheminement d'une requête, de l'analyse à la génération des résultats, en passant par l'analyse, la liaison, la simplification du plan, l'exploration des jointures, l'optimisation basée sur les coûts et l'exécution. Dolt utilise un analyseur récursif à gauche et une programmation dynamique ascendante pour optimiser le plan de requête, en sélectionnant la stratégie d'exécution optimale à l'aide d'un modèle de coût. L'article aborde également la gestion de la mémoire et les optimisations futures, telles que l'unification des représentations intermédiaires et la réduction des échanges de mémoire.

Développement

GoEnums : Génération élégante d'énumérations pour Go

2025-04-26
GoEnums : Génération élégante d'énumérations pour Go

Fatigué du manque de support natif pour les énumérations en Go ? GoEnums génère des implémentations d'énumérations complètes et sécurisées pour les types à partir de déclarations de constantes simples. Transformez des constantes iota de base en énumérations riches en fonctionnalités avec conversion de chaînes, validation, gestion JSON, intégration de base de données, et plus encore. GoEnums prend en charge les champs personnalisés, l'analyse insensible à la casse, et fournit une documentation et des exemples détaillés. Simplifiez votre code Go avec GoEnums !

Développement

Construction d'une bibliothèque standard C compacte avec Newlib sur RISC-V Bare Metal

2025-04-26
Construction d'une bibliothèque standard C compacte avec Newlib sur RISC-V Bare Metal

Cet article montre comment construire une bibliothèque standard C compacte à l'aide de Newlib sur un système RISC-V bare-metal. L'auteur implémente des fonctions UART de base, les passant à Newlib pour activer la fonctionnalité printf. Le processus couvre le concept de Newlib, la configuration de la chaîne d'outils de compilation croisée, le pilote UART, les appels système et la création d'un script de liaison. L'article se termine par l'exécution de l'application dans QEMU et l'analyse du journal de débogage. Il s'agit d'un tutoriel pratique sur le développement de systèmes embarqués, montrant comment utiliser la bibliothèque standard C dans des environnements aux ressources limitées.

Développement

HTTP Feeds : Flux d’événements asynchrone avec HTTP simple

2025-04-26

HTTP Feeds est une spécification minimale pour le streaming d’événements asynchrone et la réplication de données à l’aide d’API HTTP simples. Il définit un point de terminaison HTTP GET qui renvoie une séquence chronologique d’événements CloudEvents dans des réponses par lots. À l’aide du paramètre de requête `lastEventId`, les clients peuvent effectuer un polling infini pour des mises à jour en temps réel, offrant une alternative aux courtiers de messages (tels que Kafka ou RabbitMQ). La spécification couvre également le polling long pour une latence inférieure, la compaction et la suppression de données pour une meilleure efficacité, et la gestion des ID d’événements pour un traitement robuste des événements.

Développement Flux d’événements

CONL : Le Markdown des fichiers de configuration ?

2025-04-26

Fatigué de la complexité de JSON, YAML et TOML ? Un ingénieur logiciel a créé CONL, un format de fichier de configuration minimaliste visant à être le "Markdown" des fichiers de configuration. CONL est facile à lire et à modifier, possède un modèle de données similaire à JSON et est simple à implémenter. Il prend en charge divers types de données, notamment les scalaires, les listes et les mappages, avec une bonne prise en charge des chaînes multilines. L'auteur fournit également des implémentations pour Rust et Go, ainsi qu'un serveur de langage et une extension Zed.

Développement fichiers de configuration

Rocal UI : Un moteur de template simple en Rust

2025-04-26
Rocal UI : Un moteur de template simple en Rust

Rocal UI est un moteur de template simple écrit en Rust. Principalement conçu pour être utilisé avec le framework Rocal pour créer des vues, il est adaptable à n'importe quel projet Rust. Sa syntaxe est simple, supportant l'intégration de variables, les instructions if-else et les boucles for. La macro `view!{}` génère des chaînes HTML qui peuvent être imbriquées, facilitant l'utilisation de templates partiels. Commencez rapidement avec `cargo install rocal --features="cli"` et `rocal new -n yourapp`.

Développement Moteur de template

Tilt : simplification du développement de microservices Kubernetes

2025-04-26
Tilt : simplification du développement de microservices Kubernetes

Tilt simplifie le développement de microservices Kubernetes en automatisant l'ensemble du processus, des modifications de code aux nouveaux processus, y compris la surveillance des fichiers, la création d'images de conteneurs et les mises à jour de l'environnement. Dites adieu aux commandes fastidieuses `docker build && kubectl apply`. Tilt propose des tutoriels et des guides complets, prend en charge plusieurs langages de programmation et possède une communauté active et une documentation bien maintenue. Même les débutants Kubernetes peuvent rapidement démarrer et améliorer leur efficacité de développement.

Développement

L'origine curieuse du débogage avec canard en caoutchouc : une histoire de Pixar et Xerox PARC

2025-04-26

La technique de débogage bien connue des programmeurs, le « débogage avec canard en caoutchouc », a une origine étonnamment floue. Cet article retrace l'origine de la technique, depuis le vague souvenir initial de l'auteur de Bell Labs ou Xerox PARC, jusqu'à son utilisation généralisée confirmée au sein d'une équipe Pixar. L'histoire met en scène des programmeurs expliquant des problèmes à un « canard en caoutchouc » (en réalité, un collègue), résolvant souvent le problème au cours de l'explication. Il ne s'agit pas simplement de demander de l'aide ; il s'agit d'utiliser l'acte d'expliquer pour clarifier sa propre pensée. Bien que Xerox PARC soit un lieu de naissance probable, l'origine exacte reste un mystère, en attente d'une enquête plus approfondie.

Stuffed-Naan : Cacher des données à la vue de tous (en utilisant les NaNs)

2025-04-26
Stuffed-Naan : Cacher des données à la vue de tous (en utilisant les NaNs)

Stuffed-Naan est une nouvelle bibliothèque qui tire parti des particularités des valeurs NaN (Not a Number) de JavaScript pour cacher et transporter des données. En codant intelligemment les données dans la mantisse des valeurs NaN, Stuffed-Naan préserve les données originales même après des opérations mathématiques. L'article présente cette bibliothèque de manière humoristique, en soulignant son taux de compression élevé, sa vitesse et ses fonctionnalités de confidentialité, tout en mentionnant les fonctionnalités supplémentaires de l'édition Entreprise. Bien que loufoque, elle exploite efficacement les caractéristiques des nombres à virgule flottante IEEE 754.

Développement cacher des données

NNCPNET : Retrouver le Plaisir de Bidouiller avec le Courriel

2025-04-26

De 1995 à 2019, l'auteur a auto-hébergé ses emails, passant de UUCP à VPS. Mais les complexités du courriel moderne (SPF, DKIM, DMARC, TLS) sont devenues de plus en plus difficiles. Voici NNCPNET, un système de courriel basé sur NNCP, un réseau sécurisé, asynchrone et routé en oignon. Comme SSH pour Telnet, NNCP modernise le transport du courriel. NNCPNET propose un conteneur Docker (multi-architecture, compatible Raspberry Pi) avec Exim, NNCP, des outils de vérification et des mises à jour automatiques de la liste des nœuds. Facile à configurer, il ne nécessite pas de ports entrants ni de connexion internet constante, et s'intègre même à Thunderbird via IMAP. Retrouvez le plaisir de l'expérimentation avec le courriel !

Développement serveur de courriel

Revival de DOS : une machine à écrire bootable USB pour le XXIe siècle

2025-04-26
Revival de DOS : une machine à écrire bootable USB pour le XXIe siècle

La taille et la complexité des systèmes d'exploitation modernes, même open source, évoquent souvent la nostalgie des temps de DOS. Un système d'exploitation simple et léger, DOS pouvait démarrer à partir de trois fichiers et la configuration consistait à éditer quelques fichiers texte. Aujourd'hui, un projet communautaire propose une expérience DOS bootable sur clé USB, préchargée avec des applications d'écriture classiques comme WordPerfect et Arnor Protext. Cela fournit un environnement d'écriture sans distraction pour ceux qui cherchent à se déconnecter d'Internet. Bien que limité en fonctionnalités, il offre une expérience d'écriture étonnamment efficace et concentrée, rappelant des temps plus simples.

Développement Outils d'écriture

RetrOS-32 : Un système d'exploitation hobby 32 bits

2025-04-26
RetrOS-32 : Un système d'exploitation hobby 32 bits

RetrOS-32 est un système d'exploitation 32 bits écrit en C et en assembleur, avec des fonctionnalités graphiques, multitâches et réseau. Il inclut la création d'utilisateurs, un système de fichiers et des applications de base telles qu'un terminal, une calculatrice et des jeux simples. Le projet prend en charge diverses plates-formes matérielles et propose des images Docker pour la compilation multiplateforme. Bien qu'il soit encore en développement, il possède des fonctionnalités impressionnantes et constitue un projet open source remarquable.

Développement

Plateforme de QA native IA soutenue par YC recherche ingénieur backend

2025-04-26
Plateforme de QA native IA soutenue par YC recherche ingénieur backend

GPT Driver, une startup en phase initiale de solution de QA native IA fondée par des vétérans des applications mobiles, recherche un ingénieur backend/plateforme à distance. Son produit se concentre sur les tests automatisés de bout en bout pour les applications mobiles, avec des plans d'extension au web, au desktop et aux tests non fonctionnels. Le poste exige 3+ années d'expérience, une familiarité avec les systèmes backend basés sur le cloud et une expérience (ou un fort intérêt) dans l'exécution d'émulateurs/simulateurs mobiles et de navigateurs headless. Une rémunération compétitive (4 000 à 7 000 $US/mois), le télétravail et des actions sont offerts.

Développement

Tapez moins dans votre terminal avec cet outil

2025-04-26
Tapez moins dans votre terminal avec cet outil

Empty Enter Expander est un outil zsh conçu pour améliorer l'efficacité du terminal. Il permet d'exécuter des commandes prédéfinies en quelques frappes de touches. Les commandes sont stockées dans un répertoire de modules ; les répertoires et les noms de fichiers doivent commencer par des minuscules, servant de raccourcis. Par exemple, après avoir appuyé sur Entrée, 'g, l, Entrée' exécute une commande git log prédéfinie. Les utilisateurs peuvent personnaliser les commandes et les raccourcis en plaçant des scripts dans les sous-répertoires appropriés du répertoire de modules. La configuration implique de modifier le fichier .zprofile pour définir le chemin du module et la source de la fonction zsh.

Développement

Section Pratique du CACM : Appel à articles

2025-04-26

Communications of the ACM (CACM) recherche des articles pour sa nouvelle section Pratique, axée sur l’amélioration des compétences et des performances professionnelles des praticiens de l’informatique. La section accepte les articles sur les avancées techniques, les pratiques de développement, les structures organisationnelles, les exemples de systèmes réussis et d’autres sujets pertinents. Les articles doivent être largement applicables et perspicaces, en évitant les contenus hautement spécialisés ou les tutoriels détaillés sur des technologies spécifiques. Les soumissions sont limitées à 10 pages (environ 6 000 mots) et peuvent avoir été publiées précédemment sur un blog, mais pas ailleurs de manière officielle. Les auteurs conservent les droits d’auteur. Les auteurs potentiels sont encouragés à contacter les coprésidents avant de soumettre leur article.

Développement Appel à articles

Adieu, Configuration Lente : Parallélisation de la Configuration des Builds avec Makefiles

2025-04-26

L'auteur Tavian Barnes déplore l'inefficacité des systèmes de build existants (Autoconf, CMake, Meson, etc.) lors de la phase de configuration, beaucoup plus longue que la phase de build. Il propose une solution parallélisée basée sur les Makefiles, améliorant considérablement l'efficacité en décomposant le processus de configuration en plusieurs tâches exécutables concurremment. L'idée principale est d'exploiter les capacités de parallélisation de make pour paralléliser les tâches de test du compilateur initialement séquentielles, réduisant ainsi le temps de configuration de 38 secondes à 0,4 seconde. L'article détaille l'implémentation, y compris les scripts auxiliaires, les techniques d'écriture de Makefiles et les stratégies de parallélisation. Cet article est précieux pour les développeurs cherchant à accélérer leurs builds.

Développement

GS-Calc : Un tableur capable de gérer des millions de lignes avec aisance

2025-04-25

GS-Calc est un tableur moderne qui redéfinit ce que signifie « big data » pour les logiciels de bureau. Il gère sans effort des fichiers CSV et XLSX massifs contenant des millions de lignes et des milliers de colonnes, avec un nombre illimité de feuilles et de sous-dossiers. Ses optimisations de performances surpassent considérablement les autres solutions de tableurs pour des tâches telles que le chargement de fichiers texte, le copier-coller et les fonctions VLOOKUP/MATCH. De plus, GS-Calc offre des fonctionnalités puissantes, notamment des tableaux croisés dynamiques robustes, des simulations de Monte-Carlo, la prise en charge des expressions régulières et l’intégration Python, ce qui en fait un outil idéal pour l’analyse de données à grande échelle.

Développement

Générateur de logos fonctionnel à partir d'une seule invite : potentiel et limites des LLM

2025-04-25
Générateur de logos fonctionnel à partir d'une seule invite : potentiel et limites des LLM

L'auteur a généré un générateur de logos entièrement fonctionnel, avec des options d'exportation, à partir d'une seule invite dans Aider. Des extraits de code montrent la capacité du LLM à générer des liens de polices, des dépendances et des styles CSS intégrés, y compris le dernier hachage SHA d'une bibliothèque CDN liée. Cependant, en étendant le code à l'aide de Sonnet 3.7, la complexité du projet a considérablement augmenté, ce qui a donné un code non compilable. L'auteur explore les différences de capacités de génération et d'extension de code entre différents LLM (comme Claude et GPT-4o), et l'impact de la taille de la fenêtre de contexte, des limites de sortie et d'autres facteurs sur les applications LLM. Les limites des fenêtres de contexte et des limites de sortie dans les LLM sont mises en évidence comme des défis clés.

Développement

Plongez dans D : Un Guide Complet

2025-04-25

Ce livre fournit un guide complet de la programmation en D, couvrant tout, de la syntaxe de base aux fonctionnalités avancées. Avec une structure de chapitre claire, il présente progressivement les concepts clés de D : variables, types de données, opérateurs, flux de contrôle, fonctions, classes, programmation orientée objet, modèles et concurrence. De nombreux exemples de code et exercices sont inclus pour aider les lecteurs à maîtriser les techniques de programmation en D. Adapté aux débutants et aux programmeurs expérimentés.

Magnitude : Framework de test natif IA pour applications web

2025-04-25
Magnitude : Framework de test natif IA pour applications web

Magnitude est un framework de test de bout en bout open source révolutionnaire pour les applications web, alimenté par des agents d'IA visuelle qui « voient » votre interface et s'adaptent à tous les changements. Créez facilement des cas de test en langage naturel, exploitez un puissant agent de raisonnement pour la planification et l'ajustement, et faites confiance à un agent visuel rapide pour une exécution fiable. Exécutez des tests localement ou dans des pipelines CI/CD ; le framework gère automatiquement les problèmes rencontrés pendant les tests. Magnitude prend en charge plusieurs modèles LLM, notamment Gemini 2.5 pro, Anthropic et OpenAI, et offre un modèle visuel gratuit, Moondream. Il simplifie considérablement la création et l'exécution de tests.

Développement Tests IA Tests web

Couverture de code différentielle pour le débogage : une technique puissante

2025-04-25

Cet article présente une technique de débogage puissante : l’analyse de la couverture de code différentielle. En comparant la couverture de code des tests réussis et des tests ayant échoué, vous pouvez rapidement identifier le code contenant des bogues. L’auteur utilise la bibliothèque `math/big` de Go comme exemple, montrant comment utiliser `go test` et `go tool cover` pour générer des rapports de couverture et `diff` pour comparer les différences. Cela permet d’identifier efficacement le bloc de code à l’origine de l’échec du test, réduisant ainsi considérablement le temps de débogage par rapport aux méthodes traditionnelles. La technique est illustrée par la découverte d’un bogue dans quelques lignes de code parmi plus de 15 000.

Développement couverture de code

arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

2025-04-25
arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

arXivLabs est un framework permettant 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 une valeur ajoutée à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Formalisation des Principia Mathematica de Russell avec Lean4

2025-04-25
Formalisation des Principia Mathematica de Russell avec Lean4

Ce projet vise à formaliser le premier volume des Principia Mathematica du Professeur Bertrand Russell à l'aide du prouveur de théorèmes Lean. L'objectif est de garantir que la formalisation corresponde clairement aux théorèmes correspondants du livre afin d'éviter toute confusion. Le projet suit rigoureusement les preuves de Russell, avec peu ou pas d'énoncés supplémentaires. Une nouvelle tactique, `Syll`, a été créée pour gérer une forme plus générale de syllogisme. Bien que les Principia Mathematica soient considérés comme un « échec monumental », l'auteur a trouvé le processus de formalisation enrichissant.

Développement

Curry : Une fusion parfaite entre la programmation fonctionnelle et la programmation logique

2025-04-25
Curry : Une fusion parfaite entre la programmation fonctionnelle et la programmation logique

Curry est un langage de programmation déclaratif multi-paradigme qui combine de manière transparente les fonctionnalités de la programmation fonctionnelle (expressions imbriquées, fonctions d'ordre supérieur, typage fort, évaluation paresseuse) et de la programmation logique (non-déterminisme, recherche intégrée, variables libres, structures de données partielles). Comparé aux langages à paradigme unique, Curry offre des fonctionnalités supplémentaires, telles qu'une évaluation optimisée pour les calculs orientés logique et une correspondance de motifs flexible et non déterministe avec des fonctions définies par l'utilisateur.

Développement

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

2025-04-25
arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

arXivLabs est un cadre qui permet 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

UIT : Bibliothèque de traitement de fichiers modulaire, peu gourmande en mémoire et performante pour le cloud

2025-04-25
UIT : Bibliothèque de traitement de fichiers modulaire, peu gourmande en mémoire et performante pour le cloud

UIT est une bibliothèque conçue pour le traitement de fichiers modulaire, peu gourmand en mémoire et performant à grande échelle dans le cloud. Elle utilise un processus en quatre étapes : ingestion, filtrage/transformation, fusion et sortie. Construite sur le streaming et la parallélisation, UIT peut s'exécuter efficacement dans des environnements à faible mémoire comme les Workers Cloudflare. Sa conception modulaire permet la composition et l'ajout de modules personnalisés. Les modules actuels gèrent des tâches telles que l'ingestion de fichiers ZIP, la fusion de données, la conversion de format et la recherche. L'objectif d'UIT est de devenir une norme pour le traitement de fichiers dans le cloud, offrant aux développeurs un outil puissant et extensible.

Construire son propre débogueur Linux : Partie 1 - Démarrage

2025-04-25

Ceci est la première partie d’une série en dix parties sur la création d’un débogueur Linux à partir de zéro. Apprenez les mécanismes de base des débogueurs et implémentez des fonctionnalités telles que le lancement, l’arrêt, la poursuite, la définition de points d’arrêt (adresses mémoire, lignes de code, entrée de fonction), la lecture et l’écriture de registres et de mémoire, et l’exécution pas à pas. Le tutoriel utilise C/C++, Linenoise et libelfin, le code de chaque partie étant disponible sur GitHub. Les parties suivantes couvriront des sujets avancés tels que le débogage à distance, la prise en charge des bibliothèques partagées, l’évaluation d’expressions et le débogage multithread.

Développement

L'énigmatique « Erreur réseau » de l'éditeur Substack : un affrontement entre WAF et rédaction technique

2025-04-25
L'énigmatique « Erreur réseau » de l'éditeur Substack : un affrontement entre WAF et rédaction technique

Lors de la rédaction d'un article technique sur la résolution DNS sur Substack, l'auteur a rencontré une « Erreur réseau » chaque fois qu'il tapait certains chemins de fichiers système Linux (par exemple, /etc/h*sts). L'enquête a révélé que le pare-feu d'application Web (WAF) de Substack déclenchait ses défenses contre les attaques de traversée de chemin ou d'injection de commande. Cela met en évidence un conflit entre sécurité et convivialité : le WAF, conçu pour protéger la plateforme, crée un obstacle frustrant pour les rédacteurs techniques qui doivent discuter de ces chemins système. L'auteur suggère à Substack d'améliorer la sensibilisation contextuelle de son WAF, de fournir des messages d'erreur plus clairs et de proposer des solutions de contournement pour mieux équilibrer la sécurité et les besoins des rédacteurs techniques.

Développement

Sortie de GCC 15.1 : mise à jour majeure de la collection de compilateurs GNU

2025-04-25

Les développeurs de GCC ont le plaisir d’annoncer la sortie de GCC 15.1, une version majeure comprenant de nouvelles fonctionnalités et des améliorations significatives par rapport à GCC 14.x. GCC, autrefois le compilateur GNU C, désigne désormais la collection de compilateurs GNU, prenant en charge plusieurs langages de programmation. Cette version témoigne du travail de nombreux contributeurs qui ont fourni de nouvelles fonctionnalités, des corrections de bogues et des améliorations. Pour plus d’informations, consultez le site Web du projet GCC ou contactez la liste de diffusion de développement GCC.

Développement
1 2 103 104 105 107 109 110 111 214 215