Category: Développement

Tach : Un outil Python pour appliquer les dépendances et les interfaces, écrit en Rust

2025-02-26
Tach : Un outil Python pour appliquer les dépendances et les interfaces, écrit en Rust

Tach est un outil Python écrit en Rust qui applique les dépendances et les interfaces, inspiré de l'architecture monolithe modulaire. Il permet une adoption incrémentale, n'a aucun impact sur le temps d'exécution et est interopérable avec vos systèmes existants. Configurez votre projet de manière interactive, puis utilisez la commande `tach check` pour détecter les violations de dépendances. Tach visualise également votre graphe de dépendances et fournit des rapports indiquant les dépendances et les utilisations des modules. En bref, Tach aide les développeurs à créer des projets Python plus propres et plus faciles à maintenir.

Développement

Vérification formelle de l'algorithme de division longue avec la logique de Hoare

2025-02-26
Vérification formelle de l'algorithme de division longue avec la logique de Hoare

Cet article présente une vérification formelle détaillée de l'algorithme de division longue utilisant la logique de Hoare. L'auteur détaille méticuleusement la preuve, en employant des triplets de Hoare, des axiomes d'affectation, des axiomes de composition, des axiomes conditionnels et l'axiome de boucle while pour démontrer la correction de l'algorithme. L'article offre une explication claire de l'application de la logique de Hoare, illustrant la complexité du processus de preuve avec un exemple concret et soulignant l'importance de la vérification formelle dans le développement de logiciels.

Développement logique de Hoare

Golioth enquête : un mystère de connectivité cellulaire

2025-02-26
Golioth enquête : un mystère de connectivité cellulaire

Golioth a récemment rencontré un problème de connectivité cellulaire déroutant : certains appareils utilisant un chipset d’un fournisseur spécifique ont connu des problèmes de connexion après des mises à jour du micrologiciel OTA. L’enquête a révélé que le problème provenait de certains réseaux NB-IoT ne respectant pas les spécifications 3GPP, ce qui a entraîné une défaillance du modem pour obtenir correctement les adresses du serveur DNS. L’équipe Golioth, en analysant en profondeur les spécifications 3GPP, les données de traçage du modem et les protocoles réseau, a finalement trouvé une solution de contournement, mais a également mis en évidence les inconvénients des écosystèmes fermés et le manque de transparence, appelant à une plus grande transparence de l’industrie pour améliorer la fiabilité de la connectivité cellulaire.

Développement Connectivité cellulaire

AtomixDB : Une mini-base de données relationnelle en Go

2025-02-26
AtomixDB : Une mini-base de données relationnelle en Go

AtomixDB est une mini-base de données relationnelle entièrement écrite en Go, axée sur la mise en œuvre et la compréhension du fonctionnement d'une base de données, de la gestion du stockage et du traitement des transactions. Elle utilise un moteur de stockage B+ tree avec prise en charge de l'indexation, et propose la réutilisation des nœuds de liste libre, la prise en charge des transactions et des lectures concurrentes. Actuellement, elle prend en charge les commandes CREATE, INSERT, GET, UPDATE, DELETE, BEGIN, COMMIT et ABORT. Le projet est open-source et accepte les contributions.

Développement

Open Source : Là où les rêves meurent

2025-02-26
Open Source : Là où les rêves meurent

La démission d'Hector Martin, développeur principal d'Asahi Linux, met en lumière la nature insoutenable du développement open source. Des années de travail non rémunéré pour porter Linux sur la puce Apple Silicon ont conduit à un épuisement professionnel, alimenté par les demandes incessantes des utilisateurs et le manque de compensation. Cet article explore l'économie défaillante de l'open source, où les développeurs consacrent d'innombrables heures à des projets sans récompense adéquate, conduisant à l'épuisement et à l'abandon du projet. Il appelle à un changement fondamental dans la façon dont nous valorisons et soutenons les contributions open source pour éviter de futures tragédies.

Développement soutenabilité

Un recueil hilarant de licences open source absurdes

2025-02-26
Un recueil hilarant de licences open source absurdes

Cet article compile une collection de licences open source ridicules, amusantes et carrément mauvaises. Des licences qui permettent de copier mais interdisent l'exécution du logiciel, aux licences restreignant l'utilisation en fonction de la race et de l'orientation sexuelle, l'absurdité est sans limite. Certaines licences exigent que les utilisateurs soient gays et commettent des crimes, d'autres interdisent l'utilisation avec les NFT ou la blockchain, et d'autres encore invoquent la morale biblique. Avertissement de l'auteur : N'utilisez pas ces licences !

Développement licences open source légal

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

2025-02-26
arXivLabs : Collaboration communautaire sur les fonctionnalités d'arXiv

arXivLabs est un cadre permettant de développer et de partager de nouvelles fonctionnalités d'arXiv directement sur le site web, favorisant la collaboration avec des individus et des organisations qui partagent les valeurs d'arXiv en matière d'ouverture, de communauté, d'excellence et de confidentialité des données utilisateur. Vous avez une idée pour améliorer la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

vscli : Lancement simplifié des conteneurs de développement VS Code depuis la ligne de commande

2025-02-26
vscli : Lancement simplifié des conteneurs de développement VS Code depuis la ligne de commande

vscli est un outil en ligne de commande conçu pour simplifier le lancement des conteneurs de développement Visual Studio Code. Il prend en charge VS Code, VS Code Insiders, Cursor et d'autres éditeurs, détectant automatiquement si un projet utilise des conteneurs de développement et lançant le bon. La commande `open` ouvre des projets, tandis que la commande `recent` affiche une liste des projets récemment utilisés. Il offre des comportements de lancement flexibles (forcer conteneur, forcer classique, détecter), prend en charge les configurations personnalisées et permet de passer des arguments supplémentaires à l'éditeur. vscli améliore considérablement la productivité du développeur grâce à ses commandes concises et à ses nombreuses options.

Styles d'indentation : une guerre sainte continue

2025-02-26

Le débat sur les styles d'indentation de code continue de diviser les programmeurs. D'Allman à K&R en passant par GNU, chaque style a ses défenseurs, sans consensus clair sur lequel est supérieur. Cet article explore les avantages et les inconvénients de différents styles d'indentation et cite des recherches récentes démontrant qu'une indentation appropriée améliore considérablement la lisibilité du code et réduit le temps de lecture. En fin de compte, la cohérence, quel que soit le style choisi, est essentielle.

Telescope : Un visualiseur de journaux web pour ClickHouse

2025-02-26
Telescope : Un visualiseur de journaux web pour ClickHouse

Telescope est une application web fournissant une interface intuitive pour explorer les données de journaux stockées dans ClickHouse. Elle prend en charge divers types de journaux, permettant aux utilisateurs de configurer facilement des connexions et d'utiliser des requêtes pour filtrer, rechercher et analyser les journaux efficacement. Actuellement en version bêta, une démonstration en direct est disponible, présentant les fonctionnalités principales. Les plans futurs incluent l'ajout de préréglages de requêtes, la prise en charge du SQL brut et bien plus encore.

Développement visualiseur de journaux

Codage logarithmique itéré : un nouveau format de codage en virgule flottante

2025-02-26

Cet article présente un nouveau format de codage des nombres réels : le codage logarithmique itéré. Contrairement aux représentations traditionnelles en virgule flottante, ce format utilise une séquence de bits de signe pour représenter les nombres, chaque bit de signe indiquant la positivité ou la négativité du nombre dans une plage spécifique. Cette approche permet une plage remarquablement large de nombres représentables, y compris des valeurs extrêmement grandes ou petites qui dépassent les capacités des formats traditionnels en virgule flottante. Il possède une propriété d’ordre lexicographique unique. Bien que la distribution de la précision ne soit pas uniforme, la méthode offre des avantages pour représenter les nombres dans certaines plages, en particulier lorsque des valeurs extrêmement grandes ou petites sont impliquées et que les exigences de précision sont moins strictes.

Développement virgule flottante

Carrés Mystérieux dans les Noms de Fichiers Windows : Une Aventure avec les Paires de Substituts UTF-16

2025-02-26

Cet article décrit un phénomène curieux sous Windows : de nombreux petits exécutables avec des carrés étranges dans leurs noms apparaissant dans le Gestionnaire des tâches. Ces fichiers ne sont pas malveillants ; le problème provient de l'utilisation de paires de substituts UTF-16 dans les noms de fichiers. UTF-16, pour gérer les caractères Unicode étendus, utilise des paires de substituts pour représenter les caractères au-delà du plan multilingue de base. Lorsque la manipulation de chaînes produit des paires de substituts isolées ou malformées, les noms de fichiers deviennent illisibles. L'article explique les paires de substituts et fournit un script Python pour générer des fichiers avec des noms de fichiers illisibles, reproduisant ainsi le phénomène.

Développement Paires de Substituts

DeepGEMM : Noyaux GEMM FP8 propres et efficaces avec une mise à l’échelle granulaire fine

2025-02-26
DeepGEMM : Noyaux GEMM FP8 propres et efficaces avec une mise à l’échelle granulaire fine

DeepGEMM est une bibliothèque pour les multiplications de matrices générales (GEMMs) FP8 propres et efficaces sur les Tensor Cores NVIDIA Hopper, avec une mise à l’échelle granulaire fine, comme proposé dans DeepSeek-V3. Elle prend en charge les GEMMs groupées normales et Mix-of-Experts (MoE), utilise un compilateur Just-In-Time (JIT) léger, éliminant ainsi le besoin de compilation lors de l’installation. Elle gère l’imprécision de l’accumulation du cœur de tenseur FP8 via une accumulation à deux niveaux (promotion) du cœur CUDA. Malgré sa conception concise (~ 300 lignes de code principal), les performances de DeepGEMM égalent ou surpassent celles des bibliothèques optimisées par des experts pour diverses formes de matrices.

Développement

EdgeDB devient Gel et adopte l'écosystème PostgreSQL

2025-02-26
EdgeDB devient Gel et adopte l'écosystème PostgreSQL

La startup de base de données EdgeDB a officiellement changé de nom pour Gel et a annoncé que sa version 6.0 prend entièrement en charge SQL, avec un support natif du protocole PostgreSQL. Gel se positionne comme une couche frontale pour PostgreSQL, similaire à TypeScript pour JavaScript, améliorant l'efficacité des schémas de données et des requêtes grâce à des compilateurs intelligents. Le changement de nom vise une plus grande clarté et simplicité, s'intégrant mieux à l'écosystème florissant de PostgreSQL. Le lancement de Gel 6.0 marque un changement significatif, passant du seul support de son langage de requête propriétaire EdgeQL à l'adoption de SQL, élargissant son attrait et réduisant les obstacles à l'entrée.

Développement

MyCoder : Assistant de codage IA en ligne de commande qui gère tous les défis de codage

2025-02-25
MyCoder : Assistant de codage IA en ligne de commande qui gère tous les défis de codage

MyCoder est un puissant système d'agent IA basé sur la ligne de commande capable d'exécuter des tâches arbitraires, en se concentrant particulièrement sur les tâches de codage. Il utilise une architecture modulaire basée sur des outils pour interagir avec les fichiers, exécuter des commandes, effectuer des requêtes réseau et générer des sous-agents pour l'exécution parallèle des tâches. Avec une clé API Anthropic, MyCoder peut corriger les erreurs de compilation, mettre à jour les dépendances, refactoriser le code, ajouter de nouvelles fonctionnalités, et bien plus encore. Il prend en charge le mode interactif et la lecture d'invites à partir de fichiers, et dispose de fonctionnalités de journalisation intelligentes et de capacités d'auto-modification. MyCoder utilise l'API Claude et utilise Conventional Commits et GitHub Actions pour l'intégration et la livraison continues (CI/CD).

Développement

ggwave : Une petite bibliothèque de transmission de données par le son

2025-02-25
ggwave : Une petite bibliothèque de transmission de données par le son

ggwave est une bibliothèque open source légère permettant la communication de petites quantités de données entre appareils isolés à l'aide du son. Elle utilise un protocole de transmission simple basé sur la modulation par déplacement de fréquence (FSK) avec une bande passante de 8 à 16 octets/seconde, intégrant des codes de correction d'erreurs pour une démodulation robuste. Les applications vont de l'IoT et des codes QR audio à l'appairage d'appareils. La bibliothèque est multiplateforme, offrant des exemples et une installation facile sur divers systèmes. Les utilisateurs peuvent utiliser différents backends audio en fonction de leurs besoins.

Développement transmission de données

Changement de paradigme dans l'interaction Web : explication des commandes Invoker

2025-02-25

Cet explicatif détaille une nouvelle proposition pour l'interaction Web : les commandes Invoker. En ajoutant les attributs `commandfor` et `command` aux éléments ``, il attribue un comportement aux boutons de manière plus accessible et déclarative, réduisant ainsi la quantité de JavaScript nécessaire. La proposition définit un événement `CommandEvent`, permettant aux développeurs de personnaliser les interactions. Une prise en charge intégrée des éléments `` et `` est incluse, en mettant l'accent sur l'accessibilité et la sécurité. Elle prend également en charge les commandes personnalisées et fournit de nombreux exemples de code illustrant comment simplifier le développement de l'interaction Web à l'aide de cette proposition.

Développement

Un aperçu de l'avenir de Python dans le navigateur : présentation de SPy

2025-02-25
Un aperçu de l'avenir de Python dans le navigateur : présentation de SPy

Pour surmonter les limitations de vitesse de Python dans le navigateur, des ingénieurs d'Anaconda et de Cloudflare ont développé SPy. SPy n'est pas une simple adaptation de Python ; c'est un nouveau langage permettant de mélanger du code compilé et du code exécuté (code bleu et code rouge, respectivement). Le code bleu, ressemblant à Python, permet un précalcul au moment de la compilation, ce qui améliore considérablement les performances. Le code SPy peut être interprété ou compilé en C, puis en binaires natifs ou en WebAssembly. Une démo d'art génératif a montré une amélioration de la vitesse de 100x en migrant de PyScript à SPy. Bien qu'il en soit aux premiers stades, SPy présente un potentiel impressionnant, promettant des vitesses proches de celles de Rust pour l'exécution native de Python dans les navigateurs à l'avenir.

Développement

Profilage mémoire statistique à faible surcharge dans PyPy : intégration de VMProf et du GC

2025-02-25

Cet article de blog décrit une nouvelle approche du profilage mémoire statistique à faible surcharge pour PyPy. Au lieu d'enregistrer chaque allocation, il échantillonne chaque n-ième octet alloué, intégrant intelligemment la logique d'échantillonnage dans la vérification de l'allocateur de pointeur de collision du garbage collector (GC) de PyPy. Cela garantit que le chemin rapide reste identique avec et sans échantillonnage mémoire, minimisant la surcharge. Des expériences démontrent de bonnes performances pour différents taux d'échantillonnage, offrant un contrôle plus précis et une surcharge moindre pour le profilage mémoire.

LLMs : Le succès inattendu du classement de documents

2025-02-25
LLMs : Le succès inattendu du classement de documents

Cet article soutient que les grands modèles de langage (LLM) peuvent être utilisés efficacement pour le classement de documents par liste, et que, de manière surprenante, certains problèmes complexes peuvent être résolus en les transformant en problèmes de classement de documents. L'auteur le démontre en utilisant la comparaison de correctifs pour localiser les vulnérabilités de type N-day. En reformulant le problème comme le classement des différences (documents) en fonction de leur pertinence par rapport à un avis de sécurité (requête), les LLM peuvent identifier efficacement la fonction spécifique qui corrige une vulnérabilité. Cette technique a été validée lors de plusieurs conférences sur la sécurité et peut être appliquée à d'autres problèmes de sécurité, tels que la sélection et la priorisation des cibles de fuzzing. Les améliorations futures comprennent l'analyse des résultats classés et la génération de preuves vérifiables, telles que la génération automatique d'exploits de preuve de concept testables.

L'écosystème puissant d'OCaml : Dune et bibliothèques essentielles

2025-02-25
L'écosystème puissant d'OCaml : Dune et bibliothèques essentielles

Cet article présente les composants clés du robuste écosystème OCaml. Dune (anciennement Jbuilder) est un système de construction composable ; Base remplace la bibliothèque standard d'OCaml pour des performances et une portabilité améliorées ; Core étend Base avec des fonctionnalités améliorées ; Async permet la programmation asynchrone ; Bonsai construit des machines à états déclaratives et incrémentales ; Incremental facilite les calculs auto-ajustables ; Base_quickcheck fournit des tests aléatoires basés sur les propriétés ; et Patdiff est un outil de comparaison optimisé pour les fichiers de code et de configuration. Ensemble, ces bibliothèques constituent une base puissante pour le développement OCaml, augmentant l'efficacité et la qualité du code.

Développement

Assistant de codage IA gratuit : Gemini Code Assist désormais disponible pour les particuliers

2025-02-25
Assistant de codage IA gratuit : Gemini Code Assist désormais disponible pour les particuliers

L'assistant Gemini Code Assist de Google est désormais gratuit pour les développeurs individuels et intégré à Visual Studio Code et aux IDE JetBrains. Il offre des fonctionnalités de complétion de code, de génération et de chat, avec une limite d'utilisation 90 fois supérieure à celle des autres assistants de codage gratuits. Grâce à une fenêtre de contexte généreuse de 128 000 jetons, les développeurs peuvent travailler facilement avec des fichiers volumineux. En utilisant des invites en langage naturel dans plusieurs langues, les développeurs peuvent générer du code (comme un formulaire HTML simple), expliquer des extraits de code et déboguer. Cet outil puissant permet aux développeurs de se concentrer sur la créativité, tandis que Gemini gère les tâches répétitives.

GoatDB : Une base de données NoDB légère pour Deno et React

2025-02-25
GoatDB : Une base de données NoDB légère pour Deno et React

GoatDB est une base de données en temps réel avec contrôle de version, idéale pour les projets Deno et React, offrant des déploiements simplifiés. Parfaite pour le prototypage, l'auto-hébergement, les applications mono-locataire et les configurations multi-locataires légères sans backends complexes. Les fonctionnalités incluent le traitement côté client, les capacités offline-first et la collaboration en temps réel. Les hooks React simplifient la gestion de l'état, tandis que les requêtes incrémentales efficaces, la synchronisation intégrée et un modèle de sécurité robuste la rendent parfaite pour le prototypage rapide et les projets collaboratifs.

Développement

Browser-Use : Donner le pouvoir à l'IA de contrôler votre navigateur

2025-02-25
Browser-Use : Donner le pouvoir à l'IA de contrôler votre navigateur

Imaginez votre IA interagissant de manière transparente avec votre navigateur, recherchant des informations, cliquant sur des liens et même effectuant des tâches web complexes. Browser-Use est une puissante bibliothèque Python permettant aux agents IA de contrôler directement les navigateurs, automatisant des actions telles que la recherche sur Reddit, l'ajout d'articles à un panier d'achat ou même l'ajout de contacts à Salesforce. Le projet offre des API faciles à utiliser, des exemples d'IU disponibles et une documentation complète. Un comité dédié est même en cours de formation pour définir les meilleures pratiques pour la conception UI/UX des agents de navigateur. Que vous soyez développeur ou chercheur en IA, Browser-Use offre des avantages significatifs.

Développement

Hyperspace : Une application Mac qui récupère de l’espace disque grâce aux clones APFS

2025-02-25
Hyperspace : Une application Mac qui récupère de l’espace disque grâce aux clones APFS

John Siracusa, un développeur chevronné, a publié Hyperspace, une application Mac qui utilise intelligemment les fonctionnalités de clonage du système de fichiers APFS pour libérer de l’espace disque précieux. Contrairement à d’autres applications qui suppriment les fichiers en double, Hyperspace récupère l’espace sans perte en convertissant les fichiers ayant un contenu identique en clones partageant une seule instance de données. L’article détaille le processus de développement d’Hyperspace et les expériences et les défis de l’auteur utilisant SwiftUI et Swift 6. Bien que la méthode d’Hyperspace pour manipuler les fichiers présente des risques, sa puissance fonctionnelle et sa facilité d’utilisation en font un atout pour les utilisateurs de Mac.

Elixir Embrasse Python : Pythonx Apporte la Programmation Multilingue à Livebook

2025-02-25

Pour répondre au défi de l'intégration d'Elixir avec les écosystèmes Python existants dans le domaine de la science des données, cet article présente le projet Pythonx. Pythonx intègre l'interpréteur Python dans la machine virtuelle Erlang, permettant la conversion automatique des données et l'évaluation de code entre Elixir et Python, et simplifiant la gestion des environnements virtuais. Avec Pythonx, les développeurs peuvent mélanger de manière transparente du code Elixir et Python dans les notebooks Livebook, améliorant ainsi considérablement l'efficacité du développement et la praticité de Livebook. L'article discute également des problèmes potentiels tels que le GIL et des solutions alternatives, et présente Fine, une bibliothèque C++ pour simplifier le développement de NIF.

Développement

Idées novatrices pour les langages de programmation : types de raffinement et sécurité au moment de la compilation

2025-02-25

Un article de blog explore les orientations futures des langages de programmation et propose plusieurs fonctionnalités innovantes. Celles-ci incluent la surcharge de fonctions basée sur les types de raffinement et l’utilisation de types d’union et de types de raffinement dans les structures de type C pour l’optimisation de la mémoire. L’article traite également de la sécurité mémoire au moment de la compilation et introduit le concept d’une fonction « supposer », permettant aux programmeurs de contourner les vérifications de sécurité sous certaines conditions pour faciliter le débogage. Ces idées visent à améliorer la sécurité des types et l’efficacité des langages de programmation.

Configuration avancée de Git : comment les développeurs principaux configurent Git

2025-02-25
Configuration avancée de Git : comment les développeurs principaux configurent Git

Cet article explore des paramètres de configuration Git peu connus qui peuvent améliorer considérablement l’expérience Git. L’auteur partage les meilleurs paramètres découverts par les développeurs principaux de Git lors d’une expérience de « grand nettoyage de printemps », classés en trois catégories : paramètres améliorant clairement Git (comme l’amélioration du tri des branches, les algorithmes diff, les opérations push et fetch), paramètres inoffensifs mais parfois utiles (comme la suggestion de correction automatique, l’affichage des diff lors de la validation, la réutilisation des résolutions de conflits) et paramètres basés sur les préférences personnelles (comme l’amélioration de la gestion des conflits de fusion, les paramètres par défaut de rebase et la surveillance du système de fichiers). La fonction de chaque paramètre est expliquée en détail avec les commandes correspondantes, aidant les lecteurs à optimiser leurs configurations Git pour une efficacité accrue.

Développement

Contournement de TCP/UDP : une expérience réseau inattendue

2025-02-25
Contournement de TCP/UDP : une expérience réseau inattendue

L'auteur tente de créer un protocole de transport réseau personnalisé, en contournant TCP et UDP, pour explorer son comportement sur différents systèmes d'exploitation et environnements réseau. Les expériences révèlent que le protocole personnalisé réussit partiellement lors de tests de boucle locale, mais dans les environnements réseau croisés, la plupart des serveurs cloud et des dispositifs réseau rejettent les paquets de protocole personnalisés, sauf AWS, et il existe des problèmes de compatibilité croisée médiocre. Conclusion finale : à moins que ce ne soit nécessaire, respectez TCP ou UDP !

Développement
1 2 151 152 153 155 157 158 159 214 215