Category: Développement

Construire un assistant IA familial puissant avec une simple base de données SQLite

2025-04-14
Construire un assistant IA familial puissant avec une simple base de données SQLite

Cet article détaille Stevens, un assistant IA familial construit à l'aide d'une simple base de données SQLite et de tâches cron. Il intègre les événements du calendrier, les prévisions météorologiques et les informations de courrier électronique, en envoyant un briefing quotidien via Telegram. L'architecture de Stevens est simple : une base de données SQLite centrale stockant diverses informations et des tâches cron important des données provenant de sources telles que les calendriers, les API météorologiques et les e-mails. L'auteur souligne la simplicité et encourage les lecteurs à reproduire et à étendre le projet.

Développement tâches cron

Meilisearch : Moteur de recherche open source ultra-rapide pour vos applications

2025-04-14
Meilisearch : Moteur de recherche open source ultra-rapide pour vos applications

Meilisearch est un moteur de recherche open source ultrarapide et facile à intégrer dans vos applications, sites web et workflows. Il offre des fonctionnalités prêtes à l'emploi, telles que la recherche hybride, la recherche au fur et à mesure de la saisie, la tolérance aux fautes de frappe, le filtrage et la recherche à facettes, le tri, la prise en charge des synonymes, la géorecherche et la prise en charge de plusieurs langues, pour une expérience de recherche supérieure. Meilisearch fournit une API RESTful, plusieurs SDK, une compatibilité avec l'IA et un service Cloud (Meilisearch Cloud) pour une implémentation et une maintenance faciles. Il privilégie la confidentialité des utilisateurs, permettant aux utilisateurs de désactiver la collecte de données anonymes et fournissant un canal de demande de suppression de données.

Kotlin, Swift et Ruby sortent du Top 20 de Tiobe

2025-04-14
Kotlin, Swift et Ruby sortent du Top 20 de Tiobe

Le dernier indice Tiobe Programming Community Index montre que Kotlin, Swift et Ruby sortent du top 20 des langages de programmation les plus populaires. Selon le PDG de Tiobe, Paul Jansen, ces langages ont perdu de leur attrait et sont en déclin. Ce déclin est attribué à leur utilisation principale sur des plates-formes mobiles spécifiques (Kotlin pour Android, Swift pour iOS), des alternatives multiplateformes étant désormais facilement disponibles. De plus, la domination de Python laisse moins de place à Ruby.

Développement indice Tiobe

Guide pratique de la programmation C pour les hackers

2025-04-14
Guide pratique de la programmation C pour les hackers

Ce livre, dédié à Dennis Ritchie, propose un guide pratique de la programmation C pour les hackers. L'auteur, un hacker chevronné, partage des techniques pratiques acquises au fil des années, en soulignant la puissance et la flexibilité du langage C. Il défend la liberté offerte par C, arguant que le choix du bon outil est la prérogative du programmeur, et non une question de préférences imposées. Le livre comprend des exemples de code et des discussions sur l'utilisation des extensions GNU.

Développement Guide Pratique

Arrêtez d'être indécis dans les discussions techniques : assumez vos décisions

2025-04-14

Les ingénieurs seniors évitent souvent de prendre position dans les discussions techniques, une approche apparemment prudente que l'auteur qualifie en réalité de lâcheté. L'article souligne que lorsqu'une équipe doit prendre une décision, même avec seulement 55 % de certitude, l'ingénieur le plus expérimenté doit assumer la responsabilité et donner son avis. Cela évite que des ingénieurs moins expérimentés ne proposent de mauvaises solutions et permet à la direction de travailler plus efficacement. L'auteur souligne que la direction est généralement indulgente envers les erreurs techniques, car la prise de décision implique inévitablement de l'incertitude. Cependant, des jugements systématiquement erronés nuisent à la crédibilité. L'article conclut que, bien qu'il soit justifiable d'éviter de prendre position dans des environnements de travail où la confiance fait défaut, dans la plupart des cas, assumer ses responsabilités et prendre des décisions audacieuses sont les marques d'un bon ingénieur.

Audit de sécurité PHP : plusieurs vulnérabilités révélées et corrigées

2025-04-14
Audit de sécurité PHP : plusieurs vulnérabilités révélées et corrigées

La Fondation PHP annonce la fin d'un audit de sécurité complet du code source PHP (php/php-src), commandé par la Sovereign Tech Agency et réalisé par Quarkslab. L'audit de deux mois a révélé 27 problèmes, dont 17 ayant des implications de sécurité, incluant quatre vulnérabilités ayant reçu des CVE. Ces vulnérabilités ont été corrigées, et les utilisateurs sont invités à mettre à jour vers les dernières versions de PHP. L'audit a mis en évidence la haute qualité générale du projet php/php-src et souligne l'engagement de la Fondation PHP à améliorer la sécurité et la fiabilité de PHP.

Widget de batterie Nissan LEAF DIY : Une astuce intelligente utilisant GitHub Actions et IFTTT

2025-04-14
Widget de batterie Nissan LEAF DIY : Une astuce intelligente utilisant GitHub Actions et IFTTT

Frustré par l’absence de widget d’état de la batterie dans l’application officielle Nissan et l’indisponibilité d’alternatives tierces, l’auteur a conçu une solution de contournement astucieuse. En combinant intelligemment GitHub Actions, IFTTT et Raccourcis Apple, il a créé une solution gratuite. Un workflow GitHub Actions planifié récupère les données, envoie un e-mail et IFTTT transforme le contenu de l’e-mail en un widget de l’écran d’accueil de l’iPhone affichant le niveau de la batterie de la LEAF. Bien qu’imparfait, ce hack réussi évite le coût de matériel supplémentaire ou d’abonnements, démontrant la créativité et l’expertise technique de l’auteur.

Développement

CI locale pour GitHub : oubliez le cloud, adoptez votre machine de développement

2025-04-14
CI locale pour GitHub : oubliez le cloud, adoptez votre machine de développement

Fatigué des CI cloud lentes, coûteuses et louées ? `gh-signoff`, une extension de la CLI GitHub, ramène la CI en interne ! Exécutez vos tests localement, signez-les lorsqu'ils réussissent (avec `gh signoff`), et obtenez ce statut de commit vert GitHub sans tracas. Dites adieu aux files d'attente de fusion complexes et aux pipelines de déploiement – la simplicité et le contrôle sont à vous.

Développement CI locale

Transformer Lab : Exécutez des LLMs localement, sans code

2025-04-14
Transformer Lab : Exécutez des LLMs localement, sans code

Transformer Lab est une plateforme open source qui permet à quiconque de construire, d'ajuster et d'exécuter des grands modèles de langage (LLMs) localement sans écrire une seule ligne de code. Prenant en charge des centaines de modèles populaires tels que Llama 3 et Phi 3, elle fonctionne sur différents matériels, y compris Apple Silicon et les GPU, offrant RLHF et diverses techniques d'optimisation des préférences. Les utilisateurs interagissent avec les modèles via une interface intuitive pour l'ajustement fin, l'évaluation et RAG, avec la prise en charge de plusieurs moteurs d'inférence, de plugins et de conversions de modèles. Accessible sous Windows, macOS et Linux, elle permet aux développeurs d'intégrer des LLMs dans leurs produits sans avoir besoin de connaissances en Python ou en apprentissage automatique.

Développement Exécution Locale

Docker Model Runner : simplification de l'exécution des modèles d'IA en local

2025-04-14
Docker Model Runner : simplification de l'exécution des modèles d'IA en local

Docker a lancé Model Runner, un outil conçu pour simplifier l'exécution et les tests de modèles d'IA en local. Il s'attaque aux défis auxquels sont confrontés les développeurs avec des outils fragmentés, des problèmes de compatibilité matérielle et des flux de travail déconnectés lors du travail avec des modèles d'IA en local. Model Runner intègre un moteur d'inférence basé sur llama.cpp, prend en charge l'accélération GPU sur Apple silicon et utilise les OCI Artifacts pour l'empaquetage standardisé des modèles, permettant un partage et un contrôle de version faciles. De plus, Docker s'est associé à des entreprises comme Google et Hugging Face pour fournir un riche écosystème de modèles et d'outils, facilitant considérablement le développement d'IA en local.

Développement

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

2025-04-14
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 qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données des utilisateurs. arXiv est attaché à ces valeurs et ne travaille qu'avec des partenaires qui les respectent. Vous avez une idée de projet qui apportera une valeur ajoutée à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Apprivoiser votre assistant de codage LLM amnésique : l’astuce ultime des règles Cursor

2025-04-14
Apprivoiser votre assistant de codage LLM amnésique : l’astuce ultime des règles Cursor

Utiliser des LLM comme Cursor pour coder est fantastique, mais ils ont un défaut : ils oublient tout entre les sessions. Cela signifie qu’il faut constamment rappeler à l’IA vos conventions de codage, la structure de votre projet et vos préférences. La solution ? Une méta-règle. Créez un modèle de règle qui guide l’IA dans la création d’autres règles spécifiques au projet. Cela systématise le transfert de vos connaissances, vous faisant gagner du temps et assurant la cohérence de vos projets. Ce petit investissement initial dans la création d’une méta-règle est largement rentabilisé à long terme.

Développement

Le sharding vertical : un cauchemar ?

2025-04-13
Le sharding vertical : un cauchemar ?

L'auteur raconte son expérience avec le sharding vertical (sharding fonctionnel), en soulignant ses pièges. S'il soulage la charge de la base de données, il fragmente l'application, obligeant la couche application à gérer les jointures et les requêtes qui devraient être traitées par la base de données. Cela augmente considérablement la complexité du code et la surcharge de maintenance, et réduit la disponibilité du système. Avec humour et une formule de disponibilité, l'auteur montre comment le sharding vertical réduit la stabilité du système, retardant finalement les feuilles de route du produit et démoralisant les ingénieurs. L'article se termine par la présentation de PgDog, un projet open source visant à résoudre le sharding de Postgres.

Développement

Protocole de contexte de modèle (MCP) : une nouvelle norme pour la création d’applications LLM puissantes

2025-04-13

Cet article présente le protocole de contexte de modèle (MCP), un protocole ouvert pour créer des applications de modèle linguistique de grande taille (LLM) de niveau entreprise. Le MCP résout le problème du manque de standardisation dans l’intégration des LLM avec les outils d’entreprise, permettant à des frameworks comme LangChain de s’intégrer de manière transparente à diverses sources de données et outils tels que des bases de données et GitHub. L’article détaille les composants principaux du MCP (serveur, client et hôte MCP), la configuration de l’installation et des démonstrations pratiques en Python. Cela inclut la création d’une application LangChain pour calculer les intérêts simples et composés à l’aide d’Ollama, et l’interaction avec plusieurs serveurs MCP en utilisant les modes de transport stdio et sse. Grâce au MCP, les applications LLM peuvent exploiter plus efficacement les données et les outils de l’entreprise pour des fonctionnalités plus robustes.

Développement Intégration d’outils

GNU Radio : boîte à outils de radio logicielle open source

2025-04-13

GNU Radio est une boîte à outils de développement logiciel libre et open source qui fournit des blocs de traitement du signal pour implémenter des radios logicielles (SDR). Elle peut être utilisée avec du matériel RF externe peu coûteux et facilement disponible, ou sans matériel dans un environnement de simulation. Son architecture modulaire, orientée graphe de flux, et sa vaste bibliothèque de blocs de traitement la rendent adaptée à la création d'applications de traitement du signal complexes dans les domaines de la recherche, de l'industrie et des loisirs. Bien qu'elle ne soit pas une solution prête à l'emploi pour du matériel ou des normes radio spécifiques, elle est hautement adaptable pour développer des implémentations de divers standards de communication.

Développement Traitement du Signal

Entraînement GRPO léger : sans Transformers, sans vLLM

2025-04-13
Entraînement GRPO léger : sans Transformers, sans vLLM

Ce projet implémente un framework d’entraînement GRPO (Group Relative Policy Optimization) léger, construit presque à partir de zéro, ne reposant que sur des tokeniseurs et PyTorch. Il améliore l’algorithme original en supprimant la divergence de KL et en intégrant un filtre pour les épisodes trop longs, améliorant ainsi la stabilité de l’entraînement et l’utilisation de la mémoire GPU. Le projet entraîne le modèle Qwen2.5-3B-Instruct sur la tâche CountDown, qui nécessite de générer une expression mathématique pour atteindre une valeur cible donnée un ensemble de nombres. Le modèle la résout en apprenant à générer un raisonnement en chaîne de pensée avant la réponse finale, guidé par des récompenses de format et de réponse. L’ensemble du processus est simple et reproductible, s’exécutant sur une seule GPU A40 avec un minimum de commandes.

Développement

Débogage d'un test instable avec `trace` de BCC

2025-04-13

Lors de la correction d'un projet open-source, l'auteur a rencontré des tests qui échouaient de manière intermittente. En utilisant l'utilitaire `trace` des outils BCC, les appels de fonction du noyau `touch_atime` ont été surveillés. Cela a révélé un thread d'arrière-plan dans l'éditeur de texte de l'auteur, qui analysait les fichiers du projet et modifiait les horodatages d'accès aux fichiers, causant ainsi les échecs erratiques des tests. Le cas souligne la puissance des outils BCC pour le débogage du noyau Linux et la valeur d'une compréhension approfondie du système.

EXWM : Un gestionnaire de fenêtres complet pour Emacs

2025-04-13
EXWM : Un gestionnaire de fenêtres complet pour Emacs

EXWM est un gestionnaire de fenêtres X complet pour Emacs, basé sur XELB. Entièrement contrôlé par le clavier, il propose des modes de disposition hybrides (mosaïque et empilage), une prise en charge des espaces de travail dynamiques et la conformité ICCCM/EWMH. Des fonctionnalités optionnelles incluent la prise en charge RandR (multi-écrans), une zone de notification système, la prise en charge des méthodes de saisie, la configuration de l'arrière-plan et un serveur XSETTINGS. Consultez les captures d'écran et le guide de l'utilisateur pour une vue d'ensemble complète et les instructions d'installation !

Développement

Alluocateurs d'arène et tableaux dynamiques en Odin : pièges cachés

2025-04-13
Alluocateurs d'arène et tableaux dynamiques en Odin : pièges cachés

L'utilisation d'alloueurs d'arène avec des tableaux dynamiques en Odin présente des pièges subtils. Les arènes gèrent efficacement les allocations ayant la même durée de vie, désallouant tout à la fois. Cependant, le mécanisme de croissance des tableaux dynamiques laisse des blocs de mémoire anciens non libérés lors de l'utilisation d'un alloueur d'arène, ce qui entraîne un gaspillage de mémoire. L'article explique pourquoi : les alloueurs d'arène ne prennent pas en charge les désallocations individuelles, et la croissance du tableau dynamique crée un « cimetière » de blocs anciens. Les solutions consistent à utiliser l'alloueur par défaut, à préallouer la taille maximale ou à utiliser une arène virtuelle croissante. Bien que l'arène virtuelle croissante empêche le déplacement des blocs de mémoire, elle n'est pas à l'abri des gaspillages potentiels. L'article conclut que si l'utilisation de la mémoire est très dynamique, il est conseillé d'éviter les alloueurs d'arène.

Ne vendez pas d'espace sur votre serveur domestique !

2025-04-13
Ne vendez pas d'espace sur votre serveur domestique !

Un employé technique d'une société d'hébergement de taille moyenne détaille les dangers de transformer son serveur domestique en un service cloud improvisé. L'article souligne la nécessité de matériel supplémentaire, d'une connexion Internet plus rapide, d'adresses IP publiques, d'un emplacement sécurisé, d'une protection juridique et de systèmes de facturation robustes. Il souligne également les défis liés à la gestion du support client, des sauvegardes de données, des vulnérabilités de sécurité et de la conformité à des réglementations telles que le RGPD et le CCPA, ainsi que la mitigation des risques tels que les attaques DDoS et les violations de données. Au lieu de prendre des risques juridiques et financiers, l'auteur suggère d'utiliser l'excès de capacité de calcul pour des besoins personnels, de le partager avec des amis ou de faire don de cycles à des projets de recherche.

Développement serveur domestique risques

Gatehouse-TS : Une bibliothèque d'autorisation flexible et sans dépendances en TypeScript

2025-04-13
Gatehouse-TS : Une bibliothèque d'autorisation flexible et sans dépendances en TypeScript

Gatehouse-TS est une bibliothèque d'autorisation flexible et sans dépendances écrite en TypeScript, combinant des politiques de contrôle d'accès basées sur les rôles (RBAC), basées sur les attributs (ABAC) et basées sur les relations (ReBAC). Port de la populaire bibliothèque Gatehouse Rust, elle possède une API conviviale, prend en charge la composition des politiques avec des opérateurs logiques, offre un traçage détaillé de l'évaluation pour le débogage et fournit une API de constructeur fluide pour créer des politiques personnalisées. Son design léger et sa documentation complète la rendent facilement intégrable et adaptable à divers projets.

Fennel : une amélioration de type Lisp pour Lua

2025-04-13

Fennel est un langage de programmation qui s'exécute sur l'environnement d'exécution de Lua. Il tire parti de l'efficacité et de la légèreté de Lua tout en corrigeant certaines des lacunes de Lua grâce à une syntaxe de type Lisp et une conception améliorée. Fennel utilise une syntaxe avec des parenthèses prioritaires, éliminant l'ambiguïté de la priorité des opérateurs et les retours anticipés. La gestion plus rigoureuse des variables empêche l'utilisation accidentelle de variables globales. Les améliorations incluent la notation des tables, les structures de boucle, les vérifications des arguments des fonctions, la déstructuration des structures de données et la correspondance de motifs, améliorant ainsi la lisibilité et la maintenabilité du code. Bien que Fennel offre un système de macros puissant, il n'est généralement pas nécessaire. En résumé, Fennel fournit un moyen plus sûr et plus propre de programmer en Lua.

Développement

L'arme secrète de Linux Mint : LMDE 7 est-il prêt à prendre le contrôle ?

2025-04-13
L'arme secrète de Linux Mint : LMDE 7 est-il prêt à prendre le contrôle ?

Linux Mint ajoute le support OEM à LMDE 7, son édition basée sur Debian, précédemment considérée comme une simple solution de secours. Ce mouvement inattendu alimente les spéculations sur la stratégie future de Mint. Certains utilisateurs sont mécontents de la direction de Canonical pour Ubuntu, notamment en ce qui concerne les paquets Snap et la télémétrie. LMDE, étant purement Debian, évite ces problèmes. L'ajout du support OEM suggère que LMDE pourrait être préparé pour un rôle plus important, potentiellement même pour remplacer la version Mint basée sur Ubuntu comme distribution principale. Ce développement est significatif et pourrait remodeler le paysage du bureau Linux.

Développement

FreeDOS 1.4 publié : mise à jour de stabilité pour les PC DOS hérités

2025-04-13
FreeDOS 1.4 publié : mise à jour de stabilité pour les PC DOS hérités

FreeDOS, le successeur open source de DOS, a publié la version 1.4, en se concentrant sur des améliorations de stabilité. La mise à jour inclut un installateur remanié, des versions actualisées d'outils essentiels tels que fdisk et format, et un éditeur de texte edlin mis à jour. Une « édition uniquement disquette » est disponible pour les systèmes anciens, tandis qu'un « BonusCD » propose des outils supplémentaires et l'interface graphique OpenGEM.

Développement

Programmation performante sur matériel peu puissant : mon flux de travail en terminal

2025-04-13

L'auteur partage son expérience de programmation efficace sur du matériel peu puissant (par exemple, Intel Celeron N4000 et Intel Atom x5-Z8350). Le secret réside dans une distribution Linux légère (Arch Linux), un gestionnaire de fenêtres minimaliste comme i3wm et un éditeur de texte en terminal comme Neovim avec le terminal Alacritty. Cette configuration est légère en ressources et portable sur de nombreuses machines, offrant une expérience de programmation confortable même sur du matériel peu puissant ou obsolète. De plus, l'auteur préconise des idéaux de programmation légers, en minimisant les dépendances pour améliorer les temps de compilation et la taille des fichiers binaires.

Développement

Tests de mutation Rust avec cargo-mutants

2025-04-13
Tests de mutation Rust avec cargo-mutants

cargo-mutants est un outil Rust qui améliore la qualité du code en générant des versions mutantes de votre code pour tester sa robustesse. Il identifie les bogues potentiels manqués par vos tests existants, offrant une perspective différente des outils traditionnels de couverture de code. Il se concentre sur la vérification effective du comportement du code par les tests, et non seulement sur l'atteinte du code. Facile à utiliser et intégrable à CI, il est activement maintenu et promet des améliorations futures, notamment de nouveaux types de mutation.

Développement Qualité du Code

Automatisation des corrections de bogues avec des clusters d'agents multi-LLM : moins cher que vous ne le pensez

2025-04-13
Automatisation des corrections de bogues avec des clusters d'agents multi-LLM : moins cher que vous ne le pensez

Cet article détaille une nouvelle approche de la correction automatisée des bogues utilisant plusieurs grands modèles de langage (LLM). En intégrant Asana, l'agent de codage Aider et un agent Sublayer, le système déclenche automatiquement trois LLM (GPT-4o, Claude 3.5 Sonnet et Gemini 2.0 Flash) pour tenter de corriger le même bogue. Chaque tentative s'exécute dans une branche Git séparée, ce qui donne plusieurs demandes de tirage. Cette approche d'« inférence gaspillée » s'avère étonnamment peu coûteuse et efficace, offrant redondance et solutions diverses. Même si un modèle échoue, d'autres peuvent réussir, fournissant des approches alternatives. Cette expérience montre le potentiel de cette correction de bogues automatisée, multimodèle et peu coûteuse, suggérant un changement de paradigme dans le développement futur.

Développement

Osprey : La protection de votre navigateur

2025-04-13
Osprey : La protection de votre navigateur

Osprey est une extension de navigateur conçue pour vous protéger des sites web malveillants. Elle vérifie les URL contre les menaces connues et bloque l'accès aux sites dangereux, affichant un avertissement si un site malveillant est détecté. Facile à installer depuis la Chrome Web Store ou les extensions Microsoft Edge, Osprey propose également des instructions d'installation manuelle. Personnalisez les options de protection et obtenez de l'aide via le système de suivi des problèmes.

Développement protection anti-malware

Chiffrement de disque nouvelle génération de DragonFlyBSD : dm_target_crypt_ng

2025-04-13

DragonFlyBSD a reçu une mise à jour majeure : dm_target_crypt_ng, une implémentation de chiffrement de disque de nouvelle génération. Le développeur Michael Neumann a repensé le code DM-crypt pour améliorer les performances et l’interactivité. La nouvelle version abandonne opencrypto et cryptodev, optant pour une API de chiffrement par blocs symétriques simplifiée et utilisant deux pools de travailleurs pour une meilleure efficacité. Elle prend actuellement en charge le chiffrement AES-CBC et AES-XTS, avec des plans pour ajouter la prise en charge de Twofish et Serpent. Cette mise à jour améliore considérablement la réactivité du système, offrant une expérience de chiffrement de disque plus fluide aux utilisateurs de DragonFlyBSD. Elle devrait devenir la valeur par défaut dans la prochaine version de DragonFlyBSD 6.4.

Développement Chiffrement de disque

Une approche personnelle de la gestion des paquets Unix

2025-04-13

L'auteur partage une méthode astucieuse pour gérer ses paquets logiciels personnels sur les systèmes Unix. Il utilise un arbre de répertoires `~/lib/` pour stocker les logiciels pour différentes architectures, chaque programme étant installé dans un sous-répertoire séparé et versionné (par exemple, `emacs-30.1`). Un répertoire `~/bin/bin.` contient des liens symboliques ou des scripts d'encapsulation pointant vers ces programmes, permettant de basculer facilement entre les versions. Pour les outils comme pipx et Cargo, l'auteur conserve leurs emplacements d'installation par défaut, mais crée des liens dans `~/bin/bin.` pour éviter les conflits de chemin. Cette configuration n'est pas parfaite, mais elle est très utile pour gérer les logiciels indisponibles via le gestionnaire de paquets du système ou trop anciens.

Développement gestion de logiciels
1 2 113 114 115 117 119 120 121 214 215