Category: Développement

t2x : un outil CLI basé sur l’IA pour les opérations de texte

2024-12-31

Un développeur crée un outil en ligne de commande (CLI) open source appelé t2x (abréviation de « texte vers n’importe quoi »). t2x utilise des modèles linguistiques locaux ou cloud pour effectuer diverses opérations sur le texte. Bien qu’il ne soit pas encore totalement achevé, l’outil devrait être publié sur GitHub pendant les vacances.

Développement

Guix réussit à construire un Mono entièrement auto-amorçable : un long chemin

2024-12-31

Le système Guix a réussi à construire un environnement Mono entièrement auto-amorçable, en surmontant de nombreux défis. L'auteur détaille son parcours pour prendre en charge les fonctionnalités C# 12.0, en rencontrant des problèmes avec les anciennes versions de Mono qui dépendaient de binaires précompilés. Grâce à une série de correctifs, une chaîne entièrement auto-amorçable de Mono 1.2.6 à 6.12.0 a été créée. En cours de route, des bogues dans Mono et xbuild ont été corrigés, et la prise en charge de runpath dans Mono a été améliorée. Cela a non seulement résolu le problème de compatibilité C# de l'auteur, mais a également mis en évidence l'importance des builds entièrement auto-amorçables et reproductibles et leur impact sur la sécurité des logiciels.

Développement Build auto-amorçable

Thème Monokai Pro : pour les IDE JetBrains et plus

2024-12-31
Thème Monokai Pro : pour les IDE JetBrains et plus

Monokai Pro est un plugin de thème disponible pour les IDE JetBrains (comme IntelliJ IDEA, WebStorm, etc.), Sublime Text et VS Code. Il dispose de plus de 70 icônes personnalisées et offre des paramètres réglables pour une personnalisation optimale. Une version d'essai gratuite est disponible, mais un abonnement mensuel de 1 € supprime les fenêtres contextuelles. Compatible avec de nombreux langages de programmation et IDE, il est un choix populaire parmi les ingénieurs logiciels.

Développement Plugin de thème

Mozilla lance Orbit, un outil d'IA respectueux de la vie privée

2024-12-31

Mozilla a lancé Orbit, une extension Firefox utilisant l'IA pour résumer du contenu web comme les e-mails, documents, articles et vidéos, tout en priorisant la confidentialité des utilisateurs. Orbit ne nécessite pas de création de compte, ne stocke pas les données de session ni les informations personnelles, et utilise un modèle Mistral 7B LLM hébergé par Mozilla. Les utilisateurs peuvent facilement résumer de longs documents et vidéos, saisir rapidement l'essentiel des e-mails et articles, et obtenir des informations spécifiques grâce à des questions.

Transformer des feuilles de calcul Google en applications web pratiques : le récit d'un programmeur

2024-12-31
Transformer des feuilles de calcul Google en applications web pratiques : le récit d'un programmeur

Un journaliste d'Ars Technica raconte comment il a transformé de simples feuilles de calcul Google en applications web conviviales pour les téléphones mobiles à l'aide de Glide. Initialement conçue pour simplifier les commandes de plats à emporter, l'application gère les informations des restaurants locaux grâce à des fonctions de recherche et de filtrage efficaces. Il a ensuite développé des applications pour les recettes et l'inventaire du garde-manger, améliorant ainsi son quotidien. L'article met en lumière la puissance des outils sans code et la manière dont des solutions simples peuvent résoudre des problèmes concrets, soulignant l'ingéniosité et la recherche d'une meilleure qualité de vie.

Risque de collision SHA sur le commit initial du noyau Linux

2024-12-31

Kees Cook, développeur du noyau Linux, a découvert un commit de documentation du noyau dont l'ID partage les 12 premiers caractères avec le commit initial du dépôt du noyau. Cette collision potentielle pourrait casser plusieurs outils qui dépendent d'ID de commit uniques. Bien qu'il n'ait pas encore été fusionné en amont, ce commit sert de cas de test pour traiter proactivement les collisions SHA et prévenir de futurs problèmes généralisés.

Développement collision SHA

Lightstorm : Un compilateur Ruby minimaliste améliore les performances grâce à MLIR

2024-12-31

L'équipe DragonRuby a développé Lightstorm, un compilateur Ruby minimaliste visant à améliorer les performances de son moteur de jeu multiplateforme. Utilisant MLIR, Lightstorm traduit le bytecode de la machine virtuelle mruby en code C, optimisant les performances en éliminant les opérations de chargement/stockage et les branchements dans la boucle d'interprétation de la VM. Les résultats des benchmarks montrent des améliorations de performances allant de 1% à 1200%, avec une réduction moyenne d'environ 30% du temps d'exécution et des cycles. Bien qu'il ne prenne actuellement en charge qu'un sous-ensemble de Ruby, le projet valide la faisabilité de la précompilation du code Ruby pour des gains de performances. Les plans futurs incluent le remplacement des composants C critiques du moteur par du code Ruby compilé.

Développement Compilateur Ruby

Sortie de LineageOS 22.1 : extraction 30 fois plus rapide, nouvelles applications musique et PDF

2024-12-31

LineageOS 22.1, basé sur Android 15 QPR1, est désormais disponible avec des améliorations significatives. Les utilitaires d'extraction sont 30 fois plus rapides, et deux nouvelles applications ont été ajoutées : Twelve, un lecteur de musique, et Camelot, un lecteur de PDF. SeedVault, Etar et WebView ont également été mis à jour. La gestion des versions a été ajustée pour s'aligner sur les numéros de version mineurs d'Android, ce qui facilite la distinction entre les versions d'Android. Le projet a simplifié sa base de code, ajouté la prise en charge de davantage de périphériques et encourage les développeurs à contribuer du code et des traductions.

Développement

Types somme et commutateurs minimalistes pour Lua : lua-match

2024-12-31
Types somme et commutateurs minimalistes pour Lua : lua-match

lua-match est une bibliothèque Lua minimaliste fournissant des types somme et une fonctionnalité de commutateur. Elle utilise une fonction d'étiquetage pour une manière propre et efficace de gérer différents types de données et de branchements conditionnels. Avec une simple fonction d'étiquetage et une table de commutation, vous pouvez facilement implémenter un comportement similaire aux types somme et à la correspondance de motifs, simplifiant ainsi considérablement votre code Lua. La bibliothèque est open-source et utilise la licence MIT.

Développement Types somme Commutateur

Un développeur crée un jeu Game Boy Advance en Zig

2024-12-31

Un développeur a créé un jeu 2048 pour Game Boy Advance en utilisant le langage de programmation émergent Zig. L'article souligne les avantages de Zig dans la programmation embarquée, notamment son processus de compilation croisée simplifié, sa gestion efficace de la mémoire (y compris les structures compactées) et sa puissante génération de code à la compilation. L'auteur compare l'expérience de développement en utilisant C++ par rapport à Zig, notant la facilité et l'efficacité de Zig pour gérer la disposition de mémoire particulière de la Game Boy Advance et les registres matériels. Bien que Zig présente quelques inconvénients, tels qu'un support limité pour l'assemblage en ligne et les instructions Thumb, ses nombreux avantages en font un choix idéal pour développer des jeux pour consoles rétro.

Développement Développement Embarqué

Pourquoi Linux n'est toujours pas prêt pour le bureau ?

2024-12-30

Cet article explore les raisons profondes pour lesquelles Linux n'a pas encore atteint une adoption généralisée sur le bureau. L'auteur souligne plusieurs problèmes clés : la mauvaise compatibilité des logiciels entre les distributions, les mises à jour fréquentes entraînant des bogues et des régressions, un financement insuffisant entraînant une qualité de logiciel inférieure, un support inadéquat des pilotes matériels et des défis de communication au sein de la communauté Linux. Bien que Linux excelle dans les environnements serveur, sa présence sur le bureau reste entravée par ces obstacles persistants, ce qui entrave sa capacité à concurrencer efficacement les systèmes d'exploitation établis comme Windows.

Tournoi de polices de code : Source Code Pro remporte la victoire

2024-12-30
Tournoi de polices de code : Source Code Pro remporte la victoire

John Gruber, de Daring Fireball, met en avant un amusant « tournoi » de sélection de polices de code créé par Typogram. Les utilisateurs choisissent leur préférée parmi 32 polices mono-espacement gratuites. Bien que certaines options populaires, comme Consolas, soient absentes, et que certaines polices incluses soient moins attrayantes, il s'agit d'un exercice valable. Des améliorations depuis son lancement initial incluent un exemple de code JavaScript au lieu de CSS et une sélection plus large de polices. Gruber recommande de désactiver les noms des polices pour réduire les biais. Sa gagnante constante ? Source Code Pro d'Adobe, avec IBM Plex Mono en deuxième position.

Développement polices de code

RubyConf 2024 : Hackday sur les Buildpacks natifs du cloud

2024-12-30
RubyConf 2024 : Hackday sur les Buildpacks natifs du cloud

Richard Schneeman organise un hackday sur les Buildpacks natifs du cloud (CNB) à la RubyConf 2024 pour aider les développeurs à apprendre et à contribuer aux outils de déploiement Ruby. L'événement propose des tâches de difficulté variable, de la modification de buildpacks existants à la création de nouveaux, pour tous les niveaux de compétence. Même si vous ne pouvez pas assister en personne, vous pouvez toujours participer en utilisant les ressources fournies.

Mocks de bases de données : plus de problèmes qu’ils n’en valent la peine ?

2024-12-30
Mocks de bases de données : plus de problèmes qu’ils n’en valent la peine ?

S’il est tentant de les utiliser pour leur rapidité et leur simplicité, l’auteur soutient que l’utilisation de mocks de bases de données pour les tests finit par engendrer plus de problèmes qu’elle n’en résout. Un exemple de création d’utilisateur met en évidence les différences entre les mocks et les tests effectués sur une base de données réelle. Les tests sur une base de données réelle révèlent des problèmes potentiels dès le départ, tels que les violations de contraintes uniques, la gestion des valeurs par défaut et les goulots d’étranglement de performance, ce qui permet de gagner du temps de débogage et de réduire les risques de production. À mesure que les applications évoluent et que les schémas changent, les tests sur une base de données réelle gèrent mieux les nouvelles validations, les modifications de type de données et les changements de précision des horodatages, en garantissant que le code est aligné sur la base de données réelle. L’auteur suggère de privilégier les tests sur une base de données réelle pour les couches d’accès aux données, tout en les utilisant au niveau de la couche de service pour mettre en évidence les interactions de la logique métier avec les données. Les couches de contrôleurs, en revanche, peuvent simuler efficacement les appels de service. L’équilibre entre les tests sur une base de données réelle et les mocks est essentiel pour construire des applications robustes.

Protocole réseau Homa : un nouveau défi pour TCP/UDP

2024-12-30

Homa est un nouveau protocole de transport réseau conçu pour les applications de centre de données, visant à réduire la surcharge de transmission de nombreux petits messages. Contrairement à TCP/UDP traditionnel, il élimine la configuration de connexion, utilisant un mécanisme unique de demande-réponse et des files d'attente prioritaires pour minimiser la latence. Actuellement, Homa tente d'être intégré au noyau Linux, mais son avenir pourrait fortement dépendre de l'accélération matérielle dans les équipements réseau.

Évaluation des capacités de génération de code des LLMs : Présentation de MultiCodeBench

2024-12-30
Évaluation des capacités de génération de code des LLMs : Présentation de MultiCodeBench

Les assistants de programmation basés sur l’IA et alimentés par des grands modèles de langage (LLM) de code sont devenus de plus en plus répandus, augmentant considérablement la productivité des développeurs. Cependant, les benchmarks existants de génération de code se concentrent principalement sur des scénarios à usage général, laissant les performances des LLM dans des domaines d’application spécifiques largement inconnues. Cet article présente MultiCodeBench, un nouveau benchmark composé de 2 400 tâches de programmation dans 12 domaines populaires de développement de logiciels et 15 langages de programmation. Des expériences sur onze LLM principaux révèlent leurs performances en matière de génération de code dans différents domaines, offrant des informations pratiques aux développeurs pour la sélection des LLM et des conseils aux développeurs de modèles pour améliorer les capacités de génération de code spécifiques à un domaine.

Développement Génération de Code

ts_zip : Compression de texte avec des grands modèles de langage

2024-12-30

Fabrice Bellard a publié ts_zip, un outil de compression de texte utilisant le grand modèle de langage RWKV 169M v4 pour atteindre des taux de compression bien supérieurs à ceux des outils traditionnels. Bien qu'il nécessite une GPU et 4 Go de RAM, et qu'il soit plus lent que les compresseurs classiques (jusqu'à 1 Mo/s sur une RTX 4090), ts_zip montre une compression impressionnante sur les textes anglais et d'autres langues, y compris le code source. Le ratio de compression est mesuré en bits par octet (bpb), les résultats montrant des performances supérieures à xz sur des jeux de données comme enwik8 et enwik9. L'évaluation déterministe du modèle garantit une décompression cohérente sur différentes configurations matérielles et logicielles.

Développement compression de texte

Percée dans l'évaluation des grands modèles de langage pour la génération de tests unitaires

2024-12-30
Percée dans l'évaluation des grands modèles de langage pour la génération de tests unitaires

Des chercheurs ont mené une évaluation complète du potentiel des grands modèles de langage (LLM) dans l'automatisation de la génération de tests unitaires. Ils ont comparé les performances de cinq LLM open source au GPT-4 propriétaire et à l'outil traditionnel Evosuite sur 17 projets Java, en étudiant l'impact de différentes stratégies d'invite. L'étude a révélé que les LLM open source offrent des avantages en matière de confidentialité des données et surpassent les autres dans certaines tâches, mais a également mis en évidence les limites de la génération de tests unitaires basée sur les LLM. Cette recherche fournit des informations précieuses pour guider les futures applications des LLM dans ce domaine.

Avis de communication interne de l'équipe Diaspora*

2024-12-30
Avis de communication interne de l'équipe Diaspora*

Cet extrait provient d'une communication interne de l'équipe Diaspora*. Il indique que le site web nécessite JavaScript pour fonctionner correctement et fournit des instructions sur la façon de signaler du contenu, y compris les critères de signalement. Il inclut également des liens vers les discussions et le support du projet Diaspora*, ainsi que des informations sur le site web telles que la version du code, les statistiques du pod, les conditions d'utilisation, les coordonnées et une option de mode optimisé pour les appareils tactiles.

Développement Maintenance du site web

SQLite : Une légende incroyable de base de données

2024-12-30

SQLite, la base de données la plus déployée au monde, est maintenue par une équipe de trois personnes, refusant les contributions externes, mais conquérant le monde par ses performances exceptionnelles et sa stabilité. Née sur un navire de guerre américain pour résoudre les problèmes d'indisponibilité du serveur, elle est devenue la pierre angulaire de billions de bases de données. SQLite n'est pas open source, mais plutôt un logiciel du domaine public, avec moins de restrictions que toute licence open source. Son processus de test rigoureux, simulant même des situations extrêmes comme les pannes du système d'exploitation, garantit sa fiabilité extrêmement élevée. Cependant, son modèle économique unique — générer des revenus grâce à un support payant et à des adhésions — est également remarquable. La légende de SQLite réside non seulement dans ses prouesses techniques, mais aussi dans la persévérance et l'innovation qui la sous-tendent.

(avi.im)
Développement légende

Nouvel outil de compression de messages courts : ts_sms

2024-12-30

ts_sms est un nouvel outil de compression de messages courts utilisant des grands modèles de langage. Il utilise une compression sans perte, réduisant le nombre de bits en identifiant et en éliminant la redondance statistique sans perte d'information. Comparé à des outils comme brotli, ts_sms présente des avantages pour la compression de petits messages. Des versions Linux et Windows sont disponibles. Sa technologie principale est similaire à ts_zip, utilisant un système de remplissage spécifique compatible avec le codage arithmétique, éliminant ainsi le besoin de coder explicitement la longueur du message.

Développement

Les unités d'exécution sont souvent pipelinées

2024-12-30

Cet article de blog explore le pipeline des unités d'exécution dans les microarchitectures hors d'ordre. L'auteure a initialement supposé que les unités d'exécution restent occupées jusqu'à la fin de la µop, mais en utilisant la microarchitecture Firestorm (A14 et M1) comme exemple, elle démontre que deux unités d'exécution entières peuvent gérer plusieurs multiplications simultanément, chacune prenant trois cycles. En comparant des séquences d'instructions dépendantes et indépendantes, l'auteure révèle que de nombreuses combinações unité d'exécution/µop sont fortement pipelinées, permettant à une µop d'être émise tandis que l'unité traite d'autres. Cela réduit le temps d'exécution pour les instructions indépendantes de 6 cycles prévus à 4. Enfin, l'auteure explique pourquoi les tableaux de latence et de bande passante des instructions spécifient le débit réciproque : il est équivalent aux cycles/instruction.

Développement unités d'exécution

Panel Graphic Walker : Exploration interactive des données avec HoloViz Panel

2024-12-30
Panel Graphic Walker : Exploration interactive des données avec HoloViz Panel

Panel Graphic Walker est une bibliothèque Python qui intègre la puissance de Graphic Walker dans HoloViz Panel pour l'exploration interactive des données au sein des Jupyter Notebooks et des applications Panel. Elle offre une interface similaire à Tableau, permettant aux utilisateurs de créer rapidement des visualisations et des tableaux dynamiques avec un minimum de code. Elle prend en charge divers backends de données et renderers, et peut gérer de grands ensembles de données en utilisant le calcul côté serveur. Le projet en est à ses débuts ; il est recommandé de fixer une version spécifique.

Zig : Plus sûr et plus rapide que Rust non sécurisé ?

2024-12-30
Zig : Plus sûr et plus rapide que Rust non sécurisé ?

Cet article de blog compare Rust et Zig en implémentant un interpréteur de bytecode avec ramasse-miettes. L’auteur a trouvé Rust non sécurisé incroyablement difficile, citant des règles d’aliasing complexes et un comportement indéfini comme des obstacles importants. En revanche, Zig a offert une expérience plus conviviale pour les développeurs dans les opérations de mémoire non sécurisées, notamment la détection intégrée des fuites de mémoire et une ergonomie des pointeurs améliorée. L’implémentation Zig s’est avérée finalement plus sûre, plus rapide et plus facile à développer que son équivalent Rust.

Développement

curl reçoit une mise à jour majeure : prise en charge de la lecture de fichiers partiels

2024-12-30
curl reçoit une mise à jour majeure : prise en charge de la lecture de fichiers partiels

La prochaine version de curl 8.12.0 introduit une nouvelle fonctionnalité passionnante : la possibilité de lire des fichiers partiels. Les utilisateurs peuvent désormais utiliser un nouveau système de variables pour extraire des plages de bytes spécifiques à partir de fichiers et les utiliser dans les lignes de commande curl. Cela ajoute une flexibilité significative à la façon dont curl gère les fichiers, permettant des tâches telles que l’extraction du début d’un fichier comme nom d’utilisateur ou d’une section au milieu pour un corps POST. Cela étend considérablement les capacités de curl, offrant aux utilisateurs un outil de ligne de commande plus robuste.

Développement

curl-impersonate mis à jour : capacités améliorées d'usurpation d'identité de navigateur

2024-12-30
curl-impersonate mis à jour : capacités améliorées d'usurpation d'identité de navigateur

lexiforest/curl-impersonate est une fourchette active de curl-impersonate qui améliore les capacités d'usurpation d'identité de navigateur et prend en charge davantage de versions et de cibles de build. Ce projet modifie curl pour imiter le comportement des principaux navigateurs (Chrome, Edge, Safari et Firefox) lors des handshakes TLS et HTTP, contournant les restrictions des sites Web basées sur les empreintes digitales. Les mises à jour incluent la prise en charge d'ECH, de la compression ZSTD, de la courbe X25519Kyber768 et de plus de versions de navigateur, offrant des outils de ligne de commande et des fonctions de bibliothèque améliorées.

86Box : Retour vers le passé de l'architecture x86

2024-12-30
86Box : Retour vers le passé de l'architecture x86

86Box est un émulateur x86 bas niveau capable d'exécuter des systèmes d'exploitation et des logiciels anciens conçus pour les systèmes IBM PC et compatibles, de 1981 jusqu'aux conceptions de systèmes relativement récentes basées sur le bus PCI. Il offre une interface conviviale, une émulation bas niveau des processeurs basés sur 8086 jusqu'au Celeron de l'ère Mendocino, une grande capacité de personnalisation des machines virtuelles et la prise en charge d'une variété de périphériques. Il permet d'exécuter MS-DOS, les anciennes versions de Windows, OS/2, plusieurs distributions Linux et des systèmes anciens comme BeOS ou NEXTSTEP.

Développement émulateur x86

MiceWine : Exécuter des applications et des jeux Windows sur Android

2024-12-30
MiceWine : Exécuter des applications et des jeux Windows sur Android

MiceWine vise à exécuter des applications et des jeux Windows sur les smartphones Android. Il utilise une version personnalisée de Wine compilée pour Android et Box64 pour des performances optimales. Actuellement en développement actif, il utilise un serveur X basé sur Termux-X11. Compatible avec Android 10 et supérieur. Les GPU Adreno 7xx et 6xx sont compatibles avec Turnip/Zink, tandis que d'autres ont un support partiel avec natif/Zink (expérimental). Vulkan natif sur les GPU autres qu'Adreno est expérimental et nécessite des tests.

Développement Applications Windows

L'analogie hydraulique : un obstacle à l'apprentissage de l'électronique

2024-12-30
L'analogie hydraulique : un obstacle à l'apprentissage de l'électronique

De nombreux manuels d'introduction à l'électronique utilisent l'analogie hydraulique pour expliquer les circuits, en comparant le courant électrique au flux d'eau et les batteries à des pompes. Cependant, l'auteur soutient que cette analogie est profondément erronée, notamment lorsqu'il s'agit d'expliquer les composants semi-conducteurs tels que les JFET et les MOSFET. L'analogie ne parvient pas à représenter avec précision leurs courbes caractéristiques, ce qui entrave l'apprentissage. L'auteur préconise d'abandonner cette analogie imprécise et d'apprendre l'électronique à partir de principes plus fondamentaux.

Python en 2024 : Plus rapide, plus puissant et plus populaire que jamais

2024-12-30
Python en 2024 : Plus rapide, plus puissant et plus populaire que jamais

En 2024, Python a consolidé sa position comme l'un des principaux langages de programmation. Python 3.13 a introduit une amélioration significative des performances avec la version expérimentale "sans GIL" et un compilateur JIT. La suppression des modules obsolètes a simplifié le langage, tandis que son rôle crucial dans l'IA, l'apprentissage automatique et la science des données a propulsé sa popularité à de nouveaux sommets. Python a dépassé JavaScript en termes d'utilisation sur GitHub et a atteint un remarquable 18 % dans l'index Tiobe, consolidant ainsi sa place parmi les trois principaux langages de programmation.

Développement
1 2 197 198 199 201 203 204 205 214 215