Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Si vous codez avec vos gros doigts boudinés toute la journée, notamment en Python, il se peut que comme 99% des codeurs, vous ne vous encombriez pas avec le formatage de votre code. Pas le temps, et l’IDE fait le minimum syndical donc ça vaaaaa.

C’est pourquoi aujourd’hui, je vous propose d’aller plus loin grâce à Black, un outil qui automatise la mise en forme de votre code Python pour qu’il soit cohérent, lisible et conforme aux normes établies notamment de PEP 8.

Pour l’installer :

pip install git+https://github.com/psf/black

Il nettoie vos merdes, mets des retours à la ligne dans vos tableaux, les fonctions, les définitions…etc., vous permet de gérer la longueur de vos lignes de code, enlève les retours à la ligne ou les points-virgules en trop, ou encore remplace les single quotes (‘) par des double quotes (« )… Et il y a encore plein d’autres petites améliorations dont vous pourrez consulter la liste ici.

black script.py

Un mode expérimental est également dispo, ce qui vous permettra de voir comment votre code sera formaté dans les prochaines versions.

black --preview script.py

Parmi les prochaines améliorations notables, on peut citer la gestion améliorée des chaînes multilignes dans les appels de fonction, où Black est désormais plus « intelligent » pour éviter d’introduire des sauts de ligne supplémentaires. En effet, avec cette nouvelle fonctionnalité, Black examine le contexte autour de la chaîne multiligne pour décider si elle doit être en ligne ou divisée en plusieurs lignes. Par exemple, lorsqu’une chaîne multiligne est passée à une fonction, Black ne divise la chaîne multiligne que si une ligne est trop longue ou si plusieurs arguments sont passés.

Il est également intéressant de noter les améliorations apportées à la gestion des parenthèses dans les dictionnaires. Désormais, pour dictionnaires avec de longues valeurs, elles sont enveloppées de parenthèses, et les parenthèses inutiles sont supprimées.

Black s’utilise donc en ligne de commande, peut aussi tourner dans un Docker et peut surtout être intégré dans vos process CI/CD pour « corriger » et formater automatiquement tout ce que vous récupérez dans les push sur le Git. Notez qu’une mesure de sécurité ralentit un peu le traitement, puisque Black vérifiera que le code reformaté produit toujours un AST (Abstract Syntax Tree) valide qui est effectivement équivalent à l’original. Si vous vous sentez en mode grosse confiance, vous pouvez utiliser le paramètre --fast pour aller encore plus vite.

Bref, c’est un excellent formateur de code qui s’intègre aussi bien dans Vim que dans Visual Studio Code ou utilisable en ligne de commande à l’ancienne comme on aime.

À découvrir ici.

Merci à Lorenper


Afin de rendre l’IA accessible à tous, y compris gratuitement puisque la plupart des modèles fonctionnent sur un système open source, une équipe de développeurs talentueux a créé Jan un outil pour les développeurs et les utilisateurs souhaitant profite d’une alternative à ChatGPT, totalement indépendante, fonctionnant hors ligne, open source et libre.

Il faut donc voir Jan comme un client de chat qui permet de télécharger des modèles comme Trinity, Mistral, Llama, OpenChat…etc. et de les faire tourner 100% hors ligne. Comme ça, pas de fuite de conversations privées ni de réutilisation de vos données pour entrainer de nouvelles IA. Et si comme moi, vous êtes accro à l’IA d’OpenAI, vous pourrez toujours y ajouter votre clé API et discuter avec ChatGPT (au tarif fixé par OpenAI évidemment).

Jan fonctionne sous Linux (Appimage et .deb dispo), sous Windows et macOS (Intel / Silicon) et propose une prise en charge des modèles open source tels que GGUF via llama.cpp, TensorRT via TensorRT-LLM ou des API externes. Jan utilise également le moteur d’inférence Nitro, des mêmes développeurs, qui se veut être rapide et léger.

Je teste ici le modèle Trinity 1.2 7B Q4 :

Et ici un modèle spécialisé en code Python nommé Wizard Coder Python 13B Q5.

Un truc cool avec Jan c’est que toutes les conversations sont conservées sur votre disque au format JSON, donc si le coeur vous en dit, vous pourrez ensuite les exploiter comme bon vous semble dans vos outils.

Jan propose également un serveur REST qui permet d’interroger via une API compatible OpenAI n’importe quel modèle que vous y feriez tourner. Ça permet de brancher vos outils ou vos scripts directement sur le LLM ouvert de votre choix.

Dans la lignée de Ollama ou LM Studio, Jan rempli ses promesses et vous permettra de vous éclater avec l’IA (abus de langage, je sais…) sans mettre en péril vos données personnelles.

Pour en savoir plus, rendez-vous sur le site de Jan ou sur leur page Github pour les sources et la doc.

Merci à Lorenper


Ça n’arrête plus ! Une faille de sécurité critique dans le protocole Bluetooth permettrait à un utilisateur tiers malveillant d’enregistrer l’audio capté par le microphone d’une enceinte Bluetooth se trouvant à proximité, même si celle-ci est déjà appairée et connectée à un autre appareil. Cette vulnérabilité peut malheureusement conduire à de l’espionnage de conversations privées que ce soit via une enceinte ou un casque. Tant que c’est bluetooth et qu’il y a un micro, ça fonctionne !

Et s’il n’y a pas de micro, cette faille permettrait également jouer ses propres fichiers audio sur vos enceintes sans votre consentement !

Ce problème de sécurité a été découvert et présenté la semaine dernière par Tarlogic lors de la conférence RootedCon 2024 avec en cadeau bonux un PoC (proof of concept) baptisé BlueSpy permettant d’exploiter la faille.

Ce script n’utilise pas de vulnérabilité non corrigée, non, non. Il exploite tout simplement la méthode d’appairage Bluetooth non sécurisée baptisée « Just Work« . C’est d’autant plus effrayant quand on considère le nombre d’enceintes ou de casques vulnérables qui traînent dans les zones résidentielles, les espaces de travail, les salles de réunion, les lieux publics, etc.

Pour sa démonstration, Tarlogic a utilisé un Raspberry Pi 4 sous Kali Linux, contrôlé par un smartphone. Notez que pour étendre la zone de couverture, il est également possible d’utiliser un adaptateur Bluetooth externe avec une antenne externe.

Mais alors, comment se protéger ? La clé de votre tranquilité et de votre sécurité réside dans la visibilité de votre appareil Bluetooth. Si votre enceinte ou casque est visible par d’autres appareils alors qu’il est déjà connecté à votre smartphone, il est vulnérable. Par contre, s’il n’est plus visible une fois appairé, vous êtes à l’abri.

Pour vérifier facilement si vos appareils audio Bluetooth sont vulnérables, vous pouvez utiliser l’application gratuite nRF Connect for Mobile sur un smartphone Android non rooté. Lancez un scan et si l’application détecte et permet de se connecter à votre appareil audio Bluetooth LE, c’est qu’il est probablement vulnérable. À l’inverse, si votre appareil n’apparaît pas dans les résultats du scan alors qu’il est allumé et connecté, vous pouvez souffler.

Malheureusement, si votre appareil autorise une telle connexion, il n’y a pas grand-chose à faire. Certains appareils émettent cependant une notification visuelle ou sonore lorsqu’un autre appareil se connecte, comme un bip, une vibration ou un changement de couleur des LED donc ouvrez l’œil et l’oreille ! Et surtout, éteignez vos appareils Bluetooth quand vous ne les utilisez pas.

Source


Imaginez que vous puissiez installer, exécuter et automatiser n’importe quelle application qui fait de la bonne grosse IA en un seul clic. Plus besoin d’ouvrir un terminal, de taper des commandes que j’aime tant comme git clone, conda install ou pip install. Fini la galère des environnements d’exécution puisque tout est automatisé, et aussi simple à utiliser qu’un navigateur web.

C’est exactement ce que propose Pinokio !

Grâce à Pinokio, n’importe quelle application en ligne de commande peut être portée pour s’exécuter directement dans le navigateur. Les scripts d’installation, les scripts Python, les commandes shell…etc, tout peut être automatisé notamment grâce à son propre langage de script JSON et une API JSON-RPC.

On y retrouve également un bonne grosse bibliothèques de scripts permettant d’installer outils d’IA comme SUPIR (pour faire de la restauration d’images), un chatbot Ollama ou encore des trucs autour de Stable Diffusion pour faire des images.

Pinokio supporte également les agents autonomes qui peuvent s’exécuter sans aucune intervention humaine. Imaginez par exemple un bot Discord qui s’auto-héberge, récupère automatiquement de nouvelles données, met à jour son modèle d’IA et répond aux utilisateurs, le tout sans supervision. Avec Pinokio, ce genre de truc est possible.

Ce que je veux que vous compreniez, c’est que Pinokio n’est pas juste un installeur d’outils IA. C’est vraiment un environnement complet pour coder vos propres scripts et automatiser l’IA sur votre macine. Je vous invite à creuser la documentation pour en savoir plus.

Pour vous montrer la partie émergé de l’iceberg de cet outil, je vous ai fait un modeste tutoriel vidéo, disponible sur mon Patreon. Si vous n’en faites pas encore partie, c’est le moment de me rejoindre sur https://patreon.com/korben. En plus d’accéder à des contenus en avant première, vous soutiendrez mon travail et m’aiderez à continuer de partager avec vous mes expérimentations et découvertes.


Hier, je vous parlais de Sprite Fusion pour faire vos niveaux 2D mais peut-être que vous rêvez carrément de créer vos propres jeux vidéo pour Game Boy. Seulement, voilà, vous ne savez pas par où commencer ?

Ne cherchez pas plus loin ! GB Studio est là, et c’est une application très facile à prendre en main qui offre aux débutants comme aux experts de créer des jeux rétro pour votre console portable préférée. Disponible sur Windows, Mac et Linux, GB Studio offre ainsi une bonne expérience de création de jeux sans avoir besoin de connaissances en programmation.

Hé oui !

Avec son interface drag’n’drop (glisser-déposer) et son scripting visuel, GB Studio simplifie vraiment la création de jeux pour les personnes ayant peu ou pas d’expérience en programmation. Que vous souhaitiez créer un jeu d’aventure ou un jeu de plateforme, GB Studio prend en charge plusieurs genres de jeux pour vous donner la possibilité de créer votre chef-d’œuvre numérique.

L’un des aspects les plus intéressants de GB Studio est sa capacité à composer de la musique pour vos jeux. L’éditeur intégré permet une écriture musicale facile en offrant des modes de piano roll et de tracker pour créer vos propres mélodies pour accompagner l’action à l’écran.

Une fois votre jeu terminé, vous pouvez créer de véritables fichiers ROM pour les jouer sur n’importe quel émulateur Game Boy. En outre, GB Studio vous permet d’exporter votre jeu pour le web avec d’excellentes commandes mobiles. Il suffit de télécharger votre jeu sur Itch.io et de le partager avec le monde entier !

Pour ceux qui sont déjà familiarisés avec la programmation, GB Studio offre également des points d’accès pour les utilisateurs avancés afin d’accéder à la machine virtuelle (GBVM) du moteur de jeu et de modifier directement le code C et l’assemblage Z80 du moteur de jeu via des plugins.

Pour obtenir la dernière version de GB Studio, rendez-vous sur la page de téléchargement d’Itch.io, et pour les versions plus anciennes, consultez les archives sur GitHub. De plus, la documentation est également disponible en format PDF.

Puis une fois que vous aurez réalisé votre rêve, vous pourrez passer à l’étape supérieure en suivant ce tuto de HxC2001 qui vous expliquera comment le mettre sur une VRAIE cartouche comme à l’ancienne !

Elle est pas belle la vie ?

Merci à Lorenper