Category: Développement

Surcharge de performances d'OpenTelemetry : un benchmark d'application Go

2025-06-16
Surcharge de performances d'OpenTelemetry : un benchmark d'application Go

Cet article mesure la surcharge de performances d'OpenTelemetry dans un environnement à forte charge à l'aide d'un serveur HTTP Go simple. Les résultats montrent une augmentation d'environ 35 % de l'utilisation du processeur, une légère augmentation de la mémoire et une augmentation significative du trafic réseau lors de l'activation d'OpenTelemetry. L'auteur compare l'utilisation du SDK OpenTelemetry avec la surveillance basée sur eBPF, constatant que cette dernière est beaucoup plus légère dans les scénarios à forte charge, en particulier lorsque seules les métriques sont collectées. La conclusion est que la surcharge d'OpenTelemetry n'est pas prohibitive, mais le choix de la bonne approche de surveillance est crucial, nécessitant un compromis entre performances et observabilité en fonction des besoins spécifiques.

Développement Benchmark de performances

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

2025-06-16
arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

arXivLabs est un cadre 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 ajoutera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

dk coder : Permettre aux non-programmeurs de créer des applications sécurisées

2025-06-16
dk coder : Permettre aux non-programmeurs de créer des applications sécurisées

dk coder est un exécuteur de scripts et un compilateur croisé conçu pour les utilisateurs ayant une expérience limitée de la programmation afin de créer des applications substantielles et axées sur la sécurité. Sa facilité d'utilisation, sa portabilité et son support IDE résolvent le problème de la « README-itis » : les longs READMEs dissuadent les utilisateurs de l'installer, entraînant une perte d'utilisateurs. Un guide de démarrage rapide présente les scripts dk avec des exemples simples. Les développeurs doivent consulter dk Runtime pour les versions compatibles de Windows, macOS et Linux. Pour les scripts, consultez dk Parties pour l'organisation des projets et gardez les manuels des bibliothèques et des macros dk à portée de main. Les utilisateurs expérimentés d'OCaml devraient consulter le guide Coming From OCaml.

D'une cellule de prison à ingénieur logiciel chez Turso : une histoire inspirante

2025-06-16
D'une cellule de prison à ingénieur logiciel chez Turso : une histoire inspirante

Un programmeur incarcéré, purgeant une peine pour des délits liés à la drogue, a obtenu un poste d'ingénieur logiciel chez Turso. Utilisant l'accès limité à Internet en prison, il s'est consacré à la programmation, contribuant à des projets open source et impressionnant finalement Turso avec son travail sur le projet Limbo, une réécriture de SQLite. Son histoire met en lumière la persévérance, les deuxièmes chances et le pouvoir de l'open source.

Développement

Discutez avec une IA via SSH : un serveur de chat IA dockerisé

2025-06-16
Discutez avec une IA via SSH : un serveur de chat IA dockerisé

Ce projet fournit un serveur de chat IA dockerisé accessible via SSH. Il prend en charge plusieurs modèles d'IA et propose des instructions de déploiement détaillées, y compris la configuration de l'environnement, le fichier Docker Compose et l'installation des dépendances. Les utilisateurs peuvent personnaliser des paramètres tels que les modèles, la limitation de débit, la liste noire et la liste blanche. Le projet inclut également des suggestions de déploiement pour divers systèmes d'exploitation (macOS, Linux et Windows) et remercie V.PS pour le parrainage des serveurs.

Développement

Appels de fonctions asynchrones sur Socket.io : présentation de socket-call

2025-06-16
Appels de fonctions asynchrones sur Socket.io : présentation de socket-call

socket-call est une petite bibliothèque basée sur Socket.io qui permet d'appeler des événements comme n'importe quelle fonction asynchrone TypeScript ordinaire. Elle simplifie l'utilisation de Socket.io, offrant une expérience de programmation plus propre et plus intuitive. Des exemples de code montrent l'implémentation côté serveur et côté client, illustrant la fonctionnalité de connexion et l'envoi de messages du serveur au client.

Développement

Migration imminente de Kubernetes Slack vers une nouvelle plateforme

2025-06-16

L'espace de travail Kubernetes Slack sera rétrogradé vers un plan gratuit le 20 juin, ce qui entraînera une limite d'historique des messages de 90 jours et la désactivation de plusieurs applications et workflows. Cela est dû à la taille de l'espace de travail qui dépasse les capacités du plan gratuit de Slack. La communauté Kubernetes explore une migration vers Discord, offrant des fonctionnalités et des intégrations améliorées, telles que la synchronisation de l'adhésion aux groupes GitHub. Le Comité de pilotage décidera en dernier ressort de la plateforme future.

Développement

Zeekstd : Une implémentation Zstandard avec recherche en Rust

2025-06-16
Zeekstd : Une implémentation Zstandard avec recherche en Rust

Zeekstd est une bibliothèque Rust implémentant un format Zstandard avec fonction de recherche. Elle divise les données compressées en trames indépendantes pour un accès aléatoire efficace. Entièrement compatible avec la spécification originale, Zeekstd apporte des améliorations et inclut des fonctionnalités de codage et de décodage, permettant la décompression de fichiers entiers ou de trames spécifiques. Un outil en ligne de commande est également fourni.

Analyseur de Fréquence de Mots du Kernel Linux

2025-06-16

Un site Web utilise un puissant moteur de recherche pour analyser la fréquence des mots, des noms et des fonctions dans le code source du noyau Linux. Les utilisateurs peuvent saisir des mots clés (prenant en charge les caractères génériques et les expressions régulières) pour afficher les résultats. Le site Web fournit également des graphiques interactifs (nécessite l'activation de JavaScript) pour une représentation visuelle des résultats de l'analyse. Ceci est très utile pour rechercher le noyau Linux ou comprendre sa structure de code.

Résolution du jeu de Dames de LinkedIn avec APL : 11 lignes de code

2025-06-16

Peter Vernigorov s'attaque au jeu simple de « dames » de LinkedIn à l'aide d'APL, un langage de programmation puissant et concis. L'article détaille une solution de recherche en largeur, en expliquant la structure de données, l'algorithme et la mise en œuvre des fonctions principales telles que `solve`, `place`, `avl`, `fill` et `fills`. La solution complète s'intègre élégamment en 11 lignes de code, montrant la puissance expressive et l'efficacité d'APL. L'auteur encourage les lecteurs à explorer le potentiel d'APL.

Développement

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

2025-06-16
arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

arXivLabs est un framework qui permet aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données des utilisateurs. arXiv 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

Trésors cachés et humour dans l'API Android

2025-06-16
Trésors cachés et humour dans l'API Android

Cet article dévoile des easter eggs et des éléments humoristiques cachés dans l'API publique d'Android. Des exemples incluent `isUserAMonkey()`, qui détecte si l'IU est testée par un outil ; `isUserAGoat()`, autrefois utilisé pour détecter le jeu Goat Simulator ; et `DISALLOW_FUN`, une politique de périphérique pour restreindre le plaisir de l'utilisateur. D'autres ajouts originaux incluent `Chronometer.isTheFinalCountdown()`, qui lance la vidéo 'The Final Countdown' d'Europe sur YouTube ; et des constantes telles que `SENSOR_TRICORDER` et `GRAVITY_DEATH_STAR_I`. Il existe même une balise `` non documentée pour faire clignoter les vues. Ces ajouts amusants allègent l'expérience du développeur et montrent l'humour de l'équipe Android.

Développement

Lisp-Stat : Un système de calcul statistique basé sur Common Lisp

2025-06-16
Lisp-Stat : Un système de calcul statistique basé sur Common Lisp

Lisp-Stat est conceptuellement similaire à R et sera familier à la plupart des utilisateurs de cet écosystème. Il convient à la fois à l'analyse exploratoire des données et aux déploiements de production en première ligne. Common Lisp est actuellement utilisé chez Google dans plusieurs systèmes transactionnels à haute disponibilité et à fort volume. Le choix de Common Lisp s'explique par sa capacité à répondre aux exigences d'un environnement exploratoire propice à l'analyse et à l'IA, sa robustesse suffisante pour fonctionner en environnement de production d'entreprise et sa disponibilité sous une licence sans restriction de code source. L'article cite un travail de Ross Ihaka, l'un des créateurs du langage R, sur les lacunes de R et son incapacité à compiler en code machine (entre autres problèmes). Il en va de même pour Python. Dans cet article, il plaide en faveur de Lisp comme remplacement de R.

Agents de codage IA : d’assistants utiles à des partenaires essentiels

2025-06-16

L’auteur relate un changement transformateur dans son flux de travail grâce à des agents de codage IA autonomes. Initialement perçus comme une curiosité intéressante, ces agents sont devenus indispensables, modifiant radicalement la façon dont les logiciels sont produits. L’auteur détaille l’utilisation d’outils tels que Claude et Codex pour accomplir des tâches allant de la correction de bogues à la génération de code, ce qui entraîne des gains de productivité importants. Tout en reconnaissant les limites, telles que le risque de se retrouver bloqué dans des optima locaux, l’auteur estime que les agents de codage IA représentent une nouvelle ère dans le développement de logiciels, augmentant plutôt que remplaçant les développeurs.

Développement

Twin : Un environnement de fenêtres en mode texte

2025-06-15
Twin : Un environnement de fenêtres en mode texte

Twin est un environnement de fenêtres textuel prenant en charge la souris, un gestionnaire de fenêtres, l'émulation de terminal, des clients réseau et la possibilité d'attacher/détacher des affichages en mode dynamique. Il prend en charge divers types d'affichage, notamment les terminaux texte, X11 et lui-même. Actuellement testé sur Linux, macOS et FreeBSD sur plusieurs architectures. Ce projet open source, sous licence GPL et LGPL, propose des tutoriels et une documentation complets pour les développeurs et est disponible sur GitHub.

Quelle est la vitesse d'allocation du GC RPython ?

2025-06-15

Cet article évalue la vitesse d'allocation du garbage collector (GC) de RPython à l'aide d'un petit programme de référence RPython. Les résultats montrent des vitesses d'allocation étonnamment rapides, supérieures à 34 Go/s, surpassant largement le GC de Boehm. L'analyse du code machine généré et des compteurs de performance révèle que la vitesse du GC de RPython provient de son mécanisme efficace de pointeur d'accroissement et de sa surcharge minimale du GC. Même dans du code Python ordinaire avec le JIT de PyPy, les vitesses d'allocation atteignent 17 Go/s.

Développement

Seastar : Un système de build rapide et extensible pour plusieurs langages

2025-06-15
Seastar : Un système de build rapide et extensible pour plusieurs langages

Seastar est un système de build rapide et extensible qui supporte actuellement C et C++, avec des projets d'ajout de Rust et Zig. Conçu pour faciliter la création, le prototypage et l'itération, il vise à imiter la simplicité d'utilisation de Cargo de Rust tout en offrant une compilation transparente sur plusieurs langages. Seastar est simple à construire et à exécuter ; il suffit d'installer Cargo et Rust, de cloner le dépôt et d'exécuter les commandes fournies. Actuellement en phase initiale, il n'est pas recommandé pour une utilisation en production.

Développement

18 Projets Ludiques pour Retrouver le Plaisir de la Programmation

2025-06-15

L'auteur préconise une approche pratique de l'apprentissage, estimant que créer est la meilleure façon de comprendre. L'article énumère 18 projets de programmation ludiques de difficulté et de durée variables, allant des noyaux de systèmes d'exploitation et des émulateurs de jeux aux moteurs physiques, aux compilateurs et aux kits d'outils d'interface graphique. Ces projets visent à raviver le plaisir de la programmation et à améliorer les compétences techniques. Les niveaux de difficulté sont indiqués, les rendant accessibles aux programmeurs de tous niveaux, ainsi que des liens vers des ressources utiles.

Développement projets ludiques

Le développeur de SumatraPDF abandonne std::function après 16 ans, et crée sa propre solution

2025-06-15
Le développeur de SumatraPDF abandonne std::function après 16 ans, et crée sa propre solution

Après 16 ans de développement C++ sur SumatraPDF, l'auteur a abandonné `std::function` et les lambdas en raison de difficultés de débogage. Les rapports de plantage étaient difficiles à déchiffrer à cause des noms auto-générés des fonctions lambda générées par le compilateur. Il a créé des fonctions de rappel personnalisées plus simples, `Func0` et `Func1`. Bien que moins riches en fonctionnalités que `std::function`, elles offrent des avantages significatifs en termes d'empreinte mémoire et de vitesse de compilation, et sont plus faciles à déboguer. Cet article détaille la conception et l'implémentation de `Func0` et `Func1`, et explique pourquoi cette approche convient mieux aux besoins de SumatraPDF.

Développement

Fonctions Date et Heure de SQLite Améliorées : Manipulation Date/Heure Plus Puissante

2025-06-15

Les fonctions date et heure de SQLite ont été améliorées pour offrir des fonctionnalités plus riches. Ce document détaille les cinq fonctions principales : `date`, `time`, `datetime`, `julianday` et `strftime`, ainsi que divers formats de chaînes de caractères date et heure et des modificateurs tels que `unixepoch` et `localtime`, permettant des calculs et une mise en forme de date/heure plus flexibles. Un correctif contribué par un utilisateur est également mis en évidence, ajoutant de nombreuses fonctionnalités telles que les modificateurs `start of week`, `end of day` et la fonctionnalité `group * by` pour une agrégation pratique.

Les LLM m'ont enlevé le plaisir de la programmation : Confession d'un programmeur

2025-06-15

L'auteur réfléchit sur un changement dans ses habitudes de programmation. Autrefois programmeur de « voyage », passionné par l'apprentissage et la résolution de problèmes, il est devenu de plus en plus dépendant des grands modèles linguistiques (LLM) pour générer du code, se transformant en un programmeur plus « orienté résultat ». Bien que les LLM augmentent l'efficacité, ils ont réduit le temps consacré à l'apprentissage et à la réflexion, diminuant le plaisir de l'auteur à programmer. Ce changement est attribué à plusieurs facteurs, notamment la préférence pour construire des projets utiles et la dépendance excessive aux LLM. L'auteur espère diminuer sa dépendance aux LLM et redécouvrir le plaisir du processus de programmation.

Développement

Gérer les conteneurs Apple comme docker-compose

2025-06-15
Gérer les conteneurs Apple comme docker-compose

Un outil CLI, `container-compose`, vous permet d'utiliser les conteneurs Apple avec un fichier de configuration similaire à docker-compose. Actuellement en version alpha, il peut contenir des bugs ou des fonctionnalités manquantes. Installez-le via Homebrew (`brew tap noghartt/container-compose https://github.com/noghartt/container-compose.git; brew install noghartt/container-compose/container-compose`) ou téléchargez un binaire précompilé depuis la page de publication.

Développement Conteneur Apple

Moteur Datalog en miniKanren et WebAssembly

2025-06-15

Cet article détaille un moteur Datalog construit à l'aide de Scheme et de la bibliothèque miniKanren, fonctionnant dans le navigateur via WebAssembly. Le moteur implémente les fonctionnalités principales de Datalog : assertion de faits, définition de règles et itération du point fixe. L'auteur explique en détail les aspects d'implémentation des structures de données, des mécanismes d'indexation et de l'application des règles, en fournissant un exemple de parcours de graphe. Ce projet démontre le potentiel des techniques de programmation fonctionnelle et logique pour construire des systèmes de bases de données efficaces, en tirant parti de WebAssembly pour une exécution multiplateforme.

Développement

Sandbox en 2025 : Guide de sécurité simplifié pour les développeurs

2025-06-15

Cet article étudie la facilité de création d'environnements sandbox pour les programmes en 2025 sur des systèmes d'exploitation tels que Linux, OpenBSD et FreeBSD. En analysant la longueur de la documentation et la longueur du code d'exemple de divers outils de sandbox, l'auteur évalue leur facilité d'utilisation et leur surcharge de maintenance. `pledge` d'OpenBSD se distingue par sa documentation concise et sa facilité d'utilisation, tandis que `seccomp` de Linux s'avère beaucoup plus complexe. L'article utilise OpenSSH comme étude de cas, analysant l'application pratique et la difficulté de maintenance de la technologie sandbox. Il conclut par un appel aux développeurs pour qu'ils contribuent des données afin de mieux comprendre l'adoption de la technologie sandbox.

Développement sandbox de programme

GNOME en 1998 : Un Retour vers le Passé

2025-06-15

Cet article relate l'expérience de l'auteur avec l'environnement de bureau GNOME initial inclus dans Red Hat Linux 5.1 de 1998. Il s'agissait d'une version bêta, significativement plus simple que le GNOME actuel, mais avec des temps de démarrage remarquablement plus rapides. L'auteur détaille les applications disponibles, telles qu'un gestionnaire de fichiers basique, le visualiseur d'images Electric Eyes, gEdit 0.4.0 et des jeux simples, en établissant des comparaisons avec les versions modernes. Ce regard nostalgique met en lumière les efforts et l'ingéniosité de la communauté open source naissante.

Développement Histoire de l'Open Source

Fondements de la vision par ordinateur : Dix ans de travail

2025-06-15

Après dix ans de travail, Torralba, Isola et Freeman ont publié « Fondements de la vision par ordinateur ». Au lieu de viser une couverture complète, le livre se concentre sur les concepts fondamentaux, en abordant le sujet du point de vue du traitement d’images et de l’apprentissage automatique. Il présente de nombreuses visualisations et progresse à travers la formation d’images, les fondements de l’apprentissage, le traitement du signal, les réseaux neuronaux et explore des sujets avancés tels que les modèles génératifs et l’apprentissage de la représentation. La structure rigoureuse et les explications claires du livre le rendent adapté aux étudiants de premier cycle, aux étudiants des cycles supérieurs et aux professionnels.

Développement

Le nouvel élément `<permission>` de Chrome : une approche déclarative des autorisations web

2025-06-15
Le nouvel élément `<permission>` de Chrome : une approche déclarative des autorisations web

L'équipe des autorisations de Chrome expérimente un nouvel élément HTML déclaratif, ``, pour simplifier la manière dont les applications web demandent l'accès à des fonctionnalités puissantes telles que l'accès à la localisation. Les méthodes impératives traditionnelles souffrent de spam d'autorisations, d'une mauvaise contextualisation et de difficultés à révoquer les autorisations. L'élément `` offre une approche plus sécurisée et conviviale, permettant aux développeurs de demander des autorisations de manière déclarative, tandis que le navigateur met à jour dynamiquement le texte de l'élément en fonction de l'interaction de l'utilisateur et fournit une gestion claire des autorisations. Actuellement en essai d'origine dans Chrome 126, il vise la standardisation.

Développement Gestion des autorisations

Modèle de diffusion probabiliste PyTorch minimal : expériences sur des ensembles de données 2D

2025-06-15
Modèle de diffusion probabiliste PyTorch minimal : expériences sur des ensembles de données 2D

Cet article détaille une implémentation minimale en PyTorch d’un modèle de diffusion probabiliste pour les ensembles de données 2D. L’auteur explore des hyperparamètres tels que le taux d’apprentissage, la taille du modèle, la durée du processus de diffusion et le codage des pas de temps au moyen de diverses expériences. Les résultats montrent qu’un taux d’apprentissage approprié est crucial, que des processus de diffusion plus longs génèrent des échantillons plus complets et que la capacité du modèle n’est pas le principal goulot d’étranglement. L’utilisation d’intégrations sinusoïdales pour le codage des entrées aide à apprendre des fonctions à haute fréquence dans les domaines à faible dimension.

Audit de sécurité de Rails : améliorations et perspectives

2025-06-15

Le Fonds d'amélioration de la technologie open source (OSTIF) a publié un audit de sécurité de Ruby on Rails, mené par X41 D-Sec avec le soutien de GitLab et de la Sovereign Tech Agency. L'audit de quatre mois a révélé 7 failles de sécurité et proposé 6 recommandations d'amélioration. Le rapport souligne la maturité de la sécurité de Rails ces dernières années tout en soulignant les axes d'amélioration futurs. L'OSTIF a également célébré son 10e anniversaire et invite à participer à ses prochains meetups.

Développement

Comparer Trois Notions de Complexité Logicielle

2025-06-15

Cet article compare trois définitions distinctes de la complexité logicielle de Rich Hickey, John Ousterhout et Zach Tellman. Hickey définit la simplicité comme l'unité, en soulignant l'objectivité ; Ousterhout définit la complexité comme tout ce qui rend un système difficile à comprendre et à modifier, en soulignant les dépendances et l'obscurité ; Tellman définit la complexité comme la somme de toutes les explications, en soulignant la surprise dépendante de l'audience. L'article pèse les forces et les faiblesses de chacun, explorant son application à des problèmes du monde réel. En fin de compte, il soutient que l'approche basée sur les explications de Tellman est supérieure pour capturer l'expérience subjective du développeur et guider les décisions pratiques.

Développement complexité logicielle
1 2 59 60 61 63 65 66 67 214 215