Category: Développement

Yandex open-source Perforator : Profilage continu sans impact sur les performances de production

2025-02-01
Yandex open-source Perforator : Profilage continu sans impact sur les performances de production

Yandex a publié Perforator, un outil de profilage continu open-source basé sur la technologie eBPF. Perforator collecte les profils CPU des environnements de production sans affecter les performances. Déjà déployé sur des dizaines de milliers de serveurs Yandex, il aide les développeurs à identifier et résoudre les problèmes de performances. Il prend en charge des langages comme C++, C, Go et Rust (avec un support expérimental pour Java et Python), dispose d'un stockage scalable, d'un langage de requête convivial et d'une interface utilisateur, et génère des profils sPGO pour l'optimisation guidée par profil (PGO). Perforator a une consommation de ressources minimale et est facilement déployable sur divers environnements, des ordinateurs portables aux clusters Kubernetes.

Développement

La complexité de Neovim : deux ans plus tard, je regrette la simplicité de Vim

2025-02-01
La complexité de Neovim : deux ans plus tard, je regrette la simplicité de Vim

Après près de deux ans d'utilisation de Neovim, l'auteur trouve sa complexité écrasante. Bien que Neovim soit plus rapide et plus puissant, la gestion de ses plugins et sa configuration sont bien plus complexes que la simplicité du Vim classique. L'écosystème de plugins de Neovim est riche, mais nécessite une configuration et une coordination importantes pour fonctionner correctement, un contraste saisissant avec la simplicité de Vim. L'auteur espère un Neovim futur qui privilégiera l'expérience utilisateur, réduisant la configuration inutile et offrant plus de fonctionnalités prêtes à l'emploi.

Développement Gestion des plugins

Génération de graphes de fonctions sous forme d'arbres binaires

2025-02-01

Cet article décrit un algorithme utilisant Python et la bibliothèque NetworkX pour générer un arbre binaire. L'algorithme est basé sur une fonction f(x) = [(x << 1) + 2, (x << 1) + 3], construisant un graphe en itérant sur un domaine numérique et en utilisant la sortie de la fonction pour définir les connexions entre les nœuds. L'article inclut une implémentation de code détaillée et des explications mathématiques, démontrant comment une fonction mathématique peut être transformée en une représentation graphique.

Développement

Hoppscotch : Un outil léger de développement d'API

2025-02-01
Hoppscotch : Un outil léger de développement d'API

Hoppscotch est un outil léger et rapide pour le développement d'API, avec une interface utilisateur minimaliste et des fonctionnalités complètes. Il prend en charge plusieurs méthodes HTTP, la personnalisation des thèmes, l'installation de PWA, WebSocket, Server-Sent Events, Socket.IO, MQTT et GraphQL. Des fonctionnalités avancées incluent l'historique des requêtes, la gestion des collections, les scripts pré-requête, les tests post-requête, les variables d'environnement, la collaboration d'équipe et la gestion des espaces de travail, permettant des tests et un développement d'API efficaces. Les utilisateurs peuvent facilement créer et gérer des requêtes API et partager et collaborer de plusieurs manières.

L'experte en marketing de la FreeBSD Foundation n'utilise pas FreeBSD ?

2025-02-01

À l'EuroBSDCon 2024, Kim McMahon, experte en marketing embauchée par la FreeBSD Foundation, a fait une présentation défendant FreeBSD, mais a admis utiliser un Mac et a exprimé son mépris pour les utilisateurs de Linux et de Windows. Cela a provoqué l'indignation au sein de la communauté, l'accusant d'hypocrisie et d'être une 'fausse prophétesse'. L'article critique les grandes entreprises technologiques qui profitent des communautés open source tout en restreignant la liberté et en violant la vie privée, exprimant des inquiétudes quant à l'avenir de l'open source.

Développement

Ne créez pas votre propre cryptographie : pourquoi les développeurs continuent à échouer dans le chiffrement

2025-02-01
Ne créez pas votre propre cryptographie : pourquoi les développeurs continuent à échouer dans le chiffrement

Les développeurs pensent souvent à tort qu'utiliser des bibliothèques de cryptographie de bas niveau évite les risques de « créer sa propre cryptographie ». Cet article soutient que de nombreux développeurs ne comprennent pas la cryptographie, et même l'utilisation de bibliothèques existantes ne garantit pas la sécurité si des erreurs sont commises dans la conception du protocole ou la gestion des clés. L'auteur présente des exemples concrets et souligne l'importance d'une gestion robuste des clés et la nécessité pour les développeurs de bien comprendre et de faire réviser par des experts leurs implémentations cryptographiques.

Développement

Échapper aux géants : Embrasser la liberté et les défis de Linux

2025-02-01

Cet article explore les raisons de passer des systèmes d’exploitation propriétaires à Linux. Linux, basé sur des principes open source, offre aux utilisateurs un contrôle total de leur environnement informatique et propose une pléthore d’applications gratuites. Bien que Linux puisse présenter des défis tels qu’une courbe d’apprentissage abrupte et des problèmes de compatibilité, son solide soutien communautaire, sa grande personnalisation et sa protection de la vie privée des utilisateurs en font une option très attrayante. L’article présente également des distributions Linux conviviales pour les débutants (telles qu’Ubuntu, Linux Mint et Fedora) et quelques alternatives logicielles open source couramment utilisées.

Développement Système d’exploitation

Le terminal Linux d'Android 16 exécute désormais des applications graphiques Linux

2025-02-01
Le terminal Linux d'Android 16 exécute désormais des applications graphiques Linux

L'ambition de Google de transformer Android en un système d'exploitation PC complet franchit une étape importante. L'application Terminal Linux de la prochaine version bêta d'Android 16 est désormais capable d'exécuter des applications graphiques Linux, telles que Doom. Cet exploit impressionnant est dû à des améliorations de l'accélération matérielle et de la prise en charge du serveur d'affichage. Bien que non encore disponible dans la dernière version bêta, cette fonctionnalité, utilisant le framework de virtualisation Android (AVF), ouvre la voie à l'exécution de programmes de bureau plus complexes sur Android, comblant potentiellement le fossé entre Android et Chrome OS.

Développement Applications graphiques

Pourquoi Tracebit a choisi C# : l’histoire de la stack technologique d’une startup de sécurité

2025-02-01
Pourquoi Tracebit a choisi C# : l’histoire de la stack technologique d’une startup de sécurité

Tracebit, un produit de sécurité SaaS B2B, a étonnamment choisi C# plutôt que des alternatives populaires comme Python ou Go. L’auteur détaille le raisonnement derrière cette décision, en considérant des facteurs tels que la productivité, la disponibilité open source, les capacités multiplateformes, la popularité, la sécurité mémoire, la garbage collection, le typage statique, la stabilité, les bibliothèques intégrées et les outils. Les points forts de C# en termes de productivité, de stabilité et d’un écosystème riche se sont avérés cruciaux pour l’itération rapide et la croissance de Tracebit, notamment pour la gestion d’une grande base de code et la collaboration efficace au sein d’une équipe.

Serveur Mirascope MCP : Intégration sécurisée des LLM avec les services locaux

2025-02-01
Serveur Mirascope MCP : Intégration sécurisée des LLM avec les services locaux

Le serveur MCP (Model Context Protocol) de Mirascope permet d'exposer des ressources, des outils et des invites aux clients LLM via un protocole standardisé. Cet article montre comment construire un serveur simple de recommandation de livres à l'aide de MCP, en expliquant comment enregistrer des outils, des ressources et des invites. Il détaille deux styles de définition : le style décorateur et le style fonction-prioritaire. Le serveur MCP prend en charge diverses fonctionnalités, notamment les fonctions synchrones et asynchrones, des options de configuration flexibles et la compatibilité avec les outils et invites Mirascope standard, permettant une intégration sécurisée et fiable entre les clients LLM et les services locaux.

Développement

Faussités que les programmeurs croient à propos des pointeurs nuls

2025-02-01
Faussités que les programmeurs croient à propos des pointeurs nuls

Cet article réfute les idées fausses courantes sur les pointeurs nuls. Il explore des erreurs allant des plus simples (la déréférencement d'un pointeur nul ne provoque pas toujours le blocage immédiat du programme) aux plus étranges (l'adresse d'un pointeur nul n'est pas toujours 0). L'auteur met en garde contre la dépendance aux optimisations du compilateur ou aux spécificités matérielles, soulignant les dangers d'une hypothèse de comportement cohérent entre les plateformes. L'article souligne que le C doit être traité comme un langage de haut niveau, et non pas comme un simple "assembleur portable", et encourage l'utilisation des mécanismes de sécurité mémoire des langages modernes pour un code plus robuste et portable.

Développement pointeur nul

L'outil de collecte de données open source RudderStack collecte des mots de passe

2025-02-01
L'outil de collecte de données open source RudderStack collecte des mots de passe

L'outil de collecte de données open source RudderStack présente une faille de sécurité importante qui, dans certaines circonstances, collecte les mots de passe des utilisateurs. Cette vulnérabilité provient de sa fonctionnalité de suivi automatique qui collecte tous les attributs DOM des éléments sur lesquels un utilisateur clique. Ces attributs peuvent contenir des informations sensibles comme des mots de passe. Ceci fait écho à une vulnérabilité similaire découverte chez Mixpanel il y a deux ans. Bien que RudderStack ait partiellement corrigé le problème, la solution n'est pas complète et des risques potentiels subsistent. Il est conseillé aux utilisateurs de faire preuve de prudence et de surveiller les mises à jour.

Développement collecte de données

Sparrow : une implémentation légère d'Apache Arrow en C++

2025-02-01
Sparrow : une implémentation légère d'Apache Arrow en C++

Sparrow est une nouvelle bibliothèque C++ conçue pour simplifier l'intégration du format colonnaire d'Apache Arrow. Née des besoins de projets comme ArcticDB, elle fournit une API C++ légère et moderne, axée sur la lecture et l'écriture de données Arrow. Tirant parti des itérateurs, des plages et des concepts de la bibliothèque standard C++, Sparrow offre une interface propre et facile à utiliser, facilitant l'intégration avec les projets C++ existants. Elle prend en charge divers types de données, y compris la gestion des valeurs nulles, et fournit des constructeurs pour simplifier la création de structures de données complexes.

Développement Stockage Colonnaire

Temporisateurs Watchdog : Un mal nécessaire (ou un bien essentiel) ?

2025-01-31

Cet article explore le rôle crucial des temporisateurs watchdog dans les systèmes embarqués. En utilisant l'échec de la mission spatiale Clementine dû à un temporisateur watchdog mal implémenté et la nécessité de redémarrer une hotte aspirante de cuisine comme exemples, l'auteur souligne l'importance de temporisateurs watchdog fiables pour prévenir les pannes logicielles. L'article détaille différents designs de temporisateurs watchdog, y compris les options internes et externes, et propose des stratégies pour construire des temporisateurs watchdog hautement fiables. Cela inclut l'utilisation de watchdogs avec fenêtre, de watchdogs externes indépendants du CPU et la surveillance de l'état de toutes les tâches dans un système multitâche. L'auteur plaide pour l'inclusion de temporisateurs watchdog même dans les systèmes apparemment simples, en préconisant des techniques telles que les réinitialisations périodiques des structures de données pour améliorer la fiabilité.

Exécuter Linux dans un PDF : un émulateur RISC-V dans votre navigateur

2025-01-31
Exécuter Linux dans un PDF : un émulateur RISC-V dans votre navigateur

Le développeur @ading2210 a réalisé l’exploit remarquable d’exécuter un système Linux dans un fichier PDF. En exploitant le moteur Javascript des PDF et une version compilée en asm.js de l’émulateur RISC-V TinyEMU, un environnement Linux fonctionnel est créé. La sortie est affichée à l’aide de caractères ASCII, et l’entrée est gérée via un clavier virtuel. Bien que les temps de démarrage soient longs (30 à 60 secondes), le projet met en évidence les capacités surprenantes du format PDF. Le code est open source et prend en charge les systèmes 32 et 64 bits.

Développement

Expérience de Programmation Asynchrone : Intégration de Lua avec libuv et Modules C

2025-01-31
Expérience de Programmation Asynchrone : Intégration de Lua avec libuv et Modules C

Ce projet explore l’intégration de modules compilés en C dans des scripts Lua, en utilisant la bibliothèque libuv pour les opérations asynchrones. Il comprend l’interpréteur Lua, la bibliothèque libuv et des modules C personnalisés, démontrant comment compiler et charger des modules C dans Lua, aboutissant à un serveur HTTP simple. La structure du projet est claire, avec des instructions d’installation et de compilation détaillées, ainsi que des exemples de code, ce qui le rend idéal pour apprendre l’intégration de Lua et C et les techniques de programmation asynchrone.

Développement Programmation Asynchrone

Le triomphe inattendu de l'échantillonnage par rejet : une plongée profonde dans les tests de performance

2025-01-31

Lors de l'optimisation de son traceur de rayons, PSRayTracing, l'auteur a approfondi les tests de performance pour les algorithmes générant des vecteurs aléatoires à l'intérieur d'un cercle/sphère unitaire. Initialement, il pensait qu'une solution analytique serait plus efficace que l'échantillonnage par rejet. Cependant, les benchmarks en Python et en C++, sur divers compilateurs et plateformes matérielles, ont donné des résultats surprenants : avec les optimisations du compilateur activées, l'échantillonnage par rejet a souvent surpassé l'approche analytique. L'auteur conclut que les tests de performance pratiques sont cruciaux lors de l'optimisation du code, évitant de dépendre d'hypothèses théoriques, car les stratégies d'optimisation du compilateur et les variations matérielles affectent considérablement les performances finales.

arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

2025-01-31
arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

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 projets expérimentaux

arXivLabs : Expérimentation avec la collaboration communautaire

2025-01-31
arXivLabs : Expérimentation avec la collaboration communautaire

arXivLabs est un cadre permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités directement sur le site Web d'arXiv. 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 utilisateur. arXiv s'engage à respecter ces valeurs et ne travaille qu'avec des partenaires qui les partagent. Vous avez une idée de projet qui ajoutera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement plateforme ouverte

La classe singleton de Ruby : une plongée en profondeur

2025-01-31

Cet article explore en détail la classe singleton de Ruby, une fonctionnalité essentielle de sa sémantique orientée objet, même si elle n’a pas eu de nom officiel pendant des années. Il explique qu’une classe singleton n’est pas vraiment un singleton ni une classe, mais plutôt une solution élégante au problème de l’ajout de méthodes à une classe spécifique dans un langage purement orienté objet. L’article compare les solutions en Python et Smalltalk, détaille le mécanisme de Ruby pour implémenter les méthodes de classe à l’aide de classes singleton, notamment trois syntaxes pour définir des méthodes de classe singleton. Enfin, il examine pourquoi Ruby a choisi cette approche, en soulignant la cohérence et l’importance des classes singleton au sein du système orienté objet de Ruby.

Développement

L'énigme du déroulage de pile dans Perf

2025-01-31
L'énigme du déroulage de pile dans Perf

Perf, un outil puissant d'analyse de performance, utilise les interruptions de dépassement de compteur PMU pour capturer les états de thread pour le profilage. Cependant, le déroulage de pile pose un défi. Les compilateurs modernes omettent les pointeurs de trame par défaut, ce qui rend le suivi de pile difficile. Bien qu'il soit possible de recompiler avec -fno-omit-frame-pointer, cela coûte cher et peut entraîner des incompatibilités avec les bibliothèques système. DWARF offre une alternative, mais sa complexité et sa surcharge de performance sont considérables, ce qui a conduit Linus Torvalds à rejeter son utilisation dans le déroulage de pile du noyau. Par conséquent, Perf adopte un compromis : copier uniquement la partie supérieure de la pile dans l'espace utilisateur pour le déroulage. Cela limite la taille de la pile (65 528 octets), mais équilibre efficacement les performances et la praticité.

Bibliothèque de scripting Go : script — Simplification des tâches d’administration système

2025-01-31
Bibliothèque de scripting Go : script — Simplification des tâches d’administration système

La bibliothèque `script` pour Go offre des fonctionnalités similaires aux scripts shell pour les administrateurs système, notamment la lecture de fichiers, l’exécution de sous-processus, le comptage de lignes, la correspondance de chaînes, etc. Elle traite les flux de données à l’aide d’une approche de pipeline avec une API claire, rendant la programmation en Go aussi efficace et pratique que les scripts shell. `script` prend en charge un large éventail d’opérations, des E/S de fichiers et des requêtes HTTP à l’exécution de commandes externes et aux filtres personnalisés, simplifiant ainsi considérablement les tâches d’administration système. Par exemple, elle reproduit facilement les fonctionnalités de `grep` et prend en charge l’exécution concurrente pour de meilleures performances.

Développement

uscope : Un débogueur graphique en code natif pour Linux

2025-01-31
uscope : Un débogueur graphique en code natif pour Linux

uscope est une chaîne d’outils de débogage graphique en code natif et d’introspection pour Linux, actuellement en développement initial. L’auteur prévoit d’ajouter des fonctionnalités telles que la prise en charge de plusieurs langages de programmation (C, Zig, C++, Go, Rust, Odin, Jai, etc.), le débogage de programmes multithread, la navigation dans le code, le débogage à distance, et bien plus encore. Le projet vise à construire un système de débogage flexible et extensible avec une interface utilisateur conviviale. L’auteur prévoit également de le construire sous forme de bibliothèque afin que d’autres développeurs puissent créer des outils plus intéressants à partir de celui-ci.

Développement code natif

VoidDB écrase LMDB, BoltDB, LevelDB et BadgerDB dans les benchmarks

2025-01-31
VoidDB écrase LMDB, BoltDB, LevelDB et BadgerDB dans les benchmarks

Des benchmarks récents révèlent les performances supérieures de VoidDB par rapport aux bases de données embarquées leaders telles que LMDB, BoltDB, LevelDB et BadgerDB. VoidDB surpasse considérablement la concurrence pour les opérations Put, Get et GetNext. Plus précisément, l'opération Put de VoidDB est près de quatre fois plus rapide que celle de BoltDB et presque trois fois plus rapide que celle de LevelDB. Cela souligne les performances impressionnantes de VoidDB dans les scénarios à haut débit, offrant aux développeurs une option de base de données très efficace et fiable.

MillenniumDB : Un nouveau système de gestion de base de données orienté graphe

2025-01-31
MillenniumDB : Un nouveau système de gestion de base de données orienté graphe

MillenniumDB est un système de gestion de base de données orienté graphe développé par le Millennium Institute for Foundational Research on Data (IMFD). Il prend en charge plusieurs modèles de graphes, offrant un support assez complet pour RDF/SPARQL et un langage de requête de graphe de propriétés personnalisé. Bien qu'il soit encore en développement actif et pas encore prêt pour la production, il offre des fonctionnalités substantielles et prévoit d'ajouter le support de GQL prochainement. Des instructions détaillées d'installation, de configuration et d'utilisation, y compris le déploiement Docker, sont fournies.

Linux 6.14 : Améliorations de la virtualisation KVM

2025-01-31

Le prochain noyau Linux 6.14 inclut plusieurs améliorations du sous-système de machine virtuelle basée sur le noyau (KVM). Les mises à jour incluent : suppression des vidages TLB redondants sur les CPU AMD ; refonte de l’infrastructure des fonctionnalités KVM x86 CPUID pour un meilleur suivi des capacités vCPU ; poursuite des travaux sur la prise en charge des machines virtuelles Intel Trust Domain Extensions (TDX) ; gestion améliorée des sorties VM pour une meilleure parité entre VMX et SVM ; et prise en charge ajoutée des extensions Zabha, Svvptc et Ziccrse pour les invités RISC-V KVM. Ces modifications promettent des performances et une stabilité améliorées pour les machines virtuelles.

Développement

Construction de maillages avec intégration sphérique : une nouvelle approche de reconstruction de surface

2025-01-31

Cet article explore une nouvelle approche de la reconstruction de surface 3D : l’intégration sphérique. Cette méthode projette un nuage de points sur une sphère, puis utilise l’enveloppe convexe pour construire un maillage, ce qui permet de résoudre les problèmes de trous que peuvent rencontrer les méthodes traditionnelles lorsqu’elles traitent des formes complexes et des données manquantes. Bien que cette méthode présente certains avantages lors du traitement du modèle Stanford Bunny, notamment pour garantir l’intégrité du maillage, il reste une marge d’amélioration en termes d’efficacité et de précision. Comparée aux méthodes traditionnelles telles que la reconstruction de surface de Poisson, elle nécessite plus d’itérations et d’ajustements des paramètres pour obtenir des résultats optimaux. L’article détaille le processus d’implémentation de l’algorithme et illustre les performances de l’algorithme sous différents paramètres à l’aide d’exemples de code.

FOSDEM 2025 : Aperçu de la piste mobile open source

2025-01-31
FOSDEM 2025 : Aperçu de la piste mobile open source

FOSDEM, un événement gratuit pour les développeurs de logiciels à Bruxelles, en Belgique (1er et 2 février 2025), proposera une piste dédiée à « FOSS sur mobile ». Cette session d'une demi-journée (1er février, 14h55 - 19h00) accueillera de nombreuses conférences sur le développement mobile open source. Au-delà des conférences, de nombreux stands de projets offrent des opportunités de réseautage et de collaboration. Une rencontre informelle est prévue pour le dimanche 2 février à 14h00. Ne manquez pas l'occasion de rencontrer d'autres développeurs et de récupérer quelques autocollants !

Développement Développement Mobile

Restrictions d'application des suggestions de code GitHub : problèmes que vous pourriez rencontrer

2025-01-31
Restrictions d'application des suggestions de code GitHub : problèmes que vous pourriez rencontrer

Cet extrait de la documentation GitHub énumère diverses restrictions rencontrées lors de l'application de suggestions de code, telles que l'absence de modification de code, les demandes d'extraction fermées, l'affichage d'un sous-ensemble de modifications, l'application d'une seule suggestion par ligne, l'application à des lignes supprimées, des suggestions invalides et d'autres restrictions temporaires. Ces limitations visent à maintenir l'intégrité et la cohérence de la base de code et à garantir l'application efficace des suggestions.

Développement suggestions de code

ldump : Un serialiseur Lua pour les structures de données complexes

2025-01-31
ldump : Un serialiseur Lua pour les structures de données complexes

ldump est un serialiseur Lua robuste capable de gérer des structures de données complexes, y compris les références circulaires, les fonctions (même avec des upvalues), les méta-tables, les coroutines et les données utilisateur. Il sérialise les données en code Lua exécutable, désérialisé via `load(data)()`. ldump privilégie la fonctionnalité et la flexibilité plutôt que la vitesse et la taille, ce qui le rend idéal pour les scénarios nécessitant la sauvegarde d'états de jeu complexes. Bien que la sortie soit volumineuse, les algorithmes de compression modernes peuvent réduire considérablement sa taille. Il est compatible avec Lua 5.1 à 5.4 et LuaJIT, et a été testé de manière approfondie pour les cas limites.

Développement
1 2 172 173 174 176 178 179 180 214 215