Category: Développement

Interpolation de chaînes dans AmigaDOS : au-delà des accolades {}

2025-03-22

Cet article de blog explore la flexibilité et les particularités de l’interpolation de chaînes dans les scripts shell d’AmigaDOS. Bien qu’AmigaDOS utilise par défaut « < » et « > » pour l’interpolation, il permet une personnalisation via les directives « .BRA » et « .KET ». Des expériences montrent l’utilisation réussie de diverses paires de caractères, y compris des caractères ASCII imprimables et non imprimables (tels que BEL et NAK). Cela souligne la robustesse de l’analyseur de scripts d’AmigaDOS et sa capacité à gérer les entrées inhabituelles.

Développement interpolation de chaînes

Projet Open Source de Mozilla.ai : Accélérer la cartographie OpenStreetMap avec l'IA

2025-03-22
Projet Open Source de Mozilla.ai : Accélérer la cartographie OpenStreetMap avec l'IA

Mozilla.ai a publié un projet open source appelé OpenStreetMap AI Helper Blueprint, conçu pour accélérer le processus de cartographie sur OpenStreetMap. Ce projet combine intelligemment le modèle de détection d'objets YOLOv11 et le modèle de segmentation SAM2 pour identifier et délimiter automatiquement les éléments de la carte (par exemple, les piscines), augmentant ainsi l'efficacité. Les utilisateurs entraînent des modèles dans des environnements Colab fournis, puis vérifient manuellement les résultats, améliorant ainsi considérablement la vitesse de cartographie tout en maintenant le contrôle qualité. Cela montre comment des modèles d'IA légers et compatibles avec les environnements locaux peuvent améliorer les projets communautaires sans dépendre de grands modèles de langage.

Développement

Landrun : Un bac à sable Linux léger et sécurisé au niveau du noyau

2025-03-22
Landrun : Un bac à sable Linux léger et sécurisé au niveau du noyau

Landrun est un bac à sable Linux léger utilisant Landlock LSM, offrant une sécurité au niveau du noyau et une surcharge minimale. Il fournit un contrôle d'accès granulaire aux répertoires, prenant en charge les chemins en lecture et en écriture avec des permissions d'exécution optionnelles. Un contrôle d'accès réseau TCP (liaison et connexion) est également inclus. Nécessite le noyau Linux 5.13 ou supérieur avec Landlock LSM activé (noyau 6.8 ou supérieur pour les restrictions réseau). Landrun fournit une interface en ligne de commande pour configurer facilement les permissions du bac à sable, y compris la lecture seule, la lecture/écriture, l'exécution, et des ports TCP spécifiques pour la liaison et la connexion. Un mode « meilleur effort » assure une dégradation élégante sur les noyaux plus anciens. Idéal pour exécuter en toute sécurité du code non fiable ou potentiellement malveillant.

Développement sécurité noyau

Deux rapports mettent en lumière les lacunes de connaissances et les meilleures pratiques pour la conformité CRA du logiciel libre

2025-03-22
Deux rapports mettent en lumière les lacunes de connaissances et les meilleures pratiques pour la conformité CRA du logiciel libre

La Fondation Linux a publié deux rapports de recherche révolutionnaires explorant des stratégies communautaires pour répondre à la sécurité du logiciel libre et à la loi européenne sur la résilience cybernétique (CRA). Le premier rapport analyse comment trois projets de la Fondation Linux répondent aux exigences minimales de conformité de la CRA, en partageant les meilleures pratiques. Le second rapport révèle d'importantes lacunes de connaissances au sein de l'écosystème du logiciel libre concernant la sensibilisation à la CRA, de nombreux répondants étant peu familiers avec la loi et manquant de préparation à la conformité. Les rapports recommandent aux fabricants de jouer un rôle plus actif dans la sécurité du logiciel libre, appelant à un financement accru et à un soutien juridique pour favoriser de meilleures pratiques de sécurité.

FizzBee : Modélisation de l’exclusion mutuelle et les pièges de Redlock

2025-03-22
FizzBee : Modélisation de l’exclusion mutuelle et les pièges de Redlock

Cet article détaille l’expérience de l’auteur utilisant FizzBee, un nouveau langage de spécification formelle basé sur Starlark, pour modéliser des algorithmes d’exclusion mutuelle et étudier les problèmes liés à l’algorithme Redlock. En modélisant les sections critiques, les verrous, les baux et les jetons de clôture, l’auteur révèle les limites de la tolérance aux pannes de Redlock, montrant finalement que les jetons de clôture ne résolvent pas complètement les problèmes d’exclusion mutuelle. L’auteur conclut en discutant de la facilité d’utilisation et des lacunes de FizzBee, soulignant l’importance de la spécification formelle dans la conception d’algorithmes. L’exercice pratique a révélé de manière inattendue des défauts subtils dans la compréhension de l’auteur des jetons de clôture, soulignant la valeur des méthodes formelles.

Développement exclusion mutuelle

Plongez au cœur de PyTorch : tenseurs, Autograd et écriture de noyaux

2025-03-22

Cet article de blog propose une exploration détaillée des mécanismes internes de PyTorch, couvrant les structures de données des tenseurs, la différenciation automatique (Autograd) et l’écriture de noyaux. Il commence par expliquer l’implémentation sous-jacente des tenseurs, notamment le concept de pas et la manière de les utiliser pour créer des vues de tenseurs. Ensuite, il approfondit le fonctionnement d’Autograd, montrant comment les gradients sont calculés par rétropropagation. Enfin, l’article fournit un guide pratique pour écrire des noyaux PyTorch, notamment comment utiliser les outils de PyTorch pour la vérification des erreurs, l’envoi de dtype et la parallélisation. Il s’agit d’un excellent tutoriel pour les développeurs ayant une certaine expérience de PyTorch et souhaitant comprendre ses mécanismes internes ou contribuer au code.

Développement Développement de noyaux

Récupération après suppression accidentelle de /lib sous Linux

2025-03-22

Cet article détaille comment récupérer un système Linux après la suppression accidentelle du répertoire crucial `/lib`. L'auteur explore plusieurs méthodes, de l'utilisation d'outils existants comme un busybox statique à la création et au transfert d'un programme C minimal compilé statiquement pour remplacer les fichiers essentiels. Le guide pas à pas couvre des techniques utilisant les commandes intégrées de bash et les transferts réseau, offrant une solution pour éviter la réinstallation du système d'exploitation.

FastOpenAPI : Un générateur OpenAPI basé sur Pydantic

2025-03-22
FastOpenAPI : Un générateur OpenAPI basé sur Pydantic

FastOpenAPI est une bibliothèque permettant de générer et d'intégrer des schémas OpenAPI à l'aide de Pydantic et de divers frameworks, visant une expérience utilisateur similaire à FastAPI. Elle prend en charge Falcon, Flask, Quart, Sanic, Starlette et Tornado, offrant un routage de style FastAPI via un routage proxy. Une simple installation pip permet une prise en main rapide, avec Swagger UI et ReDoc UI pour un accès pratique à la documentation. Le projet inclut des exemples complets et des benchmarks pour faciliter l'adoption et l'évaluation des performances.

L'évolution de l'architecture des applications et l'essor de l'orchestration légère

2025-03-22
L'évolution de l'architecture des applications et l'essor de l'orchestration légère

De l'architecture à trois niveaux des années 90 au monde actuel piloté par les microservices, l'architecture des applications a subi une transformation radicale. Pour coordonner les opérations dans les backends distribués, la couche d'orchestration est apparue. Cependant, les solutions DIY existantes sont complexes et difficiles à maintenir, tandis que les systèmes d'orchestration dédiés introduisent leurs propres complexités. Cet article présente une nouvelle approche : intégrer la fonctionnalité d'orchestration dans une bibliothèque légère et utiliser une base de données pour persister l'état d'exécution. Cela élimine la couche d'orchestration séparée, simplifiant le développement, les tests et le débogage, conduisant en fin de compte à des architectures d'applications plus fiables et plus efficaces.

Ruby : le langage inattendu de la révolution de l'IA ?

2025-03-22

Les grands modèles de langage (LLM) excellent dans la génération de code, mais leurs fenêtres de contexte limitées entravent le travail avec de grandes bases de code. Cet article explore la « puissance » de la programmation assistée par LLM : combien de jetons faut-il pour exprimer un programme ? L'auteur soutient que Python surpasse Go pour les LLM en raison de sa concision, permettant plus de fonctionnalités dans les limites de jetons. De plus, Ruby, connu pour son élégance et sa brièveté, est présenté comme un langage idéal pour les LLM en raison de son utilisation efficace des jetons. Bien que des défis tels que la vérification de type persistent, la conception centrée sur l'humain de Ruby, ironiquement, en fait un potentiel leader pour les LLM.

Développement

Restrictions d'application des suggestions de code sur GitHub

2025-03-22
Restrictions d'application des suggestions de code sur GitHub

Ce texte énumère les différentes limitations rencontrées lors de l'application des suggestions de code dans le processus de révision de code de GitHub. Cela inclut : aucun changement de code effectué, demande d'extraction fermée ou fusionnée, affichage d'un sous-ensemble de modifications, une seule suggestion par ligne applicable, l'application de suggestions sur des lignes supprimées n'est pas prise en charge, la suggestion a déjà été appliquée ou marquée comme résolue, les suggestions provenant de révisions en attente ne peuvent pas être appliquées, et les suggestions sur les commentaires multilignes ne sont pas autorisées. Ces restrictions garantissent l'intégrité et la précision du processus de révision de code.

Développement Suggestions de code

N'ayez pas peur des nouveaux types : leçons de Go et C

2025-03-22

De nombreux développeurs hésitent à créer de nouveaux types dans leurs bases de code. Cet article soutient que cela provient d'une peur de modifier la conception générale perçue et d'ajouter de la complexité. Cependant, l'auteur affirme que lorsqu'un ensemble de valeurs appartient naturellement ensemble, la création d'un nouveau type améliore considérablement la lisibilité et la maintenabilité du code. Prenant Go comme exemple, l'auteur souligne les avantages de créer des types petits et spécifiques, comme une structure `CreateSubscriptionRequest`, simplifiant la gestion des données dans les appels de fonctions. L'auteur encourage les développeurs à surmonter leur appréhension face à la création de nouveaux types, soulignant que dans les cultures C et Go, cette pratique est courante et acceptée, à condition que le but du type soit clairement exprimé par son nom.

Développement

Autorisation centralisée : la prochaine plateforme partagée ?

2025-03-22
Autorisation centralisée : la prochaine plateforme partagée ?

Cet article explore les avantages et les défis des systèmes d’autorisation centralisés. Traditionnellement, l’autorisation est décentralisée sur plusieurs applications, ce qui entraîne des inefficacités et des difficultés de gestion. Un système centralisé offre une standardisation, une réduction des coûts et une meilleure conformité, mais nécessite de relever les défis liés à l’expressivité, aux performances, à l’isolation et à l’intégration. L’article examine comment les plateformes open source (Topaz) et commerciales (Aserto) surmontent ces obstacles, permettant une autorisation au niveau de l’entreprise efficace, sécurisée et gérable.

Développement autorisation centralisée

Privilégier les options longues dans les scripts

2025-03-22

De nombreux utilitaires en ligne de commande proposent des options courtes (-f) et des options longues (--force). Si les options courtes sont pratiques pour une utilisation interactive, les options longues sont bien supérieures dans les scripts. Leur meilleure lisibilité et leur nature explicative améliorent la maintenabilité et la compréhension. Par exemple, dans Git, `git switch --create release-{today} origin/main` est beaucoup plus clair que `git switch -c my-new-branch`, notamment dans les scripts complexes.

Frink : Un outil de calcul pratique et un langage de programmation

2025-03-21

Frink est un puissant outil de calcul et un langage de programmation conçu pour simplifier les calculs physiques, garantir l'exactitude des réponses et fournir un outil vraiment utile. Il assure le suivi des unités de mesure (pieds, mètres, kilogrammes, watts, etc.) tout au long des calculs, permettant un mélange transparent des unités et la vérification des résultats. Frink possède également une vaste base de données de constantes physiques, prend en charge plusieurs langues, des fonctions mathématiques avancées, des conversions d'unités, des calculs de date/heure, des expressions régulières et des graphiques, et prend même en charge la programmation orientée objet et les appels de code Java. Il fonctionne sur divers systèmes d'exploitation et appareils et se met à jour automatiquement via Java Web Start.

Développement suivi des unités

Transactions par seconde MySQL vs. fsyncs par seconde : Dévoiler le mystère

2025-03-21

Cet article examine l'écart entre le débit théorique et réel des transactions MySQL. Un benchmark révèle que la vitesse d'écriture de MySQL est significativement plus rapide que ce qui était théoriquement prévu (basé sur la latence de fsync()). Une enquête plus approfondie a révélé que MySQL utilise le "commit groupé" pour traiter les écritures par lots dans le WAL et le binlog, et que le système de fichiers/disque utilise probablement un traitement par lots similaire, augmentant ainsi l'efficacité. L'auteur analyse également les performances de l'index inversé et explique l'écart entre les modèles théoriques et les performances réelles.

Développement

Écrivez votre propre système d'exploitation x86 : Un guide pratique

2025-03-21

Ce livre est un guide pratique pour écrire votre propre système d'exploitation x86. Il vous guide tout au long du processus, de la configuration de votre environnement de développement à la mise en œuvre du multitâche, avec des explications détaillées et des exemples de code à chaque étape. Les auteurs partagent leurs expériences et fournissent des liens pour une lecture complémentaire. Les sujets abordés incluent la gestion de la mémoire, le traitement des interruptions, la mémoire virtuelle, les systèmes de fichiers et les appels système, ce qui le rend adapté aux lecteurs ayant une certaine expérience de la programmation système.

Ubuntu envisage de passer aux utilitaires Rust par défaut

2025-03-21

Ubuntu prévoit de remplacer de nombreux utilitaires GNU traditionnels par des implémentations en Rust, telles que celles du projet uutils, dans sa prochaine version 25.10. Pour tester l'adéquation de ces outils Rust, le vice-président de l'ingénierie de Canonical, Jon Seager, a publié oxidizr, un utilitaire en ligne de commande permettant de les activer ou de les désactiver facilement. Ce changement vise à améliorer la résilience et la sécurité d'Ubuntu, et à attirer davantage de contributeurs. Bien que les réactions de la communauté soient mitigées, ce changement pourrait avoir un impact significatif sur l'adoption de Rust et l'avenir des distributions Linux.

Développement

Serveur Hyperbrowser MCP : Scraping Web et Extraction de Données Simplifiés

2025-03-21
Serveur Hyperbrowser MCP : Scraping Web et Extraction de Données Simplifiés

Hyperbrowser présente son serveur de Protocole de Contexte de Modèle (MCP), un outil puissant pour scraper des pages web, extraire des données structurées et crawler des sites web. Il simplifie également l'accès aux agents de navigateur polyvalents tels que le CUA d'OpenAI, l'utilisation de l'ordinateur Claude d'Anthropic et l'utilisation du navigateur. Le serveur offre des fonctionnalités telles que le scraping web, le crawling web, l'extraction de données structurées, la recherche Bing et diverses capacités d'automatisation du navigateur. L'installation est simple : il suffit d'exécuter `npx hyperbrowser-mcp ` et de configurer les fichiers de configuration appropriés.

Développement extraction de données

Contention de verrouillage ClickHouse : un goulot d’étranglement des performances d’un an

2025-03-21

Tinybird a rencontré un problème persistant pendant un an : une utilisation extrêmement faible du processeur dans l’un de ses clusters ClickHouse en période de forte charge. La cause principale a été identifiée comme une contention de verrouillage Context. En ajoutant une métrique `ContextLockWaitMicroseconds` pour surveiller les temps d’attente de verrouillage et en repensant le mécanisme de verrouillage Context – en remplaçant un mutex global unique par des mutexes lecture-écriture –, les performances se sont considérablement améliorées. L’article détaille l’utilisation de l’analyse de sécurité des threads de Clang pour déboguer et résoudre les problèmes de concurrence, ainsi que les résultats des tests de référence montrant une augmentation de 3x du QPS et des gains substantiels dans l’utilisation du processeur.

Développement

Termes techniques que vous prononcez probablement mal

2025-03-21

Cet article met en évidence les prononciations courantes erronées de termes techniques rencontrés par un développeur solo autodidacte. Il énumère des exemples tels que Asus (AY-soos, pas AY-sis), Debian (DEHB-eee-in, pas DEE-bee-inn), et bien d'autres, en soulignant l'absence de logique inhérente à ces prononciations. L'auteur suggère d'utiliser le widget de prononciation de Google comme ressource utile et fournit une liste complète de termes correctement prononcés, notamment Atlassian, daemon, Gaussian, GIF, Gnome, GNU, JSON, Kernighan, LaTeX, Linus, Poisson, pypi, Qt, Redis, regex, repo, sudo, SUSE, SQL, SQLite, Ubuntu et Vite. Il s'agit d'une ressource précieuse pour les développeurs et les passionnés de technologie.

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

2025-03-21
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 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 est engagé envers ces valeurs et ne travaille qu'avec des partenaires qui les respectent. Vous avez une idée de projet qui ajoutera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

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

2025-03-21
arXivLabs : Projets expérimentaux avec les collaborateurs de la communauté

arXivLabs est un cadre expérimental 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 à 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

Système de contrôle de version léger : Game of Trees publié

2025-03-21

Game of Trees (Got) est un système de contrôle de version léger et convivial qui privilégie la facilité d'utilisation et la simplicité. Actuellement en développement, il cible principalement les développeurs OpenBSD et utilise les référentiels Git pour les données versionnées. Les fonctionnalités non encore implémentées dans Got peuvent être gérées par Git, et les deux systèmes peuvent fonctionner simultanément sur le même référentiel. Sous licence BSD, le logiciel est gratuit et réutilisable.

Développement

Mathup : un analyseur d'expressions mathématiques rapide

2025-03-21

Mathup est un outil léger qui traduit des expressions mathématiques simples écrites dans un langage de balisage inspiré d'AsciiMath en MathML structuré. Plus rapide que MathJax car il n'analyse et ne traduit que les expressions, laissant le rendu au navigateur, Mathup prend en charge un large éventail de symboles et de fonctions mathématiques, notamment les fractions, les indices/exposants, les matrices et les tenseurs. Il offre de nombreuses options de personnalisation pour les polices, les couleurs et les arrière-plans. Les développeurs peuvent l'utiliser en ligne de commande, sur un serveur ou dans un navigateur pour une gestion rapide et efficace des expressions mathématiques.

Screen : Un émulateur de terminal en PHP pur pour des interfaces utilisateur texte riches

2025-03-21
Screen : Un émulateur de terminal en PHP pur pour des interfaces utilisateur texte riches

Screen est une bibliothèque d'émulateur de terminal écrite entièrement en PHP, permettant la création d'interfaces utilisateur basées sur du texte enrichi dans n'importe quelle application PHP. Initialement développée pour résoudre les conflits de codes d'échappement ANSI dans le TUI multi-processus de Solo pour Laravel, Screen crée un tampon de terminal virtuel pour gérer en toute sécurité les opérations ANSI (déplacement du curseur, changements de couleur, effacement de l'écran). Cela assure un rendu cohérent et prend en charge Unicode, les caractères multi-octets, le défilement et une large gamme de codes d'échappement ANSI. Une suite de tests complète, dotée d'un système de comparaison visuelle innovant, garantit une émulation précise.

Modèle de site web open source basé sur NeRFies et UMI-On-Legs

2025-03-21

Ce modèle de site web est modifié à partir des excellents designs d'AnyCar UMI-On-Legs et NeRFies, avec un code simplifié. Il est sous licence Creative Commons Attribution-ShareAlike 4.0 International, permettant la modification et l'utilisation gratuites, mais exige un lien vers la page NeRFies dans le pied de page et la suppression du code d'analyse indésirable.

Développement modèle de site web

Client RDP basé sur Rust : IronRDP, sécurisé et efficace

2025-03-21
Client RDP basé sur Rust : IronRDP, sécurisé et efficace

IronRDP est un ensemble de crates Rust fournissant une implémentation sécurisée du protocole RDP (Remote Desktop Protocol) de Microsoft. Il prend en charge divers codecs, notamment les bitmaps bruts non compressés, le RLE, la compression de bitmap RDP 6.0 et Microsoft RemoteFX. Un client RDP asynchrone complet est inclus, ainsi qu'un exemple bloquant pour faciliter l'intégration. Le projet détaille également comment activer RemoteFX sur le serveur pour des performances graphiques améliorées.

Développement

Compilateur jouet pour expressions Python utilisant MLIR et E-Graphs

2025-03-21
Compilateur jouet pour expressions Python utilisant MLIR et E-Graphs

Cet article détaille un compilateur jouet pour les expressions Python construit à l'aide de MLIR et de la bibliothèque egglog. Le compilateur utilise les E-Graphs pour la saturation d'égalité et la réécriture de termes afin d'optimiser les expressions Python avant de les compiler en MLIR. Il comprend des modules pour la modélisation d'expressions, les fonctions intégrées, le Term IR, une couche de transformation, une couche d'optimisation et la génération de code MLIR ainsi qu'un backend LLVM. En interprétant symboliquement les fonctions Python, en les convertissant en une représentation IR, en appliquant des règles d'optimisation et, enfin, en générant du code MLIR efficace, le compilateur permet la compilation et l'exécution via LLVM.

Développement

Créateur de Lentilles Torch : Optique Différentiable avec PyTorch

2025-03-21

Torch Lens Maker est une bibliothèque Python open-source pour l'optique géométrique différentiable basée sur PyTorch. Son objectif ambitieux est de concevoir des systèmes optiques complexes du monde réel (lentilles, miroirs) en utilisant l'informatique moderne et l'optimisation numérique de pointe. Le cœur du projet est l'optique géométrique différentiable : la détection de collision 3D et les lois de l'optique implémentées dans PyTorch. En traitant intelligemment les éléments optiques comme des couches d'un réseau neuronal et en tirant parti de la différenciation automatique et des algorithmes d'optimisation de PyTorch, la conception de lentilles devient étonnamment similaire à l'entraînement d'un réseau neuronal, déverrouillant la puissance des outils modernes d'apprentissage automatique. Le projet en est à ses débuts et l'auteur recherche un financement pour poursuivre son développement.

Développement conception de lentilles
1 2 132 133 134 136 138 139 140 214 215