Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Sortie de Tryton 7.2

Le 1 mai 2024 sortait la version 7.2 de Tryton, un progiciel de gestion intégré modulaire et multiplate-forme.

Tryton

Tryton est basé sur une architecture trois tiers avec PostgreSQL comme base de données principale et est écrit en Python ce qui apporte une grande flexibilité pour la customisation.

Tryton vient avec un ensemble de modules essentiels pour la gestion d’une entreprise, qui sont très aboutis. Il peut être complété par des modules tierces spécifiques à certaines activités ou permettant l’intégration à d’autres outils.

Tryton est utilisable à travers un client desktop, un client web responsive et un client en ligne de commande. Tous ces clients sont légers et multiplateformes (Linux, BSD, Windows et macOS).

Comme la dernière annonce ici date de la version 6.6, voici une liste non-exhaustive d’améliorations notables:

  • Tryton peut générer des code-barres ou QR codes entre autres pour les produits. Et les clients peuvent déclencher des actions depuis le scan d’un code-barre. Cette fonctionnalité peut servir par exemple pour scanner les produits pour le point de vente ou bien pour traiter des expéditions.
  • L’autocomplétion peut se faire maintenant sur base d’une source externe. Cette fonctionnalité est utilisée pour créer des tiers en entrant simplement leur numéro de TVA. Tryton interroge le service européen VIES et préremplit le formulaire avec le nom, l’adresse et le numéro de TVA.
  • La fenêtre des logs d’un enregistrement contient désormais une entrée pour chaque action ou modification faite par l’utilisateur.
  • Les clients tirent profit de la lecture imbriquée (c’est-à-dire de pouvoir lire dans le même appel le contenu des champs relation de type One2Many ou Many2Many). Ainsi l’ouverture d’un formulaire qui contient des listes ne requière plus qu’un seul appel pour l’affichage. Ceci n’est fait que pour les listes qui sont visibles par défaut, celles qui sont cachées dans des onglets, ne sont lues que quand l’utilisateur active celui-ci.
  • Le temps d’exécution de certains appels RPC dépend des paramètres entrés par l’utilisateur (ex: une recherche sur plusieurs critères). Afin de prémunir le serveur contre un déni de service, ces appels sont protégés par un timeout.
  • Les utilisateurs qui ont une adresse de courrier électronique peuvent à présent demander une réinitialisation de mot de passe depuis l’interface de login sans devoir passer par un administrateur.

Depuis la version 6.6, de nouveaux modules ont été ajoutés, notamment:

Commentaires : voir le flux Atom ouvrir dans le navigateur

RustPython – Python puissance Rust

Par : Korben

Un interpréteur Python 3 flambant neuf, entièrement réécrit en Rust, ça claque, non ? Pour ceux qui hibernent, Rust, c’est le langage de programmation qui monte, qui monte et qui cartonne notamment grâce à sa rapidité légendaire et son bon niveau de sécurité.

Et en fusionnant avec Python, on obtient le meilleur des deux mondes, puisque ça permet d’utiliser Python comme un langage de script dans vos applications Rust. Vous pourrez ainsi, grâce à RustPython, profiter de la simplicité et de l’expressivité de Python, tout en bénéficiant des performances et de la robustesse de Rust.

RustPython peut aussi être compilé en WebAssembly, ce qui permet d’avoir du Python directement dans votre navigateur, sans installer quoi que ce soit et ainsi, votre code s’exécutera à la vitesse de la lumière. Évidemment ce projet est open-source et libre comme l’air et pour l’utiliser, c’est simple comme bonjour.

Tout d’abord, assurez-vous d’avoir installé Rust sur votre machine. Si ce n’est pas le cas, filez sur rustup.rs dare-dare ! Ensuite, clonez le dépôt GitHub de RustPython :

git clone https://github.com/RustPython/RustPython

Placez-vous dans le répertoire RustPython fraîchement cloné, puis lancez la démo :

cd RustPython
cargo run --release demo_closures.py

Et voilà, vous venez d’exécuter du code Python à la vitesse du son grâce à RustPython ! Notez que cet outil dispose également d’un compilateur JIT expérimental qui compile les fonctions python en code rust natif.

Si vous avez envie d’en savoir plus, rendez-vous sur https://rustpython.github.io.

Source

Faille RCE critique dans llama-cpp-python – Plus de 6000 modèles d’IA affectés

Par : Korben

Imaginez télécharger un modèle d’IA apparemment inoffensif sur une plateforme de confiance comme Hugging Face et découvrir qu’il ouvre en fait une porte dérobée permettant à des attaquants de prendre le contrôle de votre système ! C’est le risque que pose la faille critique CVE-2024-34359, découverte récemment dans le célèbre package Python llama-cpp-python.

Ce package très utilisé permet d’intégrer facilement des modèles d’IA écrits en C++ dans des projets Python. Pour cela, il utilise la bibliothèque de templates Jinja2 qui est capable de faire un rendu dynamique du HTML à partir des données. Une lib surpuissante mais potentiellement risquée si c’est mal configuré !

Et c’est justement là que le bât blesse. Le package llama-cpp-python utilise Jinja2 pour traiter les métadonnées des modèles au format .gguf, mais sans activer les protections nécessaires comme le bac à sable. Du coup, en injectant un template malicieux dans les métadonnées d’un modèle, un pirate peut exécuter du code arbitraire sur le système hôte !

Les dégâts potentiels sont énormes : vol de données, prise de contrôle totale, interruption de services… Surtout que les systèmes IA manipulent souvent des données ultra sensibles. Et vu la popularité de llama-cpp-python, l’impact est massif : plus de 6000 modèles vulnérables rien que sur Hugging Face ! Selon un article détaillé de Checkmarx, cette faille permet des attaques de la chaîne d’approvisionnement, où un acteur malveillant peut injecter du code dans un modèle téléchargé et redistribuer ce modèle compromis pour attaquer les développeurs d’IA.

Découverte par Patrick Peng (alias retro0reg), cette vulnérabilité repose comme je vous l’expliquait sur une mauvaise implémentation du moteur de templates. Cette faille de score CVSS critique de 9.7, permet l’injection de template côté serveur, conduisant à une exécution de code à distance (RCE). Un proof-of-concept a même été publié sur Hugging Face, démontrant comment un modèle compromis peut exécuter du code arbitraire lorsqu’il est chargé ou lors d’une session de chat.

Cela met en lumière un problème plus large : la sécurité des systèmes d’IA est intimement liée à celle de leur chaîne logicielle. Une vulnérabilité dans une dépendance tierce peut compromettre tout un système. Il faut donc redoubler de vigilance à tous les niveaux. Les modèles d’IA étant souvent utilisés au sein de projets critiques et manipulant des volumes importants de données sensibles, la moindre faille peut avoir des conséquences catastrophiques.

Mais rassurez-vous, une solution existe ! La version 0.2.72 de llama-cpp-python corrige le tir en ajoutant une validation des entrées et un bac à sable robuste autour de Jinja2. Si vous utilisez une version antérieure, la mise à jour est plus que recommandée.

Comment savoir si vos modèles sont touchés ? Regardez s’ils utilisent :

  • Le package llama-cpp-python en version < 0.2.72
  • Le format de fichier .gguf
  • Des templates Jinja2 dans les métadonnées

Si c’est le cas, passez immédiatement à la 0.2.72 ! Vous pouvez aussi auditer le code de vos modèles et regarder les permissions avec vos yeux de lynx.

Bref, comme d’hab, une petite faille peut vite tourner au désastre

Source

Zippy – Boostez vos ebooks avec la bionification

Par : Korben

Les livres électroniques ont vraiment modifié mon rapport à la lecture… Je peux emporter toute une bibliothèque dans ma poche, acheter des livres directement depuis le kindle, prendre des notes, lire dans le noir…etc. Mais est ce que vous saviez qu’il est également possible d’optimiser encore plus votre expérience de lecture numérique grâce à la bionification ? Oui terme chelou mais je crois que c’est comme ça qu’on dit.

Je vous en ai déjà parlé y’a quelques années mais cette technique nouvelle, inspirée de recherches en sciences cognitives, consiste à mettre en gras les premières lettres des mots pour faciliter leur reconnaissance visuelle et accélérer la vitesse de lecture. Des études ont ainsi montré que notre cerveau ne lit pas lettre par lettre mais plutôt mot par mot, en se basant sur sa forme globale. Ainsi, en accentuant le début des mots, la bionification guide l’œil pour une lecture plus fluide et efficace.

Évidemment, bionifier manuellement chaque livre de votre bibliothèque serait un travail titanesque. C’est là qu’intervient Zippy, un outil en ligne de commande développé en Python qui automatise le processus pour les ebooks au format ePub. Avec juste quelques lignes de code, vous pouvez transformer n’importe quel livre en version bionique, prête à être transférée sur votre liseuse Kindle ou autre.

Pour en profiter, la première étape est de cloner le dépôt de Zippy sur GitHub :

git clone https://github.com/nimish-ks/zippy.git cd zippy

Pour éviter tout conflit intergalactique entre les dépendances Python, on va ensuite créer un environnement virtuel et y installer les bibliothèques requises via pip :

python -m venv venv source venv/bin/activate # Sous Windows, utilisez plutôt `venv\Scripts\activate` pip install -r requirements.txt

Voilà, votre laboratoire secret est fin prêt pour lancer la bionification à grande échelle ! La formule magique est la suivante :

python zippy.py <fichier_entrée> <fichier_sortie> [--algorithm <algorithme>]

Remplacez <fichier_entrée> par le chemin vers le livre ePub original et <fichier_sortie> par le nom du fichier bionifié à générer. Par exemple :

python zippy.py "Hypérion.epub" "Hypérion_Bionique.epub"

Et hop, quelques nanosecondes plus tard, vous obtenez une version dopée aux hormones de croissance de votre bouquin préféré de science-fiction ! L’algorithme de bionification par défaut, noté "- 0 1 1 2 0.4", détermine le nombre de lettres à mettre en gras en fonction de la longueur des mots et d’autres critères. Mais tel un savant fou, vous pouvez concocter votre propre formule en passant le paramètre --algorithm.

Maintenant que vous maîtrisez le pouvoir de la bionification, vous allez pouvoir dévorer « Hypérion » et tous les autres tomes du cycle d’Endymion à une vitesse supraluminique ! Fini les voyages interstellaires qui durent des plombes, les bouquins bioniques vous téléporteront en un éclair dans des univers extraordinaires.

Comme Zippy s’intègre dans votre flux de travail, vous pouvez adapter les ebooks à vos préférences avant de les transférer sur votre liseuse. Vos yeux vous diront merci !

Évidemment, en bon cyberrebelle, vous pouvez bionifier tous les ebooks qui vous passent sous la main, même ceux protégés par des DRM abusifs. Un petit coup de Calibre et de DeDRM pour les libérer, et hop, à vous la lecture augmentée !

En bidouillant un peu le code de Zippy, vous pourriez même imaginer plein d’autres optimisations à appliquer à vos bouquins voire en faire un plugin pour Calibre. Si c’est le cas, dites le moi, ça m’intéresse.

A vous de jouer !

Source

ELEGOO 4 Roues sous MicroPython avec Raspberry-Pi Pico (suite et fin)

Bonjour à tous,

il y a quelques semaines, je vous présentais un projet de conversion d'un véhicule ELEGOO vers MicroPython.

Le but étant de remplacer le codage C Arduino par du codage Python au sein de l'institut Saint-Anne de Gosselie (ISA).

Elegoo sous MicroPython - un projet MCHobby

Le projet est maintenant achevé et dispose d'une carte d'interface pour Raspberry-Pi Pico et d'une bibliothèque MicroPython. 

Si vous ne connaissez pas encore MicroPython, je vous recommande chaleureusement le livre Raspberry-Pi Pico et Pico W (aussi disponible aux editions ENI).
Le Spécial Eté du magazine Programmez.fr contiendra un dossier spécialement dédié à MicroPython et Pico.

La carte Elegoo-4WD-Pico

Les extensions et schéma présentées dans l'article précédent ont pris forme sur cette carte spécialement conçue pour ce projet.

Adaptateur ELEGOO-4WD-PICO

Une fois les divers composants installés, voici à quoi ressemble la carte une fois équipée des composants.

Adaptateur ELEGOO-4WD-PICO

Le petit connecteur Qwiic/StemmaQt en bas à gauche permet de connecter facilement des extensions compatibles Qwiic... comme par exemple un SerLCD 16x2 de SparkFun (comme sur l'imahe.

Elegoo avec Ecran SerLCD de SparkFun (interface Qwiic)

Bibliothèque

La bibliothèque micropython-elegoo-4wd permet de prendre facilement le contrôle du Rover avec quelques lignes de code Python.

La classe Rover (rover.py) permet de:

Enfin, la bibliothèque permet d'accéder de façon uniforme aux bus I2C, UART et SPI que la carte expose sur ses différents connecteurs. Ces références de bus pourront alors être utilisés avec des bibliothèques MicroPython pour contrôler du matériel via UART, bus I2C, bus SPI. La collection esp8266-upy contient de nombreux pilotes et exemples MicroPython.
Voir les exemples test_i2c.py test_serial.py, test_spi.py .

Bonne découverte
Dominique

PyConFR 2024, du 31 octobre au 3 novembre à Strasbourg

L’Association Francophone Python (AFPy) organise la PyConFR 2024 du jeudi 31 octobre au dimanche 3 novembre. Pour cette 15e édition, nous sommes accueillis par l’UFR Mathématique et d’Informatique de Strasbourg (https://mathinfo.unistra.fr/) !

Logo PyConFr 2024

Si vous ne connaissez pas la PyConFR, c’est un évènement gratuit sur 4 jours autour du langage de programmation Python. Tout d’abord, il y a deux jours de développements participatifs (sprints), puis deux jours de conférences et ateliers.

Vous pouvez proposer un sujet de sprint, de conférence ou d’atelier jusqu’au 21 juillet. Peu importe votre niveau en Python, n’hésitez pas à proposer un sujet ! Venez parler de développement logiciel, de diversité, de communauté, faire un retour d’expérience sur un outil, présenter votre projet, un domaine d’activité…

Dans un secteur aussi masculin que le développement informatique, nous proposons aux personnes habituellement peu représentées en conférence de l’aide pour trouver un sujet, rédiger la proposition de conférence, rédiger le support de conférence et pour répéter. Vous pouvez nous contacter à l’adresse diversite@afpy.org si vous pensez en avoir besoin.

Enfin, la PyConFR est entièrement financée par les sponsors. Si vous connaissez des sponsors potentiels, n’hésitez pas à leur parler de l’évènement !

Commentaires : voir le flux Atom ouvrir dans le navigateur

Naticord – Un client Discord natif en Python

Par : Korben

Vous en avez marre du client web Discord qui bouffe toute votre RAM et qui lance des mises à jours qui plantent toutes les 2 heures ? Bienvenue au club !

Heureusement, y’a un p’tit gars qui a décidé de prendre les choses en main en développant son propre client Discord en Python. Ça s’appelle Naticord (ou Native-cord), et c’est léger, personnalisable et super efficace !

Quand j’ai découvert ce projet sur GitHub, j’ai tout de suite accroché. Un client Discord qui peut tourner avec seulement 25 Mo de RAM en moyenne, contre 400 Mo pour l’app officielle dans certains cas, c’est quand même un sacré tour de force ! En plus, l’interface est inspirée de feu Windows Live Messenger (paix à son âme), avec un côté minimaliste et fonctionnel qui fait plaisir à voir, comme les bulles de conversation par exemple.

Mais attention, faut pas s’attendre à retrouver toutes les fonctionnalités de Discord non plus. Naticord se concentre sur l’essentiel :

  • Se connecter avec un token Discord
  • Voir ses amis et discuter en MP
  • Accéder aux serveurs et canaux de base
  • Envoyer des messages, des fichiers et des images
  • Basculer entre plusieurs comptes

Pas de fioritures, juste ce qu’il faut pour tchatter tranquillou avec ses potes. Et franchement, pour l’utilisation qu’on en a en général, c’est largement suffisant ! Pour l’installer, c’est pas bien compliqué. Suffit d’avoir Python et pip sous la main, et de lancer ces petites commandes magiques :

pip install PyQt5 requests

Et hop, vous êtes parés pour lancer Naticord :

python naticord.py

Évidemment, faudra quand même rentrer votre token Discord pour vous connecter (voir le tuto sur le github). Mais une fois que c’est fait, vous pourrez profiter d’une expérience allégée, sans prise de tête.

Au menu des prochaines updates, on devrait avoir droit à un meilleur support des serveurs, des photos de profil dans la liste d’amis, et même un mode dark pour ménager nos petits yeux fragiles. Le mode nuit actuel a encore quelques soucis, mais ça devrait s’arranger bientôt. Le développeur bosse aussi sur l’édition/suppression de messages, les emojis, les catégories de canaux, et qui sait, peut-être même la vidéo et les appels vocaux un de ces quatre !

En attendant, je trouve que Naticord est une excellente alternative pour ceux qui veulent un client Discord qui va droit au but, sans chichi. Par contre attention, même si personne n’a encore eu de souci, Discord pourrait très bien vous bannir pour utiliser un client tiers. Rien ne les en empêche, donc soyez conscient de ça.

Merci à Lorenper pour le partage !

❌