Category: Développement

Linus contre Tanenbaum : un choc de philosophies de conception de système d’exploitation

2025-02-08

Ce fil de discussion retrace un débat animé entre Linus Torvalds, le créateur de Linux, et Andrew S. Tanenbaum, l’auteur de Minix. Le désaccord principal porte sur la philosophie de conception des systèmes d’exploitation : Linus préconisait de tirer parti des forces de matériels spécifiques (comme le 386), tandis que Tanenbaum privilégiait la portabilité et le fonctionnement sur du matériel bas de gamme. Linus a critiqué les limites de conception de Minix en termes de performances et de fonctionnalités, tandis que Tanenbaum a rétorqué que Linux était trop dépendant du matériel. Ce débat met en lumière des approches contrastées de la conception de systèmes d’exploitation et reflète l’impact des limitations matérielles sur le développement de logiciels à l’époque.

Docker Bake GA : simplification des builds Docker complexes

2025-02-08
Docker Bake GA : simplification des builds Docker complexes

Docker annonce la disponibilité générale de Docker Bake dans Docker Desktop 4.38. Cet outil puissant d’orchestration de builds simplifie les builds Docker complexes à l’aide d’un fichier de configuration déclaratif. Bake gère plusieurs images, la parallélisation et la mise en cache pour des temps de build plus rapides, en résolvant les problèmes liés à la gestion de commandes longues et de dépendances. Il est compatible avec Docker Compose et offre des fonctionnalités avancées telles que les builds matriciels et les fonctions personnalisées. La version GA inclut des améliorations telles que les transferts de contexte dédupliqués, les droits pour une sécurité améliorée, les attributs composables et la validation des variables, améliorant ainsi l’efficacité et la facilité d’utilisation.

Développement Outil de build

Hotline renaît : Une résurrection Swift pour les systèmes Apple modernes

2025-02-08
Hotline renaît : Une résurrection Swift pour les systèmes Apple modernes

Un projet est en cours pour ressusciter le logiciel de communauté en ligne classique Mac de 1997, Hotline, en le recréant entièrement en Swift et SwiftUI pour les systèmes Apple modernes (iOS, macOS, etc.). Actuellement, il s'agit d'une application côté client pour se connecter et interagir avec les serveurs Hotline, offrant des fonctionnalités telles que le chat de type IRC, la messagerie privée, les actualités de type forum, l'affichage sur un babillard électronique et les transferts de fichiers de type FTP. L'objectif est un client Hotline moderne open source, visant à raviver cette marque chérie pour une nouvelle génération.

Développement rétro

RubyBoy : un émulateur Game Boy en Ruby, maintenant avec WebAssembly !

2025-02-08
RubyBoy : un émulateur Game Boy en Ruby, maintenant avec WebAssembly !

L'auteur a créé un émulateur Game Boy appelé RubyBoy en Ruby et l'a publié sous forme de gemme. Cet article détaille le processus de développement, couvrant l'implémentation de l'interface utilisateur, le chargement de ROM, la prise en charge des puces MBC, l'implémentation du CPU et du PPU, et les stratégies d'optimisation des performances. Pour améliorer les performances, l'auteur a utilisé YJIT, évité la création inutile de Hash, optimisé les calculs de boucle et tiré parti des améliorations de Ruby 3.3, ce qui a entraîné des améliorations significatives de la vitesse. Enfin, RubyBoy fonctionne correctement dans le navigateur grâce à WebAssembly, permettant une exécution multiplateforme.

Développement émulateur Game Boy

Édition à distance de VS Code : invasion à grande échelle ou développement pratique ?

2025-02-08
Édition à distance de VS Code : invasion à grande échelle ou développement pratique ?

Cet article traite des implications en matière de sécurité de la fonctionnalité d’édition à distance de VS Code. Bien que VS Code propose une édition à distance similaire à Tramp d’Emacs, elle diffère considérablement. Au lieu d’une connexion légère, VS Code télécharge un agent qui exécute un programme Node.js sur le serveur distant, lui donnant un accès étendu : navigation dans le système de fichiers, édition de fichiers, lancement de processus shell et autopersistance. L’auteur soutient que cette approche est trop « invasive » et présente des risques de sécurité, notamment sur les serveurs de développement ou de production. Bien que l’équipe de l’auteur ait trouvé une solution de contournement, l’article sert d’avertissement concernant les vulnérabilités potentielles.

(fly.io)
Développement Édition à distance

Manifest V3 de Chrome : un cauchemar pour les développeurs de bloqueurs de publicités ?

2025-02-08
Manifest V3 de Chrome : un cauchemar pour les développeurs de bloqueurs de publicités ?

La refonte de l’architecture des extensions Chrome Manifest V3 (MV3) de Google continue de poser des problèmes aux développeurs de bloqueurs de publicités, de filtres de contenu et d’outils de confidentialité. Si Google affirme que MV3 vise à améliorer la sécurité et les performances, des développeurs comme ceux d’AdGuard et d’uBlock Origin constatent que ses restrictions sont bien plus importantes que prévu, limitant voire empêchant les fonctionnalités principales. Les développeurs se plaignent de la difficulté accrue du développement avec MV3 et accusent Google de répondre lentement aux retours des développeurs, voire de saper subtilement les extensions par des modifications de l’interface utilisateur. Cela soulève des questions sur les véritables intentions de Google : s’agit-il d’améliorer la sécurité et la confidentialité, ou de limiter subtilement les capacités des extensions ?

Développement Extensions Chrome

Les LLM échouent en OCR complexe : pourquoi les grands modèles de langage ont du mal avec les PDF

2025-02-07
Les LLM échouent en OCR complexe : pourquoi les grands modèles de langage ont du mal avec les PDF

Pulse, une entreprise qui vise à extraire des données de feuilles de calcul et de PDF, a découvert une limitation critique dans l'utilisation de grands modèles de langage (LLM) pour l'OCR. Bien que les LLM excellent dans la génération de texte et la summarisation, ils échouent considérablement lorsqu'ils traitent des PDF et des tableaux complexes. La nature probabiliste des LLM et leur traitement abstrait des images conduisent à des hallucinations, à des pertes de données et à des interprétations incorrectes, ce qui représente des risques importants, notamment pour les données financières et médicales. De plus, les LLM sont vulnérables aux attaques par injection de prompt, soulevant des préoccupations de sécurité et d'éthique. Pulse a finalement abandonné les LLM pour l'OCR et développe une solution personnalisée intégrant des algorithmes traditionnels de vision par ordinateur et des transformateurs de vision.

Développement Extraction de Données

Comment l'IA change l'entretien technique

2025-02-07
Comment l'IA change l'entretien technique

La compétence croissante de l'IA dans des tâches complexes comme le codage remet en question les méthodes traditionnelles d'entretien technique. L'auteur raconte son expérience, soulignant les lacunes des entretiens LeetCode et de conception de systèmes : sur-accentuation des algorithmes et des approches formulées, déconnexion avec le travail réel. L'IA peut désormais facilement réussir certains entretiens techniques, forçant les entreprises à repenser leurs processus. L'auteur propose d'intégrer les revues de code, car elles évaluent mieux la capacité des candidats à évaluer la qualité du code, la sécurité, les performances, etc. – crucial à l'ère de l'IA.

ExpenseOwl : Un système de suivi des dépenses minimaliste

2025-02-07
ExpenseOwl : Un système de suivi des dépenses minimaliste

Fatigué des applications complexes de suivi des dépenses ? ExpenseOwl offre une solution minimaliste. Il utilise un simple fichier JSON pour le stockage des données, fournit une visualisation moderne en camembert des dépenses mensuelles et possède des interfaces en ligne de commande et web. Pas de configuration complexe ni de fonctionnalités inutiles : ajoutez, supprimez et visualisez simplement vos dépenses pour gérer facilement vos finances. ExpenseOwl prend également en charge les catégories et les devises personnalisées et se déploie facilement dans Docker.

Développement

Outils Emerge : Projet d’exemple de test de performance d’applications Android et iOS

2025-02-07
Outils Emerge : Projet d’exemple de test de performance d’applications Android et iOS

Ce projet open source montre comment utiliser la suite d’outils Emerge pour l’analyse de la taille, les tests d’instantanés, la détection de code mort et les tests de performance à l’aide d’exemples d’applications Android et iOS. Les applications sont disponibles sur l’App Store et Google Play, et le dépôt inclut une documentation complète et des exemples de configurations Gradle/fastlane.

Développement Test de performance

Zep AI : Construction de la couche mémoire fondamentale pour les agents d'IA de nouvelle génération

2025-02-07
Zep AI : Construction de la couche mémoire fondamentale pour les agents d'IA de nouvelle génération

Zep AI construit la couche mémoire fondamentale pour la prochaine génération d'agents d'IA. Sa technologie de graphe de connaissances en apprentissage continu permet aux systèmes d'IA de construire une compréhension riche et temporelle à partir des interactions des utilisateurs et des données commerciales. Confiée par des leaders de l'industrie comme Mattel et WebMD, Zep améliore la personnalisation et la précision des applications d'IA. Ils recherchent un ingénieur principal pour construire des solutions innovantes et évolutives et façonner la stratégie technique aux côtés du fondateur, en travaillant sur l'infrastructure, les API et les technologies front-end. Le candidat idéal aura plus de 7 ans d'expérience pratique en ingénierie logicielle, une expertise dans au moins deux des langages Python, TypeScript ou Go, et des antécédents prouvés en architecture de systèmes, logiciels à l'échelle de production et leadership d'équipe.

Développement

20 ans de signature de code Firefox : du manuel à l’automatisé

2025-02-07

Cet article relate l’évolution de la signature de code de Firefox chez Mozilla au cours des 20 dernières années. Initialement, le processus était extrêmement manuel, nécessitant des machines physiques, des clés USB et de nombreuses étapes manuelles. Grâce aux progrès technologiques, Mozilla a automatisé la signature, passant de scripts améliorés à des serveurs de signature dédiés, puis en adoptant Taskcluster et le service Autograph. Aujourd’hui, la signature de code de Firefox a lieu des milliers de fois par jour, améliorant considérablement la sécurité du logiciel.

Développement

Pantograph : un éditeur de structure fluide et typé

2025-02-07
Pantograph : un éditeur de structure fluide et typé

Pantograph est un éditeur de code structuré révolutionnaire qui opère directement sur un arbre de syntaxe typé, contrairement aux éditeurs traditionnels qui analysent le texte puis vérifient le type. En introduisant le concept de sélection d'arbre et d'« édition à glissière », Pantograph simplifie l'édition de programmes existants, permettant aux programmeurs de faire des modifications de code complexes plus facilement tout en maintenant la sécurité des types. Il gère intelligemment les différences de type et permet l'existence de certaines erreurs dans le programme, facilitant le débogage progressif. La conception de Pantograph est générique pour le langage, permettant aux développeurs de définir de nouveaux éditeurs basés sur son framework.

Les Cinq Chapeaux du Programmeur : Des Styles de Codage Contextuels

2025-02-07

Un programmeur chevronné réfléchit sur des années d'expérience et décrit cinq "chapeaux" de codage distincts : le chapeau de Capitaine (prudent, délibéré, pour les systèmes critiques), le chapeau Débrouillard (prototypes rapides, cérémonial minimal), le chapeau MacGyver (expérimentation rapide, code désordonné acceptable), le chapeau de Chef (accent mis sur l'esthétique du code) et le chapeau de Professeur (priorisation de la clarté et de la compréhension du code). L'auteur soutient que le choix du bon style de codage en fonction du contexte est crucial, évitant l'adhésion dogmatique à une seule manière "correcte" pour une efficacité optimale.

LOD Dynamique en Three.js : Inspiré par Nanite

2025-02-07
LOD Dynamique en Three.js : Inspiré par Nanite

Ce projet tente de reproduire un système de LOD dynamique dans Three.js, similaire au Nanite d'Unreal Engine 5. Il commence par regrouper un maillage en meshlets, puis regroupe les meshlets adjacents, les fusionne (sommets partagés), simplifie le maillage à l'aide de meshoptimizer (réduction de moitié des triangles, maximum 128) et enfin le divise (actuellement en 2, avec pour objectif N/2). Le projet est à un stade précoce ; les travaux futurs incluent l'amélioration des LOD, des coupes DAG et le streaming de la géométrie vers le GPU. La recherche inclut Nanite, les structures multi-résolutions et les multi-triangulations par lots.

Développement

Ingénieur Fondateur : construisez les systèmes de données basés sur l’IA chez PropRise

2025-02-07
Ingénieur Fondateur : construisez les systèmes de données basés sur l’IA chez PropRise

PropRise, une plateforme de données immobilières en croissance rapide, recherche un ingénieur fondateur senior pour concevoir et construire son architecture de données principale. Vous travaillerez avec une pile technologique comprenant TypeScript, Next.js, React, Postgres et GCP, en gérant des millions d’enregistrements de propriétés. Les responsabilités comprennent la construction de pipelines de données robustes, de systèmes d’assurance qualité utilisant l’IA et d’outils internes pour une détection plus rapide des valeurs aberrantes. Il s’agit d’une occasion de construire un système à partir de zéro, en rapportant directement au CTO avec une participation importante, idéale pour les ingénieurs passionnés par la résolution de problèmes complexes, enthousiastes à l’idée de l’intersection entre l’IA et la qualité des données, et désireux de jouer un rôle clé dans une startup à croissance rapide.

Développement Ingénierie des données

TRRE : Expressions régulières transductives – Au-delà du regex classique

2025-02-07
TRRE : Expressions régulières transductives – Au-delà du regex classique

TRRE est une extension expérimentale des expressions régulières conçue pour une édition de texte et une correspondance de motifs plus intuitives. Contrairement aux regex classiques, TRRE utilise le symbole `:` pour définir des transformations, simplifiant le remplacement, l'insertion et la suppression de texte. Il fournit un outil en ligne de commande semblable à `grep` pour des tâches efficaces de manipulation de texte, telles que la substitution de mots, l'insertion/suppression de caractères et même le chiffrement/déchiffrement simple. Bien qu'il s'agisse encore d'un prototype, TRRE est prometteur, en particulier pour les tâches complexes où ses performances peuvent même surpasser celles de `sed` dans certains cas.

Développement

L'essor du logiciel personnel : alimenté par l'IA

2025-02-07

Après dix ans de développement de logiciels pour les autres, l'auteur a connu un épuisement professionnel. L'avènement de l'IA a rendu la création de logiciels personnels plus facile que jamais. Cela a conduit l'auteur à adopter le concept de logiciel « personnel » ou « égoïste » – en se concentrant sur la résolution de ses propres problèmes et en open-sourçant les projets. Cette approche ravivée la passion, permet une itération plus rapide et utilise l'IA pour apprendre et résoudre les problèmes efficacement. Même de petits scripts uniques deviennent agréables, favorisant un nouveau sentiment d'objectif dans le développement.

Développement logiciel personnel

Le vérificateur d'emprunts inévitable dans Inko : compromis entre l'allocation sur la pile et les vérifications à la compilation

2025-02-07

Le concepteur du langage Inko explore les solutions optimales pour l'allocation sur la pile et la vérification des emprunts. Par défaut, les types Inko sont alloués sur le tas, offrant de la flexibilité mais entraînant une surcharge de performance. Pour améliorer les performances, un modificateur `inline` est introduit pour prendre en charge l'allocation sur la pile, mais cela pose de nouveaux défis : comment gérer les emprunts et la sémantique de déplacement tout en garantissant la sécurité de la mémoire. L'article explore plusieurs solutions, notamment la possibilité d'autoriser les affectations de champs, l'introduction de types uniques et l'analyse d'échappement, en concluant que la vérification des emprunts au moment de la compilation est la meilleure approche, mais sa complexité d'implémentation est élevée et elle ne sera pas implémentée à court terme. Actuellement, Inko utilise toujours une stratégie qui n'autorise pas la réaffectation des champs de types inline.

Développement

arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

2025-02-07
arXivLabs : Projets expérimentaux avec des collaborateurs de la communauté

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

Développement

Modèle LLM inférieur à 100 Mo désormais installable via pip : présentation de llm-smollm2

2025-02-07
Modèle LLM inférieur à 100 Mo désormais installable via pip : présentation de llm-smollm2

Un nouveau plugin, llm-smollm2, intègre un modèle LLM SmolLM2-135M-Instruct quantifié de moins de 100 Mo, le rendant installable via pip. L'auteur détaille le processus de création, de la recherche d'un modèle approprié de moins de 100 Mo (limité par les restrictions de taille de PyPI) à la suppression des journaux détaillés de llama-cpp-python et à l'empaquetage pour PyPI. Bien que les capacités du modèle soient limitées, il est présenté comme un outil d'apprentissage précieux pour comprendre la technologie LLM.

Développement Quantification de modèle

Génération de terrain et d'hydrologie réalistes avec l'érosion hydraulique basée sur les particules

2025-02-07

Cet article présente une technique de simulation d'érosion hydraulique basée sur les particules capable de générer des terrains réalistes avec des rivières, des lacs et d'autres caractéristiques hydrologiques. En étendant un modèle précédent d'érosion basé sur les particules et en introduisant des « cartes de cours d'eau » et des « cartes de plans d'eau » pour suivre l'écoulement et l'accumulation d'eau, le système simule la migration des rivières, la formation de cascades, les plaines d'inondation et d'autres phénomènes géographiques. La méthode est simple, efficace et fortement couplée au terrain, produisant des paysages hautement réalistes qui restent fluides même lors du rendu en temps réel.

Kubernetes : une analogie surprenante avec les systèmes Entité-Composant

2025-02-07

Cet article révèle une similitude frappante entre le modèle de gestion des ressources de Kubernetes et le modèle Entité-Composant-Système (ECS) couramment utilisé dans le développement de jeux. Les objets Kubernetes reflètent les entités ECS, possédant des identifiants uniques ; les sections `spec` et `status` correspondent aux composants, représentant respectivement l’état souhaité et l’état observé ; tandis que les contrôleurs, les planificateurs et le Kubelet agissent comme des systèmes, conciliant les divergences entre l’état souhaité et l’état réel. Cette similitude architecturale clarifie la conception de Kubernetes et offre de nouvelles perspectives sur sa nature déclarative.

Développement

Hector Martin, mainteneur du noyau Linux, démissionne

2025-02-07

Hector Martin, un développeur important du noyau Linux, a annoncé sa démission du maintien du noyau, se retirant spécifiquement en tant que mainteneur de la plateforme Apple/ARM. Il a cité une perte de confiance dans le processus de développement du noyau et la gestion de la communauté. Bien qu'il puisse soumettre des correctifs indépendamment à l'avenir, son départ suscite un débat sur la gestion de la communauté du noyau Linux.

Développement Gestion de communauté

Google reCAPTCHA vs. RGPD : Risques pour la vie privée et solutions

2025-02-07

La technologie reCAPTCHA de Google, utilisée pour identifier les visiteurs d'un site web comme étant des humains, est en conflit avec le RGPD. reCAPTCHA analyse le comportement de l'utilisateur (mouvements de souris, frappes de touches, etc.) et collecte des données personnelles telles que les adresses IP et les informations sur le navigateur pour évaluer l'identité de l'utilisateur. Comme aucun consentement explicite n'est obtenu, les opérateurs de sites web doivent justifier l'utilisation de reCAPTCHA, ce qui est difficile étant donné les pratiques de données opaques de Google et les risques pour la vie privée incalculables. L'article recommande l'utilisation d'alternatives plus respectueuses de la vie privée et souligne l'importance de la transparence, de l'obtention du consentement de l'utilisateur et de la minimisation des données.

Développement

Le 'Garbage Collector Nul' dans les logiciels de missiles : Fuites de mémoire ? Pas de problème !

2025-02-07
Le 'Garbage Collector Nul' dans les logiciels de missiles : Fuites de mémoire ? Pas de problème !

Un développeur raconte une application ingénieuse d'un 'garbage collector nul' dans un logiciel de missile. En raison du temps de vol limité et de la mémoire matérielle abondante, les fuites de mémoire dans le programme n'étaient pas une préoccupation. Les ingénieurs ont calculé la fuite de mémoire potentielle pendant le vol et ont ajouté le double de cette quantité de mémoire pour garantir que le programme ne plante pas avant la fin de la mission. Cette approche a intelligemment exploité les contraintes d'exécution du programme, résolvant efficacement le problème des fuites de mémoire : une sorte de 'garbage collection ultime'.

Développement fuites mémoire

Espaces blancs en HTML : Plongeon au cœur du désordre et solutions possibles

2025-02-07
Espaces blancs en HTML : Plongeon au cœur du désordre et solutions possibles

Cet article explore en profondeur les complexités de la gestion des espaces blancs en HTML. À travers de nombreux exemples, l’auteur révèle les différentes règles régissant le traitement des espaces blancs en HTML, notamment les différences entre les éléments en ligne et les éléments de bloc, les balises `

` et la propriété CSS `white-space`, et comment elles conduisent à des résultats de rendu imprévisibles. L’article analyse également les défis rencontrés par les outils de formatage automatique, les systèmes de gestion de contenu et les outils de minification lors du traitement des espaces blancs en HTML. Une solution potentielle est proposée : utiliser une syntaxe de guillemets pour distinguer les espaces blancs du code des espaces blancs visibles par l’utilisateur, bien qu’il soit reconnu que cela constituerait un changement majeur. Enfin, l’auteur suggère des conseils pratiques pour atténuer les problèmes liés à la gestion des espaces blancs en HTML et propose d’ajouter une nouvelle entité HTML `&ncsp;` pour représenter un espace non collapsable.

Développement espaces blancs

Accès à la caméra de Google Android XR : aussi simple que sur votre téléphone

2025-02-07
Accès à la caméra de Google Android XR : aussi simple que sur votre téléphone

Cet article révèle l'approche de Google concernant l'accès à la caméra dans son système Android XR. Similaire aux téléphones, les développeurs peuvent accéder aux données de la caméra avec l'autorisation de l'utilisateur, en utilisant les API de caméra standard d'Android (comme CameraX) pour les flux d'images. Bien que la caméra frontale soit accessible (affichant un avatar de l'utilisateur), la caméra arrière fournit une image reconstruite, et non le flux de données brutes. Cela reflète la stratégie d'Apple Vision Pro, assurant une portabilité transparente des applications Android vers les appareils XR et maintenant des demandes d'autorisation cohérentes entre les téléphones et les casques. Android XR est actuellement en préversion, donc des modifications futures sont possibles.

Expérience de réponses IA de Stack Overflow : Une recette pour le désastre ?

2025-02-07
Expérience de réponses IA de Stack Overflow : Une recette pour le désastre ?

L'expérience prévue de Stack Overflow pour intégrer des réponses générées par l'IA a suscité une vive réaction négative de la communauté. L'auteur soutient que l'expérience repose sur une prémisse erronée : tenter de remplacer les réponses de haute qualité d'experts humains par l'IA. Cela ne fera pas que gaspiller du temps et de l'argent, mais aussi nuire à la valeur fondamentale de la plateforme : des réponses fiables d'experts. L'article détaille les impacts négatifs potentiels de l'expérience, notamment : l'augmentation de la charge de travail des modérateurs, la diminution de la participation des experts, l'impossibilité de garantir l'exactitude des réponses et l'exode potentiel des utilisateurs. L'auteur conclut que les gains potentiels de l'expérience sont extrêmement faibles, tandis que les risques sont très élevés, aboutissant finalement à un résultat contre-productif qui nuit à la réputation et à la vitalité de la communauté Stack Overflow.

Développement

arXivLabs : Collaboration communautaire pour de nouvelles fonctionnalités arXiv

2025-02-07
arXivLabs : Collaboration communautaire pour de nouvelles fonctionnalités arXiv

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

Développement
1 2 166 167 168 170 172 173 174 214 215