Category: Développement

Défi OCR : numérisation des Mémoires de Saint-Simon

2024-12-17

L’auteur a passé plusieurs semaines à utiliser la reconnaissance optique de caractères (OCR) pour numériser une édition de la fin du XIXe siècle des mémoires françaises du XVIIIe siècle, *Les Mémoires de Saint-Simon*. Cet ouvrage colossal de 45 volumes, contenant plus de 3 millions de mots, est disponible en ligne sous forme d’images, mais il est difficile à lire. L’objectif était de créer une version textuelle lisible, consultable et copiable. Les défis comprenaient la mauvaise qualité des images et l’analyse des différentes zones de la page (en-têtes, texte principal, commentaires en marge, notes de bas de page, etc.). L’API Google Vision a été utilisée pour l’OCR, avec un programme Python traitant les résultats pour identifier et séparer le texte des différentes zones. Bien que les grands modèles linguistiques (LLM) n’aient pas réussi à gérer de manière fiable les références des notes de bas de page, l’auteur a amélioré le programme et intégré une relecture manuelle, ce qui a abouti à la publication du premier volume.

PipeGate : Proxy léger et auto-hébergé, votre « ngrok » économique

2024-12-17
PipeGate : Proxy léger et auto-hébergé, votre « ngrok » économique

PipeGate est un proxy léger et auto-hébergé, construit avec FastAPI, conçu comme un « ngrok » économique. Il vous permet d'exposer vos serveurs locaux à Internet, offrant un moyen simple de créer des tunnels depuis votre machine locale vers le monde extérieur. C'est un excellent outil pour les développeurs qui souhaitent comprendre le fonctionnement interne des services de tunneling comme ngrok ou qui ont besoin d'une alternative personnalisable hébergée sur leur propre infrastructure. Ses principales caractéristiques incluent l'auto-hébergement, des connexions uniques, la personnalisation, une conception légère et la facilité d'apprentissage. L'installation est simple, via git clone ou pip.

Bruin : Construisez des pipelines de données avec SQL et Python

2024-12-17
Bruin : Construisez des pipelines de données avec SQL et Python

Bruin est un outil puissant de pipeline de données qui combine l'ingestion de données, la transformation de données avec SQL et Python, et les contrôles de qualité des données en un seul framework. Il fonctionne avec les principales plates-formes de données et s'exécute sur votre machine locale, une instance EC2 ou GitHub Actions. Les fonctionnalités clés incluent l'ingestion de données, les transformations SQL et Python, les contrôles de qualité des données, les modèles Jinja, la validation de bout en bout et la prise en charge de plusieurs environnements. Les pipelines sont facilement définis à l'aide d'un simple fichier pipeline.yml.

Développement pipeline de données

SpiceNice : Lancement d’une base de données d’épices culinaires open source

2024-12-17
SpiceNice : Lancement d’une base de données d’épices culinaires open source

SpiceNice est un nouveau site web open source proposant une base de données complète d’épices culinaires. Il fournit des informations détaillées sur chaque épice, notamment son nom botanique, ses utilisations culinaires et son origine, ainsi que des informations sur la plante correspondante. Développé avec Strapi (backend), PostgreSQL (base de données) et Astro (frontend), SpiceNice vise à devenir une ressource centrale pour les cuisiniers, les biologistes, les agriculteurs et les passionnés d’épices. Les projets futurs incluent une API web, une prise en charge multilingue et un forum communautaire.

Développement épices

Discourse célèbre dix ans de développement de communautés en ligne

2024-12-17
Discourse célèbre dix ans de développement de communautés en ligne

Discourse, le logiciel de forum open-source, a célébré son 10e anniversaire le 26 août 2024. Lancé avec la vision d'élever le niveau du discours en ligne, il est passé d'une petite équipe de quatre à plus de 100 employés dans 25 pays. La plateforme compte plus de 20 000 communautés, 107 millions de sujets et près de 1,65 milliard de publications. Le développement continu a inclus l'ajout de 49 plugins, de fonctionnalités de chat et d'outils basés sur l'IA pour la modération et l'amélioration de l'expérience utilisateur. Ce succès témoigne de sa nature open-source, de son engagement envers les commentaires des utilisateurs et du dévouement de son équipe.

Langfuse : Plateforme d'ingénierie LLM open source pour simplifier le développement

2024-12-17
Langfuse : Plateforme d'ingénierie LLM open source pour simplifier le développement

Langfuse est une plateforme d'ingénierie LLM open source conçue pour simplifier le développement et le déploiement d'applications de grands modèles de langage (LLM). Elle offre des fonctionnalités telles que l'observabilité LLM, les métriques, les évaluations, la gestion des invites, un espace de jeu et des ensembles de données, s'intégrant parfaitement à des outils tels que LlamaIndex, Langchain, OpenAI SDK et LiteLLM. Les développeurs peuvent utiliser Langfuse pour surveiller les performances des LLM, gérer les invites, évaluer l'efficacité du modèle et, finalement, accélérer le développement d'applications LLM.

Firmware open source : nécessité et choix stratégiques

2024-12-17

Cet article explore la nécessité d'un firmware open source. L'auteur soutient que le firmware, en tant que logiciel contrôlant le matériel, devrait adhérer aux principes du logiciel libre. Il ne s'agit pas seulement de liberté en soi, mais aussi directement des intérêts pratiques des utilisateurs. Un firmware non libre peut restreindre les fonctionnalités du matériel, masquer les vulnérabilités de sécurité et même empêcher les utilisateurs de résoudre les problèmes de sécurité. L'article analyse deux points de vue : l'un considère le firmware open source comme souhaitable mais non nécessaire ; l'autre plaide pour que tous les logiciels système soient open source. L'auteur penche pour le premier, estimant qu'il est plus important de prioriser la liberté du noyau du système d'exploitation, mais souligne simultanément les avantages d'un firmware open source et discute de la manière de le promouvoir par des moyens stratégiques.

Développement logiciel libre

Une équipe de développement solo atteint deux millions d'utilisateurs

2024-12-17

Nadia Odunayo, ingénieure logiciel, a créé StoryGraph, une application de communauté de lecture comptant plus d'un million d'utilisateurs, en tant que développeuse solo. StoryGraph aide les utilisateurs à suivre leurs lectures et recommande des livres en fonction de leur humeur et de leurs préférences. Cette histoire inspirante met en lumière la détermination, les compétences techniques et le « framework d'une seule personne » qu'Odunayo a utilisé pour réaliser cet exploit impressionnant. Elle offre des informations précieuses aux aspirants développeurs solo.

L'algèbre linéaire propulse un éditeur de diagrammes interactif

2024-12-17
L'algèbre linéaire propulse un éditeur de diagrammes interactif

Ivan Shubin, lors du développement de son éditeur de diagrammes interactif Schemio, a astucieusement utilisé les opérations matricielles de l'algèbre linéaire pour résoudre une série de problèmes complexes. Initialement, Schemio ne supportait que la création et la manipulation de formes simples. Cependant, l'introduction d'une structure hiérarchique a rendu les transformations de coordonnées complexes. L'auteur a d'abord utilisé une approche récursive, mais a rencontré des problèmes d'échelle et de points de pivot. Finalement, Shubin a utilisé des matrices pour représenter les transformations (translation, rotation, mise à l'échelle), utilisant la multiplication matricielle pour la conversion de coordonnées et employant ingénieusement l'inversion de matrices pour résoudre le problème de conversion des coordonnées du monde vers les coordonnées locales. De plus, les opérations matricielles ont permis d'ajuster précisément la position et la rotation d'un objet lors de son déplacement dans la hiérarchie, évitant ainsi les sauts inattendus. Le code source de Schemio est open source et disponible sur GitHub.

Tig : Interface en mode texte pour Git

2024-12-17

Tig est une interface en mode texte basée sur ncurses pour Git, fonctionnant principalement comme un navigateur de référentiel Git. Elle aide également à préparer les modifications pour la validation au niveau des blocs et sert de paginateur pour les sorties de diverses commandes Git. Des instructions d'installation, des notes de publication détaillant les nouvelles fonctionnalités et les corrections de bogues, ainsi que des ressources telles que la page d'accueil, le manuel et la section de questions-réponses sur Stack Overflow sont facilement accessibles. Les rapports de bogues et les demandes de fonctionnalités peuvent être soumis via le système de suivi des problèmes ou par e-mail.

Des programmeurs créent un jeu de programmation fantaisiste : Droste's Lair

2024-12-17
Des programmeurs créent un jeu de programmation fantaisiste : Droste's Lair

Deux programmeurs ont passé deux semaines à développer Droste's Lair, un jeu d'environnement de programmation fantaisiste. Les joueurs construisent et comptent des structures mathématiques grâce à des interactions intuitives de glisser-déposer, en utilisant un mécanisme « amb » pour l'exécution ramifiée et la récursivité. Le jeu, sur le thème des épées et de la sorcellerie, propose des défis tels que l'inversion d'éléments de liste, la génération de toutes les combinaisons de cartes et le comptage des façons de recouvrir un damier avec des dominos. Droste's Lair associe habilement des éléments de programmation et de jeu, offrant un moyen nouveau et engageant d'apprendre des concepts de programmation et de mathématiques.

Valhalla : La refonte épique de Java touche à sa fin

2024-12-17

Après dix ans de développement, le projet Valhalla, la refonte ambitieuse de Java, approche de son terme. Visant à combler le fossé entre les classes et les types primitifs, Valhalla introduit des classes de valeur qui offrent la commodité de codage des classes avec les performances des primitifs, résultant en une disposition mémoire plate et compacte. À la Devoxx 2024, l'architecte de langage Java Brian Goetz a fourni une mise à jour complète, soulignant des fonctionnalités clés telles que les classes de valeur, les types à restriction de nullité, l'analyse d'affectation définitive améliorée et l'initialisation stricte.

Développement Classes de valeur

Le nouveau framework Forked de Swift simplifie la gestion des données partagées

2024-12-17
Le nouveau framework Forked de Swift simplifie la gestion des données partagées

Le développeur Drew McCormack a lancé Forked, un nouveau framework Swift pour simplifier la gestion des données partagées sur des appareils uniques et multiples. Inspiré par le mécanisme de fusion de Git, Forked prend en charge la ramification et la fusion au sein d'un seul fichier, atteignant une cohérence éventuelle. Il ne nécessite pas un historique complet des modifications, seulement suffisamment de versions pour une fusion à trois voies. Forked utilise des structs au lieu de classes, prend en charge Codable et s'intègre parfaitement aux services cloud comme iCloud. Il gère même les conditions de concurrence dues à l'accès concurrentiel et prend en charge la logique de fusion personnalisée ou les algorithmes CRDT intégrés. La synchronisation CloudKit est réalisée en quelques lignes de code.

Nouveau compilateur pour CHICKEN Scheme : CRUNCH – Un compilateur Scheme typé statiquement

2024-12-17

Cet article présente CRUNCH, un nouveau compilateur pour un sous-ensemble typé statiquement du langage de programmation Scheme. Basé sur le système CHICKEN Scheme, il compile du code Scheme en code C99 portable. CRUNCH vise à fournir un compilateur Scheme performant et léger, palliant les lacunes des systèmes Scheme existants en termes de performances et de portabilité. Il est particulièrement adapté au développement de jeux, à la création de machines virtuelles et à la programmation de systèmes embarqués. Bien que CRUNCH présente des limitations quant aux fonctionnalités de Scheme prises en charge, il assure une génération de code efficace grâce à l'inférence de types et à diverses optimisations, s'intégrant parfaitement à l'écosystème CHICKEN Scheme.

Développement Typé Statique

Microsoft publie Multilspy : simplification du développement de clients de serveurs de langage

2024-12-17
Microsoft publie Multilspy : simplification du développement de clients de serveurs de langage

Microsoft a publié Multilspy, une bibliothèque Python conçue pour simplifier la création d'applications autour des serveurs de langage. Prenant en charge Java, Rust, C# et Python, Multilspy automatise le téléchargement des binaires du serveur, la configuration/la désinstallation et fournit une API simple. Il interagit avec les serveurs de langage pour obtenir les résultats d'analyses statiques, tels que la complétion de code, les définitions de symboles et les références, essentiels aux techniques de génération de code assistée par IA comme le Monitor-Guided Decoding.

Bonnes pratiques pour représenter l'héritage dans les bases de données SQL Server

2024-12-17
Bonnes pratiques pour représenter l'héritage dans les bases de données SQL Server

Cet article explore les meilleures pratiques pour représenter les relations d'héritage dans les bases de données SQL Server. Trois approches courantes sont présentées : l'héritage de table unique, l'héritage de table concrète et l'héritage de table de classe. Les avantages et les inconvénients de chacune sont détaillés. L'héritage de table unique est simple mais pose des problèmes d'évolutivité et d'intégrité des données ; l'héritage de table concrète résout ces problèmes mais entraîne des requêtes inefficaces ; l'héritage de table de classe équilibre simplicité et efficacité, ce qui en fait le choix préféré dans la plupart des scénarios. Des approches alternatives utilisant JSON pour les champs spécifiques aux sous-types et la conception de bases de données normalisées sont également abordées.

Rendre votre QEMU 10 fois plus rapide grâce à une astuce étrange

2024-12-17

Lors du débogage de tests NixOS, Linus Heckemann a découvert des temps de copie de données extrêmement longs (plus de 2 heures) sur une machine virtuelle QEMU. L'analyse de performance avec `perf` a révélé que le serveur 9p de QEMU utilisait une liste chaînée inefficace (complexité O(n)) pour les recherches de fichiers. En passant à une table de hachage fournie par glib (complexité O(1)), il a réduit le temps de test à 7 minutes et a contribué avec succès à l'optimisation du projet QEMU.

Développement protocole 9p

Advent of Code sur Nintendo DS : Un défi de programmation Rust sur un système embarqué

2024-12-16

L’auteur a relevé le défi de l’Advent of Code 2024 en utilisant Rust sur une Nintendo DS. Ce récit détaillé relate le parcours, de la configuration d’un environnement de compilation croisée et de l’écriture de code Rust pour un système embarqué sans runtime à la résolution des problèmes de gestion de la mémoire, des interruptions et de la sortie d’affichage. L’auteur a réussi à afficher la solution de l’Advent of Code sur l’écran de la DS. L’article met en lumière de solides compétences en programmation et une compréhension approfondie des systèmes embarqués, soulignant les techniques et le plaisir de la programmation dans des environnements aux ressources limitées.

Développement

Principes de la conception de langages de programmation éducatifs : pourquoi le manque de consensus ?

2024-12-16
Principes de la conception de langages de programmation éducatifs : pourquoi le manque de consensus ?

Cet article explore l'évolution des principes de la conception des langages de programmation éducatifs au cours de plusieurs décennies. Bien que les travaux de Wirth et d'autres aient mis l'accent sur des principes tels que la simplicité et la modularité, un désaccord persiste parmi les éducateurs concernant les langages adaptés aux programmeurs débutants. L'article analyse comment l'interprétation de ces principes évolue dans le contexte des technologies actuelles et pourquoi un langage de programmation éducatif commun et largement utilisé à l'échelle mondiale n'a pas émergé. Les auteurs discutent des mérites relatifs des langages pédagogiques par rapport aux langages industriels et soutiennent que chaque génération d'apprenants a besoin de son propre langage.

Panne majeure chez OpenAI : Un nouveau service de télémétrie provoque une interruption importante

2024-12-16
Panne majeure chez OpenAI : Un nouveau service de télémétrie provoque une interruption importante

OpenAI a subi une panne majeure le 11 décembre, due à un nouveau service de télémétrie récemment déployé. Destiné à améliorer la fiabilité, ce service a généré de manière inattendue une charge massive sur les serveurs de l'API Kubernetes, saturant les serveurs et provoquant la panne du plan de contrôle Kubernetes dans la plupart des grands clusters. Cela a entraîné la défaillance de la découverte de services basée sur le DNS. L'incident met en évidence les interactions imprévisibles au sein des systèmes complexes et les défis liés au test des modes de défaillance qui n'apparaissent que sous pleine charge. OpenAI a restauré le service en réduisant la taille des clusters, en bloquant l'accès réseau aux API d'administration Kubernetes et en augmentant l'échelle des serveurs d'API.

La nouvelle API opaque de Go Protobuf améliore les performances et la sécurité

2024-12-16

L'équipe Go a publié une nouvelle API opaque pour Go Protobuf, coexistant avec l'API Open Struct existante. Cette nouvelle API découple le code généré de sa représentation mémoire sous-jacente, améliorant ainsi les performances, réduisant les allocations mémoire et permettant des optimisations telles que le décodage paresseux. En masquant les champs de la structure et en y accédant uniquement via des méthodes d'accès, elle prévient les bogues liés aux pointeurs et le partage accidentel. La migration implique d'activer l'API hybride, d'utiliser l'outil `open2opaque` puis de basculer vers l'API opaque. L'API Open Struct existante reste prise en charge.

(go.dev)
Développement

Une modification incompatible de GRUB2 provoque une boucle de démarrage de la configuration du BIOS

2024-12-16
Une modification incompatible de GRUB2 provoque une boucle de démarrage de la configuration du BIOS

Les systèmes Debian et Kali Linux de l'auteur ont subi des boucles de démarrage après une mise à jour de GRUB2 ayant ajouté la commande `fwsetup --is-supported`. Les anciennes versions de GRUB ne reconnaissaient pas ce paramètre. Le problème provenait d'un module `efifwsetup.mod` plus ancien, restant d'une restauration de sauvegarde du système, provoquant un conflit entre la nouvelle configuration de GRUB et l'ancien module. L'installation du paquet `grub-efi-amd64-bin` a résolu le problème. Cela souligne l'importance de la compatibilité descendante dans les mises à jour logicielles et la nécessité de prendre en compte les effets secondaires potentiels lors de modifications partielles dans un logiciel complexe comme GRUB2.

Développement boucle de démarrage

Résumé des conférences Ruby : aperçu mondial

2024-12-16

Ruby Video Talks est un site Web qui agrège des informations sur les conférences de développeurs Ruby dans le monde entier. Des événements majeurs tels que RubyConf 2024 (70 conférences) et Rails World 2024 (46 conférences) aux plus petites rencontres régionales, le site fournit un calendrier complet. Il met en évidence des conférenciers clés tels que Matz et propose des fonctions de recherche par date, lieu et sujet, ce qui facilite la recherche d'événements pertinents. Les futures conférences de 2025, telles que Balkan Ruby et Friendly.rb, sont également répertoriées, promettant encore plus d'opportunités pour la communauté Ruby.

Emacs propulsé par Guile : Un projet de réécriture audacieux

2024-12-16

L'éditeur Emacs est réputé pour son extensibilité, mais il rencontre des limites de performance et d'expressivité avec son langage principal, Emacs Lisp (Elisp). Pour y remédier, le projet Guile-Emacs vise à remplacer Elisp dans Emacs par Guile Lisp. Après des années de développement et de dormance, Guile-Emacs a été relancé par les développeurs Robin Templeton et Larry Valkama. Le projet entend exploiter les avantages du compilateur et des performances de Guile pour améliorer la vitesse et l'extensibilité d'Emacs, tout en maintenant la compatibilité avec Elisp. L'objectif final est de réécrire une partie importante du code C d'Emacs en Lisp, améliorant ainsi considérablement sa capacité de personnalisation. Malgré les défis techniques et politiques, le projet offre des perspectives stimulantes pour l'avenir d'Emacs.

Développement

Réécriture de SQLite en Rust : Limbo atteint une réduction de 100x de la latence de queue

2024-12-16

Des chercheurs de l'Université d'Helsinki et de Cambridge ont réécrit SQLite en Rust, créant Limbo, un projet utilisant les E/S asynchrones et io_uring pour améliorer considérablement les performances. Grâce aux E/S asynchrones et à la désagrégation du stockage, Limbo réalise une réduction jusqu'à 100x de la latence de queue, particulièrement avantageux dans les environnements serverless multi-locataires. L'amélioration principale provient du remplacement des instructions de bytecode synchrones par leurs équivalents asynchrones, éliminant les blocages et améliorant la concurrence. Les améliorations sont plus marquées aux percentiles élevés, ce qui rend Limbo idéal pour les applications exigeant une haute fiabilité.

(avi.im)
Développement E/S Asynchrone

Converge recrute un ingénieur full-stack senior : construisez une plateforme de mesure marketing de plusieurs millions de dollars

2024-12-16
Converge recrute un ingénieur full-stack senior : construisez une plateforme de mesure marketing de plusieurs millions de dollars

Converge, une entreprise soutenue par Y Combinator avec plus de 1 million de dollars de revenus annuels récurrents (ARR), recrute un ingénieur full-stack senior. La petite équipe (seulement 4 personnes) sert plus de 180 clients, traitant des milliards de dollars de ventes annuelles et des milliards d'événements par mois. Vous construirez une pile de mesure marketing unifiée, incluant la collecte de données client, la résolution d'identité et l'attribution marketing, avec une interaction directe avec le client et une propriété significative. L'entreprise valorise l'esprit d'action, l'apprentissage continu, le positivisme et la simplicité. Une expérience approfondie en full-stack, une maîtrise de React et du développement back-end, ainsi que des connaissances sur le déploiement et la mise à l'échelle de logiciels de production sont requis.

Composant d'intégration Xiaomi Home Assistant officiellement lancé

2024-12-16
Composant d'intégration Xiaomi Home Assistant officiellement lancé

Xiaomi a officiellement lancé le composant d'intégration Xiaomi Home Assistant, permettant aux utilisateurs d'intégrer leurs appareils intelligents Xiaomi IoT à Home Assistant. Le composant prend en charge plusieurs méthodes d'installation, notamment le clonage Git, HACS et l'installation manuelle. Les utilisateurs doivent se connecter avec leur compte Xiaomi ; plusieurs comptes et la sélection de région sont pris en charge. Le composant prend en charge la plupart des appareils domestiques intelligents Xiaomi, mais exclut actuellement les appareils Bluetooth, infrarouge et virtuels. Les méthodes de contrôle incluent le contrôle via le cloud et le contrôle local (nécessitant une passerelle centrale Xiaomi ou des appareils avec passerelle intégrée). Il mappe MIoT-Spec-V2 aux entités Home Assistant. Le composant prend également en charge plusieurs langues et un mode de débogage, en priorisant la confidentialité et la sécurité de l'utilisateur, mais nécessite un stockage prudent des fichiers de configuration.

L'erreur à un million de dollars d'un programmeur : un bug avec un rebondissement dramatique

2024-12-16
L'erreur à un million de dollars d'un programmeur : un bug avec un rebondissement dramatique

Trey, un programmeur travaillant pour une start-up de télécommunications 3G, a écrit un programme de test de paiement automatisé destiné à de petites transactions de test. Cependant, trois bugs dans le code ont fait que le programme crédite son compte de test de 100 $ toutes les cinq minutes. L'absence de vérification d'activité signifiait que lorsqu'une passerelle échouait, le programme continuait à s'exécuter pendant des heures, accumulant une somme considérable. Le lendemain matin, Trey a été interrogé par l'équipe de sécurité jusqu'à ce que son responsable de département explique la situation, mais le solde du compte de test a été remis à zéro.

Association Modelica : Modélisation efficace des systèmes complexes

2024-12-16

L'Association Modelica promeut le langage Modelica et ses outils associés. Modelica est un langage orienté objet pour la modélisation et la simulation de systèmes cyber-physiques complexes, particulièrement adapté à la modélisation acausale de composants réutilisables régis par des équations mathématiques. L'association fournit les spécifications du langage, les outils, les bibliothèques et le support communautaire pour permettre aux utilisateurs de modéliser efficacement les systèmes.

NAS minimaliste : frood, un système Alpine initramfs

2024-12-16
NAS minimaliste : frood, un système Alpine initramfs

L'auteur présente frood, un système NAS construit sous la forme d'une seule et grande image initramfs contenant un système Alpine Linux complet. Cette conception permet des temps de démarrage rapides et réduit l'usure des dispositifs de stockage. La configuration est simple : les fichiers résident directement dans l'image, éliminant ainsi les DSL complexes ou les outils de configuration. L'état du système est suivi à l'aide de Git, et chaque démarrage est en fait un nouveau départ, évitant l'accumulation de désordre dans la configuration. L'article détaille le processus de construction du système, notamment l'utilisation du script alpine-make-rootfs, l'installation des paquets essentiels et la rédaction des scripts de démarrage. Les tests avec QEMU et la procédure de mise à jour de l'image système sont également décrits. En résumé, frood est un système NAS léger, facile à maintenir et à déployer, dont la philosophie de conception simple mérite d'être imitée.

Développement
1 2 207 208 209 211 213 214 215