Category: Développement

Exfiltration de jetons PyPI via workflows GitHub Actions compromis

2025-09-20
Exfiltration de jetons PyPI via workflows GitHub Actions compromis

Une récente campagne d'attaque ciblait les workflows GitHub Actions pour voler des jetons de publication PyPI. Les attaquants ont modifié les workflows dans divers référentiels, envoyant des jetons PyPI stockés comme secrets GitHub vers des serveurs externes. Bien que certains jetons aient été exfiltrés, ils n'ont pas été utilisés sur PyPI. Tous les jetons affectés ont été invalidés et les mainteneurs impactés ont été notifiés. Il est recommandé d'utiliser les Trusted Publishers de GitHub Actions pour atténuer les attaques futures.

Développement Brèche de sécurité

MapSCII : Explorez le monde dans votre terminal

2025-09-20
MapSCII : Explorez le monde dans votre terminal

MapSCII est un rendu de tuiles vectorielles basé sur Node.js qui affiche des cartes en Braille et en ASCII dans les terminaux compatibles xterm. Il inclut des fonctionnalités telles que le glisser-déposer et le zoom avec la souris, un style de couche personnalisable (compatible avec Mapbox Styles), la connexion à des serveurs de tuiles vectorielles publics ou privés, et l'utilisation hors ligne avec des VectorTile/MBTiles locaux. L'installation est simple, compatible avec divers systèmes d'exploitation et terminaux. Des algorithmes hautement optimisés garantissent une expérience fluide. Il est open-source, gratuit et utilise des données OpenStreetMap sous les licences ODbL et CC BY-SA.

Développement

Chiffrement de cri: Une utilisation novatrice des caractères Unicode

2025-09-20
Chiffrement de cri: Une utilisation novatrice des caractères Unicode

Cet article présente un algorithme cryptographique amusant - le "Chiffrement de cri" - qui utilise les nombreuses variations du caractère Unicode 'A' pour chiffrer du texte. Un simple mappage de dictionnaire remplace les lettres standard par différents caractères 'A' pour le chiffrement et le déchiffrement. Le code Python démontre l'implémentation de l'algorithme, chiffrant et déchiffrant avec succès le texte exemple "SCREAM CIPHER". Cela met en évidence la richesse du jeu de caractères Unicode, offrant une méthode de chiffrement unique, bien que simple.

Développement

Assistants de codage IA : la revue de code est essentielle

2025-09-20

Les grands modèles de langage excellent dans la génération de code, mais manquent du jugement d'un ingénieur logiciel expérimenté, conduisant souvent à de mauvaises décisions de conception. L'auteur utilise des anecdotes personnelles pour illustrer comment les assistants de codage IA (tels que Codex et Claude Code), bien que puissants, nécessitent une supervision étroite pour les empêcher de se diriger vers des impasses architecturales. L'auteur soutient que la maîtrise de la revue de code, en se concentrant particulièrement sur la structure du code et en identifiant les possibilités d'amélioration, est essentielle à l'utilisation efficace de ces outils. Une dépendance aveugle ou une microgestion excessive nuiront à la productivité. En fin de compte, l'auteur affirme que le codage IA actuel ressemble plus à du « codage centaure » — une collaboration entre humains et machines — qu'à un remplacement complet des humains.

Développement

XMonad recherche un développeur pour le portage Wayland

2025-09-20

L'équipe de développement de XMonad collecte des contributions depuis deux ans pour financer un développeur afin de porter XMonad sur Wayland. Ils disposent désormais de fonds suffisants, mais manquent d'un développeur adéquat. Le portage existant est fortement détérioré, utilisant une ancienne version buggée de wlroots. Un défi majeur est l'absence d'identifiants uniques pour les hooks de gestion des fenêtres dans les programmes Wayland. L'équipe recherche de l'aide sur son forum Discourse et accueille les propositions des développeurs intéressés.

Développement

RMCP : Révolutionner l'analyse statistique avec le langage naturel

2025-09-20
RMCP : Révolutionner l'analyse statistique avec le langage naturel

RMCP est un puissant serveur de protocole de contexte de modèle (MCP) offrant plus de 40 outils d'analyse statistique couvrant la régression, l'analyse des séries temporelles, l'apprentissage automatique, et plus encore. Les utilisateurs interagissent via le langage naturel avec des assistants IA pour effectuer de manière transparente des tâches complexes de modélisation statistique et de science des données. RMCP prend en charge divers formats d'importation et d'exportation de données, inclut une récupération intelligente des erreurs et simplifie considérablement le flux de travail d'analyse. Son constructeur de formules en langage naturel intégré convertit les descriptions en langage naturel en formules R, fournissant des visualisations. Des analystes commerciaux et des économistes aux scientifiques des données, RMCP améliore considérablement l'efficacité.

Développement

arXivLabs : Développement de nouvelles fonctionnalités arXiv en collaboration avec la communauté

2025-09-20
arXivLabs : Développement de nouvelles fonctionnalités arXiv en collaboration avec la communauté

arXivLabs est une plateforme permettant aux développeurs de collaborer et de partager de nouvelles fonctionnalités arXiv directement sur le site web d'arXiv. 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

Archy : Un éditeur de texte programmable inspiré de THE

2025-09-20
Archy : Un éditeur de texte programmable inspiré de THE

Archy est un éditeur de texte puissant où les commandes ne sont pas prédéfinies, mais sont des scripts Python définis par l'utilisateur. Cela permet une flexibilité incroyable ; les utilisateurs peuvent créer des commandes personnalisées pour effectuer des actions telles que des recherches sur le Web (commande GOOGLE) ou l'envoi d'e-mails (commande EMAIL). Contrairement à THE, les commandes d'Archy existent sous forme de documents dans l'espace de travail, modifiables à la volée sans redémarrage. Archy dispose également d'un contrôle de version, en enregistrant les versions de l'espace de travail pour une restauration facile. L'article montre comment créer et exécuter des commandes personnalisées, explorant la philosophie de conception d'Archy et ses applications potentielles sur les plates-formes modernes. L'auteur déplore le manque d'approches similaires dans les systèmes modernes, de plus en plus verrouillés.

Développement

Quatre façons de trouver l'argmin des flottants en Rust (et leurs performances)

2025-09-20

Cet article explore quatre méthodes pour trouver rapidement l'indice de la valeur minimale dans un grand tableau de nombres à virgule flottante en Rust. La première méthode utilise `min_by` et `total_cmp`, prenant 511 microsecondes ; la seconde utilise `reduce`, prenant 489 microsecondes ; la troisième utilise `partial_cmp`, prenant 470 microsecondes ; et la quatrième exploite la représentation binaire des flottants positifs, les convertissant en `u32` pour la comparaison, ne prenant que 370 microsecondes - une accélération de 30 %. La quatrième méthode s'avère la plus efficace pour les tableaux contenant uniquement des nombres positifs, exploitant intelligemment la représentation interne des flottants pour éviter des comparaisons complexes.

Développement

Compilation avec des Continuations : Rétrospective et Revue

2025-09-20

Cette revue revient sur le livre d'Appel de 1992, "Compiling with Continuations". L'auteur explore l'explication détaillée du livre sur les techniques de compilation utilisant les continuations, couvrant des sujets tels que le langage MiniML, l'analyse lexicale, l'analyse syntaxique, le langage CPS, la conversion de clôtures, le débordement de registres et la machine virtuelle. Malgré l'absence d'exercices et le fait qu'il montre son âge sur certains points, le livre offre des informations précieuses sur Standard ML et le style de passage de continuation, en particulier pour ceux qui étudient la conception de compilateurs et la programmation fonctionnelle. Cependant, les ambiguïtés dans les détails d'implémentation et l'absence de discussion sur les technologies de compilation modernes rendent la lecture difficile.

Développement

C0 : Un cache de lecture haute performance pour le stockage d’objets

2025-09-20
C0 : Un cache de lecture haute performance pour le stockage d’objets

C0 est une API HTTP haute performance conçue pour mettre en cache des blobs immuables dans un stockage d’objets. Elle utilise un cache hybride mémoire et disque (basé sur foyer) et fonctionne avec n’importe quel backend compatible S3, mais utilise sa propre API /fetch nécessitant un en-tête Range précis. Avec une taille de page fixe de 16 MiB, C0 mappe les plages de bytes demandées à des recherches alignées sur les pages, fusionne les requêtes concurrentes pour la même page et utilise des requêtes de couverture pour gérer la latence de queue du stockage d’objets. Elle peut même essayer des buckets redondants. C0 offre des options de configuration étendues, y compris les paramètres de délai d’expiration, les mécanismes de nouvelle tentative et la priorisation des buckets, et fournit une surveillance des performances via les points de terminaison /stats et /metrics. Des images Docker sont disponibles.

Développement

Vérifications des dépendances inversées de CRAN : une approche unique de la maintenance logicielle

2025-09-20
Vérifications des dépendances inversées de CRAN : une approche unique de la maintenance logicielle

Un ingénieur logiciel chevronné, initialement déconcerté par le gestionnaire de paquets R, CRAN, et ses vérifications des dépendances inversées, partage son expérience. Contrairement à npm ou PyPI, CRAN vérifie tous les paquets qui dépendent d'un paquet soumis avant sa publication. L'auteur explique comment l'approche de CRAN affecte la maintenance logicielle, soulignant sa contribution à la stabilité de l'écosystème R. Cette expérience a finalement changé la perspective de l'auteur sur la maintenance logicielle, menant à une compréhension de la « mentalité monorépo » : les développeurs assument la responsabilité de tous les projets qui dépendent de leur code.

Développement

Sécurité de la chaîne d'approvisionnement d'Obsidian : Une approche prudente

2025-09-20
Sécurité de la chaîne d'approvisionnement d'Obsidian : Une approche prudente

Obsidian, une application de prise de notes, utilise une stratégie de sécurité rigoureuse pour atténuer les attaques de la chaîne d'approvisionnement. Cela implique de minimiser les dépendances tierces, de fixer strictement la version de toutes les dépendances avec un fichier de verrouillage et un processus de mise à niveau minutieux (y compris les revues ligne par ligne du journal des modifications et des tests approfondis), d'éviter les scripts post-installation et d'implémenter un délai significatif entre les mises à niveau des dépendances et les versions pour permettre à la communauté et aux chercheurs de détecter les versions malveillantes. Ces mesures réduisent considérablement la vulnérabilité d'Obsidian aux attaques de la chaîne d'approvisionnement, garantissant ainsi la sécurité et la confidentialité des données des utilisateurs.

Développement

Zedis : Un stockage de données en mémoire compatible Redis écrit en Zig

2025-09-19
Zedis : Un stockage de données en mémoire compatible Redis écrit en Zig

Zedis est un stockage de données en mémoire compatible avec Redis, écrit en Zig, conçu pour l'apprentissage et l'expérimentation. Il implémente le protocole Redis principal et les structures de données, en se concentrant sur la simplicité, les performances et la sécurité des threads. Il prend en charge les commandes Redis essentielles (GET, SET, INCR, etc.), plusieurs types de données et la persistance sur disque (RDB), avec pub/sub récemment ajouté. Zedis est facile à construire et à utiliser, avec une base de code suivant les conventions de Zig, proposant des opérations type-safe, une gestion explicite des erreurs et une journalisation complète.

HDR et Tone Mapping dans les Shaders de GameMaker

2025-09-19
HDR et Tone Mapping dans les Shaders de GameMaker

Cet article explore la gestion des couleurs à haute gamme dynamique (HDR) dans les shaders de GameMaker. Le format de couleur 8 bits unorm par défaut de GameMaker peut entraîner un écrêtage des couleurs et des imprécisions lors du traitement de scénarios à forte luminosité, tels que les shaders de soleil. L'auteur démontre les problèmes en comparant les couleurs 6 bits et à virgule flottante et présente plusieurs fonctions courantes de tone mapping (ACES, Uncharted2, Unreal et tanh) pour atténuer les artefacts de limitation des couleurs. En utilisant le projet MandelBots comme exemple, l'article souligne la nécessité d'utiliser des surfaces HDR (surface_rgba16float) dans les systèmes d'éclairage complexes pour une meilleure précision et un meilleur mélange des couleurs.

Développement

L'énigme du temps passé sur la gestion des erreurs dans le développement logiciel

2025-09-19

Un ingénieur logiciel a du mal à trouver des recherches quantifiant le temps que les développeurs passent sur le code de détection et de gestion des erreurs. S'il est largement admis que cela représente une part importante, peut-être plus des deux tiers du code de production, les données fiables font défaut. Cela contraste avec la quantification précise de plusieurs métriques dans la recherche actuelle sur l'IA, soulignant un manque de compréhension des aspects fondamentaux de l'ingénierie logicielle.

Développement proportion de code

RFC : Le noyau Linux prend en charge l’architecture multi-noyaux

2025-09-19

Cong Wang a soumis une série de correctifs RFC introduisant la prise en charge de l’architecture multi-noyaux dans le noyau Linux. Cela permet à plusieurs instances indépendantes du noyau de coexister et de communiquer sur une seule machine physique, chacune s’exécutant sur des cœurs CPU dédiés tout en partageant les ressources matérielles. Cela améliore l’isolation des pannes, renforce la sécurité, offre une meilleure utilisation des ressources que les machines virtuelles traditionnelles et permet potentiellement des mises à jour du noyau sans temps d’arrêt. L’implémentation exploite l’infrastructure kexec et un framework IPI dédié pour la communication inter-noyaux. Il s’agit d’un RFC fondamental, visant principalement à recueillir des commentaires sur la conception de haut niveau.

Développement Multi-noyaux

Les nombreux flux RSS cassés : une saga de plus de 700 abonnements

2025-09-19

Gérant plus de 700 flux RSS/Atom, l’auteur détaille les différentes manières dont ces flux d’information cruciaux peuvent être interrompus. Des certificats SSL expirés et des délais d’attente du serveur aux pare-feu mal configurés, aux pannes de serveur, aux URL de flux modifiées, aux erreurs d’analyse, à la suppression de flux et à la suppression de sites web, l’article fournit une liste exhaustive des problèmes courants. Les solutions comprennent le renouvellement automatique du SSL, l’optimisation des performances du serveur, les ajustements des règles du pare-feu, la surveillance du site web, la redirection appropriée des URL et la validation régulière du flux. Un appel passionné est lancé pour maintenir le RSS en vie.

Développement Flux

La mort du développeur curieux ?

2025-09-19
La mort du développeur curieux ?

Cet article déplore un changement de culture chez les développeurs. Autrefois motivés par la curiosité et la passion d'apprendre, menant à des innovations comme Linux et Git, les développeurs privilégient désormais les métriques, les revenus et l'échelle. Cela les oblige souvent à utiliser des technologies qu'ils n'aiment pas et à construire des produits qui ne les intéressent pas. L'auteur soutient que ce changement étouffe l'innovation et la créativité, exhortant les développeurs à retrouver leur curiosité et leur passion pour la création, même pour résoudre leurs propres problèmes. L'article souligne l'importance de construire par plaisir, même si le projet n'est pas viable commercialement.

Développement culture du développement

La loi sur les données de l'UE met fin aux revenus annuels récurrents (ARR) dans le SaaS

2025-09-19
La loi sur les données de l'UE met fin aux revenus annuels récurrents (ARR) dans le SaaS

La loi sur les données de l'UE, en vigueur à partir de septembre 2025, modifie radicalement le paysage du SaaS en Europe. Elle stipule que tous les contrats SaaS avec des clients de l'UE deviennent des abonnements "résiliables à tout moment", avec un préavis de seulement deux mois. Cela met fin à la dépendance aux revenus annuels récurrents (ARR) comme métrique prévisible. Les entreprises SaaS doivent s'adapter, en se concentrant sur les modèles de prix, les stratégies de fidélisation de la clientèle et en atténuant le taux de désabonnement involontaire dû à la négligence des clients. Le succès dépendra d'une gestion robuste de la relation client et de la résilience opérationnelle, et non des termes contractuels.

Google renforce la vérification des développeurs Android : le sideloading hors ligne pourrait être restreint

2025-09-19
Google renforce la vérification des développeurs Android : le sideloading hors ligne pourrait être restreint

Google renforce son système de vérification des développeurs Android, exigeant des développeurs qu'ils enregistrent leur identité et empêchant l'installation d'applications non vérifiées. Bien que des solutions de contournement comme ADB existent, un code récent du SDK Android suggère que même les applications vérifiées pourraient ne pas être installables hors ligne. Cela signifie que même les applications sécurisées pourraient être bloquées de l'installation sans connexion réseau, ce qui pourrait causer des inconvénients à certains utilisateurs. La politique sera mise en œuvre dans un an, laissant le temps de peaufiner les détails et de trouver des solutions.

Développement

99 Démonstrations de Physique Étonnantes : Une Ressource Pédagogique Open Source

2025-09-19

Ce livre open source compile 99 des meilleures et plus belles démonstrations de physique de la série néerlandaise "ShowdeFysica", intégrant diverses stratégies pédagogiques pour rendre les démonstrations à la fois magiques et éducatives. Il inclut des vidéos et des simulations Python facilement exécutables sans nécessiter d’installation de logiciel. Les lecteurs peuvent rechercher des démonstrations par sujet et contribuer des suggestions via la plateforme en ligne.

Dynamo AI recrute un ingénieur Kubernetes senior pour les déploiements d'IA d'entreprise

2025-09-19
Dynamo AI recrute un ingénieur Kubernetes senior pour les déploiements d'IA d'entreprise

Dynamo AI recherche un ingénieur Kubernetes senior pour guider les clients entreprises tout au long du processus, du premier contact au déploiement réussi en production. Ce rôle pratique et orienté client implique le déploiement de systèmes d'IA sécurisés et évolutifs à l'aide de Kubernetes, Helm et d'outils natifs du cloud. Le candidat idéal possédera une vaste expérience de Kubernetes et des plates-formes cloud, d'excellentes compétences en communication et une autorisation de sécurité du gouvernement américain ou la citoyenneté américaine. Une présence au bureau à San Francisco ou à New York de 2 à 3 jours par semaine est requise.

Développement Déploiement d'IA

Compilation JIT d'une machine à pile avec SLJIT : une histoire d'optimisation

2025-09-19

Cet article détaille le parcours de l'auteur dans l'implémentation d'un compilateur JIT pour sa machine virtuelle uxn basée sur une pile, utilisant SLJIT. Les tentatives initiales ont donné des gains de performance minimes en raison des sauts dynamiques fréquents de uxn. Cependant, grâce à une série d'optimisations, notamment des conventions d'appel affinées, la mise en cache de la pile et des stratégies d'allocation de registres, une accélération de 30 à 46 % a été atteinte. L'article documente méticuleusement le processus d'optimisation, les défis rencontrés et les techniques de débogage, fournissant des informations précieuses aux personnes intéressées par la compilation JIT et l'optimisation des machines virtuelles basées sur une pile.

Développement Machine à pile

Deno combat la marque déposée JavaScript d'Oracle : Phase de découverte cruciale

2025-09-19
Deno combat la marque déposée JavaScript d'Oracle : Phase de découverte cruciale

Deno, un moteur d'exécution JavaScript, se bat contre Oracle pour la marque déposée "JavaScript". Après avoir déposé une requête d'annulation suite à une lettre ouverte largement signée, ils sont arrivés à la phase cruciale de la découverte. Face à un litige coûteux, Deno a lancé une campagne GoFundMe pour financer des enquêtes professionnelles, des témoins experts et des dépôts légaux afin de prouver que "JavaScript" est un terme générique, et non une marque d'Oracle. Le résultat déterminera si les marques déposées peuvent être utilisées pour revendiquer la propriété de termes génériques et aura un impact sur l'avenir du développement open source.

Développement

Navigateur intégré d'iTerm2 : le terminal rencontre le web

2025-09-19

iTerm2 possède désormais un navigateur web intégré, intégrant de manière transparente la navigation web dans son architecture existante de fenêtres, d'onglets et de panneaux fractionnés. Les utilisateurs peuvent travailler dans le terminal et naviguer sur le web simultanément dans la même interface. Il prend en charge divers raccourcis clavier, tels que Cmd + clic pour ouvrir des liens dans de nouveaux onglets et Cmd + Maj + clic pour de nouveaux panneaux fractionnés verticaux. L'intégration du chat IA permet de résumer, d'analyser ou de poser des questions sur la page actuelle. Les fonctionnalités de confidentialité incluent le mode navigation privée, le blocage des fenêtres contextuelles et le blocage des publicités. Bien qu'il ne soit pas destiné à remplacer un navigateur principal, il s'agit d'un outil puissant pour les workflows intégrés de terminal et de web.

Développement navigateur intégré

Découpler l'allocation du temps de l'allocation de capacité : la clé pour améliorer l'efficacité de l'équipe

2025-09-19
Découpler l'allocation du temps de l'allocation de capacité : la clé pour améliorer l'efficacité de l'équipe

Cet article explore les idées fausses concernant l'allocation de capacité de l'équipe. De nombreuses entreprises assimilent l'allocation du temps à l'allocation de capacité, négligeant les facteurs systémiques qui affectent les capacités de l'équipe. L'auteur souligne que la capacité n'est pas simplement la somme des heures travaillées, mais englobe les compétences de l'équipe, les outils, les processus, etc. Se concentrer uniquement sur l'allocation du temps tout en négligeant l'optimisation du système conduit à l'inefficacité. L'auteur recommande de distinguer « l'allocation du temps » (où l'équipe consacre ses heures) et « l'allocation de capacité » (la véritable capacité de l'équipe à fournir des résultats), en tenant compte de divers facteurs perturbateurs, pour améliorer l'efficacité de l'équipe.

Développement allocation de capacité

LLaMA-Factory : Un framework unifié pour l'ajustement fin efficace de plus de 100 LLM

2025-09-19
LLaMA-Factory : Un framework unifié pour l'ajustement fin efficace de plus de 100 LLM

LLaMA-Factory est un framework open-source permettant l'ajustement fin efficace de plus de 100 grands modèles de langage (LLM), notamment LLaMA, LLaVA et Mistral. Il intègre diverses méthodes d'ajustement fin (telles que LoRA, QLoRA et OFT), offre des ressources évolutives et des algorithmes avancés, et couvre un large éventail de tâches comme le dialogue à plusieurs tours et la compréhension d'images. LLaMA-Factory prend également en charge diverses techniques d'accélération de l'inférence et fournit une interface et une API conviviales. Constamment mis à jour avec la prise en charge des modèles et des techniques les plus récents, LLaMA-Factory vise à fournir aux développeurs un outil pratique et efficace pour l'ajustement fin des LLM.

Développement Framework Open-Source

Rust pour Linux : Nouveau type "Untrusted" renforçant la sécurité du noyau

2025-09-19

Le noyau Linux fait face à des menaces de sécurité provenant de nombreuses sources de données non fiables, notamment l'espace utilisateur, les réseaux et le stockage amovible. Pour améliorer la sécurité, Benno Lossin propose une nouvelle API Rust introduisant le type `Untrusted` pour marquer les données provenant de sources non fiables. Tirant parti du système de types de Rust, cela empêche les décisions accidentelles basées sur des données non validées de l'espace utilisateur, atténuant les attaques potentielles. L'API, maintenant à sa quatrième révision, inclut des fonctions utilitaires et la prise en charge des structures de données courantes telles que les tranches et les vecteurs. Son utilisation future dans les fonctions `ioctl()` des pilotes promet une sécurité accrue du noyau, avec des discussions supplémentaires attendues lors de la prochaine conférence Kangrejos sur le projet Rust pour Linux.

Déverrouillage à distance de FileVault sur macOS via SSH

2025-09-19

Avec FileVault activé sur macOS, le volume de données est verrouillé et inaccessible pendant et après le démarrage jusqu'à l'authentification par mot de passe. Comme les fichiers de configuration d'OpenSSH résident sur le volume de données, l'authentification SSH standard n'est pas disponible. Cependant, avec la connexion à distance activée, l'authentification par mot de passe SSH peut déverrouiller le volume de données à distance. Après le déverrouillage, macOS déconnecte brièvement SSH pour monter le volume et démarrer les services dépendants, puis SSH reprend pleinement son fonctionnement. Cette fonctionnalité est apparue dans macOS 26 Tahoe.

Développement
1 2 3 5 7 8 9 214 215