Category: Développement

Algèbre linéaire numérique pour la science informatique et l'ingénierie de l'information : Aperçu du cours

2025-05-03

Ce cours d'algèbre linéaire numérique est conçu pour les étudiants en informatique et en ingénierie de l'information. Il comprend 18 cours, chacun comprenant des présentations théoriques, des devoirs et, pour la plupart, des exercices de codage en Julia. Les sujets abordés incluent les fondements de l'algèbre linéaire, l'arithmétique à virgule flottante, les méthodes directes, les structures de données creuses, les méthodes itératives, les méthodes de sous-espace de Krylov, les méthodes multigrilles, les éléments d'algèbre linéaire numérique aléatoire et les algorithmes évitant la communication. De nombreuses ressources d'apprentissage, y compris des diapositives et des Jupyter Notebooks, sont fournies.

Un Tour d'Horizon Express du Langage de Programmation J

2025-05-03
Un Tour d'Horizon Express du Langage de Programmation J

Cette introduction concise au langage de programmation J s'adresse aux programmeurs ayant une certaine expérience. Elle couvre les concepts de base tels que les types de données, les fonctions, les modificateurs, les tableaux, les structures de contrôle et la gestion des erreurs, le tout dans une approche pratique. Les lecteurs sont encouragés à exécuter les exemples fournis et à lire les commentaires. Des liens et des ressources essentielles sont inclus pour faciliter l'apprentissage rapide.

Développement programmation matricielle

L'extension spatiale de DuckDB : démocratiser les données géo-spatiales

2025-05-03
L'extension spatiale de DuckDB : démocratiser les données géo-spatiales

Que se passe-t-il lorsque vous intégrez des capacités géo-spatiales dans des outils de données généralistes ? Plus de personnes utilisent des données géo-spatiales ! Une récente conférence sur le géo-spatial natif dans le cloud a mis en évidence la nécessité d'élargir l'adoption du géo-spatial. L'extension spatiale de DuckDB réduit considérablement la barrière à l'entrée, ne nécessitant que deux lignes de code pour installer et charger. Cela permet aux utilisateurs occasionnels de travailler facilement avec des données géo-spatiales, stimulant considérablement l'écosystème. Le succès de la Overture Maps Foundation peut être directement lié à cette facilité d'accès.

Développement

Un développeur amateur crée la surprise : son traducteur de documents surpasse Google Traduction et DeepL

2025-05-03

Un programmeur amateur a créé Kintoun, un traducteur de documents, en seulement deux semaines de temps libre. Étonnamment, il surpasse Google Traduction et DeepL en termes de précision de traduction et de préservation de la mise en page. L'auteur partage les leçons clés qu'il a apprises, notamment le succès inattendu du produit, l'importance cruciale de la distribution du produit et la combinaison gagnante d'Inertia.js et de Svelte. Kintoun excelle dans la gestion de mises en page complexes et de fonctionnalités telles que les notes de bas de page et les caractères Ruby. L'auteur souligne l'importance du marketing et partage une stratégie réussie axée sur l'identification des besoins des utilisateurs et l'offre d'une aide authentique avant de promouvoir le produit.

Migration de Hardcover : De Next.js à la manière Rails

2025-05-03
Migration de Hardcover : De Next.js à la manière Rails

L'équipe de Hardcover partage son expérience de migration de Next.js vers Ruby on Rails et Inertia.js. Motivés par un système de cache peu clair, des coûts croissants et des vitesses de développement lentes sur Next.js, ils ont effectué le changement. Résultat : une amélioration significative des performances de Hardcover, avec des chargements de pages plus rapides, des scores Google Pagespeed améliorés et une augmentation de la durée des sessions des visiteurs. Des défis sont restés, tels que les mises en page partagées et le débogage SSR, mais le résultat global a été positif.

Développement migration d'architecture

Résolveur DNS sans serveur : serverless-dns prend son envol

2025-05-03
Résolveur DNS sans serveur : serverless-dns prend son envol

serverless-dns est un résolveur DNS stub sans serveur de type Pi-Hole, prenant en charge DNS-over-HTTPS (DoH) et DNS-over-TLS (DoT). Il fonctionne sur les plateformes Cloudflare Workers, Deno Deploy, Fastly Compute@Edge et Fly.io, en tirant parti des niveaux gratuits pour les cas d'utilisation à faible trafic. Avec des temps de réponse de l'ordre de la milliseconde, il gère efficacement ~13 millions d'entrées provenant de plus de 190 listes de blocage à l'aide d'un trie de radix succinct. Ce projet open source permet des configurations personnalisées, le chargement des journaux et offre une solution DNS légère et performante.

Pandoc : un convertisseur LaTeX vers MathML étonnamment efficace

2025-05-03
Pandoc : un convertisseur LaTeX vers MathML étonnamment efficace

L'auteur explore plusieurs méthodes pour convertir des équations LaTeX en MathML, et découvre finalement que Pandoc est la plus efficace. Pandoc gère sans effort les équations mono-lignes et multi-lignes, y compris les matrices complexes et les fonctions par morceaux. Bien qu'un petit bogue ait été découvert dans la gestion par Pandoc des équations impliquant des limites et des sommations, ses performances globales sont excellentes. Un script Python est fourni pour nettoyer la sortie MathML de Pandoc et améliorer l'efficacité.

Développement

Possédez-vous vraiment votre site web ? L'illusion du contrôle

2025-05-03

Pendant le confinement de 2020, le site web d'un restaurant est devenu sa ligne de vie. Le propriétaire a externalisé la maintenance du site, mais le « mainteneur » a disparu pendant des mois, rendant le site impossible à mettre à jour. Cela a déclenché une discussion sur le contrôle du site web : du simple contact avec le mainteneur à la modification directe des fichiers du serveur, des enregistrements DNS ou même au remplacement du serveur, les méthodes augmentent en complexité. L'article souligne que le véritable contrôle dépend de la possession des comptes et des autorisations appropriés, tels que les comptes d'enregistrement, l'administration DNS et l'accès au serveur. Cela sert de rappel pour comprendre les risques de l'externalisation et garantir que vous conservez le contrôle nécessaire.

Problème de visibilité des transactions dans les clusters PostgreSQL Multi-AZ : Plongeon approfondi dans le rapport Jepsen

2025-05-03
Problème de visibilité des transactions dans les clusters PostgreSQL Multi-AZ : Plongeon approfondi dans le rapport Jepsen

Un rapport récent de Jepsen met en évidence un problème de longue date de visibilité des transactions dans les clusters Amazon RDS pour PostgreSQL Multi-AZ : l’ordre dans lequel les transactions deviennent visibles diffère entre le principal et les réplicas. Cela n’entraîne pas de perte de données ni de corruption, et n’affecte pas les déploiements mono-AZ ni les bases de données Aurora. Le problème est lié à l’anomalie « Long Fork », qui viole l’isolation par instantané. L’article détaille la cause racine (mises à jour asynchrones de ProcArray et WAL), illustrant comment cela conduit à des résultats incohérents (par exemple, Alice et Bob observant des classements différents d’un article de Hacker News). Bien que cela affecte rarement la correction de l’application, sa résolution est cruciale pour les fonctionnalités de niveau entreprise des clusters PostgreSQL. AWS collabore avec la communauté PostgreSQL pour résoudre ce problème, en proposant des solutions de contournement, telles que l’examen des hypothèses de l’application concernant l’ordre des transactions et l’utilisation de mécanismes de synchronisation explicites.

Pourquoi j'ai écrit Clojure

2025-05-03

L'auteur a utilisé Clojure professionnellement pendant cinq ans, initialement avec amour, mais finalement avec haine, pour la même raison : l'ennui. L'auteur ne pouvait pas se forcer à écrire du code d'entreprise générique pour des sociétés sans âme, mais il le pouvait si c'était amusant. Clojure, Go, Rust, Zig et d'autres nouvelles technologies ont aidé à maintenir l'intérêt. L'auteur suppose que la création de Clojure et son adoption élevée dans la Fintech proviennent de l'ennui des ingénieurs très intelligents. Les emplois bien rémunérés nécessitent des ingénieurs très intelligents, mais ils s'ennuient facilement et ont besoin de stimulation intellectuelle. L'écriture de code d'entreprise est relativement ennuyeuse, donc les Fintech permettent aux ingénieurs d'utiliser des « jouets » dans la base de code pour réduire le taux de rotation.

Développement burn-out professionnel

Le codage Vibe : effet de mode ou avenir du développement logiciel ?

2025-05-03
Le codage Vibe : effet de mode ou avenir du développement logiciel ?

Le codage Vibe, popularisé par Andrej Karpathy, consiste à utiliser des assistants IA comme Cursor pour coder via des commandes vocales. Bien qu'il abaisse la barrière à l'entrée pour la création de logiciels et permette une prototypage rapide, il ne remplace pas les compétences de codage traditionnelles. L'article soutient que si le codage Vibe démocratise la prototypage, la construction de logiciels robustes nécessite toujours une compréhension approfondie des langages de programmation et de l'informatique en général. C'est davantage un outil pour accélérer le développement pour les programmeurs expérimentés, et non une solution miracle pour remplacer les ingénieurs logiciels.

Développement codage vibe

ANEMLL : Accélération des LLMs sur le Neural Engine d'Apple

2025-05-03
ANEMLL : Accélération des LLMs sur le Neural Engine d'Apple

ANEMLL est un projet open source axé sur l'accélération des grands modèles de langage (LLM) sur les processeurs tensoriels, en commençant par le Neural Engine d'Apple (ANE). Il fournit un pipeline open source complet, de la conversion du modèle (à partir de Hugging Face) à l'inférence sur ANE, permettant une inférence transparente sur l'appareil pour les applications de faible puissance en périphérie, maximisant ainsi la confidentialité et la sécurité. Il prend actuellement en charge des modèles tels que LLaMA 3.1 et propose des exemples de code Swift et Python, ainsi que des applications iOS/macOS. Il s'agit d'une version alpha, donc des améliorations de la quantification sont attendues.

Développement Neural Engine Apple

Publication du code source : QModem 4.51, un programme de communication MS-DOS classique

2025-05-03
Publication du code source : QModem 4.51, un programme de communication MS-DOS classique

Le code source de QModem 4.51, un programme de télécommunications MS-DOS créé par John Friel III (1960-2024), a été publié. Cette édition « Test-Drive » de 1992 offre des fonctionnalités telles que la prise en charge de divers protocoles modem, des scripts, la personnalisation, la configuration automatique et même un mode hôte. Un artefact historique précieux pour les passionnés de télécommunications, les amateurs de rétro-informatique et toute personne intéressée par les logiciels DOS classiques. Cependant, la compilation nécessite Turbo Pascal 5.x/6.0 et diverses dépendances, ainsi que la gestion des superpositions : une tâche difficile.

Développement

Émulation de closures en Tcl : une astuce intelligente

2025-05-03

Cet article explore la mise en œuvre d'un comportement similaire aux closures en Tcl, un langage ne disposant pas de support natif pour les closures. L'auteur utilise les espaces de noms et le système d'objets TclOO pour créer une classe qui imite les closures. Cette classe capture les variables externes et maintient leur validité en dehors de leur portée d'origine, obtenant ainsi une fonctionnalité similaire à celle des closures. Bien qu'elle diffère légèrement des closures en C++, cette approche offre une solution pratique pour ceux qui ont besoin de closures en Tcl.

Développement

pipask : Installation sécurisée de paquets Python

2025-05-03
pipask : Installation sécurisée de paquets Python

pipask est une alternative plus sûre à pip, ajoutant des vérifications de sécurité avant l'installation de paquets Python. Il privilégie l'utilisation des métadonnées PyPI, évitant le téléchargement et l'exécution de code autant que possible. Si l'exécution de code tiers est nécessaire, pipask demande le consentement de l'utilisateur. Après avoir effectué les vérifications, notamment la popularité du dépôt, l'âge du paquet, les vulnérabilités connues, le nombre de téléchargements PyPI et la vérification des métadonnées, il présente un rapport formaté et demande l'approbation. Après approbation, il transfère l'installation à pip standard.

Développement

Pourquoi HTML ne peut-il pas importer du HTML ?

2025-05-03
Pourquoi HTML ne peut-il pas importer du HTML ?

L'auteur est obsédé par un besoin simple de développement web : réutiliser le même en-tête sur plusieurs pages HTML. Il trouve de nombreuses solutions, mais aucune n'est purement basée sur le HTML. Cela l'amène à se demander pourquoi HTML ne peut pas importer directement d'autres fichiers HTML, comme CSS ou JavaScript. Il explore les raisons possibles, telles que les analyseurs de préchargement, les problèmes de chargement asynchrone, la complexité des inclusions imbriquées, l'augmentation des requêtes web, etc., et sollicite l'avis du lecteur.

Développement

Proxy LLM distant comme modèle local en Kotlin : une aubaine pour l’assistant IA de JetBrains

2025-05-03
Proxy LLM distant comme modèle local en Kotlin : une aubaine pour l’assistant IA de JetBrains

En raison de la limitation du quota gratuit de l’assistant IA de JetBrains, l’auteur a développé une application Kotlin/Ktor qui agit comme proxy pour plusieurs API LLM, telles qu’OpenAI, Claude et Gemini, en tant qu’API LM Studio et Ollama, permettant leur utilisation dans les IDE JetBrains. Tirant parti de fonctionnalités sans réflexion, elle est construite comme une image native GraalVM pour une compatibilité multiplateforme et un démarrage rapide. Elle prend en charge le chat en streaming, une configuration simple et le rechargement à chaud.

Développement Assistant IA JetBrains

Un script simple pour créer un blog

2025-05-03

Ce script crée un blog statique simple. Il lit des fichiers Markdown à partir d'un répertoire spécifié, les convertit en HTML à l'aide de la bibliothèque markdown2 et génère des pages de blog statiques basées sur un modèle HTML. Il crée également une page d'index listant tous les articles du blog avec des titres et des liens pour faciliter la navigation. L'ensemble du processus est automatisé pour plus d'efficacité et de simplicité.

Développement génération de blog

arXivLabs : Projets expérimentaux en collaboration avec la communauté

2025-05-03
arXivLabs : Projets expérimentaux en collaboration avec la communauté

arXivLabs est un cadre qui permet 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 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

Apple et Anthropic s'associent pour une plateforme de codage alimentée par l'IA

2025-05-03
Apple et Anthropic s'associent pour une plateforme de codage alimentée par l'IA

Apple collabore avec la startup d'IA Anthropic sur une nouvelle plateforme de « vibe-coding » qui utilise l'IA pour écrire, éditer et tester du code pour les programmeurs. Cette nouvelle version de Xcode intègre le modèle Claude Sonnet d'Anthropic. Actuellement, Apple teste le logiciel en interne et n'a pas encore décidé d'une sortie publique. Ce partenariat représente une avancée significative dans le développement de logiciels assistés par l'IA, révolutionnant potentiellement la façon dont les programmeurs travaillent.

Développement

Oubliez les PRD, adoptez le développement piloté par les démonstrations

2025-05-03
Oubliez les PRD, adoptez le développement piloté par les démonstrations

Dans le monde rapide du développement logiciel, les longs documents PRD entravent souvent l'efficacité. Le développement piloté par les démonstrations offre une approche plus agile : privilégiez la création de prototypes de démonstration interactifs pour recueillir rapidement les commentaires des utilisateurs et des parties prenantes. Les démonstrations ne sont pas le produit final, mais plutôt un moyen de visualiser des concepts abstraits, les rendant accessibles aux personnes non techniques. En simplifiant la création et l'accès aux démonstrations, et en concentrant les commentaires sur les fonctionnalités principales, les équipes peuvent itérer plus efficacement, créant finalement des produits qui répondent mieux aux besoins des utilisateurs. Bien que la documentation reste importante, le développement piloté par les démonstrations augmente considérablement l'efficacité dans les phases initiales, aidant les équipes à trouver plus rapidement la bonne direction.

Entraîner des robots avec Pi0, Lerobot et Rerun : une approche de reciblage du mouvement de pose humaine

2025-05-02
Entraîner des robots avec Pi0, Lerobot et Rerun : une approche de reciblage du mouvement de pose humaine

Ce projet explore l’entraînement de robots à l’aide de Pi0, Lerobot et Rerun. Il est compatible avec Linux et utilise le gestionnaire de paquets Pixi. Le projet comprend l’étalonnage de la caméra, l’analyse de la pose et de la cinématique humaine, et l’extraction des positions et des angles des articulations 3D à partir d’images multivues. L’objectif final est de convertir des séquences vidéo multi-caméras synchronisées en paramètres d’articulation angle-axe et en positions 3D utilisables par les robots pour le reciblage du mouvement et l’apprentissage de compétences motrices fines. Des tutoriels Jupyter Notebook sont fournis, couvrant la pose et la cinématique humaines, le reciblage de la pose du corps et de la main, et l’apprentissage par imitation et la téléopération.

Graphiques de flamme AI open source : désormais avec prise en charge du GPU Intel Battlemage

2025-05-02

Intel a open-sourcé les graphiques de flamme AI, en ajoutant la prise en charge des GPU Intel Battlemage. Cela permet de générer des graphiques de flamme GPU full-stack, offrant des informations sans précédent sur les performances de jeu. En utilisant GZDoom comme exemple, l’article montre comment FlameScope, combiné aux graphiques de flamme CPU et GPU, peut identifier les goulots d’étranglement des performances. En comparant visuellement l’activité du CPU et du GPU, les développeurs peuvent rapidement identifier les zones à optimiser. L’exemple met en évidence le temps de compilation des shaders CPU et les variations de performances du GPU dans différentes scènes de jeu. Bien que la configuration nécessite un système Linux et quelques bidouillages du noyau/de la bibliothèque, les puissantes capacités d’analyse en font un outil précieux pour les développeurs de jeux et les ingénieurs de performance.

Tests basés sur les propriétés dans Elm : garantir la couverture des cas intéressants

2025-05-02

Cet article montre comment utiliser Test.Distribution dans Elm pour garantir que les tests basés sur les propriétés couvrent les cas intéressants. L’auteur utilise un exemple d’implémentation de file d’attente pour montrer comment Test.reportDistribution génère des rapports de distribution de données de test et comment Test.expectDistribution impose les distributions attendues. Cela permet aux développeurs de contrôler plus précisément la couverture des tests, en évitant de manquer des cas de test importants en raison d’une distribution inégale des données. L’article mentionne également les fonctions Fuzz.examples et Fuzz.labelExamples, qui aident les développeurs à mieux comprendre et déboguer les données de test.

Développement

Automatisation de la vérification des estimations asymptotiques : un outil Python

2025-05-02
Automatisation de la vérification des estimations asymptotiques : un outil Python

Cet article décrit un outil Python permettant de vérifier automatiquement les estimations asymptotiques, en particulier celles impliquant un nombre fini de nombres réels positifs combinés à l’aide d’opérations arithmétiques telles que l’addition, la multiplication, la division, l’exponentiation et les fonctions min/max. L’outil utilise la division en cas et la programmation linéaire pour déterminer automatiquement si une inégalité est vraie, en fournissant une preuve ou un contre-exemple. L’auteur illustre l’utilité de l’outil à l’aide d’exemples personnels et discute des améliorations futures, telles que la gestion d’expressions plus complexes et l’intégration dans les plates-formes logicielles mathématiques existantes.

JDK 25 : Amélioration des performances de String grâce au pliage constant du code de hachage

2025-05-02

JDK 25 améliore considérablement les performances de la classe String en permettant le pliage constant de la fonction String::hashCode. Cela entraîne des gains de vitesse substantiels, notamment lorsque les Strings sont utilisées comme clés dans des Maps statiques et immuables, comme dans un scénario où des MethodHandles pour les appels natifs sont accessibles via des clés String. Les benchmarks montrent une amélioration de plus de 8x. Cette optimisation est obtenue en marquant le champ interne String.hash avec l'annotation @Stable. Cela permet à la JVM de mettre en cache et de réutiliser le code de hachage, évitant le recalcul pour les codes de hachage non nuls. Bien qu'un code de hachage nul puisse entraver cette optimisation, un correctif futur est prévu.

Développement

Anukari : Un synthétiseur révolutionnaire basé sur la physique 3D

2025-05-02

Anukari est un synthétiseur logiciel et un processeur d'effets basé sur une simulation physique 3D entièrement interactive. Faites glisser et déposez des composants physiques tels que des masses et des ressorts pour concevoir votre propre instrument ou effet 3D. Voyez et entendez ce que vous avez construit en temps réel. Il prend en charge le MPE et peut fonctionner comme un plugin dans votre DAW préférée ou en mode autonome. Tirez parti de la puissance de votre GPU pour un traitement audio puissant. Anukari est actuellement en version bêta avec une réduction de 50%.

BLAST : Un moteur de service hautes performances pour l'IA de navigation web

2025-05-02
BLAST : Un moteur de service hautes performances pour l'IA de navigation web

BLAST est un moteur de service hautes performances pour l'IA de navigation web, offrant une API compatible avec OpenAI avec concurrence et streaming intégrés. Il met automatiquement en cache et parallélise les tâches pour réduire les coûts et permettre des latences interactives. Une simple commande `pip install blastai && blastai serve` permet de l'utiliser localement, sans se soucier du budget ou de la consommation excessive de mémoire. Son API compatible avec OpenAI facilite l'intégration, diffusant en temps réel la sortie du LLM enrichie par le navigateur.

Développement

Redis retourne à l'open source après une bataille de licences avec les géants du cloud

2025-05-02
Redis retourne à l'open source après une bataille de licences avec les géants du cloud

Le populaire magasin de données en mémoire Redis est de retour sous une licence open source après une année d'expérimentation avec une licence plus restrictive. La tentative d'empêcher les fournisseurs de cloud d'offrir des services Redis hébergés s'est retournée contre elle, menant à la création de forks comme Valkey. La sortie de Redis 8 sous la licence AGPL v3 vise à protéger le projet tout en reconstruisant des ponts avec la communauté open source. L'histoire met en lumière les défis de la commercialisation de logiciels open source et la relation complexe avec les géants du cloud.

Développement

Machines Virtuelles Burstables d'Ubicloud : découpage CPU avec cgroups v2

2025-05-02
Machines Virtuelles Burstables d'Ubicloud : découpage CPU avec cgroups v2

Ubicloud, une alternative open source à AWS, a introduit des machines virtuelles burstables pour réduire les coûts du cloud. En utilisant Linux cgroups v2, ces VMs s'exécutent sur une fraction de ressources CPU partagées, augmentant leur utilisation lors des pics de charge. L'article détaille la configuration et l'utilisation de cgroups v2, incluant les contrôleurs cpuset et cpu, et la gestion via le système de fichiers virtuel ou systemd. Les tests ont montré que les VMs burstables atteignent environ 30% d'augmentation de performance sous faibles charges, mais ceci est limité par les restrictions de micro-intervalles de cgroups v2.

1 2 98 99 100 102 104 105 106 214 215