Pourquoi j'ai supprimé mon compte Steam après 20 ans

2025-07-09
Pourquoi j'ai supprimé mon compte Steam après 20 ans

Un joueur PC de longue date a supprimé son compte Steam après 20 ans, citant le client Steam de plus en plus volumineux, les promesses de DRM non tenues conduisant à l'incompatibilité avec du matériel plus ancien et les API propriétaires qui entravent la compatibilité et les fonctionnalités du jeu. L'auteur compare Steam à Epic, Microsoft Store et GOG, arguant que ces alternatives offrent un meilleur DRM et une meilleure expérience utilisateur. Les services d'abonnement ou l'achat auprès d'autres plateformes sont suggérés comme alternatives pour une meilleure expérience de jeu et la propriété du logiciel.

Lire plus
Jeux

La Taille Toujours Croissante des Grands Modèles de Langage

2025-07-02
La Taille Toujours Croissante des Grands Modèles de Langage

Cet article retrace l'évolution de la taille des grands modèles de langage (LLM). De 1,61 milliard de paramètres pour GPT-2 à 2 000 milliards de paramètres pour Llama-4, la taille des modèles a augmenté de manière exponentielle. L'article détaille le nombre de paramètres, la taille des données d'entraînement et les caractéristiques architecturales des modèles clés, notamment les modèles denses et les modèles Mixture-of-Experts (MoE). L'émergence des architectures MoE a permis d'entraîner et d'utiliser des modèles de plus grande échelle. Cependant, la croissance de la taille des modèles a également entraîné de nouveaux défis, tels que les biais de données et l'interprétabilité des modèles. L'article conclut en explorant les orientations futures du développement des LLM et appelle à davantage de recherches pour se concentrer sur le développement de moteurs de continuation de texte purs, plutôt que de simplement rechercher des scores élevés aux tests de référence.

Lire plus

S-expr : Un analyseur d’expressions S particulier

2025-06-18
S-expr : Un analyseur d’expressions S particulier

S-expr est une bibliothèque d’analyse d’expressions S avec des extensions uniques pour la syntaxe des expressions S. Elle prend en charge les chaînes de caractères et les commentaires monoligne et multiligne, et introduit un concept nouveau appelé « blocs transposés ». Les blocs transposés permettent d’écrire du code avec les lignes et les colonnes inversées, améliorant ainsi la lisibilité des expressions imbriquées complexes. Cette conception vise à équilibrer la simplicité des expressions S avec une meilleure lisibilité et expressivité du code. Bien que plus complexe que le Lisp traditionnel, elle privilégie l’équilibre entre simplicité et convivialité.

Lire plus

Implémenter les nombres complexes et la FFT avec seulement des types de données (pas de flottants)

2025-05-25
Implémenter les nombres complexes et la FFT avec seulement des types de données (pas de flottants)

Cet article présente une méthode pour implémenter les nombres complexes et la Transformée de Fourier Rapide (FFT) en utilisant uniquement des types de données algébriques, sans recourir aux nombres à virgule flottante. L'auteur commence par expliquer les avantages de l'utilisation de types de données algébriques pour la représentation numérique et souligne les inefficacités des implémentations traditionnelles de la FFT. Une implémentation concise et élégante des entiers et des nombres complexes utilisant uniquement des types de données algébriques est ensuite démontrée. Enfin, une implémentation purement fonctionnelle de la FFT complexe, sans flottants, est dérivée. Ceci est réalisé en utilisant une représentation ternaire équilibrée pour les entiers et en étendant les entiers gaussiens pour représenter les nombres complexes, contournant habilement les effets qui empêchent la fusion de l'arithmétique à virgule flottante, améliorant ainsi l'efficacité de l'algorithme.

Lire plus

Un Parcours pour Optimiser les Requêtes de la Base de Données Cloudflare D1

2025-04-07
Un Parcours pour Optimiser les Requêtes de la Base de Données Cloudflare D1

Un développeur frontend a rencontré des goulots d'étranglement de performance lors de l'utilisation de Cloudflare Workers et de la base de données D1. En surveillant le tableau de bord D1, en examinant les instructions de requête et en analysant les nombres de lectures/écritures de lignes, il a identifié plusieurs problèmes clés : requêtes uniques lentes, écritures par lots inefficaces, lectures de lignes inutiles dues à l'inclusion d'ID dans les opérations de mise à jour, analyses de table complètes dans les requêtes de comptage, explosions de produits cartésiens de jointures de plusieurs tables et insertions en masse sous-optimales. Les solutions ont impliqué l'utilisation d'opérations par lots D1, l'exclusion des ID des mises à jour, la mise en œuvre d'une pagination basée sur le curseur, la division des requêtes de jointure de plusieurs tables et l'optimisation des instructions d'insertion en masse. Ces optimisations ont considérablement amélioré les performances des requêtes, réduisant le temps d'exécution de 78 ms à 14 ms dans certains cas. L'expérience souligne l'importance de la surveillance continue, de l'optimisation itérative et des différences cruciales entre les problèmes de performance côté serveur et côté client.

Lire plus

Générateur de SHA-1 Vanity : Une approche intelligente de modification de casse

2025-03-31
Générateur de SHA-1 Vanity : Une approche intelligente de modification de casse

Ce code tente de générer un hachage SHA-1 correspondant au préfixe cible "20250327" en manipulant la casse des mots dans un texte d'entrée. Il analyse le texte, identifie les mots mutables, puis itère sur toutes les combinaisons de casse possibles, calcule le hachage et le compare à la cible. Si une correspondance est trouvée, le texte modifié est écrit dans un fichier. Le programme démontre une approche astucieuse de force brute, utilisant des variations de casse pour tenter de générer un préfixe de hachage spécifique, démontrant une compréhension des algorithmes de hachage et de la combinatoire.

Lire plus

Mod hardware Xfinity XB3 : désactiver le WiFi et économiser 2 watts

2025-03-30
Mod hardware Xfinity XB3 : désactiver le WiFi et économiser 2 watts

Un utilisateur a modifié son modem Xfinity XB3 pour économiser de l'énergie. Le XB3, fourni avec le service Xfinity NOW moins cher de Comcast, consomme 14,9 watts. En démontant le modem et en mettant à la terre le brochage EN du régulateur de tension TPS54328, l'utilisateur a désactivé le WiFi, réduisant la consommation d'énergie à 12,5 watts, soit une économie de 2 watts. Bien que la page d'administration soit brièvement inaccessible après le démarrage, les fonctionnalités du réseau restent inchangées.

Lire plus
Matériel

Accélérez les paquets Ubuntu de 90 % : une histoire de recompilation et d’allocateurs

2025-03-19
Accélérez les paquets Ubuntu de 90 % : une histoire de recompilation et d’allocateurs

Cet article explique comment la recompilation du paquet source jq utilisé par Ubuntu a entraîné une amélioration spectaculaire des performances de 90 %. L’auteur a effectué des tests de référence avec un fichier GeoJSON de 500 Mo. La simple recompilation du paquet a produit une accélération faible mais notable. D’autres optimisations ont consisté à utiliser le compilateur clang avec de meilleurs indicateurs (-O3, -flto, -DNDEBUG), ce qui a entraîné une amélioration de 20 %. Le passage à l’allocateur TCMalloc a amélioré les performances de 40 % supplémentaires. Enfin, l’utilisation de mimalloc, qu’il soit chargé dynamiquement ou intégré lors de la recompilation, a entraîné une amélioration remarquable de la vitesse de 90 %. Le jq recompilé avec mimalloc est près de deux fois plus rapide que le paquet Ubuntu par défaut lors de plusieurs tests.

Lire plus

Une Approche Hiérarchique des Langages de Programmation et du Développement Multilingue

2025-03-16
Une Approche Hiérarchique des Langages de Programmation et du Développement Multilingue

L'auteur propose une hiérarchie à quatre niveaux pour classer les langages de programmation en fonction du typage et de la compilation : interprétés à typage dynamique (par exemple, JavaScript), interprétés à typage statique (par exemple, TypeScript), compilés avec gestion automatique de la mémoire (par exemple, Go) et compilés avec gestion manuelle de la mémoire (par exemple, Rust). L'auteur soutient que le choix du bon niveau pour différents besoins est crucial et propose un ensemble de langages comprenant Rust, RustGC (un hybride de niveau 2/3) et RustScript (niveau 4) pour améliorer l'efficacité du développement et les performances du code. Cet ensemble partage la syntaxe et permet des appels transparents entre les différents niveaux, ce qui permet de résoudre les problèmes de maintenance de différents ensembles d'outils et de formation du personnel. L'objectif final est d'améliorer l'efficacité de la programmation et la qualité du code.

Lire plus

Svelte5 : Pas aussi bien qu’annoncé ?

2025-03-08
Svelte5 : Pas aussi bien qu’annoncé ?

La sortie de Svelte5 a vanté son système d’état réactif, « runes », comme une amélioration majeure. Cependant, cet auteur a rencontré plusieurs limitations dans des projets réels. Les runes sont limitées aux composants Svelte ou aux fichiers .svelte.ts, exigeant que l’état soit encapsulé dans des fonctions pour la réactivité et offrant un support incomplet pour les classes. Les fonctionnalités de modèle de Svelte n’ont pas d’équivalents en JavaScript, rendant les tests des propriétés liées fastidieux. Les composants de formulaire sont non contrôlés par défaut, ce qui peut entraîner des problèmes. Bien que Svelte5 tente d’imiter React/Vue, il est insuffisant en termes d’utilisabilité et de complétude des fonctionnalités, ce qui amène l’auteur à envisager SolidJS comme une alternative supérieure.

Lire plus
Développement État Réactif

Construction d'une micro-bibliothèque de boucle d'événements asynchrones à partir de zéro

2025-02-28
Construction d'une micro-bibliothèque de boucle d'événements asynchrones à partir de zéro

Ce projet implémente une bibliothèque de boucle d'événements asynchrones minimale mais complète en fonctionnalités, à partir de zéro, à des fins pédagogiques. Il démontre les concepts clés de la programmation asynchrone : planification et gestion des tâches, multiplexage E/S avec des sockets non bloquants, fonctionnalités de délai d'attente et de suspension, annulation des tâches et concurrence basée sur les coroutines. La bibliothèque utilise les coroutines basées sur les générateurs de Python et le module `select` pour le multiplexage E/S, offrant un modèle simplifié du fonctionnement interne des frameworks asynchrones modernes comme `asyncio`. Découvrez la magie derrière `await`, le fonctionnement de `yield from` et la communication entre les coroutines et la boucle d'événements.

Lire plus
Développement boucle d'événements

Le voyage de réécriture du compilateur Roc : de Rust à Zig

2025-02-04
Le voyage de réécriture du compilateur Roc : de Rust à Zig

L'équipe du compilateur du langage de programmation Roc s'est lancée dans un projet ambitieux : réécrire son compilateur Rust de 300 000 lignes en Zig. Il ne s'agit pas d'une simple portabilité de langage ; c'est une décision stratégique pour résoudre les problèmes de lenteur de compilation de Rust et la dette technique accumulée. La réécriture améliorera l'analyseur syntaxique, le formatteur, la canonicisation, la génération de documentation, l'inférence de types et la génération de code LLVM, entre autres modules. L'équipe prévoit également d'utiliser un interpréteur pour le backend de développement, ce qui accélérera considérablement le cycle de développement. L'objectif final est d'améliorer la vitesse de compilation, d'accroître la maintenabilité et de sortir Roc 0.1.0.

Lire plus
Développement réécriture

Les LLM échouent à un casse-tête d'échecs simple : un test curieux

2025-01-26
Les LLM échouent à un casse-tête d'échecs simple : un test curieux

L'auteur teste plusieurs nouveaux LLM avec un casse-tête d'échecs simple mettant en vedette la sous-promotion et la règle des 50 coups. Malgré les conseils, la plupart des LLM échouent à le résoudre, soulignant les limites du raisonnement logique et des connaissances spécifiques au domaine. Ce test rapide sert de référence, suscitant des discussions sur la possibilité pour les LLM d'atteindre un jour le niveau de maître aux échecs sans formation spécialisée. La simplicité du casse-tête et l'accent mis sur une technique moins courante en font une sonde perspicace des capacités du LLM.

Lire plus
IA

Tentative de phishing sophistiquée : presque piraté

2025-01-24
Tentative de phishing sophistiquée : presque piraté

Ce récit détaillé décrit une tentative d’hameçonnage sophistiquée où l’auteur s’est fait passer pour un employé de Google, utilisant des appels téléphoniques et des e-mails pour inciter l’auteur à réinitialiser son compte. En exploitant une faille de sécurité de Google Workspace et en utilisant le domaine g.co, l’attaquant a imité de manière convaincante le support Google, manquant de peu son objectif. L’auteur a finalement découvert l’arnaque et partage son expérience comme un récit d’avertissement, soulignant l’importance de la sensibilisation à la cybersécurité et de la vigilance face aux techniques d’hameçonnage avancées.

Lire plus
Technologie

Attaque de désanonymisation 0 clic ciblant Signal, Discord et des centaines de plateformes

2025-01-21
Attaque de désanonymisation 0 clic ciblant Signal, Discord et des centaines de plateformes

Un lycéen de 15 ans, Daniel, a découvert une faille critique de désanonymisation 0 clic exploitant le mécanisme de cache de Cloudflare. Cette vulnérabilité permet aux attaquants de localiser les utilisateurs dans un rayon de 250 miles en envoyant une charge malveillante à des applications vulnérables telles que Signal, Discord et des centaines d'autres. L'attaque ne nécessite aucune interaction de l'utilisateur et peut même être effectuée via des notifications push. Daniel a développé un outil, Cloudflare Teleport, pour démontrer l'exploitation. Bien qu'il ait signalé la vulnérabilité de manière responsable, les réponses des entreprises concernées ont été largement insatisfaisantes. Cela souligne les risques de sécurité potentiels inhérents à la mise en cache CDN et souligne l'importance de la sensibilisation à la vie privée des utilisateurs.

Lire plus
Technologie vulnérabilité

Le Déclin de Stack Overflow : L'Impact de ChatGPT et un Avenir Incertain

2025-01-08
Le Déclin de Stack Overflow : L'Impact de ChatGPT et un Avenir Incertain

Une analyse de données sur GitHub révèle une baisse impressionnante de 70,7 % du nombre de nouvelles questions sur Stack Overflow entre mars 2023 et décembre 2024, passant de 87 105 à 25 566. Cela est fortement corrélé à l'essor de ChatGPT ; depuis son lancement, Stack Overflow a enregistré près de 83 000 questions de moins. L'auteur, un contributeur de haut niveau sur Stack Overflow, décrit sa propre expérience de voir ses questions bien formatées rapidement closes, soulignant un facteur clé potentiel du déclin de la plateforme. La forte diminution du volume de questions suggère une trajectoire préoccupante, reflétant les niveaux observés en 2009 peu après le lancement, laissant entrevoir une durée de vie potentielle de moins d'un an.

Lire plus
Développement Déclin de la plateforme

PGP Opérationnel : Un Guide pour une Communication Sécurisée par E-mail

2024-12-24
PGP Opérationnel : Un Guide pour une Communication Sécurisée par E-mail

Ce guide ne porte pas sur l'installation ou l'utilisation de PGP, mais sur son utilisation sécurisée. Il met l'accent sur la sécurité opérationnelle au-delà du simple chiffrement du contenu des e-mails, couvrant la rédaction, le stockage, la gestion des clés, etc. Il recommande de rédiger les e-mails dans un éditeur de texte, d'éviter de sauvegarder les brouillons dans les clients de messagerie ; de générer et de détruire les clés fréquemment ; d'éviter de publier les clés sur les serveurs de clés ; de laisser les objets des e-mails vides pour minimiser les fuites de métadonnées ; d'utiliser l'option `gpg --throw-keys` lors du chiffrement ; d'activer le chiffrement par défaut et de choisir explicitement si l'on souhaite signer les e-mails. L'objectif est de maximiser le potentiel de sécurité de PGP.

Lire plus

Stockage clé-valeur basé sur SQLite : manipulation d’objets de type JS et sérialisation JSON automatique

2024-12-22
Stockage clé-valeur basé sur SQLite : manipulation d’objets de type JS et sérialisation JSON automatique

Un projet GitHub présente un stockage clé-valeur basé sur SQLite, permettant une manipulation d’objets similaire à JavaScript avec une sérialisation JSON automatique. La fonction `createDatabaseClient` crée un client parallèle avec des composants de lecteur (`rdr`) et d’écrivain (`wtr`) distincts. L’écrivain utilise des proxies pour les mises à jour JSON partielles, tandis que le lecteur renvoie des objets JavaScript simples. Des tests complets couvrent les opérations CRUD de base, les mises à jour imbriquées, les suppressions et les manipulations de tableaux.

Lire plus

Un cas curieux d'importation lente de USD dans Blender

2024-12-22
Un cas curieux d'importation lente de USD dans Blender

Un développeur a rencontré des temps d'importation inattendument lents lors de l'importation de scènes USD dans Blender. Le profilage a révélé que le goulot d'étranglement était la fonction de tri d'ID interne de Blender, `id_sort_by_name`. Cette fonction, qui devait être de complexité O(N), s'est dégradée à O(N²) en raison du schéma de nommage dans les fichiers USD. En modifiant la convention de nommage et en optimisant l'algorithme de tri, le développeur a réduit les temps d'importation de 4 minutes 40 secondes à 8 secondes pour les fichiers plus petits. Cependant, le problème sous-jacent provient de l'exigence de Blender pour les ID triés, ce qui conduit à des suggestions pour remplacer la liste chaînée par un arbre Trie ou une table de hachage. Cette optimisation souligne un défi courant dans l'optimisation des performances : identifier et résoudre la complexité inattendue.

Lire plus
Développement

QEMU gagne en accélération Vulkan grâce à la mise à jour du pilote VirtIO GPU

2024-12-12
QEMU gagne en accélération Vulkan grâce à la mise à jour du pilote VirtIO GPU

QEMU version 9.2.0 et supérieures prend désormais en charge l'accélération Vulkan pour VirtIO-GPU grâce aux correctifs Venus. Ceci représente une avancée significative dans le rendu graphique Vulkan pour les machines virtuelles QEMU. L'article détaille le processus de configuration, notamment l'installation des paquets nécessaires (noyau Linux 6.13+, QEMU 9.2.0+, pilotes Vulkan, etc.), la compilation de QEMU à partir de la source et la création d'une image de VM. Bien que virt-manager ne prenne pas encore en charge la configuration Vulkan, des paramètres de ligne de commande offrent une solution de contournement. Des conseils de dépannage sont fournis, ainsi que des notes sur les limitations actuelles de virt-manager et libvirt.

Lire plus
Développement