Category: Développement

Exécuter des LLMs localement : confidentialité, coût et expérimentation

2025-03-11
Exécuter des LLMs localement : confidentialité, coût et expérimentation

Cet article explore les avantages et les méthodes d'exécution de modèles linguistiques de grande taille (LLMs) en local. Bien que reconnaissant que les LLMs locaux n'égaleront pas les performances des services cloud, l'auteur souligne leurs avantages en termes de confidentialité, de maîtrise des coûts et de développement expérimental. Trois outils sont présentés : Ollama (facile à utiliser, vaste bibliothèque de modèles), Llama.cpp (multiplateforme, puissant) et Llamafiles (exécutable unique, facile à partager). L'article couvre également des aspects cruciaux tels que la sélection des modèles, les paramètres, la quantification et les capacités des modèles, tout en mettant en garde contre la taille des fichiers de modèles et la sécurité. En fin de compte, l'exécution de LLMs en local offre aux développeurs une approche flexible et contrôlable du développement de l'IA.

UUIDv7 : Une nouvelle norme UUID basée sur le temps

2025-03-11
UUIDv7 : Une nouvelle norme UUID basée sur le temps

UUIDv7 est une nouvelle norme UUID basée sur le temps qui combine les avantages des UUID traditionnels avec les systèmes distribués modernes et évolutifs. Contrairement à UUIDv4 généré aléatoirement, UUIDv7 offre des identifiants uniques au niveau mondial et ordonnés dans le temps, ce qui le rend idéal pour les applications nécessitant des horodatages et une unicité. Il répond aux préoccupations de confidentialité liées à UUIDv1 et conserve la compatibilité avec les bibliothèques UUID existantes. Les cas d'utilisation clés incluent les systèmes distribués, l'indexation des bases de données, la journalisation et la surveillance, et le commerce électronique.

Développement

Réduction de la taille de build de Godot : de 93 Mo à 6,4 Mo

2025-03-11
Réduction de la taille de build de Godot : de 93 Mo à 6,4 Mo

Cet article détaille comment réduire drastiquement la taille de build des projets du moteur de jeu Godot. L'auteur optimise systématiquement un projet, en commençant par désactiver la 3D, les serveurs de texte avancés et les modules inutiles. Des techniques comme l'utilisation de l'outil de compression UPX, l'optimisation WebAssembly (wasm-opt) et la compression Brotli sont également explorées. L'article utilise un jeu 2D simple de rebond comme exemple, montrant l'impact de chaque étape avec des comparaisons claires avant et après. C'est un guide pratique qui couvre plusieurs stratégies d'optimisation et leurs avantages et inconvénients.

Développement Optimisation du moteur

Compilateur TypeScript natif : amélioration des performances multipliée par 10

2025-03-11
Compilateur TypeScript natif : amélioration des performances multipliée par 10

L'équipe TypeScript a annoncé un portage natif du compilateur et des outils TypeScript pour améliorer considérablement les performances. Cette implémentation native devrait accélérer considérablement le démarrage de l'éditeur, réduire la plupart des temps de compilation d'un facteur 10 et réduire considérablement l'utilisation de la mémoire. Des tests initiaux montrent des améliorations de la vitesse de compilation de plus de 10 fois pour plusieurs grands projets (par exemple, VS Code, Playwright). Le futur TypeScript natif (prévu pour TypeScript 7) prendra en charge des refactorisations plus avancées, une analyse de code plus approfondie et jettera les bases des outils de développement d'IA de nouvelle génération. TypeScript 6 (basé sur JS) continuera d'être maintenu pour assurer une transition en douceur.

Développement Compilateur natif

Cinder JIT : Représentation efficace des types à l’aide de bitsets et de semilattis

2025-03-11
Cinder JIT : Représentation efficace des types à l’aide de bitsets et de semilattis

Le compilateur JIT Cinder utilise une représentation astucieuse des types, en les traitant comme des ensembles (voire des treillis) et en choisissant une représentation compacte de bitsets. Cet article examine comment Cinder exploite les bitsets et les structures de semilattis pour une gestion efficace des informations de type, couvrant la représentation des types de base, les unions de types et la spécialisation. En codant les informations de type dans les bitsets, Cinder représente efficacement les unions de types et permet des distinctions de types plus granulaires. De plus, Cinder introduit un mécanisme de spécialisation pour suivre la valeur spécifique des objets individuels, améliorant ainsi l'efficacité d'optimisation du compilateur. L'article traite également du type Bottom et des détails sur la génération du treillis de types.

Développement

Migration de base de données à temps d'arrêt nul vérifiée avec PlusCal

2025-03-11

Cet article de blog détaille comment l'auteur a utilisé PlusCal, un DSL pour TLA+, et la vérification formelle pour garantir l'exactitude d'une migration de base de données à temps d'arrêt nul. Un modèle PlusCal a été construit simulant les opérations utilisateur Insérer, Supprimer et Obtenir sur une base de données, ainsi qu'un processus de migration en arrière-plan. En simulant un système sans migration et un avec migration, et en vérifiant la cohérence des résultats de l'opération Obtenir dans tous les états, l'auteur a garanti l'exactitude de l'algorithme de migration. La vérification formelle a aidé à la détection précoce des défauts, comme la gestion incorrecte des TOMBSTONES, et a mis en évidence l'importance des opérations atomiques, comme l'atomicité de la vérification et de l'insertion de données pendant la migration.

Développement

8 Modèles visuels pour améliorer la lisibilité du code

2025-03-11
8 Modèles visuels pour améliorer la lisibilité du code

Un programmeur auditant du code s'est retrouvé mentalement fatigué malgré la haute qualité du code. Le coupable n'était pas la complexité cyclomatique, mais la lisibilité. La recherche a révélé huit modèles visuels pour améliorer la lisibilité : minimiser le nombre de lignes/opérateurs/opérandes ; éviter la nouveauté dans les formes de fonctions, les opérateurs ou le sucre syntaxique ; regrouper les longues chaînes de fonctions ; maintenir les conditionnels courts ; éviter les gotos ; minimiser l'imbrication ; utiliser des noms de variables descriptifs et visuellement distincts ; et raccourcir la durée de vie des variables. Ces modèles aident à améliorer la lisibilité du code, à réduire les bogues et à augmenter la productivité du développeur.

GCC 15 prendra en charge COBOL !

2025-03-11

Une mise à jour majeure arrive pour le compilateur GCC 15 : le support du front-end du langage COBOL a été fusionné ! Il s’agit d’une étape importante pour la prise en charge de COBOL par GCC, facilitant la migration des applications COBOL héritées des mainframes vers les environnements Linux et Cloud. Même si la popularité de COBOL n’est plus ce qu’elle était, cette fusion reste une bonne surprise. Les développeurs peuvent utiliser la commande `gcobol` pour appeler le front-end du compilateur COBOL. Attendez-vous à la prise en charge de COBOL, ainsi que de nombreuses autres fonctionnalités, dans la version stable de GCC 15.1 dans les semaines à venir.

Développement

Assistant de recherche approfondie local : un puissant outil de recherche IA combinant les LLM et la recherche Web

2025-03-11
Assistant de recherche approfondie local : un puissant outil de recherche IA combinant les LLM et la recherche Web

Un puissant assistant de recherche basé sur l’IA qui effectue des analyses approfondies et itératives à l’aide de plusieurs LLM et de recherches Web. Le système peut être exécuté localement pour protéger la confidentialité ou configuré pour utiliser des LLM basés sur le cloud afin d’améliorer ses capacités. Il prend en charge le traitement local (à l’aide de modèles Ollama) et les LLM cloud (Claude, GPT) et peut analyser le contenu complet des pages Web, et non seulement des extraits. De plus, il offre des options de sortie riches, notamment des résultats de recherche détaillés avec des citations, des rapports de recherche complets et des résumés rapides, et dispose d’une fonction de recherche de documents locaux (RAG), permettant aux utilisateurs de rechercher et de récupérer du contenu à partir de leurs propres collections de documents.

Développement Outil de recherche

Sidekick : Une puissante application LLM locale pour macOS

2025-03-11
Sidekick : Une puissante application LLM locale pour macOS

Sidekick est une application LLM native pour macOS qui s'exécute entièrement localement, accédant à vos fichiers, dossiers et sites web sans nécessiter de logiciel supplémentaire. Utilisant la technologie RAG, elle gère des ensembles de données volumineux, prend en charge plusieurs modèles de raisonnement, y compris un interpréteur de code, génère des images et possède des fonctionnalités avancées de rendu Markdown, ainsi que des outils d'assistant d'écriture intégrés. Sidekick privilégie la simplicité et la facilité d'utilisation, fonctionnant entièrement hors ligne, sans suivi des conversations et avec une approche open source pour la transparence.

Développement

Une Odyssée de 9 Mois : Implémentation de Bel en Clojure

2025-03-11

Cet article détaille un périple de neuf mois consacré à l’implémentation du langage de programmation Bel en Clojure. Initialement envisagé comme un projet de week-end, l’auteur a rencontré plusieurs défis : créer un analyseur personnalisé pour la syntaxe unique de Bel ; gérer le style de passage de continuation de Bel, ce qui a nécessité une réimplémentation de la pile d’appels de l’interpréteur pour surmonter les problèmes de dépassement de pile ; et optimiser les performances à l’aide de structures de données Java. L’auteur approfondit les fonctionnalités puissantes de Bel, telles que `lit`, `globe`, `scope`, `mac` et `err`, en montrant les capacités offertes par les continuations. Bien que le projet soit toujours en développement, l’auteur souligne les précieuses leçons tirées de cette expérience à la fois stimulante et enrichissante.

Développement

Automatisation des changements d'adresse IP et de réseau dans Kubernetes

2025-03-11
Automatisation des changements d'adresse IP et de réseau dans Kubernetes

Le cluster Kubernetes de l'auteur repose sur des adresses IP attribuées dynamiquement, ce qui crée des vulnérabilités dans sa configuration réseau. Pour y remédier, un déploiement Kubernetes a été créé pour vérifier et mettre à jour périodiquement les adresses IP publiques de sa passerelle Unifi à l'aide de l'API Unifi. Lors de la détection de changements d'adresses IP ou de réseaux IPv6, il met à jour automatiquement les règles du pare-feu Unifi et les ressources des services Kubernetes (y compris la configuration MetalLB), et notifie l'utilisateur via MQTT. Le programme est écrit en Python et utilise les API Kubernetes et Unifi pour l'automatisation.

Développement Gestion des adresses IP

Shef : Créez des recettes shell sans le désordre

2025-03-11
Shef : Créez des recettes shell sans le désordre

Shef est un puissant outil en ligne de commande qui vous permet de créer des workflows shell complexes sans le tracas d'écrire des scripts bash complexes. Inspiré par CyberChef, Shef utilise un format YAML simple pour chaîner des commandes, intégrer des invites interactives, implémenter des boucles et une logique conditionnelle, et créer des recettes réutilisables. Il simplifie la création de scripts shell en offrant des fonctionnalités telles que le templating, les transformations et une gestion facile des erreurs, ce qui en fait un outil révolutionnaire pour automatiser les tâches et gérer les processus complexes.

Développement

L'algorithme d'arrangement d'icônes O(n²) de l'Explorateur Windows provoque des blocages

2025-03-10
L'algorithme d'arrangement d'icônes O(n²) de l'Explorateur Windows provoque des blocages

Un utilisateur de Windows a rencontré des blocages de l'explorateur de fichiers, et l'auteur a utilisé des outils d'analyse de performances pour identifier le coupable : un algorithme d'arrangement d'icônes inefficace. La complexité temporelle O(n²) de l'algorithme a entraîné des temps d'arrangement excessivement longs avec de nombreux icônes, même lorsqu'ils étaient cachés. L'auteur l'a vérifié expérimentalement, soulignant la nécessité pour les développeurs d'éviter des algorithmes aussi inefficaces.

Développement analyse de performances

Vous êtes nul en CSS : Critique du livre

2025-03-10

Le livre 'You Suck At CSS' de Rex Riepe ne consiste pas à éviter CSS, mais à le maîtriser efficacement. Il s'adresse aux débutants et aux experts, visant à aider les développeurs à accomplir rapidement des tâches front-end, en soulignant l'efficacité en équipe. Il prend en charge le framework California Stylesheets et se concentre sur le développement web rapide utilisant les technologies modernes. Il contextualise également les raisons pour lesquelles CSS et son écosystème sont tels qu'ils sont.

Développement

Repenser les outils de suivi des bogues : une séparation des préoccupations

2025-03-10

Après des années d’utilisation de divers outils de suivi des bogues, l’auteur identifie une faille fondamentale dans leur représentation des données, source de frustrations récurrentes. Trois problèmes majeurs sont mis en évidence : un champ unifié « Version de correction » qui confond faits et projets ; un système à deux niveaux, État et Résolution, qui brouille la distinction entre la réalité du code et les intentions futures ; et la confusion entre les listes de bogues et les listes de tâches, ce qui pose des problèmes pour les tâches non liées aux bogues. L’auteur propose un principe de « séparation des préoccupations », suggérant une division en tables « faits » et « projets ». La table des faits enregistre les informations objectives sur les bogues (existence, version, gravité), tandis que la table des projets suit les intentions, les échéances et les priorités subjectives. Cette séparation simplifie le suivi des bogues, s’adapte mieux aux différents types de projets et permet même l’omission complète de la table des projets pour les projets axés uniquement sur la résolution des bogues.

Un développeur de 55 ans risque 10 ans de prison pour sabotage du réseau de son ancien employeur

2025-03-10
Un développeur de 55 ans risque 10 ans de prison pour sabotage du réseau de son ancien employeur

Un développeur de logiciels de 55 ans risque jusqu'à 10 ans de prison pour avoir déployé un code malveillant qui a saboté le réseau de son ancien employeur, causant des pertes de plusieurs centaines de milliers de dollars. Davis Lu, qui a travaillé chez Eaton Corp. pendant environ 11 ans, aurait été mécontent d'une "réorganisation" d'entreprise en 2018 qui a "réduit ses responsabilités". Ses efforts pour saboter le réseau ont commencé cette année-là, et l'année suivante, il avait implanté différentes formes de code malveillant, créant des "boucles infinies" qui supprimaient les fichiers de profil des collègues, empêchant les connexions légitimes et causant des plantages du système. Un "coupe-circuit" nommé "IsDLEnabledinAD", apparemment une abréviation de "Is Davis Lu enabled in Active Directory", s'est automatiquement activé le jour de la fin de contrat de Lu en 2019, perturbant les utilisateurs d'Eaton Corp. dans le monde entier.

Le Dilemme des Maintiens de Logiciels Libres : Comment Vraiment Aider

2025-03-10

Un développeur sur Hacker News met en lumière les difficultés rencontrées par les mainteneurs de logiciels libres. Les grandes organisations s'appuient sur ces projets pour réduire leurs coûts, mais contribuent rarement en retour, laissant les mainteneurs débordés. Le problème principal est le manque de communication : les mainteneurs manquent de lignes directrices claires pour les contributions, laissant les contributeurs incertains de la manière d'aider efficacement. L'auteur suggère aux mainteneurs d'indiquer clairement leurs besoins — s'ils acceptent les PR, comment soumettre des rapports de bogues et s'ils acceptent un soutien financier — pour améliorer l'efficacité et la collaboration.

Développement

Manuel de référence sur l'apprentissage par renforcement : fondements mathématiques et vidéos complémentaires

2025-03-10
Manuel de référence sur l'apprentissage par renforcement : fondements mathématiques et vidéos complémentaires

Un manuel d'apprentissage par renforcement ayant reçu plus de 5 000 étoiles, offrant une introduction mathématique, mais accessible, aux concepts fondamentaux, aux problèmes et aux algorithmes classiques. Le livre comprend de nombreux exemples et est accompagné de vidéos de cours en chinois et en anglais (disponibles sur Bilibili et YouTube). Élaboré à partir de plusieurs années d'expérience pédagogique, il convient aux étudiants de premier et deuxième cycles, aux chercheurs et aux praticiens.

Développement manuel

Trois étapes pour des déploiements sans temps d'arrêt sur AWS EKS

2025-03-10
Trois étapes pour des déploiements sans temps d'arrêt sur AWS EKS

Jakob, ingénieur chez Glasskube, partage son expérience pour réaliser des déploiements sans temps d'arrêt sur AWS EKS. L'article explore le fonctionnement du contrôleur d'équilibrage de charge AWS, soulignant deux problèmes potentiels de temps d'arrêt pendant les mises à jour progressives : les retards de vérification d'intégrité et les retards de terminaison des pods. Trois solutions sont présentées : activer les Pod Readiness Gates, implémenter un arrêt progressif de l'application et utiliser un conteneur sidecar ou ajouter un délai de terminaison dans l'application. Ces trois étapes empêchent les erreurs 502/504 pendant les mises à jour progressives, ce qui entraîne des déploiements à 100 % sans temps d'arrêt.

Visual Studio : un ami ou un ennemi de l'intelligence ?

2025-03-10

Cet article explore l'impact de Visual Studio sur la façon de penser des programmeurs. Tout en reconnaissant son utilité, l'auteur soutient que l'automatisation poussée de Visual Studio, notamment IntelliSense, peut nuire au développement de véritables compétences en programmation et à la créativité. L'auteur oppose cela à la joie pure de coder sans telles aides, en soulignant les bienfaits mentaux d'une approche plus pratique. L'article aborde également l'histoire des outils de programmation et spécule sur les changements futurs apportés par Avalon (WPF) et XAML.

Développement

arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

2025-03-10
arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

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 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

Traces de pile: un outil de débogage sous-estimé

2025-03-10

Cet article souligne l'importance des traces de pile dans le débogage. À l'aide d'un exemple en Python, il montre comment les traces de pile identifient les emplacements d'erreurs et les appels de fonctions. Cependant, l'article note les défis liés à l'obtention et au maintien de traces de pile complètes dans les langages modernes comme Go et Rust, et dans les architectures de microservices. Bien que des solutions de contournement existent, elles nécessitent des efforts supplémentaires par rapport à la facilité d'utilisation de Python. L'auteur plaide pour la priorisation des traces de pile, en arguant que leurs avantages surpassent toute surcharge de performance.

Développement trace de pile

Amélioration des performances de CPython : une histoire de rebondissements inattendus et de régressions LLVM

2025-03-10

Une fusion récente de CPython a introduit une nouvelle implémentation de l’interpréteur de bytecode, montrant initialement des gains de performance impressionnants de 10 à 15 % sur divers benchmarks. Cependant, cette amélioration provenait du contournement involontaire d’une régression de LLVM 19. Comparé à une meilleure ligne de base (comme GCC ou LLVM 19 optimisé), l’augmentation réelle des performances se réduit à seulement 1 à 5 %. Des semaines de compilation, de benchmarking et de désassemblage ont révélé que les limitations de LLVM 19 sur la duplication des appels de queue étaient à l’origine de la régression. Bien que l’interpréteur d’appels de queue soit une amélioration précieuse, cet incident met en évidence les défis du benchmarking, de l’ingénierie des performances et de l’ingénierie logicielle, tels que la difficulté de choisir des lignes de base et de comprendre la complexité des optimisations du compilateur.

Développement

Perforatrice Virtuelle : Un Voyage Rétro à l'ère du 'Big Iron'

2025-03-10
Perforatrice Virtuelle : Un Voyage Rétro à l'ère du 'Big Iron'

Vous vous souvenez des cartes perforées ? Désormais, vous pouvez revivre cette méthode de programmation rétro grâce à 'The Virtual Keypunch', un outil en ligne gratuit. Tapez votre texte, et il génère une image simulée de carte perforée, compatible avec différents types de cartes (FORTRAN, COBOL, etc.) et même le mode binaire. Ce n'est pas seulement une expérience nostalgique amusante ; cela offre aux développeurs un moyen unique d'apprendre la programmation ancienne.

Développement

Applications Android Open Source : Confidentialité, sécurité et personnalisation

2025-03-10

Fatigué des publicités intrusives et des préoccupations concernant la confidentialité dans les applications propriétaires ? Les applications Android open source offrent une alternative rafraîchissante. Le code source publiquement disponible garantit la transparence et la sécurité, permettant aux utilisateurs et aux développeurs d’examiner le code à la recherche de vulnérabilités et d’éléments malveillants. Les applications open source privilégient souvent la confidentialité des utilisateurs, collectent moins de données et fournissent une documentation claire sur l’utilisation des données. De plus, vous pouvez personnaliser l’application pour répondre à vos besoins, et une communauté solide soutient le développement et les améliorations continues.

Free95 : Système d'exploitation open-source compatible avec Windows

2025-03-10
Free95 : Système d'exploitation open-source compatible avec Windows

Free95 est un système d'exploitation open-source compatible avec Windows. Il offre un environnement convivial similaire à Windows, avec la sécurité et la transparence supplémentaires de la communauté open-source. Vos jeux et applications Windows préférés devraient fonctionner parfaitement. Le projet vise à supprimer les logiciels inutiles et les problèmes de sécurité souvent associés aux systèmes d'exploitation propriétaires, offrant une alternative libre du contrôle corporatif. La compatibilité est assurée par les appels système NT et l'implémentation de l'API Win32. Pour contribuer, envoyez une pull request ou contactez le développeur dripkap_19416 sur Discord. Vous pouvez compiler le système d'exploitation à partir de la source ou télécharger un fichier binaire depuis la section Releases.

Structured : Redéfinir le développement d'applications de données

2025-03-10
Structured : Redéfinir le développement d'applications de données

Structured révolutionne la façon dont les développeurs construisent et déploient des applications de données en consolidant l'ensemble de la stack analytique dans le code. Pour répondre à l'inefficacité du déploiement d'applications de données intensives en production, Structured propose un SDK léger permettant aux développeurs de créer des prototypes, de déployer et de gérer des applications de données (tableaux de bord, outils internes) en quelques heures. Ils recherchent des ingénieurs full-stack expérimentés pour rejoindre l'équipe et travailler sur la construction du SDK principal, la conception de composants interactifs et l'optimisation des performances. La stack technologique comprend Python, TypeScript, Next.js, React, Postgres, AWS/GCP.

arXivLabs : Expérimentation et collaboration communautaire

2025-03-09
arXivLabs : Expérimentation et collaboration communautaire

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 utilisateur. 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
1 2 141 142 143 145 147 148 149 214 215