Category: Développement

FLAME : Un petit modèle linguistique pour les formules de tableur

2025-01-22
FLAME : Un petit modèle linguistique pour les formules de tableur

Les grands modèles linguistiques sont coûteux à entraîner et à déployer pour aider à la création de formules Excel. Cet article présente FLAME, un modèle basé sur Transformer entraîné exclusivement sur des formules Excel. Avec seulement 60 millions de paramètres et une fraction des données d'entraînement utilisées par les modèles plus grands, FLAME atteint des performances compétitives, voire supérieures, pour les tâches de réparation, de complétion et de recherche de formules, par rapport à des modèles comme Codex et CodeT5. Cela est dû à ses nouveaux objectifs de pré-entraînement et à son tokeniseur spécifique à Excel.

Développement modèle linguistique formule

Un an après avoir abandonné React : le succès du rendu côté serveur de Scholarly

2025-01-22

Scholarly, une entreprise en forte croissance, a conservé une pile technologique remarquablement simple : Rails, Stimulus et MySQL, complétés par Turbo et ActionCable pour une interactivité améliorée. Son expérience après un an d’abandon de React démontre que cette approche de rendu côté serveur améliore considérablement l’efficacité des tests, la vitesse de l’application et la productivité des développeurs. Comparée aux interfaces utilisateur JS complexes, cette approche légère réduit les coûts de maintenance du code, minimise les risques et permet à l’équipe de fournir de la valeur plus rapidement, en se concentrant sur les objectifs principaux de l’entreprise.

Développement

Evo : Le contrôle de version réinventé

2025-01-22
Evo : Le contrôle de version réinventé

Evo est un système moderne de contrôle de version, priorisant l'utilisation hors ligne, conçu pour simplifier les flux de travail de développement et améliorer la collaboration en équipe. Dites adieu aux branchements Git complexes et aux conflits de fusion frustrants. Evo utilise des espaces de travail au lieu de branches, prend en charge la fusion intelligente des fichiers JSON et YAML, et offre une authentification intégrée et une signature de validation optionnelle. Sa philosophie principale est la simplicité, l'efficacité et la fiabilité. Construit avec Go, il prend en charge les fichiers volumineux et les permissions granulaires.

Développement alternative à git

L'Essence des Abstractions Réussies : Isoler la Complexité

2025-01-22
L'Essence des Abstractions Réussies : Isoler la Complexité

Dans le développement de logiciels, la complexité est inévitable, mais elle peut être contenue. Chris Krycho soutient que la clé des abstractions réussies réside dans le confinement de la complexité à des zones bien définies. Il utilise des exemples tels que le vérificateur d'emprunts de Rust, qui isole la complexité de la sécurité mémoire dans son système de types, et TypeScript, qui éclaire et gère la complexité existante grâce aux types. Cela reflète la philosophie des microservices, où les services individuels restent simples tandis que la complexité globale est gérée. L'auteur affirme que l'abstraction réussie ne consiste pas à éliminer la complexité, mais à l'isoler et à la contrôler efficacement, améliorant ainsi l'efficacité du développement et la qualité du code.

Développement Gestion de la complexité

Des nuages photoréalistes en 10 lignes de code : dissection de 'Tiny Clouds' sur Shadertoy

2025-01-22
Des nuages photoréalistes en 10 lignes de code : dissection de 'Tiny Clouds' sur Shadertoy

Le shader 'Tiny Clouds' de Shadertoy génère des nuages incroyablement réalistes en utilisant seulement 10 lignes de code. Cet article explore les complexités du code, expliquant son ingénieux ray marching inversé, l'échantillonnage du mouvement brownien fractal (FBM) et les techniques de mélange alpha. Il révèle comment le rendu de nuages de haute qualité est obtenu avec un code aussi concis. L'auteur explore également des optimisations de code intéressantes, telles que l'utilisation de macros pour réduire la longueur et l'emploi d'une fonction sinus pour ajouter de l'aléatoire pour un aspect plus organique. L'analyse met en évidence la puissance d'un codage efficace et d'algorithmes intelligents pour obtenir des résultats visuels impressionnants.

Développement Rendu Graphique

Wine 10.0 : Une meilleure prise en charge des applications Windows sous Linux

2025-01-22
Wine 10.0 : Une meilleure prise en charge des applications Windows sous Linux

L'équipe Wine a officiellement publié Wine 10.0, marquant une année entière de développement intensif avec plus de 6 000 modifications. Cette version stable introduit des mises à jour majeures conçues pour améliorer les performances, la compatibilité et l'expérience visuelle lors de l'exécution d'applications Windows sous Linux (et d'autres plates-formes non Windows). Parmi les améliorations, on trouve la prise en charge complète de l'architecture ARM64EC, l'émulation x86 64 bits, un meilleur scaling haute résolution DPI, et des mises à jour de Direct3D et Vulkan.

Développement Compatibilité Windows

Principe de substitution de Liskov : le vrai sens de l'héritage

2025-01-22
Principe de substitution de Liskov : le vrai sens de l'héritage

Cet article explore en profondeur le principe de substitution de Liskov (LSP), un principe SOLID souvent mal compris. En utilisant l'exemple classique du rectangle-carré, il illustre les violations courantes du LSP : les sous-types ne remplacent pas entièrement les types de base. L'auteur préconise l'utilisation de la composition et des interfaces plutôt que l'héritage pour éviter les violations du LSP, en fournissant un exemple pratique avec le traitement des paiements. Les violations courantes du LSP, telles que le lancement d'exceptions inattendues et le retour de résultats incohérents avec le type de base, sont décrites, ainsi que la manière de garantir la conformité au LSP grâce à des tests de contrat et des pré/post-conditions claires. En fin de compte, l'article souligne que le LSP va au-delà de l'héritage : il s'agit de compatibilité comportementale et de respect des attentes. Le respect du LSP conduit à un code plus fiable et plus maintenable.

JReleaser : Déploiements de projets sans effort

2025-01-21

JReleaser simplifie le processus de déploiement de projets, prenant en charge de nombreux langages comme Java, Go et Node.js. Il crée facilement des paquets pour diverses plateformes (Homebrew, Snapcraft, etc.), les publie sur des services tels que GitHub et GitLab, et génère même automatiquement des journaux des modifications et annonce les versions sur Twitter. Que vous utilisiez l'interface en ligne de commande, Maven, Gradle ou Ant, JReleaser rationalise votre flux de travail, vous permettant de vous concentrer sur le développement.

Sigstore : Sécurisation de la chaîne d'approvisionnement logicielle Open Source

2025-01-21
Sigstore : Sécurisation de la chaîne d'approvisionnement logicielle Open Source

Sigstore est un projet open source visant à sécuriser les chaînes d'approvisionnement logicielles grâce à des signatures numériques et des journaux transparents. Il simplifie le processus de vérification des logiciels, permettant aux développeurs de vérifier facilement l'intégrité et l'origine des logiciels, prévenant ainsi les logiciels malveillants et les attaques sur la chaîne d'approvisionnement. La force principale de Sigstore réside dans sa facilité d'utilisation et son intégration avec les outils existants, contribuant à un écosystème logiciel plus sûr et fiable.

Au revoir, Kamal : Déployer Rails avec Dokku

2025-01-21
Au revoir, Kamal : Déployer Rails avec Dokku

Kamal de Basecamp propose une solution pour déployer Rails sur des serveurs bare metal, mais ce n'est pas l'outil le plus simple à utiliser. Cet article met en avant une alternative plus simple : Dokku, essentiellement un Heroku auto-hébergé. L'auteur fournit un guide étape par étape pour déployer une application Rails à l'aide de Dokku, couvrant l'installation, la création de l'application, la configuration de la base de données (PostgreSQL), la configuration des variables d'environnement, la configuration du domaine et du SSL (avec Let's Encrypt), et l'utilisation d'un Procfile pour les processus web et de release. Une section bonus présente la gemme Deployless, qui automatise l'ensemble du processus de déploiement pour une efficacité accrue.

Développement

L'histoire curieuse des ancres d'expressions régulières : pourquoi `$` et `^` ?

2025-01-21
L'histoire curieuse des ancres d'expressions régulières : pourquoi `$` et `^` ?

Cet article explore les origines historiques de l'utilisation de `$` et `^` comme ancres de ligne dans les expressions régulières. En remontant à l'éditeur de texte QED, `$` représentait initialement la fin du buffer, puis a été adapté par Ken Thompson pour signifier la fin d'une ligne dans les regex. Le choix de `^` est probablement dû à l'ensemble de caractères limité de la machine à écrire Teletype Model 35, `^` étant déjà présent dans ASCII-67. Ce n'était pas un choix de conception brillant, mais plutôt une conséquence des limitations matérielles et de l'ensemble de caractères de l'époque, devenant une convention dans les expressions régulières.

Développement

Comment les points forts des langages de la famille Lisp facilitent la création d'applications de bioinformatique complexes et flexibles

2025-01-21

Cet article présente une justification pour étendre la présence de la famille de langages de programmation Lisp dans la recherche en bioinformatique et en biologie computationnelle. En termes simples, les langages de la famille Lisp permettent aux programmeurs d'écrire des programmes qui s'exécutent plus rapidement que dans d'autres langages. Des langages tels que Common Lisp, Scheme et Clojure facilitent la création de logiciels puissants et flexibles nécessaires aux domaines complexes et en évolution rapide comme la biologie. Nous soulignerons plusieurs caractéristiques clés importantes qui distinguent les langages de la famille Lisp des autres langages de programmation, et nous expliquerons comment ces caractéristiques peuvent aider les chercheurs à être plus productifs et à créer un meilleur code.

Foqos : Retrouvez votre concentration grâce à la NFC

2025-01-21

Foqos est une application de concentration utilisant la technologie NFC pour aider les utilisateurs à rester concentrés. Créez plusieurs profils pour différents scénarios (travail, études, coucher, etc.). Enregistrez ces profils sur des tags NFC pour une activation instantanée d'un simple toucher - pas besoin de déverrouiller ou d'ouvrir l'application. Foqos est gratuit, privé et open-source pour toujours. Pas d'abonnement, de suivi ni de collecte de données. Juste une concentration pure.

Notebooks Jupyter et LLMs : Une optimisation inattendue des coûts

2025-01-21

L'auteur a utilisé des LLMs pour l'assistance au codage, initialement avec une configuration ContinueDev + OpenRouter. Les coûts ont augmenté de manière inattendue. L'enquête a révélé que les fichiers Jupyter Notebook (.ipynb) contiennent un contenu caché important (sorties de code, métadonnées, images codées en base64), ce qui entraîne un nombre important de jetons et une augmentation des coûts d'appel du LLM. La solution a consisté à convertir les fichiers .ipynb en fichiers .py et à supprimer les images codées en base64. Cela a réduit les coûts de 94% et également la latence. L'article souligne l'importance d'une entrée consciente lors de l'utilisation de LLMs et recommande de vérifier régulièrement les coûts.

Développement Optimisation des Coûts

Guidé par la beauté de notre suite de tests : une histoire de Rust, Uxn et de rigueur d’ingénierie

2025-01-21

L’été dernier, l’auteur a publié Raven, une implémentation indépendante du processeur Uxn et de l’ordonnateur Varavara. Récemment, pour améliorer la stabilité et les performances, l’auteur a mis en place une infrastructure de test robuste, incluant l’intégration continue GitHub Actions, les tests d’instantanés, la prévention statique des pannes et le fuzzing. Cet article détaille les défis et les solutions rencontrés lors de la création de ces tests, tels que les problèmes de fiabilité des exécuteurs Windows et ARM de GitHub Actions, et les pièges liés à la preuve statique de l’absence de pannes et au fuzzing. L’auteur a réussi à améliorer les performances et la fiabilité de Raven, en garantissant la portabilité multiplateforme. Le processus met en évidence la puissance de Rust, cargo-fuzz et même (soupir) GitHub Actions pour créer des systèmes robustos et corrects.

Développement Machine Virtuelle

Maximiser les installations de paquets Alpine : un défi NP-difficile

2025-01-21

Cet article décrit une expérience visant à déterminer le nombre maximal de paquets Alpine Linux pouvant être installés simultanément. L’auteur a analysé les fichiers APKINDEX d’Alpine, en extrayant les dépendances, les conflits et les relations de fourniture des paquets. Ceux-ci ont été traduits en contraintes pour un solveur PuLP. L’expérience a permis d’installer avec succès 98,5 % des paquets du dépôt principal et 97,8 % des paquets du dépôt principal + communauté. Cela démontre l’optimisation algorithmique de l’installation des paquets, offrant des informations sur la création d’images conteneur plus légères.

Leçons apprises en développant des applications LLM

2025-01-21

Cet article résume les leçons apprises lors du développement d'applications utilisant les grands modèles de langage (LLM). Les LLM excellent dans la transformation de grandes quantités de texte en résumés concis ; ils ont du mal à générer plus de texte que l'entrée ou à s'appuyer sur leurs données pré-entraînées pour un raisonnement complexe. Les applications LLM efficaces doivent fournir au LLM toutes les informations nécessaires, permettant au LLM d'effectuer la condensation de texte. L'auteur déconseille l'utilisation des LLM pour les tâches nécessitant une expertise humaine (par exemple, le diagnostic médical) et souligne que les LLM doivent compléter, et non remplacer, les travailleurs humains. Évitez d'utiliser les LLM pour les tâches pouvant être réalisées avec du code régulier.

Correction d'un bug insidieux dans la commande uname d'Apache NuttX RTOS : les variables statiques contre-attaquent

2025-01-21
Correction d'un bug insidieux dans la commande uname d'Apache NuttX RTOS : les variables statiques contre-attaquent

Cet article détaille le processus de débogage d'un bug apparemment mineur dans la commande `uname` d'Apache NuttX RTOS. Le problème initial : le hachage du commit était manquant dans la sortie. L'investigation a mené à une recherche approfondie, incluant l'inspection de l'image du noyau, l'appel à `uname` au démarrage du noyau et le désassemblage de l'application. Le coupable ? Une variable statique corrompue (`g_version`) responsable du stockage du hachage du commit dans les applications NuttX. Ce comportement inattendu a mis en évidence l'importance d'un débogage minutieux dans les systèmes embarqués, soulignant que même de petites anomalies peuvent signaler des problèmes plus profonds et plus graves.

Développement correction de bug

Dokploy : Déploiement simplifié pour les développeurs

2025-01-21
Dokploy : Déploiement simplifié pour les développeurs

Dokploy est une plateforme open source conviviale pour simplifier les déploiements multi-serveurs et la gestion d'applications. Elle supporte plusieurs méthodes de déploiement, incluant Nixpacks, Heroku Buildpacks et des Dockerfiles personnalisés, avec une intégration native à Docker Compose. Ses fonctionnalités comprennent une gestion avancée des utilisateurs, la gestion de bases de données avec sauvegardes, un accès API et CLI, et le support des clusters Docker Swarm. La surveillance en temps réel, les alertes, de nombreux modèles open source et une communauté active améliorent ses capacités. Que ce soit pour de petits projets ou des applications à grande échelle, Dokploy offre une solution flexible et efficace.

Développement

Redis UNLINK vs DEL : Plongeon au cœur de la mécanique interne

2025-01-21
Redis UNLINK vs DEL : Plongeon au cœur de la mécanique interne

Les commandes UNLINK et DEL de Redis suppriment les clés, mais leurs implémentations internes diffèrent. La commande DEL supprime les clés de manière synchrone et libère la mémoire, tandis que la commande UNLINK place la suppression dans une file d'attente d'arrière-plan pour un traitement asynchrone. La nature « non bloquante » d'UNLINK n'est pas absolue ; elle calcule le coût de suppression d'un objet : si le coût est inférieur à 64, elle supprime de manière synchrone ; sinon, de manière asynchrone. L'article plonge dans le code source de Redis, expliquant les détails de l'implémentation d'UNLINK et DEL, notamment le calcul des emplacements de clé, la dissociation en deux phases et la suppression asynchrone, et discute du rôle de LAZYFREE_THRESHOLD.

Développement

Fatigue des Frameworks : Pourquoi les développeurs sont-ils en colère contre les nouvelles technologies ?

2025-01-21
Fatigue des Frameworks : Pourquoi les développeurs sont-ils en colère contre les nouvelles technologies ?

Le flot constant de nouveaux frameworks JavaScript, de Svelte à Solid en passant par Qwik, a épuisé les développeurs. Chacun promet une vitesse fulgurante et des performances améliorées, mais les développeurs se retrouvent dans un cycle perpétuel d'apprentissage, consommant un temps et une énergie précieux. Cela a déclenché des débats houleux, certains arguant que les nouveaux frameworks réinventent la roue, tandis que d'autres expriment des craintes concernant la sécurité de l'emploi et l'obsolescence des compétences existantes. L'article suggère que la colère des développeurs envers les nouveaux frameworks est un mécanisme d'autodéfense découlant d'angoisses concernant les perspectives de carrière futures. Comprendre ce point de vue peut favoriser une évolution plus saine de l'industrie.

Nouvelles de la communauté Perl : Nouveau podcast, atelier et défis hebdomadaires

2025-01-21
Nouvelles de la communauté Perl : Nouveau podcast, atelier et défis hebdomadaires

La communauté Perl est en effervescence avec des nouvelles passionnantes ! Un nouveau podcast, "The Underbar", a été lancé, vous apportant les dernières actualités Perl. L’atelier allemand Perl/Raku aura lieu à Munich, offrant une excellente occasion aux développeurs de se connecter et d’apprendre. Le Défi hebdomadaire, une compétition de codage populaire, a obtenu un parrainage pour une année supplémentaire, continuant ainsi à fournir aux passionnés de Perl des exercices de programmation hebdomadaires. Le bulletin d’information de cette semaine présente également des mises à jour de plusieurs modules Perl et des articles couvrant divers sujets, tels que la création de musique MIDI, le traitement de données de géolocalisation et l’analyse de performances.

OpenSSL refuse l'API QUIC : un frein à l'adoption d'HTTP/3 ?

2025-01-21
OpenSSL refuse l'API QUIC : un frein à l'adoption d'HTTP/3 ?

OpenSSL, la bibliothèque TLS la plus populaire, a refusé d'ajouter une API QUIC à ses prochaines versions, ce qui représente un obstacle majeur à l'adoption généralisée d'HTTP/3. Malgré une demande d'extraction de la communauté (PR8797) proposant les API nécessaires, le comité de gestion d'OpenSSL a décidé de construire une pile QUIC complète de zéro, un processus qui devrait prendre plusieurs années. Cette décision a suscité la frustration au sein de la communauté, car des bibliothèques QUIC matures existent déjà. Microsoft et Akamai ont créé quictls, une branche d'OpenSSL avec l'API QUIC, comme solution de contournement. Cependant, il ne s'agit pas d'une solution durable, laissant l'avenir de l'adoption d'HTTP/3 incertain en raison du choix d'OpenSSL.

Développement

Go 2 devrait-il abandonner le package `context` ?

2025-01-21

Le package `context` de Go, bien qu'il résolve le problème d'annulation des goroutines, le fait au détriment de la lisibilité et de la maintenabilité du code, se propageant comme un virus dans les bases de code. L'auteur soutient que `context` est excessivement complexe, possède trop de méthodes d'interface et l'utilisation de `ctx.Value` présente de nombreux problèmes et est inefficace. Il propose que Go 2 traite directement le problème d'annulation des goroutines au niveau du langage, en fournissant une solution plus simple, plus efficace et non intrusive.

Migration d'AWS App Mesh vers Amazon ECS Service Connect

2025-01-21
Migration d'AWS App Mesh vers Amazon ECS Service Connect

AWS va mettre fin à AWS App Mesh le 30 septembre 2026. Cet article détaille les stratégies de migration d'App Mesh vers Amazon ECS Service Connect, un service géré offrant une fiabilité et une observabilité améliorées pour les microservices conteneurisés. Les principales différences entre les deux services sont mises en évidence, notamment les contrôles d'intégrité intégrés, la détection des valeurs aberrantes et l'intégration améliorée avec CloudWatch. Une stratégie de déploiement bleu/vert est recommandée pour minimiser les temps d'arrêt pendant la migration. L'article compare également des fonctionnalités telles que le routage du trafic, l'observabilité, la sécurité et le partage des ressources.

Dessiner des drapeaux du monde avec la bibliothèque graphique Turtle de Python

2025-01-21

Cet article détaille le parcours de l'auteur utilisant la bibliothèque graphique Turtle de Python pour dessiner des drapeaux de différents pays en analysant des fichiers SVG. Débutant par un exercice de dessin simple en Java, l'auteur a progressé vers une implémentation d'analyse SVG plus complexe utilisant Python et Turtle. Il a surmonté de nombreux défis, notamment la transformation des coordonnées, le rendu des courbes de Bézier et l'application de style. L'auteur a réussi à rendre un grand nombre de drapeaux, y compris ceux auparavant considérés comme « impossibles », comme le drapeau du Pays de Galles. Bien que quelques problèmes restent non résolus, cet article met en évidence les compétences de programmation et la persévérance de l'auteur.

Développement

Guitaraoke : Automatisation de la génération d’accords pour les vidéos karaoké

2025-01-21
Guitaraoke : Automatisation de la génération d’accords pour les vidéos karaoké

Pour améliorer ses soirées Guitaraoke mensuelles, Dylan Beattie a créé un système qui affiche automatiquement les accords des chansons sur les vidéos karaoké. Il utilise le plugin Vamp pour extraire les informations des accords à partir de l’audio, puis ImageSharp et FFMpegCore pour générer une superposition vidéo transparente avec les accords, et enfin compose le tout sur la vidéo originale. Cela implique l’analyse audio, le traitement d’image et la composition vidéo, ce qui donne une affichage des accords en temps réel pour les guitaristes. Les améliorations futures comprennent la détection automatique du rythme et le traitement par lots.

Ruff : Un linter et un formatteur Python extrêmement rapides

2025-01-21
Ruff : Un linter et un formatteur Python extrêmement rapides

Ruff est un linter et un formatteur de code Python extrêmement rapide, écrit en Rust. Il est 10 à 100 fois plus rapide que les outils existants tels que Flake8 et Black, offrant une parité avec les outils populaires tout en disposant d'un cache intégré et d'une capacité de correction automatique des erreurs. Avec plus de 800 règles intégrées et la prise en charge de pyproject.toml, Ruff est utilisé par des projets open-source majeurs tels que FastAPI et Pandas, ce qui en fait un outil révolutionnaire pour le développement Python.

Développement

WordPress en crise : les actions de Mullenweg ébranlent les fondations

2025-01-21
WordPress en crise : les actions de Mullenweg ébranlent les fondations

Un conflit entre Matt Mullenweg, le créateur de WordPress, et l'entreprise d'hébergement WP Engine menace l'avenir de WordPress. Les actions agressives de Mullenweg, notamment l'interdiction de WP Engine, les offres de rupture conventionnelle pour les employés dissidents et la réduction drastique des contributions au projet open source, ont provoqué une réaction négative de la communauté et un procès. Cette situation déstabilise WordPress et soulève des inquiétudes quant à son orientation future, poussant même les utilisateurs et les développeurs à chercher des alternatives. Le problème central est un conflit entre la gouvernance open source et les intérêts commerciaux, avec des implications de grande envergure pour l'industrie technologique.

Développement conflit communautaire

Meta lance l'application d'édition vidéo 'Edits' pour profiter de l'absence de CapCut

2025-01-20
Meta lance l'application d'édition vidéo 'Edits' pour profiter de l'absence de CapCut

Après le retrait de l'application d'édition vidéo CapCut de ByteDance des magasins d'applications, Meta a annoncé dimanche sa nouvelle application d'édition vidéo, Edits. Le responsable d'Instagram, Adam Mosseri, a révélé que l'application sera lancée sur iOS le mois prochain, suivie d'Android. Edits dispose d'une suite d'outils créatifs, notamment des onglets d'inspiration et de suivi des idées, et une caméra de haute qualité, ainsi que la possibilité de partager des brouillons. La stratégie de Meta est considérée comme une façon de capitaliser sur le vide du marché laissé par l'absence de CapCut, reflétant les lancements stratégiques précédents tels qu'Instagram Reels et Threads.

Développement Édition Vidéo
1 2 180 181 182 184 186 187 188 214 215