Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 18 mars 2024Flux principal

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 !

À partir d’avant-hierFlux principal

Volonté de la Maison Blanche de bannir les langages C et C++ pour des raisons de sécurité

Par : UnderNews
5 mars 2024 à 13:55

Fin février, l’administration Biden encourage les développeurs à se détourner des langages de programmation C et C++ au profit de langages sécurisés pour la mémoire, comme Rust, pour diminuer le risque de cyberattaques. Cette initiative fait suite à des constatations montrant que la majorité des failles de sécurité proviennent de problèmes liés à la gestion de […]

The post Volonté de la Maison Blanche de bannir les langages C et C++ pour des raisons de sécurité first appeared on UnderNews.

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.

Agence ou freelance : à qui faire appel pour créer votre application mobile ?

Par : UnderNews
4 février 2024 à 18:07

Vous avez un projet d’application mobile et vous souhaitez confier son développement à un professionnel pour son développement ? Deux choix principaux s’offrent à vous. Faire appel à une agence de développement d’application mobile ou à un freelance spécialisé. Dans cet article, nous allons étudier point par point les avantages et inconvénients de chaque solution […]

The post Agence ou freelance : à qui faire appel pour créer votre application mobile ? first appeared on UnderNews.

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 !

RTX Remix : ajoutez du DLSS, du ray-tracing et des textures générées par IA à n’importe quel jeu

Disponible pour un cercle restreint de modeurs et développeurs depuis quelques temps déjà, RTX remix est enfin passée en bêta ouverte. En pratique, n'importe qui peut désormais profiter du logiciel de NVIDIA pour embellir n'importe quel jeu, ou presque.

L’article RTX Remix : ajoutez du DLSS, du ray-tracing et des textures générées par IA à n’importe quel jeu est apparu en premier sur Tom’s Hardware.

full

thumbnail

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 ».

Screenshot To Code – Quand l’IA génère le code d’une page web à partir de sa capture écran

Par : Korben
13 décembre 2023 à 09:00

Vous êtes développeur, mais vous n’êtes pas designer et encore moins spécialiste en UX / UI… Alors que faire ?

Et bien le mieux c’est encore de pomper ce qu’on fait les autres. Enfin, s’inspirer… Vous m’avez compris. Et pour cela, il existe un outil merveilleux qui s’appelle Screenshot To Code et qui comme son nom l’indique, est capable de convertir une simple capture écran d’interface web en HTML / CSS Tailwind.

Mais comment est-ce possible ? Et bien Screenshot To Code utilise simplement GPT-4 Vision pour analyser le code et Dall-E pour générer des images similaires.

Vous pouvez l’installer sur votre ordinateur en suivant les instructions du Github, voire le faire tourner sur un Docker. Mais si c’est juste pour tester, le plus simple c’est encore d’aller sur cette démo en ligne.

Pour l’avoir testé, la génération du code est impressionnante, mais niveau rendu, on est très loin de la copie parfaite. Cependant, comme on peut ajuster en discutant avec l’IA, il est possible de s’approcher du rendu voulu.

Ensuite y’a plus qu’à exporter le code et voilà ! Vous avez une maquette HTML / CSS d’un site à moindres frais (ça vous coûte l’utilisation de l’API d’OpenAI)

À découvrir ici.

Pixi – Pour créer des environnements de dev aux petits oignons

Par : Korben
11 décembre 2023 à 09:00

Que vous soyez sous macOS, Linux ou Windows, si vous êtes développeur, alors Pixi risque de vous intéresser. Ce projet écrit en Rust, au logo « apéricube » n’est ni plus ni moins qu’un gestionnaire de paquets fonctionnant sur l’écosystème Conda et permettant d’installer toutes les libs et outils dont vous auriez besoin dans vos projets.

Pixi est libre et open source et s’inspire fortement de Cargo pour ceux qui connaissent. Il supporte Python, R, C/C++, Rust, Ruby et bien d’autres langages. Et permet de reproduire des environnements à l’identique entre les OS sans avoir besoin de Docker, tout simplement grâce aux fichiers lockfiles qu’il crée automatiquement.

Pour installer Pixi sous Linux et macOS :

curl -fsSL https://pixi.sh/install.sh | bash

Et sous Windows, ouvrez un Powershell et entrez la commande :

iwr -useb https://pixi.sh/install.ps1 | iex

Ensuite y’a plus qu’à créer votre projet comme ceci :

pixi init pixi-hello-world
cd pixi-hello-world

Ajoutez ensuite les dépendances dont vous avez besoin :

pixi add python

Ou si vous voulez une version spécifique du paquet :

pixi add python==3.10

Créez le code dont vous avez besoin (ici ce sera donc hello_world.py) :

def hello():
    print("Salut tout le monde !!!!")
 
if __name__ == "__main__":
    hello()

Puis lancez ce code dans votre environnement :

pixi run python hello_world.py

Sachez qu’il est également possible de mettre ce code dans une tâche (task) comme ceci :

pixi task add hello python hello_world.py

Mon code étant dans la task « hello », je peux maintenant l’appeler comme ceci :

pixi run hello

Et pour avoir un Shell dans l’environnement que vous venez de créer :

pixi shell

Et une fois que vous êtes content, y’a plus qu’à faire un

pixi build

Pour récupérer un package Conda prêt à être déployé ailleurs.

Bref, super pratique pour mettre en place un environnement aux petits oignons avec les bons paquets et les bonnes versions sans se prendre la tête. Cela permet d’avoir des environnements isolés facilement reproductibles et donc partageables.

À tester d’urgence 🙂

Protégez votre application Android des curieux grâce à la lib ARTful

Par : Korben
1 décembre 2023 à 09:00

Aujourd’hui, je vous présente ARTful, une bibliothèque Android native pour modifier l’Android Runtime (ART) sur Android 13 et 14. Ça va faire plaisir aux développeurs qui veulent mettre des bâtons dans les roues des curieux qui aiment jouer avec les apps Android en les analysant d’un peu trop près.

La magie de cette bibliothèque réside dans sa capacité à changer dynamiquement l’implémentation de n’importe quelle méthode statique, éliminant l’utilisation de références en clair et entravant l’ingénierie inverse.

Pour vous donner un aperçu concret de ce que ARTful peut faire pour vous, imaginez une application où les développeurs veulent éviter que les pirates ne mettent le nez dans leur code. Grâce à ARTful, ils peuvent modifier dynamiquement les méthodes statiques pour les rendre plus résistantes à l’ingénierie inverse. Et voilà, mission accomplie !

Et pour que tout le monde puisse profiter des bienfaits de cette bibliothèque, les concepteurs ont choisi de la rendre open source ici : Github ARTful.

Eclatez-vous bien !

❌
❌