Category: Développement

Long Polling bat WebSockets : Un guide pratique pour les systèmes temps réel évolutifs

2025-01-05

L'équipe d'Inferable a choisi le long polling HTTP plutôt que les WebSockets pour construire un système temps réel évolutif utilisant Node.js et TypeScript. Face aux défis de centaines de nœuds de travail nécessitant des mises à jour de tâches en temps réel et des agents nécessitant une synchronisation d'état en temps réel, ils ont trouvé le long polling étonnamment efficace. En maintenant les connexions HTTP ouvertes jusqu'à ce que de nouvelles données arrivent ou qu'un délai d'attente soit atteint, ils ont évité les complexités des WebSockets, telles que l'authentification, l'observabilité et la compatibilité de l'infrastructure. L'article détaille leur implémentation, y compris l'optimisation de la base de données, la gestion des erreurs et les meilleures pratiques telles que le TTL obligatoire, le TTL configurable par le client et des intervalles de sondage de la base de données raisonnables. Le choix découlait de la nécessité d'un contrôle central du produit sur le mécanisme de livraison des messages, de zéro dépendance externe et de la facilité de compréhension et de modification. Des alternatives telles qu'ElectricSQL sont brièvement discutées, soulignant les scénarios où les WebSockets pourraient être préférables.

Développement systèmes temps réel

Outil d'apprentissage interactif CSS Flexbox

2025-01-05

CSS Flexbox Playground est un outil d'apprentissage en ligne interactif qui permet aux utilisateurs d'ajuster diverses propriétés Flex pour voir les changements de mise en page en temps réel et copier le code CSS généré. Il couvre des propriétés clés telles que flex-direction, justify-content, align-items et flex-wrap, offrant une compréhension visuelle de la mise en page Flexbox. L'expérimentation pratique permet aux utilisateurs de maîtriser rapidement Flexbox et d'améliorer l'efficacité du développement web.

Développement

La FSF appelle à une pression continue sur Microsoft

2025-01-05

La Free Software Foundation (FSF) a publié un article de blog appelant à une pression continue sur Microsoft pour lutter contre ses pratiques anti-logiciels libres. L'article utilise la Journée internationale contre les restrictions numériques (IDAD) de cette année comme exemple, soulignant la mise à niveau forcée vers Windows 11 de Microsoft qui nécessite un module TPM, nuisant à la liberté de l'utilisateur et aux droits numériques. La FSF encourage à passer à GNU/Linux, à éviter les nouvelles versions des logiciels Microsoft et à déplacer les projets hors de Microsoft GitHub pour soutenir le mouvement du logiciel libre. Simultanément, la FSF mène sa collecte de fonds annuelle, cherchant un soutien pour lutter contre les restrictions numériques et promouvoir la liberté du logiciel.

Wildcard : Personnalisation de sites web avec des feuilles de calcul

2025-01-05
Wildcard : Personnalisation de sites web avec des feuilles de calcul

Wildcard est une extension de navigateur développée par Geoffrey Litt, doctorant au MIT, qui permet aux utilisateurs de modifier des sites web à leur convenance en utilisant une interface de feuille de calcul familière. Le projet, détaillé dans plusieurs publications académiques et présenté dans des vidéos de démonstration (comme l'ajout de temps de lecture à Hacker News), est actuellement en développement, mais une version de développement est téléchargeable. Explorez son potentiel pour des expériences web personnalisées.

Développement personnalisation web

Comparaisons d'algorithmes de nouvelle tentative : retour linéaire, exponentiel et exponentiel plafonné

2025-01-05

Cet article compare trois algorithmes de nouvelle tentative courants : le retour linéaire, le retour exponentiel et le retour exponentiel plafonné. Le retour linéaire augmente le temps d'attente d'une quantité fixe à chaque nouvelle tentative ; le retour exponentiel double (ou multiplie) le temps d'attente à chaque nouvelle tentative ; le retour exponentiel plafonné est similaire au retour exponentiel, mais avec un délai maximal. L'article traite également de l'ajout d'une gigue aléatoire pour éviter les problèmes de « ruée » lorsque plusieurs clients tentent de recommencer simultanément.

MyST Markdown : Des outils open-source révolutionnant la communication scientifique

2025-01-05
MyST Markdown : Des outils open-source révolutionnant la communication scientifique

MyST Markdown est un écosystème d'outils open-source et communautaire conçu pour transformer la communication scientifique. Il prend en charge la création de blogs, de livres en ligne, d'articles scientifiques, de rapports et d'articles de revues, offrant des fonctionnalités puissantes telles que l'intégration de graphiques en direct, l'intégration Jupyter, l'exportation PDF et la compatibilité avec des centaines de revues. Au cœur de MyST se trouve une extension Markdown flexible qui intègre parfaitement le code, les résultats de calcul et les éléments interactifs, créant des documents dynamiques et engageants. Que vous soyez scientifique, ingénieur ou rédacteur technique, MyST vous permet de partager vos recherches et vos connaissances plus efficacement.

Quarantaine de projets PyPI : une nouvelle arme contre les logiciels malveillants

2025-01-05
Quarantaine de projets PyPI : une nouvelle arme contre les logiciels malveillants

L'index des paquets Python (PyPI) a introduit une fonctionnalité de « quarantaine de projets » pour lutter contre le problème persistant des logiciels malveillants. Cette fonctionnalité permet aux administrateurs PyPI de signaler les projets potentiellement dangereux, empêchant ainsi leur installation facile par les utilisateurs et atténuant les dommages. Au lieu d'une suppression pure et simple, les projets sont masqués de l'index simple, restant modifiables par les propriétaires (mais non publiables), les administrateurs conservant la possibilité de lever la quarantaine. Les projets futurs incluent l'automatisation de la quarantaine en fonction de plusieurs rapports crédibles, améliorant ainsi l'efficacité et réduisant la fenêtre d'opportunité pour la propagation de logiciels malveillants.

Développement Logiciel malveillant

Simulation de Myxomycète avec WebGPU : Implémentation avec TypeScript et Shaders de Calcul

2025-01-05
Simulation de Myxomycète avec WebGPU : Implémentation avec TypeScript et Shaders de Calcul

SuboptimalEng a créé une simulation impressionnante de myxomycète à l'aide de WebGPU et de TypeScript. Ce projet recrée le travail classique de Sebastian Lague, utilisant des shaders de calcul pour simuler efficacement la croissance et le mouvement du myxomycète. Un guide de configuration détaillé, des captures d'écran et des liens vers des ressources sont inclus, et le projet a été déployé sur GitHub Pages pour faciliter l'accès. Il s'agit d'un excellent exemple pour apprendre WebGPU et les shaders de calcul.

La Bataille des Droits d'Auteur en Open Source : Qui Contrôle Votre Code ?

2025-01-04
La Bataille des Droits d'Auteur en Open Source : Qui Contrôle Votre Code ?

Cet essai explore les complexités de la propriété des droits d'auteur dans les logiciels libres et open source (FLOSS). Traditionnellement, de nombreux projets FLOSS assignent les droits d'auteur à des organisations à but non lucratif, mais cette pratique est devenue controversée. L'auteur soutient que la plupart des contributeurs FLOSS ont en réalité leurs droits d'auteur détenus par leurs employeurs, affaiblissant la protection offerte par les licences copyleft. Un changement dans l'attribution centralisée des droits d'auteur pourrait laisser les entreprises au contrôle, ce qui pourrait entraver l'application de la GPL. L'article exhorte les contributeurs FLOSS à examiner attentivement la question de la propriété des droits d'auteur, suggérant des mesures proactives pour protéger leurs droits et préserver les intérêts de la communauté open source, empêchant ainsi le copyleft de devenir inefficace.

Développement

Labwc : Un compositeur Wayland léger et simple

2025-01-04
Labwc : Un compositeur Wayland léger et simple

Labwc est un compositeur de fenêtres Wayland léger basé sur wlroots, inspiré d'openbox. Il privilégie l'empilement simple et efficace des fenêtres et des décorations de fenêtres minimales. Contrairement à de nombreux compositeurs, il repose sur les clients pour fournir des fonctionnalités telles que les panneaux, les captures d'écran et les fonds d'écran, préservant ainsi sa nature légère. Adhérant au style de codage de wlroots et de sway, Labwc prend en charge exclusivement les protocoles Wayland, rejetant dbus, sway/i3-IPC, etc., pour éviter la fragmentation des protocoles et promouvoir l'adoption de Wayland.

Développement Gestionnaire de fenêtres

Bugs en Assembly Go : conflits avec le pointeur de frame dans deux cas

2025-01-04

Cet article analyse deux plantages Go résultant d’un code assembleur défectueux qui a écrasé le pointeur de frame. Un bug a écrasé le registre du pointeur de frame (BP sur AMD64) dans la bibliothèque go-metro, l’autre a enregistré incorrectement le pointeur de frame sur la pile dans l’assembleur ARM64 d’Apache Arrow. L’auteur recommande d’utiliser des générateurs d’assembleur comme Avo pour éviter la manipulation manuelle des registres et de la pile. L’article approfondit les ABI et les conventions d’appel, offrant des informations sur la prévention de problèmes similaires, soulignant l’importance de comprendre et de suivre les directives d’assembleur de Go.

Développement Assembleur Pointeur de Frame

ELKS : Un sous-ensemble de noyau Linux intégrable pour 8086

2025-01-04
ELKS : Un sous-ensemble de noyau Linux intégrable pour 8086

ELKS fournit un système d'exploitation de type Linux pour les systèmes basés sur l'architecture Intel IA16 (processeurs 16 bits : 8086, 8088, etc.). Il prend en charge la mise en réseau et l'installation sur disque dur (systèmes de fichiers MINIX et FAT), fonctionne avec seulement 256 Ko de RAM et est compatible avec les anciens PC IBM et les SBC, SoC et FPGA modernes. Des images disque téléchargeables et des instructions de compilation sont disponibles, ainsi qu'une démonstration en ligne.

Développement

Efficient Recorder : Un enregistreur d’écran open source axé sur la confidentialité

2025-01-04
Efficient Recorder : Un enregistreur d’écran open source axé sur la confidentialité

Inspiré par un tweet, le développeur Jan Wilmake a créé Efficient Recorder, un projet open source visant à créer une alternative à Rewind.ai axée sur la confidentialité. Cet outil d’interface en ligne de commande (CLI) enregistre simultanément l’écran, l’audio système et l’audio du microphone, en diffusant les données directement vers un bucket S3. Il dispose d’un enregistrement audio intelligent (changement de fréquences d’échantillonnage en fonction de la détection vocale), d’une capture automatique d’écran et de webcam, et d’une gestion efficace des ressources pour minimiser la surcharge du système. Efficient Recorder permet de personnaliser les paramètres tels que les intervalles de capture d’écran et de webcam, et la qualité de l’image.

Développement enregistrement d’écran

MoonBit sur Golem Cloud : création d'un éditeur de liste collaboratif

2025-01-04

Cet article de blog détaille la création d'un éditeur de liste collaboratif sur Golem Cloud à l'aide du nouveau langage de programmation MoonBit. L'auteur décompose l'application en trois composants Golem : liste, archive et notificateur d'e-mail. Les fonctionnalités de MoonBit sont utilisées pour implémenter la manipulation des listes, l'archivage et les notifications par e-mail avec délai. L'article explique en détail l'utilisation de MoonBit, la conception de l'architecture des composants Golem et l'accès à l'heure système et aux variables d'environnement à l'aide de WASI. L'application est créée et déployée avec succès, démontrant le potentiel de MoonBit sur la plateforme Golem Cloud.

Développement

Infisical, soutenue par YC, recrute un Ingénieur Solutions

2025-01-04
Infisical, soutenue par YC, recrute un Ingénieur Solutions

Infisical, une plateforme de gestion de secrets open source soutenue par Y Combinator, recrute un Ingénieur Solutions. Traitant plus de 100 millions de secrets par jour, elle sert des clients allant des grandes entreprises aux startups à croissance rapide. Le poste exige une expérience en développement ou en ingénierie système et une expérience client. Les responsabilités incluent la réussite client, l'extension à de nouveaux cas d'utilisation et l'amélioration du produit. Infisical offre un salaire et des actions compétitifs, ainsi que des avantages.

Développement Ingénieur Solutions

Un chien contre la pile graphique de Windows 3.1

2025-01-04

L'auteur tente d'exécuter Windows 3.11 sur un netbook Asus Eee PC 1000H de 2008, rencontrant des problèmes de sortie vidéo. Le mode VGA par défaut est affreux sur l'écran haute résolution, et le pilote Super VGA inclus est incompatible. L'article explore les complexités du mode amélioré de Windows 3.x, le matériel VGA, la norme VBE et le correctif SVGAPatch. Grâce à l'ingénierie inverse et au débogage, l'auteur analyse le pilote d'affichage et le Dispositif d'Affichage Virtuel (VDD), améliorant SVGAPatch pour résoudre certains problèmes de compatibilité. Cependant, des défis persistent, soulignant la complexité des systèmes hérités.

Développement

Magie Open Source : Auto Smiley, le générateur de smileys par vision par ordinateur

2025-01-04
Magie Open Source : Auto Smiley, le générateur de smileys par vision par ordinateur

Le laboratoire F.A.T. a publié Auto Smiley, une application open source utilisant la vision par ordinateur pour détecter les sourires. Lorsque vous souriez, il insère automatiquement ":)" dans votre application active. Développé avec openFrameworks et MPT, il est disponible pour Windows et Mac, démontrant l'expertise du laboratoire F.A.T. en prototypage rapide et technologie créative. Ce projet rapide souligne son engagement envers les ressources open source et le domaine public.

Prettier prend désormais en charge la mise en forme des fichiers PGN

2025-01-04
Prettier prend désormais en charge la mise en forme des fichiers PGN

Un nouveau plugin Prettier, `prettier-plugin-pgn`, vient d'être publié, ajoutant la prise en charge de la mise en forme des fichiers Portable Game Notation (PGN). PGN est un format de texte standard pour enregistrer les parties d'échecs. Ce plugin gère les variations, les annotations et les parties multiples dans un seul fichier PGN, simplifiant la vie des joueurs d'échecs et des développeurs. L'installation est simple, via npm ou globalement.

Développement Formatage de code

Terminer les projets secondaires avec les LLMs et Cursor

2025-01-04
Terminer les projets secondaires avec les LLMs et Cursor

Cet article de blog détaille comment l'auteur a considérablement amélioré son taux d'achèvement de projets secondaires en utilisant les LLMs et l'IDE Cursor. Face à des contraintes de temps, il a utilisé l'IA pour affiner les spécifications du projet, démarrer la génération de code et itérer efficacement. Un site web de suivi des habitudes sert d'étude de cas, montrant le processus de la spécification initiale (affinée avec ChatGPT) à l'implémentation via GitHub Actions. Les stratégies clés incluent l'utilisation de Vite pour la configuration du projet, le mode agent de Cursor pour la génération de code, le développement itératif avec une approche de diviser pour régner et la fourniture d'un contexte suffisant aux LLMs. L'auteur souligne l'importance de choisir le bon LLM et le bon mode Cursor pour différentes tâches, aboutissant à la livraison d'une version fonctionnelle v1 du suivi des habitudes.

Beam : Outil de transfert de fichiers et de pipes basé sur SSH

2025-01-04
Beam : Outil de transfert de fichiers et de pipes basé sur SSH

Beam est un outil permettant de transférer des fichiers et des pipes via SSH, ne nécessitant qu'un client SSH ; aucune installation binaire n'est nécessaire. Il prend en charge le transfert de pipes, offre une sécurité élevée grâce à l'authentification par clé publique et utilise des commandes SSH simples pour envoyer et recevoir des données. Des noms de canaux aléatoires peuvent améliorer la sécurité. Bien que le serveur Beam soit situé en Allemagne, les vitesses de transfert peuvent être limitées et le chiffrement de bout en bout n'est pas pris en charge (les données sont brièvement déchiffrées sur le serveur), sa nature légère et son auto-hébergement simple en font une solution pratique pour le transfert de fichiers.

5 façons de dessiner des contours dans Unity

2025-01-04
5 façons de dessiner des contours dans Unity

Cet article explore cinq techniques distinctes pour le rendu des contours d'objets dans le moteur de jeu Unity : effet de bord, extrusion de sommets, buffer flou, algorithme d'inondation par sauts et détection de bords. Chaque technique présente des compromis entre performances, fidélité visuelle et complexité de mise en œuvre. L'effet de bord est simple mais fonctionne mieux avec les objets sphériques. L'extrusion de sommets produit de bons résultats mais a des difficultés avec les arêtes vives. La méthode du buffer flou est idéale pour les contours doux mais peut être coûteuse en termes de performances. L'algorithme d'inondation par sauts excelle dans le rendu efficace de contours larges. La détection de bords fournit un effet de contour plein écran mais nécessite un réglage précis pour éviter les artéfacts. Le choix optimal dépend des besoins du projet et des contraintes de performance.

Développement Rendu de contours

Sous le capot de ChatGPT : une perspective pour les programmeurs

2025-01-04
Sous le capot de ChatGPT : une perspective pour les programmeurs

Cet article explore en profondeur le fonctionnement de ChatGPT, spécifiquement pour les programmeurs. En ignorant les concepts généraux de l'IA/ML, il se concentre sur le modèle ChatGPT d'OpenAI, en expliquant son architecture, l'utilisation des réseaux Transformer et comment l'apprentissage par renforcement avec retour d'expérience humain (RLHF) l'ajuste pour les tâches conversationnelles. L'article détaille également la tokenisation, l'entraînement du modèle, la génération de réponses et le rôle du RLHF pour garantir des réponses précises et contextuelles.

Développement

RailsConf 2025 : Un dernier adieu et un nouveau chapitre

2025-01-04
RailsConf 2025 : Un dernier adieu et un nouveau chapitre

Ruby Central a annoncé que la RailsConf 2025, qui se tiendra du 8 au 10 juillet à Philadelphie, sera la dernière. Après près de 20 ans, cette dernière rencontre célèbre l'héritage de Rails et de sa communauté. Dans le cadre d'un changement stratégique, Ruby Central n'organisera que la RailsConf en 2025, reportant la RubyConf au printemps 2026, où elle deviendra l'événement phare. Cela permettra une expérience de meilleure qualité et un soutien accru aux projets open source tels que RubyGems et Bundler. Rails maintiendra une forte présence aux futures RubyConfs, aux côtés de RailsWorld, créant un rythme printemps/automne pour les principaux événements Ruby et Rails.

Développement

Les fichiers veulent-ils être des acteurs ? io_uring et la convergence des paradigmes informatiques

2025-01-04
Les fichiers veulent-ils être des acteurs ? io_uring et la convergence des paradigmes informatiques

Dans les applications Linux hautes performances, io_uring révolutionne l'interaction avec le système d'exploitation. Il utilise des files d'attente de soumission et de complétion, permettant des E/S asynchrones sans attendre les appels système. Il suffit de mettre les opérations en file d'attente et de poursuivre le calcul. Cela ressemble remarquablement au modèle Actor : les objets envoient des messages pour effectuer des calculs concurrents. L'envoi d'opérations à des descripteurs de fichiers et la réception asynchrone de réponses dans io_uring sont étonnamment similaires. Cela suggère un changement vers un comportement du système d'exploitation asynchrone et autonome ; les méthodes traditionnelles d'appel système pourraient être une abstraction obsolète.

Développement

Démystifier la récursivité : une approche basée sur les projets

2025-01-04

Le livre "Le livre récursif de la récursivité" remet en question la réputation intimidante des algorithmes récursifs. À l'aide d'exemples en Python et JavaScript, il explique progressivement les fondamentaux de la récursivité, les algorithmes courants (factoriels, suites de Fibonacci, parcours d'arbres, résolution de labyrinthes, etc.) et les techniques d'optimisation (optimisation de l'appel de queue, mémorisation). Il aborde des sujets avancés tels que le diviser pour régner, les permutations, les combinaisons et la programmation dynamique, culminant avec la génération d'art fractal. Basé sur des projets et hautement accessible, ce livre est parfait pour les débutants et les programmeurs expérimentés.

Développement

Wine 10.0-rc4 publié : stabilité et compatibilité améliorées

2025-01-04
Wine 10.0-rc4 publié : stabilité et compatibilité améliorées

La version candidate Wine 10.0-rc4 marque une étape importante vers la prochaine mise à jour majeure de cette couche de compatibilité open source. Cette version se concentre fortement sur l'amélioration de la stabilité et de la compatibilité, promettant une expérience plus fluide pour l'exécution d'applications Windows. L'équipe de développement a investi des efforts considérables dans la correction de bogues et l'amélioration des performances, ouvrant la voie à une version finale robuste. Attendez-vous à des améliorations intéressantes dans la version finale.

Développement Couche de compatibilité

Rompre avec les tâches longues : maîtriser les boucles asynchrones pour les performances web

2025-01-04
Rompre avec les tâches longues : maîtriser les boucles asynchrones pour les performances web

Cet article explore l’optimisation des boucles JavaScript pour éviter le blocage du thread principal et améliorer les performances web. L’auteur souligne que l’utilisation de boucles `for...of` ou de méthodes comme `forEach` directement sur des tableaux volumineux peut créer des tâches longues, entraînant une expérience utilisateur lente. La solution consiste à utiliser `scheduler.yield` ou `setTimeout(0)` avec `async/await` pour décomposer les tâches longues en tâches plus petites, en cédant le contrôle après chaque itération pour maintenir la réactivité. L’article explore également les stratégies de traitement par lots et d’optimisation de la fréquence d’images pour équilibrer la réactivité et l’efficacité du traitement. En fin de compte, il est recommandé de choisir une taille et une stratégie de lot appropriées en fonction des besoins spécifiques de l’application pour une expérience utilisateur optimale.

Implémentation d'un générateur de nombres pseudo-aléatoires avec XORSHIFT32

2025-01-04

Ce journal de développement détaille l'implémentation d'un générateur de nombres pseudo-aléatoires (PRNG) utilisant l'algorithme XORSHIFT32. L'auteur utilise 1804289383 comme état initial, un nombre déjà utilisé dans d'autres implémentations de moteur. L'implémentation est simple, impliquant des décalages de bits sur l'état initial. Le code définit l'état initial et inclut une fonction `getRandomNumber()` qui exécute l'algorithme XORSHIFT32.

Syntaxe Transcendantale : Construction d'abstractions logiques à partir d'un langage de bas niveau

2025-01-04
Syntaxe Transcendantale : Construction d'abstractions logiques à partir d'un langage de bas niveau

Ce projet GitHub implémente la « syntaxe transcendantale » de Jean-Yves Girard, une méthode de construction d'abstractions logiques à partir d'un langage de bas niveau, indépendant de la logique. Il utilise un langage de base appelé « résolution stellaire », dont les objets élémentaires (programmes) sont des « constellations ». Ces constellations sont utilisées dans un langage de niveau supérieur, « Stellogen » (un langage de métaprogrammation pour les constellations), pour définir des preuves et des formules. Le projet est en cours de développement, le guide étant actuellement disponible uniquement en français.

Développement logique métaprogrammation

Weird : Possédez votre maison numérique

2025-01-04
Weird : Possédez votre maison numérique

À l'ère du numérique, nous louons souvent un espace virtuel sur des plateformes géantes comme Facebook et GitHub, perdant ainsi notre véritable souveraineté numérique. Weird vise à changer cela en proposant un hébergement web gratuit, vous permettant de posséder votre propre domaine et site web, construisant ainsi une maison numérique sûre et personnalisée. Grâce à de simples listes de liens, vous pouvez participer au graphe de connaissance sociale et établir votre identité numérique. Bien qu'il soit encore en phase de test préliminaire, Weird s'améliore constamment et proposera à terme des fonctionnalités telles que les Web Passports et les connexions ATProto.

Développement domaine
1 2 193 194 195 197 199 200 201 214 215