Category: Développement

Application Homescreen : Redéfinir l'expérience de votre écran d'accueil

2024-12-18

Homescreen est une application conçue pour révolutionner l'expérience de votre écran d'accueil. En rompant avec les limites des écrans d'accueil traditionnels des téléphones, elle offre aux utilisateurs une manière plus personnalisée, efficace et pratique d'interagir avec leurs appareils. Les utilisateurs peuvent personnaliser les widgets, les thèmes et les dispositions pour créer un écran d'accueil unique, augmentant ainsi leur productivité et leur plaisir d'utilisation. Homescreen n'est pas qu'un simple remplacement de l'écran d'accueil ; c'est une approche novatrice de l'utilisation de nos téléphones.

Récupération des données du capteur : Libération du cloud

2024-12-18

Cet article décrit comment un ingénieur logiciel embarqué a repris le contrôle des données d'un capteur de radon connecté au cloud en contournant les serveurs du fabricant. En analysant le trafic réseau, l'ingénieur a découvert une vulnérabilité où le capteur ne validait pas correctement les certificats du serveur. À l'aide d'un serveur DNS local et d'un serveur web Python personnalisé, l'ingénieur a réussi à intercepter et à lire les données brutes du capteur. Cela permet un accès programmatique et garantit la continuité du fonctionnement même si les serveurs du fabricant tombent en panne. L'article souligne l'importance de la sécurité du réseau et les risques de confidentialité liés au trafic DNS.

L'extension de navigateur 'refoorest' accusée d'escroquerie liée à la plantation d'arbres

2024-12-18

Une enquête sur l'extension de navigateur refoorest et le SDK Impact Hero de Colibri Hero révèle un système trompeur de marketing d'affiliation déguisé en initiative de plantation d'arbres. L'extension fausse le nombre d'arbres plantés, exploite les données des utilisateurs via des avis et des partages incités, et le SDK obtient des autorisations excessives des utilisateurs sans divulgation appropriée, violant les politiques du Chrome Web Store. L'article expose un schéma de pratiques opaques, notamment de faux témoignages, un manque de transparence financière et des failles de sécurité des données, remettant sérieusement en question les affirmations de l'entreprise concernant sa responsabilité environnementale.

Optimisation du JSON Ruby : Partie 1

2024-12-18

Cet article de blog explique comment l’auteur a optimisé la gemme `json` de Ruby pour en faire l’un des analyseurs et générateurs JSON les plus rapides. Au lieu de techniques complexes, des optimisations simples ont été appliquées sur la base du profilage, telles que l’évitement des vérifications redondantes, la priorisation des conditions moins coûteuses, la réduction des coûts de configuration et l’utilisation de tables de recherche. Ces améliorations s’appliquent au code C et au code Ruby. Les optimisations ont considérablement amélioré les performances de la gemme `json`, la rendant compétitive par rapport à des alternatives telles que `oj`, réduisant le besoin de correctifs de type « monkey patch » et résolvant les problèmes de stabilité et de compatibilité liés à `oj`.

ImPlot3D : Une bibliothèque de tracé 3D en mode immédiat hautes performances basée sur Dear ImGui

2024-12-18

ImPlot3D est une bibliothèque open source construite sur Dear ImGui, offrant aux développeurs un moyen simple et performant de créer des tracés 3D. Indépendante d'ImPlot, ImPlot3D prend en charge divers types de tracés 3D, notamment les tracés de lignes, les nuages de points, les surfaces et les maillages, avec rotation, panoramique et zoom interactifs. Son API intuitive, similaire à Dear ImGui et ImPlot, permet une intégration rapide et la personnalisation des marqueurs, lignes, surfaces et styles de maillage, avec des options pour les palettes de couleurs intégrées ou personnalisées. Une application de démonstration complète aide les utilisateurs à apprendre et à utiliser ses fonctionnalités.

Développement tracé 3D

Interprète Métacirculaire Python : Implémentation d’un interpréteur Python en Python

2024-12-18

Cet article montre comment créer un interpréteur métacirculaire Python (MCI) à l’aide de Python lui-même. Un MCI est un interpréteur écrit dans le langage qu’il interprète, permettant l’implémentation d’un sous-ensemble ou d’un sur-ensemble du langage hôte. L’auteur détaille l’implémentation du MCI, en couvrant l’analyse du code source Python, la construction d’un arbre de syntaxe abstraite (AST), la traversée de l’AST et l’exécution des instructions, ainsi que des concepts cruciaux tels que la portée, les tables de symboles et la gestion des instructions de contrôle de flux (par exemple, les boucles while et les instructions if). Cet exemple fournit une compréhension approfondie de la mécanique de l’interprète et montre comment tirer parti du module AST de Python et des fonctions intégrées pour construire des interprètes plus complexes.

Notebooks Jupyter : Tests de bout en bout et documentation en un

2024-12-18

Lors du développement d'une bibliothèque de calcul quantique, l'auteur a utilisé des Notebooks Jupyter à la fois comme guides d'utilisation et comme tests de bout en bout. En lisant des variables d'environnement (comme SERVER_URL) dans les notebooks, il a obtenu la paramétrisation, permettant l'exécution par les utilisateurs et les pipelines CI/CD automatisés. Deux méthodes d'exécution des notebooks ont été explorées : nbclient pour sa simplicité, et nbconvert/jq pour un contrôle plus fin mais une complexité accrue. L'auteur a opté pour la simplicité de nbclient, intégrant efficacement la maintenance de la documentation et les tests de code, assurant l'intégrité des deux à chaque demande de fusion.

Développement Tests de bout en bout

Dompter le chaos : centralisation et structuration de la gestion des erreurs en Go

2024-12-18

Cet article détaille le parcours de l’auteur pour résoudre les problèmes croissants de gestion des erreurs dans un projet Go en développement. Au départ, l’approche simple de la gestion des erreurs a dégénéré en un chaos de journaux confus et d’erreurs intraçables. Pour y remédier, un nouveau cadre de gestion des erreurs a été conçu et mis en œuvre. Ce cadre utilise un système centralisé et structuré avec des codes d’espace de noms pour rendre les erreurs significatives et traçables. Le cœur du système est une déclaration centralisée des codes d’erreur ; chaque couche de service ne renvoie que ses propres codes d’espace de noms, enrichis d’informations contextuelles. L’article explique en détail les décisions de conception, la mise en œuvre, les leçons apprises et la stratégie de migration, offrant une expérience pratique précieuse.

Ergo : Un serveur IRC moderne écrit en Go

2024-12-18

Ergo est un serveur IRC moderne écrit en Go, conçu pour être facile à configurer et à utiliser. Il combine les fonctionnalités d'un ircd, d'un framework de services et d'un bouncer (gestion de comptes intégrée, stockage de l'historique et fonctionnalité de bouncer). Il prend en charge la dernière version d'IRCv3 et est hautement personnalisable via une configuration YAML rehashable. Les fonctionnalités clés incluent des services intégrés (NickServ, ChanServ, HostServ), une prise en charge native de TLS/SSL, l'authentification SASL, la prise en charge de LDAP et des fonctionnalités de sécurité et de confidentialité avancées.

Développement serveur IRC

Lancement de l'égaliseur 5 bandes open source a5eq.lv2

2024-12-18

ashafq a publié a5eq.lv2, un plugin égaliseur 5 bandes LV2 open source. Ce plugin comprend une étagère basse, trois filtres de crête et une étagère haute, conçus pour une sculpture audio précise par les ingénieurs du son amateurs et professionnels. Il dispose de coefficients de filtre haute précision, d'un traitement stéréo et d'une interface conviviale. Compatible avec tout logiciel hôte prenant en charge LV2, comme Ardour et Audacity, il est facile à installer et à utiliser via la ligne de commande. Les utilisateurs peuvent soumettre des problèmes ou contribuer au code via GitHub.

Développement traitement audio égaliseur

Éditeur de texte adaptable 'ad' : Fusion de Vim et Acme

2024-12-18

ad est un nouvel éditeur de texte qui combine l'interface d'édition modale de Vim et Kakoune avec l'approche d'extensibilité d'Acme de Plan9. ad permet aux utilisateurs d'exécuter du texte et sert de terrain de jeu pour expérimenter l'implémentation de diverses fonctionnalités d'éditeurs de texte. Actuellement, ad est suffisamment stable et complet pour être testé, bien que la documentation soit rare et que des bogues puissent exister. La philosophie de conception d'ad combine l'édition modale de Vim, le mini-buffer d'Emacs et les commandes d'édition et l'extensibilité d'Acme, dans le but de créer un environnement d'édition confortable qui prend en charge l'interaction directe avec des outils et des programmes externes.

Génération rapide de textures : tutoriel sur les textures XOR

2024-12-18

Ce tutoriel explique comment générer une texture XOR, une texture simple créée en utilisant l’opération XOR sur les coordonnées x et y de chaque pixel. Bien qu’elle ne soit pas idéale pour les jeux ou l’art, elle est parfaite pour tester les mappeurs de textures. L’article détaille l’opération XOR, discute de l’effet de la taille de la texture sur la luminosité de la couleur et montre comment générer des textures similaires à l’aide des opérateurs ET et OU. Un exemple de texture 3D utilisant XOR est également présenté.

dLine : Un outil de calendrier en terminal pour une gestion efficace de l'agenda

2024-12-18

dLine est un outil en ligne de commande qui présente des données importantes sous forme de calendrier directement dans votre terminal. Il surveille les dates critiques, simplifie l'ajout d'événements via des API et calcule les durées pour différents types d'événements. Conçu pour les développeurs, dLine rationalise la gestion des événements et la navigation dans l'agenda sans quitter le terminal. Il offre des vues dynamique et statique, une calculatrice d'événements et de solides capacités de gestion des données, notamment l'ajout, la suppression, l'affichage et le nettoyage des événements. dLine prend également en charge les schémas de couleurs personnalisés, les traductions des utilisateurs et l'intégration avec Google Calendar.

OpenAuth : Un serveur OAuth 2.0 universel et auto-hébergé

2024-12-17

OpenAuth est un fournisseur d'authentification universel, basé sur les normes et open source. Il peut être déployé comme un service autonome ou intégré à des applications existantes, il est indépendant du framework et fonctionne sur Node.js, Bun, AWS Lambda ou Cloudflare Workers. Conforme à la spécification OAuth 2.0, OpenAuth offre une interface utilisateur personnalisable et thématique. Contrairement à la plupart des solutions d'authentification open source qui sont des bibliothèques, OpenAuth est un serveur centralisé conçu pour faciliter l'auto-hébergement sur votre infrastructure. Il omet intentionnellement la gestion des utilisateurs, fournissant à la place des callbacks pour la recherche/création d'utilisateurs personnalisés. Le stockage des données est minimal (tokens de rafraîchissement, etc.), utilisant un stockage KV simple (Cloudflare KV, DynamoDB). Une interface utilisateur pré-construite est disponible, mais vous pouvez facilement la personnaliser ou la remplacer entièrement. Créé par l'équipe SST, OpenAuth simplifie l'authentification pour vos applications.

IncludeOS : Exécutez des applications dans le cloud sans surcharge

2024-12-17

IncludeOS est un système d'exploitation léger qui vous permet d'exécuter votre application dans le cloud sans système d'exploitation traditionnel. Il intègre les fonctionnalités du système d'exploitation directement dans votre application, créant des machines virtuelles performantes, sécurisées et efficaces en termes de ressources. Les applications IncludeOS démarrent en quelques dizaines de millisecondes et ne nécessitent que quelques mégaoctets de disque et de mémoire. Des outils simples en ligne de commande facilitent la construction et le déploiement, et de nombreux exemples et documentations aident les développeurs à démarrer rapidement.

SeleniumBase : Un framework d'automatisation web puissant

2024-12-17

SeleniumBase est un framework Python robuste pour l'automatisation web, les tests et le contournement de la détection des bots. Basé sur Selenium WebDriver et intégrant des outils de test comme pytest, il offre une syntaxe claire et des fonctionnalités étendues telles que des attentes automatiques pour les éléments de page, la génération de rapports de test, un tableau de bord et la prise en charge de plusieurs navigateurs et systèmes d'exploitation. SeleniumBase inclut également des modes tels que le mode UC et le mode CDP pour une confidentialité et une fiabilité accrues, ainsi que des exemples et une documentation complets pour une adoption rapide.

Développement automatisation web tests

Cerbos utilise les CRDT pour un espace de jeu collaboratif

2024-12-17

Cerbos a créé un environnement IDE et de test collaboratif, le "Playground", pour simplifier la logique d'autorisation complexe. Pour permettre une collaboration transparente, ils utilisent les Types de Données Répliquées Sans Conflit (CRDT), qui résolvent automatiquement les conflits dans les systèmes distribués. L'article explore les CRDT, en comparant des bibliothèques populaires comme Yjs et Automerge, et discute des défis et des possibilités de construire un CRDT personnalisé. Cerbos intègre les CRDT avec une architecture back-end pour front-end (BFF), utilisant WebSockets pour le transfert de données et IndexedDB pour la persistance locale, créant une plateforme collaborative robuste. Les défis de la collaboration globale et de la persistance des données sont également abordés.

Rendre le Rust non sécurisé un peu plus sûr : outils pour vérifier le code non sécurisé, y compris les bibliothèques en C et C++

2024-12-17

La popularité de Rust provient de sa capacité à éliminer les erreurs de mémoire et de concurrence au moment de la compilation, mais ses blocs de code `unsafe` peuvent contourner ces vérifications. Cet article explore des outils pour vérifier le code Rust non sécurisé, y compris le code appelé à partir de bibliothèques C ou C++. Il présente des outils de détection d'erreurs d'exécution — les sanitizers — et Miri, un interpréteur qui trouve de manière déterministe les comportements indéfinis. Les sanitizers détectent les accès mémoire hors limites, les data races et plus encore, tandis que Miri fournit des rapports d'erreurs plus précis avec des extraits de code. Cependant, Miri ne prend actuellement pas en charge le code appelé via FFI à partir de C/C++, ce qui nécessite l'utilisation des sanitizers du compilateur C/C++ dans ces cas. Ces outils améliorent la sécurité et la fiabilité du code Rust, même lorsqu'il s'agit de code `unsafe` ou d'interaction avec des bibliothèques C/C++.

Développement Erreurs de mémoire

BYOJS : Adoptez JavaScript natif pour le développement web

2024-12-17

Le projet BYOJS préconise la construction d'applications web avec le JavaScript core, plutôt que de dépendre de frameworks lourds. Bien que les frameworks et les langages comme TypeScript soient populaires, BYOJS soutient que la construction d'applications web efficaces en utilisant le langage JS core est un art perdu. Il encourage l'utilisation de bibliothèques faiblement couplées au lieu de frameworks fortement couplés, prônant le choix de l'outil le moins puissant qui permette de réaliser la tâche et privilégiant un code concis. Le projet fournit des utilitaires utiles tels qu'une API simple de stockage clé-valeur, un émetteur d'événements asynchrones, un wrapper modal, et plus encore. Tout le code est sous licence MIT.

Percée en cybersécurité : piéger les intrus dans un "réseau infernal"

2024-12-17

Les chercheurs de l'équipe SensorFu de l'Université d'Oulu ont développé un nouveau système de défense de sécurité réseau inspiré de la technique LaBrea tarpit. Le système intercepte les requêtes ARP et retarde les réponses SYN-ACK, créant une multitude de dispositifs virtuais sur le réseau pour confondre les intrus. Cela force les attaquants à perdre un temps précieux à identifier les vrais dispositifs, donnant aux administrateurs le temps crucial de corriger les vulnérabilités. Des tests ont montré que le système prolonge les temps de scan pendant des heures, réduisant considérablement les taux de réussite des attaques. Léger, efficace et facile à déployer, ce système offre une protection réseau robuste pour les organisations de toutes tailles.

Surfer Protocol : Framework open source pour contrôler vos données personnelles

2024-12-17

Surfer Protocol est un framework open source qui permet aux utilisateurs d'exporter et de construire des applications basées sur leurs données personnelles. Il répond au problème des données cloisonnées sur de nombreuses plateformes. Il comprend une application de bureau pour exporter les données de diverses applications et services, et un SDK Python pour construire des applications utilisant ces données. Les utilisateurs peuvent utiliser Surfer Protocol pour créer des modèles d'IA personnalisés, reprendre le contrôle de leurs données auprès des grandes entreprises technologiques ou laisser un héritage numérique.

Hooklistener : Outil de débogage et de test visuel de Webhook

2024-12-17

Hooklistener est un outil en ligne permettant de visualiser, déboguer et tester les webhooks. Il offre une inspection de charge utile en temps réel, des capacités de test local, une planification personnalisée, des alertes exploitables et des fonctionnalités de collaboration d'équipe. Les utilisateurs peuvent facilement configurer des points de terminaison, recevoir et analyser les webhooks et automatiser les workflows à l'aide de tâches planifiées. Hooklistener propose des plans gratuits et payants pour répondre aux différents besoins, permettant aux développeurs de gérer et de déboguer les webhooks plus efficacement.

Développement Débogage Test

Défi OCR : numérisation des Mémoires de Saint-Simon

2024-12-17

L’auteur a passé plusieurs semaines à utiliser la reconnaissance optique de caractères (OCR) pour numériser une édition de la fin du XIXe siècle des mémoires françaises du XVIIIe siècle, *Les Mémoires de Saint-Simon*. Cet ouvrage colossal de 45 volumes, contenant plus de 3 millions de mots, est disponible en ligne sous forme d’images, mais il est difficile à lire. L’objectif était de créer une version textuelle lisible, consultable et copiable. Les défis comprenaient la mauvaise qualité des images et l’analyse des différentes zones de la page (en-têtes, texte principal, commentaires en marge, notes de bas de page, etc.). L’API Google Vision a été utilisée pour l’OCR, avec un programme Python traitant les résultats pour identifier et séparer le texte des différentes zones. Bien que les grands modèles linguistiques (LLM) n’aient pas réussi à gérer de manière fiable les références des notes de bas de page, l’auteur a amélioré le programme et intégré une relecture manuelle, ce qui a abouti à la publication du premier volume.

PipeGate : Proxy léger et auto-hébergé, votre « ngrok » économique

2024-12-17

PipeGate est un proxy léger et auto-hébergé, construit avec FastAPI, conçu comme un « ngrok » économique. Il vous permet d'exposer vos serveurs locaux à Internet, offrant un moyen simple de créer des tunnels depuis votre machine locale vers le monde extérieur. C'est un excellent outil pour les développeurs qui souhaitent comprendre le fonctionnement interne des services de tunneling comme ngrok ou qui ont besoin d'une alternative personnalisable hébergée sur leur propre infrastructure. Ses principales caractéristiques incluent l'auto-hébergement, des connexions uniques, la personnalisation, une conception légère et la facilité d'apprentissage. L'installation est simple, via git clone ou pip.

Bruin : Construisez des pipelines de données avec SQL et Python

2024-12-17

Bruin est un outil puissant de pipeline de données qui combine l'ingestion de données, la transformation de données avec SQL et Python, et les contrôles de qualité des données en un seul framework. Il fonctionne avec les principales plates-formes de données et s'exécute sur votre machine locale, une instance EC2 ou GitHub Actions. Les fonctionnalités clés incluent l'ingestion de données, les transformations SQL et Python, les contrôles de qualité des données, les modèles Jinja, la validation de bout en bout et la prise en charge de plusieurs environnements. Les pipelines sont facilement définis à l'aide d'un simple fichier pipeline.yml.

Développement pipeline de données

SpiceNice : Lancement d’une base de données d’épices culinaires open source

2024-12-17

SpiceNice est un nouveau site web open source proposant une base de données complète d’épices culinaires. Il fournit des informations détaillées sur chaque épice, notamment son nom botanique, ses utilisations culinaires et son origine, ainsi que des informations sur la plante correspondante. Développé avec Strapi (backend), PostgreSQL (base de données) et Astro (frontend), SpiceNice vise à devenir une ressource centrale pour les cuisiniers, les biologistes, les agriculteurs et les passionnés d’épices. Les projets futurs incluent une API web, une prise en charge multilingue et un forum communautaire.

Développement épices

Discourse célèbre dix ans de développement de communautés en ligne

2024-12-17

Discourse, le logiciel de forum open-source, a célébré son 10e anniversaire le 26 août 2024. Lancé avec la vision d'élever le niveau du discours en ligne, il est passé d'une petite équipe de quatre à plus de 100 employés dans 25 pays. La plateforme compte plus de 20 000 communautés, 107 millions de sujets et près de 1,65 milliard de publications. Le développement continu a inclus l'ajout de 49 plugins, de fonctionnalités de chat et d'outils basés sur l'IA pour la modération et l'amélioration de l'expérience utilisateur. Ce succès témoigne de sa nature open-source, de son engagement envers les commentaires des utilisateurs et du dévouement de son équipe.

Langfuse : Plateforme d'ingénierie LLM open source pour simplifier le développement

2024-12-17

Langfuse est une plateforme d'ingénierie LLM open source conçue pour simplifier le développement et le déploiement d'applications de grands modèles de langage (LLM). Elle offre des fonctionnalités telles que l'observabilité LLM, les métriques, les évaluations, la gestion des invites, un espace de jeu et des ensembles de données, s'intégrant parfaitement à des outils tels que LlamaIndex, Langchain, OpenAI SDK et LiteLLM. Les développeurs peuvent utiliser Langfuse pour surveiller les performances des LLM, gérer les invites, évaluer l'efficacité du modèle et, finalement, accélérer le développement d'applications LLM.

Firmware open source : nécessité et choix stratégiques

2024-12-17

Cet article explore la nécessité d'un firmware open source. L'auteur soutient que le firmware, en tant que logiciel contrôlant le matériel, devrait adhérer aux principes du logiciel libre. Il ne s'agit pas seulement de liberté en soi, mais aussi directement des intérêts pratiques des utilisateurs. Un firmware non libre peut restreindre les fonctionnalités du matériel, masquer les vulnérabilités de sécurité et même empêcher les utilisateurs de résoudre les problèmes de sécurité. L'article analyse deux points de vue : l'un considère le firmware open source comme souhaitable mais non nécessaire ; l'autre plaide pour que tous les logiciels système soient open source. L'auteur penche pour le premier, estimant qu'il est plus important de prioriser la liberté du noyau du système d'exploitation, mais souligne simultanément les avantages d'un firmware open source et discute de la manière de le promouvoir par des moyens stratégiques.

Développement logiciel libre

Une équipe de développement solo atteint deux millions d'utilisateurs

2024-12-17

Nadia Odunayo, ingénieure logiciel, a créé StoryGraph, une application de communauté de lecture comptant plus d'un million d'utilisateurs, en tant que développeuse solo. StoryGraph aide les utilisateurs à suivre leurs lectures et recommande des livres en fonction de leur humeur et de leurs préférences. Cette histoire inspirante met en lumière la détermination, les compétences techniques et le « framework d'une seule personne » qu'Odunayo a utilisé pour réaliser cet exploit impressionnant. Elle offre des informations précieuses aux aspirants développeurs solo.

1 2 4 6 7 8