Category: Développement

Protocoles Python : Typage canard statique et évolution de l’héritage

2025-02-02
Protocoles Python : Typage canard statique et évolution de l’héritage

Le mécanisme d’héritage de Python a toujours été intéressant. Traditionnellement, Python utilise l’héritage basé sur les types, similaire à Java. Cependant, la flexibilité du typage canard (implémenté via des méthodes magiques) est limitée. Le PEP 544 introduit les protocoles, permettant la définition d’un sous-typage structurel, également appelé typage canard statique. En héritant de la classe Protocol, les développeurs peuvent déclarer un ensemble de méthodes ; toute classe implémentant ces méthodes sera considérée comme une instance de ce protocole. Cela résout les problèmes d’évolutivité du typage canard traditionnel, résultant en un code plus propre et plus facile à maintenir.

Développement Typage canard

Sniffnet : Un puissant moniteur de trafic réseau multiplateforme et open source

2025-02-02
Sniffnet : Un puissant moniteur de trafic réseau multiplateforme et open source

Sniffnet est un outil gratuit et open source de surveillance du trafic réseau, disponible sur plusieurs plateformes et dans de nombreuses langues. Son interface intuitive permet aux utilisateurs de surveiller facilement le trafic réseau, de visualiser des graphiques en temps réel, d'exporter des fichiers PCAP et d'identifier les services et protocoles. Sniffnet prend également en charge les thèmes personnalisés, les notifications et les filtres, et inclut un wiki complet. Bien que les systèmes plus anciens puissent nécessiter la configuration d'une variable d'environnement pour changer de moteur de rendu, Sniffnet est un outil puissant et convivial dans l'ensemble.

Développement surveillance réseau

Lume : une CLI légère pour gérer les VMs sur Apple Silicon

2025-02-02
Lume : une CLI légère pour gérer les VMs sur Apple Silicon

Lume est une interface en ligne de commande (CLI) légère et un serveur d'API local pour créer, exécuter et gérer des machines virtuelles (VMs) macOS et Linux sur Apple Silicon avec des performances quasi natives, en utilisant le Virtualization.Framework d'Apple. Exécutez des images macOS pré-construites en une seule étape. L'interface CLI offre un ensemble complet de commandes pour la gestion des VMs, notamment la création, l'exécution, la liste, l'obtention d'informations détaillées, la configuration, l'arrêt, la suppression, le téléchargement d'images, le clonage et la gestion du cache. Lume expose également un serveur d'API HTTP local pour la gestion automatisée des VMs.

Développement

OmiAI : Le SDK d'IA qui fonctionne simplement

2025-02-02
OmiAI : Le SDK d'IA qui fonctionne simplement

OmiAI est un SDK d'IA en TypeScript qui sélectionne automatiquement le meilleur modèle parmi une suite de modèles triés sur le volet en fonction de votre requête. Il intègre un raisonnement de type o3, des outils sélectionnés, un accès à Internet et une prise en charge multimodale complète pour presque tous les types de médias. Imaginez utiliser un seul LLM qui excelle dans tout - c'est la promesse d'OmiAI. Il enchaîne intelligemment les modèles pour les tâches complexes, possède un raisonnement et un appel d'outils intégrés, et offre un support multi-modal et un accès à Internet en temps réel. Simplifiez votre flux de travail LLM avec OmiAI.

Développement SDK IA

Modest : Une bibliothèque Lua pour l'harmonie musicale

2025-02-02
Modest : Une bibliothèque Lua pour l'harmonie musicale

Modest est une bibliothèque Lua robuste pour l'harmonie musicale, offrant des objets Chord, Note et Interval qui gèrent une large gamme d'accords, des accords majeurs/mineurs simples aux accords de jazz complexes. Elle dispose d'une analyse de chaînes flexible pour l'identification des accords, de capacités de transposition et de récupération des notes individuelles. Facile à installer via LuaRocks ou compilation manuelle, Modest prend en charge Lua 5.4 et LuaJIT et évite de polluer l'espace de noms global. Ses fonctionnalités principales, notamment l'identification des accords, la transposition, l'extraction des notes et les calculs d'intervalles, fournissent des outils efficaces pour le développement de logiciels musicaux.

Développement Musique

Plongeon au cœur du cache Caffeine : Décryptage de Window TinyLFU et implémentations efficaces

2025-02-02

Cet article explore en profondeur les mécanismes internes de la bibliothèque de cache haute performance Caffeine, en se concentrant sur sa politique d'évictions unique Window TinyLFU. Il explique comment Window TinyLFU combine les informations de fréquence et de fraîcheur d'accès, utilisant une structure de données CountMinSketch pour une estimation efficace de la fréquence. De plus, l'article analyse les mécanismes d'expiration de Caffeine basés sur des files d'attente ordonnées et une roue de temporisation hiérarchique, et comment sa politique de cache adaptative ajuste dynamiquement la configuration du cache en utilisant un algorithme de montée de gradient pour atteindre une gestion de cache haute performance.

Développement

Qodo Merge 1.0 : L'évolution de la revue de code assistée par IA

2025-02-02
Qodo Merge 1.0 : L'évolution de la revue de code assistée par IA

Qodo Merge 1.0, un outil de revue de code piloté par l'IA, répond aux défis inhérents au codage assisté par IA après plus d'un an de développement. La nouvelle version propose un mode de focalisation sur les problèmes qui priorise les problèmes critiques tels que les bogues et les failles de sécurité ; un apprentissage dynamique qui affine les suggestions en fonction des modifications acceptées ; une intégration du contexte des tickets en temps réel ; et une commande `/implement` pour traduire les commentaires en modifications de code exploitables. Qodo Merge 1.0 rend la revue de code plus précise, plus adaptative et plus efficace.

Développement Revue de code IA

Vaincre la récursivité gauche : correction de la grammaire d’un décompilateur C++

2025-02-02

Cet article détaille le parcours de l’auteur pour résoudre les problèmes de récursivité gauche et de récursivité gauche mutuelle dans une grammaire sans contexte (CFG) lors de la réécriture du décompilateur C++ de RizinOrg, rz-libdemangle. Il commence par expliquer les concepts de récursivité gauche et de récursivité gauche mutuelle, en montrant à l’aide d’exemples simples et de diagrammes d’état comment transformer les grammaires récursives gauches en grammaires récursives droites pour éviter la récursivité infinie. L’auteur partage ensuite un problème réel rencontré dans le décompilateur Itanium ABI, présentant une grammaire complexe avec récursivité gauche et récursivité gauche mutuelle, et comment il a utilisé des macros et des transformations de grammaire intelligentes pour résoudre ces problèmes, évitant ainsi les erreurs de dépassement de pile.

PL/Rust : Performances natives pour les fonctions PostgreSQL en Rust

2025-02-02
PL/Rust : Performances natives pour les fonctions PostgreSQL en Rust

PL/Rust est un langage procédural chargeable permettant le développement de fonctions PostgreSQL en Rust, compilant en code machine natif pour des performances optimales. Contrairement aux alternatives interprétées, il exploite l'écosystème de Rust et la sécurité à la compilation. Il fournit un accès à l'API SPI de Postgres (y compris les requêtes dynamiques et les instructions préparées), des types Rust sécurisés pour la plupart des types de données Postgres et la prise en charge des fonctions de déclenchement. Sur les systèmes Linux x86_64 et aarch64, il fonctionne comme un langage « fiable », offrant des garanties de sécurité améliorées ; ailleurs, il fonctionne comme « non fiable ». Une documentation complète, des instructions d'installation et une prise en charge de la compilation croisée sont disponibles.

Développement

SQL ou la mort ? Série de séminaires de la CMU explorant l'avenir des bases de données

2025-02-02
SQL ou la mort ? Série de séminaires de la CMU explorant l'avenir des bases de données

Le groupe de recherche sur les bases de données de l'Université Carnegie Mellon organise une série de séminaires, "SQL ou la mort ?", explorant les moyens d'améliorer considérablement les performances de SQL ou de le remplacer entièrement. Les exposés en ligne présentent des experts discutant des progrès en matière d'optimisation des requêtes et des langages de requête alternatifs. Les sujets vont des procédures stockées TypeScript aux langages innovants tels que PRQL et OxQL, promettant un aperçu fascinant de l'avenir de la technologie des bases de données.

Développement langage de requête

Binaires natifs multiplateformes de Mill via Github Actions

2025-02-02

Le projet Mill utilise Github Actions pour construire des binaires natifs sur différentes plateformes (Mac, Windows, Linux) et les télécharger sur Maven Central. Une configuration astucieuse sépare la publication des artefacts compatibles JVM des binaires natifs spécifiques à la plateforme, assurant ainsi une compatibilité multiplateforme. Les tâches personnalisées `artifactName` et `jar` génèrent des fichiers versionnés avec des suffixes OS et architecture CPU, permettant aux utilisateurs de choisir l'exécutable approprié pour leur environnement.

Les pointeurs sont compliqués II : Bogues subtils dans les optimisations LLVM

2025-02-02

Cet article explore l’importance d’une sémantique précise pour les représentations intermédiaires du compilateur (IR), en particulier pour les langages comme C, C++ et Rust qui permettent la manipulation de pointeurs non sécurisés. L’auteur montre comment une séquence de trois optimisations du compilateur LLVM apparemment correctes peut conduire à un comportement incorrect du programme. La cause première est la provenance des pointeurs : les informations supplémentaires intégrées à un pointeur au-delà de son adresse mémoire, qui précisent comment il a été calculé. Cela nécessite une spécification IR LLVM plus précise, y compris une définition précise du comportement indéfini (UB). Considérer les IR des compilateurs comme des langages de programmation autonomes avec des spécifications rigoureuses est essentiel pour résoudre ces problèmes.

Développement sémantique des pointeurs

Les développeurs open source confrontés aux sanctions de l'OFAC : un nouveau guide pour naviguer dans la complexité

2025-02-02
Les développeurs open source confrontés aux sanctions de l'OFAC : un nouveau guide pour naviguer dans la complexité

Les sanctions OFAC du gouvernement américain ont un impact sur la communauté open source, en restreignant notamment la collaboration avec les développeurs de pays sanctionnés. La Fondation Linux a publié un guide complet pour aider les développeurs open source à comprendre et à respecter les réglementations de l'OFAC, évitant ainsi les risques juridiques liés à la collaboration avec des personnes ou des entités sanctionnées. Le guide met en évidence la « règle des 50 % », clarifie la portée de l'exemption pour les « documents d'information » et met en garde les développeurs contre l'engagement bidirectionnel ou la collaboration indirecte avec des développeurs de régions sanctionnées. Bien que la conformité ne soit pas facile, ce guide constitue une ressource précieuse pour les développeurs qui naviguent dans l'intersection complexe de la technologie, du droit et des relations internationales.

Développement Sanctions OFAC Conformité

Adieu, souris : créer un bureau productif sans souris

2025-02-01

Fatigué de votre souris ? L’auteur partage son expérience de création d’un bureau sans souris. En utilisant des outils tels que le gestionnaire de fenêtres à mosaïque déroulante PaperWM, les mots clés de signets Firefox, l’extension de navigateur Vimium et le client de messagerie basé sur un terminal Aerc, ainsi que l’extension Quake Terminal de GNOME et Input Remapper, l’auteur a considérablement augmenté sa productivité et amélioré son ergonomie. L’article détaille comment utiliser et configurer ces outils, et partage son expérience de masquage des barres de menus et d’outils d’Emacs pour réduire encore davantage la dépendance à la souris.

Développement sans souris

Cosmopolitan 3.0 : Écrivez une fois, exécutez partout (et plus vite !)

2025-02-01
Cosmopolitan 3.0 : Écrivez une fois, exécutez partout (et plus vite !)

La bibliothèque Cosmopolitan version 3.0 est arrivée ! Après près d’un an de développement, cette version révolutionne la donne. Un seul exécutable s’exécute désormais sur les architectures AMD64 et ARM64 sous Linux, macOS, Windows, FreeBSD, OpenBSD et NetBSD. Ceci est rendu possible grâce à un nouveau lieur, apelink.c, qui tisse habilement ensemble les formats de fichiers PE, ELF, Mach-O et PKZIP. Cosmopolitan 3.0 offre également des améliorations considérables de la compatibilité avec Windows et macOS, ainsi que des gains significatifs en vitesse et en efficacité mémoire. Une « distribution Linux volumineuse », Cosmos, est incluse, contenant des outils tels que Emacs, Vim et CoreUtils. Cette approche novatrice offre non seulement une portabilité inégalée, mais aussi des performances supérieures.

Développement exécutable

Supprimez vos en-têtes collants !

2025-02-01

L'auteur déteste les en-têtes collants, ces éléments persistants qui restent en haut des sites web et volent un précieux espace d'écran. Pour lutter contre cette nuisance, il a créé un simple signet qui supprime tous les éléments à position fixe d'une page web en un seul clic. Le signet utilise `querySelectorAll` pour trouver et supprimer efficacement ces éléments, ce qui donne une expérience de lecture plus propre. L'auteur détaille les inconvénients des en-têtes collants, tels que l'espace d'écran réduit, le défilement interrompu par la barre d'espace et l'interruption du flux de lecture. Bien qu'il puisse supprimer d'autres éléments fixes, une simple actualisation les restaure. Cette solution simple évite la complexité des feuilles de style personnalisées ou des extensions de navigateur.

Développement signet

Auto-Commit Bot : Commits Git Automatisés avec l'IA Gemini

2025-02-01
Auto-Commit Bot : Commits Git Automatisés avec l'IA Gemini

L'Auto-Commit Bot est un outil Python qui automatise les flux de travail Git. Il surveille un répertoire pour détecter les modifications, génère des messages de commit descriptifs à l'aide de l'IA de Google Gemini et les valide. Cela élimine les tâches répétitives et garantit des messages cohérents. Les fonctionnalités incluent la surveillance des fichiers en temps réel, la validation automatique, des messages de commit basés sur l'IA et une personnalisation facile. Il suffit d'installer les dépendances, de configurer votre clé API et d'exécuter la commande.

Développement

Exécuter Python et Pygame sur un PC Linux portable à 30 $

2025-02-01

Cet article explique comment l'auteur a installé Debian et exécuté Python et Pygame sur la console portable Miyoo A30 à environ 30 $. Après avoir installé spruceOS, un environnement Debian chroot avec Python 3, Pygame et les bibliothèques nécessaires a été créé à l'aide de debootstrap. Pour résoudre les problèmes de pilotes graphiques et d'entrée, les bibliothèques essentielles ont été copiées de spruceOS vers le chroot. Enfin, un script a été écrit pour ajouter un jeu Pygame à l'interface spruceOS, exécutant avec succès un jeu personnalisé sur le Miyoo A30. Bien que le problème de rotation de l'écran à 90 degrés persiste, cet article fournit un guide complet pour exécuter des programmes complexes sur une console portable à faible coût.

Développement

Arrêtez de surutiliser les flags de fonctionnalités : ils sont souvent inutiles

2025-02-01
Arrêtez de surutiliser les flags de fonctionnalités : ils sont souvent inutiles

De nombreuses équipes dépendent excessivement des logiciels de gestion des flags de fonctionnalités, croyant qu’ils résolvent tous les problèmes, mais cela introduit complexité et risques. Cet article soutient que, pour la plupart des équipes, un simple fichier de configuration JSON suffit ; il est lu au démarrage de l’application pour contrôler la visibilité des fonctionnalités. La surutilisation des flags de fonctionnalités conduit à un code difficile à gérer et à une augmentation des risques de sécurité. L’auteur suggère que seul le besoin de modifications de fonctionnalités en temps réel à grande échelle justifie l’utilisation d’un logiciel de gestion des flags de fonctionnalités complexe, évitant ainsi l’optimisation prématurée.

Développement flags de fonctionnalités

BZip3 : Un successeur supérieur à BZip2

2025-02-01
BZip3 : Un successeur supérieur à BZip2

BZip3 est un successeur plus rapide et plus efficace de BZip2, offrant des taux de compression plus élevés et des performances améliorées. Ceci est réalisé grâce à un codeur d'entropie de mélange de contexte d'ordre 0, une transformation Burrows-Wheeler rapide utilisant des tableaux de suffixes, et une passe RLE avec Lempel Ziv + Prédiction basée sur la correspondance de chaînes de style LZ77 et la modélisation de contexte de style PPM. Des benchmarks le comparant à d'autres algorithmes de compression, y compris des tests sur une archive massive de code source Perl, démontrent ses avantages significatifs. Les performances de BZip3 dépendent fortement du compilateur, les versions x64 Linux clang13 affichant des vitesses impressionnantes. Le projet est sous licence LGPLv3.

Développement

Reprompt : Accélérez votre carrière en IA de 3 à 4 ans

2025-02-01
Reprompt : Accélérez votre carrière en IA de 3 à 4 ans

Reprompt recrute ! Vous souhaitez accélérer votre carrière en IA ? Rejoignez-nous et gagnez 3 à 4 ans d'expérience en seulement trois ans. Devenez un expert IA top 0,01 %, collaborez avec des ingénieurs expérimentés de Facebook, Robinhood et Mapbox, et apprenez le financement, la gestion de produit et le leadership d'équipe. Vous construirez des systèmes d'extraction de données IA de pointe. Un esprit de collaboration, de l'adaptabilité et une forte éthique de travail sont essentiels.

Mon générateur simple de nombres aléatoires est devenu viral (et a planté)

2025-02-01
Mon générateur simple de nombres aléatoires est devenu viral (et a planté)

Des mois après avoir créé un site web simple de génération de nombres aléatoires, l'auteur l'avait presque oublié. Récemment, il est devenu viral de manière inattendue, entraînant un afflux de visiteurs et divers problèmes de serveur : épuisement du pool de connexions, erreurs d'analyse des UUID et requêtes malveillantes. Grâce aux journaux, à la surveillance et au débogage, l'auteur a progressivement résolu ces problèmes et ajouté des mesures préventives telles que la limitation de débit et des restrictions de longueur de caractères. Cette expérience a mis en évidence l'importance d'une journalisation, d'une surveillance et de mesures robustes, même pour des projets apparemment simples.

Développement dépannage du serveur

Apple open source Swift Build : un système de build unifié pour Swift

2025-02-01
Apple open source Swift Build : un système de build unifié pour Swift

Apple a mis en open source Swift Build, son puissant moteur de build extensible utilisé par Xcode et les systèmes d'exploitation d'Apple. Swift Build vise à fournir une expérience de build multiplateforme cohérente et flexible pour les projets Swift, avec prise en charge de Linux et de Windows. Il intègre de manière robuste le compilateur Swift, optimise le graphe de build pour un parallélisme maximal et prend en charge une grande variété de types de produits. Cela résout les incohérences entre les différents systèmes de build utilisés dans Swift Package Manager et Xcode. Ce changement devrait offrir aux développeurs Swift une expérience de développement plus cohérente et efficace, jetant les bases d'améliorations et d'optimisations futures.

Développement Système de Build

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

2025-02-01
arXivLabs : Expérimenter avec des fonctionnalités pilotées par la communauté

arXivLabs est un cadre permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur le site Web. Les participants, à la fois individus et organisations, adhèrent aux valeurs d'arXiv : ouverture, communauté, excellence et confidentialité des données utilisateur. arXiv est engagé envers ces valeurs et ne s'associe qu'avec ceux qui les partagent. Vous avez une idée de projet qui bénéficiera à la communauté arXiv ? En savoir plus sur arXivLabs.

arXivLabs : Collaboration communautaire sur les fonctionnalités d'arXiv

2025-02-01
arXivLabs : Collaboration communautaire sur les fonctionnalités d'arXiv

arXivLabs est un cadre expérimental permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités d'arXiv directement sur le site web. Les participants doivent adhérer aux valeurs d'arXiv : ouverture, communauté, excellence et confidentialité des données utilisateur. Vous avez une idée pour améliorer la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Exécuter DeepSeek R1 sur votre propre matériel : un guide rapide et facile

2025-02-01

Cet article fournit un guide simple sur la façon d'exécuter le grand modèle linguistique DeepSeek R1 sur votre propre matériel. Utilisant Arch Linux et l'outil Ollama, l'auteur guide le lecteur à travers l'installation, la configuration et l'exécution de DeepSeek R1. Le processus nécessite un ordinateur ou une machine virtuelle avec un GPU dédié et quelques connaissances de base en Linux. La sécurité est soulignée ; il est recommandé de ne pas exécuter ceci sur votre système principal. Finalement, le lecteur peut exécuter DeepSeek R1 localement, profitant d'une expérience IA sans cloud, sans abonnement et sans fuite de données.

Développement IA Locale

FOSDEM 2024 : Un programme riche en nouveautés open source

2025-02-01
FOSDEM 2024 : Un programme riche en nouveautés open source

Le programme de FOSDEM 2024 est disponible, avec une grande variété de conférences et d'ateliers. Les sujets incluent Rust pour Linux, un nouvel alloueur de mémoire, LLVM libc, les extensions SMB3.11 Unix, NixOS, les tests de documentation d'API avec IA, un RISC-V TEE, un garbage collector à point de sécurité, une détection de spam améliorée et bien plus encore. Les panels couvrent l'éthique de l'IA, l'intégration d'applications collaboratives, la base de données unifiée RISC-V, les mises à jour d'Android, HAMNET, DPoP et OpenLayers. Même les développeurs juniors sont servis avec des introductions à la programmation Python et informatique. Quel que soit votre domaine d'intérêt, FOSDEM 2024 a quelque chose pour vous.

Développement Conférence Développeurs

Visualisation des livres du monde dans l'espace ISBN

2025-02-01
Visualisation des livres du monde dans l'espace ISBN

Un développeur a créé une visualisation impressionnante des livres du monde entier à l'aide des ISBN. Des algorithmes intelligents et des courbes de remplissage d'espace mappent des ensembles de données massifs dans un espace 2D, rendus en temps réel avec WebGL et des shaders GLSL. Les utilisateurs peuvent explorer les années de publication, les pays, et plus encore, en personnalisant même la visualisation. Ce projet met en évidence la puissance de la visualisation de données et la passion d'un développeur pour le savoir et la technologie.

Développement

De Vim et Jekyll à Dropbox Paper : Amélioration de mon flux de travail de blogging

2025-02-01

Le blogueur Kyle Conroy revient sur six ans de blogging inefficace, avec une moyenne de moins d'un article par an. Son flux de travail précédent impliquait d'écrire du Markdown dans Vim, de générer du HTML avec Jekyll et de le déployer sur Heroku, un processus lourd et non collaboratif. Après avoir essayé Dropbox Paper, il a découvert que l'exportation Markdown, la collaboration en temps réel et les fonctionnalités de commentaires amélioraient considérablement son efficacité d'écriture, lui permettant même d'écrire sur son téléphone portable en attendant dans une file d'attente. Bien que l'API de Paper présente quelques limitations, il a publié un client Go open source et prévoit de continuer à utiliser Paper pour son blog.

arXivLabs : Développement de fonctionnalités arXiv piloté par la communauté

2025-02-01
arXivLabs : Développement de fonctionnalités arXiv piloté par la communauté

arXivLabs est un cadre 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 s'engage envers 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
1 2 171 172 173 175 177 178 179 214 215