Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierKorben

Black – Pour formater votre code Python rapidement et sans douleur

Par : Korben
24 mars 2024 à 09:00

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

Créez vos propres jeux Game Boy avec GB Studio !

Par : Korben
22 mars 2024 à 09:00

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

Code Scanning Autofix – GitHub lance la correction de vulnérabilités par IA

Par : Korben
21 mars 2024 à 11:09

Les failles de sécurité dans le code sont le cauchemar des développeurs et des équipes de sécurité et font surtout le régal des hackers. Alors pour y remédier, GitHub a décidé de sortir l’artillerie lourde avec Code Scanning Autofix ! Attention les yeux, cet outil mêle IA et analyse statique et nous fait la promesse de corriger les vulnérabilités en un clin d’œil pendant que vous codez.

Concrètement, Code Scanning Autofix (actuellement en bêta publique) est activé par défaut sur tous les dépôts privés des clients GitHub Advanced Security. Et devinez quoi ? Il gère déjà plus de 90% des types d’alertes pour JavaScript, TypeScript, Java et Python. De quoi mettre une sacrée claque à la dette de sécurité applicative !

En coulisse, cette magie opère grâce à deux technologies de pointe made in GitHub : Copilot pour l’IA et CodeQL pour l’analyse statique. Une fois Code Scanning Autofix activé, il vous propose des correctifs quasi tout cuits qui sont censés régler les deux tiers des vulnérabilités détectées, le tout sans trop d’efforts de votre part.

Voici un exemple de correctif proposé :

Pour chaque faille repérée dans un des langages pris en charge, vous obtenez une explication en langage naturel du correctif suggéré, avec un aperçu du bout de code à valider, modifier ou rejeter. Cela peut inclure des changements dans le fichier en cours, d’autres fichiers, voire des dépendances du projet. Bien entendu, vous gardez le contrôle et pouvez vérifier si le correctif résout bien le problème sans casser la fonctionnalité.

L’intérêt est donc de décharger les experts en sécurité de la fastidieuse traque aux vulnérabilités introduites pendant le développement. Ils pourront alors se concentrer sur la sécurité globale de leur projet.

GitHub promet d’étendre prochainement Code Scanning Autofix à d’autres langages, en commençant par C# et Go. Et pour en savoir plus, foncez sur la doc de GitHub !

Source

Sprite Fusion – Un éditeur de niveaux 2D pour vos jeux, utilisable directement dans le navigateur

Par : Korben
21 mars 2024 à 09:00

Mes amis, laissez-moi aujourd’hui vous parler de Sprite Fusion, un outil gratuit de conception de niveaux 2D qui vous permet de créer de magnifiques cartes de tuiles (les fameuses « tiles ») directement dans votre navigateur.

Grâce à cet éditeur vous allez pouvoir concevoir rapidement des niveaux pour vos propres jeux.

Pour commencer, il est très facile de charger vos ensembles de tuiles avec un simple glisser-déposer ou un copier-coller. Ensuite, avec l’éditeur de cartes de tuiles, vous pouvez créer vos niveaux en utilisant des sélections de tuiles uniques ou multiples.

Alors, qu’est-ce qu’une carte de tuiles, exactement ?

Et bien c’est une carte 2D composée de petites images répétées pour créer une carte. Les cartes de tuiles sont utilisées dans de nombreux types de jeux, comme des jeux de plateforme ou encore des RPG.

Avec Sprite Fusion, il est possible d’exporter directement votre carte en tant que Tilemap Unity native ou en tant que scène TileMap Godot. De plus, Sprite Fusion inclut un système automatique de tuiles facile à utiliser dès le départ pour une conception rapide du terrain. Vous n’avez pas besoin de code personnalisé, il vous suffit d’exporter votre carte de tuiles en tant que package Unity ou scène Godot et de la faire glisser et déposer dans votre moteur !

Pour ceux qui souhaitent partager leurs projets avec d’autres, Sprite Fusion permet également d’exporter vos projets au format JSON compact, facilitant ainsi le partage. Avec des exemples tels que Hazmat Pixel Art – Niveau 1, Mining Odyssey, Spritesheet Dashers et Tiled Map Retro Simulator, vous pouvez voir l’étendue des possibilités offertes par cet outil.

L’utilisation de cet éditeur est totalement gratuite et ne nécessite aucune création de compte. Il fonctionne avec les principaux navigateurs et vous pouvez l’utiliser sans aucune limitation pour un usage personnel ou commercial. Et si vous avez des questions, n’hésitez pas à les poser sur leur serveur Discord.

Spite Fusion prend également en charge les collisions, vous permettant de définir n’importe quelle couche en tant que collisionneur pour utiliser les collisions dans votre jeu. De plus, il propose une fonctionnalité d’auto-tiling, qui vous permet de placer automatiquement des tuiles en fonction de leurs voisines, facilitant ainsi la conception rapide de cartes de terrain.

A vous de tester maintenant !

Merci à Lorenper

LLM4Decompile – Quand l’IA se met à décompiler du binaire

Par : Korben
16 mars 2024 à 02:15

Imaginez un monde merveilleux où les secrets enfermés dans les binaires compilés ne seraient plus inaccessibles aux simples mortels que nous sommes…

C’est exactement ce que LLM4Decompile, le premier LLM (Large Language Model) open-source dédié à la décompilation, promet de réaliser. Fruit d’un travail de recherche innovant mené par une équipe de chercheurs passionnés, ce modèle révolutionnaire ouvre de nouvelles perspectives dans le domaine du reverse engineering.

Jusqu’à présent, la décompilation, c’est-à-dire le processus qui consiste à retrouver le code source à partir d’un exécutable compilé, restait un défi de taille. Les outils existants peinaient à produire un code lisible et compréhensible par les humains, ce qui est logique puisqu’il y a une grosse perte d’informations lors de la compilation. Mais ça, c’était avant l’arrivée de LLM4Decompile !

Entraîné sur un énorme dataset de 4 milliards de tokens de code C et d’assembleur x86, ce modèle de langage surpuissant a appris à décoder les secrets des binaires. Grâce à son architecture basée sur les Transformers et ses milliards de paramètres, il est donc capable de capturer les patterns et la sémantique du code à un niveau inédit.

Mais les chercheurs ne se sont pas arrêtés là. Ils ont aussi développé le premier benchmark standardisé pour la décompilation baptisé Decompile-Eval. Basé sur des problèmes de programmation réels, il permet d’évaluer la capacité des modèles à regénérer un code recompilable et ré-exécutable. Exit les métriques de similarité de tokens, place à des critères solides et pertinents ! LLM4Decompile parvient à recompiler 90% des binaires décompilés (oui oui, je me suis pas trompé) !

Mieux encore, 21% du code re-généré réussit tous les tests unitaires, démontrant une préservation de la logique du programme. C’est 50% de plus que GPT-4, pourtant considéré comme l’état de l’art.

Cerise sur le gâteau, LLM4Decompile est entièrement open-source. Les modèles pré-entraînés de 1,3 à 33 milliards de paramètres sont disponibles sur Hugging Face, prêts à être utilisés et améliorés par la communauté. Le code, les données d’entraînement et le benchmark sont aussi accessibles sur GitHub.

Bien sûr, LLM4Decompile n’est qu’un premier pas vers la décompilation par l’IA. Il reste limité au langage C et à l’assembleur x86, et ne gère pour l’instant que des fonctions isolées. Mais les perspectives sont immenses ! On peut imaginer étendre son champ d’action à d’autres langages et architectures, voire carrément l’utiliser pour transpiler automatiquement du code entre différents langages.

Les applications potentielles sont nombreuses : reverse engineering de logiciels legacy (ça veut dire obsolète mais encore utilisé.. .argh !), analyse de malware, portage de vieux jeux vidéos, etc. Même les vieux binaires qui sentent la naphtaline n’auront bientôt plus de secrets pour nous !

Touitomamout – Pour synchroniser Twitter avec BlueSky et Mastodon

Par : Korben
5 mars 2024 à 09:00

Je ne sais pas si vous trainez sur Twitter, depuis qu’Elon en a pris la (mauvaise) direction, mais en ce qui me concerne, j’étais là avant lui, et je serai là après lui. Donc je reste sur Twitter malgré sa faune parfois un peu glauque.

Mais ça ne m’empêche pas d’être également présent sur Bluesky et Mastodon, même si je ne les utilise pas vraiment. J’essaye quand même d’y partager mes articles. D’ailleurs, pour Bluesky, je me suis fait une moulinette en python, qui me permet d’y automatiser le post de mes articles de blog avec l’aide de ChatGPT pour que ce soit encore plus naturel.

Mais si vous ne voulez pas trop vous prendre la tête, y’a Louis Grasset qui a mis en ligne Touitomamout (Jeu de mots ^^ : Tweet To Mammouth). Il s’agit d’un outil qui peut s’installer sur votre machine / serveur / docker et qui permet de faire du cross-post depuis Twitter vers Mastodon et / ou Bluesky. En plus des messages textes, des images, des vidéos ou encore des gifs animés, l’outil permet même si vous le désirez de synchroniser l’entièreté de votre profil (nom, avatar, bannière, description).

Pour le faire tourner dans Docker, c’est easy. Il vous suffit de créer un docker-compose.yml et de mettre ça dedans :

version: '3.9'

services:
  touitomamout:
    container_name: "touitomamout"
    image: louisgrasset/touitomamout:latest  # Or "ghcr.io/louisgrasset/touitomamout:latest"
    restart: unless-stopped
    environment:
      - ENV_FILE=/data/.env
      - STORAGE_DIR=/data
    volumes:
      - ./data:/data

Puis de lancer la commande suivante :

docker-compose up -d

Et voilà de beaux comptes de réseaux sociaux bien synchronisés. Bravo Louis !

Kalker – La calculatrice scientifique de votre terminal

Par : Korben
1 mars 2024 à 09:00

Quand j’étais plus jeune, on me répétait souvent : « Mais tu dois être tellement fort en maths vu ce que tu sais faire avec un ordinateur« .

Mais non, aucun rapport les anciens. Je suis mauvais en maths, c’est un fait ! Mais ça ne doit pas m’empêcher aujourd’hui de vous parler de Kalker, une calculatrice scientifique qui s’utilise dans le terminal, et qui supporte la syntaxe mathématique et la possibilité d’utiliser des variables et des fonctions de votre choix ainsi que la différentiation, l’intégration et les nombres complexes.

Avec Kalker, vous pourrez jongler avec les opérateurs les plus basiques +, -, *, /, aux opérateurs plus spécialisés comme ! pour les factorielles ou % pour les pourcentages. Vous pouvez également manipuler des groupes avec des parenthèses (), des crochets [], mais aussi utiliser des fonctions de plafond ⌈ceil⌉ et de plancher ⌊floor⌋. Sans oublier les vecteurs (x, y, z, ...) et des matrices [x, y, z; a, b, c; ...] ? La plupart de ces trucs sont du chinois pour moi, mais si vous kiffez ça, ça va vous permettre de manipuler ces structures avec la même facilité que si vous manipuliez de simples nombres sur votre calculatrice Windows.

Car oui, c’est dispo sous Windows, mais également sous Linux et macOS. Et bien sûr en ligne, car vous pouvez tester ça directement depuis votre navigateur en cliquant ici.

L’intérêt de Kalker c’est qu’il peut s’adapter à vos besoins spécifiques. Vous pouvez définir vos propres fonctions et variables, pour par exemple stocker une formule compliquée dans une fonction personnalisée et l’utiliser aussi simplement que f(x).

Maintenant je m’arrête là pour ne pas vous dire plus de bêtises, mais sachez que si vous voulez l’installer, c’est par ici que ça se passe.

Et dans le même style, mais avec le support des unités plus physiques (vitesse, monnaie, fréquence, voltage…etc. y’en a pour tous les goûts), il y a également Numbat que vous pouvez découvrir ici.

De4Py – Le toolkit idéal pour faire de l’analyse de programmes Python (malwares ou autre)

Par : Korben
26 février 2024 à 09:00

A tous les fondus d’analyse de code, aujourd’hui, j’aimerais vous présenter De4Py, un déobfuscateur Python avancé qui s’est donné pour mission de révolutionner le domaine pour les analystes de malwares et les experts en reverse engineering.

Développé par le duo Fadi002 et AdvDebug, cet outil se distingue non seulement par son interface conviviale, mais aussi par un ensemble de fonctionnalités avancées conçues pour, entre autres, déchiffrer les fichiers Python.

Ce toolkit prend en charge toute une gamme d’obfuscateurs populaires, incluant Jawbreaker, BlankOBF, PlusOBF, Wodx, Hyperion et l’obfuscateur de pyobfuscate.com. Cette polyvalence vous assure de pouvoir décoder un large éventail de fichiers obfusqués avec une grande facilité.

L’une des fonctionnalités phares de l’outil est sa capacité d’exécution de code. Cela permet aux utilisateurs d’exécuter du code Python au sein de l’outil. Par exemple, ils expliquent sur le Github, que grâce à ça, si un programme demande une licence pour fonctionner dans son intégralité, De4py permet d’accéder directement aux fonctionnalités principales de l’outil, et par conséquent de contourner les restrictions liées à la licence.

La fonction de Dump de chaînes de caractères est un autre atout crucial. Elle facilite l’extraction de textes du processus Python et les sauvegarde dans un fichier, rendant plus aisée l’extraction de données de la mémoire, y compris des informations sensibles comme les webhooks. Il est capable également d’identifier les chaines de caractères « interessantes » comme les IP, les sites web et les mots-clés liés à des informations sensibles.

De4py aborde également le défi que représentent ces programmes Python qui tentent de s’auto-terminer lorsqu’ils détectent un débogueur ou une machine virtuelle. En supprimant la fonction de sortie, il vous permettra de ne plus galérer avec des sorties de programme surprises. De4py dispose aussi d’une fonctionnalité qui permet de récupérer et d’accéder à toutes les fonctions se trouvant dans le processus, ce qui est pratique si on veut modifier certaines fonctions en mémoire de manière plus précise.

Il y a également un analyseur de fichiers pour détecter si un programme Python est « packé ». Il tente alors d’extraire les programmes qui s’y trouvent en utilisant pyinstaller. Enfin, De4Py est capable de surveiller le comportement du programme sur votre système à savoir tout ce qui est manipulations de fichiers, activités de processus, interactions avec la mémoire, et même les communications via socket, avec détail de la taille des données transmises / reçues et des adresses IP. Cette fonctionnalité permet également l’extraction du contenu des sockets et le déchiffrement du contenu chiffré OpenSSL directement dans un fichier.

Bref, que ce soit via son interface graphique ou en mode terminal, De4Py est un super outil pour tous les amateurs de reverse engineering qui font notamment de l’analyse de malware.

Vous en saurez plus ici sur leur Github et le site officiel est ici.

Nava – La lib Python pour jouer du son dans votre code

Par : Korben
25 février 2024 à 09:00

J’aime bien faire un peu de Python de temps en temps et il m’arrive parfois de vouloir jouer un son dans mes scripts pour signaler qu’un traitement est fini ou tout simplement mettre un peu de fun. Jusqu’à présent j’utilisais des libs comme Pygame, Playsound ou encore Pydub mais ces trucs-là ne sont pas forcément bien supportés par tous les OS, ou nécessitent des dépendances comme FFMpeg.

Toutefois, une lib baptisée Nava vient de faire son apparition et c’est la simplicité même. Elle fonctionne sur tous les OS (Linux, macOS, Windows), et n’utilise aucune dépendance ou logiciel tiers. Vous pouvez lui faire lire du WAV et du MP3 et la lecture se lance immédiatement.

Pour l’installer, rien de plus simple :

pip install nava

Et ensuite, il suffit de l’appeler dans votre code et de lui indiquer le morceau à jouer.

from nava import play
play("son.mp3")

Vous pouvez même lancer une lecture en asynchrone pour ne pas bloquer votre script. Dans l’exemple ci-dessous, on lance un time sleep qui peut donc couper la lecture du son au bout de 4 secondes et qui comme vous le voyez, n’est pas bloqué puisque nava est lancé en mode asynchrone avec le paramètre async_mode=True :

import time
from nava import play, stop
sound_id = play("son.wav", async_mode=True)
time.sleep(4)
stop(sound_id)

Voilà, j’espère que ça vous sera utile 🙂

Wallace – L’analyseur CSS qui vous juge et vous conseille

Par : Korben
23 février 2024 à 09:00

Écrire de la CSS, c’est comme frotter ses doigts sur une râpe à fromage. C’est délicat.

Et quand notre feuille de style est finie, on est content de nous, on s’ouvre une bière et on se dit qu’on a vraiment fait du bon boulot et que finalement, y’avait pas besoin de payer cet intégrateur freelance.

GRAVE ERREUR ! Car en soumettant votre site à l’analyse de Wallace, vous verrez toutes les boulettes que vous avez commises dans votre CSS. En effet, Wallace est ce genre de petit outil en ligne bien pratique qui à partir d’une simple URL de site web, analyse en profondeur l’ensemble de votre feuille de style pour vous fournir des stats d’abord, mais également des critiques (constructives, rassure-vous) sur la qualité de votre code.

Vous pouvez même cliquer sur les éléments mis en avant par Wallace et celui-ci vous les montrera directement dans votre CSS.

Ainsi, en suivant ses recommandations, vous saurez ce qu’il vous reste à faire pour optimiser encore un peu plus votre CSS et la faire ressembler à une oeuvre d’art plutôt qu’à la version papier de France Souar.

Comme ça, vous pourrez même tenter d’améliorer les notes de maintenabilité, de complexité et de performances qu’il vous donne. Voici celles de mon site, sans n’avoir rien changé. Paaaas maaaal. :

Voilà, c’est un excellent outil d’analyse de CSS qui non seulement permet d’augmenter les performances de chargement de votre site, mais surtout vous aider à alléger la complexité de celle-ci pour en faciliter la maintenance. Et pour les plus fifous qui aiment passer par le terminal ou automatiser ce genre d’analyse, il existe même un projet Wallace en ligne de commande ici.

Merci à Maitre Tofu pour l’info !

Magika, le détecteur de fichiers ultra-rapide de Google

Par : Korben
17 février 2024 à 12:26

La dernière nouveauté dans le domaine de l’IA c’est la détection des types de fichiers. Hé ouais ! Google a récemment ouvert les sources de Magika, un système d’identification de types de fichiers basé sur l’IA, qui a pour but de nous aider (enfin, nos outils) à détecter avec précision les types de fichiers binaires et textuels.

Depuis longtemps maintenant, les systèmes Linux sont équipés de libmagic et de l’utilitaire file, qui ont servi de norme de facto pour l’identification des types de fichiers, et ce pendant plus de 50 ans !!

Les navigateurs web, les éditeurs de code et d’innombrables autres logiciels s’appuient sur la détection des types de fichiers pour décider comment afficher correctement un fichier. Par exemple, les IDE modernes utilisent la détection des types de fichiers pour choisir le schéma de coloration syntaxique à utiliser lorsque le développeur commence à taper dans un nouveau fichier.

La détection précise des types de fichiers est un problème difficile, car chaque format de fichier a une structure différente, ou pas de structure du tout. Et c’est encore plus dur pour les formats textuels et les langages de programmation, car ils ont des constructions très similaires. Jusqu’à présent, libmagic et la plupart des autres logiciels d’identification des types de fichiers s’appuyaient sur une collection plutôt artisanale (hmm hmm) d’heuristiques et de règles personnalisées pour détecter chaque format de fichier.

Cette approche manuelle étant à la fois longue et sujette aux erreurs, ce n’est pas forcément l’idéal notamment pour les applications de sécurité où la création d’une détection fiable est particulièrement difficile, car les attaquants tentent constamment de tromper la détection avec des payloads maison 🙂

Pour résoudre ce problème et fournir une détection rapide et précise des types de fichiers, Google a donc développé Magika, un nouveau détecteur de types de fichiers basé sur l’IA.

Sous le capot, Magika utilise un modèle de deep learning personnalisé et hautement optimisé conçu et formé à l’aide de Keras qui ne pèse environ que 1 Mo. Magika utilise aussi Onnx comme moteur d’inférence pour garantir que les fichiers soient identifiés en quelques millisecondes, presque aussi rapidement qu’un outil non basé sur l’IA, même sur un CPU.

En termes de performances, Magika, grâce à son modèle d’IA et son grand ensemble de données d’apprentissage, est capable de surpasser d’autres outils existants d’environ 20 % lorsqu’il est évalué sur un benchmark de 1 million de fichiers englobant plus de 100 types de fichiers. En décomposant par type de fichier, comme indiqué dans le tableau ci-dessous, on observe des gains de performance encore plus importants sur les fichiers textuels, notamment les fichiers de code et les fichiers de configuration avec lesquels d’autres outils peuvent avoir des difficultés.

Magika est utilisé en interne chez Google à grande échelle pour aider à améliorer la sécurité des utilisateurs de leurs services notamment pour l’acheminement des fichiers au sein de Gmail, Drive ou encore Safe Browsing vers des scanners de sécurité et des filtres de contenu.

En examinant une moyenne hebdomadaire de centaines de milliards de fichiers, Google a constaté que Magika améliorait la précision de l’identification des types de fichiers de 50 % par rapport à leur système précédent basé sur de simples règles. Cette augmentation de la précision leur a permis d’analyser 11 % de fichiers en plus avec leurs scanners de documents malveillants spécialisés en IA et ils ont ainsi pu réduire le nombre de fichiers non identifiés à 3 %.

La prochaine intégration de Magika se fera dans VirusTotal et viendra ainsi compléter la fonctionnalité Code Insight existante de la plateforme, qui utilise l’IA générative de Google pour analyser et détecter les codes malveillants. Magika agira alors comme un pré-filtre avant que les fichiers ne soient analysés par Code Insight, améliorant ainsi l’efficacité et la précision de la plateforme. Cette intégration, en raison de la nature collaborative de VirusTotal, contribue directement à l’écosystème cyber, et ça c’est plutôt une bonne nouvelle pour tout le monde.

En ouvrant les sources de Magika, l’objectif de Google est d’aider d’autres éditeurs de logiciels à améliorer leur précision d’identification des fichiers et d’offrir aux chercheurs une méthode fiable pour identifier les types de fichiers à très grande échelle. Le code et le modèle de Magika sont disponibles gratuitement sur Github sous la licence Apache2.

Si vous êtes intéressé, vous pouvez essayer la démo web de Magika.

Magika peut également être rapidement installé en tant qu’utilitaire autonome et bibliothèque python via le gestionnaire de paquets pypi en tapant simplement :

pip install magika

Et pas besoin de GPU !

Pour en savoir plus sur la façon de l’utiliser, je vous invite à vous rendre sur la documentation de Magika.

Merci à Letsar pour l’info !

LiteLLM – Pour discuter avec toutes les API LLM en utilisant la syntaxe OpenAI

Par : Korben
14 février 2024 à 09:00

Si vous codez en Python autour d’API de LLM comme celle d’OpenAI, d’Anthropic ou encore de Huggingface…etc., je vous présente LiteLLM qui risque de vous faire gagner pas mal de temps.

Il s’agit d’une lib Python capable d’interagir avec tout un tas d’API en utilisant le format de celle d’OpenAI. Elle fournit une interface simple et uniformisée pour appeler ces modèles , ce qui va vous faciliter leur utilisation pour des choses comme de la génération de texte, de la traduction ou encore du chat…

Pour l’installer, rien de plus simple :

pip install litellm

Ensuite, y’a plus qu’à créer un objet LiteLLM dans votre code, en lui fournissant l’ID et le nom du modèle à utiliser. Par exemple pour vous connecter à OpenAI, le code sera le suivant :

from litellm import completion
import os

## set ENV variables
os.environ["OPENAI_API_KEY"] = "your-api-key"

response = completion(
  model="gpt-3.5-turbo", 
  messages=[{ "content": "Hello, how are you?","role": "user"}]
)

Pour Claude 2, ça sera ça :

from litellm import completion
import os

## set ENV variables
os.environ["ANTHROPIC_API_KEY"] = "your-api-key"

response = completion(
  model="claude-2", 
  messages=[{ "content": "Hello, how are you?","role": "user"}]
)

Pour utiliser Ollama, ça donnerait également ça :

from litellm import completion

response = completion(
            model="ollama/llama2", 
            messages = [{ "content": "Hello, how are you?","role": "user"}], 
            api_base="http://localhost:11434"
)

Donc pas grand-chose qui change.

Vous l’aurez donc compris, LiteLLM permet de pondre un seul et unique code, mais pour discuter avec tous les fournisseurs d’IA du moment (et les logiciels libres existants)

Y’a la possibilité d’avoir du stream sur les réponses (c’est à dire, le texte qui s’affiche au fur et à mesure), de la gestion des exceptions, du log, sans oublier du calcul de coût et l’usage que vous pouvez avoir de ces API afin de ne pas éclater votre compte en banque.

LiteLLM intègre également un proxy OpenAI pour rediriger vos requêtes vers le modèle de votre choix. Pour l’installer :

pip install 'litellm[proxy]'

Lancez ensuite le proxy avec le modèle de votre choix :

litellm --model huggingface/bigcode/starcoder

Et lui passer vos requêtes dans le code python directement :

import openai # openai v1.0.0+
client = openai.OpenAI(api_key="anything",base_url="http://0.0.0.0:8000") # set proxy to base_url
# request sent to model set on litellm proxy, `litellm --model`
response = client.chat.completions.create(model="gpt-3.5-turbo", messages = [
    {
        "role": "user",
        "content": "this is a test request, write a short poem"
    }
])

print(response)

Si LiteLLM vous intéresse, vous trouverez toutes les infos sur la page Github ainsi que les endpoints ici.

EvaDB – Mettez de l’IA dans vos requêtes SQL

Par : Korben
4 février 2024 à 09:00

Mes chers amis, l’IA est partouuuut, dans nos villes, dans nos campagnes, et elle vient voler le travail des gens qui s’opposent à elle.

Alors plutôt que de vous battre inutilement contre l’inéluctable, autant l’apprivoiser et la faire bosser pour vous, car ce n’est qu’un outil débile de plus dont chacun peut tirer des bénéfices.

Même les codeurs… La preuve avec EvaDB, une base de données ouverte qui permet aux développeurs de logiciels de créer des applications IA en quelques lignes de code grâce à son API SQL très puissante. Et pas besoin d’avoir de compétences spécifiques en IA pour l’utiliser !

EvaDB se présente comme une solution clé en main pour simplifier le développement d’applications IA, en prenant en charge à la fois la gestion des données structurées et non structurées. L’outil offre une facilité de connexion à toutes les sources de données existantes telles que PostgreSQL ou vos buckets S3, ainsi qu’une utilisation optimisée des CPU/GPU et la personnalisation des modèles IA (fine tuning) récupérés chez Hugging Face, OpenAI ou encore YOLO.

Cela signifie concrètement que vous allez pouvoir ajouter des fonctionnalités d’IA à vos applications en utilisant simplement des fonctions intégrées dans les requêtes. Vous pouvez choisir parmi différents modèles pré-entraînés ou créer vos propres modèles personnalisés.

Petit exemple de requête :

SELECT name, country, email, programming_languages, social_media, GPT4(prompt,topics_of_interest)
FROM gpt4all_StargazerInsights;

Et le prompt fourni :

--- Prompt to GPT-4
You are given 10 rows of input, each row is separated by two new line characters.
Categorize the topics listed in each row into one or more of the following 3 technical areas - Machine Learning, Databases, and Web development. If the topics listed are not related to any of these 3 areas, output a single N/A. Do not miss any input row. Do not add any additional text or numbers to your output.
The output rows must be separated by two new line characters. Each input row must generate exactly one output row. For example, the input row [Recommendation systems, Deep neural networks, Postgres] must generate only the output row [Machine Learning, Databases].
The input row [enterpreneurship, startups, venture capital] must generate the output row N/A.

Voici quelques cas d’utilisation possibles : analyse de sentiments, réponse aux questions posées en vidéo avec ChatGPT, résumé de texte à partir de documents PDF, analyse de flux de trafic, analyse d’émotions dans les vidéos ou encore recherche d’images similaires.

Ainsi, EvaDB permet de cibler 99% des problèmes d’IA qui sont souvent répétitifs et peuvent être automatisés avec un simple appel de fonction dans une requête SQL.

Obtenir une transcription d’une vidéo stockée dans une table à l’aide d’un modèle de reconnaissance vocale pour pouvoir ensuite poser des questions sur la transcription extraite à l’aide de ChatGPT, c’est typiquement le genre de truc que permet de faire EvaDB :

CREATE TABLE text_summary AS
    SELECT SpeechRecognizer(audio) FROM ukraine_video;
SELECT ChatGPT('Is this video summary related to Ukraine russia war', text)
    FROM text_summary;

Si votre curiosité est piquée et que vous voulez en savoir plus sur ce projet, tout est ici sur Github.

Bref, ne laissez pas passer l’occasion d’explorer cet outil open source qui vous ouvrira bien des portes.

Continue – L’extension Visual Studio Code qui code à votre place

Par : Korben
25 janvier 2024 à 09:00

Cursor est à ce jour l’éditeur de Code que je préfère, car il est basé sur Visual Studio et totalement boosté à l’IA. Cela me permet pour moi qui suis une quiche en dev, de mener à bien mes projets de conquête du monde.

Toutefois, c’est payant. Et si vous ne voulez pas lâcher un peu de thunasse, et que vous voulez payer uniquement ce que vous consommez, c’est possible dans Cursor avec une clé OpenAI, mais également en installant ce plugin open source baptisé « Continue » directement dans un bon vieux Visual Studio Code d’origine ou un JetBrains.

Concrètement, ce truc vous permet en surlignant un bout de code, de discuter avec l’IA pour mieux le comprendre, le compléter ou le corriger. Vous pouvez même apporter des modifs directement à votre code simplement en demandant ce que vous voulez en langage naturel du genre :

/edit réécrire ceci pour retourner une liste aplatie à partir d'une matrice 3x3
/edit refactoriser cela en une mise en page flex angulaire sur une seule ligne
/edit définir ici un type pour une liste de listes de dictionnaires

Continue permet aussi de générer des fichiers from scratch, c’est-à-dire de zéro ou de générer des tests unitaires, des commandes Shell ou des recherches sur StackOverflow pour en extraire uniquement le nécessaire.

Continue est compatible avec GPT-4 et GPT-3.5-turbo via l’API OpenAI. Et si vous voulez esquiver OpenAI, vous pouvez toujours la connecter sur un autre LLM en utilisant par exemple LM Studio ou Ollama.

Une fois installé, pour l’activer, il suffit de faire un CMD + M (ou ALT + M).

Amusez-vous bien et codez-moi des trucs de ouf !

PR-Agent – Pour automatiser l’analyse des Pull Requests et bien d’autres choses sur vos projets Github, Gitlab…etc

Par : Korben
19 janvier 2024 à 09:00

Si vous contribuez à des projets open source sur Github, Gitlab ou encore Bitbucket et que vous devez vous palucher tous les jours des tonnes d’issues, de questions et des pull requests, voici un outil propulsé avec de l’IA qui devrait bien vous rendre service.

Cet outil c’est PR-Agent et c’est développé par CodiumAI. Il s’agit d’un agent IA utilisant GPT-4 capable de vous soulager en générant des descriptions de pull request claires et concises de manière automatique, de faire de la revue automatique de code, ou tout simplement répondre aux questions que les gens posent et reposent sans cesse.

PR-Agent est également capable, un peu à la manière d’un Github Copilot, de faire des suggestions pour améliorer le code qui se trouve sur votre dépôt, et bien sûr d’écrire les commits si besoin.

Pour cela, une fois que PR-Agent est lancé, il suffit d’employer les commandes suivantes :

  • Description automatique (/describe) : Génère automatiquement une description du PR (Pull Request) – titre, type, résumé, description du code et étiquettes.
  • Auto Review (/review) : Feedback ajustable sur le thème principal du PR, son type, les tests pertinents, les problèmes de sécurité, le score, et diverses suggestions pour le contenu du PR.
  • Réponse aux questions (/ask …) : Réponse à des questions en texte libre sur le PR.
  • Suggestions de code (/improve) : Suggestions de code committable pour améliorer le PR.
  • Mise à jour du Changelog (/update_changelog) : Mise à jour automatique du fichier CHANGELOG.md avec les changements du PR.
  • Trouver un problème similaire (/similar_issue) : Récupère et présente automatiquement les problèmes similaires.
  • Ajouter de la documentation (/add_docs) : Ajoute automatiquement de la documentation aux fonctions/classes non documentées dans le PR.
  • Générer des étiquettes personnalisées (/generate_labels) : Suggère automatiquement des étiquettes personnalisées basées sur les changements de code du PR.

Bref, gros, gros gain de temps. Si vous voulez le tester avant de le déployer sur vos dépôts, c’est possible sur le dépôt public de Codium AI en appelant l’agent comme ceci : @CodiumAI-Agent /COMMAND

À vous de jouer maintenant !

PR Agent est disponible ici et ça peut s’installer directement via Docker.

5 certifications Kubernetes pour prouver vos compétences en 2024

Par : Korben
12 janvier 2024 à 09:30

Kubernetes

— Article en partenariat avec Ambient IT —

Alors ce début d’année ? Vous avez déjà pris vos bonnes résolutions ? Parce que si ce n’est pas le cas, j’en ai une pour vous, et qui sera (peut-être) moins fatigante que le classique « se remettre au sport ». Ou mieux, prenez les 2 … oui je sais, je mets beaucoup de confiance en vous, mais j’ai décidé de commencer 2024 en voyant votre bon côté.

Et cette résolution, c’est de vous décider à mettre toutes les chances de votre côté si vous cherchez un boulot dans le fabuleux monde du Devops ou que vous souhaitez évoluer dans votre position (demander une augmentation, etc.). En effet, les formations Kubernetes proposées par Ambient IT sont parmi les plus reconnues. Ça va booster votre niveau d’employabilité pour les recruteurs, ou vous permettre de mieux négocier votre salaire … ce n’est jamais inutile ! En plus, vous avez le choix du format entre présentiel et classe virtuelle, vous n’aurez même pas l’excuse du froid ! Autant rentabiliser votre temps à la maison cet hiver 😉

Ce ne sont pas moins de 5 certifications officielles issues de la Fondation Linux qui sont disponibles : KCNA, KCSA, CKAD, CKA et CKS. Je vous présente ça tout de suite :

La formation KCNA (pour Kubernetes and Cloud Native Associate), c’est celle qui vous permettra de maitriser toutes les bases fondamentales de la techno, mais aussi l’écosystème du cloud natif. Vous allez apprendre les architectures, les conteneurs et leurs organisations, les APIs, l’observabilité et l’optimisation des applis cloud native, etc. Si vous commencez votre parcours, c’est par là que vous allez démarrer, car il n’y a besoin d’aucun prérequis. En plus elle est assez rapide à passer (1 journée). 

La Kubernetes and Cloud Security Associate (KCSA) de son côté est plus costaude (2 journées) et vous demandera de bien maitriser les bases. Sur 2 jours vous en apprendrez beaucoup plus sur la sécurité de votre environnement Kubernetes et du cloud natif : sécurité des pods, des conteneurs, des clusters et de l’infrastructure, modèles d’attaque (attaque réseau, codes malveillants …), etc. Vous apprendrez aussi à utiliser des choses comme l’outil en ligne de commande KubeCTL, Kubelet ou le mécanisme de sécurité RBAC.

Passons à la certification CKAD (sur 2 jours aussi) qui vous permet de devenir développeur d’application Kubernetes certifié. Comme son nom l’indique, elle vous donnera la possibilité de concevoir, configurer et lancer vos applis cloud natives. Mais aussi de les faire évoluer dans le temps. Ce sera donc l’occasion d’approfondir votre connaissance des pods, des services et mise en réseau ou encore du suivi (débug, observabilité, consommation de ressources …).

Ensuite nous avons la CKA qui vous amènera à devenir administrateur Kubernetes certifié. Du stockage, au dépannage, en passant par la planification de pods et les charges de travail, vous serez à même de tout gérer. Vous apprendrez aussi à mettre en place et à gérer un cluster avec KubeADM et pas mal d’autres choses.

Assez courte (1 jour), mais plutôt dense, la formation CKS (Certified Kubernetes Security Specialist) est, elle aussi, axée sécurité. De la mise en place à la protection d’un cluster, à la sécurisation du système, de la supply chain et des micro-services, en passant par la surveillance et la détection des attaques… vous deviendrez le spécialiste ultime de la sécu. Attention le niveau est relevé, il vous faut déjà posséder la certif CKA pour suivre cette certification et la formation Kubernetes avancée est un plus.

Ces formations durent chacune 1 ou 2 journées, donc c’est assez rapide et vous pouvez les cumuler au fil des semaines/mois. Elles sont proposées à des prix assez variés (de 995€ à 2190€ HT), prix qui comprend l’examen de passage de la formation (valeur 250€ à 395€). Et comme toujours, le bon plan c’est que vous pouvez faire valoir votre crédit CPF (compte personnel de formation) et d’autres aides. Petit point à prendre en compte tout de même, si les formations sont en français, les examens se font, eux, en anglais.

Pourquoi passer par Ambient IT pour ces certifications ? Déjà parce qu’ils sont partenaires officiels de la Linux Foundation ET Kubernetes Training Partner. Ensuite parce que les formateurs sont d’un très bon niveau, que vous pouvez suivre tout cela à distance et vous recevrez même des conseils pour être paré à vos examens. De quoi vous mettre dans les meilleures conditions possibles !

Promo spéciale Korben

Si vous me lisez régulièrement, vous savez que j’essaie toujours de vous dénicher de bons plans. Et c’est encore le cas aujourd’hui ! Sur 2024, si vous vous inscrivez à l’une des 5 formations certifiantes, lors de votre contact téléphonique avec Ambient IT, n’oubliez pas de mentionner que vous venez de la part de tonton Korben, vous aurez droit en cas d’échec au rattrapage (ce qui n’arrivera pas !). Si vous échouez à l’obtention de votre certification, votre rattrapage sera offert. C’est pas la classe ça ? Merci à Ambient IT de supporter notre communauté !

Formez-vous aux certifications kubernetes !

View Rendered Source – Une extension Chrome pour explorer les entrailles des pages web

Par : Korben
2 janvier 2024 à 09:00

La curiosité est une des meilleures qualités d’un bon développeur web. Je dirais même que c’est une qualité essentielle pour quiconque veut comprendre les arcanes du web.

Aujourd’hui, je vais vous parler d’un outil qui va aiguiser cette curiosité et vous faire explorer les entrailles des sites web comme jamais auparavant. J’ai nommé: « View Rendered Source« .

« View Rendered Source », c’est une extension Chrome légère qui vous montre comment le navigateur a construit la page HTML d’origine en un Document Object Model (DOM) fonctionnel. Et non pas uniquement le code renvoyé par le serveur que vous auriez avec les outils de dev classique de Chrome.

Si, comme moi, vous aimez savoir comment les choses fonctionnent, vous allez adorer ce truc !

Pour les non-initiés, le DOM est comme la colonne vertébrale d’une page web. Il s’agit d’une représentation structurée de la page qui permet à JavaScript de la modifier à la volée. C’est comme le plan d’une maison que l’architecte utilise pour savoir où placer les murs, les fenêtres et les portes.

L’extension « View Rendered Source » vous permet de voir ce plan, mais pas seulement. Elle vous montre aussi comment il a été modifié en temps réel par JavaScript.

L’extension se divise en trois sections : le code source brut, la page rendue après interprétation en DOM, et la différence entre les deux. L’extension offre également une solution pour émuler le code source à destination des appareils mobiles.

Si ça vous dit de tester, allez sur le Chrome Web Store et installez « View Rendered Source ».

❌
❌