• chevron_right

      Rust chez Google – Une productivité doublée et du code plus fiable

      news.movim.eu / Korben · Monday, 1 April - 06:17 · 2 minutes

    Ça y est, la vague Rust déferle sur la Silicon Valley et même le géant Google n’y échappe pas ! Le langage de programmation qui monte, qui monte, s’installe peu à peu dans les couloirs de la firme de Mountain View et visiblement, il fait des ravages… mais dans le bon sens du terme !

    Lors de la récente conférence Rust Nation UK , Lars Bergstrom, directeur de l’ingénierie chez Google, a lâché une petite bombe : les équipes de dev qui sont passées à Rust ont vu leur productivité doubler par rapport à celles qui utilisent encore C++ !

    On savait déjà que Rust était prometteur, avec sa gestion de la mémoire ultra safe et son système de « ownership » qui évite les erreurs de segmentation. Mais de là à imaginer des gains de productivité pareils, personne n’osait en rêver !

    Et pourtant, c’est bien réel puisque quand une équipe Google migre un projet C++ vers Rust, elle divise par deux le temps nécessaire pour le développer et le maintenir. C’est énorme ! Surtout quand on sait à quel point le développement en C++ peut être chronophage et complexe. Mais alors comment expliquer un tel boost de performance ?

    D’après Lars Bergstrom, c’est très simple : Rust inspire confiance . Les développeurs se sentent plus sereins quand ils codent en Rust, car ils savent que le compilateur va les aider à éviter toute une classe de bugs vicieux liés à la gestion de la mémoire. Résultat, ils passent moins de temps à débugger et plus de temps à ajouter des fonctionnalités. Et ça, c’est bon pour le moral des troupes et pour la vélocité des projets !

    Autre avantage de Rust : sa courbe d’apprentissage. Contrairement à ce qu’on pourrait penser, les développeurs Google ne mettent pas des mois à être opérationnels en Rust. En moyenne, il leur faut environ 2 mois pour se sentir à l’aise et 4 mois pour retrouver leur niveau de productivité C++.

    C’est sûr, Rust n’est pas le langage le plus simple à prendre en main, avec ses concepts de ownership et de borrowing qui peuvent paraître abstraits au début. Mais une fois franchie cette étape, on découvre un langage puissant, expressif et fiable. Et puis, il faut bien l’avouer, il y a un petit côté « hype » à coder en Rust en ce moment. C’est un langage qui a le vent en poupe et tout le monde en parle !

    Source

    • chevron_right

      Lapce – L’IDE codé en Rust qui dépote

      news.movim.eu / Korben · Friday, 29 March - 08:00 · 2 minutes

    Si vous êtes un développeur à la recherche d’un nouvel éditeur de code, vous allez être content avec Lapce dispo pour Windows, Linux et macOS. Encore en version pré-alpha, Lapce n’a d’autres ambitions que de venir chatouiller les orteils de Visual Studio Code.

    Pour le moment, on en est loin, mais cet éditeur a quand même quelques atouts dans sa manche. Tout d’abord, son interface graphique et ses performances sont au top du top de l’optimisation grâce au langage dans lequel il est codé, à savoir Rust.

    En effet, grâce à l’accélération GPU intégrée à l’interface graphique native, les lags au lancement de l’éditeur et lors de la saisie sont totalement éliminés. Pour les développeurs de Lapce, tout ralentissement lors de la frappe est considéré comme un bug et sera donc résolu.

    L’une des fonctionnalités les plus intéressantes de Lapce est la possibilité de se connecter à une machine distante en toute transparence via SSH, pour bénéficier d’une expérience « locale ». Cela vous permet de profiter d’un environnement identique à votre serveur de production ou d’exploiter toutes les performances de la machine distante. Idéal pour les développeurs travaillant en équipe ou en télétravail.

    Côté mise en forme du code, Lapce utilise Tree-sitter pour la coloration syntaxique, ce qui est une solution bien plus rapide et efficace que les techniques à l’ancienne basées sur les expressions régulières (regex). De plus, la prise en charge intégrée du protocole LSP (Language Server Protocol) permet à Lapce de proposer de la complétion de code, des diagnostics ainsi que des actions éventuelles sur le code analysé en temps réel.

    Si vous êtes un utilisateur de Vim, bah déjà bon courage. Mais surtout, ne vous inquiétez pas, Lapce intègre nativement une expérience d’édition similaire à Vim, sans avoir besoin d’installer de plugin. Vous n’avez qu’à activer l’option d’édition modale dans les paramètres de l’IDE et vous pourrez utiliser tous vos raccourcis Vim comme un bon tröll velu.

    Pour encore plus de personnalisation, vous pouvez aussi écrire vos propres plugins pour Lapce en utilisant n’importe quel langage de programmation capable d’être compilé pour produire du WASI (WebAssembly System Interface). Ainsi, vous pouvez choisir un langage de programmation que vous aimez pour créer des plugins rapidement sans apprendre un truc spécifique.

    Enfin, Lapce vous permet de lancer un terminal directement dans le répertoire de votre espace de travail, sans quitter l’éditeur. Cette fonction simplifie la gestion des fichiers et des dossiers, rendant votre workflow encore plus fluide.

    Bref, bien que Lapce soit encore en phase pré-alpha, et loiiiin d’égaler Visual Studio Code, cet éditeur open source écrit en Rust, est promis à un bel avenir chez tous ceux pour qui les perfs sont très importantes (tout le monde quoi…).

    Rendez-vous sur lapce.dev pour en savoir plus ! Et la doc est ici.

    Merci à Lorenper

    • chevron_right

      Black – Pour formater votre code Python rapidement et sans douleur

      news.movim.eu / Korben · Sunday, 24 March - 08:00 · 2 minutes

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

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

    Pour l’installer :

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

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

    black script.py

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

    black --preview script.py

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

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

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

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

    À découvrir ici.

    Merci à Lorenper

    • chevron_right

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

      news.movim.eu / Korben · Friday, 22 March - 08:00 · 2 minutes

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

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

    Hé oui !

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

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

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

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

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

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

    Elle est pas belle la vie ?

    Merci à Lorenper

    • chevron_right

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

      news.movim.eu / Korben · Thursday, 21 March - 10:09 · 1 minute

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

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

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

    Voici un exemple de correctif proposé :

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

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

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

    Source

    • chevron_right

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

      news.movim.eu / Korben · Thursday, 21 March - 08:00 · 2 minutes

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

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

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

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

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

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

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

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

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

    A vous de tester maintenant !

    Merci à Lorenper

    • chevron_right

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

      news.movim.eu / Korben · Saturday, 16 March - 01:15 · 2 minutes

    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 !

    • chevron_right

      Touitomamout – Pour synchroniser Twitter avec BlueSky et Mastodon

      news.movim.eu / Korben · Tuesday, 5 March - 08:00 · 1 minute

    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 !

    • chevron_right

      Kalker – La calculatrice scientifique de votre terminal

      news.movim.eu / Korben · Friday, 1 March - 08:00 · 1 minute

    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.