Category: Développement

NoDB : Traitement des paiements sans base de données

2024-12-21

Dans "Le Manuel de l'Ingénieur des Paiements", Alvaro Duran présente une approche révolutionnaire de la conception des systèmes de paiement : traiter les paiements sans base de données. Il soutient que la prévalence de la programmation asynchrone découle de l'hypothèse de la nécessité des bases de données. En utilisant le sourcing d'événements, chaque étape du processus de paiement est enregistrée comme un événement, et non comme un état persistant. Ces événements sont stockés temporairement en mémoire, et le système reconstruit l'état du paiement à partir du flux d'événements, éliminant ainsi le besoin de stockage persistant. Cette approche hautes performances et haute fiabilité, inspirée du trading haute fréquence, permet une récupération rapide des pannes grâce à des sauvegardes à chaud. L'article détaille ce concept à l'aide d'un exemple de flux de paiement et examine les applications futures dans les systèmes de paiement.

@celine/bibhtml v3.0.3 : Un système de références basé sur les Web Components

2024-12-21

Le système de références basé sur les Web Components pour les documents HTML, @celine/bibhtml, a publié la version 3.0.3. Il vise à fournir une expérience utilisateur similaire à celle des références dans LaTeX/BibTeX, en utilisant Citation.js en interne et en se dégradant élégamment lorsque les citations et les références sont mal formées ou que JavaScript est désactivé. Il prend en charge quatre formats de référence : BibTeX, texte non structuré, DOI et Wikidata, et propose trois éléments personnalisés : ``, `` et ``, simplifiant ainsi la gestion des références en HTML.

Développement Gestion des références

Progrès révolutionnaire : compilation sécurisée de C vers Rust

2024-12-21

Des chercheurs ont mis au point une nouvelle méthode permettant de compiler du code C en Rust de manière sécurisée. Cette technique utilise l'analyse statique et la traduction dirigée par les types pour éviter de dépendre des blocs `unsafe` de Rust, garantissant ainsi la sécurité mémoire. La méthode a été appliquée avec succès à des codes de la bibliothèque cryptographique HACL* et des bibliothèques EverParse, donnant naissance à une bibliothèque cryptographique moderne vérifiée de 80 000 lignes en Rust pur, une première du genre.

Un programmeur crée un jeu pseudo-3D en Bash

2024-12-20

Un programmeur nommé izabera a développé un jeu pseudo-3D impressionnant en utilisant le langage de script Bash. Ce projet, un hommage au jeu classique Wolfenstein 3D, est open-source sur GitHub. Le code est concis mais le résultat est étonnant, montrant la puissance de Bash et l'ingéniosité du programmeur. Le dépôt inclut le code source du jeu et des vidéos de démonstration. Les développeurs intéressés peuvent le consulter sur GitHub.

Développement Développement de jeux

Outils de build Monorepo : Scalabilité de votre base de code

2024-12-20

Les outils de build traditionnels peinent à gérer les grandes bases de code (100 à 10 000 développeurs actifs). Les outils de build Monorepo comme Bazel et Mill offrent des solutions en prenant en charge plusieurs langages, des tâches de build personnalisées, la mise en cache et la parallélisation automatiques, la mise en cache et l'exécution à distance, améliorant ainsi considérablement la vitesse et l'efficacité du build. Ils incluent également la sélection des tests basée sur les dépendances et le sandboxing des tâches de build, réduisant ainsi le temps de test et le non-déterminisme. Bien que ces fonctionnalités puissent sembler inutiles pour les petits projets, elles sont cruciales pour la collaboration à grande échelle et l'intégration continue dans les grands projets, empêchant les temps de build de devenir un goulot d'étranglement.

Développement outils de build scalabilité

Commande DOS APPEND : Combler le fossé entre l'ancien et le nouveau

2024-12-20

Lors de la reconstruction du code source de DOS 2.11, l'auteur a rencontré un défi : l'ancien assembleur MASM 1.25 ne prenait pas en charge les répertoires, ce qui était en conflit avec l'organisation moderne des fichiers utilisant une structure arborescente. Pour éviter un répertoire monolithique, l'auteur a intelligemment utilisé la commande DOS APPEND. APPEND est un programme TSR (Terminate and Stay Resident) qui intercepte les appels système tels que l'ouverture de fichiers et recherche dans une liste de chemins prédéfinie si le fichier n'est pas trouvé dans le répertoire actuel. Cela a permis à MASM 1.25 de localiser les fichiers dans la structure hiérarchique, résolvant l'incompatibilité et soulignant l'utilité surprenante d'APPEND dans des scénarios spécifiques.

Développement

io_uring gagne une nouvelle fonctionnalité de création de processus

2024-12-20

LWN.net relate le développement d'une nouvelle fonctionnalité de création de processus pour le sous-système io_uring. Cette fonctionnalité est implémentée via deux nouvelles opérations io_uring : IORING_OP_CLONE, qui crée un nouveau processus, et IORING_OP_EXEC, qui effectue un appel système execveat() pour charger un nouveau programme. Cela promet une efficacité accrue et permet d'exécuter une logique plus complexe, comme la recherche de chemins, de manière asynchrone dans le noyau. Cependant, cette fonctionnalité est encore à un stade précoce et présente des limitations, telles que la nécessité d'exécuter de manière synchrone les opérations io_uring dans le nouveau processus. Les développements futurs viseront à accroître la flexibilité et à fusionner éventuellement cette fonctionnalité dans le noyau principal de Linux.

Application Grayjay : Suivez les créateurs, pas les plateformes

2024-12-20

Grayjay est un lecteur vidéo multiplateforme qui agrège du contenu provenant de YouTube, PeerTube, Twitch et plus encore, éliminant ainsi le besoin de passer d'une plateforme à l'autre. Priorisant la confidentialité de l'utilisateur, il stocke l'historique de visionnage localement et offre l'importation/exportation de données et la sauvegarde automatique. Les fonctionnalités incluent un flux de contenu personnalisé, la diffusion sur grand écran et l'intégration de Harbor pour se connecter avec le public et monétiser le contenu.

L'assistant de codage Gemini de Google intègre des outils tiers

2024-12-20

Google a annoncé la prise en charge d'outils tiers dans Gemini Code Assist, son service de complétion de code IA pour les entreprises. Cela permet l'intégration d'outils tels que Jira, GitHub et Sentry via des plugins, réduisant ainsi les changements de contexte et augmentant la productivité des développeurs. Actuellement en préversion privée pour les partenaires Google Cloud, cette fonctionnalité est en concurrence directe avec GitHub Copilot Enterprise, bien que Google souligne des avantages tels que la prise en charge des bases de code sur site. L'ajout d'outils vise à rationaliser les workflows et à améliorer l'efficacité des développeurs.

Le Fonds Souverain pour la Technologie investit dans OpenStreetMap

2024-12-20

La Fondation OpenStreetMap a reçu une subvention de 384 000 € de la Sovereign Tech Agency pour assurer la stabilité, la croissance et la modernisation de son logiciel principal. Ce financement servira à mettre à jour le code, à améliorer la documentation et l'infrastructure de test, et à améliorer l'infrastructure principale, notamment en traitant le vandalisme et en explorant de nouvelles méthodes d'interaction avec les données. Deux nouveaux postes seront créés, dont un facilitateur de développement de logiciels principaux OSM pour coordonner les efforts des développeurs et encourager les contributions de la communauté.

Mise à jour Rerun 0.21 : Vue graphique, glisser-déposer et annulation

2024-12-20

Rerun 0.21 introduit une vue graphique très attendue, ainsi que des fonctionnalités de glisser-déposer et d’annulation. La nouvelle vue, construite à l’aide des archétypes GraphNodes et GraphEdges, visualise diverses structures de graphes, telles que les graphes ROS et les graphes de scène sémantiques. Cette version implémente également une fonction d’annulation basée sur le voyage dans le temps et présente un nouveau moteur de mise en page de graphe basé sur la force, Fjädra, améliorant considérablement l’expérience utilisateur.

Développement Vue graphique

Le moteur de jeu open source boardgame.io simplifie le développement de jeux au tour par tour

2024-12-20

boardgame.io est un moteur de jeu JavaScript open source conçu pour simplifier le développement de jeux au tour par tour. En gérant automatiquement des aspects complexes comme la gestion de l'état, la mise en réseau multijoueur et les adversaires IA, les développeurs peuvent se concentrer sur l'écriture de la logique du jeu. Le moteur prend en charge plusieurs phases de jeu, des lobbies pour le matchmaking, des capacités de prototypage et diverses technologies de couche de vue (telles que React et React Native). Son puissant système de plugins et les journaux de jeu traçables améliorent encore l'efficacité du développement et l'expérience du joueur.

Développement jeu au tour par tour

WordPress.org interrompt certains services pour les vacances

2024-12-20

Afin de permettre aux bénévoles de prendre des vacances, WordPress.org suspend temporairement plusieurs services gratuits : les nouveaux enregistrements de comptes, les nouvelles soumissions de plugins/thèmes et les nouvelles soumissions du répertoire de photos. Les forums et la localisation restent ouverts. Le fondateur Matt Mullenweg explique que les batailles juridiques avec WP Engine consomment beaucoup de temps et de ressources, ce qui nuit à son travail d’amélioration de WordPress. Il encourage le soutien à WordPress.org et suggère d’utiliser d’autres hébergeurs web non impliqués dans le litige.

Développement Vacances Litige

Visualiser la concurrence : un guide pour comprendre l’espace d’état d’un programme

2024-12-20

La programmation concurrente est notoirement complexe en raison de la difficulté d’énumérer tous les états possibles. Cet article utilise la visualisation pour expliquer comment comprendre la mécanique de l’exécution des programmes concurrents. Il commence par introduire le concept d’état du programme, qui est une combinaison de valeurs de variables et d’emplacement d’instructions, puis il démontre le processus de transition des états du programme et la génération de l’espace d’état à l’aide d’un exemple simple de programme similaire au C. L’article introduit ensuite les programmes concurrents et, à l’aide de deux programmes concurrents, P et Q, il explique comment représenter l’état d’un programme concurrent et la construction de l’espace d’état. Enfin, l’article explore comment utiliser l’outil de vérification de modèles SPIN et le langage LTL pour vérifier l’exactitude des programmes concurrents, en soulignant le rôle important de la vérification de modèles pour garantir l’exactitude des programmes concurrents.

Comment les navigateurs interprètent 'chucknorris' comme une couleur ?

2024-12-20

Cet article explore comment les navigateurs gèrent les valeurs de couleur invalides en HTML, comme interpréter 'chucknorris' comme rouge. L'auteur explique la tolérance du navigateur lors de l'analyse du HTML, en tentant de convertir les valeurs invalides en valeurs valides. Le processus d'analyse des valeurs de couleur invalides par les navigateurs est décrit, avec un lien CodePen fourni pour démontrer le processus. L'auteur soutient que cette tolérance du navigateur est un charme du web, permettant même à un code invalide de s'exécuter, ce qui montre la résilience du web.

Revue hebdomadaire Python : Sortie de Markitdown, débat animé sur la gestion des paquets Conda

2024-12-20

Les actualités Python de cette semaine incluent la sortie de Markitdown par Microsoft (un outil pour convertir des fichiers en Markdown), PDFMathTranslate (un outil de traduction d'articles scientifiques) et docling (un outil de préparation de documents). De plus, le PEP 768 propose d'ajouter une interface de débogueur externe sécurisée à CPython pour le débogage en temps réel. Une discussion animée a eu lieu concernant les complexités de la gestion des paquets Conda, analysant ses problèmes tels que les conflits de versions, la gestion des environnements virtuels et les interactions avec pip et setuptools. Enfin, l'utilisation de Markdown a suscité un débat soulignant les problèmes de compatibilité dus aux différences entre les différents analyseurs Markdown.

Développement

GribStream : Une API rapide et efficace d’historique de prévisions météorologiques

2024-12-20

GribStream est une API rapide, efficace et facile à utiliser pour accéder à l’historique des prévisions météorologiques. Elle exploite les données du National Blend of Models (NBM) et du Global Forecast System (GFS) pour fournir un accès à une quantité massive de données météorologiques historiques. Une seule requête HTTP permet de récupérer des dizaines de milliers de points de données horaires sur plusieurs mois en quelques secondes. L’API prend en charge divers formats de sortie (CSV, Parquet, JSON, etc.) et des requêtes de localisation. Son prix compétitif et ses fonctionnalités puissantes permettent aux développeurs d’accéder facilement aux données dont ils ont besoin sans avoir à les télécharger et à les archiver.

Introduction à NDEF : Le langage NFC

2024-12-19

Ce chapitre présente le format d'échange de données Near Field Communication (NFC) (NDEF), la langue commune aux dispositifs et aux étiquettes NFC. NDEF est un format binaire structuré en messages, chacun contenant plusieurs enregistrements. Chaque enregistrement est composé d'un en-tête (métadonnées) et d'une charge utile (contenu). Le chapitre détaille la structure des enregistrements NDEF, notamment le format de nom de type, le type de charge utile, l'identificateur de charge utile et la charge utile, et montre comment écrire et lire des messages formatés NDEF à l'aide d'applications Android. Il aborde également les limites de taille des messages NDEF et le découpage des enregistrements pour les charges utiles plus volumineuses. Enfin, une application exemple montre comment créer une application simple d'écriture d'étiquettes NFC à l'aide du plugin PhoneGap-NFC, en écrivant des messages NDEF sur des étiquettes pour lancer l'application Foursquare.

Développement

Développement piloté par les types : comment les types simplifient les problèmes de programmation complexes

2024-12-19

Cet article explore le concept de « développement piloté par les types », où l’auteur, s’appuyant sur son expérience avec le vaste projet Heartbeat en Typescript (plus de 300 000 lignes), montre comment le système de types de Typescript simplifie les problèmes de programmation complexes. L’idée principale est qu’en tirant pleinement parti du système de types, en permettant aux types de circuler librement dans toutes les couches de l’application, en commençant les nouvelles fonctionnalités par des définitions de types, en rendant les états illégaux impossibles à représenter, en analysant au lieu de valider les données et en maintenant l’honnêteté et la spécificité du code, les bogues sont considérablement réduits et l’efficacité du développement est améliorée. L’auteur partage également des techniques pour utiliser les fonctions pures comme ponts de types et le système de types comme outil d’introspection, tout en reconnaissant la nécessité occasionnelle de contourner les contraintes du système de types.

Clay : Une bibliothèque de mise en page UI robuste

2024-12-19

Clay est une bibliothèque de mise en page UI légère pour construire des interfaces utilisateur réactives et accessibles. Son API propre et intuitive permet aux développeurs de créer facilement des mises en page complexes tout en maintenant la maintenabilité et la lisibilité du code. Clay privilégie les performances et l'accessibilité, garantissant des temps de chargement rapides et une convivialité grâce à un code simplifié et une architecture bien conçue. Que ce soit pour créer des mises en page de pages simples ou des applications interactives complexes, Clay permet aux développeurs de construire des interfaces utilisateur de haute qualité de manière efficace.

CCState : Une bibliothèque légère et flexible de gestion d’état

2024-12-19

CCState est une bibliothèque légère, sémantiquement claire et flexible de gestion d’état, conçue pour les applications monopage de taille moyenne à grande ayant des besoins complexes de gestion d’état. Elle repose sur trois types de données de base : calculé, commande et état, offrant une API simple et intuitive avec une couverture de test à 100 %. Indépendante du framework, CCState fonctionne parfaitement avec React, Vanilla JS et d’autres frameworks d’IU, offrant des performances ultrarapides, surpassant Jotai dans divers scénarios. Les API principales – `state`, `computed` et `command` – gèrent respectivement les unités de valeur de base, les calculs dérivés et les effets secondaires. Les hooks React tels que `useGet`, `useSet`, `useLoadable` et `useResolved` simplifient l’accès aux données et la gestion des valeurs Promise. CCState offre également des fonctionnalités d’abonnement pour des mises à jour réactives.

Démarrage rapide avec TideCloak : application React sécurisée en 10 minutes

2024-12-19

TideCloak est un système de gestion des identités et des accès facile à utiliser, basé sur Keycloak et sécurisé par la structure de cybersécurité de Tide. Ce guide vous montre comment créer une application React monopage sécurisée avec TideCloak en moins de 10 minutes. Tout d’abord, installez Docker et NPM, puis exécutez le conteneur Docker TideCloak-Dev. Après avoir activé une licence gratuite pour les développeurs, créez votre projet React, installez les dépendances et exécutez l’application. Les utilisateurs peuvent se connecter, s’inscrire et afficher du contenu personnalisé en fonction des rôles prédéfinis, le tout géré par TideCloak et protégé par la structure de cybersécurité de Tide.

Développement Gestion des identités

mizu.js : Une bibliothèque légère de modèles HTML pour le rendu côté client et serveur

2024-12-19

mizu.js est une bibliothèque légère de modèles HTML prenant en charge le rendu côté client et serveur. Sa syntaxe simple, proche de JavaScript et HTML natifs, offre une courbe d'apprentissage douce. Dotée d'un ensemble riche de directives pour le rendu conditionnel, les boucles, la liaison de données et les requêtes HTTP, mizu.js permet de construire divers types d'applications web : applications monopage, sites statiques et pages dynamiques, sans processus de build complexes. Sa flexibilité et sa simplicité en font un choix idéal pour les petits et les grands projets.

Démo WebGPU Sponza : Une présentation graphique époustouflante dans le navigateur

2024-12-19

La démo WebGPU Sponza, créée par Georgi Nikolov, met en valeur les capacités graphiques impressionnantes de l'API WebGPU. Les utilisateurs peuvent naviguer dans la scène à l'aide du clavier et de la souris. Cependant, cette démo nécessite un navigateur moderne prenant en charge l'API WebGPU. Actuellement, Chrome 113+, les versions nocturnes récentes de Firefox et Safari Technology Preview prennent en charge WebGPU. Mettez à jour votre navigateur vers la dernière version pour profiter de cette démo visuellement impressionnante.

Proxmox Datacenter Manager : Sortie de la version alpha

2024-12-19

Proxmox a publié une version alpha préliminaire de son gestionnaire de centre de données. Ce logiciel vise à centraliser la gestion de tous vos nœuds et clusters, offrant des fonctionnalités de base telles que la migration de machines virtuelles sans nécessiter de réseau de cluster. Développé entièrement en Rust, de l'API backend aux outils CLI en passant par une nouvelle interface utilisateur, il dispose d'une interface web moderne pour une vitesse et une compatibilité améliorées. Cette version alpha a pour objectif de recueillir les commentaires des utilisateurs, de tester les fonctionnalités principales et de favoriser la collaboration. Bien que certaines fonctionnalités soient incomplètes et que des bogues soient attendus, il est déjà capable de gérer des milliers d'hôtes distants et de machines virtuelles.

Un programmeur transforme des images de films en art grâce à l'IA

2024-12-19

Un programmeur a utilisé les bibliothèques Python, OpenCV et PIL pour transformer des images de films en œuvres d'art uniques. En extrayant des images de vidéos, en compressant les couleurs et en générant des images de code-barres et d'« iris » circulaires, le projet, 'Movie Iris', visualise l'évolution des thèmes de couleurs d'un film. Le code open source peut traiter n'importe quelle vidéo, transformant des moments quotidiens en art.

Développement traitement d'images art IA

Nullboard : Un tableau Kanban minimaliste pour une utilisation hors ligne

2024-12-19

Nullboard est un tableau Kanban minimaliste qui privilégie la compacité et la lisibilité. Application web monopage, il stocke toutes les données localement, permettant une utilisation hors ligne avec une fonctionnalité d'importation/exportation JSON. Avec des fonctions de glisser-déposer, d'enregistrement automatique et d'annulation/refaire, Nullboard offre une gestion efficace des tâches. Né de la frustration du développeur face aux outils existants, c'est une solution auto-construite désormais partagée en open source.

Retis : Traçage des paquets dans la pile réseau Linux

2024-12-19

Retis est un outil puissant utilisant des sondes eBPF pour tracer les paquets dans la pile réseau Linux. Il interagit avec les chemins de contrôle et de données tels qu'Open vSwitch et Netfilter, ce qui le rend précieux pour le débogage des problèmes réseau, l'exploration de la pile réseau Linux ou les tests de fonctionnalités réseau. Retis offre le filtrage et le suivi des paquets, récupérant des métadonnées et des informations contextuelles au-delà du paquet lui-même. Aucune compilation sur le système cible n'est requise, et des capacités de post-traitement, telles que la reconstruction du trajet d'un paquet, sont incluses. Facile à utiliser avec des profils prédéfinis et la prise en charge des sondes et des filtres personnalisés, Retis offre flexibilité et simplicité d'utilisation.

Botan : Une boîte à outils de cryptographie C++ moderne

2024-12-19

Botan est une bibliothèque de cryptographie C++ puissante et open source, publiée sous la licence BSD simplifiée permissive. Son objectif est d'être la meilleure option pour la cryptographie en C++, offrant des outils pour implémenter divers systèmes tels que le protocole TLS, les certificats X.509, les chiffrements AEAD modernes, le support matériel PKCS#11 et TPM, le hachage de mots de passe et les schémas cryptographiques post-quantiques. Un lien Python est inclus, et d'autres liens de langue sont disponibles. Une interface en ligne de commande riche en fonctionnalités est également fournie. La dernière version est la 3.6.1 et est disponible via de nombreuses distributions, notamment Fedora, Debian, Arch et Homebrew.

Développement Cryptographie

Trofaf : Un générateur de blog statique simple et en direct en Go

2024-12-19

Trofaf est un générateur de blog statique simple et en direct écrit en Go. Il ne nécessite que trois répertoires (posts, public, templates) et génère un site web statique à partir de fichiers markdown et de métadonnées front matter, se mettant à jour automatiquement dès que des modifications sont détectées. Il offre des options en ligne de commande pour la personnalisation et privilégie la simplicité plutôt que des fonctionnalités étendues, ce qui le rend idéal pour les utilisateurs à la recherche d'une solution de blog simple.

2 4 5 6 7 8