Category: Développement

Apprivoiser les systèmes complexes : leçons d’Uber à Google

2025-05-15
Apprivoiser les systèmes complexes : leçons d’Uber à Google

Cet article détaille les expériences de l’auteur en ingénierie logicielle chez un concurrent d’Uber et chez Google, en différenciant les problèmes complexes des systèmes complexes. Les problèmes complexes suivent des solutions structurées et répétables, tandis que les systèmes complexes exigent de l’adaptabilité et des approches innovantes. L’article approfondit cinq caractéristiques des systèmes complexes : le comportement émergent, les conséquences différées, le piège de l’optimisation locale, l’hystérésis et la non-linéarité. Des stratégies pour une exploitation efficace dans des environnements complexes sont partagées, notamment la priorisation des décisions réversibles, la définition des bonnes métriques, l’adoption de l’innovation, l’exploitation des meilleures pratiques (flags de fonctionnalités, lancements canary, déploiements progressifs, tests shadow) et l’accent sur l’observabilité, les tests de simulation et l’apprentissage automatique. Enfin, l’auteur souligne l’importance de la collaboration d’équipe dans les systèmes complexes.

Développement

Apple lance des avertissements pour les applications utilisant des systèmes de paiement externes dans l'UE

2025-05-15

Apple a commencé à émettre des avertissements pour les applications dans l'UE qui utilisent des systèmes de paiement externes au lieu des achats intégrés (IAP). L'avertissement apparaît en évidence en haut de la liste de l'App Store, même après qu'une application a été installée et mise à jour. Cela a suscité des inquiétudes chez les développeurs, malgré la loi sur les marchés numériques (DMA) de l'UE qui interdit les écrans d'avertissement au moment de l'achat. Apple définit trois niveaux d'avertissement sous macOS, et l'avertissement de paiement externe utilise le niveau le plus élevé, « critique ». Cependant, les développeurs se demandent combien d'utilisateurs remarqueront ces avertissements, car les applications peuvent se mettre à jour automatiquement, ajoutant la fonctionnalité de paiement externe sans que les utilisateurs aient à revenir sur l'App Store.

Webhook Tester : Déboguer les requêtes HTTP sans code backend

2025-05-15

Webhook Tester est une plateforme légère permettant aux développeurs de créer des points de terminaison webhook temporaires pour inspecter et déboguer les requêtes HTTP en temps réel. Intégrez-vous à Stripe, GitHub, Twilio ou tout service personnalisé et obtenez une visibilité complète des requêtes. Capturez les en-têtes, les paramètres de requête, les corps de requête et plus encore, le tout sans code backend. Personnalisez les réponses, simulez des retards et rejouez les requêtes sur vos propres serveurs.

Développement Requêtes HTTP

arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

2025-05-15
arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

arXivLabs est un framework 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 des utilisateurs. arXiv s'engage à respecter ces valeurs et ne travaille qu'avec des partenaires qui les partagent. Vous avez une idée de projet qui apportera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

AutoGenLib : La bibliothèque Python qui génère du code à la demande

2025-05-15
AutoGenLib : La bibliothèque Python qui génère du code à la demande

AutoGenLib est une bibliothèque Python qui utilise l'API d'OpenAI pour générer du code dynamiquement. Importez un module ou une fonction inexistant, et AutoGenLib le créera en fonction de votre description de haut niveau. Il est conscient du contexte, améliore progressivement les modules existants, analyse le code effectuant l'importation pour un meilleur contexte et gère même les exceptions avec des suggestions. Générez rapidement des fonctions telles que des générateurs TOTP et des processeurs de données, mais n'oubliez pas : cela nécessite une connexion Internet et dépend de l'API d'OpenAI ; le code généré doit être revu avant utilisation en production.

Développement

Mise à jour majeure de MicroPython : ROMFS, port Alif et plus encore

2025-05-15
Mise à jour majeure de MicroPython : ROMFS, port Alif et plus encore

La dernière version de MicroPython offre de nombreuses améliorations intéressantes, notamment la finalisation de la fonctionnalité ROMFS. Cela permet d'exécuter du bytecode directement à partir de la mémoire en lecture seule, ce qui se traduit par des temps d'importation considérablement plus rapides et une utilisation réduite de la mémoire. Cette version introduit également la prise en charge des MCU Alif Ensemble, ainsi que des améliorations de l'assembleur RISC-V, de Datagram TLS et de l'outil mpremote. De nombreux ports ont été mis à jour, notamment une prise en charge améliorée pour ESP32, MIMXRT, RP2 et STM32, ainsi que l'ajout de nombreuses nouvelles cartes.

Développement

La NASA publie un outil de révision par les pairs open source pour améliorer le développement de logiciels

2025-05-15
La NASA publie un outil de révision par les pairs open source pour améliorer le développement de logiciels

Le Centre spatial Stennis de la NASA a publié son premier logiciel open source : un outil de révision par les pairs conçu pour rationaliser et améliorer le développement collaboratif d’applications logicielles. Construit à partir d’années d’expérience interne utilisant LabVIEW, l’outil automatise certaines étapes du processus de révision, améliorant la comparaison de code et la fonctionnalité des commentaires. Cela conduit à une meilleure qualité des logiciels et à un développement plus efficace. Désormais disponible au public, l’outil se veut un projet communautaire, constamment affiné et amélioré par les développeurs du monde entier.

Développement révision par les pairs

Migration de CockroachDB vers PostgreSQL : 110 000 $ d’économies annuelles

2025-05-14
Migration de CockroachDB vers PostgreSQL : 110 000 $ d’économies annuelles

Une entreprise a rencontré des problèmes de latence élevée avec CockroachDB, des requêtes SQL complexes entraînant une dégradation des performances et des difficultés à annuler les requêtes. Elle a finalement migré vers PostgreSQL. Le processus de migration a duré plusieurs semaines, impliquant la création d’un outil ETL personnalisé et la transformation des données, mais a finalement permis de migrer la base de données de production en 15 minutes, ce qui a entraîné une réduction de 33 % de la latence des requêtes et plus de 110 000 $ d’économies annuelles.

Développement

NordVPN apporte enfin une interface graphique à Linux

2025-05-14
NordVPN apporte enfin une interface graphique à Linux

Pendant des années, le client Linux de NordVPN était uniquement en ligne de commande, laissant beaucoup à désirer en termes d'expérience utilisateur. Des concurrents comme Surfshark et ExpressVPN avaient déjà lancé des interfaces graphiques. Maintenant, NordVPN a enfin rattrapé son retard en lançant sa propre interface graphique pour Linux. Cela permet aux utilisateurs de se connecter, de configurer les paramètres et de personnaliser les thèmes avec des clics au lieu de commandes, améliorant considérablement la facilité d'utilisation. La nouvelle interface est construite sur la base de ligne de commande existante, préservant la sécurité et la fiabilité tout en ajoutant l'interface graphique très demandée. La plupart des fonctionnalités sont facilement accessibles via l'interface graphique, seules quelques outils avancés restant uniquement en ligne de commande. Cette mise à jour répond aux lacunes précédentes de NordVPN en termes d'expérience utilisateur Linux, l'alignant sur les autres plates-formes.

Développement

Astuces de métaprogrammation C++ : optimisation des performances d’accès aux variantes

2025-05-14

Cet article explore l’optimisation des performances d’accès à `std::variant` en C++ à l’aide de techniques de métaprogrammation, dans le but d’atteindre une efficacité comparable à des instructions `switch` écrites manuellement. Plusieurs approches sont comparées, notamment les tables de saut, les tables de répartition, les macros, les `switch` récursifs et les plis en court-circuit, en analysant leurs avantages, inconvénients et stratégies d’optimisation du compilateur. Finalement, une solution combinant les plis en court-circuit et les instructions d’extension attendues pour C++26 est présentée, permettant un accès générique efficace et évitant les goulots d’étranglement de performance.

Développement

Stack AI recherche des ingénieurs 10x : Construction d'une plateforme d'applications basée sur l'IA

2025-05-14
Stack AI recherche des ingénieurs 10x : Construction d'une plateforme d'applications basée sur l'IA

Stack AI, une entreprise d'IA fondée par deux docteurs du MIT et soutenue par Y Combinator et Google, recherche des ingénieurs 10x. Ils ont développé une plateforme sans code intégrant des modèles d'IA tels qu'OpenAI et Anthropic, ainsi que diverses sources de données, dans le but de démocratiser la création d'applications d'IA. Avec plus de 85 000 utilisateurs et plus de 300 clients payants, ils ont besoin d'experts qualifiés en Python, bases de données, AWS et conteneurisation pour construire des systèmes back-end évolutifs et intégrer des modèles d'IA. Les candidats idéaux possèdent de solides compétences en résolution de problèmes, un excellent esprit d'équipe et une passion pour l'IA.

Le Problème de la Verbosité : Pourquoi les LLMs Génèrent du Code Gonflé

2025-05-14
Le Problème de la Verbosité : Pourquoi les LLMs Génèrent du Code Gonflé

Cet article explore le problème des grands modèles de langage (LLMs) qui génèrent du code excessivement verbeux et inefficace. L'auteur soutient que le modèle de tarification basé sur les jetons de nombreux assistants de codage IA incite à la génération de code long, même s'il est moins efficace. Cela est dû au fait que plus de jetons traités signifient plus de revenus. L'auteur décrit des stratégies pour atténuer ce problème, notamment en forçant la planification avant le codage, en implémentant des protocoles d'autorisation stricts, en utilisant Git pour l'expérimentation et l'élagage impitoyable, et en utilisant des modèles moins chers. La solution ultime, propose l'auteur, est que les entreprises d'IA modifient leurs incitations économiques pour privilégier la qualité du code plutôt que le nombre de jetons.

Développement Incitations Économiques

TwoFold : rendre les fichiers texte ordinaires dynamiques

2025-05-14
TwoFold : rendre les fichiers texte ordinaires dynamiques

TwoFold est une petite application en ligne de commande qui permet aux fichiers texte ordinaires de se comporter comme des fichiers dynamiques. C'est un hybride entre un expanseur de texte et un moteur de modèles, inspiré par Emacs Org-mode, Python Jupyter Notebooks et React JS. TwoFold traite les fichiers texte, identifie les balises de type LISP/XML et les transforme en sorties utiles. Il est compatible avec les documents XML et HTML, mais les marqueurs de balises sont personnalisables. Il peut surveiller les modifications des fichiers, permettant une collaboration en temps réel pour des tâches telles que la validation des données, les calculs statistiques ou la vérification orthographique. TwoFold prend en charge divers types de fichiers (.txt, Markdown, Emacs Org, reStructured Text, HTML, XML et fichiers de code source), mais pas les fichiers binaires. Il s'exécute à l'aide de Bun et permet aux utilisateurs de créer et de charger facilement des balises personnalisées.

Développement moteur de modèles

Automatisation des illustrations de manuels de physique avec MetaPost

2025-05-14
Automatisation des illustrations de manuels de physique avec MetaPost

Face à la tâche ardue de créer des centaines de diagrammes pour un manuel de physique, l'auteur a cherché une solution plus efficace que les éditeurs de graphiques vectoriels traditionnels. MetaPost est apparu comme la solution, permettant de définir les illustrations comme des fonctions de variables, simplifiant ainsi les ajustements et la réutilisation des éléments. L'article détaille le processus de création de diverses formes (courbes, sphères, tubes, etc.) et de textures à l'aide de MetaPost, en fournissant des exemples de code. Malgré l'annulation du manuel, la bibliothèque de code améliorée a été open-sourcée, offrant un outil polyvalent pour générer des diagrammes liés à la physique.

Développement dessin automatisé

Améliorations de l'accessibilité de GNOME 48 : AccessKit, raccourcis Orca et plus

2025-05-14

GNOME 48 présente des améliorations significatives en matière d'accessibilité. GTK 4.18 intègre le backend AccessKit, permettant pour la première fois des applications GTK accessibles sous Windows et macOS. La prise en charge des raccourcis clavier du lecteur d'écran Orca sous Wayland est désormais complète, comblant une importante lacune en matière d'accessibilité. De plus, l'accessibilité de WebKitGTK a été améliorée, faisant de GNOME Web un navigateur entièrement accessible et sandboxé. Le nouvel outil d'accessibilité, Elevado, a également été publié, offrant aux développeurs un nouveau moyen d'explorer et d'inspecter les fonctionnalités d'accessibilité des applications. De nombreuses petites améliorations améliorent l'accessibilité dans GTK et les bibliothèques associées, notamment des améliorations du sélecteur de fichiers, des boîtes de liste, de la détection de la taille des boutons et des rapports d'attributs de texte.

Développement

Journal de chargement des modules principaux de Lively Web

2025-05-14

Ce journal montre le processus de chargement des modules principaux de Lively Web, affichant les temps de chargement de différents modules JavaScript. Les temps de chargement varient de 78 ms à 555 ms, couvrant divers aspects tels que les outils IDE, les outils réseau et les composants d'interface utilisateur. Cela reflète l'architecture modulaire et l'environnement d'exécution de Lively Web.

Développement chargement de modules

Git-Bug : Révolutionner la gestion des problèmes dans les référentiels Git

2025-05-14
Git-Bug : Révolutionner la gestion des problèmes dans les référentiels Git

Git-Bug est un outil de gestion des problèmes autonome, distribué et priorisant le mode hors ligne qui intègre les problèmes, les commentaires et plus encore directement dans votre référentiel Git (pas en tant que fichiers !), permettant de pousser et de tirer sur plusieurs serveurs distants. Tirant parti de l'architecture décentralisée de Git, il permet de travailler hors ligne et une synchronisation transparente, avec des capacités de recherche ultra-rapides. Il s'intègre à des plateformes telles que GitHub et GitLab via des ponts et offre des interfaces flexibles (CLI, TUI, web). Créé par Michael Muré et maintenu par une communauté dynamique, il est publié sous la licence GPLv3 ou ultérieure.

Serveur NetBSD et conflits dans une entreprise familiale : une bataille de confiance et de technologie

2025-05-14
Serveur NetBSD et conflits dans une entreprise familiale : une bataille de confiance et de technologie

Il y a seize ans, l’auteur a été contacté par un ami pour aider une entreprise familiale à mettre en place un système informatique afin de résoudre sa situation financière chaotique. Il a créé un serveur basé sur NetBSD pour intégrer les données de l’entreprise, mais s’est heurté à une forte opposition de la part d’un membre de l’entreprise qui a tenté de supprimer les données du serveur pour dissimuler des problèmes financiers. L’auteur a fini par découvrir le complot grâce à d’anciennes relations, mais le serveur a tout de même été détruit. Malgré cela, l’auteur a protégé les données de l’entreprise grâce à des sauvegardes anticipées, mais a finalement décidé de quitter l’entreprise familiale car la direction était incapable de résoudre la corruption interne. Cette histoire raconte un conflit impliquant la confiance, la technologie et l’éthique, et la réalité frustrante selon laquelle certains problèmes sont tout simplement insolubles.

Développement dilemme éthique

Séquencement des tâches piloté par l'ingénierie : livraison plus rapide et plus de valeur

2025-05-14

Cet article présente une approche du séquencement des tâches pilotée par l'ingénierie qui aide les équipes à livrer plus de valeur, plus rapidement. Traditionnellement, les chefs de produit déterminent l'ordre des tâches en fonction du PRD. Cependant, les ingénieurs comprennent mieux le coût et les dépendances des tâches. Une meilleure approche consiste à ce que les ingénieurs hiérarchisent les tâches en fonction de leur valeur, de leur coût et de leur faisabilité, voire à reformuler les solutions pour réduire les coûts. Par exemple, l'étude de cas montre un ingénieur optant pour un e-mail hebdomadaire au lieu de construire un tableau de bord complexe, livrant une partie de la valeur avant de s'attaquer à des tâches plus complexes. Cela améliore considérablement la réalisation de la valeur, permettant aux équipes de créer plus de valeur en moins de temps.

Développement

GitHub durcit les limites de taux pour les requêtes non authentifiées

2025-05-14
GitHub durcit les limites de taux pour les requêtes non authentifiées

GitHub met à jour les limites de taux pour les requêtes non authentifiées afin d'améliorer la sécurité et la stabilité de la plateforme. Cela affecte des opérations telles que le clonage de référentiels via HTTPS, l'accès anonyme aux API REST et le téléchargement de fichiers depuis raw.githubusercontent.com. La récente augmentation de l'activité de scraping de l'API a motivé cette mise à jour pour protéger la plateforme et garantir une expérience fiable pour les développeurs du monde entier. Les utilisateurs non authentifiés peuvent rencontrer de nouvelles limites de taux, tandis que les utilisateurs authentifiés conserveront des limites plus élevées. GitHub encourage l'authentification pour un accès cohérent et fiable.

Réplication de base de données distribuée utilisant SWIM et BadgerDB

2025-05-14
Réplication de base de données distribuée utilisant SWIM et BadgerDB

Cet article détaille un schéma de réplication de base de données distribuée utilisant le protocole SWIM et la fonctionnalité de sauvegarde incrémentale de BadgerDB. En utilisant le paquet memberlist de Hashicorp et son mécanisme TCP Push/Pull, les nœuds calculent périodiquement leur état local et l'envoient aux autres nœuds. Les nœuds distants fusionnent l'état distant avec leur état local, déclenchant le processus de réplication. L'état d'un nœud est défini comme l'ensemble des dernières versions connues des autres nœuds. Lorsqu'un nœud reçoit un état, il envoie des requêtes HTTP au nœud distant, synchronisant concurremment les sauvegardes incrémentales des bases de données auth, config et log, réalisant ainsi une réplication effective.

Développement réplication protocole SWIM

Microsoft SAM TTS : Le retour de la voix emblématique de Windows XP

2025-05-14

Vous vous souvenez de la voix robotique emblématique de Windows XP ? Microsoft SAM Texte-à-parole est de retour, désormais sous forme d'une implémentation JavaScript pour votre navigateur ! Cette version moderne recrée fidèlement la voix classique de Windows XP, fonctionnant entièrement côté client pour garantir la confidentialité et l'utilisation hors ligne. Personnalisez la hauteur, la vitesse et d'autres paramètres pour créer des variations, allant de minuscules lutins à des robots géants. Revivez la nostalgie de l'informatique du début des années 2000 !

Développement texte-à-parole

Application Android Nextcloud bloquée : Google révoque l’accès au téléchargement de fichiers

2025-05-14
Application Android Nextcloud bloquée : Google révoque l’accès au téléchargement de fichiers

Nextcloud, une plateforme cloud auto-hébergée, ne peut pas télécharger de fichiers autres que des fichiers multimédias sur son application Android depuis mi-2024. Google a refusé de rétablir les autorisations d’accès nécessaires, invoquant des préoccupations relatives à la confidentialité, ce qui a un impact significatif sur l’expérience utilisateur. L’équipe Nextcloud affirme avoir tenté de communiquer avec Google, sans succès. Ce problème entrave la synchronisation et le téléchargement de fichiers, rendant difficile pour Nextcloud de remplacer complètement Google Workspace.

Développement

Exploitation d'une vulnérabilité de confusion de types dans le démon coreaudiod de macOS

2025-05-14
Exploitation d'une vulnérabilité de confusion de types dans le démon coreaudiod de macOS

Cet article de blog détaille le parcours de l'auteur dans la découverte et l'exploitation d'une vulnérabilité de confusion de types à haut risque dans le démon système coreaudiod de macOS. Utilisant un harnais de fuzzing personnalisé, une instrumentation dynamique et une analyse statique, l'auteur, un ingénieur sécurité de Google Project Zero, a découvert une vulnérabilité d'échappement de sandbox. La recherche a employé une approche de fuzzing dirigée par les connaissances, combinant le fuzzing automatisé avec une rétro-ingénierie manuelle ciblée. La vulnérabilité, CVE-2024-54529, a depuis été corrigée par Apple.

Le HDR révolutionnaire de Halide : démystifier la photographie HDR

2025-05-14
Le HDR révolutionnaire de Halide : démystifier la photographie HDR

Les développeurs de l'application photo Halide se penchent sur les idées fausses concernant la photographie HDR. Les modes HDR traditionnels (comme le « mode HDR » de l'iPhone) sont en fait des compositions de plusieurs photos avec un mappage de tonalité, et non du véritable HDR, ce qui entraîne une perte de détails et des artéfacts artificiels. L'article présente le nouveau traitement HDR en une seule prise de Halide, inspiré des techniques traditionnelles de chambre noire, telles que l'esquive et le brûlage. Cela donne aux utilisateurs un contrôle granulaire sur le mappage de tonalité, préservant les détails et offrant diverses options d'affichage HDR. L'article examine également l'état actuel et les défis de la technologie d'affichage HDR.

Blacksmith : Comment une plateforme CI serverless atteint la rentabilité grâce à la multilocation

2025-05-14
Blacksmith : Comment une plateforme CI serverless atteint la rentabilité grâce à la multilocation

Blacksmith, une startup YC, a construit une plateforme cloud serverless pour les charges de travail CI. Initialement, elle s'appuyait sur des simulations pour projeter ses marges, jusqu'à découvrir les avantages économiques de la multilocation. En tirant parti de la nature sporadique des charges de travail CI – tâches de courte durée (5 à 40 minutes) et clients géographiquement dispersés – Blacksmith utilise efficacement ses ressources serveur. Sa flotte de centaines de CPU de jeu bare-metal, virtualisées avec Firecracker, crée et détruit des microVM à la demande. Plus de clients signifient plus d'activité aléatoire, ce qui lisse le fonctionnement global, réduit le coût de service de chaque tâche et augmente les marges bénéficiaires. L'article détaille la rentabilité à différents niveaux d'utilisation et l'impact des fuseaux horaires et de la géographie sur l'utilisation des ressources, démontrant ainsi le pouvoir économique de son modèle multilocation.

Développement multilocation

acmsg : Générateur de messages de commit Git alimenté par l'IA

2025-05-14
acmsg : Générateur de messages de commit Git alimenté par l'IA

acmsg est un outil CLI basé sur Python qui utilise l'API OpenRouter et des modèles d'IA pour générer automatiquement des messages de commit Git. Il analyse les modifications en attente dans votre dépôt Git, génère des messages de commit contextuels, prend en charge plusieurs modèles d'IA et permet de modifier le message généré. L'installation est facile via flake ou un profil autonome ; la première exécution invite à configurer le jeton de l'API OpenRouter.

Développement

Prime de 20 000 $ : Aidez à atteindre la parité entre les décodeurs AV1 rav1d (Rust) et dav1d (C) !

2025-05-14
Prime de 20 000 $ : Aidez à atteindre la parité entre les décodeurs AV1 rav1d (Rust) et dav1d (C) !

Le décodeur AV1 rav1d, écrit en Rust, est actuellement environ 5 % plus lent que son équivalent en C, dav1d. Pour combler ce manque de performance, une prime de 20 000 $ est offerte pour les contributions qui permettront à rav1d d'atteindre la parité de performance avec dav1d. Les améliorations peuvent être apportées à la base de code rav1d, au compilateur Rust ou à la bibliothèque standard Rust, mais les modifications sont soumises à des règles spécifiques (pas de modification de l'assemblage bas niveau, pas de code autre que Rust). La prime sera répartie proportionnellement en fonction des améliorations de performance obtenues.

Développement

Simplifier Ethereum : La voie vers un protocole plus robuste et sécurisé

2025-05-14

Cet article explore la nécessité et les méthodes pour simplifier le protocole Ethereum. L'auteur soutient que la simplification améliore la sécurité, réduit les coûts de développement et encourage la participation de la communauté. L'article propose d'atteindre cet objectif en simplifiant à la fois la couche de consensus (par exemple, en utilisant la finalité à 3 slots) et la couche d'exécution (par exemple, en remplaçant l'EVM par RISC-V). De plus, il suggère de partager des composants tels que les codes d'effacement, les formats de sérialisation et les structures d'arbres pour réduire encore la complexité du protocole. L'objectif final est de rendre le code critique d'Ethereum aussi simple que celui de Bitcoin, améliorant ainsi sa maintenabilité et sa sécurité à long terme.

Framework Ash : Options prédéfinies pour le développement rapide d'applications

2025-05-14
Framework Ash : Options prédéfinies pour le développement rapide d'applications

Ash est un framework de développement d'applications puissant offrant des options prédéfinies pour une création rapide d'applications. Les utilisateurs peuvent choisir des préconfigurations intégrant divers composants tels que Phoenix LiveView, GraphQL et PostgreSQL, avec la possibilité d'ajouter des fonctionnalités ultérieurement, notamment des modules d'IA, de finance et d'automatisation. Même les débutants peuvent facilement démarrer, lançant rapidement des projets via une simple installation en ligne de commande et une base de données PostgreSQL.

Développement Options prédéfinies
1 2 88 89 90 92 94 95 96 214 215