Category: Développement

Rails en 2025 : l’expérience de Lago pour rester fidèle à ce qu’il connaît

2025-08-20
Rails en 2025 : l’expérience de Lago pour rester fidèle à ce qu’il connaît

Lago partage son expérience de la construction de son API avec Ruby on Rails. Malgré l’essor de Python, Go et JS, ils sont restés fidèles à Rails, privilégiant sa rapidité de livraison de produit. Ils abordent les problèmes d’évolutivité, en arguant qu’il s’agit d’un problème d’architecture et d’exploitation, et non d’une limitation du framework. Avec une conception et une optimisation appropriées, Rails gère des millions de requêtes d’API. L’article reconnaît également les faiblesses de Rails — performances, concurrence et « magie » — et comment ils utilisent Go et Rust pour les compenser. En fin de compte, ils soutiennent que le choix du langage dépend de la rapidité de livraison d’un excellent produit, et Rails correspond aux besoins de leur équipe.

Développement Pile technologique

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

2025-08-20
arXivLabs : Projets expérimentaux en collaboration avec 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 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

Développez plus vite et mieux : Développement parallèle assisté par IA avec Claude Code

2025-08-20
Développez plus vite et mieux : Développement parallèle assisté par IA avec Claude Code

Claude Code PM révolutionne le développement logiciel en combinant le développement piloté par les spécifications, les issues GitHub, les worktrees Git et plusieurs agents IA parallèles. Il s'attaque aux problèmes courants de collaboration d'équipe : changement de contexte, conflits de fusion, dérive des exigences et progrès invisible. Le système transforme les PRD en épopées, les épopées en issues GitHub et les issues en code de production avec une traçabilité complète. Plusieurs instances de Claude fonctionnent simultanément, permettant une véritable collaboration d'équipe et des transferts humains-IA transparents. Le résultat ? Une vitesse accrue, moins de bogues et un flux de travail considérablement amélioré.

Tidewave Web : Agent de codage IA dans le navigateur pour Rails et Phoenix

2025-08-20

Dashbit présente Tidewave Web, un agent de codage IA qui s'exécute directement dans le navigateur en même temps que vos applications web Rails et Phoenix. Il possède une connaissance complète du contexte de la page et du code, éliminant ainsi le besoin de passer constamment d'un outil à un autre. Tidewave accède directement à l'état de votre IU, exécute du code, interroge les bases de données, surveille les journaux, etc. Les utilisateurs peuvent suggérer des améliorations via un inspecteur de clic, et Tidewave crée automatiquement des fonctionnalités et les teste dans le navigateur. Il prend actuellement en charge Rails et Phoenix, et une prise en charge future de React, Django et d'autres frameworks est prévue. Tidewave change le paradigme traditionnel de l'assistance au codage IA en créant un contexte partagé entre le développeur, l'agent et l'application web, ce qui améliore l'efficacité du développement.

Développement

Contre les REPL Lisp personnalisés : adoptez les REPL natifs et les outils pratiques

2025-08-20

L'auteur critique les REPL Lisp personnalisés (comme CIEL), affirmant qu'ils sacrifient la puissance et la capacité de personnalisation des REPL natifs, tels que les commandes natives du REPL, les débogueurs d'implémentation et la possibilité de personnaliser à l'aide des API d'implémentation. L'article détaille comment améliorer les REPL natifs à l'aide d'outils tels que la bibliothèque Trivial Toplevel et rlwrap, couvrant les invites personnalisées, les commandes, les macros de lecteur et la gestion des dépendances avec ASDF. L'auteur préconise l'utilisation de REPL natifs associés à des outils pratiques pour un environnement de développement Lisp hautement efficace et personnalisé, plutôt que de dépendre de REPL personnalisés « tout inclus ».

Développement

BusyBee : Traitement des tâches en arrière-plan rapide et observable pour .NET

2025-08-20
BusyBee : Traitement des tâches en arrière-plan rapide et observable pour .NET

BusyBee est une bibliothèque de traitement des tâches en arrière-plan hautes performances pour .NET, construite sur des canaux natifs. Elle fournit une solution simple, configurable et observable pour gérer les tâches en arrière-plan, avec une prise en charge intégrée d'OpenTelemetry et une gestion flexible des files d'attente. Les fonctionnalités incluent des files d'attente illimitées ou limitées avec diverses stratégies de débordement, des délais configurables, un traitement parallèle, une journalisation complète et des informations contextuelles riches sur les tâches. L'intégration d'OpenTelemetry permet une surveillance et une analyse robustes. La gestion des erreurs et des délais d'attente est également prise en charge via des gestionnaires personnalisés.

Construire la couche sémantique la plus simple avec YAML et Python

2025-08-20
Construire la couche sémantique la plus simple avec YAML et Python

Cet article montre comment construire une couche sémantique minimale à l'aide d'un fichier YAML et d'un script Python, interrogeant 20 millions d'enregistrements de taxis new-yorkais pour illustrer sa valeur. Il clarifie quand une couche sémantique est vraiment bénéfique et quand elle est excessive. L'article compare les couches sémantiques aux bases de données traditionnelles, soulignant les avantages en matière de gouvernance des données, de mise en cache, de contrôle d'accès sécurisé et d'intégration LLM.

Développement couche sémantique

Agrégation de fenêtre glissante en temps constant : une FIFO améliorée

2025-08-20

Cet article présente une structure de données FIFO améliorée permettant une agrégation de fenêtre glissante en temps constant. Les approches traditionnelles utilisant des structures à double pile se révèlent inefficaces. L’auteur introduit une nouvelle méthode qui gère intelligemment les listes d’« ingestion » et d’« excrétion » avec leurs produits courants et leurs produits suffixes, pour obtenir une agrégation sur des monoides arbitraires avec une complexité temporelle constante dans le pire des cas. Cela évite la copie et la redondance excessives des méthodes précédentes, offrant des avantages pratiques significatifs. Le code Python est inclus pour l’implémentation.

(pvk.ca)
Développement

Édition de texte collaborative efficace : une implémentation CRDT

2025-08-20

Cet article présente un algorithme d’édition de texte collaboratif basé sur les CRDT, similaire aux approches utilisées dans les bibliothèques populaires telles que Yjs et Automerge. Chaque caractère se voit attribuer un identifiant unique (ID du site et horloge), et un index basé sur un arbre avec des compteurs ordonne les caractères. La suppression consiste à ajouter l’identifiant du caractère à un ensemble supprimé (tombstones). L’efficacité est accrue grâce à des optimisations telles que la fusion des insertions successives, le stockage contigu des blocs et l’utilisation d’une représentation basée sur les plages pour l’ensemble supprimé. Cela garantit une gestion efficace des grands collages de texte et des éditions simultanées.

Développement

Les systèmes CI modernes sont trop complexes : est-il temps de fusionner les systèmes de build et CI ?

2025-08-20

Cet article explore la complexité des plateformes d’intégration continue (CI) modernes. L’auteur soutient que les systèmes CI actuels, tels que GitHub Actions et GitLab CI, sont trop puissants et ont évolué pour devenir des systèmes de build complexes, entraînant une fragmentation de la logique des systèmes de build et CI et une faible efficacité. L’auteur propose d’intégrer les fonctionnalités CI aux systèmes de build et utilise Taskcluster de Mozilla comme exemple pour illustrer une conception de plateforme CI plus puissante, basée sur des graphes de tâches. Cette conception peut unifier les processus de build et CI, améliorer l’efficacité et réduire la complexité. Cependant, l’auteur souligne également que cette fusion nécessite des systèmes de build plus avancés et une adoption plus large dans l’industrie, ce qui peut être difficile à court terme.

Développement Système de build

L'algorithme de l'évêque ivre d'OpenSSH : Visualisation des empreintes digitales de clés publiques

2025-08-20

OpenSSH utilise un algorithme astucieux appelé « évêque ivre » pour visualiser les empreintes digitales des clés publiques. Basé sur des principes d'art aléatoire, il traduit le hachage de la clé en mouvements d'un fou sur un échiquier, résultant en une représentation artistique ASCII. Cela permet aux utilisateurs de détecter facilement les modifications de clé visuellement. La fonctionnalité est contrôlée par l'indicateur VisualHostKey, permettant de l'activer via des fichiers de configuration ou des options de ligne de commande. L'article détaille également son implémentation dans le langage de programmation Factor.

Gem Rails Charts : Créez des graphiques époustouflants facilement

2025-08-20
Gem Rails Charts : Créez des graphiques époustouflants facilement

Fatigué de lutter pour créer de beaux graphiques dans votre application Ruby on Rails ? Le gem rails_charts est là pour vous sauver la mise ! Construit sur la puissante bibliothèque Apache eCharts (v. 5.4.0), il vous permet de générer différents types de graphiques - graphiques linéaires, graphiques à barres, graphiques circulaires, etc. - avec seulement quelques lignes de code. Ce gem simplifie l’interface et fournit des aides pour une intégration rapide des graphiques. Personnalisez les graphiques avec des options de largeur, de hauteur, de thème, de style et même des fonctions JavaScript comme les info-bulles. Jetez-y un coup d’œil !

Développement

OS Yamato : Un espace numérique éphémère inspiré du zen

2025-08-20
OS Yamato : Un espace numérique éphémère inspiré du zen

OS Yamato, un système d'exploitation récemment lancé, remet en question la notion conventionnelle de stockage numérique infini. Il adopte une philosophie d'impermanence, où les données (notes, photos, messages) s'estompent progressivement et finissent par disparaître, encourageant ainsi la présence consciente et l'appréciation des moments fugaces. Construit avec Vue 3 et AWS Amplify, il intègre poétiquement la météo dans l'expérience utilisateur, rendant les souvenirs numériques plus évocateurs.

Développement Éphémère

type-machine : Simulation du sous-typage structurel en Haskell

2025-08-20

Les programmeurs Haskell ont souvent des difficultés avec la modélisation des données, notamment lorsqu'ils manipulent des types d'enregistrement comportant de nombreux champs. Cet article présente type-machine, une bibliothèque Haskell qui utilise Template Haskell pour simuler le sous-typage structurel à l'aide de transformateurs de type et de classes de types Is. Cela simplifie la manipulation des types d'enregistrement et améliore l'efficacité du code. La bibliothèque fournit des fonctions telles que pick, omit et record, permettant une manipulation aisée des champs d'enregistrement. Les benchmarks démontrent ses avantages en termes de performances par rapport aux approches alternatives.

Développement Sous-typage structurel

Génération d'Envahisseurs Spaciaux Pixel Art avec des Algorithmes

2025-08-20
Génération d'Envahisseurs Spaciaux Pixel Art avec des Algorithmes

Cet article interactif détaille la création d'un générateur d'Envahisseurs Spaciaux utilisant JavaScript et des graphiques vectoriels. L'auteur décrit le processus, des dessins pixel art faits à la main aux polygones vectoriels et enfin aux images pixelisées, en expliquant les algorithmes et les techniques utilisés. Cela inclut l'utilisation de l'espace colorimétrique OKLCH pour la génération des couleurs et Anime.js pour l'animation. L'article est hautement interactif, permettant aux lecteurs de générer leurs propres Envahisseurs Spaciaux.

Développement Graphiques Vectoriels

Optimisation du développement Monorepo avec Turborepo et pnpm

2025-08-20
Optimisation du développement Monorepo avec Turborepo et pnpm

Ce guide décrit les meilleures pratiques pour développer, tester et soumettre du code dans un monorepo basé sur Turborepo. Il couvre des méthodes efficaces pour naviguer, installer et créer de nouveaux packages React à l'aide de pnpm, en utilisant Vitest pour des tests ciblés et en garantissant la qualité du code avec ESLint et TypeScript. Le guide souligne l'importance d'exécuter les linters et les tests avant les commits et fournit un format clair pour les titres de PR.

Développement

D2 0.7.1 Sortie : Sortie ASCII désormais prise en charge

2025-08-19
D2 0.7.1 Sortie : Sortie ASCII désormais prise en charge

L'outil de création de diagrammes D2 a publié la version 0.7.1, introduisant la sortie ASCII. Tout fichier .txt utilisera désormais le rendu ASCII. Ceci est particulièrement utile pour les petits diagrammes dans les commentaires du code source, améliorant ainsi la lisibilité. La fonctionnalité est accessible via l'extension Vim ou l'indicateur de ligne de commande `--ascii-mode=standard`. Notez que ce moteur de rendu est encore en version alpha et peut contenir des bogues.

L'édition multijoueur de Figma : une approche CRDT simplifiée

2025-08-19
L'édition multijoueur de Figma : une approche CRDT simplifiée

Il y a quatre ans, Figma a commencé à développer la fonctionnalité multijoueur, optant pour un système personnalisé au lieu de l'algorithme Operational Transform (OT) populaire. Poussés par le besoin d'une itération rapide et par des préoccupations concernant la complexité de l'OT, ils ont créé une solution plus simple. Cet article détaille l'architecture du système multijoueur de Figma, y compris son architecture client/serveur, la communication WebSocket, les capacités d'édition hors ligne et la synchronisation des données. Bien qu'inspirée par les CRDT (Conflict-free Replicated Data Types), l'implémentation de Figma s'écarte de l'adhésion stricte aux CRDT, en tirant parti de ses principes tout en bénéficiant d'un serveur centralisé pour l'efficacité et la simplicité. L'article compare les OT et les CRDT, et approfondit la conception de la structure de données de Figma et la manière dont elle gère les cas limites.

Développement Collaboration multijoueur

Coupeur Vidéo Emacs : video-trimmer-mode

2025-08-19
Coupeur Vidéo Emacs : video-trimmer-mode

Inspiré par un article de blog de Marcin Borkowski, l'auteur a créé video-trimmer-mode, un plugin Emacs léger pour le montage vidéo. Utilisant ffmpeg, ce plugin d'environ 300 lignes offre un moyen rapide et facile de couper des clips vidéo. Le code est disponible dans le dépôt de configuration Emacs de l'auteur. Soutenez le travail de ce développeur indépendant !

Développement Montage Vidéo

Positron : L'IDE open source nouvelle génération pour la science des données

2025-08-19
Positron : L'IDE open source nouvelle génération pour la science des données

Posit PBC a lancé Positron, un environnement de développement intégré (IDE) gratuit et nouvelle génération pour la science des données. Il intègre de manière transparente les flux de travail d'exploration et de production de données, offrant un support égal pour Python et R. Les fonctionnalités clés incluent des notebooks interactifs, des outils de tracé, des flux de travail intégrés d'applications de données et un assistant IA intégré. Construit sur Code OSS, Positron prend en charge les extensions VSIX pour une personnalisation améliorée.

Développement

Guile-Swayer : Scripting de Sway/i3 avec Guile

2025-08-19
Guile-Swayer : Scripting de Sway/i3 avec Guile

Fatigué des limitations de configuration de Sway/i3 ? Le projet Guile-Swayer offre une solution puissante, vous permettant de contrôler entièrement le gestionnaire de fenêtres Sway/i3 à l’aide du langage de script Guile. Développé après la migration de StumpWM vers Wayland, ce projet reproduit la flexibilité et la personnalisation de StumpWM. Guile-Swayer vous permet de lier des touches pour exécuter du code Guile, de vous abonner aux événements Sway et d’y réagir, de récupérer des informations Sway, et plus encore. Il inclut des modules tels que workspace-grid pour les espaces de travail en grille, workspace-groups pour le groupement des espaces de travail sur plusieurs écrans, et which-key pour des conseils de raccourcis clavier similaires à Emacs. Avec Guile-Swayer, créez un environnement de gestion de fenêtres hautement personnalisé et efficace.

Développement

Maîtriser l'attention : élaborer des invites efficaces pour les LLM

2025-08-19
Maîtriser l'attention : élaborer des invites efficaces pour les LLM

Cet article explore le mécanisme d'attention des grands modèles linguistiques (LLM) et comment l'exploiter grâce à des invites soigneusement conçues. Il explique que les LLM ne lisent pas de manière séquentielle comme les humains, mais pondèrent les relations entre tous les jetons simultanément. La structure de l'invite est donc plus importante que le choix des mots. L'article compare les invites structurées et non structurées, illustrant comment une approche étape par étape guide le raisonnement du modèle. Il simplifie le mécanisme d'attention : calculer l'influence de chaque mot sur les autres pour générer la sortie. Des heuristiques pour des invites efficaces sont proposées : prioriser les informations clés, utiliser une mise en forme structurée, employer des personnages et éviter le flou. L'article conclut en soulignant les avantages économiques des invites efficaces : gain de temps pour les ingénieurs, amélioration de l'efficacité et réduction des coûts.

Développement

Limitations sur l'application des suggestions de révision de code

2025-08-19
Limitations sur l'application des suggestions de révision de code

Cet article énumère les différentes limitations rencontrées lors de l'application des suggestions dans les révisions de code GitHub. Cela inclut des scénarios tels que l'absence de modifications de code, la demande de tirage fermée, l'affichage d'un sous-ensemble de modifications uniquement, une seule suggestion par ligne autorisée, l'application à des lignes supprimées, des suggestions déjà appliquées ou marquées comme résolues, des suggestions provenant de révisions en attente, des commentaires multilignes et la demande de tirage mise en file d'attente pour la fusion. Il est également noté que certaines actions ne sont pas disponibles actuellement.

Mon odyssée des navigateurs : d'Arc à Dia à Zen Browser

2025-08-19
Mon odyssée des navigateurs : d'Arc à Dia à Zen Browser

J'étais un utilisateur dévoué du navigateur Arc, appréciant ses raccourcis clavier puissants et sa fonctionnalité multi-profils. Cependant, son développeur, The Browser Company, est passé au navigateur Dia basé sur l'IA, abandonnant de nombreux atouts d'Arc. Dia, bien qu'intégrant des fonctionnalités d'IA, a sacrifié la convivialité et la confidentialité, me forçant à chercher une alternative. Firefox, bien que fonctionnel, manque d'une expérience utilisateur raffinée. Finalement, j'ai trouvé Zen Browser, un navigateur basé sur Firefox avec l'interface propre et fluide d'Arc et une personnalisation puissante, résolvant les problèmes de gestion de profils multiples de Firefox. Il est devenu mon nouveau favori. Je pense même que Mozilla devrait acquérir l'équipe de Zen Browser pour améliorer l'expérience utilisateur de Firefox.

Développement

Rapprochement du grand livre Beancount avec des macros Vim : récit d'un hacker

2025-08-19

Un utilisateur chevronné de Vim relève le défi de gérer ses finances personnelles avec Beancount, un système de comptabilité basé sur du texte. Face à un fouillis d'extraits bancaires CSV et PDF et à de nombreux virements internes non catégorisés, l'auteur utilise ingénieusement des macros Vim pour automatiser le processus de rapprochement. L'article détaille le processus de création des macros, en soulignant la résolution de problèmes et en mettant en valeur des compétences Vim impressionnantes. Grâce à l'utilisation créative de Vim, l'auteur transforme des données financières chaotiques en un grand livre Beancount clair et efficace, améliorant considérablement la productivité.

Développement

Le défaut fatal de "L'art de la programmation multiprocesseur": ignorer le futex

2025-08-19

Cet article critique "L'art de la programmation multiprocesseur", un manuel très bien considéré, pour son omission du futex, une technique de concurrence moderne cruciale. L'auteur soutient que le manque de couverture du livre rend son contenu obsolète et impraticable. Les futexes, permettant des implémentations efficaces de mutex, améliorent considérablement les performances de la concurrence et sont largement utilisés dans les systèmes d'exploitation tels que Linux, Windows et macOS. L'article détaille les fonctionnalités du futex et fournit des exemples de code démontrant la construction de mutex hautes performances à l'aide de futexes, notamment les spinlocks, les mutex non récursifs et les mutex récursifs. L'auteur conclut que l'incapacité du livre à couvrir des technologies essentielles telles que les futexes le rend inadéquat pour les besoins modernes de la programmation concurrente.

Émulation PC rétro sur Raspberry Pi Pico : Pico-286

2025-08-19
Émulation PC rétro sur Raspberry Pi Pico : Pico-286

Le projet Pico-286 est un exploit remarquable d’émulation, qui restitue l’expérience PC classique de la fin des années 80 et du début des années 90 sur le Raspberry Pi Pico. Ce projet léger offre une manière amusante d’explorer l’informatique rétro et d’apprendre l’émulation de systèmes bas niveau. Il prend en charge diverses CPU Intel (jusqu’au 286), une gamme de périphériques classiques (cartes son, cartes graphiques) et divers modes graphiques et textuels. Pico-286 émule même les couleurs d’artefact produites par les anciens moniteurs ! Ce projet open source est multiplateforme et fonctionne sur Raspberry Pi Pico, Windows et Linux.

Développement Informatique rétro

PyPI renforce la sécurité des comptes grâce à la vérification des domaines expirés

2025-08-19
PyPI renforce la sécurité des comptes grâce à la vérification des domaines expirés

Pour prévenir les attaques de résurrection de domaine – un type d'attaque de chaîne d'approvisionnement où un attaquant achète un domaine expiré pour prendre le contrôle de comptes PyPI – PyPI vérifie désormais les domaines expirés. Cela améliore la sécurité des comptes en dévalidant les adresses e-mail associées aux domaines expirés ; plus de 1 800 adresses e-mail ont été dévalidées depuis début juin 2025. Bien qu'il ne s'agisse pas d'une solution parfaite, cela atténue considérablement un vecteur d'attaque majeur. Il est conseillé aux utilisateurs d'ajouter une deuxième adresse e-mail vérifiée pour une sécurité accrue.

Développement résurrection de domaine

Utilisation sécurisée de snprintf : éviter les débordements de tampon

2025-08-19
Utilisation sécurisée de snprintf : éviter les débordements de tampon

Cet article met en lumière une fonctionnalité méconnue de la fonction `snprintf` : sa capacité à déterminer la taille du tampon nécessaire avant le formatage, évitant ainsi les débordements de tampon. En appelant `snprintf` deux fois – une fois avec `NULL` et 0 pour obtenir la taille, puis de nouveau avec un tampon correctement alloué – le besoin de calculs manuels de la taille du tampon est éliminé. L’auteur recommande également une bibliothèque légère uniquement en en-tête pour faciliter son utilisation.

Développement débordement de tampon

Récupérer de l'espace disque WSL : un guide manuel et automatisé

2025-08-19
Récupérer de l'espace disque WSL : un guide manuel et automatisé

Les disques virtuels du Windows Subsystem for Linux (WSL) peuvent gonfler avec le temps, consommant un espace disque important. Ce tutoriel fournit des méthodes manuelles et automatisées pour compacter les disques durs virtuels (VHDX) de WSL, libérant ainsi de l'espace disque précieux. La méthode manuelle détaille un processus étape par étape utilisant PowerShell et des commandes DiskPart ; la méthode automatisée fournit un script PowerShell pour un compactage en un clic. Quelle que soit la méthode choisie, vous pouvez résoudre efficacement les problèmes d'espace disque WSL et maintenir un fonctionnement système efficace.

Développement
1 2 21 22 23 25 27 28 29 214 215