Category: Développement

Le Body Doubling : Une Astuce de Productivité pour la Concentration et l'Accomplissement des Tâches

2025-03-29

Le body doubling est une technique de productivité qui gagne en popularité, notamment auprès des personnes atteintes de TDAH. Il consiste à travailler aux côtés d'une autre personne, physiquement ou virtuellement, pour améliorer la concentration et l'accomplissement des tâches. La présence du 'double corporel' agit comme un motivateur externe, réduisant les distractions et favorisant un sentiment de responsabilité. Bien que les études à long terme soient limitées, des preuves anecdotiques et des avis d'experts suggèrent son efficacité comme approche complémentaire aux médicaments et utile pour les personnes atteintes d'autres affections comme l'autisme ou l'anxiété.

Développement

RTABench : Un nouveau benchmark pour les applications d’analyse en temps réel

2025-03-29
RTABench : Un nouveau benchmark pour les applications d’analyse en temps réel

Les benchmarks d’analyse traditionnels négligent souvent les besoins des applications en temps réel, telles que la génération d’informations rapides et ciblées pour des utilisateurs, des appareils ou des transactions spécifiques. RTABench comble cette lacune en fournissant un benchmark qui reflète avec précision l’analyse en temps réel au sein des applications, en utilisant un schéma normalisé, des tailles de jeux de données réalistes et des requêtes qui correspondent aux modèles d’utilisation du monde réel. Il inclut 33 requêtes couvrant les requêtes d’événements bruts, le filtrage sélectif, les jointures de plusieurs tables et les requêtes pré-agrégées pour évaluer les performances de la base de données sur les schémas normalisés, le filtrage sélectif et les vues matérialisées incrémentales. RTABench prend en charge plusieurs bases de données et encourage les contributions de la communauté pour étendre la prise en charge de ses bases de données et les optimisations.

vramfs : transformez la VRAM de votre GPU en système de fichiers

2025-03-29
vramfs : transformez la VRAM de votre GPU en système de fichiers

vramfs est un utilitaire utilisant la bibliothèque FUSE pour créer un système de fichiers dans la VRAM de votre GPU. Similaire à un ramdisk, mais utilisant la RAM vidéo, il n'est pas destiné à une utilisation intensive, mais fonctionne étonnamment bien sur les GPU grand public avec 4 Go de VRAM ou plus. Le développeur a atteint des vitesses de lecture d'environ 2,4 Go/s et d'écriture de 2,0 Go/s, soit environ 1/3 d'un ramdisk. Il utilise OpenCL pour la gestion de la mémoire et FUSE pour un développement simplifié. Les améliorations futures visent à atteindre les limites de bande passante PCI-e.

Développement Système de fichiers

Apprenez la grammaire japonaise avec TypeScript : Présentation de Typed Japanese

2025-03-29
Apprenez la grammaire japonaise avec TypeScript : Présentation de Typed Japanese

Typed Japanese est une bibliothèque TypeScript de niveau type qui permet d'exprimer des phrases complètes en japonais à l'aide du système de types. Elle crée un langage spécifique à un domaine (DSL) basé sur les règles grammaticales japonaises, permettant d'écrire et de vérifier un langage naturel grammaticalement correct à l'aide du compilateur TypeScript. Le projet explore également un format intermédiaire pour l'IA dans l'apprentissage des langues, remplaçant potentiellement JSON par une représentation vérifiée par type pour une meilleure précision. Il prend en charge diverses conjugaisons de verbes et d'adjectifs, la construction de phrases et d'expressions, dans le but de créer un système de types pour apprendre et vérifier la grammaire japonaise. Bien qu'il en soit encore aux premiers stades et qu'il dépende de règles générées par LLM, il offre une approche unique de l'apprentissage des langues et de la vérification grammaticale.

Développement

Conversion de LaTeX en HTML accessible : une étude de cas

2025-03-29
Conversion de LaTeX en HTML accessible : une étude de cas

LaTeX, bien que parfait pour produire des documents de haute qualité, souffre de problèmes d'accessibilité en raison de sa sortie PDF. Cet article explore la conversion de LaTeX en HTML pour améliorer l'accessibilité. Il compare des alternatives à LaTeX (Pressbooks, PreTeXt, Markdown) et se concentre sur les outils de conversion LaTeXML et BookML. Une étude de cas détaillant la conversion d'un manuel ouvert de logique met en évidence les défis et les astuces, tels que la gestion des formules mathématiques, le texte alternatif pour les images et la compatibilité avec les lecteurs d'écran. L'expérience de l'auteur démontre le processus de création d'un manuel en ligne plus accessible, en équilibrant les besoins de diverses technologies d'assistance.

Développement

Microsoft corrige le contournement du compte Microsoft sur Windows 11

2025-03-29
Microsoft corrige le contournement du compte Microsoft sur Windows 11

La dernière version préliminaire du canal Dev de Windows 11 supprime le script bypassnro.cmd, qui permettait auparavant aux utilisateurs de contourner l'obligation de connexion avec un compte Microsoft. Microsoft affirme que ce changement améliore la sécurité et garantit que tous les utilisateurs se connectent avec un compte Microsoft lorsqu'ils sont en ligne. Cela causera des inconvénients aux utilisateurs qui préfèrent une configuration hors ligne ou des comptes locaux, bien que les comptes Microsoft offrent des avantages tels qu'un accès facile aux abonnements et la synchronisation des données. Les comptes locaux, cependant, réduisent les notifications et les offres supplémentaires.

Développement

La fin des discussions sur les microservices : un débat architectural inutile

2025-03-29
La fin des discussions sur les microservices : un débat architectural inutile

L'auteur raconte sa frustration face aux débats interminables sur les microservices lors d'une réunion d'examen de l'architecture. Il soutient que l'absence de définition claire, le détachement des objectifs commerciaux et la négligence des changements organisationnels rendent ces discussions improductives. Beaucoup de discussions sur les microservices concernent en réalité le désir d'une technologie de pointe plutôt que la résolution de problèmes réels. L'auteur propose d'abandonner les discussions abstraites sur les microservices et de se concentrer sur des défis concrets, tels que des déploiements de fonctionnalités plus rapides, une réduction du couplage et la résolution des goulots d'étranglement. Les microservices ne fonctionnent que lorsque la structure et les processus organisationnels les prennent en charge ; sinon, ils n'ajoutent que de la complexité.

Développement

Découverte d'exploitations critiques de contournement de l'espace de noms utilisateur d'Ubuntu

2025-03-29
Découverte d'exploitations critiques de contournement de l'espace de noms utilisateur d'Ubuntu

Des chercheurs de Qualys ont découvert trois contournements critiques de sécurité dans les restrictions d'espace de noms utilisateur non privilégiés d'Ubuntu 23.10 et 24.04. Ces contournements, exploitant l'outil aa-exec, le shell busybox et la technique LD_PRELOAD, permettent aux attaquants locaux de créer des espaces de noms utilisateur avec des privilèges administratifs complets, exploitant potentiellement des vulnérabilités du noyau. Canonical reconnaît ces failles comme des limitations de sa défense AppArmor, et non comme des vulnérabilités, et recommande des mesures d'amélioration de la sécurité telles que l'activation de kernel.apparmor_restrict_unprivileged_unconfined=1 pour atténuer les risques.

Développement

bknd : Un backend léger et complet pour simplifier le développement d'applications

2025-03-29
bknd : Un backend léger et complet pour simplifier le développement d'applications

bknd simplifie le développement d'applications en fournissant un backend entièrement fonctionnel pour la gestion de bases de données, l'authentification, les médias et les workflows. Construit sur des standards web, il est léger et déployable presque partout, y compris dans votre framework de choix. Plus besoin de déployer plusieurs services séparés ! Il offre une API REST, un SDK React et des éléments React pour les composants d'authentification et de médias, ainsi qu'une interface utilisateur d'administration facile à utiliser. Bien qu'il soit encore en développement actif (avant la v1.0.0), la compatibilité descendante totale n'est pas encore garantie.

Développement

Windows 11 Insider Preview Build 26200.5516 : Recherche sémantique améliorée et plus encore

2025-03-29
Windows 11 Insider Preview Build 26200.5516 : Recherche sémantique améliorée et plus encore

La dernière version préliminaire de Windows 11 Insider, la build 26200.5516, apporte de nombreuses améliorations au canal Dev. Le point fort est l’amélioration de la recherche Windows pour les PC Copilot+ équipés de processeurs AMD et Intel. Grâce à l’indexation sémantique, les utilisateurs peuvent désormais effectuer des recherches en langage naturel – par exemple, "pont au coucher du soleil" – pour trouver des documents, des photos et des paramètres, même hors ligne. Sont également inclus : une nouvelle fonction de récapitulatif vocal du Narrateur pour consulter et copier le contenu vocal ; une interface utilisateur améliorée pour les redémarrages inattendus ; le raccourci clavier Win+C et la fonction de pression pour parler pour Copilot ; des améliorations de Click to Do ; et des fonctionnalités de partage Windows améliorées. Plusieurs problèmes connus doivent être résolus dans les prochaines mises à jour.

L'extension Grammarly casse la mise en page du site web avec un conflit CSS

2025-03-29
L'extension Grammarly casse la mise en page du site web avec un conflit CSS

Un développeur web a découvert que l'extension de navigateur Grammarly cassait la mise en page de son site web. Grammarly injecte une feuille de style qui écrase les styles du site web, notamment en utilisant la même propriété personnalisée `--rem`, ce qui provoque un dysfonctionnement du système de typographie fluide du site web. L'auteur a corrigé le problème en utilisant un observateur de mutations et la propriété personnalisée `--🤡`, et a appelé Grammarly à améliorer la conception de son extension pour éviter les conflits avec les styles d'autres sites web.

Développement conflit CSS

Plongeon en profondeur : suivi de l’appel système `write()` dans OpenBSD

2025-03-29

Cet article explore en détail l’implémentation de bas niveau de l’appel système `write()` dans OpenBSD. En partant de l’appel `write()` dans l’espace utilisateur, il suit le parcours des données dans le noyau, détaillant le chemin complet de l’appel système jusqu’à l’écriture des données sur un disque dur NVMe. L’article révèle une chaîne d’appels de fonctions du noyau, notamment `mi_syscall`, `sys_write`, `dofilewritev`, `vn_write`, `ffs_write`, `uiomove`, `bdwrite`, `syncer`, `bwrite`, `ufs_strategy`, `spec_strategy`, `sdstrategy` et enfin le pilote NVMe. Il illustre la transformation et la transmission des données à travers différents niveaux d’abstraction, en soulignant des détails techniques clés tels que les mécanismes de mise en cache et les transferts DMA.

Développement Appel système

Construction d'un moteur de recherche crypté multiplateforme : relever le défi du stockage dans le navigateur

2025-03-29
Construction d'un moteur de recherche crypté multiplateforme : relever le défi du stockage dans le navigateur

Cet article aborde le premier obstacle à la construction d'un moteur de recherche crypté multiplateforme : le stockage de données sécurisé et efficace côté navigateur. L'auteur compare LocalStorage, IndexedDB et l'API du système de fichiers, et choisit finalement l'API du système de fichiers pour son interface de type système de fichiers, ses meilleures performances et sa cohérence avec les autres plateformes. L'article détaille l'utilisation de Rust et de web-sys pour interagir avec l'API du système de fichiers et implémente une couche de cryptage AES-GCM pour la sécurité. Enfin, un trait unifié `File` est créé pour gérer les fichiers cryptés et non cryptés.

Suivi des modifications de code avec les hooks Git : une approche basée sur les données pour le développement

2025-03-29

Cet article présente une méthode de suivi du temps de modification du code à l’aide des hooks Git pour fournir une mesure plus objective de l’efficacité du développement. En enregistrant le temps entre la création et la fusion d’une branche, en excluant le temps de réflexion, il offre un reflet plus clair du temps de codage réel. Cette approche aide les équipes à identifier et à résoudre les inefficacités de la maintenance du code, telles que des temps de maintenance excessivement longs pour certains composants, ou des gains d’efficacité grâce aux outils d’IA. L’objectif final est d’optimiser le processus de développement, de réduire l’entropie et d’améliorer la productivité de l’équipe grâce à des informations basées sur les données plutôt que sur des estimations subjectives.

Serveur de Langage Postgres : Une Suite d'Outils SQL Puissante pour les Développeurs

2025-03-29
Serveur de Langage Postgres : Une Suite d'Outils SQL Puissante pour les Développeurs

Ce projet propose une suite d'outils complète pour le développement Postgres, construite sur l'analyseur propre à Postgres (libpg_query) pour une compatibilité syntaxique garantie à 100 %. Utilisant une architecture client-serveur avec une conception indépendante du transport, il fournit un accès via LSP, CLI, API HTTP et WebAssembly. Les fonctionnalités actuelles incluent la complétion automatique, la mise en évidence de la syntaxe, la vérification de type (à l'aide des informations EXPLAIN) et un linter. Le développement futur se concentre sur l'amélioration de ces fonctionnalités principales et la construction d'une infrastructure robuste. Les contributions sont les bienvenues !

Développement Outils pour Développeurs

Au-delà de la POO : L’évolution du sous-typage dans les langages de programmation

2025-03-29

Cet article explore le rôle crucial du sous-typage dans la conception des langages de programmation. L’auteur, s’appuyant sur son expérience dans le développement de plusieurs langages de programmation, explique que le sous-typage ne se limite pas à l’héritage des classes en programmation orientée objet, mais est une notion beaucoup plus fondamentale : le type X est un sous-type du type Y si une valeur de type X peut être utilisée partout où une valeur de type Y est attendue. L’article explique clairement pourquoi le sous-typage est crucial même dans les langages de bas niveau orientés performances, permettant au compilateur de vérifier statiquement les valeurs nulles, les alias et d’autres problèmes, améliorant ainsi la fiabilité du code et, finalement, stimulant l’évolution des langages de programmation.

Développement sous-typage

Machine virtuelle BEAM d'Elixir : Attente active – Optimisation ou gaspillage de ressources ?

2025-03-29

Des tests comparatifs entre Go, Elixir et Node.js ont révélé qu'Elixir (sur la VM BEAM) présentait une utilisation élevée du processeur malgré une excellente réactivité. Le coupable ? L'attente active, une optimisation de BEAM qui maximise la réactivité. Bien que cela conduise à une utilisation du processeur trompeuse rapportée par le système d'exploitation, l'activation de l'attente active est bénéfique pour les charges de travail HTTP sur du matériel dédié. Cependant, il est recommandé de la désactiver sur les systèmes partageant des noyaux avec d'autres logiciels ou les instances de performance à rafales dans le cloud afin d'éviter d'impacter d'autres processus. Les tests n'ont montré aucune différence de performance significative avec l'attente active désactivée pour les requêtes HTTP.

Développement Attente active

arXivLabs : Projets expérimentaux en collaboration avec la communauté

2025-03-29
arXivLabs : Projets expérimentaux en collaboration avec 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 travaillant 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 apportera une valeur ajoutée à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Tests sans Mocks : une approche novatrice des tests unitaires

2025-03-29

Cet article présente une approche novatrice des tests unitaires qui élimine le besoin de mocks et de spies, pour des tests rapides, fiables et faciles à maintenir. L’idée principale consiste à combiner les tests basés sur l’état avec une nouvelle technique d’infrastructure appelée « Nullables ». Les Nullables ne sont pas des doubles de test ; il s’agit de code de production avec un interrupteur « off », permettant aux tests de s’exécuter sans dépendre de systèmes externes ou de l’état. Bien qu’elle nécessite des modifications du code de production, cette approche évite de nombreux inconvénients des méthodes traditionnelles, tels que les tests instables et la refactoring difficile, et offre des gains de performance significatifs. L’article explique en détail les modèles et les techniques impliqués, notamment les tests étroits, les tests basés sur l’état et les tests sociables superposés, en fournissant de nombreux exemples de code et divers cas d’utilisation, ce qui en fait un outil idéal pour les développeurs souhaitant apprendre et mettre en œuvre cette approche.

Développement

Auto-héberger un serveur TURN open source presque gratuit sur le cloud Oracle

2025-03-28
Auto-héberger un serveur TURN open source presque gratuit sur le cloud Oracle

Ce guide détaille la configuration d'un serveur TURN open source quasiment gratuit sur la couche gratuite d'Oracle Cloud, offrant une alternative aux implémentations WebRTC reposant sur des services tiers. Il explique la création de sous-réseaux, de listes de sécurité, de configurations d'instances, l'installation de Nginx, Certbot, d'un serveur PeerJS et d'un serveur Coturn. Le guide couvre la configuration des règles iptables et l'utilisation de coturn-credential-api pour l'authentification, offrant un contrôle total sur la communication WebRTC et améliorant la confidentialité et la sécurité en évitant la dépendance à des grands fournisseurs comme Google.

Développement serveur TURN cloud Oracle

Swiftly 1.0 : Rationalisation de la gestion de la chaîne d’outils Swift

2025-03-28
Swiftly 1.0 : Rationalisation de la gestion de la chaîne d’outils Swift

Swiftly 1.0 est officiellement lancé ! Ce gestionnaire de versions Swift simplifie l’installation, la gestion et la mise à jour de votre chaîne d’outils Swift. Il prend en charge macOS et diverses distributions Linux, permettant aux développeurs d’installer facilement différentes versions de Swift et d’utiliser Swift en dehors de Xcode. Écrit en Swift et auto-mis à jour, Swiftly prend en charge les versions stables, les versions instantanées nocturnes et les versions antérieures, permettant de basculer facilement entre elles. Un fichier `.swift-version` facilite la cohérence des versions au sein de l’équipe. Swiftly rend le développement Swift plus pratique et efficace.

Multiplication de matrices FP32 optimisée sur GPU AMD RDNA3 : Surpasse rocBLAS de 60 %

2025-03-28
Multiplication de matrices FP32 optimisée sur GPU AMD RDNA3 : Surpasse rocBLAS de 60 %

Cet article détaille le processus d’optimisation de la création d’un noyau de multiplication de matrices FP32 pour les GPU AMD RDNA3, surpassant rocBLAS de 60 %. L’auteur affine itérativement huit noyaux, en commençant par une implémentation naïve et en progressant vers des optimisations au niveau de l’ISA. Les techniques incluent le pavage LDS, le pavage des registres, la double mise en mémoire tampon de la mémoire globale, l’optimisation de l’utilisation de LDS et, enfin, l’optimisation de l’utilisation de VALU au niveau de l’ISA et le déroulement des boucles. Le noyau final surpasse rocBLAS, atteignant près de 50 TFLOPS.

La Fondation FreeBSD fournit des ordinateurs portables Framework pour améliorer l'expérience utilisateur

2025-03-28

La Fondation FreeBSD a fourni des ordinateurs portables Framework à des développeurs pour améliorer l'expérience FreeBSD sur les ordinateurs portables. Un développeur a documenté son processus d'installation et de configuration de FreeBSD 14.2, y compris l'installation du système d'exploitation, la configuration des pilotes graphiques et les défis rencontrés, tels que l'installation de la lunette d'écran et les problèmes de compatibilité avec le bureau Wayland. Bien que l'exécution de KDE Plasma 6 sur Wayland ait présenté des obstacles, cela fournit des informations précieuses pour améliorer l'expérience de bureau FreeBSD.

SignalBot : Sécurité, fonctionnalités et utilisation gratuite

2025-03-28

SignalBot, un bot de notification gratuit basé sur Signal, utilise des mesures de sécurité robustes et ne stocke pas les messages ni les métadonnées ; cependant, l’utilisation de données sensibles est déconseillée. Il offre une API webhook générique prenant en charge le texte brut et les emojis (la prise en charge de Markdown arrive bientôt) pour les notifications individuelles ou de groupe. Besoin de formats de notification personnalisés ou d’intégrations spécifiques ? Contactez le développeur !

Développement bot de notification

Hexi : Une bibliothèque C++23 légère pour la gestion sécurisée des données binaires

2025-03-28
Hexi : Une bibliothèque C++23 légère pour la gestion sécurisée des données binaires

Hexi est une bibliothèque C++23 légère, uniquement en en-tête, pour la gestion sécurisée des données binaires provenant de sources arbitraires (principalement des données réseau). Elle se situe entre la copie manuelle des octets à partir des tampons réseau et les bibliothèques de sérialisation complètes. Conçue pour la facilité d'utilisation, la sécurité lors du traitement des données non fiables, la flexibilité et une surcharge minimale, Hexi prend en charge les conteneurs personnalisés (y compris les conteneurs non contigus), la gestion des exceptions et la vérification des limites. Des fonctionnalités supplémentaires incluent des types de tampons pour les fichiers binaires, des tampons statiques/dynamiques et un allocateur de blocs de thread local.

Analyse des goulots d'étranglement d'E/S disque dans les pipelines CI de GitHub

2025-03-28
Analyse des goulots d'étranglement d'E/S disque dans les pipelines CI de GitHub

Cet article examine les goulots d'étranglement d'E/S disque souvent négligés dans les pipelines CI de GitHub. À l'aide d'outils tels qu'iostat et fio, l'auteur surveille et teste les performances du disque sur différents runners, découvrant des limitations de bande passante sur le runner ubuntu-22.04 par défaut qui entravent l'installation des dépendances. L'analyse approfondit l'impact du téléchargement du cache, de l'extraction et de nombreux petits fichiers sur l'E/S disque. L'article recommande d'utiliser fio pour les tests de référence et la comparaison des performances du disque de chaque runner, soulignant finalement le prochain Ultra Runner de Depot, promettant des améliorations significatives des performances d'E/S disque.

Développement E/S disque

Xee : Un moteur d'exécution XML moderne en Rust

2025-03-28

L'auteur a passé deux ans à développer Xee, un moteur d'exécution XML implémenté en Rust, prenant en charge les versions modernes de XPath et XSLT. Plus qu'une simple bibliothèque, Xee est une implémentation complète de langage de programmation, avec un outil en ligne de commande et une bibliothèque Rust, visant à revitaliser la technologie XML vieillissante. L'article détaille l'architecture, l'implémentation de Xee et l'histoire et l'état actuel du XML, avec un appel à l'action pour que les développeurs contribuent.

Développement

Liaison statique d'exécutables Go avec CGO et Zig

2025-03-28

Cet article explique comment créer un exécutable Go statiquement lié utilisant des dépendances CGO via Zig. L'auteur crée une bibliothèque statique Zig, puis écrit un simple programme Go pour appeler une fonction à l'intérieur. En utilisant des drapeaux spécifiques `go build` et le système de build de Zig, un exécutable statiquement lié, sans dépendances de bibliothèques dynamiques, est créé avec succès, améliorant la portabilité et la sécurité.

Développement liaison statique

Compilation de Node.js avec clang-cl sous Windows : Une réussite

2025-03-28

L'auteur a récemment réussi à compiler Node.js avec clang-cl sous Windows, en surmontant plusieurs difficultés de compilation. L'article détaille le processus, notamment l'installation des composants Visual Studio nécessaires (compilateur C++ Clang et support MSBuild pour LLVM), la configuration de ccache pour des compilations plus rapides, et les étapes finales de compilation. L'auteur partage des conseils de dépannage, comme la réinstallation des composants Visual Studio et la configuration correcte du chemin d'accès à ccache. Ceci fournit un guide précieux aux utilisateurs Windows souhaitant compiler Node.js avec clang-cl, offrant une alternative au processus de compilation traditionnel MSVC.

Développement

Décomposition des factorielles en grands facteurs : progrès sur une vieille conjecture

2025-03-28
Décomposition des factorielles en grands facteurs : progrès sur une vieille conjecture

Un nouvel article étudie le problème de la factorisation d'une factorielle en facteurs aussi grands que possible. Erdős et d'autres ont proposé une conjecture à ce sujet, mais la preuve a été perdue. Cet article, utilisant des applications intelligentes du théorème des nombres premiers et une factorisation approximative, fournit de nouvelles bornes supérieures et inférieures, résolvant partiellement ce problème de longue date et offrant de nouvelles voies pour résoudre complètement les conjectures restantes.

Développement combinatoire
1 2 126 127 128 130 132 133 134 214 215