Category: Développement

Nepenthes : Un piège pour les robots d'exploration web

2025-01-16

Nepenthes est un outil conçu pour piéger les robots d'exploration web, en particulier ceux qui récupèrent des données pour les LLM. Il génère une séquence infinie de pages, chacune contenant des dizaines de liens menant de nouveau au piège. Les pages sont générées aléatoirement, mais de manière déterministe, ressemblant à des fichiers statiques immuables. Des délais intentionnels empêchent les robots d'exploration de surcharger votre serveur et de perdre leur temps. Il est possible d'ajouter un générateur de texte Markov en option, donnant aux robots des données pour accélérer le collapse du modèle. Avertissement : Cela consomme beaucoup de CPU, surtout avec le module Markov activé. Utilisez avec précaution.

Développement anti-robot

Polémique à la FOSDEM : L’intervention de Jack Dorsey, milliardaire, suscite l’indignation

2025-01-16

Jack Dorsey, ancien PDG de Twitter, doit prononcer une conférence à la FOSDEM, une importante conférence sur les logiciels libres. Cela a provoqué une réaction importante au sein de la communauté des logiciels libres. Les critiques pointent du doigt le rôle de Dorsey dans le déclin de Twitter et son implication avec Block, affirmant qu’il ne mérite pas une plateforme aussi importante. L’auteur appelle au boycott et organise une manifestation pour protester contre la présence de Dorsey et plaider pour une réallocation des fonds afin de soutenir la communauté des logiciels libres.

Développement Logiciels Libres

La Mine d'Or Intacte de F#: Traces de Pile Typées (TST)

2025-01-16

Cet article explore la technique peu connue des Traces de Pile Typées (TST) en F#, qui utilise le système de types pour suivre les erreurs, résolvant ainsi les problèmes d'analyse d'erreurs et de maintenance de code dans les grandes applications monolithiques. L'auteur soutient que le TST, combiné à la conception pilotée par le domaine (DDD) et à une nouvelle méthodologie appelée "Développement piloté par les contraintes (CDD)", peut révolutionner l'architecture logicielle et les processus de développement, permettant aux développeurs de revenir aux architectures monolithiques et à la gestion de projet en cascade, simplifiant ainsi le travail des DevOps et des SRE. Le TST tire parti des types d'union et de la capacité de correspondance de motifs de F# pour créer des arbres de types d'erreur clairs, améliorant ainsi la lisibilité et la maintenabilité du code. L'article utilise un exercice d'entretien comme exemple pour détailler comment utiliser TST, DDD et CDD pour construire une API REST simple.

Développement

Polices Web Haute Performance : Vitesse et Style Unis

2025-01-16
Polices Web Haute Performance : Vitesse et Style Unis

Le projet Polices Web Haute Performance (HPWF) fournit des outils et des ressources pour aider les développeurs à utiliser des polices web sans sacrifier la vitesse de chargement des pages. Il inclut des convertisseurs de plages de texte en Unicode et des mécanismes de secours robustes, garantissant une expérience optimale avec les polices web.

Comprendre la gestion de la mémoire en C : Plongez au cœur des piles, des tas et des fuites

2025-01-16
Comprendre la gestion de la mémoire en C : Plongez au cœur des piles, des tas et des fuites

Cet article fournit une explication détaillée de la gestion de la mémoire en C, en commençant par la manière dont les programmes utilisent la mémoire et en progressant à travers les rôles de la pile et du tas, l'utilisation de malloc() et free(), et les causes des fuites de mémoire et des vulnérabilités Use After Free (UAF). À l'aide d'un exemple simple, l'auteur démontre la gestion manuelle de la mémoire et explique le fonctionnement interne d'un allocateur de mémoire (malloc), y compris la fragmentation de la mémoire. Adapté aux lecteurs ayant une certaine expérience de la programmation, cet article améliore la compréhension de la gestion de la mémoire et aide à éviter les erreurs de mémoire courantes.

Développement Pile Tas

Hyperviseur QEMU RK3588 avec ZFS sur Debian : Un guide étape par étape

2025-01-16

Cet article explique comment configurer un hyperviseur QEMU sur un ordinateur monocarte BananaPi M71 2 (RK3588) en utilisant Armbian et ZFS pour le stockage. L'auteur détaille les étapes, de la création d'une image Armbian personnalisée, à la gravure de l'image, en passant par la préparation du stockage NVMe SSD avec un pool ZFS, l'installation de libvirtd et enfin l'exécution de machines virtuelles. Les défis de compatibilité avec le lecteur NVMe sur le RK3588 sont abordés, ainsi que les solutions. Le résultat final est un cloud privé fonctionnel à petite échelle, capable d'exécuter plusieurs machines virtuelles (serveurs web, bases de données, etc.), offrant isolation des charges de travail et gestion des ressources.

Développement

Laissez les utilisateurs contribuer à résoudre leurs propres problèmes de transport : au-delà de la planification d’itinéraire algorithmique

2025-01-16

L’auteur critique les applications cartographiques actuelles pour leur dépendance exclusive aux algorithmes pour planifier les itinéraires de transport en commun, négligeant les besoins et l’expertise des utilisateurs. Il propose de permettre aux utilisateurs de personnaliser les options d’itinéraire, telles que la spécification de combinaisons spécifiques de lignes de bus, et de les inclure dans les comparaisons de planification d’itinéraire. Cela reflète les fonctions « signaler le spam » et « ce n’est pas du spam » des filtres anti-spam, améliorant les algorithmes grâce aux commentaires des utilisateurs. Malgré les préoccupations concernant la confidentialité, la participation des utilisateurs pourrait améliorer la précision de l’itinéraire et la satisfaction des utilisateurs, améliorant ainsi les algorithmes. La capacité des utilisateurs à ajouter leurs propres combinaisons d’itinéraires, même sans partager de données, constituerait une amélioration significative.

Memory64 de WebAssembly : un compromis entre vitesse et mémoire

2025-01-16
Memory64 de WebAssembly : un compromis entre vitesse et mémoire

WebAssembly a récemment introduit Memory64, ajoutant la prise en charge des pointeurs 64 bits. Cependant, de manière surprenante, Memory64 n'entraîne pas d'amélioration des performances ; au contraire, en raison de limitations matérielles, des systèmes d'exploitation et de la conception de WebAssembly lui-même, il peut être 10 % à plus de 100 % plus lent que le mode 32 bits. Cela est dû au fait que le mode 32 bits permet aux navigateurs de réserver 4 Go de mémoire, éliminant ainsi le besoin de vérifications de limites. Memory64, en revanche, nécessite des vérifications de limites, ce qui ajoute une surcharge de calcul. Par conséquent, à moins que vous n'ayez besoin de plus de 4 Go de mémoire, Memory64 n'est pas le choix optimal. Les améliorations futures du matériel et de WebAssembly pourraient améliorer les performances de Memory64.

Développement

Limites de file d'attente d'octets : Une histoire méconnue d'optimisation réseau

2025-01-16
Limites de file d'attente d'octets : Une histoire méconnue d'optimisation réseau

Cet article raconte l'histoire des limites de file d'attente d'octets (BQL), une technique d'optimisation réseau peu connue dans le noyau Linux. Le BQL s'attaque au gonflement du tampon en ajustant dynamiquement les limites de la file d'attente du périphérique, réduisant ainsi la latence. L'auteur, s'appuyant sur des concepts clés appris à l'époque de Sun Microsystems, détaille la philosophie de conception du BQL, son implémentation et son algorithme, en utilisant des diagrammes et des données pour analyser ses améliorations de performances et ses inconvénients potentiels. Bien que le nouveau matériel puisse éventuellement remplacer le BQL, sa valeur pour des milliards de périphériques bas de gamme reste significative.

Échec du démarrage de Docker Desktop macOS en raison de rapports de logiciels malveillants

2025-01-16

Les utilisateurs de Docker Desktop pour macOS ont récemment rencontré des problèmes de démarrage où macOS a signalé `com.docker.vmnetd` ou `com.docker.socket` comme logiciel malveillant. Docker a identifié la cause racine comme des fichiers incorrectement signés dans les installations existantes et a publié des correctifs. Il est conseillé aux utilisateurs de mettre à jour vers la dernière version ou de remplacer manuellement les fichiers affectés. Le problème est résolu, mais Docker continue de surveiller d'autres problèmes.

Développement

Le Portfolio Impressionnant de Jacob Dement : Le Parcours d'un Développeur Full-Stack

2025-01-16

Le portfolio de Jacob Dement met en lumière le talent d'un ingénieur full-stack expérimenté. De sites web méticuleusement conçus à des applications complexes, il démontre une maîtrise complète des technologies front-end, back-end et de bases de données. Le portfolio est plus qu'une simple collection de code ; c'est un témoignage convaincant de ses compétences techniques et de sa créativité. Plusieurs exemples de projets mettent en évidence son expérience dans la résolution de problèmes réels à l'aide de diverses piles technologiques. Son dévouement aux détails techniques et à l'expérience utilisateur souligne son professionnalisme.

Développement développeur full-stack

Apache DataFusion : Un moteur de requête extensible et performant en Rust

2025-01-16

Apache DataFusion est un moteur de requête extensible écrit en Rust qui utilise Apache Arrow comme format mémoire. Il offre des API SQL et DataFrame, des performances excellentes et un support intégré pour CSV, Parquet, JSON et Avro. DataFusion possède un planificateur de requêtes complet, un moteur d'exécution colonnaire, en streaming, multithreadé, vectorisé et des sources de données partitionnées. Il est hautement personnalisable, permettant l'ajout de sources de données, de langages de requête, de fonctions, d'opérateurs personnalisés et plus encore. Des sous-projets connexes incluent DataFusion Python (liaisons Python), DataFusion Ray (version distribuée) et DataFusion Comet (accélérateur Apache Spark).

Développement Moteur de Requête

dnSpyEx : La renaissance non officielle d'un puissant débogueur et éditeur d'assemblages .NET

2025-01-15
dnSpyEx : La renaissance non officielle d'un puissant débogueur et éditeur d'assemblages .NET

dnSpyEx est une continuation non officielle du projet dnSpy, un débogueur et éditeur d'assemblages .NET populaire. Il vous permet d'éditer et de déboguer des assemblages .NET et Unity même sans code source. Les principales fonctionnalités incluent le débogage et l'édition des assemblages .NET et Unity, des thèmes clairs et sombres, et de puissantes capacités de décompilation, d'édition hexadécimale et de débogage, telles que la définition de points d'arrêt, les fenêtres de variables, les piles d'appels et la gestion des exceptions. dnSpyEx offre également une API publique pour les extensions et les scripts, et prend en charge les traductions dans plusieurs langues.

Développement Débogueur Décompilateur

Revue de code : une success story

2025-01-15
Revue de code : une success story

Un ingénieur, X, chez Google, a travaillé sur deux projets avec des processus de revue de code radicalement différents. Le premier, avec des revues minimales, a abouti à une version contenant des bogues. Le second, avec un processus de revue rigoureux et complet, bien que plus lent au départ, a produit une version sans bogues et un apprentissage significatif pour X, impactant positivement sa carrière. L'article soutient que les revues de code ne sont pas intrinsèquement antagonistes ; ce sont les personnes impliquées et la manière dont l'outil est utilisé qui comptent pour améliorer la qualité du code et le mentorat.

Développement

Imagerie de volumes de disques montés sous pression : une solution basée sur blktrace

2025-01-15
Imagerie de volumes de disques montés sous pression : une solution basée sur blktrace

Cet article décrit une méthode ingénieuse pour sauvegarder des disques système lorsque les snapshots ponctuels ne sont pas disponibles. L’auteur a été confronté au défi de devoir sauvegarder un système sur le point de tomber en panne, qui ne disposait pas de fonctionnalités de snapshot, tandis que le redémarrage ou la reconfiguration du stockage étaient indésirables. La solution utilise l’API blktrace de Linux pour suivre l’activité du périphérique de bloc en temps réel, permettant la création d’images disque complètes même pendant l’écriture des données. L’auteur partage son outil basé sur Go, hot-clone, qui suit les blocs modifiés, garantissant ainsi l’absence de perte de données lors de la création de l’image. Cela fournit une solution fiable pour sauvegarder les systèmes critiques en cas d’urgence.

Keon : Un format de sérialisation lisible par l'homme inspiré par Rust

2025-01-15
Keon : Un format de sérialisation lisible par l'homme inspiré par Rust

Keon est une notation d'objet lisible par l'homme (ORN) et un format de sérialisation syntaxiquement similaire à Rust et entièrement compatible avec le modèle de données de Serde. Il possède une syntaxe plus propre, permettant les commentaires et les virgules finales, et offrant une expérience d'écriture presque identique à celle de Rust. Keon distingue les tuples et les listes, prend en charge les types arbitraires comme clés de dictionnaire et offre une prise en charge de Base64, Base32 et Base16. L'objectif est un format de sérialisation plus intuitif, lisible et facile à écrire.

Développement

Pourquoi le niveau gratuit de Cloudflare Pages est-il si généreux ?

2025-01-15
Pourquoi le niveau gratuit de Cloudflare Pages est-il si généreux ?

Cloudflare Pages offre un niveau gratuit avec une bande passante illimitée, ce qui le distingue de ses concurrents. L'auteur explore les raisons de cette générosité : les sites web statiques consomment peu de ressources et sont faciles à servir ; Cloudflare bénéficie d'un internet plus rapide et plus fiable, ce qui entraîne une augmentation de la demande pour ses produits de sécurité ; et le niveau gratuit stimule le marketing de bouche-à-oreille et les mises à niveau potentielles vers des services payants. Bien que Cloudflare ne l'ait pas officiellement expliqué, l'auteur suppose qu'il s'agit d'une stratégie alignée sur d'autres services gratuits, tels que 1.1.1.1 et la protection gratuite contre les attaques DDoS, dans le but ultime de stimuler son écosystème de produits de sécurité.

Analyse GLR avec règles nulles à droite : gestion des grammaires sans contexte

2025-01-15

Cet article explore l’analyse LR généralisée (GLR) et son amélioration, l’analyse GLR avec règles nulles à droite (RNGLR). L’analyse GLR peut gérer n’importe quelle grammaire sans contexte sans restrictions, ce qui en fait un outil utile pour le prototypage. Cependant, l’analyse GLR traditionnelle souffre de problèmes d’efficacité lorsqu’il s’agit de la récursivité gauche et droite cachée. L’analyse RNGLR traite élégamment ces problèmes en gérant intelligemment les règles nulles à droite, améliorant ainsi l’efficacité de l’analyse. L’article explique les principes de l’analyse RNGLR et démontre ses avantages dans la gestion des conflits et la construction de forêts d’analyse compactées partagées (SPPF) à travers des exemples.

Ropey : Une corde à texte UTF-8 hautes performances pour Rust

2025-01-15
Ropey : Une corde à texte UTF-8 hautes performances pour Rust

Ropey est une bibliothèque de cordes de texte UTF-8 écrite en Rust, conçue pour servir de buffer de texte pour des applications telles que les éditeurs de texte. Elle est rapide, robuste et gère facilement les textes volumineux et les modifications incohérentes en mémoire. Ropey offre un solide support Unicode, des performances prévisibles et excelle dans la gestion des modifications fréquentes sur des textes de taille moyenne à grande. Cependant, elle n'est pas idéale pour les textes très petits ou ceux dépassant la mémoire disponible. Ses principales fonctionnalités incluent la prise en compte des lignes, des tranches de cordes efficaces et des API de bas niveau flexibles. Ropey a fait ses preuves dans divers projets et est soumise à des tests rigoureux, offrant une solution fiable pour la manipulation de texte.

Développement Édition de texte

JavaScript Moderne pour les Développeurs Django : Un Guide Complet

2025-01-15
JavaScript Moderne pour les Développeurs Django : Un Guide Complet

Ce guide fournit une voie claire pour les développeurs Django afin de maîtriser le développement JavaScript moderne. Il couvre l'organisation du code front-end, les outils JavaScript modernes, l'intégration des pipelines JavaScript, la création d'applications React, la création de sites web sans JavaScript avec HTMX et Alpine.js, et l'amélioration des interactions d'API front-end avec OpenAPI. Le guide est divisé en parties faciles à gérer, progressant des concepts fondamentaux aux applications pratiques, le rendant accessible aux développeurs de tous les niveaux.

Développement Développement Front-end

Construire une base de données avec la communauté Open-Source Rust : L'histoire de ScopeDB

2025-01-15
Construire une base de données avec la communauté Open-Source Rust : L'histoire de ScopeDB

Une équipe de trois personnes a construit ScopeDB, une base de données cloud à architecture de disque partagé pour gérer des pétaoctets de données d'observabilité, en seulement quatre mois en utilisant Rust. En tirant parti de la puissance de l'écosystème Rust et de nombreux projets open-source tels qu'Apache OpenDAL, SQLx et SeaQuery, l'équipe a contribué activement à la communauté avec des correctifs et de nouvelles bibliothèques. ScopeDB possède également un jumeau open-source, Morax, pour partager l'expérience d'ingénierie, démontrant un paradigme open-source commercial.

Développement

Interprète de Calcul Lambda Binaire en 383 Octets

2025-01-15
Interprète de Calcul Lambda Binaire en 383 Octets

Cet article de blog présente une nouvelle implémentation de 383 octets d'un interpréteur de calcul lambda binaire sous forme d'un exécutable ELF Linux x86-64. Ce minuscule interpréteur parvient à réaliser le ramassage des ordures, des listes paresseuses et la récursion terminale. Les programmes sont codés dans un format binaire remarquablement petit ; par exemple, son évaluateur métacirculaire ne fait que 232 bits. L'auteur fournit du code C portable et des binaires précompilés pour d'autres plates-formes. Ce projet est un outil d'apprentissage amusant pour le calcul lambda et montre la possibilité d'implémenter des calculs complexes dans des environnements extrêmement contraints en termes de ressources.

Nostalgie numérique : Enregistrements vocaux personnalisés de la voix d'AOL

2025-01-15
Nostalgie numérique : Enregistrements vocaux personnalisés de la voix d'AOL

Le blogueur John Graham-Cumming raconte son expérience de 2002 lorsqu'il a commandé des enregistrements vocaux personnalisés à Elwood Edwards, la voix emblématique d'AOL. Pour 30 $, il a commandé deux phrases, "Mail classified by POPFile" et "Use the source, Luke!" pour son programme de filtrage de courrier électronique par apprentissage automatique, POPFile. Edwards a même inclus un bonus : "You've got mail, John !" Cette anecdote charmante révèle une touche personnalisée de l'internet d'antan et l'humour des pionniers de la technologie.

Développement service personnalisé

Kokoro : un modèle TTS de 82M de paramètres transforme les ebooks en livres audio de haute qualité

2025-01-15

Claudio Santini a créé Audiblez, un outil utilisant le modèle de synthèse vocale (TTS) Kokoro de 82M de paramètres pour convertir des ebooks en livres audio de haute qualité. Audiblez prend en charge plusieurs langues et voix, convertissant de grands ebooks en quelques heures. L'outil basé sur Python nécessite l'installation des bibliothèques et des fichiers modèles nécessaires. Bien que la détection des chapitres soit encore un peu approximative, il fonctionne bien dans l'ensemble, avec des améliorations futures prévues pour la détection des chapitres et des fonctionnalités supplémentaires.

Développement

Parallels Desktop exécute désormais Windows et Linux x86 sur les Macs Apple Silicon

2025-01-15
Parallels Desktop exécute désormais Windows et Linux x86 sur les Macs Apple Silicon

Parallels Desktop 20.2 ajoute une prise en charge préliminaire de l'exécution de systèmes d'exploitation Windows et Linux x86 64 bits sur les Macs Apple Silicon. Cela permet aux utilisateurs de Macs M1, M2 et suivants d'exécuter une plus large gamme de systèmes d'exploitation, bien que les performances soient plus lentes que les versions ARM natives en raison de l'émulation. Les limitations incluent la prise en charge des périphériques USB, la virtualisation imbriquée et des temps de démarrage plus longs, mais il s'agit d'une étape significative pour les développeurs et les utilisateurs ayant besoin de la compatibilité x86 sur Apple Silicon.

Développement

Customasm : Un assembleur pour vos propres jeux d'instructions

2025-01-15
Customasm : Un assembleur pour vos propres jeux d'instructions

Customasm est un assembleur qui vous permet de définir vos propres jeux d'instructions personnalisés, idéal pour tester le bytecode d'une nouvelle machine virtuelle ou écrire des programmes pour cette nouvelle architecture de microprocesseur que vous venez d'implémenter sur une puce FPGA ! Essayez-le en ligne dans votre navigateur, consultez un exemple de projet ciblant la NES et installez l'extension de surbrillance syntaxique VSCode. Installez via `cargo install customasm`, téléchargez des exécutables précompilés depuis Releases ou compilez à partir de la source. La documentation et un guide de démarrage sont disponibles sur le wiki.

Une modification de code Microsoft a failli casser la sortie de Linux 6.13

2025-01-15
Une modification de code Microsoft a failli casser la sortie de Linux 6.13

Une modification de code contribuée par un ingénieur de Microsoft a failli causer une importante perturbation lors de la prochaine sortie stable du noyau Linux 6.13. Conçue comme une amélioration des performances, cette modification a introduit des problèmes sur certains systèmes, notamment ceux dotés de l'intégrité du flux de contrôle (CFI), tels que les machines équipées de processeurs Intel Alder Lake. Un correctif urgent de l'ingénieur Intel Peter Zijlstra a désactivé le code problématique, évitant ainsi un retard de la sortie 6.13. Cet incident souligne l'importance critique de la revue de code et des tests approfondis avant de fusionner du code dans de grands projets open source.

Développement Noyau

Pyper : Python Concurrentiel Simplifié

2025-01-15
Pyper : Python Concurrentiel Simplifié

Pyper est un framework flexible pour le traitement de données concurrentes et parallèles, basé sur des modèles de programmation fonctionnelle. Il intègre parfaitement les opérations avec threads, multitraitement et asynchrones, simplifiant la création de systèmes ETL, de microservices de données et de pipelines de collecte de données. Avec une API claire et des files d'attente efficaces, Pyper offre une solution légère en Python pur (sans dépendances) qui privilégie la facilité d'utilisation, la sécurité et l'efficacité. Les développeurs peuvent se concentrer sur la construction de la logique plutôt que sur la gestion des détails de concurrence de bas niveau.

Développement

API SimplexDocsPlaygroundRequest : Aperçu de l'exécution du code

2025-01-15

L'API SimplexDocsPlaygroundRequest fournit des fonctionnalités d'exécution et d'aperçu de code. Les utilisateurs soumettent du code au serveur via cette API, qui exécute le code et renvoie les résultats, ainsi qu'un aperçu du processus d'exécution. Ceci est utile pour les développeurs qui déboguent du code, testent des API et créent rapidement des prototypes. L'API est en cours de chargement ; les résultats seront disponibles après l'exécution du code.

Développement Exécution de code Aperçu

De SvelteKit à HTML pur : Réécriture de mon site web

2025-01-15

Frustré par la complexité du système de build de SvelteKit, l'auteur a décidé de réécrire son site web personnel en utilisant du HTML et du CSS purs. Le processus a impliqué l'utilisation de Pandoc pour convertir du Markdown en HTML et de Python avec uv pour un pipeline de build léger. Malgré la petite taille du site, la réécriture a entraîné une réduction de taille de 356 ko à 88 ko et un code plus simple et plus facile à comprendre. L'auteur note les problèmes restants, tels que la duplication de code et l'absence de rechargement à chaud, et a l'intention de les résoudre dans les futures améliorations. Le projet sert de modèle simple pour la création de sites web statiques avec des blogs en Markdown.

Développement
1 2 184 185 186 188 190 191 192 214 215