Category: Développement

Smartest Kid : Un assistant IA pour bureau Windows en Python

2025-03-03
Smartest Kid : Un assistant IA pour bureau Windows en Python

Découvrez Smartest Kid, un assistant IA pour bureau Windows écrit en Python ! Inspiré par SmarterChild, il possède une interface de chat simple et épurée et utilise l’automatisation COM de Windows pour interagir avec Microsoft Office (Word, Excel), les images et votre système de fichiers. Parfait pour les utilisateurs Windows qui explorent l’automatisation de bureau alimentée par l’IA. Le projet est open source et accepte les contributions pour étendre ses fonctionnalités et sa personnalité.

Implémentation Go haute performance des mécanismes d'attention et des couches Transformer

2025-03-03
Implémentation Go haute performance des mécanismes d'attention et des couches Transformer

L'équipe de recherche de pointe de takara.ai présente la première implémentation pure en Go des mécanismes d'attention et des couches Transformer, privilégiant les hautes performances et la facilité d'utilisation. Cette bibliothèque inclut l'attention produit scalaire, l'attention multi-têtes et une implémentation complète de la couche Transformer, avec des opérations par lots pour améliorer les performances et des opérations matricielles optimisées pour le CPU. Idéale pour l'informatique de périphérie, le traitement en temps réel, les applications natives du cloud, les systèmes embarqués et les déploiements de production. Les améliorations futures incluent le codage positionnel, le dropout et l'accélération CUDA.

Développement Mécanismes d'attention

Repenser SQLite : étonnamment puissant à l’hyper-échelle

2025-03-03
Repenser SQLite : étonnamment puissant à l’hyper-échelle

Contrairement à l’opinion répandue, SQLite ne se limite pas aux petites applications. Cet article soutient que des services comme Cloudflare Durable Objects et Turso libèrent le potentiel de SQLite à l’hyper-échelle. Ces plateformes attribuent des bases de données SQLite par entité, remplaçant la complexité des bases de données partitionnées. Cette approche résout des problèmes tels que les schémas rigides, les modifications de schéma difficiles et les opérations complexes entre partitions. Bien que des défis persistent — manque de solution open source auto-hébergée et de protocoles standardisés —, la conformité ACID de SQLite, les E/S efficaces et les riches extensions SQL en font une alternative convaincante aux bases de données partitionnées traditionnelles.

Développement

agents.json : Simplification de l'interaction des agents IA avec les API

2025-03-03
agents.json : Simplification de l'interaction des agents IA avec les API

Wildcard AI présente la spécification agents.json, conçue pour simplifier l'interaction des agents IA avec les API. S'appuyant sur la norme OpenAPI, elle résout le problème des agents IA exécutant des séquences d'appels API en plusieurs étapes en ajoutant des fonctionnalités telles que les flux et les liens. Le fichier agents.json décrit les points de terminaison de l'API et leurs interactions, permettant l'exécution fiable des appels API par les agents IA. Le package Python Wildcard Bridge fournit les fonctionnalités nécessaires pour charger, analyser et exécuter des fichiers agents.json, permettant aux développeurs d'intégrer facilement les agents IA aux API en ajoutant simplement un fichier agents.json.

Développement interaction API

Compression incroyable : réduction de 10 Go de données de transport RATP à 530 Ko avec Rust

2025-03-03

Ce projet de week-end a commencé par la navigation dans le référentiel de données ouvertes du réseau de transport public parisien. L’auteur a remarqué une section sur la réutilisation des données, présentant des projets externes utilisant ces données ouvertes, notamment le site Web d’état de la RATP qui visualise les interruptions historiques. Le référentiel GitHub contient des fichiers JSON interrogés toutes les 2 minutes pendant près d’un an, pour un total de plus de 10 Go. L’auteur s’est demandé s’il était possible de mieux compresser ces données. Cet article explique comment il a utilisé le modèle de conception d’internement de Rust pour obtenir une compression 2000x ! Les techniques explorées incluent l’optimisation de la structure de l’internement, l’ajustement du schéma de données et l’utilisation de l’internement dans la sérialisation. Le résultat ? Une réduction impressionnante de 1,1 Go de fichiers JSON à seulement 530 Ko.

arXivLabs : Expérimentation avec des fonctionnalités pilotées par la communauté

2025-03-03
arXivLabs : Expérimentation avec des fonctionnalités pilotées par la communauté

arXivLabs est un cadre expérimental permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur le site web. Les participants, individus et organisations, adhèrent aux valeurs d'arXiv : ouverture, communauté, excellence et confidentialité des données utilisateur. arXiv est attaché à ces valeurs et ne collabore qu'avec des partenaires qui les partagent. Vous avez une idée pour améliorer la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Construction d'un graphe de réseau de restaurants français avec les LLMs

2025-03-03

Ce projet utilise les critiques de restaurants français de LeFooding.com pour construire un graphe de réseau de restaurants français et de leur personnel. En utilisant le modèle gpt4o-mini d'OpenAI et des techniques de génération structurée, l'auteur extrait des informations sur le personnel du restaurant et leurs parcours professionnels des critiques, ce qui donne un graphe de plus de 5000 nœuds et arêtes. Le projet met en évidence la puissance des LLMs dans l'extraction d'informations structurées et explore les avantages et les inconvénients de l'utilisation de différents LLMs, y compris l'optimisation des coûts. Le résultat final est un graphe de réseau visuel montrant les connexions entre les restaurants français et la progression de carrière du personnel.

FlakeUI : Une nouvelle interface utilisateur graphique basée sur les fractales

2025-03-03
FlakeUI : Une nouvelle interface utilisateur graphique basée sur les fractales

FlakeUI révolutionne la navigation de contenu avec son interface utilisateur graphique basée sur une structure fractale, une orbite parent-enfant et des éléments de zoom. Imaginez explorer votre contenu web non pas comme une simple liste, mais comme un univers fractal dynamique et explorable. Les utilisateurs naviguent dans cette interface visuellement impressionnante en utilisant cinq gestes intuitifs : glisser pour panoramique, faire pivoter, zoomer, dézoomer et faire défiler pour changer de mode. Construit avec Javascript, FlakeUI est parfait pour les sites web fréquemment visités, tels que des collections de liens organisés ou des catalogues hiérarchiques consultables. Le contenu est géré via des pages XHTML et une configuration XML, avec prise en charge de la navigation par hyperliens à l'intérieur des nœuds. Vivez une expérience de navigation de contenu comme jamais auparavant !

Ninjavis : Visualisation des journaux de construction Ninja

2025-03-03
Ninjavis : Visualisation des journaux de construction Ninja

Ninjavis analyse les journaux de construction Ninja, en extrayant la cible, l'heure de début et l'heure de fin pour chaque élément de construction. Il génère ces données dans un modèle avec une visualisation de chronologie simple alimentée par vis.js. Inspiré par buildbloat, il aide à analyser les performances de la construction. N'oubliez pas d'exécuter `ninja -t recompact` au préalable pour supprimer les entrées dupliquées dans le journal. L'outil offre une interface en ligne de commande propre pour générer des profils de construction.

Développement outils de construction

uBlock Origin confronté à la dépréciation de Manifest V3 dans Chrome

2025-03-03
uBlock Origin confronté à la dépréciation de Manifest V3 dans Chrome

À partir de Chrome 127, les utilisateurs de uBlock Origin (uBO) verront des avertissements en raison de la dépréciation des extensions Manifest V2. uBO, une extension Manifest V2, n'a pas d'équivalent Manifest V3. Une alternative légère, uBO Lite (uBOL), a été publiée, mais avec des sacrifices de fonctionnalités pour la compatibilité avec Manifest V3. Les utilisateurs doivent choisir entre passer à uBOL ou continuer à utiliser uBO sur des navigateurs comme Firefox. Des discussions concernant l'extension du support de Manifest V2 dans Chrome jusqu'en juin 2025 sont en cours.

Développement

Adieu ERB : création de modèles d’e-mails en Ruby pur avec Phlex

2025-03-03
Adieu ERB : création de modèles d’e-mails en Ruby pur avec Phlex

Fatigué d’utiliser ERB pour les modèles d’e-mails dans Rails ? Cet article montre comment utiliser Phlex, une bibliothèque Ruby, pour écrire des modèles d’e-mails HTML en Ruby pur, éliminant ainsi les tracas et l’inefficacité d’ERB. L’auteur détaille les étapes de migration d’ERB vers Phlex, notamment la création de vues et de mises en page Phlex, et l’utilisation de roadie-rails pour les styles en ligne, atteignant ainsi l’objectif élégant d’une application Rails sans ERB. L’article inclut également des exemples de code complets et des cas de test pour aider les lecteurs à démarrer rapidement.

Développement Modèles d’e-mails

TrapC : Une extension plus sûre pour C

2025-03-03
TrapC : Une extension plus sûre pour C

TrapC est une extension du langage de programmation C conçue pour améliorer la sécurité mémoire. En supprimant des mots clés comme `goto` et `union`, et en ajoutant `trap` et `alias`, TrapC intègre des fonctionnalités de C++, telles que les constructeurs et les destructeurs. Il dispose d'une gestion automatique de la mémoire, évitant les fuites, et utilise la gestion du cycle de vie pour les pointeurs au lieu du ramassage des ordures. Malgré son design minimaliste —conservant le même nombre de mots clés que C— il offre étonnamment une compatibilité significative avec le code C++. Présenté lors d'une réunion de l'ISO C, TrapC vise à traiter les problèmes de sécurité mémoire de manière plus complète que les autres propositions existantes.

Développement Extension de langage

CBOR vs. MessagePack : Un duel de serialisation

2025-03-03

L'auteur hésite entre MessagePack et CBOR pour un langage de programmation partagé, privilégiant les performances et la simplicité. MessagePack est plus simple d'accès, mais CBOR se révèle significativement plus rapide en codage/décodage (environ 200% plus rapide selon les benchmarks). Malgré une documentation plus complexe, la conception supérieure de CBOR finit par l'emporter. L'auteur choisit CBOR, tout en reconnaissant l'influence de considérations politiques sur sa décision.

Développement serialisation

Tangled : Une plateforme de collaboration Git décentralisée basée sur le protocole AT

2025-03-03

Tangled est une nouvelle plateforme de collaboration Git sociale, construite sur le protocole AT, visant à donner aux développeurs la pleine propriété de leur code, à permettre aux communautés open source de s'autogérer et, surtout, à rendre le codage à nouveau social et amusant. Elle combine les avantages du modèle fédéré d'ActivityPub et du modèle P2P de Radicle, utilisant des serveurs « knots » légers pour simplifier l'hébergement de référentiels Git. Tangled fournit des nœuds gérés gratuitement et une vue d'application consolidée sur tangled.sh pour un accès et une collaboration transparents sur l'ensemble du réseau. Encore en phase initiale, l'équipe développe en suivant trois principes : propriété des données, faible barrière à l'entrée et expérience utilisateur optimale. Actuellement accessible uniquement sur invitation.

Développement

Yoke : L'infrastructure comme code, pour de vrai

2025-03-03
Yoke : L'infrastructure comme code, pour de vrai

Fatigué des outils comme Terraform qui ne proposent que de la configuration et non du code ? Yoke vous permet d'écrire des définitions d'infrastructure en Go ou Rust, de les compiler en WebAssembly et de générer des manifestes Kubernetes. Cela évite les risques de sécurité liés aux dépendances d'exécution. Air Traffic Control, un opérateur Kubernetes, permet une gestion d'infrastructure déclarative, simplifiant ainsi le déploiement. L'auteur montre comment Yoke, utilisant les Définitions de Ressources Personnalisées (CRDs), simplifie le déploiement d'applications et explique son mécanisme de sandbox sécurisé basé sur WebAssembly.

Développement

VectorChord-BM25 : Amélioration de la recherche plein texte de PostgreSQL

2025-03-03
VectorChord-BM25 : Amélioration de la recherche plein texte de PostgreSQL

VectorChord-BM25 est une nouvelle extension PostgreSQL utilisant l'algorithme BM25 et l'algorithme Block WeakAnd pour améliorer significativement la vitesse et la précision de la recherche plein texte de PostgreSQL. Il simplifie le processus de recherche et s'intègre parfaitement à PostgreSQL. Comparé à ElasticSearch, VectorChord-BM25 atteint un QPS (Requêtes Par Seconde) 3 fois supérieur en moyenne pour les requêtes Top 1000 et des scores NDCG@10 comparables voire supérieurs, mais nécessite un alignement précis des stratégies de tokenisation pour une comparaison équitable.

Développement recherche plein texte

Copain animé de la barre de défilement : une alternative amusante à la barre de défilement standard

2025-03-03

Fatigué des barres de défilement ennuyeuses ? Ce projet remplace la barre de défilement standard par un personnage animé qui monte et descend sur la page lorsque vous faites défiler. L’auteur a créé un premier prototype à l’aide de JavaScript simple et prévoit d’ajouter d’autres personnages, comme un skateur, un grimpeur ou même un écureuil. Quels autres copains de défilement devrions-nous ajouter ?

Chrome prototype des fonctions CSS puissantes : extension des capacités de CSS

2025-03-02
Chrome prototype des fonctions CSS puissantes : extension des capacités de CSS

Chrome prototype des fonctions CSS, un changement de jeu pour CSS. Cela permet aux développeurs de créer des fonctions personnalisées qui calculent des valeurs en fonction de paramètres et de propriétés personnalisées, agissant comme des propriétés personnalisées avancées. Par exemple, une fonction `--light-dark()` pourrait renvoyer différentes couleurs ou poids de police en fonction de la préférence du mode sombre du système, surmontant les limites de la fonction `light-dark()` intégrée. Bien qu'elle soit encore au stade du prototype dans Chrome Canary (nécessitant l'indicateur Fonctionnalités expérimentales de la plateforme Web), cela ouvre d'énormes possibilités pour un CSS plus expressif et flexible.

Développement

Intégration de LLMs dans les scripts Bash : L'outil ofc

2025-03-02
Intégration de LLMs dans les scripts Bash : L'outil ofc

Un nouvel outil, ofc, simplifie l'intégration des LLMs Ollama dans les scripts bash. Il permet de changer facilement les invites du système, permettant de comparer le comportement du modèle avec différentes invites. L'auteur montre son utilisation pour générer des ensembles de données pour tester Harper et même faire en sorte que le LLM génère ses propres invites pour une analyse plus approfondie. L'installation est simple via cargo.

Développement

GPU Nvidia sur un cluster Kubernetes Bare-Metal avec NixOS : Une aventure au pays des merveilles

2025-03-02

Pour mettre à l'échelle son framework d'apprentissage automatique, MAZE, l'auteur a tenté d'activer le support GPU Nvidia sur son cluster Kubernetes, composé de trois mini-PC et d'une ancienne station de travail. Cela s'est avéré beaucoup plus difficile que prévu, avec des obstacles tels que la configuration du plugin de périphérique Nvidia, la navigation dans les complexités d'un environnement NixOS et le déploiement de certificats PKI. Il a finalement réussi, partageant ses expériences de déploiement d'un cluster Kubernetes utilisant NixOS, Ansible et Sops, ainsi qu'une plongée profonde dans CRI, CDI, nvidia-container-toolkit, et plus encore. Il a également développé nix-playground, un outil pour simplifier la correction et la construction de projets open source, et a utilisé Grok 3 pour le débogage. En cours de route, il a rencontré d'autres défis tels que des problèmes PyCharm avec WSL NixOS et la configuration de Kubernetes RuntimeClass. Toute l'aventure, similaire aux Aventures d'Alice au pays des merveilles, met en évidence l'impressionnante puissance d'exécution et les compétences de résolution de problèmes de l'auteur.

Développement

Rotores vs. Quaternions pour les rotations de graphiques 3D ?

2025-03-02

Cet article explore la théorie mathématique et l'application pratique des roteurs pour les rotations dans le rendu de graphiques 3D. Les roteurs, issus de l'algèbre géométrique, offrent une alternative potentiellement plus élégante et simple aux quaternions. L'article commence par une explication théorique de concepts tels que le produit extérieur et le produit géométrique, montrant comment ils permettent la réflexion vectorielle et la rotation. Il fournit ensuite des exemples de code C++, démontrant la création, la combinaison, l'inversion des roteurs et leur application aux transformations vectorielles et à la génération de matrices. Enfin, il discute des méthodes d'interpolation des roteurs, notamment nlerp et slerp, en analysant leurs forces et faiblesses.

Développement Algèbre Géométrique

Hallucinations de code LLM : ce n’est pas la fin du monde

2025-03-02

Une plainte courante parmi les développeurs utilisant les LLM pour le code est l’apparition d’« hallucinations » : le LLM invente des méthodes ou des bibliothèques inexistantes. Cependant, l’auteur soutient que ce n’est pas un défaut fatal. Les hallucinations de code sont facilement détectables grâce aux erreurs du compilateur/interpréteur et peuvent être corrigées, parfois automatiquement par des systèmes plus avancés. Le véritable risque réside dans les erreurs non détectées qui ne sont révélées qu’au moment de l’exécution, ce qui exige des compétences solides en matière de tests manuels et d’assurance qualité. L’auteur conseille aux développeurs d’améliorer leurs compétences en lecture, compréhension et révision de code et propose des conseils pour réduire les hallucinations, tels que l’essai de différents modèles, l’utilisation efficace du contexte et le choix de technologies établies. La capacité à revoir le code généré par les LLM est présentée comme un excellent moyen de développer ses compétences.

Développement

SmallPond : Un framework léger de traitement de données

2025-03-02
SmallPond : Un framework léger de traitement de données

SmallPond est un framework léger et performant de traitement de données, basé sur DuckDB et 3FS. Il est capable de gérer des ensembles de données de plusieurs pétaoctets sans nécessiter de services à longue durée d'exécution et supporte Python 3.8 à 3.12. Son API simple permet un chargement, un traitement et un enregistrement faciles des données. Évalué avec le benchmark GraySort sur un cluster de 50 nœuds de calcul et 25 nœuds de stockage exécutant 3FS, SmallPond a trié 110,5 TiB de données en 30 minutes et 14 secondes, atteignant un débit moyen de 3,66 TiB/min.

Développement

Application Web Interactive : Un Orwellial

2025-03-02

Ce message décrit une application web très interactive nécessitant JavaScript. L'auteur rejette le terme « Bluetorial », la qualifiant d'« Orwellial » et incluant un GIF humoristique. Cela suggère que l'application est complexe et interactive, bien au-delà d'une simple interface HTML.

Développement Application Web

Matt's Script Archive : Une mine d'or de scripts CGI gratuits

2025-03-02

Matt's Script Archive (MSA) propose une multitude de scripts CGI gratuits en Perl et C++, incluant des compteurs de visiteurs, des formulaires d'envoi d'emails, des livres d'or, des forums de discussion et des moteurs de recherche. Ces scripts sont populaires depuis 1995, avec des millions de téléchargements. MSA fournit également une documentation, un centre d'aide et des services d'hébergement payants pour une utilisation et une maintenance simplifiées.

Développement outils web

Le Piège du 'Autre' dans les Énumérations : Compatibilité des Versions et Énumérations Ouvertes

2025-03-02
Le Piège du 'Autre' dans les Énumérations : Compatibilité des Versions et Énumérations Ouvertes

Cet article traite des problèmes liés à l'utilisation d'une valeur 'Autre' (par exemple, WidgetFlavor::Autre) dans les énumérations C++. L'ajout de nouvelles valeurs d'énumération pose un défi : comment les gérer et maintenir la compatibilité avec les anciennes versions du code. L'auteur suggère d'éviter complètement 'Autre' et de déclarer l'énumération comme ouverte, permettant aux programmes de gérer les valeurs non reconnues indépendamment. Cela résout élégamment les problèmes de compatibilité des versions, évitant toute confusion lors de l'ajout de nouvelles valeurs et garantissant des transitions fluides entre l'ancien et le nouveau code.

TypeScript 5.8 dit au revoir aux énumérations : une sortie digne

2025-03-02
TypeScript 5.8 dit au revoir aux énumérations : une sortie digne

TypeScript 5.8 introduit l'indicateur `--erasableSyntaxOnly`, mettant fin à l'ère des énumérations et des espaces de noms. Bien que les unions littérales offrent une ergonomie supérieure, l'auteur exprime de la nostalgie pour les énumérations. L'article souligne un avantage clé des énumérations : un meilleur support de documentation pour les membres, y compris les avertissements de dépréciation, crucial dans les grandes bases de code, une fonctionnalité absente des unions littérales. L'auteur exhorte l'équipe TypeScript à améliorer le support de documentation pour les unions littérales dans les versions futures.

CSRF, CORS et la politique de même origine : une lutte pour la sécurité des navigateurs

2025-03-02

Cet article examine les mécanismes de sécurité web de CSRF (Cross-Site Request Forgery) et CORS (Cross-Origin Resource Sharing). Bien que tous deux concernent les requêtes intersites, leurs fonctions et mécanismes diffèrent considérablement. Par défaut, les navigateurs appliquent la politique de même origine, restreignant les écritures intersites mais autorisant les lectures intersites. CSRF exploite les failles de cette politique, tandis que CORS fournit un mécanisme permettant d’autoriser des requêtes intersites spécifiques. L’article analyse l’impact de l’attribut SameSite sur CSRF, le rôle crucial des navigateurs dans l’architecture globale de sécurité, et note que l’adoption de la valeur par défaut SameSite=Lax par les navigateurs affectera directement la sécurité d’Internet.

Développement

smallpond et 3FS de DeepSeek : mettre DuckDB à l’échelle du pétaoctet

2025-03-02
smallpond et 3FS de DeepSeek : mettre DuckDB à l’échelle du pétaoctet

DeepSeek AI a publié smallpond et 3FS, conçus pour étendre la base de données DuckDB afin de gérer des ensembles de données à l’échelle du pétaoctet. smallpond est une infrastructure de traitement de données distribuée et légère qui permet à DuckDB de traiter les données en parallèle sur plusieurs nœuds, tandis que 3FS est un système de fichiers parallèle hautes performances utilisant des SSD et une mise en réseau RDMA pour un débit extrêmement élevé. Cependant, le déploiement et l’utilisation de ces outils sont complexes et nécessitent du matériel spécialisé et une expertise DevOps. Pour les ensembles de données inférieurs à 10 To, une instance DuckDB à nœud unique ou des solutions plus simples sont plus efficaces. Ce n’est que lorsqu’on gère des ensembles de données massifs que smallpond et 3FS révèlent leurs avantages.

L'essor des objets métiers agents : des données qui travaillent pour vous

2025-03-02
L'essor des objets métiers agents : des données qui travaillent pour vous

Pendant des décennies, les données d'entreprise ont été passives, attendant que les humains les traitent. Aujourd'hui, l'IA donne de l'autonomie aux données. Cet article explore le concept d'objets métiers agents (OMA), des entités intelligentes capables de gérer de manière autonome les workflows, de coordonner les ressources et même de communiquer avec d'autres systèmes. Prenant l'exemple d'une facture, l'auteur montre comment les OMA peuvent gérer indépendamment les processus d'approbation, de paiement et de rapprochement. L'article envisage des applications dans les ventes, le support et les RH, transformant l'architecture des logiciels d'entreprise et libérant les humains pour qu'ils se concentrent sur des tâches à plus forte valeur ajoutée. Ce changement nous fait passer d'opérateurs de données à orchestrateurs de processus, libérant le potentiel humain pour la créativité et l'innovation.

Développement Logiciels d'entreprise
1 2 147 148 149 151 153 154 155 214 215