Category: Développement

Une extension VS Code malveillante utilise le typosquatting pour diffuser un malware multi-étapes

2025-02-10
Une extension VS Code malveillante utilise le typosquatting pour diffuser un malware multi-étapes

Des chercheurs ont découvert une extension VS Code malveillante, `truffelvscode`, qui utilisait le typosquatting sur l'extension populaire `truffle`. Cette extension sert de cheval de Troie à un malware multi-étapes. Le malware télécharge et exécute plusieurs étapes de code malveillant, aboutissant à l'installation et à la configuration de l'outil d'accès à distance ScreenConnect, donnant aux attaquants un contrôle à distance du système compromis. Des techniques d'obfuscation ont été utilisées pour masquer le code malveillant, mais les chercheurs ont utilisé la désobfuscation et l'analyse de sandbox pour révéler toute la chaîne d'attaque. Cet incident souligne l'importance de la prudence lors de l'installation des extensions VS Code et met en évidence la menace croissante des attaques sur la chaîne d'approvisionnement logicielle.

Développement

Une conjecture vieille de 40 ans démentie : une nouvelle table de hachage dépasse les attentes

2025-02-10
Une conjecture vieille de 40 ans démentie : une nouvelle table de hachage dépasse les attentes

L'étudiant diplômé Krapivin (Université de Cambridge), avec Farach-Colton et Kuszmaul (Université de New York), ont réfuté la conjecture de Yao, une croyance de longue date en informatique. Leur nouvelle table de hachage atteint une complexité temporelle dans le pire des cas de (log x)², significativement plus rapide que le x précédemment considéré comme optimal. Cette recherche révolutionnaire non seulement résout un problème classique dans la conception des tables de hachage, mais améliore également considérablement l'efficacité du stockage de données, suscitant un vif intérêt au sein de la communauté académique.

Développement table de hachage

arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

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

arXivLabs est un framework permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données des utilisateurs. arXiv s'engage à respecter ces valeurs et ne travaille qu'avec des partenaires qui y adhèrent. Vous avez une idée de projet qui apportera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Les assistants de codage IA ont besoin de plus de contexte : expériences et enseignements

2025-02-10
Les assistants de codage IA ont besoin de plus de contexte : expériences et enseignements

Les assistants de codage IA traditionnels, bien qu'ils soient compétents dans la génération de code, manquent souvent de contexte crucial sur l'environnement système plus large. Cela amène les développeurs à passer plus de temps à combler le fossé entre le code et diverses sources d'information. Cet article détaille des expériences intégrant le contexte opérationnel (graphes d'appels, métriques, rapports d'exceptions) dans les assistants IA pour améliorer la précision du débogage. Les résultats montrent que les données de performance structurées et les rapports d'erreurs améliorent l'analyse de l'IA, mais la représentation efficace de grandes quantités de contexte reste un défi. L'avenir réside dans un graphe de connaissances englobant le comportement de production, les métriques système et bien plus encore, permettant aux assistants IA de comprendre le comportement du système de manière holistique.

Reconstruction du moteur de rendu de ProseMirror avec React : l’histoire de deux bibliothèques

2025-02-10

L’auteur raconte son expérience sur l’éditeur de texte enrichi du New York Times, Oak, construit avec React et ProseMirror. L’intégration s’est cependant révélée problématique, entraînant des bogues persistants. Après quatre années de lutte contre les complexités des deux bibliothèques, l’équipe a choisi de réécrire le moteur de rendu de ProseMirror avec React. Cela a résolu des problèmes tels que la rupture d’état, donnant naissance à une nouvelle bibliothèque, @handlewithcare/react-prosemirror, offrant des performances et une compatibilité améliorées.

Développement Éditeur de texte enrichi

Les LLM expliquent les programmes linéaires : d’un projet parallèle à la recherche Microsoft

2025-02-10

En 2020, tout en travaillant sur la chaîne d’approvisionnement de Google, l’auteur a développé un projet secondaire pour aider à comprendre les programmes linéaires (PL). Lorsque les PL deviennent complexes, comprendre leurs résultats est un défi même pour les experts. L’approche de l’auteur consistait à modifier interactivement le modèle et à comparer les résultats pour expliquer le comportement du modèle, découvrant que l’ajout de métadonnées sémantiques simplifiait le processus. Récemment, des chercheurs de Microsoft ont publié un article utilisant des grands modèles de langage (LLM) pour traduire les requêtes en langage naturel en requêtes structurées, obtenant un résultat similaire. L’auteur pense que les LLM sont une excellente solution pour traduire l’ambiguïté humaine en requêtes structurées, traitées par un système d’optimisation classique robuste, les résultats étant résumés par le LLM. Bien que le travail précédent de l’auteur soit resté non publié, il soutient que la compréhension des explications de systèmes plus simples est cruciale pour expliquer des systèmes d’IA plus complexes.

PDFSyntax : Un outil de visualisation PDF Python sans dépendances

2025-02-10
PDFSyntax : Un outil de visualisation PDF Python sans dépendances

PDFSyntax est une bibliothèque Python autonome, sans dépendances, qui visualise la structure interne des fichiers PDF sous forme de HTML interactif. Elle analyse, décompresse et met en forme les données PDF, en ajoutant des hyperliens et des index pour permettre une navigation logique dans le PDF, y compris la traversée des objets et le suivi des révisions. Une simple commande en ligne de commande génère du HTML statique directement visible dans un navigateur sans JavaScript. Les fonctionnalités incluent l'indexation inversée, l'indexation des pages, une minicarte, l'extraction des flux d'objets, la décompression des flux et la mise en évidence de la syntaxe. Les fichiers cryptés ne sont pas encore pris en charge.

Développement

Python 3.14 : Évaluation différée des annotations et un nouvel interpréteur

2025-02-10
Python 3.14 : Évaluation différée des annotations et un nouvel interpréteur

Python 3.14 arrive avec des mises à jour passionnantes ! Les PEP 649 et 749 introduisent l’évaluation différée des annotations, améliorant les performances et simplifiant l’écriture des annotations. Un nouvel interpréteur basé sur les appels de queue offre des améliorations de vitesse significatives (moyenne géométrique de 9 à 15 % sur pyperformance) sur des compilateurs et des architectures spécifiques. Enfin, le PEP 741 affine l’API C de configuration de Python, ouvrant la voie à des améliorations futures. Ces mises à jour combinées rendent Python plus rapide et plus puissant !

Développement Interprète

K : Un langage de programmation concis, rapide et orienté vecteur

2025-02-10

La famille de langages K est une série de langages concis, rapides et orientés vecteur conçus par Arthur Whitney. Il ne s'agit pas d'une seule version, mais d'une suite évolutive d'itérations légèrement incompatibles. Ce livre se concentre sur les implémentations open source du langage K et sur la communauté qui les entoure, notamment ngn/k (k6) et oK (k5/6). Il explore les caractéristiques du langage K, la courbe d'apprentissage et sa relation avec APL et J. Bien que connu pour sa concision et sa vitesse, K présente une courbe d'apprentissage abrupte nécessitant une pratique dédiée.

Rust à la poursuite d'Ada : Une bataille dans la programmation critique

2025-02-10
Rust à la poursuite d'Ada : Une bataille dans la programmation critique

Ada domine le domaine de la programmation critique depuis plus de quatre décennies. Au cours des dix dernières années, Rust a tenté de rivaliser, avec des résultats variables. Cet exposé explorera les puissantes fonctionnalités d'Ada pour garantir un code exempt de bogues, notamment ses robustes déclarations de sous-types et sa facilité d'utilisation, et les comparera aux capacités de Rust, soulignant les points faibles de Rust et ses progrès pour rattraper Ada.

Développement Programmation Critique

L'art des variables globales en C++

2025-02-10

Cet article explore des techniques efficaces pour utiliser les variables globales en C++. L'auteur soutient que les variables globales ne sont pas intrinsèquement mauvaises ; la clé réside dans leur utilisation appropriée. L'article présente les avantages et les inconvénients, en décrivant quatre règles : 1. Rendre difficile une mauvaise utilisation ; 2. Restaurer les valeurs d'origine après avoir modifié les états observables ; 3. Ne pas renvoyer de références ou de pointeurs vers l'état interne ; 4. Ne pas rendre le code difficile à tester. À travers des exemples de code, l'auteur démontre l'utilisation correcte et les pièges potentiels, en recommandant les variables locales de thread pour le multithreading.

Développement

Sandbox basé sur les processus de Verona : exécution sécurisée de code non fiable

2025-02-10
Sandbox basé sur les processus de Verona : exécution sécurisée de code non fiable

Ce projet décrit un mécanisme de sandbox basé sur les processus pour Verona, conçu pour exécuter en toute sécurité du code externe non fiable. En tirant parti de l’isolation des processus, il ne nécessite aucune modification du système d’exploitation, exécutant les bibliothèques non fiables dans une région de mémoire partagée et communiquant avec un processus parent fiable via un IPC soigneusement conçu. Le mécanisme prend en charge les fonctions de rappel et l’émulation des appels système, garantissant la sécurité du processus parent ; même s’il est compromis, le sandbox ne peut pas accéder à la mémoire du parent ou aux ressources du système. Il prend actuellement en charge les technologies de sandbox Capsicum et seccomp-bpf, et vise à améliorer l’efficacité et la compatibilité.

Développement

Rust vs. Ada : Un duel pour la sécurité mémoire

2025-02-10

Cet article compare l’efficacité de Rust et d’Ada pour prévenir les erreurs courantes liées à la mémoire. Rust excelle dans la prévention directe des erreurs, mais l’évitement de l’allocation dynamique de mémoire par Ada et la prise en charge de la preuve formelle de correction aident à éviter complètement de nombreuses erreurs courantes. L’article examine les erreurs courantes de mémoire telles que les fuites, les dépassements de tampon, l’utilisation après libération, la double libération et les conditions de concurrence, en comparant la manière dont chaque langage les gère. Bien que Rust dispose de vérifications plus strictes au moment de la compilation, les capacités d’analyse statique d’Ada et le contrôle plus strict des pointeurs offrent une alternative convaincante. En fin de compte, l’auteur conclut que les deux langages offrent des forces uniques : Rust privilégie la sécurité au moment de la compilation, tandis qu’Ada met l’accent sur la prévention des erreurs dès le départ.

Développement

Sept péchés capitaux des diagrammes d'architecture technique

2025-02-10
Sept péchés capitaux des diagrammes d'architecture technique

Cet article décrit sept erreurs courantes à éviter lors de la création de diagrammes d'architecture technique, en proposant des solutions pour chacune d'elles. Ces erreurs incluent : créer des diagrammes théoriques au lieu de diagrammes concrets ; mélanger les niveaux d'abstraction ; inclure trop de préoccupations qui se chevauchent ; des flèches non étiquetées ; une composition trompeuse ; un contexte manquant ; et un texte explicatif manquant. L'article souligne l'importance de transmettre les informations du système de manière claire et précise, en suggérant l'utilisation de plusieurs diagrammes pour gérer la surcharge d'informations et en ajoutant des étiquettes et du texte explicatif pour améliorer la compréhension et l'efficacité des diagrammes d'architecture.

Frupidity : le tueur silencieux de la productivité et de l’innovation

2025-02-10
Frupidity : le tueur silencieux de la productivité et de l’innovation

La frugalité est une vertu, mais la frupidity – la poursuite imprudente de réductions de coûts au détriment de la productivité – est un tueur silencieux. Cet article utilise l’exemple d’une entreprise fictive, PennyTech, pour illustrer comment l’économie sur les outils, les infrastructures et les voyages entraîne des pertes importantes d’efficacité et de moral. L’auteur soutient que la véritable efficacité réside dans les dépenses intelligentes, et non dans les réductions de coûts aveugles, et souligne l’importance de valoriser le temps des ingénieurs et d’éviter les décisions à court terme qui, en fin de compte, coûtent plus cher qu’elles n’économisent.

Développement

Adieu, générateurs de sites statiques : mon blog est désormais en HTML brut

2025-02-10

Fatigué des mises à jour constantes et des problèmes de compatibilité avec les générateurs de sites statiques, mon blog a subi de nombreuses itérations, pour finalement se stabiliser sur du HTML brut, utilisant md-block pour le Markdown et highlight.js pour la mise en évidence de la syntaxe. Les lecteurs audio et vidéo intégrés au navigateur et la longévité du HTML me libèrent des soucis de compatibilité des thèmes et garantissent la disponibilité du contenu à long terme.

Développement

Merci Bootstrap : L’ode d’un développeur

2025-02-10

L'auteur utilise abondamment Bootstrap pour le CSS dans ses projets personnels, tels que Anki Books et Larder. Il loue la facilité de Bootstrap pour créer des widgets d'interface utilisateur interactifs. Un exemple clé détaille la personnalisation du thème de Larder en utilisant les variables de couleur de Bootstrap, en adoptant les couleurs du drapeau transgenre. L'auteur exprime sa satisfaction du résultat et souligne l'efficacité de Bootstrap pour propager les changements de couleur sur l'ensemble du site Web, ce qui permet d'économiser un temps de développement considérable et de simplifier la conception complexe des couleurs.

py3-TTS-Wrapper : Bibliothèque unifiée de texte à parole multiplateforme

2025-02-10
py3-TTS-Wrapper : Bibliothèque unifiée de texte à parole multiplateforme

py3-TTS-Wrapper est une bibliothèque Python offrant une interface unifiée pour une intégration facile avec divers services de texte à parole (TTS) tels que AWS Polly, Google TTS et Microsoft Azure TTS. Elle prend en charge SSML pour un contrôle amélioré, permettant la personnalisation de la voix, de la langue, du volume, du pitch et du débit. Les fonctionnalités incluent le streaming, la sortie de fichiers et la prise en charge de moteurs hors ligne (eSpeak-NG, PicoTTS). Que vous ayez besoin de TTS dans votre projet ou que vous souhaitiez explorer différents moteurs TTS, py3-TTS-Wrapper simplifie le processus.

Développement texte à parole

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

2025-02-09
arXivLabs : Projets expérimentaux en collaboration avec la communauté

arXivLabs est un framework permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données des utilisateurs. arXiv s'engage à respecter ces valeurs et ne travaille qu'avec des partenaires qui les partagent. Vous avez une idée de projet qui ajoutera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Points faibles de l'utilisateur de terminal : même les experts ont des difficultés

2025-02-09

Une enquête menée auprès de 1600 utilisateurs de terminal révèle des frustrations persistantes, même chez les utilisateurs expérimentés (40 % ayant plus de 21 ans d'expérience). Les principaux problèmes incluent la mémorisation de la syntaxe des commandes (awk, jq, sed, etc.), des raccourcis clavier (tmux, éditeurs de texte) et la navigation dans les incohérences entre les systèmes (différences de système d'exploitation, variations d'éditeurs). La configuration des couleurs, le copier-coller (via SSH, tmux, etc.), la difficulté à découvrir des outils utiles, une courbe d'apprentissage raide, la gestion de l'historique du shell et la documentation insuffisante sont également apparues fréquemment. Les résultats mettent en évidence les difficultés continues que rencontrent même les utilisateurs expérimentés avec les détails minutieux du terminal, soulignant la nécessité d'une expérience utilisateur améliorée.

Trois jours d'enfer : d'un utilitaire Python à une application web

2025-02-09
Trois jours d'enfer : d'un utilitaire Python à une application web

L'auteur a passé trois jours à essayer de convertir un simple utilitaire Python en une application web. Les tentatives initiales utilisant les frameworks Flask et Bottle ont échoué en raison de problèmes CORS et des complexités des requêtes asynchrones. Une incursion dans l'API Fetch de JavaScript et une API REST de Node.js se sont avérées trop lourdes à maintenir. En fin de compte, l'auteur est revenu à l'application Bottle originale, acceptant le temps d'attente de l'utilisateur pour l'achèvement de la requête en échange d'un code plus simple et plus facile à maintenir. Cela souligne l'importance des choix technologiques : parfois, la solution la plus simple est la meilleure.

Développement

Meilleures pratiques PostgreSQL : construire une base de données robuste et fiable

2025-02-09
Meilleures pratiques PostgreSQL : construire une base de données robuste et fiable

Cet article décrit les meilleures pratiques pour les bases de données PostgreSQL, couvrant la conception de bases de données, l’optimisation des performances, la sécurité, la sauvegarde et la restauration, la maintenance et la surveillance, et les pratiques de développement. Des conventions de nommage et de la conception de schémas aux stratégies d’indexation, à l’optimisation des requêtes, au contrôle d’accès, aux politiques de mots de passe, aux stratégies de sauvegarde et aux mesures de surveillance, l’article fournit des conseils détaillés avec des exemples de code pour aider les développeurs à construire un système de base de données PostgreSQL robuste, efficace et sécurisé. Les configurations de haute disponibilité, y compris la configuration de la réplication et l’équilibrage de charge, sont également mises en avant pour garantir la fiabilité et l’évolutivité du système de base de données.

Développement Meilleures pratiques

Annonce des prix Ada/SPARK Crate of the Year !

2025-02-09
Annonce des prix Ada/SPARK Crate of the Year !

Les résultats des prix Ada/SPARK Crate of the Year 2024 sont connus ! Lionel Draghi remporte le prix Ada Crate of the Year pour BBT, un outil en ligne de commande utilisant des spécifications de comportement Markdown faciles à comprendre pour des tests automatisés. Kevin Chadwick remporte le prix SPARK Crate of the Year pour elogs, une bibliothèque de journalisation sécurisée en mémoire (certifiée Niveau Argent SPARK) qui permet aux utilisateurs de spécifier la longueur maximale des messages. Enfin, l'interpréteur Lisp intégrable de Brent Seidel, bbs_lisp, remporte le prix Embedded Crate of the Year, mettant en évidence les atouts d'Ada dans les systèmes embarqués.

Développement

La longue guerre de Rust pour le noyau Linux

2025-02-09
La longue guerre de Rust pour le noyau Linux

Rust progresse dans le noyau Linux, mais la transition sera longue et conflictuelle. Bien que Rust offre des avantages significatifs en matière de sécurité mémoire et bénéficie du soutien d'entreprises comme Google, son adoption rencontre une forte résistance au sein de la communauté du noyau. Des inquiétudes concernant sa courbe d'apprentissage abrupte et les défis d'intégration avec le code C existant ont engendré des débats houleux, qualifiés même de « guerre religieuse ». Cependant, les partisans soutiennent que Rust améliore la stabilité et la sécurité du noyau, attirant ainsi plus de développeurs. En fin de compte, le remplacement complet de C par Rust dépend de la maturité technologique et du consensus communautaire.

Développement

Maîtriser le système de fichiers immuable du Steam Deck avec Nix et Home Manager

2025-02-09
Maîtriser le système de fichiers immuable du Steam Deck avec Nix et Home Manager

Le système de fichiers immuable du Steam Deck rend l'installation de paquets persistant entre les mises à jour du système difficile. Ce guide montre comment utiliser Nix et Home Manager pour résoudre cela élégamment. Nix est un gestionnaire de paquets déclaratif ; il suffit de lister les paquets souhaités dans un fichier de configuration, et il se charge de l'installation. Home Manager simplifie l'utilisation de Nix. Le guide détaille l'installation de Nix et Home Manager sur votre Steam Deck, la gestion des paquets (installation, suppression) et offre des conseils tels que la création de raccourcis sur le bureau et l'exécution de la collecte des ordures.

Développement

arXivLabs : création de nouvelles fonctionnalités arXiv avec des collaborateurs communautaires

2025-02-09
arXivLabs : création de nouvelles fonctionnalités arXiv avec des collaborateurs communautaires

arXivLabs est un cadre qui permet aux développeurs de collaborer avec la communauté arXiv pour créer et partager de nouvelles fonctionnalités directement sur le site Web d'arXiv. Les participants doivent adhérer aux valeurs fondamentales d'arXiv : ouverture, communauté, excellence et confidentialité des données utilisateur. Si vous avez une idée de projet qui ajoutera de la valeur à la communauté arXiv, en savoir plus sur arXivLabs.

Développement

Signature des requêtes API : pièges et bonnes pratiques

2025-02-09

Cet article explore les défis de sécurité liés à la signature des requêtes API, en particulier les difficultés de signature des objets JSON. L’auteur souligne que, si la signature HMAC simple est sécurisée, la signature directement dans l’objet JSON peut entraîner divers problèmes, tels que plusieurs représentations équivalentes de JSON entraînant des échecs de validation de la signature. L’article compare et analyse plusieurs méthodes de signature, notamment la canonicisation JSON, l’ajout de données de signature redondantes et l’utilisation de formats alternatifs. Des exemples de schémas de signature AWS et Flickr illustrent les risques de sécurité liés aux implémentations défectueuses. Enfin, l’auteur recommande de privilégier TLS et d’éviter la signature intégrée dans JSON, en optant pour une signature externe afin de garantir la sécurité des requêtes API.

Mise à l'échelle de PostgreSQL : problèmes étranges et solutions pour les startups à forte croissance

2025-02-09
Mise à l'échelle de PostgreSQL : problèmes étranges et solutions pour les startups à forte croissance

Cet article traite des problèmes courants de mise à l'échelle de PostgreSQL rencontrés par les startups à forte croissance. Il aborde des problèmes tels que la contention de verrouillage, le gonflement des index, les inefficacités de stockage TOAST et les complexités de la mise à l'échelle verticale par rapport à la mise à l'échelle horizontale, les tables en mode ajout uniquement par rapport aux tables à nombreuses mises à jour et la multilocation. Pour chaque problème, des solutions pratiques sont proposées, allant des ajustements des paramètres de la base de données et des outils de concurrence à la refonte des modèles d'accès aux données et à l'utilisation de fonctionnalités telles que les verrous consultatifs. L'auteur explore également des sujets avancés tels que les migrations de schémas sous charge, les mises à niveau sans temps d'arrêt et les stratégies efficaces de requêtes COUNT. Il s'agit d'une ressource précieuse pour les ingénieurs qui s'efforcent d'optimiser les performances de PostgreSQL dans des environnements exigeants.

Kanata : Remappeur de clavier multiplateforme pour un confort amélioré

2025-02-09
Kanata : Remappeur de clavier multiplateforme pour un confort amélioré

Kanata est un remappeur de clavier multiplateforme pour Linux, macOS et Windows. Il permet plusieurs couches de fonctionnalités de touches et une personnalisation avancée (appui prolongé, macros, Unicode). Inspiré par kmonad mais écrit en Rust, Kanata offre une prise en charge de plates-formes plus large et une interface plus conviviale. Il vise à apporter la puissante personnalisation de QMK à n'importe quel clavier, quel que soit le matériel, améliorant ainsi le confort et la productivité.

Développement remappage clavier

Les Performances Déconcertantes du Ramassage des Ordres Générationnel

2025-02-09

L'auteur a mené des expériences pour vérifier les avantages en termes de performances du ramassage des ordures générationnel. Étonnamment, les résultats ont montré que le ramassage des ordures générationnel prenait plus de temps que le ramassage des ordures sur l'ensemble du tas dans divers benchmarks. L'article explore plusieurs causes possibles, notamment la surcharge de la barrière d'écriture, le choix de la taille de la pouponnière, la représentativité du benchmark et la fréquence de collecte. L'auteur conclut que des recherches supplémentaires sont nécessaires pour déterminer la cause racine.

1 2 164 165 166 168 170 171 172 214 215