Category: Développement

Nettoyeur LaTeX pour arXiv : préparez votre article facilement

2025-02-04
Nettoyeur LaTeX pour arXiv : préparez votre article facilement

Fatigué de nettoyer votre code LaTeX pour la soumission à arXiv ? Le `arxiv-latex-cleaner` de Google Research vous simplifie la tâche ! Cet outil supprime automatiquement les fichiers auxiliaires, les commentaires, le code et les images inutilisés, redimensionne les images, compresse les fichiers PDF et garantit que votre article respecte les limites de taille d’arXiv. Il prend en charge les règles de remplacement d’expressions régulières personnalisées et gère l’externalisation des images TikZ. Préparez votre article pour la soumission en quelques étapes !

Développement nettoyage de code

Rust Sans Panique : Rust Peut-il Remplacer C pour la Programmation Système Bas Niveau ?

2025-02-03

Cet article explore la faisabilité d'utiliser Rust pour remplacer C dans la programmation système bas niveau, en se concentrant spécifiquement sur une bibliothèque Protocol Buffers appelée upb. L'auteur doutait initialement de la capacité de Rust à égaler C en termes de performance et de taille de code, mais il a découvert une technique appelée "Rust Sans Panique". Cela implique d'éviter l'utilisation de `panic!()`. L'article approfondit les principes, les avantages et les défis de Rust Sans Panique, notamment la taille du code, les sorties irrécupérables et la surcharge d'exécution. Il montre comment écrire du code Rust Sans Panique en utilisant des techniques telles que l'utilisation de la bibliothèque libc, des options d'optimisation et `std::hint::assert_unchecked`, en soulignant la conservation des vérifications de dépassement de capacité en mode débogage pour des vérifications de cohérence supplémentaires. Bien que cette technique exige un travail méticuleux et puisse nécessiter d'éviter la majeure partie de la bibliothèque standard, elle promet d'offrir les performances et la taille de code d'une bibliothèque C tout en conservant les garanties de sécurité de Rust.

Développement Programmation Système

Mailspring : un client de messagerie open source plus rapide et plus léger

2025-02-03
Mailspring : un client de messagerie open source plus rapide et plus léger

Mailspring est une nouvelle version de Nylas Mail maintenue par l'un des auteurs originaux. Il est plus rapide, plus léger et disponible dès aujourd'hui ! Il remplace le code de synchronisation JavaScript de Nylas Mail par un nouveau moteur de synchronisation C++ basé sur Mailcore2. Il utilise environ la moitié de la RAM et du processeur de Nylas Mail et reste inactif avec presque aucune « activation du processeur », ce qui se traduit par une excellente durée de vie de la batterie. Il dispose également d'un compositeur entièrement repensé et d'autres nouvelles fonctionnalités exceptionnelles. L'interface utilisateur de Mailspring est open source (GPLv3) et écrite en TypeScript avec Electron et React ; elle est basée sur une architecture de plugins et a été conçue pour être facile à étendre. Le moteur de synchronisation de Mailspring est généré par l'application Electron et s'exécute localement sur votre ordinateur. Il est open source (GPLv3) et écrit en C++ et C. Cependant, pour plus de commodité, lors de la configuration de votre environnement de développement, Mailspring utilise la dernière version du moteur de synchronisation que nous avons fournie pour votre plateforme, afin que vous n'ayez pas besoin d'extraire les sources ni d'installer ses dépendances de compilation.

La build Insider de Windows 11 obtient un bouton Copilot dans Paint

2025-02-03
La build Insider de Windows 11 obtient un bouton Copilot dans Paint

Une nouvelle build Insider de Windows 11 (26120.3073) introduit un bouton Copilot dans Microsoft Paint, simplifiant l'accès aux fonctionnalités d'IA générative telles que Cocreator, Image Creator, Generative Erase et Remove Background. Ces fonctionnalités existaient déjà, mais le bouton améliore le flux de travail. La mise à jour inclut également la recherche de photos dans le cloud (pour les PC Copilot+ seulement) et des corrections de bugs pour la barre des tâches, la zone de notification et l'Explorateur de fichiers. Il s'agit d'une préversion pour les Insiders ; la disponibilité pour la version stable de Windows 11 n'a pas été annoncée.

Développement

Mon nom de famille est 'Null', et ça casse Internet

2025-02-03
Mon nom de famille est 'Null', et ça casse Internet

Le nom de famille de l'auteur est "Null", un mot réservé dans de nombreux langages de programmation. Ce détail apparemment anodin cause des problèmes importants, des formulaires de sites web qui échouent à l'envoi aux adresses électroniques rejetées. Même lorsque les systèmes acceptent "Null", des erreurs inattendues surviennent. Les solutions de contournement, comme l'ajout d'un point ou l'utilisation d'alias, sont des correctifs temporaires. Cette histoire humoristique met en évidence des problèmes courants de développement de logiciels et l'impuissance des grandes entreprises à les résoudre efficacement. Les difficultés de l'auteur avec le système de messagerie du Bank of America, qui échoue constamment à gérer son nom, servent d'excellent exemple.

Développement

SCQA : Un cadre pour des histoires captivantes

2025-02-03
SCQA : Un cadre pour des histoires captivantes

SCQA est un cadre pour structurer l'information en utilisant Situation, Complication, Question et Réponse pour créer des récits clairs et engageants. L'article utilise la ludification en physiothérapie comme exemple, montrant comment SCQA transforme un processus monotone en une histoire captivante, améliorant l'engagement du patient. Applicable dans divers domaines — affaires, politiques, sciences — et médias — e-mails, présentations, livres, blogs —, SCQA améliore la communication et la clarté.

Extension du 10ème problème de Hilbert : l’indécidabilité prouvée pour des anneaux plus vastes

2025-02-03
Extension du 10ème problème de Hilbert : l’indécidabilité prouvée pour des anneaux plus vastes

Des mathématiciens ont résolu une extension majeure du 10ème problème de Hilbert, prouvant que déterminer si des équations diophantiennes ont des solutions est indécidable pour une vaste classe d'anneaux numériques. S'appuyant sur la preuve de Yuri Matiyasevich de 1970 pour les solutions entières, le travail utilise des courbes elliptiques et des torsions quadratiques pour surmonter les limites des approches précédentes avec des solutions non entières. Cette percée approfondit non seulement notre compréhension des limites de la calculabilité, mais fournit également de nouveaux outils pour la recherche mathématique.

Évaluation de la récupération de code : défis et approche de Voyage AI

2025-02-03
Évaluation de la récupération de code : défis et approche de Voyage AI

Les assistants de codage modernes reposent fortement sur la récupération de code, mais les méthodes d'évaluation existantes sont insuffisantes. La recherche de Voyage AI met en évidence des problèmes avec les ensembles de données actuels, notamment des étiquettes bruitées, l'absence d'évaluation du raisonnement algorithmique profond et la contamination des données, ce qui conduit à des évaluations de modèles non fiables. Pour y remédier, Voyage AI propose deux méthodes pour créer des ensembles de données de récupération de code de haute qualité : réutiliser les ensembles de données de questions-réponses et exploiter les référentiels et les problèmes/tickets GitHub. Voyage AI a également construit sa propre suite de tests de référence interne, englobant plusieurs langages de programmation, divers ensembles de données de questions-réponses et des benchmarks spécifiques à un domaine, évaluant plusieurs modèles d'intégration de code. Voyage-code-3 s'est avéré être le modèle le plus performant.

La sagesse d'un développeur senior : éviter les réécritures et coder efficacement

2025-02-03

Un développeur senior partage sa philosophie de développement logiciel, en soulignant les pièges de la réécriture de code à partir de zéro. Il met en évidence le fait que lorsqu'une réécriture semble attrayante, des erreurs évitables ont déjà été commises, telles que l'accumulation de dette technique et l'augmentation de la complexité du code. Les conseils incluent l'alternance entre les phases d'expansion (nouvelles fonctionnalités) et de consolidation, la budgétisation d'un temps suffisant pour le polissage et les tests, et l'automatisation des meilleures pratiques. L'importance de considérer les cas limites et les données pathologiques est soulignée, ainsi que l'écriture de code facilement testable et dont la correction est évidente.

Développement

Le crate `time` de Rust gagne 57,5% de vitesse grâce à un algorithme réécrit

2025-02-03

Après cinq ans de maintenance du crate `time` de Rust, l'auteur a entrepris une optimisation significative des performances. En refaisant l'algorithme `Date::to_calendar_date`, en utilisant des fonctions affines euclidiennes et une arithmétique entière astucieuse, l'auteur a évité les opérations à virgule flottante et les branchements, ce qui a entraîné une amélioration des performances de 57,5%. Le nouvel algorithme est significativement plus rapide non seulement pour le calcul de la date et du mois ensemble, mais aussi pour leur calcul séparé. Ce fut une tâche non triviale, mais l'auteur estime que les gains de performances valent l'effort.

Développement

httptap : Surveillance des requêtes HTTP/HTTPS sous Linux

2025-02-03
httptap : Surveillance des requêtes HTTP/HTTPS sous Linux

httptap est un outil en ligne de commande pour Linux qui surveille les requêtes HTTP et HTTPS effectuées par n'importe quel programme sans nécessiter de privilèges root. Il y parvient en exécutant le programme cible dans un espace de noms réseau isolé et en interceptant son trafic réseau. Écrit en Go, httptap est indépendant et facilement exécutable. Il affiche des informations détaillées sur la requête, y compris les URL, les codes d'état HTTP, les corps de requête et les corps de réponse, et prend en charge l'exportation de données vers des fichiers HAR. httptap prend également en charge le DoH (DNS sur HTTPS) et gère les redirections HTTP.

Développement

Améliorez les performances d'écriture sur HDD avec dm-writecache de Linux

2025-02-03
Améliorez les performances d'écriture sur HDD avec dm-writecache de Linux

Cet article explore le module du noyau Linux dm-writecache, qui utilise un SSD NVMe comme cache d'écriture pour les HDD plus lents, améliorant considérablement les performances d'écriture aléatoire. L'auteur démontre une augmentation de vitesse de dizaines de fois grâce à des expériences comparant les vitesses d'écriture aléatoire avec et sans dm-writecache. L'article couvre également d'autres méthodes et outils de mise en cache tels que bcache et ReadyBoost, en détaillant la configuration de dm-writecache à l'aide de LVM2 et de l'utilitaire dmsetup pour ceux qui n'ont pas LVM2. Enfin, il résume les gains de performance significatifs obtenus avec dm-writecache et suggère d'utiliser l'espace NVMe restant pour mettre en cache d'autres disques plus lents.

Développement

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

2025-02-03
arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

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

Développement

Ingénierie inverse du format typedstream d'Apple : À l'intérieur d'imessage-exporter

2025-02-03

Cet article détaille le processus d'ingénierie inverse du protocole de sérialisation binaire propriétaire d'Apple, typedstream, entrepris par le projet imessage-exporter. Typedstream, utilisé pour stocker les données iMessage, n'est pas documenté et ne fait pas partie des API publiques d'Apple. En analysant les données BLOB dans la base de données iMessage, l'auteur a identifié des modèles dans le format typedstream, tels que 0x84 marquant le début d'un bloc de données avec l'octet suivant indiquant la longueur, et 0x86 signalant la fin d'un bloc. À l'aide de ces modèles, l'auteur a réussi à désérialiser les données typedstream, obtenant ainsi un accès multiplateforme aux données iMessage.

Développement sérialisation binaire

Décorateurs JIT Python : trois stratégies d’implémentation

2025-02-03

Cet article explore le modèle populaire de décorateur JIT en Python, notamment son utilisation dans les bibliothèques JAX et Triton. L’auteur implémente trois décorateurs JIT à partir de zéro à l’aide d’un exemple simplifié : basé sur l’AST, basé sur le bytecode et basé sur le traçage. L’approche basée sur l’AST manipule directement l’arbre de syntaxe abstraite ; l’approche basée sur le bytecode utilise l’interpréteur de bytecode Python ; et l’approche basée sur le traçage construit un IR d’expression en traçant l’exécution de la fonction au moment de l’exécution. L’article détaille les avantages et les inconvénients de chaque approche et utilise JAX et Numba comme exemples pour illustrer leurs stratégies dans les applications du monde réel.

Développement

Création d'une VM WebAssembly en C : Rétrospective d'un projet secondaire de six mois

2025-02-03

Pendant six mois, l'auteur a consacré son temps libre à la création d'une machine virtuelle WebAssembly en C, nommée Semblance. Ce projet a permis de sortir du cycle des projets secondaires de courte durée et a permis une immersion profonde dans la spécification principale de WebAssembly. L'article détaille l'architecture, couvrant le décodage des modules, la résolution des importations, l'instanciation des modules et l'exécution des instructions. L'auteur partage les défis et les apprentissages, aboutissant à l'exécution réussie d'un programme « Hello, World ! ». Ce projet a non seulement amélioré les compétences de l'auteur, mais a également fourni une base solide pour de futures contributions à des environnements d'exécution de niveau industriel.

Développement

Contention de thread Ruby : ce n’est pas une bataille rangée

2025-02-03

Pendant longtemps, j’ai mal compris la « contention de thread » en Ruby. Ce n’est pas une lutte chaotique ; au contraire, les threads Ruby font la queue poliment pour le Global VM Lock (GVL). Chaque thread obtient le GVL, exécute le code, puis le libère ou est préempté après un certain temps (le quantum du thread, par défaut 100 ms). Cela se produit lorsqu’un thread effectue une E/S ou s’exécute plus longtemps que son quantum. Comprendre cela est crucial pour optimiser les applications multithreadées, notamment pour éviter que les threads liés au processeur ne bloquent les threads liés à l’E/S, ce qui entraîne une augmentation de la latence de queue. Réduire la priorité des threads liés au processeur ou réduire le quantum du thread peut aider, mais l’intervalle minimum est de 10 ms.

Développement

Chaîne YouTube Supprimée : Un Développeur Indépendant Victime d'une Erreur Algorithmique

2025-02-03
Chaîne YouTube Supprimée : Un Développeur Indépendant Victime d'une Erreur Algorithmique

La chaîne YouTube du développeur indépendant Sinevibes a été supprimée en raison de violations présumées des "politiques de spam et de pratiques trompeuses". Sinevibes affirme n'avoir publié que des démonstrations de ses propres produits originaux et est déconcerté par cette suppression. Cet incident met en lumière l'impact des erreurs de jugement algorithmiques sur les créateurs de contenu et suscite un débat sur les pratiques de modération des plateformes.

Développement

Google abandonne le projet Dart Macros : l’importance de la concentration

2025-02-03
Google abandonne le projet Dart Macros : l’importance de la concentration

L'équipe Google Dart a annoncé l'abandon du projet Macros, qui visait à simplifier l'écriture de code répétitif dans Flutter et Dart. En raison d'objectifs de performance non atteints et d'un retour sur investissement insuffisant après des années de prototypage, Google divise Macros en fonctionnalités plus petites. L'auteur, ancien chef des équipes Flutter et Dart, relie cette décision à la philosophie de Steve Jobs consistant à dire « non » pour faire de la place à « oui », soulignant l'importance de la concentration. Il se montre optimiste quant à l'avenir de l'équipe Dart.

Développement

Les développeurs d'Ubuntu migrent vers Matrix pour la communication en temps réel

2025-02-03
Les développeurs d'Ubuntu migrent vers Matrix pour la communication en temps réel

L'équipe de développement d'Ubuntu a annoncé le passage d'IRC à Matrix comme plateforme principale de communication en temps réel à partir de mars 2025. Ce changement vise à rationaliser la communication, éviter la fragmentation et attirer de nouveaux développeurs. Bien qu'IRC reste populaire, ses fonctionnalités limitées sont moins attrayantes pour les nouveaux contributeurs qui préfèrent des plateformes plus riches comme Matrix, offrant des fonctionnalités telles que l'historique des discussions, la recherche et la messagerie hors ligne. De nombreuses équipes Ubuntu et projets open source utilisent déjà Matrix, ce qui en fait un choix naturel. Cela n'affecte que la communication interne des développeurs ; les utilisateurs finaux ne sont pas affectés.

Développement

Exécution durable légère : la bibliothèque open source DBOS Transact

2025-02-03
Exécution durable légère : la bibliothèque open source DBOS Transact

L'exécution durable traditionnelle repose sur des orchestrateurs externes tels que AWS Step Functions, ce qui complexifie le développement et le déploiement. DBOS Transact est une bibliothèque open source légère qui intègre l'exécution durable au sein du programme lui-même, éliminant ainsi le besoin d'orchestrateurs externes. Elle assure l'exécution durable en persistant l'état d'exécution du programme dans une base de données Postgres, permettant une reprise automatique au point d'interruption même en cas de plantage ou de redémarrage du programme. DBOS Transact offre également des fonctionnalités supplémentaires telles que la mise en veille durable, la messagerie durable et les files d'attente durables, simplifiant ainsi le développement de programmes fiables et avec état.

Développement

Sécuriser les secrets dans les déploiements Docker Compose modernes

2025-02-03
Sécuriser les secrets dans les déploiements Docker Compose modernes

Ce guide explore les meilleures pratiques pour gérer les secrets dans les déploiements Docker Compose, en passant d'approches basiques à des configurations plus sécurisées. Il souligne les risques liés à l'utilisation de variables d'environnement et de fichiers .env, montrant comment les secrets peuvent être exposés. L'article détaille trois méthodes : utiliser des variables d'environnement montées comme des fichiers, des secrets basés sur des fichiers montés depuis l'hôte et exploiter la fonctionnalité de secrets de Docker Compose avec un contrôle d'accès granulaire. Il souligne l'importance d'une gestion sécurisée des fichiers, en évitant le codage en dur des secrets et en utilisant des outils comme Phase pour simplifier le processus, dans le but final d'améliorer la sécurité et de prévenir les incidents.

Développement Gestion des Secrets

Création d'un effet 3D rétro pour sites web avec shaders : Dithering, quantification des couleurs et pixellisation

2025-02-03
Création d'un effet 3D rétro pour sites web avec shaders : Dithering, quantification des couleurs et pixellisation

L'auteur a passé plusieurs mois à construire son site web personnel, intégrant du travail 3D pour mettre en valeur ses compétences en shaders et WebGL. L'article explore le rôle crucial du post-traitement dans l'amélioration des visuels des scènes 3D, en se concentrant sur la création d'effets rétro. Il couvre diverses techniques de dithering (bruit blanc, ordonné et bruit bleu), en expliquant leur implémentation à l'aide de shaders. Des techniques de quantification des couleurs sont également détaillées, permettant des palettes personnalisées. L'article aboutit à un effet rétro 3D impressionnant pour les sites web, combinant pixellisation et émulation d'écran CRT.

Développement Post-traitement

NSDI '24 : Autothrottle : Une approche bi-niveau pratique pour la gestion des ressources des microservices ciblés par les SLO

2025-02-03

USENIX s'engage pour l'accès ouvert, rendant les recherches de ses événements librement accessibles. Les articles, actes et toutes vidéos/audios/diaporama ultérieurs sont ouverts à tous après l'événement. Cela inclut l'article NSDI '24, "Autothrottle : Une approche bi-niveau pratique pour la gestion des ressources des microservices ciblés par les SLO", par Wang et al., présentant une approche pratique pour gérer les ressources des microservices ciblés par les SLO. L'article, la vidéo et les diapositives sont maintenant accessibles publiquement.

Développement

Variables globales : pas si mauvaises que ça

2025-02-03

Cet article utilise un exemple simple de compteur pour démontrer comment éviter les variables globales peut conduire inopinément à des bogues. L'auteur soutient que le problème ne réside pas dans les variables globales elles-mêmes, mais dans la nature cachée de l'accès aux données – « action à distance ». Différents types de variables sont analysés, et l'article explore des manières d'utiliser les variables globales de manière appropriée dans des scénarios spécifiques, comme les encapsuler dans des fonctions ou utiliser des types qui n'autorisent que des opérations d'ajout, évitant ainsi les problèmes causés par « action à distance ».

HYTRADBOI : La conférence asynchrone sur les bases de données et les langages de programmation

2025-02-02

HYTRADBOI est une conférence en ligne unique explorant l'intersection entre les bases de données et les langages de programmation. Toutes les présentations sont préenregistrées et sous-titrées, diffusées de manière asynchrone via une salle de chat persistante. Cela permet aux participants de se joindre de n'importe où et à n'importe quel moment, favorisant des discussions enrichissantes. Les participants apprécient son format asynchrone, la profondeur des présentations et la nature avant-gardiste du contenu, ce qui en fait un événement hautement recommandé.

Développement conférence asynchrone

Analyseur de données Garmin : maîtrisez vos données de fitness avec GarminDb

2025-02-02
Analyseur de données Garmin : maîtrisez vos données de fitness avec GarminDb

GarminDb est une suite puissante de scripts Python conçue pour analyser les données de santé de Garmin Connect et les stocker dans une base de données SQLite légère. Il télécharge et importe automatiquement les données de surveillance quotidienne (fréquence cardiaque, activité, montée/descente, stress et minutes d'intensité), le sommeil, le poids et les informations de fréquence cardiaque au repos. De plus, il résume les données en rapports quotidiens, hebdomadaires, mensuels et annuels et permet de créer des graphiques via la ligne de commande ou Jupyter Notebooks. Un système de plugins permet d'étendre facilement les types de données. En résumé, GarminDb est un outil complet et facile à utiliser pour gérer vos données Garmin, rendant l'analyse des données de santé plus efficace et pratique.

Développement

Engagement efficace des parties prenantes dans les projets agiles

2025-02-02

Cet article explore le rôle crucial de l'engagement des parties prenantes dans la gestion de projets agiles. Il souligne les défis liés au maintien d'une participation constante dans des environnements itératifs et rapides, notamment avec des exigences changeantes et des équipes géographiquement dispersées. L'article met l'accent sur l'importance d'outils tels que la cartographie des parties prenantes, les plateformes de collaboration numériques (Jira, Trello) et les cadres de priorisation (MoSCoW, Kano) pour favoriser une communication et un alignement efficaces. Les rôles clés des chefs de projet et des analystes d'affaires pour combler le fossé entre les parties prenantes et les équipes agiles sont également abordés, montrant comment un engagement réussi conduit à de meilleurs résultats de projet et renforce la valeur des méthodologies agiles. Des exemples concrets de Kaiser Permanente, Revolut et Atlassian illustrent l'application pratique de ces stratégies.

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

2025-02-02
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 d'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é d'arXiv ? En savoir plus sur arXivLabs.

Développement projet expérimental

mutool : Un couteau suisse pour la manipulation de PDF

2025-02-02

mutool, basé sur la bibliothèque MuPDF, est un puissant outil en ligne de commande offrant un large éventail de sous-commandes pour manipuler des fichiers PDF. De la conversion de pages en PNG et de l'extraction de texte à la fusion de plusieurs PDF et à l'extraction d'images et de polices intégrées, mutool gère une variété de tâches. C'est un outil polyvalent pour les conversions simples et les opérations PDF complexes.

1 2 170 171 172 174 176 177 178 214 215