Category: Développement

Tests d'accessibilité automatisés chez Slack : défis et réussites

2025-01-08
Tests d'accessibilité automatisés chez Slack : défis et réussites

L'équipe d'ingénierie de Slack détaille son parcours dans la mise en œuvre de tests d'accessibilité automatisés. Les tentatives initiales d'intégration d'Axe dans sa bibliothèque de tests React et son framework Jest ont échoué en raison de complexités. Ils ont opté pour Playwright, utilisant des fonctions et des stratégies personnalisées pour automatiser avec succès les vérifications d'accessibilité et les intégrer à CI/CD. Bien qu'ils n'aient pas pu masquer complètement les vérifications automatisées, ils ont minimisé la surcharge des développeurs en simplifiant les flux de travail, en améliorant les rapports et en établissant des processus clairs. Les plans futurs incluent une optimisation supplémentaire et l'exploration de tests assistés par IA.

Streets GL : Un moteur de carte 3D en temps réel open source

2025-01-07

Streets GL est un puissant moteur de carte 3D en temps réel open source offrant aux développeurs les outils nécessaires pour construire des mondes virtuels époustouflants. Tirant parti de WebGL, il offre des performances exceptionnelles, rendant en douceur des ensembles de données géographiques massifs et prenant en charge les matériaux, l'éclairage et les effets personnalisés. Que ce soit pour créer des simulateurs de villes, des cartes de jeux ou des applications de RV immersives, Streets GL gère tout. Sa nature open source en fait une ressource précieuse pour la communauté, constamment mise à jour et améliorée.

Développement Carte 3D Moteur open source

Licencié deux fois en un an : le récit d’un ingénieur logiciel

2025-01-07

Un ingénieur logiciel raconte son expérience de deux licenciements en un an, une fois une semaine après le début de son congé paternité et une autre juste avant Noël. L’article détaille les montagnes russes émotionnelles, les mesures pratiques prises pour trouver un nouvel emploi (mises à jour du CV, allocations chômage, stratégies de recherche d’emploi) et les réflexions sur l’état actuel de l’industrie technologique et l’estime de soi. Il donne des conseils pour gérer les licenciements, en soulignant l’importance de la résilience, du réseautage et de l’apprentissage continu.

Développement recherche d’emploi

Les erreurs les plus courantes des ingénieurs dans les grandes bases de code

2025-01-07

Travailler avec de grandes bases de code établies est notoirement difficile. Cet article partage une décennie d'expérience, en soulignant l'erreur la plus courante et la plus fatale : ignorer les modèles existants de la base de code et se concentrer uniquement sur un code propre pour une nouvelle fonctionnalité. Maintenir la cohérence est essentiel ; elle prévient les problèmes inattendus, ralentit la dégradation de la base de code et permet des améliorations futures. L'auteur souligne également l'importance de comprendre l'empreinte de production du code, d'être prudent lors de l'introduction de nouvelles dépendances, de supprimer le code redondant, de travailler sur de petits PR et de mettre à profit l'expertise de l'équipe pour détecter les erreurs. Bien que difficile, maîtriser les grandes bases de code est crucial, car elles constituent généralement la base des produits les plus précieux d'une entreprise.

Développement base de code

Liens magiques : pratiques ou catastrophiques ?

2025-01-07
Liens magiques : pratiques ou catastrophiques ?

Cet article critique les conceptions de sites web qui reposent uniquement sur des liens magiques par e-mail pour la connexion. Bien que sécurisés, l’auteur soutient que cette méthode est peu pratique pour les utilisateurs disposant de plusieurs appareils, rendant difficile la connexion directe sur les PC de jeu ou les ordinateurs portables professionnels et étant sensible aux retards de messagerie électronique. Elle oblige également les utilisateurs à accéder à leurs e-mails personnels sur des appareils professionnels, ce qui représente des risques pour la sécurité. L’auteur suggère d’offrir des options de connexion plus flexibles, telles que des mots de passe ou des clés de sécurité, pour améliorer l’expérience utilisateur.

Développement méthodes de connexion

HipScript : Exécutez du code HIP et CUDA avec WebGPU

2025-01-07

Le compilateur en ligne HipScript, développé par Ben Schattinger, permet d'exécuter du code HIP et NVIDIA CUDA directement sur WebGPU. Cela signifie que les développeurs peuvent utiliser des modèles de programmation familiers pour déployer des tâches de calcul haute performance sur le navigateur, sans avoir besoin d'une portabilité complexe. Un exemple de code, comme le Jeu de la Vie, est fourni pour faciliter l'apprentissage. Il s'agit d'un développement significatif, qui ouvre le potentiel du calcul haute performance dans les applications web.

Développement

OmniAI (YC) recrute un ingénieur full-stack

2025-01-07
OmniAI (YC) recrute un ingénieur full-stack

OmniAI, une startup soutenue par Y Combinator, recrute un ingénieur full-stack avec un salaire de 125 000 à 175 000 $ et des stock-options. Ils construisent une nouvelle façon de travailler avec les données non structurées, permettant des analyses à grande échelle auparavant impossibles. Le candidat idéal possède plus de 3 ans d'expérience, maîtrise Node.js, TypeScript, React/NextJS, Postgres et possède une compréhension approfondie des LLM et de l'OCR. Le processus d'entretien comprend un entretien téléphonique, un entretien sur la conception de l'architecture et un défi de codage sur site.

Développement

Hacki : Un client Hacker News complet, développé avec Flutter

2025-01-07
Hacki : Un client Hacker News complet, développé avec Flutter

Hacki est un client Hacker News riche en fonctionnalités, développé avec Flutter. Il offre un ensemble complet de fonctionnalités, notamment la connexion à votre compte Hacker News, la navigation parmi les articles de différentes catégories, la recherche et la soumission d'articles, la mise en favoris et l'épinglement d'articles, les commentaires, la participation aux sondages et la lecture hors ligne. La synchronisation entre appareils pour les favoris et les articles épinglés (iOS uniquement) et le lancement depuis le menu de partage du système sont également inclus. Hacki vise à fournir un moyen plus pratique et efficace d'utiliser Hacker News.

Développement

PCalc : 20 ans d’histoire pour une application calculatrice

2025-01-07

PCalc, une application calculatrice en apparence simple, possède une histoire remarquable de 20 ans. Elle a commencé comme un projet universitaire, initialement conçue comme un panneau de contrôle de chauffage central ! L’auteur l’a ensuite transformée en une calculatrice pour programmeurs, la lançant en tant que logiciel gratuit en 1992. À travers de nombreuses itérations et ports sur différentes plateformes, PCalc est désormais disponible sur iOS, Mac et Apple Watch, intégrant des fonctionnalités innovantes. Son histoire est riche en passion pour la technologie, en liens avec Apple et en hommage à l’auteur de science-fiction disparu Douglas Adams.

Dites adieu aux amplificateurs opérationnels obsolètes : guide des alternatives modernes

2025-01-07
Dites adieu aux amplificateurs opérationnels obsolètes : guide des alternatives modernes

Cet article critique les amplificateurs opérationnels LM741 et LM324/LM358, largement utilisés mais obsolètes, et recommande des alternatives modernes supérieures et faciles à utiliser, telles que les Microchip MCP6272, MCP6022 et les Texas Instruments OPA2323, TLV3542 et OPA2356. Il détaille les paramètres essentiels à prendre en compte lors du choix d’un amplificateur opérationnel, notamment la plage de tension d’alimentation, le courant de sortie maximal, l’entrée/sortie rail-to-rail (RRIO), le type d’étage d’entrée (FET par rapport à bipolaire), le produit gain-bande passante, la vitesse de balayage et le bruit. L’auteur souligne que de nombreux paramètres sont souvent surestimés dans les projets amateurs.

Minimisation extrême : création d’un exécutable multiplateforme de moins de 400 octets

2025-01-07

Cet article de blog détaille des astuces d’optimisation de taille provenant du projet Cosmopolitan Libc, utilisant l’assembleur x86 et des techniques de compilation intelligentes pour réduire considérablement la taille des exécutables. Les méthodes principales abordées incluent le codage par longueur de série, les sections décentralisées, l’élimination du code mort, le codage δzd, les fonctions imbriquées et l’optimisation de printf. Résultat ? Un exécutable ELF de moins de 400 octets fonctionnant sous Linux, FreeBSD, NetBSD et OpenBSD. Cela démontre l’utilisation efficace des ressources et offre de nouvelles perspectives sur l’évolutivité des grandes bases de code.

Moteur d'échecs en 84 688 expressions régulières

2025-01-07

Nicholas Carlini a créé un moteur d'échecs minimax à 2 plis utilisant un nombre impressionnant de 84 688 expressions régulières comme projet de vacances. Il a conçu une machine virtuelle basée sur les expressions régulières avec un jeu d'instructions sans branchement, à exécution conditionnelle et SIMD. Un compilateur d'exécution symbolique traduit le code Python en séquences d'expressions régulières, permettant le calcul parallèle. Le moteur exploite le SIMD pour calculer les mouvements de plusieurs pièces simultanément, avec des optimisations intelligentes des expressions régulières pour la vitesse. Bien que limité en profondeur, il montre la puissance de calcul surprenante des expressions régulières.

Bibliothèque HashMap parallèle : extrêmement rapide et économe en mémoire

2025-01-07
Bibliothèque HashMap parallèle : extrêmement rapide et économe en mémoire

parallel-hashmap est une bibliothèque C++ impressionnante qui fournit un ensemble de conteneurs hashmap et btree extrêmement rapides et économes en mémoire. Elle est entièrement basée sur des en-têtes, sans processus de construction ; il suffit de copier le répertoire dans votre projet. Compatible avec C++11 et les versions ultérieures, elle surpasse considérablement les unordered_map/set intégrés de votre compilateur ou les équivalents de Boost, tout en utilisant moins de mémoire. Elle prend en charge les recherches hétérogènes, est facile à déclarer en amont et possède une fonctionnalité pratique de vidage/chargement. Basée sur et améliorée à partir de la bibliothèque Abseil de Google, elle est largement testée sous Windows, Linux et macOS.

Développement bibliothèque C++

Le Comptime de Zig : Incroyablement Bon

2025-01-07

Cet article plonge au cœur des capacités de métaprogrammation au moment de la compilation (comptime) du langage de programmation Zig. Ayant initialement trouvé le comptime difficile, l'auteur finit par s'émerveiller de sa puissance. Six perspectives différentes sur le comptime sont présentées, incluant l'ignorer, le voir comme des génériques, du code standard exécuté au moment de la compilation, l'évaluation partielle, l'évaluation au moment de la compilation avec émission de code au moment de l'exécution et la génération de code textuel. À travers des exemples, l'auteur démontre comment le comptime améliore l'efficacité du code, simplifie la lecture et le débogage, et permet des fonctionnalités avancées comme la génération de code. Le comptime de Zig permet une vaste computation et génération de code au moment de la compilation, améliorant ainsi les performances et simplifiant l'écriture du code.

DiscoTool : Gérez facilement vos appareils Arduino USB

2025-01-07
DiscoTool : Gérez facilement vos appareils Arduino USB

DiscoTool est un puissant outil en ligne de commande et une bibliothèque Python pour découvrir et gérer les cartes de développement de type Arduino connectées à l'USB. Il est compatible avec macOS, Linux et Windows et s'installe facilement via pip sans nécessiter d'installations supplémentaires. DiscoTool offre un large éventail de commandes, notamment la connexion au REPL, l'installation et la mise à jour des modules, la sauvegarde des données de la carte, etc. Il permet également la personnalisation des outils de ligne de commande et des variables d'environnement. De plus, un module Python permet aux développeurs de l'intégrer à leurs projets pour accéder facilement aux informations du périphérique, telles que le fabricant, le numéro de série et la version.

Développement Outil de Développement

LLM et les limites de l'optimisation automatique de code

2025-01-07
LLM et les limites de l'optimisation automatique de code

David Andersen a expérimenté l'utilisation de grands modèles de langage (LLM) pour optimiser du code qui trouve la différence entre les plus petits et les plus grands nombres dont la somme des chiffres est égale à 30 dans une liste d'un million d'entiers aléatoires. Le code initial en Python et Rust était lent. Bien que le LLM ait amélioré certaines parties, comme la fonction de somme des chiffres, il a manqué une optimisation cruciale : vérifier si un nombre est pertinent *avant* le calcul coûteux de la somme des chiffres. L'intervention manuelle, impliquant un générateur de nombres aléatoires plus rapide, la parallélisation et le prétraitement, a accéléré le code Rust d'un facteur 55. Cela souligne les limites des LLM en matière d'optimisation de code, en particulier pour les problèmes complexes nécessitant une compréhension algorithmique approfondie et des stratégies de parallélisation. L'ingéniosité humaine reste cruciale.

Développement Optimisation de code

Programmation avec les LLMs en 2024 : Mes expériences

2025-01-07

Cet article résume les expériences de l’auteur utilisant des modèles génératifs pour la programmation au cours de l’année écoulée. Il a constaté que les LLMs avaient un impact positif sur sa productivité, notamment pour la saisie semi-automatique, la recherche et la programmation par conversation. Bien que la programmation par conversation nécessite d’adapter les workflows, elle fournit une première ébauche et facilite une correction plus rapide des erreurs. L’auteur souligne que les LLMs excellent pour les problèmes bien définis et préconise des paquets de code plus petits et plus indépendants pour une meilleure interaction avec les LLMs. Il présente sketch.dev, un IDE Go conçu pour les LLMs afin d’optimiser la boucle de rétroaction et d’améliorer l’efficacité.

Développement

25 ans plus tard : L'histoire non racontée du Dock de Mac OS X

2025-01-06
25 ans plus tard : L'histoire non racontée du Dock de Mac OS X

Cet article de blog relate les expériences de James Thomson, un ingénieur qui a travaillé sur le développement du Dock de Mac OS X. Il détaille son travail sur le Dock chez Apple en Irlande, incluant le processus de conception initial, les interactions avec Steve Jobs et son départ final d'Apple. L'histoire est pleine de tension et d'intrigue, incluant le secret entourant le projet, les exigences de Jobs concernant l'emplacement de l'ingénieur et les défis et les réussites rencontrés par Thomson pendant le développement. L'article offre un aperçu fascinant de la création d'une pièce maîtresse de Mac OS X et du parcours d'un ingénieur logiciel.

Développement

Triptych : Trois propositions pour rendre l'hypertexte à nouveau « hyper »

2025-01-06

Alexander Petros et Carson Gross proposent Triptych, trois propositions visant à rendre HTML beaucoup plus expressif dans sa gestion des requêtes réseau. Ces propositions ajoutent la prise en charge de PUT, PATCH et DELETE aux formulaires HTML, permettent aux boutons d'effectuer des requêtes sans formulaire et autorisent le remplacement partiel de pages avec la réponse. Triptych vise à intégrer le meilleur des bibliothèques comme htmx au HTML natif, améliorant ses capacités REST et simplifiant la déclaration du comportement des pages pour les requêtes HTTP. Cela se traduit par un code plus propre et une implémentation plus facile de la navigation en page complète et des mises à jour partielles de page.

Développement Requêtes Web

FormBee : Backend de formulaire open-source pour les développeurs soucieux de la confidentialité des données

2025-01-06
FormBee : Backend de formulaire open-source pour les développeurs soucieux de la confidentialité des données

FormBee est un backend de formulaire open-source conçu pour les développeurs qui privilégient la confidentialité des données. Il simplifie l'envoi des données de formulaire de sites web, permettant d'envoyer les soumissions de formulaire à des emails, Telegram, des webhooks, etc., sans écrire de code côté serveur. Les fonctionnalités incluent la prise en charge des plugins, la protection CAPTCHA, la liste blanche des domaines et les emails de réponse automatique. L'auto-hébergement est facile grâce aux images Docker disponibles.

Développement formulaires

pl_synth : Un synthétiseur musical miniature basé sur JSON

2025-01-06

Dominic Szablewski de PhobosLab a publié pl_synth, un synthétiseur musical léger en C/JS et son éditeur de séquenceur (tracker). Inspiré par Sonant, pl_synth privilégie la petite taille du code et des données et utilise WASM pour améliorer considérablement les performances de la version JavaScript, réduisant le temps de génération de musique de 5 secondes à 25 millisecondes. Il prend en charge divers instruments et effets, dispose d'une fonctionnalité d'annulation/rétablissement et permet d'intégrer le produit final directement dans une URL. pl_synth est désormais inclus dans le moteur de jeu high_impact.

Développement synthétiseur musical

Defer Simple en C : Implémentations Pratiques

2025-01-06
Defer Simple en C : Implémentations Pratiques

Cet article de blog explore des moyens pratiques d'implémenter un mot-clé `defer` en C, permettant des actions de nettoyage automatiques (comme la libération de mémoire ou le déverrouillage de mutex) après un bloc de code. L'auteur explique d'abord le but de `defer`, puis montre des implémentations utilisant des extensions GCC et des fonctionnalités C++. Enfin, une nouvelle proposition de syntaxe est présentée pour simplifier l'implémentation et l'utilisation de `defer`, améliorant ainsi considérablement la lisibilité et la sécurité du code C.

Développement

Astuce pour la revue de code : demandez aux ingénieurs « Que pensez-vous de ce que vous avez construit ? »

2025-01-06

Lors d'une revue de code de modifications complexes de l'interface utilisateur, au lieu de procéder immédiatement à la revue, l'auteur a demandé à l'ingénieur : « Que pensez-vous du nouveau comportement ? » La réponse de l'ingénieur a conduit à la découverte et à la correction de plusieurs bogues, et même à l'abandon d'une exigence problématique. Cette simple question a incité l'ingénieur à réfléchir plus profondément à son travail et à apporter des améliorations, améliorant ainsi la qualité du code. L'auteur estime que demander régulièrement aux ingénieurs ce qu'ils pensent de leurs créations est une technique utile à essayer.

Développement revue de code

Générer des mèmes drôles avec les LLMs : étonnamment difficile

2025-01-06
Générer des mèmes drôles avec les LLMs : étonnamment difficile

Un stagiaire de l'Université de Waterloo a tenté de créer une application utilisant les LLMs et l'API Greptile pour générer des mèmes qui « grillent » les dépôts GitHub. Le processus s'est avéré étonnamment difficile. Demander directement au LLM de générer des blagues a donné des résultats génériques. La solution a consisté à séparer la tâche en analyse de code (à l'aide de Greptile pour identifier des problèmes spécifiques) et génération de blagues (à l'aide du LLM pour créer de l'humour ciblé). La génération d'images s'est avérée difficile en raison de limitations dans la gestion du texte, ce qui a conduit à l'utilisation de modèles de mèmes préconstruits et de node-canvas pour l'insertion de texte. Malgré les obstacles, le projet a abouti à reporoast.com, un site Web capable de générer des mèmes personnalisés qui « grillent » le code.

Développement Génération de mèmes

htmx : Le prochain jQuery ? Un outil de développement web privilégiant la stabilité

2025-01-06

htmx, issu d'intercooler.js, vise à être un outil stable et fiable pour le développement web, à l'image du succès durable de jQuery. L'article décrit l'orientation future d'htmx : privilégier la stabilité plutôt que les mises à jour fréquentes ; limiter l'ajout de nouvelles fonctionnalités principales, en étendant principalement les fonctionnalités via l'API d'extension ; maintenir un calendrier de publication trimestriel. L'objectif d'htmx n'est pas d'être une solution complète pour les applications web, mais de se concentrer sur la simplification des contrôles hypermédia et de s'intégrer mieux avec d'autres outils et techniques, en espérant que ses fonctionnalités principales seront intégrées au standard HTML.

Développement hypermédia

Tests basés sur les propriétés centrés sur l'utilisateur : Une thèse de doctorat

2025-01-06

Cette thèse de doctorat se concentre sur l'amélioration de la convivialité des tests basés sur les propriétés (PBT) afin de toucher un public plus large de développeurs. Grâce à des études approfondies des utilisateurs, le chercheur a identifié les défis auxquels les utilisateurs de PBT sont confrontés en matière de génération de données aléatoires et d'évaluation de l'efficacité des tests. Pour y remédier, la thèse propose de nouveaux algorithmes pour des générateurs de données aléatoires améliorés et développe Tyche, un outil open source qui fournit aux développeurs des informations plus approfondies sur le PBT et augmente sa convivialité, conduisant en fin de compte à une meilleure qualité et assurance du logiciel.

Champs de distance de splines : une nouvelle technique de génération de terrain

2025-01-06

Pour surmonter les limites du moteur de jeu Tangerine, l’auteur a développé un ray tracer CPU appelé Star Machine et un prototype de jeu de course, Rainy Road. Rainy Road nécessite un système de rendu de terrain efficace et compact, capable de gérer les routes et autres éléments de terrain définis par des splines. L’auteur présente une nouvelle technique de génération de terrain utilisant des champs de distance de splines. Cette technique utilise des splines pour générer des surfaces de terrain en calculant la distance d’un point à la spline la plus proche et son vecteur normal pour déterminer l’altitude. Cela évite les limites des cartes de hauteur traditionnelles et prend en charge le placement d’objets procéduraux. La technique est en cours d’expérimentation et de recherche actives, avec l’exploration de stratégies d’interpolation améliorées et l’utilisation de nuages de points clairsemés.

42 : Un simulateur puissant de système de contrôle d'attitude pour engins spatiaux

2025-01-06
42 : Un simulateur puissant de système de contrôle d'attitude pour engins spatiaux

42 est une simulation complète et polyvalente de la dynamique d'attitude et d'orbite des engins spatiaux, principalement utilisée pour soutenir la conception et la validation des systèmes de contrôle d'attitude tout au long de leur cycle de vie, des études de concept à l'intégration et aux tests. Il modélise avec précision la dynamique d'attitude des engins spatiaux multi-corps (corps rigides et/ou flexibles), et les régimes de vol orbital à deux et trois corps, simulant des environnements de l'orbite terrestre basse à l'ensemble du système solaire. 42 simule plusieurs engins spatiaux simultanément, facilitant les études de rendez-vous, d'opérations de proximité et de vol en formation de précision. Il dispose également d'une visualisation de l'attitude de l'engin spatial.

Mashups.io : Un remplacement moderne de Yahoo Pipes

2025-01-06
Mashups.io : Un remplacement moderne de Yahoo Pipes

Mashups.io est un puissant outil d'intégration de données en ligne qui s'appuie sur l'héritage de Yahoo Pipes avec des améliorations significatives. Les utilisateurs peuvent facilement mélanger, filtrer et transformer les flux RSS, les fichiers CSV et les données JSON pour créer des sources de données personnalisées. La plateforme offre une interface visuelle intuitive, ne nécessitant aucune expérience de programmation pour construire des workflows de données complexes. Mashups.io propose des plans gratuits et payants pour répondre à différents besoins, et ses mises à jour en temps réel garantissent que les données restent toujours à jour.

L'évolution d'un éditeur de code structurel : de la manipulation de l'AST à une interface utilisateur intuitive

2025-01-06
L'évolution d'un éditeur de code structurel : de la manipulation de l'AST à une interface utilisateur intuitive

Cet article détaille l'évolution sur plusieurs années d'un éditeur de code structurel. La première version manipulait directement l'arbre de syntaxe abstraite (AST), ce qui s'est avéré fastidieux. Les itérations suivantes ont simplifié l'AST et exploré une approche basée sur le curseur de texte, mais toutes deux se sont révélées insuffisantes. La version finale équilibre l'édition de l'AST et du texte, en utilisant des techniques telles que les types modifiables, les projections et les cadres. Une interface utilisateur visuelle basée sur des icônes a été ajoutée, prenant en charge le clavier, la souris, l'écran tactile et la télécommande, améliorant ainsi considérablement l'expérience utilisateur. Construit avec Gleam et Lustre, ce projet met en évidence l'exploration continue et le raffinement de la conception des éditeurs de code structurels.

1 2 191 192 193 195 197 198 199 214 215