Vue normale

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

Codestral – Le modèle IA des développeurs

Par : Korben
30 mai 2024 à 08: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 à 08: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 à 18: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

Il code un serveur Node JS uniquement avec des fichiers texte !

Par : Korben
23 mai 2024 à 18:35

Et si on pouvait coder un serveur web sans écrire une seule ligne de JavaScript, de TypeScript ou tout autre langage de programmation ? Juste des instructions en anglais (ou en français) tout ce qu’il y a de plus classique dans de simples fichiers texte ?

Ça paraît dingue mais c’est exactement ce qu’a réussi à faire un développeur un peu fou avec Node.js et OpenAI !

Son projet baptisé Node-in-English est donc composé de fichiers sources qui sont des .txt contenant des commandes détaillées en anglais dans le texte. Un script de build Node.js se charge alors de « compiler » ces fichiers pour générer automatiquement le code du serveur et le déployer. Cette technologie repose ainsi sur l’utilisation du langage naturel pour définir les actions et comportements d’un serveur web et le script utilise l’API d’OpenAI pour interpréter ces instructions textuelles et générer le code nécessaire pour créer les endpoints du serveur. Chaque build consomme ainsi environ 4000 tokens chez OpenAI.

Évidemment, on ne peut pas juste demander « build me a server »… Les instructions doivent être suffisamment précises pour guider le modèle de langage vers le résultat attendu. Cela implique une certaine compréhension des librairies et frameworks sous-jacents, et l’auteur admet d’ailleurs que l’expérience de coder en langage naturel est plus frustrante comparée à un vrai langage de programmation car la quantité de texte et le nombre d’essais nécessaire pour obtenir un résultat précis est bien plus important.

Mais l’idée c’était plutôt de montrer ce qu’il est possible de faire à des gens qui ne peuvent pas, ne veulent pas ou n’osent pas se lancer dans le développement classique. Un genre de porte d’entrée vers le développement en douceur, en quelque sorte. L’auteur voulait surtout voir s’il était possible de construire un serveur sans écrire de code et comprendre dans quelle mesure des compétences techniques étaient nécessaires pour créer un serveur web fonctionnel.

Le serveur généré, accessible sur https://nie.avoguard.com/, propose plusieurs endpoints basiques :

  • / : une page d’accueil HTML listant les différentes routes
  • /list : retourne la liste des endpoints au format JSON (ou parfois un tableau JSON, selon son humeur du jour)
  • /quote : affiche une citation aléatoire à partir d’une liste générée lors du build
  • /ping : répond « pong », ce qui est toujours rassurant
  • /about : retourne une courte description du serveur, ou une erreur 404
  • /contact : retourne des informations de contact, ou une erreur 404

Des endpoints DELETE et POST font aussi parfois leur apparition de manière aléatoire selon les compilations.

C’est là tout le charme (et le côté flippant) de la chose… On a beau fournir les mêmes instructions en entrée, on n’est jamais certain de ce qu’on va obtenir à l’arrivée.

Maintenant, d’un point de vue technique, les fichiers .txt du dossier text-src sont combinés dans l’ordre défini dans le script /index.js, qui représente l’unique morceau de code écrit par un humain. L’auteur compte améliorer son système pour permettre de définir des routes plus complexes et plus fiables et y’a même une petite doc pour ceux qui veulent essayer de compiler ça eux-même.

Alors, est-ce que coder en français ou en anglais est l’avenir du développement web ? Peut-être un jour mais pour le moment, on reste quand même sur un projet bien expérimental, avec un Proof of Concept à la fois amusant mais surtout instructif au niveau de ses prompts.

Alors qui sait, peut-être que dans quelques années le métier de développeur consistera à remplir des fichiers .txt plutôt qu’à pisser des lignes de code obscures. Une sorte de no-code nouvelle génération en somme…

Source

Quel est le bon age pour lancer votre langage de programmation ?

Par : Korben
21 mai 2024 à 18:00

Les langages de programmation, c’est vraiment un truc incroyable. Ça nous permet de façonner le monde et nos usages mais vous êtes-vous déjà demandé à quel âge les développeurs derrière ces langages avaient conçu leurs bébé ?

Prenons par exemple ce bon vieux Dennis Ritchie, le créateur du célèbre langage C. Et bien, figurez-vous qu’il avait sa modeste 31ème bougie sur son gâteau d’anniversaire quand il a créé ce monument en 1972. Pas mal, non ?

Et JSON, ce format de données ultra populaire ? Son inventeur, Douglas Crockford, avait déjà 46 ans bien tassés quand il a sorti ce truc en 2001. Comme quoi, il n’y a pas d’âge pour innover ! Et que dire de Kenneth E. Iverson, qui a créé le langage J à l’âge de 70 ans en 1993 ? Respect l’ancien !

D’ailleurs, si on regarde les statistiques de plus près, on se rend compte que la moyenne d’âge pour créer un langage de programmation est de 37,5 ans. Avec un record à 70 ans pour Kenneth E. Iverson avec J et un jeune prodige qui a fait ses preuves à 16 ans. Devinez qui c’est ? Roulement de tambour…

Mais oui, c’est bien Aaron Swartz ! Ce petit génie qui nous manque cruellement, a créé le format atx en 2002 à l’âge où la plupart d’entre nous galérait encore sur les équations du second degré. C’était déjà impressionnant et par la suite, Il a d’ailleurs continué à innover, travaillant plus tard avec John Gruber pour créer le format Markdown en 2004.

En parlant de jeunes prodiges, saviez-vous que Rasmus Lerdorf a créé PHP à seulement 27 ans en 1995 ? Et oui, pendant que certains cherchaient encore leur voie en fac de socio, lui changeait déjà la face du développement web !

Et à contrario, regardez aussi TypeScript (2012, Anders Hejlsberg, 52 ans), Go (2009, Rob Pike, Ken Thompson et Robert Griesemer, 53 ans en moyenne) et Clojure (2007, Rich Hickey, 48 ans), ces langages ont été concoctées par des quadras et des quinquas bien expérimentés ! La preuve que l’expérience a du bon.

Notons également que Brendan Eich a créé JavaScript à 34 ans en 1995, Guido van Rossum a développé Python à 35 ans en 1991, et Tim Berners-Lee a inventé HTML à 36 ans la même année. Quant à Richard Stallman, il a conçu Emacs Lisp à 32 ans en 1985 et avant ça Emacs à l’age de 23 ans en 1976.

Bref, si vous rêvez de créer votre propre langage de dev ou votre propre format de données et que vous arrivez dans votre quarantaine ou que vous êtes un petit jeune qui sort à peine de l’école, y’a pas d’age pour vous lancer. C’est fun et gratifiant, et qui sait, peut-être que votre petit monstre deviendra le prochain C ou JavaScript !

Source

GritQL – Le langage de requête pour manipuler du code source

Par : Korben
21 mai 2024 à 09:00

Aujourd’hui, je vous présente GritQL qui va vous permettre de fouiller et triturer du code source, sans avoir besoin d’être un crack en AST ou en parsing. Le truc génial avec ce langage de requête pour la recherche, l’évaluation et la modification du code, c’est que n’importe quel bout de code est une requête valide. Vous mettez un extrait de code entre guillemets simples, et hop, GritQL vous trouve tous les endroits où ce pattern apparaît !

Bon OK, vous allez me dire : « Mouais, mon grep il sait faire ça aussi… » sauf que GritQL est boosté aux stéroïdes notamment grâce à son moteur en Rust capable d’analyser des repos de 10 millions de lignes en un clin d’œil. Votre vieux grep, il peut aller se rhabiller ! 😜

Vous pouvez même utiliser des variables ($comme_ça) dans vos patterns pour identifier des bouts de code puis appliquer des transformations en mode « rechercher/remplacer » pour refactoriser à la volée.

Pour l’installer :

curl -fsSL https://docs.grit.io/install | bash

Et si par exemple, vous voulez remplacer tous vos console.log par des winston.log, c’est facile :

grit console.log($msg) => winston.log($msg)

Et bim, votre code est mis à jour !

GritQL dispose également d’une bibliothèque standard avec plus de 200 patterns réutilisables, comme ça, plus besoin de réinventer la roue pour les tâches courantes. Et si vous avez des patterns spécifiques, vous pouvez même les partager avec la communauté.

Autre point fort : une fois que vous maîtrisez GritQL, vous pouvez l’utiliser avec tout un tas de langages. Que vous codiez en JavaScript, Python, Java, Go, Rust ou même en SQL, plus besoin d’apprendre 15 outils différents, un seul suffit !

Et cerise sur le gâteau, il permet d’inclure facilement des règles de « auto-fix » dans vos patterns. Comme ça, vous pouvez corriger et nettoyer votre code en même temps que vous le cherchez. Pratique pour maintenir la qualité sans se prendre la tête ! 👌

Bref, je vous conseille vraiment d’aller jeter un œil à GritQL sur GitHub.

Happy hacking !

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

Par : Korben
15 mai 2024 à 16: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

CodingFont – Trouvez la police parfaite pour votre éditeur de code

Par : Korben
12 mai 2024 à 21:34

Ceci est un truc qui peut paraître anodin mais qui, croyez-moi, peut totalement changer votre vie de développeur : les polices de caractères ! Et ouais, on n’y pense pas forcément mais ça a un impact énorme sur notre confort et notre productivité. Un peu comme choisir entre un bon vieux clavier mécanique qui claque bien et un clavier tout mou qui vous bousille les articulations. Bref, vous voyez l’idée…

Je suis tombé grâce à Lorenper (merci) sur un site vraiment sympa qui s’appelle Coding Font qui permet de tester des dizaines de polices et de les comparer pour voir laquelle vous convient le mieux. Et croyez-moi, y a du choix ! Des polices fines, des grasses, des arrondies, des plus carrées… Y en a pour tous les goûts.

Perso, celle que m’a recommandé le site et qui me conviendrait le mieux est Red Hat Mono.

Après, les goûts et les couleurs hein… L’essentiel, c’est de trouver chaussure à son pied ou plutôt police à son éditeur. Ça peut paraître un détail mais je vous assure que quand vous passez 8h par jour le nez dans votre code, avoir une police confortable, c’est mieux pour la fatigue.

Pour tester et trouver la police qui vous convient le mieux c’est par ici.

HTTP Toolkit – Un super outil pour simuler et debugger des requêtes HTTP(S)

Par : Korben
10 mai 2024 à 09:00

Si vous êtes développeur, vous connaissez sûrement les galères quand on doit débugger des applis web ou mobiles à savoir intercepter les requêtes HTTP pour voir ce qui s’y passe, simuler des API… etc.

Et bien bonne nouvelle, puisqu’il y a un outil parfait pour ça : HTTP Toolkit ! C’est un soft open source développé par un certain Tim Perry, qui fonctionne sous Windows, Linux, macOS et qui permet :

  • D’intercepter en temps réel le trafic HTTP/HTTPS de n’importe quel client (browser, mobile, scripts, containers Docker…)
  • D’explorer, filtrer et inspecter en détail les requêtes et réponses (URL, statut, headers, body…)
  • De faire des breakpoints et éditer le trafic à la volée (modifier requête, simuler réponse, injecter erreurs…)
  • Mais également de prototyper entièrement des API, créer des règles pour router les requêtes sur vos endpoints

Et encore, je vous la fais courte mais y a 1000 autres features et c’est super simple à prendre en main grâce à une interface plutôt soignée avec plein de petites explications. De plus, ça s’intègre avec l’éditeur Monaco de VS Code, les DevTools, le protocole adb, les spéc Open API… Et surtout, y’a une grosse communauté de fans qui soutiennent le projet.

Avec cet outil vous pourrez par exemple intercepter en 1 clic ce qui se passe dans une fenêtre Chrome ou une application mobile spécifique sans avoir à configurer un proxy, récupérer des certificats SSL et autres joyeusetés.

Je vous invite à le tester, vous m’en direz des nouvelles. Ça se passe par ici.

Merci à Lorenper pour le soft !

Comment surveiller et debugger vos conteneurs Docker ?

Par : Korben
5 mai 2024 à 09: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 !

Flowise – Créez des applications LLM sans coder

Par : Korben
3 mai 2024 à 09:00

Ce serait quand même cool si on pouvait créer des applications basées sur l’IA sans avoir à écrire la moindre ligne de code, vous ne trouvez pas ?

Ah mais attendez, c’est possible en fait ! Et comment ? Et bien grâce à Flowise, un outil open source dont la mission est de démocratiser l’accès aux grands modèles de langage (LLM) comme GPT-3 ou LLaMA.

Grâce à une interface intuitive de type drag & drop, Flowise permet aux développeurs de tous niveaux de concevoir et déployer rapidement des agents conversationnels évolués capables de répondre à des requêtes complexes. Comme ça, fini le temps perdu à coder des fonctionnalités de base, votre job c’est juste d’innover et de vous amuser !

Parmi les fonctionnalités phares de Flowise, on retrouve donc :

  • Une bibliothèque de plus de 100 intégrations prêtes à l’emploi (Langchain, LlamaIndex…) pour enrichir vos agents
  • Un éditeur visuel pour orchestrer et enchaîner facilement les différents composants de vos apps
  • La possibilité de créer des agents autonomes, capables d’effectuer des tâches complexes en utilisant différents outils et sources de données
  • Un système de cache et de mise en mémoire pour optimiser les performances et les coûts
  • Des options de déploiement flexibles (API, SDK, widget) pour intégrer vos créations dans n’importe quelle application

Pour vous donner quelques idées, Flowise peut vous aider à créer aussi bien un chatbot spécialisé pour votre boutique en ligne, qu’un assistant personnel pour gérer votre productivité ou encore un outil de recherche intelligent pour votre base de connaissances.

Comme je le disais, la plateforme est entièrement open source et peut même fonctionner en mode « air-gapped » (sans connexion au net) avec des modèles tournant en local, ce qui est pratique si vous avez des projets plus sensibles.

Pour bien débuter avec Flowise, rien de plus simple :

  1. Installez Node.js (version 18.15.0 ou supérieure)
  2. Exécutez la commande npm install -g flowise pour l’installer
  3. Lancez l’application avec npx flowise start
  4. Ouvrez votre navigateur à l’adresse http://localhost:3000 et c’est parti mon kiki.

Vous pouvez aussi utiliser l’image Docker si vous préférez.

Ensuite, pour vous familiariser avec l’outil, vous pourrez utiliser l’un des templates fourni pour faire un agent conversationnel avec mémoire, un chatbot capable d’analyser des documents PDF et Excel ou encore un assistant personnel multi-tâches. Et pour les plus aventureux, Flowise propose également une API et un SDK complet pour intégrer vos créations dans n’importe quel projet.

Si ça vous branche, rendez-vous sur le site officiel.

GitHub Copilot Workspace – L’environnement de dev piloté par l’IA !

Par : Korben
30 avril 2024 à 13:48

J’espère que vous êtes bien installés dans votre cockpit, parce que GitHub nous a reservé une sacrée surprise : Copilot Workspace, un environnement de développement nouvelle génération entièrement propulsé par l’IA.

Vous connaissez sûrement déjà GitHub Copilot, ce fidèle acolyte qui nous assiste depuis l’année dernière en nous soufflant des suggestions de code directement dans votre IDE, et bien avec Copilot Workspace, GitHub veut carrément révolutionner la façon de concevoir des logiciels.

L’idée est simple : vous exprimez ce que vous voulez faire en langage naturel, comme si vous discutiez avec votre pote développeur et Copilot Workspace vous aide à transformer votre concept en réalité, étape par étape.

Par exemple, si vous avez une idée de fonctionnalité à ajouter à votre projet, vous ouvrez Copilot Workspace, vous saisissez une description de ce que vous voulez faire, et hop ! L’IA analyse votre requête, génère un plan d’action détaillé, et vous guide tout au long du processus de développement.

Brainstorming, planification, implémentation, tests… Chaque phase est assistée par Copilot Workspace qui vous fera des suggestions, répondra à vos questions, et automatisera un maximum de tâches fastidieuses, le tout de manière transparente et collaborative.

Le top du top, c’est que tout est « steerable » comme ils disent chez GitHub. Cela veut dire que vous gardez le contrôle à tout moment et chaque suggestion de l’IA peut être affinée, modifiée ou rejetée selon vos désirs. Bref, vous restez le pilote et Copilot n’est que votre copilote (et gardez votre culotte) !

D’ailleurs, Copilot Workspace vous permet d’orienter le système via le langage naturel à 2 endroits : en modifiant la spécification (une description de la base de code actuelle et de l’état souhaité) et en modifiant le plan (une liste d’actions à entreprendre dans chaque fichier). Cela vous permet de guider le système vers la solution que vous souhaitez mettre en œuvre. Cette capacité de pilotage est essentielle, car elle permet aux développeurs de dépasser les limites de la taille des suggestions, en imitant la façon dont ils travaillent sur des problèmes réels. Cela se traduit par un code généré plus précis et plus facile à évaluer.

Une fois votre code écrit, vous pouvez le valider et l’exécuter directement dans l’environnement, histoire de vérifier que tout roule comme sur des roulettes. Chaque Copilot Workspace permet une synchronisation en direct avec les Codespaces, ce qui vous permet d’ouvrir un terminal, d’installer des dépendances et d’exécuter votre code directement depuis l’espace de travail. Et si vous avez besoin d’outils plus avancés, hop, vous basculez dans un Codespace pour retrouver une expérience d’IDE complète dans le cloud, avec un serveur exécutant VS Code.

Côté collaboration, vous pouvez partager un instantané de votre Workspace avec vos petits camarades en un clic, pour recueillir leur feedback ou les laisser expérimenter leurs propres idées. S’ils font partie de la preview technique, ils pourront même forker votre Workspace et itérer dessus. Par contre, si vous apportez des modifications à votre Workspace après l’avoir partagé, ces changements ne seront pas reflétés dans la version partagée. Il faudra alors partager un nouveau lien pour transmettre la dernière mouture.

Et le plus chouette, c’est que Copilot Workspace est accessible de partout, même depuis votre smartphone. Comme ça, la prochaine fois que vous avez une illumination en faisant vos courses, vous pourrez directement la prototyper depuis le rayon fromages du supermarché !

Avec cette annonce, GitHub affiche clairement son ambition : démocratiser le développement logiciel en le rendant plus intuitif, plus naturel, plus humain en somme. Leur vision à long terme c’est un monde où tout le monde peut coder aussi simplement qu’on fait du vélo et je dois dire que je suis plutôt emballé par cette perspective puisque je fonctionne déjà comme ça pour mes projets de dev grâce notamment à Cursor.

Sous le capot, Copilot Workspace est propulsé par le modèle GPT-4 Turbo, que les équipes de GitHub ont jugé le plus performant pour cette tâche après avoir testé de nombreuses alternatives. D’ailleurs, c’est intéressant de comparer Copilot Workspace avec les autres fonctionnalités de la gamme Copilot.

Là où Copilot vous aide à écrire du code en faisant des suggestions au fur et à mesure que vous tapez, et où Copilot Chat permet de discuter des changements potentiels, Copilot Workspace est un véritable environnement de développement orienté tâches, qui planifie et rédige des modifications coordonnées sur plusieurs fichiers. Chacun de ces outils a son utilité, et ils se complètent à merveille.

GitHub a surtout compris l’importance d’impliquer les développeurs dans cette aventure. C’est pour ça qu’ils lancent Copilot Workspace en technical preview, histoire de recueillir un maximum de feedback et d’itérer en fonction. Si ça vous tente de jouer les beta-testeurs, c’est par ici pour vous inscrire !

Source

weAudit – Une extension Visual Studio Code pour ceux et celles qui font de l’audit

Par : Korben
29 avril 2024 à 09:00

Salut les codeurs !

Aujourd’hui, je vais vous causer d’un truc qui va révolutionner votre façon d’auditer le code : l’extension VSCode weAudit ! C’est développé par les génies de Trail of Bits et c’est vraiment chouette, vous allez voir.

Il s’agit un outil de revue de code collaborative (d’audit quoi…) qui vous permet de prendre des notes et de traquer les bugs directement dans VSCode. Plus besoin de jongler entre 36 outils, weAudit centralise tout

Il est d’ailleurs bourré de fonctionnalités ultra pratiques :

  • Des signets pour vos trouvailles et vos notes
  • Un suivi des fichiers audités pour savoir où vous en êtes
  • De la collaboration pour bosser en équipe sans vous marcher dessus
  • La création directe d’issues GitHub bien formatées

Comme ça, plus besoin de vous prendre la tête avec des outils externes. Vous pouvez aller jeter un œil au code sur le repo GitHub.

Bon allez, je vous donne un petit exemple pour vous montrer à quel point c’est facile à utiliser. Disons que vous tombez sur un bout de code louche. Hop, vous sélectionnez ce code et vous utilisez le raccourci Cmd+J pour ajouter un signet « Finding ». Ça va surligner le code en rouge et ajouter une note dans la liste des findings. Et si vous voulez ajouter des détails sur le problème, pas de souci ! Cliquez sur le finding, remplissez les champs et même créez direct une issue GitHub.

Je ne sais pas comment on faisait avant weAudit.

Pour l’installer, rendez-vous sur le marketplace VSCode. Et si vous êtes à fond dans la sécurité des extensions VSCode, jetez aussi un œil aux articles de blog de Trail of Bits sur les vulnérabilités d’extensions VSCode mal configurées et comment s’échapper d’extensions VSCode bien configurées.

Allez, je vous laisse jouer avec weAudit. Vous m’en direz des nouvelles.

CSS Compatibility Checker – Votre allié pour un code parfaitement compatible avec tous les navigateurs

Par : Korben
25 avril 2024 à 09:00

Et si aujourd’hui, on parlait un peu de l’extension CSS Compatibility Checker pour Visual Studio Code ? Un outil juste dingue qui va vous aider à voir en un clin d’œil si votre code est compatible avec tous les navigateurs. Plus besoin de passer des heures à éplucher la doc ou de croiser les doigts en espérant que ça passe, cette petite merveille va vous changer la vie !

Imaginez un peu le topo : vous êtes tranquillou en train de tapoter votre CSS, vous balancez une propriété backdrop-filter pour flouter votre background avec classe et là bim 💥, l’extension vous remonte direct que c’est pas compatible avec certaines vieilles versions de navigateurs.

Ou alors vous utilisez un mot-clé un peu exotique genre unset et hop, elle vous alerte que c’est potentiellement casse-gueule. C’est ti pas beau ça ?

CSS Compatibility Checker s’adresse donc aux développeurs frontend un peu soucieux de la compatibilité de son code. Je sais, ils ne sont pas nombreux ^^. En un survol de souris, vous avez accès à toutes les infos dont vous avez besoin : si telle syntaxe, fonction ou propriété est dépréciée, non-standard, expérimentale ou pas supportée partout. Et c’est valable pour un tas de versions de navigateurs différentes !

Pour en profiter, vous devrez installer l’extension depuis la marketplace de VS Code, et ensuite il vous suffit d’ouvrir un fichier CSS, SCSS ou LESS et de laisser le curseur survoler l’élément qui vous intéresse. Et là, magie, une petite bulle s’affiche avec toutes les infos de compatibilité. De quoi prendre les bonnes décisions pour votre projet !

Alors certes, CSS Compatibility Checker ne va pas non plus révolutionner le monde du développement web du jour au lendemain mais pour tous ceux qui en ont un peu ras la casquette de se farcir des heures de tests sur 15 versions d’Internet Explorer, c’est définitivement une extension à avoir sous la main. Et puis c’est gratuit et open-source en plus, alors que demande le peuple ?

Merci à Lorenper pour le partage !

Flyde – Comme scratch mais pour les vrais dev

Par : Korben
23 avril 2024 à 09:00

Bonne nouvelle ! Flyde, un nouvel outil de programmation visuelle pour les développeurs, vient de sortir en Alpha et ça déchire grave !

Bon, je vous vois venir : « Encore un énième outil low-code à la mode… » Que nenni ! Flyde est vraiment unique et a été conçu pour s’intégrer parfaitement à votre base de code existante, que ce soit pour du back-end, du front, des scripts d’automatisation ou même des outils en ligne de commande.

Le truc de ouf avec Flyde, c’est qu’il permet de visualiser et de créer facilement les flux haut-niveau (flows en anglais) de votre application, tout en gardant votre code textuel pour ce qui est bas-niveau. En gros, il sublime votre code « de plomberie » qui intègre plusieurs API de manière hyper concurrente. Vos diagrammes sur Powerpoint deviennent enfin une réalité !

Et les avantages sont multiples :

  • La collaboration avec les profils non-dev (product owners, QA, support…) devient hyper intuitive. C’est comme si Zapier et votre base de code avaient un bébé !
  • Les flux servent de documentation vivante et toujours à jour pour les nouveaux membres de l’équipe.
  • La programmation visuelle ouvre de nouveaux modes de réflexion sur le code. Les nœuds s’illuminent même quand les données les traversent, c’est hypnotique !
  • Et les données de monitoring sont directement sur le « code » lui-même. Ainsi, le débogage n’a jamais été aussi rapide.

Mais alors comment ça marche ce truc ?

Et bien Flyde est composé d’un éditeur visuel (extension VS Code ou standalone), d’une bibliothèque d’exécution et d’une bibliothèque plutôt bien fournie de composants prêts à l’emploi.

Dans l’éditeur visuel, on construit des flux en connectant des nœuds via une interface « nodes-and-wires ». On peut alors mixer des nœuds customs et ceux de la bibliothèque de composants. Une fois un flux créé, on peut ensuite l’exécuter depuis son code en utilisant la bibliothèque d’exécution de Flyde. Et c’est là que la magie opère !

Car Flyde ne cherche pas à remplacer vos workflows existants mais à les sublimer. Contrairement à d’autres outils low-code qui vivent en dehors de votre base de code, Flyde s’y intègre complètement. Les fichiers de flux sont committés dans votre gestionnaire de version comme n’importe quel autre fichier, les branches, les pull requests, les revues de code fonctionnent de manière transparente, les flux sont exécutés depuis votre base de code, en réutilisant votre environnement de prod. Comme ça, pas besoin de gérer une plateforme externe ni de vous soucier de la sécurité. Enfin, ces même flux peuvent être testés avec vos frameworks de test habituels. Vous pouvez même écrire des tests en Flyde qui testent votre code traditionnel !

L’intégration avec le code existant se fait de deux manières astucieuses : Premièrement, les noeuds Flyde peuvent être des noeuds visuels ou des noeuds basés sur du code. On peut donc wrapper n’importe quelle fonction de sa base de code dans un noeud Flyde utilisable dans un flux.

Secondo, les flux de Flyde peuvent s’exécuter depuis votre code. Par exemple, si vous construisez my-cool-flow.flyde, il faudra appeler execute('my-cool-flow') dans votre code puis gérer la réponse. Les cas d’usage sont infinis : Gestionnaire de requêtes HTTP, bot, scripts, etc.

Bon, vous l’aurez compris, Flyde s’inspire des principes de programmation basée sur les flux (FBP) mais d’autres outils font déjà ça, comme Node-RED ou NoFlo, bien avant l’arrivée du bouzin.

Quelle est la plus-value de Flyde du coup ?

Déjà, Flyde adopte une approche plus pragmatique et simple que NoFlo qui était un poil trop inspiré par la vision puriste de J. Paul Morrison, l’inventeur du FBP. Ensuite, l’éditeur est une extension VS Code, donc intégré à votre IDE, alors que les autres ont des éditeurs indépendants voire carréement datés. Et surtout Flyde est davantage taillé pour coexister avec les bases de code traditionnelles et toucher un public de développeurs plus large sur des projets variés.

Si vous voulez vous faire la main sur Flyde, le mieux est d’aller direct sur la sandbox en ligne qui permet de créer et d’exécuter des flux dans le navigateur. Puis jetez un œil aux tutos pour intégrer Flyde dans un vrai projet.

Perso, je vois plusieurs cas d’usage hyper prometteurs pour Flyde. C’est d’abord un super accélérateur pour les juniors et les non-devs qui pourront prototyper rapidement des trucs qui claquent sans se prendre la tête. Ca permet également de booster la collaboration en ouvrant sa base de code aux gens du marketing ou à l’équipe produit.

De plus, c’est un formidable outil pédagogique aussi ludique que scratch pour enseigner des concepts de programmation avancés aux étudiants. Sans oublier le gain de productivité pour les devs expérimentés qui aiment bien avoir une vue d’ensemble sur des architectures d’API ou de microservices complexes.

Bref, je suis convaincu que Flyde (ou un de ses futurs fork) va changer notre façon de coder dans les années à venir. Si vous couplez ça à l’IA, ça va faire un malheur.

❌
❌