Vue normale

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

BugStalker – Le debugger Rust puissant et convivial

Par : Korben
3 septembre 2024 à 07:00

Je sais, convivial c’est un mot bizarre pour parler d’un outil de débogage, mais celui-ci va vous faire kiffer si vous codez en Rust. Ça s’appelle BugStalker et c’est juste le debugger qu’il vous faut pour traquer les bugs vicieux dans vos programmes puisqu’il comprend toutes les subtilités du langage.

Ça veut dire qu’il sait gérer les types Rust complexes comme les vecteurs, les pointeurs intelligents et même les variables locales des threads. Et il ne fait pas que les afficher joliment, il vous permet carrément d’interagir avec !

Vous pouvez poser des breakpoints où vous voulez dans votre code, que ce soit sur une ligne précise, une fonction ou même une instruction assembleur. Et quand votre programme s’arrête sur un breakpoint, vous pouvez contrôler son exécution pas à pas, rentrer dans les fonctions ou les sauter, tout ça à la volée.

Et si vous avez besoin d’inspecter les données de votre programme, il a ce qu’il vous faut dans le ventre. Vous pouvez par exemple évaluer des expressions pour afficher les variables locales et globales, les arguments des fonctions, et même découper des tableaux ou des vecteurs pour voir ce qui se cache dedans.

L’outil vous propose deux interfaces au choix : une classique en ligne de commande, et une interface graphique en mode TUI (Text User Interface) qui claque. Et le kif, c’est que vous pouvez passer de l’une à l’autre quand vous voulez pendant une session de débogage !

Ah et j’allais oublier un truc énorme : les Oracles ! Non, je ne parle pas de la boîte qui fait des bases de données, mais d’une fonctionnalité trop stylée de BugStalker. En gros, c’est des modules qui viennent se greffer au debugger pour vous filer des infos sur des aspects spécifiques de votre programme. Par exemple, l’Oracle Tokio vous donne des insights sur le runtime Tokio si vous faites de l’asynchrone, sans avoir à modifier votre code. Trop fort !

Bon allez, je vais pas vous faire languir plus longtemps. Si vous voulez essayer, c’est tout simple, vous installez ça avec cargo :

cargo install bugstalker

et hop, vous êtes prêts à déboguer comme des pros. Et si jamais vous avez un souci avec la dépendance libunwind, y a même une version sans, mais entre nous, libunwind c’est quand même mieux.

Franchement, je « ne contracte pas » quand je vous dis que BugStalker c’est le debugger qu’il vous faut pour vos projets Rust. Avec lui, traquer les bugs c’est presque devenu un sport national, alors go sur https://github.com/godzie44/BugStalker , votre code Rust vous dira merci !

Allez, sur ce je vous laisse, j’ai un programme à déboguer moi (non, mon code est parfait).

uv – L’installateur Python ultra-rapide

Par : Korben
26 août 2024 à 07:00

Vous en avez assez d’attendre des heures pour installer vos dépendances Python ? Et la nuit, dans vos draps humides, vous rêvez d’un outil qui rendrait ce processus ultra-rapide et indolore ?

Ne cherchez plus, uv est là pour vous !

Écrit en Rust par les mêmes qui ont fait Ruff, uv est un installateur Python et un résolveur de dépendances d’une rapidité époustouflante. Conçu comme une alternative à pip et pip-tools, il offre des performances jusqu’à 100 fois supérieures et il est aussi facile à utiliser que pip. Vous pouvez l’installer en un clin d’œil avec curl, pip, pipx ou même Homebrew. Une fois en place, créez votre environnement virtuel avec uv venv, activez-le, et vous voilà prêt à installer des packages en un temps record grâce à des commandes intuitives comme

uv pip install flask

uv gère également la génération de fichiers de dépendances verrouillés, pour garantir la reproductibilité de votre environnement sur n’importe quelle plateforme.

Avec

uv pip compile

vous pouvez générer un fichier requirements.txt à partir de diverses sources : requirements.in, pyproject.toml, setup.py ou même l’entrée standard. Et pour synchroniser votre environnement avec ce fichier, rien de plus simple :

uv pip sync requirements.txt

Mais ce n’est pas tout. uv regorge de fonctionnalités avancées pour répondre à tous vos besoins. Vous pouvez définir des overrides de versions de dépendances, choisir entre différentes stratégies de résolution, gérer les dépendances Git avec une authentification simplifiée, et même installer dans des environnements Python arbitraires grâce à l’option --python.

Côté performances, le secret d’uv réside dans son utilisation intelligente du cache. Les dépendances déjà téléchargées sont stockées de manière optimisée, et uv se base sur des informations comme les en-têtes de cache HTTP ou les hachages Git pour déterminer si une dépendance doit être retéléchargée. Vous pouvez contrôler finement le comportement du cache avec des options comme --refresh ou --no-cache.

Autre avantage indéniable d’uv : sa gestion avancée de l’authentification. Que ce soit pour les dépôts Git privés ou les registres de packages, uv vous permet de vous authentifier de multiples façons : SSH, HTTPS avec nom d’utilisateur et mot de passe ou token, fichier netrc, et même le keyring de votre système !

C’est également un outil multi-plateforme qui fonctionne de manière optimale sur macOS, Linux et Windows, avec un support de premier ordre pour les architectures x86_64. Et si vous utilisez une plateforme plus exotique, il y a de grandes chances qu’uv soit également disponible grâce à une compatibilité étendue.

C’est vraiment à tester si vous faites du python.

A découvrir ici : https://github.com/astral-sh/uv

Plandex – L’assistant qui dev

Par : Korben
22 août 2024 à 07:00

Plandex est un open-source, qui se pilote directement depuis votre terminal, qui grâce à ses agents intelligents tournant en tâche de fond, est capable de prendre en charge des tâches complexes qui s’étalent sur plusieurs fichiers et nécessitent de nombreuses étapes.

Le principe est simple : vous balancez une tâche à Plandex, et il se charge de la découper en sous-tâches plus digestes qu’il va réaliser une par une jusqu’à ce que le job soit bouclé. C’est encore mieux qu’un stagiaire ^^.

Plandex vous permet d’avancer plus rapidement sur votre backlog, de vous débloquer quand vous séchez sur une techno et de passer moins de temps sur les trucs chiants, tout ça sans risque, puisque les modifications sont d’abord appliquées dans un bac à sable protégé (sandbox) que vous pouvez valider avant de les intégrer à votre projet. Et grâce à son système de gestion de versions, vous pouvez facilement revenir en arrière ou tester différentes approches en parallèle.

Autre point fort de Plandex : la gestion du contexte. Vous pouvez ajouter des fichiers ou des dossiers entiers au contexte de l’IA en un clin d’œil, et ils seront automatiquement mis à jour au fur et à mesure de votre travail. Comme ça, vous êtes sûr que l’IA a toujours accès à l’état le plus récent de votre projet pour un résultat optimal.

Plandex est compatible avec les principaux OS du marché (Mac, Linux, Windows…) et se lance directement depuis un exécutable standalone, sans dépendances. Il suffit de l’installer, de lui refiler votre clé d’API OpenAI, et c’est parti mon kiki !

Mais attention, Plandex ne va pas coder votre projet à votre place du début à la fin. Il faut le voir comme un assistant qui va vous mâcher le boulot et vous faire gagner un temps précieux, mais vous devrez quand même garder un œil sur ce qu’il fait. Les mises à jour de fichiers automatiques peuvent parfois avoir besoin d’un petit coup de polish manuel.

Mais dans l’ensemble, les résultats sont plutôt satisfaisants surtout quand on prend le temps de bien formuler ses instructions et de sélectionner les bons fichiers à mettre dans le contexte. C’est sûr que si vous balancez votre projet en vrac dans sa totalité, l’IA va avoir du mal à s’y retrouver et à produire un code propre mais utilisé intelligemment, ça peut vite devenir votre meilleur pote.

D’ailleurs, les mecs derrière le projet ne manquent pas d’idées pour améliorer leur bébé. Support des modèles open-source, intégration avec d’autres providers d’IA comme Google ou Anthropic, plugins communautaires… Les chantiers en cours ne manquent pas, et c’est tant mieux !

Jetez un œil au repo GitHub du projet, y’a de quoi s’amuser !

Portr – Tunnelisez facilement vos connexions HTTP et TCP

Par : Korben
21 août 2024 à 07:00

Vous êtes en train de bosser sur votre dernier projet révolutionnaire qui va changer la face du monde (ou pas), mais vous avez besoin de le montrer à votre équipe ou à des testeurs externes… Sauf que voilà, votre serveur est bien au chaud sur votre machine locale et personne n’y a accès. C’est là que Portr entre en scène tel un chevalier blanc sur son destrier étincelant !

Cet outil permet grâce à une solution de tunnel, d’exposer des connexions HTTP et TCP locales à l’internet mondial \o/. Et tout ça en utilisant le transfert de port à distance SSH. En gros, ça permet de créer un tunnel sécurisé entre votre machine et un serveur distant, et de rediriger le trafic vers votre serveur local.

Bon, Portr est principalement conçu pour les petites équipes qui ont besoin d’exposer des serveurs de développement sur une URL publique donc si vous comptez l’utiliser pour héberger le prochain Facebook, passez votre chemin. Mais ça offre :

  • Tunnelisation facile des connexions HTTP et TCP
  • Tableau de bord d’administration pour gérer les équipes et les utilisateurs
  • Inspecteur Portr pour analyser et rejouer les requêtes HTTP

Et si vous voulez voir à quoi ça ressemble en vrai, je vous ai dégoté 2 petites vidéo de démo :

Si ça vous dit d’essayer, direction le repo GitHub du projet. Vous y trouverez tout ce qu’il faut pour installer et configurer Portr. Ah et j’oubliais (décidemment…), Portr est open source et distribué sous licence GNU Affero General Public License v3.0 (AGPL-3.0) donc vous pouvez l’utiliser, le modifier et le redistribuer à votre guise.

Bon allez, je vous laisse, j’ai un tunnel à creuser moi.

Ghore – Convertissez vos fichiers Markdown en HTML façon GitHub

Par : Korben
19 août 2024 à 07:00

Vous êtes développeur ou rédacteur et vous travaillez souvent avec GitHub ? Alors laissez-moi vous présenter Ghore, un outil en ligne de commande qui va changer votre façon de prévisualiser vos fichiers Markdown avant de les committer !

Ghore est un outil open-source qui convertit simplement vos fichiers Markdown en HTML, en imitant à la perfection le style de rendu de GitHub. Fini le temps où vous deviez pusher vos modifications pour voir à quoi ressemblera votre README.md une fois sur GitHub. Là, vous aurez un aperçu instantané, directement dans votre terminal :

  • Vous pouvez l’utiliser complètement hors-ligne. Pas besoin d’Internet pour faire mumuse avec vos fichiers Markdown. Vous pouvez même l’utiliser dans un bunker anti-atomique, si ça vous chante !
  • Il surveille automatiquement les changements dans votre fichier Markdown et met à jour le rendu HTML en temps réel. C’est un peu comme si Ghore lisait dans vos pensées et anticipait vos moindres modifications. Flippant et génial à la fois.
  • Vous aimez les blocs de code colorés et syntaxiquement parfaits ? Ghore aussi ! Grâce à l’intégration de Starry Night, vos blocs de code n’ont jamais été aussi beaux. C’est presque un plaisir de lire du code dans le terminal.
  • Cerise sur le gâteau, Ghore prend en charge la prévisualisation en direct des blocs de code Mermaid. Vous savez, ces diagrammes super pratiques qu’on peut faire en Markdown ? Eh bien, même l’API de GitHub ne les prend pas en charge nativement, mais Ghore, si ! Vous allez pouvoir épater vos collègues avec vos diagrammes interactifs.

Bref, pour utiliser Ghore, rien de plus simple. Clonez le dépôt, installez les dépendances avec npm, et vous êtes prêt à convertir vos fichiers Markdown en un clin d’œil.

git clone https://github.com/p-balu/ghore.git

cd ghore

npm install

npm start votre/fichier/README.md

Et si vous voulez personnaliser le rendu HTML, pour mettre du Comic Sans rose fluo sur fond vert, allez-y, personne ne vous jugera (enfin, presque) ! Ghore vient en effet, avec son propre fichier CSS que vous pouvez tripatouiller à votre guise.

C’est dispo ici.

Pylyzer – Une analyse statique Python 100 fois plus rapide !

Par : Korben
5 août 2024 à 07:00

Vous en aviez marre des analyseurs de code Python plus lents qu’un escargot sous Xanax ? Et bien dites bonjour à pylyzer, la nouvelle star de l’analyse statique ! 🚀

Ce p’tit truc est écrit en Rust, ce qui lui permet d’être en moyenne 100 fois plus rapide que ses concurrents comme pytype ou pyright. En plus de la vitesse, pylyzer se distingue par son analyse ultra détaillée. On parle pas juste de type checking basique là, pylyzer est capable de détecter les accès hors limites à des listes ou les accès à des clés inexistantes dans des dictionnaires.

D’ailleurs, contrairement à ce qu’on pourrait penser, pylyzer n’est pas qu’un simple type checker. C’est un véritable couteau suisse de l’analyse statique ! Il fait aussi office de linter pour vous aider à garder un code propre et consistant.

Bon après, faut pas se leurrer, pylyzer a ses limites. Déjà, il suppose que votre code est potentiellement statiquement typé, donc oubliez les exec, setattr et compagnie. Ah et le typage de l’API standard de Python n’est pas complet donc vous risquez de voir des erreurs du genre « cette API n’existe pas », soyez prévenus ! Enfin, vu que le type checking de pylyzer est conservatif dans son approche, vous risquez de voir pas mal de faux positifs. Si ça vous saoule, désactivez les diagnostics, on ne vous en voudra pas (mais je vous le déconseille quand même) ! 😅

En parlant d’accès, vous n’aurez aucun mal à accéder aux rapports d’erreur de pylyzer car contrairement à certains, ils sont clairs comme de l’eau de roche ! Fini le charabia illisible, on vous montre exactement où se situe l’erreur et on vous explique le problème sans prise de tête. Et côté fonctionnalités, pylyzer ne fait pas les choses à moitié. Le support LSP est hyper riche, de la complétion au renommage en passant par plein d’autres features bien cool. Tout ça grâce à l’adaptation du serveur de langage de Erg. Et si vous voulez en profiter directement dans VSCode, pas de souci ! L’extension est dispo sur le Marketplace et hop, c’est réglé ! 😎

Maintenant vous allez me dire « OK c’est bien beau tout ça, mais pylyzer il sert à quoi comparé à Ruff par exemple ?« . Alors oui, Ruff est aussi un outil d’analyse statique pour Python écrit en Rust, mais lui se concentre uniquement sur le linting tandis que pylyzer fait du type checking et sert de serveur de langage. En gros, on ne mélange pas les torchons et les serviettes !

Si vous voulez savoir comment ça marche dans le détail, sachez que pylyzer utilise le type checker de Erg en interne, en plus de ses propres capacités de vérification de type. Il convertit l’AST Python en AST Erg avant de le passer au type checker, puis il adapte les résultats pour Python. Malin ! 😏 Par contre, Erg n’est pas un langage transpilé en Python comme on pourrait le croire, il peut tourner directement sur la machine cible.

Malgré ces petits défauts, pylyzer gère quand même un paquet de trucs : type checking sur les variables, opérateurs, fonctions, méthodes et classes, inférence de type, résolution des modules et packages, les types des collections (list, dict, tuple), une bonne partie de typing, les types génériques et variance, les type guards, le type narrowing (qui peut se faire avec is et isinstance mais pas que), les assertions de type (via typing.cast par exemple)… Bref, ça en fait des belles jambes dis donc ! 🦿

Alors vous attendez quoi pour tester ce petit bijou ?

Github2file – Partagez votre code avec les chatbots IA

Par : Korben
1 août 2024 à 07:00

Qui ne s’est jamais dit : « Tiens, ce serait cool de filer tout mon code à mon chatbot pour qu’il puisse m’aider à débugger ce bazar« .

Et bien c’est exactement ce que github2file permet de faire.

Ce petit script Python va se connecter direct à votre dépôt GitHub, aspirer tout votre code en un clin d’œil et vous pondre un joli fichier texte bien propre, prêt à être envoyé à votre IA préférée. Et le top, c’est que vous pouvez filtrer les fichiers par langage (Python ou Go), virer les commentaires et les docstrings si ça vous chante, choisir la branche ou le tag à télécharger et même exclure certains répertoires ou types de fichiers. Bref, c’est vous le patron !

Tenez, un petit exemple pour la route. Disons que vous voulez balancer le code du célèbre dépôt Transformers de Hugging Face à votre chatbot.

Facile ! Suffit de taper ça dans votre terminal :

python github2file.py https://github.com/huggingface/transformers

Et vous voilà avec un fichier transformers_python.txt qui contient tout le code Python du dépôt. Si vous kiffez plus le Go, remplacez juste l’option --lang par "go" et le tour est joué. Easy !

Et si votre dépôt est privé, pas de panique, github2file a pensé à tout ! Balancez-lui votre nom d’utilisateur et un token d’accès personnel GitHub, et il se débrouillera comme un chef :

python github2file.py https://<USERNAME>:<GITHUB_ACCESS_TOKEN>@github.com/username/private-rep

Et voilà, fini les prises de tête pour partager votre code avec les chatbots ! Plus besoin de faire des copier-coller à rallonge ou d’uploader 36 fichiers à la main. Pour tester, c’est par ici que ça se passe.

Avec ça, vous avez toutes les cartes en main pour devenir des pros du partage de code avec les IA. Alors à vos claviers, et montrez-nous ce que vous savez faire ! 🙌

Cloudzip – Montez un zip distant et accédez à ses fichiers sans tout télécharger

Par : Korben
29 juillet 2024 à 07:00

Imaginons que vous ayez une énooorme archive zip stockée quelque part dans le cloud, disons sur un bucket S3, et vous avez besoin d’accéder à quelques fichiers précis à l’intérieur. Qu’est-ce que vous faites ? Et bien comme tout le monde, vous téléchargez les 32 Go en entier, vous dézippez le bazar et tout ça pour récupérer 3 malheureux fichiers…

Et ben figurez-vous que j’ai déniché un p’tit outil bien sympa qui va vous faciliter la vie : Cloudzip ! Ca permet de monter votre archive zip distante directement sur votre machine, comme un disque dur externe, comme ça, vous pouvez accéder aux fichiers dont vous avez besoin, les copier, les utiliser, tout ça sans avoir à télécharger l’intégralité de l’archive.

Exemple :

cz ls s3://example-bucket/path/to/archive.zip

Plutôt cool, non ?

Le fonctionnement de Cloudzip est assez ingénieux. Il se base sur deux principes simples mais diablement efficaces :

  1. Les fichiers zip permettent un accès aléatoire en lecture. Ils ont un « répertoire central » stocké à la fin de l’archive qui décrit tous les fichiers contenus, avec leurs offsets. Pas besoin de lire l’archive en entier pour trouver un fichier.
  2. La plupart des serveurs HTTP et des services de stockage dans le cloud (S3, Google Cloud Storage, Azure Blob Storage, etc.) supportent les requêtes HTTP avec des « range » headers. En gros, ça permet de ne récupérer qu’une partie d’un fichier distant.

En combinant ces deux principes, Cloudzip est capable de récupérer juste le répertoire central de votre archive zip (qui ne pèse que quelques Ko) pour avoir la liste des fichiers, et ensuite de télécharger uniquement les bouts de fichiers dont vous avez besoin au moment où vous y accédez !

Pour l’installer :

git clone https://github.com/ozkatz/cloudzip.git
cd cloudzip
go build -o cz main.go

Puis copiez le binaire cz dans un endroit accessible via votre $PATH :

cp cz /usr/local/bin/

Et là ou ça devient encore plus dingue (oups pardon, je voulais dire « intéressant ») c’est qu’avec le paramètre mount, Cloudzip peut carrément monter votre archive zip distante comme un répertoire local. En fait, il va démarrer un petit serveur NFS en local, et monter ce répertoire NFS dans le dossier de votre choix.

Encore un exemple :

cz mount s3://example-bucket/path/to/archive.zip some_dir/

Comme ça, vous avez accès à tous tes fichiers comme s’ils étaient en local, vous pouvez les ouvrir direct dans vos applications, les traiter, et tout ça sans jamais avoir eu à télécharger l’archive en entier.

Et le plus beau dans tout ça, c’est que Cloudzip fonctionne avec à peu près tous les stockages distants qu’on peut imaginer. Bien sûr, il y a S3, mais aussi HTTP, HTTPS, GCS, Azure, et même… roulement de tambour… Kaggle !

Ah Kaggle, ce repaire de Data Scientists où les datasets sont plus gros que le compteur électrique d’un mineur de Bitcoin… Cloudzip est capable d’utiliser l’API de Kaggle pour récupérer directement le zip d’un dataset sans avoir à le télécharger. Vous pouvez donc littéralement monter un dataset Kaggle en local et commencer à bosser dessus dans la seconde. Et si jamais vous avez besoin d’un fichier particulier pour tester un truc, pas de souci, il sera téléchargé à la demande.

Alors bien sûr, ce n’est pas parfait. Le montage NFS, par exemple, n’est disponible que sous Linux et macOS pour l’instant. Et faut pas s’attendre à des performances dingues non plus, on parle quand même de télécharger des bouts de fichiers à travers le réseau. Mais pour tous ces cas où vous avez besoin d’accéder à quelques fichiers dans une archive zip énorme, c’est parfait !

Et en plus, c’est est open-source (vous pensiez quand même pas que j’allais vous recommander un truc propriétaire, hein !). Vous pouvez retrouver le projet sur GitHub.

Ruff – Le linter Python intelligent et rapide

Par : Korben
12 juillet 2024 à 07:00

Si vous faites un peu de code Python, vous connaissez peut-être Ruff, un outil de contrôle pour la qualité de code pour Python >= 3.7 qu’on appelle aussi un linter.

Je l’utilise depuis le début de l’année dans mon Visual Studio Code et il est capable de faire le même job que tout un tas d’autres outils, comme Flake8, isort et même Black. Du coup, vous pouvez remplacer tous ces outils par Ruff, ça fait toujours ça en moins.

Une des fonctionnalités que je préfère dans Ruff, c’est l’autofix. En gros, quand il trouve une erreur dans votre code, il peut la corriger tout seul, comme un grand. Et quand il ne peut pas, il vous mets des explications super claires pour que vous puissiez comprendre ce qui se passe.

Puis faut dire que c’est hyper rapide aussi. Normal, les dev ont utilisé Rust, un langage de programmation connu pour ça afin qu’il analyse votre code en un temps record. On parle de 10 à 100 fois plus rapide que les autres linters du marché. Autant vous dire que ça dépote !

L’outil check plus de 500 règles différentes pour s’assurer que votre code il est au top et vous pouvez le configurer comme vous voulez, activer ou désactiver des règles, changer des paramètres… etc. Bref il s’adapte au plus près de votre façon de coder.

Y’a pas à hésiter et pour l’installer, c’est simple. Il suffit d’allez sur le site de Ruff ou sur la marketplace de Visual Studio Code pour le télécharger ou tout simplement avec cette commande pour ceux qui aiment la ligne de commande :

pip install ruff

Votre code vous dira merci et vous, c’est sûr, vous allez adorer !

OpenDevin – L’IA qui code

Par : Korben
1 juillet 2024 à 07:00

Après Devin et Devika, OpenDevin est un projet open source qui vous permet de disposer d’un ingénieur logiciel IA autonome. Créé par Cognition Labs, ce petit génie du code est capable d’exécuter des tâches complexes et de collaborer activement avec les développeurs sur des projets.

C’est encore en développement, donc loin de remplir toutes ses promesses, mais OpenDevin va pouvoir de manière totalement autonome générer du code, détecter les bugs, optimiser nos programmes…

Pour l’installer, vous aurez besoin de :

  • Linux, Mac OS, ou WSL sur Windows
  • Docker (pour ceux sur MacOS, assurez-vous d’autoriser l’utilisation de la socket Docker par défaut depuis les paramètres avancés !)
  • Python >= 3.11
  • NodeJS >= 18.17.1
  • Poetry >= 1.8

Ensuite, vous devrez « construire » le projet, ce qui inclut la configuration de l’environnement et l’installation des dépendances. Cette étape garantit qu’OpenDevin est prêt à fonctionner sans problème sur votre système.

make build

Notez qu’OpenDevin prend en charge une grande variété de modèles de langage (LM) grâce à la puissante bibliothèque litellm. Par défaut, c’est donc GPT-4 d’OpenAI qui est le modèle par défaut, mais vous avez le choix.

Pour configurer le LM de votre choix, suivez ces étapes :

  1. Utiliser le Makefile : Avec une seule commande, vous pouvez avoir une configuration de LM fluide pour votre expérience OpenDevin. Exécutez simplement : make setup-config Cette commande vous invitera à saisir la clé API du LLM et le nom du modèle, en veillant à ce qu’OpenDevin soit adapté à vos besoins spécifiques.
  2. Ou passez à la configuration manuelle : Vous pouvez mettre à jour manuellement le fichier config.toml situé dans le répertoire racine du projet. Vous y trouverez les champs llm_api_key et llm_model_name, où vous pouvez définir le LM de votre choix.

Une fois la configuration terminée, lancer OpenDevin est aussi simple qu’exécuter une seule commande. Cette commande démarre à la fois les serveurs backend et frontend de manière transparente, vous permettant d’interagir avec OpenDevin sans aucun problème.

make run

Si vous préférez, vous pouvez démarrer le serveur backend indépendamment pour vous concentrer sur les tâches ou les configurations liées au backend.

make start-backend

De même, vous pouvez démarrer le serveur frontend seul pour travailler sur les composants ou les améliorations de l’interface liés au frontend.

make start-frontend

Et si vous avez besoin d’aide :

make help

Et voilà ! Vous êtes maintenant prêt à vous lancer dans l’utilisation d’OpenDevin. Perso, je préfère encore l’approche manuelle en mode Chef de Projet avec Cursor notamment. Mais peut-être qu’un jour, un outil comme OpenDevin sera suffisamment malin pour tout faire de A à Z… qui sait ?

Jampack – Boostez votre site statique en deux temps trois mouvements !

Par : Korben
21 juin 2024 à 07:00

Aujourd’hui, je vous parle d’un truc vraiment cool nommé Jampack. En gros, c’est un outil qui prend votre site statique généré par votre générateur préféré (Hugo, Jekyll, Eleventy… y’en a pour tous les goûts !) et qui le transforme en une bête de course optimisée pour une expérience utilisateur de folie et des scores Core Web Vitals à faire pâlir les GAFAM.

Comment ça marche ce truc ? Eh bien, Jampack va scanner votre site et appliquer tout un tas d’optimisations automatiquement. Par exemple, il va :

  • Rendre vos images responsive avec des dimensions et des formats modernes comme le WebP ou l’AVIF. Fini les images qui mettent trois plombes à charger !
  • Mettre la priorité sur les assets importants au-dessus de la ligne de flottaison et lazy-loader le reste. Comme ça, votre site s’affiche direct pendant que le reste charge tranquillou en arrière-plan.
  • Inliner le CSS critique et virer le Flash of Unstyled Content (FOUC). Votre site aura la classe dès les premières millisecondes.
  • Prefetcher les liens pour accélérer la navigation. Vos visiteurs surferont à la vitesse de la lumière sur votre site !
  • Minifier et compresser tout ce qui traîne : HTML, CSS, JS, SVG… Que du bonheur pour votre bande passante.

Et tout ça sans que vous ayez à lever le petit doigt ! Juste un petit

npm install -D @divriots/jampack

et hop, magie, votre site est optimisé de fou.

Bon, vous vous dites peut-être : « Ouais, ok, mais mon site il est déjà pas mal optimisé, hein« . Eh bah, sachez que même les experts de Keycloak.ch, BayJS.org ou CloudCannon.com utilisent Jampack pour squeeze encore plus de perf. Vous pensez vraiment faire mieux ? ^^

Et bien sûr, tout le code est open-source sur GitHub, sous licence MIT. Allez, sur ce, je vous laisse, j’ai un site à optimiser moi. See ya !

A découvrir ici.

Supervision – Donnez la vue à votre projet IA

Par : Korben
18 juin 2024 à 07:00

Vous rêvez de donner à vos projets d’IA des superpouvoirs visuels ? Ne cherchez plus, Supervision est là pour vous ! Détecter des objets, segmenter des instances, annoter des images et des vidéos… tout ça devient possible en quelques lignes de code seulement grâce à ce projet qui propose une API intuitive et des fonctionnalités avancées pour vous faciliter la vie.

Le secret de Supervision ? Une intégration transparente avec les meilleures librairies de deep learning du moment comme YOLO-NAS, YOLOv8…etc. Ces modèles surpuissants de détection d’objets n’auront plus de secrets pour vous et grâce à eux, vous pourrez identifier et localiser précisément chaque élément dans vos images et vidéos.

Supervision vous offre aussi des outils d’annotation et de visualisation hyper pratiques. Vous pourrez par exemple dessiner des boîtes englobantes autour des objets détectés, afficher les masques de segmentation avec des couleurs personnalisées, ajouter des étiquettes et des scores de confiance…etc.

Côté données, il assure également avec son API de gestion de datasets qui permet de charger vos images et annotations au format YOLO en un clin d’œil, explorer votre dataset, filtrer et spliter les données comme un pro…etc. C’est super simple !

Si ça vous intéresse, tout est sur le repo GitHub du projet et il y a même un site dédié avec la doc, le détail des API et plein d’exemple.

GriddyCode – Codez comme un boss avec ce nouvel éditeur survolté !

Par : Korben
15 juin 2024 à 07:00

Ras le bol des éditeurs de code tout mous du genou ? Si vous rêvez de coder comme un vrai killer, avec la classe et l’efficacité d’un ninja du clavier, ne cherchez plus, GriddyCode est là pour vous !

Cet IDE nouvelle génération est open-source et cross-platform, ce qui veut dire que vous pouvez l’utiliser sur votre Linux, votre Mac ou même votre Windows si vous avez perdu un pari. Et le meilleur dans tout ça, c’est qu’il est entièrement personnalisable ! Comme c’est comme c’est développé en Godot, vous pouvez le modifier assez simplement via l’éditeur Godot et le compiler comme bon vous semble sur votre plateforme, même si c’est un peu plus rock n roll.

Vous pouvez mettre le thème de votre choix mais également créer le vôtre en deux coups de cuillère à pot grâce aux fichiers de config en Lua. D’ailleurs, Lua c’est le cœur GriddyCode puisque ça permet de faire des plugins afin d’ajouter des fonctionnalités de ouf, comme de la coloration syntaxique pour votre langage préféré ou de l’autocomplétion.

En parlant de fonctionnalités, GriddyCode en a à la pelle : Il dispose comme je le disais, d’une interface minimaliste mais super efficace, avec juste ce qu’il faut où il faut. Il supporte une chiée de langages et de formats de fichiers, et il a même un mini terminal intégré pour lancer vos commandes sans quitter l’éditeur.

Y’a plein de petits détails dedans qui font la différence comme la barre de progression hyper classe en bas de l’éditeur ou encore les commentaires façon réseaux sociaux quand on fait Ctrl+L dans le logiciel.

Si vous êtes développeur ou simplement bidouilleur et que vous cherchez un éditeur de code qui en a dans le ventre, allez jeter un oeil à GriddyCode. C’est gratuit et ça marche bien.

Devika – Votre ingénieur logiciel personnel

Par : Korben
11 juin 2024 à 07:00

Si vous voulez passer à la vitesse supérieur en terme de développement, voici un projet qui va vous intéresser. Cela s’appelle Devika et c’est un outil qui agit comme un véritable pair programmer, c’est à dire un « collègue » IA capable de comprendre des instructions complexes en langage naturel, de les décomposer en étapes, de rechercher les informations pertinentes et de générer du code fonctionnel pour atteindre l’objectif. Cela vient directement concurrencer le service Devin qui a buzzé y’a quelques temps sauf que c’est totalement open source.

Grâce à ses capacités avancées de traitement du langage naturel, cette « IA » peut interpréter vos instructions de haut niveau et les transformer en un plan d’action concret. Une fois le plan établi, elle se met au travail et utilise ses connaissances en programmation et ses capacités de recherche web pour trouver les informations dont elle a besoin pour mener à bien votre projet : Snippets de code, exemples de bonnes pratiques ou explications détaillées… A partir de ça, elle peut alors générer du code dans le langage de programmation de votre choix.

Pour l’installer, il vous faudra ollama, uv, bun et suivre le tuto suivant :

ollama serve
git clone https://github.com/stitionai/devika.git
cd devika/
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
playwright install --with-deps
cd ui/
bun install
bun run dev

Puis en parallèle :

python3 devika.py

Vous devrez ensuite vous connecter à http://localhost:3000/ et remplir toutes les clés API, de votre clé OpenAI, en passant par votre clé API Google / Bing…etc. Et ensuite vous pourrez commencer à bosser les agents de Devika.

L’un des aspects les plus impressionnants de Devika, c’est sa capacité à s’améliorer constamment grâce notamment à ses algorithmes d’apprentissage automatique. Elle apprend de chaque interaction avec les développeurs et de chaque projet sur lequel elle travaille, ainsi, plus elle est utilisée, plus elle devient efficace.

Bien sûr, comme toute technologie émergente, c’est pas encore parfait et surtout, ça soulève des questions : Comment s’assurer que le code généré par l’IA est sécurisé et sans bugs ? Comment l’intégrer dans des workflows de développement existants ? Est-ce qu’il faut licencier les développeurs qui passent plus de temps sur le site de Korben qu’à bosser ? Des questions existentielles, comme vous pouvez le voir…

Si vous êtes intéressé par ce projet et que vous souhaitez l’essayer par vous-même, rendez-vous sur le dépôt GitHub du projet.

Merci à Emrik pour le partage !

Codestral – Le modèle IA des développeurs

Par : Korben
30 mai 2024 à 06:44

Codestral, le tout nouveau modèle de code de Mistral AI, débarque pour le plus grand plaisir (ou pas) des développeurs ! Créé par l’équipe de Mistral AI et lancé hier, Codestral est donc un modèle de génération de code ouvert spécialement conçu pour les tâches de génération de code. Il maîtrise plus de 80 langages de programmation, dont les incontournables Python, Java, C++, JavaScript et même le vénérable Fortran.

Si vous galérez sur une fonction, il vous aidera à la compléter en 2 coups de cuillère à pot et si vous avez besoin de tests, cet expert les génèrera à votre place pendant que vous serez parti à la machine à café. Grâce à sa capacité de remplissage au milieu (fill in the middle), il pourrait ainsi compléter n’importe quel bout de code, même le plus complexe.

En termes de performance, il établit de nouveaux records. C’est un modèle de 22 milliards de paramètres, mais grâce à sa fenêtre contextuelle de 32 000 tokens, il surpasse les autres modèles sur de nombreux benchmarks, y compris le RepoBench pour la génération de code à longue portée. Sur des tests spécifiques comme HumanEval, MBPP pour le Python et Spider pour le SQL, Codestral affiche également des performances impressionnantes devant GPT-4-Turbo et GPT-3.5.

Ce modèle est accessible sur HuggingFace, où vous pouvez le télécharger et avec l’API de Mistral AI, quelques lignes de code suffisent pour l’intégrer dans votre projet. Les adeptes de VSCode et JetBrains seront ravis puisque les plugins Continue.dev et Tabnine ont également intégré ce modèle, pour coder et interagir avec lui directement dans votre IDE préféré. Vous pouvez également y avoir accès via le Chat de Mistral.

Perso, j’utilise Claude 3 Opus et GPT-4o pour mon code mais je vais commencer à tester celui-là également. En tout cas, si ça vous intéresse, rendez-vous sur la documentation officielle de Mistral AI ici.

Source

Gérez vos PRs et issues GitHub comme un pro avec gh-dash

Par : Korben
28 mai 2024 à 06:30

gh-dash est une extension pour l’interface en ligne de commande gh de GitHub qui va vous permettre de visualiser et d’interagir avec vos Pull Requests et Issues dans un tableau de bord ultra-pratique, entièrement configurable selon vos besoins.

Vous lancez gh-dash dans votre terminal, et d’un coup d’œil, vous avez comme ça une vue d’ensemble de toutes les pull requests qui vous concernent, que ce soit celles que vous avez créées, celles qui attendent votre revue ou encore celles auxquelles vous êtes abonné. Idem pour les issues, regroupées par catégories : celles que vous avez ouvertes, celles qui vous sont assignées, celles que vous suivez… Et tout cela, trié et filtré exactement comme vous le souhaitez grâce à la puissance des filtres GitHub.

L’outil permet de définir des sections en utilisant des filtres GitHub, de rechercher des PRs et des issues, et de personnaliser les colonnes avec les propriétés hidden, width et grow. Vous pouvez également visualiser les détails d’une PR ou issue via une barre latérale détaillée. De plus, gh-dash permet d’agir directement sur vos PRs et issues depuis le tableau de bord.

Vous voulez faire un checkout sur une branche pour une PR ? Ajouter un commentaire ? Fusionner une PR ? Ouvrir une issue dans votre navigateur ? Toutes ces actions sont à portée de main, d’un simple raccourci clavier. Vous pouvez même définir vos propres raccourcis personnalisés pour lancer les commandes de votre choix.

Vous pouvez aussi choisir un thème visuel pour avoir un rendu plus joli (surtout si vous avez installé une police Nerd Font), et même définir plusieurs fichiers de configuration pour basculer entre différents tableaux de bord selon vos besoins. Vous pouvez ajuster divers paramètres dans votre fichier config.yml comme le nombre de résultats maximum par section, l’intervalle de rafraîchissement automatique du tableau de bord, les chemins vers les dépôts pour le checkout… Bref, de quoi avoir un outil qui s’adapte parfaitement à votre workflow.

Pour installer gh-dash, assurez-vous d’abord d’avoir une version minimum de gh (2.0.0). Ensuite, vous pouvez installer l’extension en exécutant la commande suivante :

gh extension install dlvhdr/gh-dash

A vous de jouer maintenant !

Source

RustPython – Python puissance Rust

Par : Korben
26 mai 2024 à 16:47

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

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

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

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

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

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

cd RustPython
cargo run --release demo_closures.py

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

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

Source

Project IDX – L’IDE nouvelle génération de Google arrive en bêta publique !

Par : Korben
15 mai 2024 à 14:17

Project IDX, le petit dernier de Google dans la famille des IDE, sort enfin de sa phase d’incubation pour se frotter au grand public ! Fini le club sélect des happy few triés sur le volet, maintenant tout le monde peut mettre les mains dans le cambouis de cet environnement de dev’ d’un nouveau genre.

Oubliez vos bon vieux IDE installés sur votre bécane, là on parle d’un Visual Studio Code en ligne propulsé à l’IA Google, c’est à dire Gemini 1.5. IDX intègre une armada d’outils et de fonctionnalités censées vous faciliter la vie : templates pour les frameworks tendances du moment (React, Vue, Angular, Flutter…), autocomplétion et suggestions de code intelligentes, debugger intégré, prévisualisation en direct, et même des émulateurs iOS et Android pour tester vos créations immédiatement.

Mais la vraie star du show, c’est donc Gemini, le modèle d’IA de Google spécialisé en dev. Cette petite merveille est capable de comprendre votre code, de vous aider à le débugger ou à l’optimiser, et même de générer des bouts de programme entiers à partir de vos instructions en langage naturel.

Par exemple, vous lui dites « crée-moi une todolist en Rust » (ce que j’ai fait) et hop, Gemini vous sort le code presque clé en main mais pas trop quand même !

Car après avoir testé la bête, je vais pas vous mentir, c’est pas encore totalement au point. Des fois Gemini part en vrille et sort du code incomplet ou bancal.

Et l’ergonomie générale de l’IDE est parfois un peu brouillonne. Ça se voit que c’est encore une bêta. Perso, j’ai une petite préférence pour l’IDE Cursor (payant) qui intègre aussi de l’IA (GPT-4o ou Claude ou ce que vous voulez) mais de façon plus fonctionnel et efficace je trouve. Mais bon, ça c’est l’avis de quelqu’un qui a ses petites habitudes. Je ne doute pas que Google va rapidement améliorer et peaufiner son bébé.

Bref, si vous voulez essayer le dernier joujou à la mode, foncez sur idx.dev pour vous inscrire et mettre les mains dans vos premiers Project IDX.

Amusez-vous bien et codez bien !

Source

Comment surveiller et debugger vos conteneurs Docker ?

Par : Korben
5 mai 2024 à 07:00

Si vous êtes devop, vous savez qu’il est essentiel de savoir surveiller et déboguer les applications en temps réel.

Mais le faire n’est pas si simple, surtout si celles-ci tournent dans des conteneurs Docker. C’est là qu’intervient l’outil libre Dozzle !

Grâce à une interface intuitive et des fonctionnalités d’analyse temps réel et de filtrage, les développeurs et les administrateurs système que vous êtes pourront facilement accéder aux journaux générés par leurs conteneurs Docker.

Avec Dozzle, les utilisateurs peuvent bénéficier d’un affichage des logs en temps réel sans avoir besoin de rafraîchir la page et l’outil prend en charge les journaux JSON avec une coloration intelligente, ce qui en facilite la lecture et la compréhension. L’installation et la configuration de Dozzle sont relativement simples et rapides. L’outil peut être installé localement ou utilisé pour se connecter à des hôtes distants via tcp:// et tls.

Le moyen le plus simple d’installer Dozzle est d’utiliser la commande Docker CLI et de monter le fichier docker.sock. Ce fichier se trouve généralement dans le répertoire /var/run/docker.sock. Vous devez également spécifier le port d’accès à l’interface de Dozzle. Par défaut, Dozzle écoute sur le port 8080, mais vous pouvez modifier le port externe en utilisant l’option -p.

Voici la commande à utiliser :

docker run --detach --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle

Docker Compose permet de configurer Dozzle plus facilement au sein d’un projet existant.

Voici un exemple de fichier docker-compose.yml pour Dozzle :

version: "3"
services:
  dozzle:
    container_name: dozzle
    image: amir20/dozzle:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 9999:8080

Ensuite, pour lancer Dozzle avec Docker Compose, enregistrez le fichier docker-compose.yml dans votre projet et exécutez la commande suivante dans votre terminal :

docker-compose up -d

Quelle que soit la méthode choisie, une fois Dozzle lancé, vous pourrez alors accéder à son interface web pour visualiser les journaux de vos conteneurs Docker.

Amusez-vous bien et bon debugging à tous !

❌
❌