Vue normale

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

Créez votre environnement Assembleur C64 sous Windows avec VS Code

Par : Korben
10 septembre 2024 à 07:00

Vous vous souvenez de l’époque mythique du Commodore 64 ?

Ce bon vieux clavier qui claque, les disquettes qu’on insère délicatement dans le lecteur, les heures passées à dompter l’assembleur pour créer des petites merveilles de pixels et de sons… Ah, c’était le bon vieux temps !

Eh bien, figurez-vous qu’on peut retrouver un peu de cette magie en 2023, avec des outils modernes et sur un bon gros PC.

Pour cela, vous allez avoir besoin de quelques ingrédients de base :

  • Visual Studio Code, l’éditeur de code ultra polyvalent qui s’adapte à tous les langages
  • L’émulateur VICE (what else?) pour faire tourner vos programmes comme sur un vrai C64
  • Le compilateur Kick Assembler pour transpiler votre code en binaire (il vous faudra java)
  • Git pour versionner votre code comme un pro

Installer et configurer tout ça, c’est un peu le parcours du combattant mais rassurez-vous, tout est expliqué dans cette vidéo qui vous prend par la main et vous explique tout pas à pas, même si vous débutez.

Alors, vous commencez par installer Git, Java et Visual Studio Code. Ça, c’est la partie facile. Ensuite, vous récupérez Kick Assembler et VICE, et c’est là que ça se corse un peu. Mais suivez bien les instructions, et vous verrez, au bout de quelques minutes, vous aurez un environnement de développement parfaitement opérationnel !

Visual Studio Code dispose d’extensions pour faire tout un tas de trucs, et bien sûr, il en existe une pour l’assembleur C64. Une fois installée, vous pourrez profiter de la coloration syntaxique, de la complétion de code et même du débogage en temps réel avec VICE.

Ensuite, avec Kick Assembler, vous allez pouvoir écrire votre code source de manière beaucoup plus confortable qu’à l’époque. Déjà, vous n’êtes plus limité à 40 colonnes, et l’éditeur vous évitera bien des fautes de frappe. Mais le plus sympa, c’est que vous pouvez utiliser des macros, des constantes et même des instructions de haut niveau pour vous faciliter la vie. Et au final, Kick Assembler transpile tout ça en bon vieil assembleur 6502.

Quant à VICE, c’est tout simplement le meilleur émulateur C64 disponible actuellement. Il est hyper fidèle au hardware d’origine, et il propose une tripotée d’options pour faciliter le développement : exécution pas à pas, points d’arrêt, inspection des registres et de la mémoire, etc. Un vrai bonheur pour déboguer vos programmes !

Voici pour tester, un petit Hello World qui affiche un message à l’écran et change la couleur de la bordure.

;===============================================================================
; Ceci est un exemple de programme en assembleur pour Commodore 64
; utilisant l'assembleur KickAssembler.
;===============================================================================
; Constantes pour les couleurs du C64
BLACK = 0
WHITE = 1
*= $0801
;===============================================================================
; Le code BASIC au début sert à lancer notre programme en assembleur.
; Nous utilisons ici la macro BasicUpstart2 de KickAssembler qui génère
; automatiquement le code BASIC approprié.
;===============================================================================
BasicUpstart2(start)
;===============================================================================
; Notre programme en assembleur commence ici
;===============================================================================
start:
; Change la couleur de la bordure en noir
lda #BLACK
sta $d020

Et pour compiler, charger et exécuter le programme :

  • Presser F5 dans VSCode pour compiler avec KickAssembler
  • Dans VICE, utiliser LOAD "HELLO.PRG",8,1 pour charger le programme puis RUN pour l’exécuter

Pour compiler ce programme, assurez-vous d’utiliser l’assembleur KickAssembler. Vous pouvez le compiler en pressant F5 dans Visual Studio Code si vous avez configuré KickAssembler comme assembleur par défaut. Une fois compilé, vous obtiendrez un fichier PRG que vous pouvez charger dans l’émulateur VICE avec la commande suivante : LOAD "HELLO.PRG",8,1

Puis tapez RUN pour exécuter le programme. Vous devriez voir apparaître « HELLO WORLD! » à l’écran, avec la bordure de l’écran en noir.

Voilà, vous savez maintenant comment redonner vie à vos vieilles machines 8 bits dans un environnement ultra moderne et confortable. Plus d’excuse pour ne pas vous remettre à l’assembleur et pondre les démos et les jeux de vos rêves !

Et si vous êtes un peu nostalgique, rien ne vous empêche de transférer vos programmes sur une vraie machine, armé d’un vieux lecteur de disquettes Commodore 1541 et d’une pile de D7. Et puis il y a une sacrée communauté de passionnés toujours prêts à vous filer un coup de main ou une bonne vieille rustine. N’hésitez pas à traîner sur les forums spécialisés comme Lemon64 ou C64-Wiki, vous y trouverez une mine d’infos, de démos et de bouts de code à recycler.

Avec ce setup VS Code + Kick Assembler + émulateur, vous pouvez également vous attaquer à plein d’autres machines mythiques : Atari 800, Apple II, ZX Spectrum, la liste est longue. Chaque hardware a ses spécificités et ses petits trucs à découvrir, de quoi vous occuper pendant des années !

Source

Learn How to Code From Scratch and Get Microsoft Visual Studio for Only $50

20 août 2024 à 12:30
Even if you have absolutely no tech experience, you can learn how to code from courses that are designed specifically for beginners. In addition to this bundle, you get Microsoft Visual Studio Professional included in the price.

Descent 3 – Le code source rendu public !

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

Ça y est les amis, le moment que tous les fans de Descent attendaient est enfin arrivé ! Le code source de Descent 3, ce monument du jeu de tir à la première personne sorti en 1999, vient d’être rendu public sur GitHub. C’est Noël avant l’heure !

Alors, pour ceux qui ne connaîtraient pas encore ce chef-d’œuvre (honte à vous !), Descent 3 vous met aux commandes d’un vaisseau spatial dans des environnements entièrement en 3D, avec la possibilité de vous déplacer dans toutes les directions. On est loin des couloirs labyrinthiques des premiers Doom, là on parle de vraie liberté de mouvement, ce qui était du jamais vu à l’époque ! Ajoutez à ça des graphismes époustouflants (pour l’époque, encore une fois), une bande-son qui déchire composée par Christopher Larkin, et un mode multijoueur jusqu’à 4 joueurs addictif, et vous obtenez un classique intemporel.

Mais revenons à nos moutons (de l’espace). Jusqu’à présent, on n’avait accès qu’à des bribes de code, savamment distillées par les développeurs d’Interplay Entertainment. Mais là, c’est le jackpot : on a droit à la totale, le code complet ! Bon, quelques bouts de code propriétaires pour le son et la vidéo ont été retirés, mais rien de dramatique. Les anciens de chez Interplay bossent déjà pour rendre tout ça fonctionnel sans ces morceaux manquants.

Cette publication du code va permettre de pérenniser ce monument du jeu vidéo, comme ça, plus de risque qu’il tombe dans l’oubli et devienne injouable sur nos machines modernes. Et pour peu qu’une communauté motivée s’empare du truc, on peut s’attendre à des mises à jour, des corrections de bugs, et pourquoi pas des améliorations ! Imaginez un peu : de nouvelles armes, des vaisseaux inédits, des niveaux supplémentaires… Les possibilités sont infinies !

Mais le plus excitant, c’est surtout pour tous les moddeurs et développeurs en herbe qui vont pouvoir disséquer le moteur 3D maison Build engine, comprendre comment tout fonctionne sous le capot, et même s’en inspirer pour créer de nouveaux jeux ! C’est une mine d’or d’enseignements pour tous ceux qui veulent se lancer dans le développement de jeux vidéo.

Ce n’est que le début et les développeurs ont promis de nettoyer et commenter le code (parce que bon, on ne va pas se mentir, le code écrit il y a 20 ans, ce n’est pas toujours un modèle de clarté). On peut même espérer un petit système d’intégration continue pour faciliter les contributions de la communauté. Et qui sait, peut-être que dans quelques mois on aura droit à un Descent 4 entièrement conçu par les fans ! Oui, j’aime bien rêver…

En attendant, je vous invite à faire un petit tour sur le dépôt GitHub de Descent 3.

Sur ce, je vous laisse, j’ai un vaisseau spatial à réparer moi !

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 ! 🙌

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 !

Freeze – Pour capturer et customiser vos screenshots de code

Par : Korben
6 juillet 2024 à 07:00

Fini les captures d’écran toutes moches qui donnent pas envie. Avec Freeze, vous allez pouvoir customiser vos screenshots de code comme jamais.

Vous pouvez l’installer avec Homebrew sur macOS ou Linux, ou même avec un bon vieux go install si vous êtes old school et une fois que c’est fait, vous balancez juste

freeze moncode.js -o code.png

dans votre terminal, et hop, Votre screenshot sera là, beau frais comme un gardon et beau comme un camion.

Vous pouvez même capturer le résultat de commandes avec le paramètre –execute :

freeze --execute "eza -lah"

Le petit plus de Freeze, c’est qu’il permet de choisir un thème afin de personnaliser le rendu du code. Un petit --theme dracula et vous voilà avec un code aux couleurs du célèbre vampire. Besoin d’ajouter des contrôles de fenêtre façon macOS ? --window et le tour est joué. Et que dire de la possibilité d’ajouter une ombre, des coins arrondis, ou même d’intégrer votre propre police ? Les dev de Freeze ont pensé à tout…

Et si vous êtes du genre à aimer bidouiller, vous allez adorer le mode interactif de Freeze. Lancez

freeze --interactive

et vous pourrez customiser votre screenshot en direct, comme un vrai pro.

C’est aussi un vrai gain de temps pour les développeurs qui souhaitent rendre des bouts de code présentables pour intégrer par exemple dans une doc ou un site web. Allez, je vais vous donner un petit exemple pour la route. Disons que vous voulez capturer un bout de code JavaScript, avec le thème Dracula, une jolie fenêtre, une ombre, et des coins arrondis.

Voilà ce que ça donne :

freeze moncode.js --theme dracula --window --shadow.blur 20 --shadow.x 0 --shadow.y 10 --border.radius

Ainsi, en une seule ligne de commande, vous obtenez une image de code digne d’un vrai pro. Puis l’avantage c’est que ça peut s’automatiser.

Bref, je crois que vous avez compris l’idée. Si ça vous intéresse, rendez-vous sur https://github.com/charmbracelet/freeze.

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 ?

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

Reprogrammer Tetris NES en pleine partie – Un hack vraiment dingue ?

Par : Korben
7 mai 2024 à 06:59

Tetris sur NES – c’est un classique indémodable, un monument du jeu vidéo mais c’est aussi un terrain de jeu sans fin pour les hackers et les bidouilleurs de génie. Tenez-vous bien, ces derniers ont trouvé un moyen de reprogrammer Tetris en pleine partie ! Je vous jure, c’est pas une blague. Ils arrivent à exécuter leur propre code en partant d’une cartouche normale, sans aucune modification matérielle.

Voici comment ça marche :

En atteignant des scores très élevés (comme le niveau 155) et en entrant des noms bien spécifiques dans le tableau des high scores, ils réussissent à réécrire des portions de la RAM du jeu. Concrètement, ils peuvent modifier les règles, ajouter des fonctionnalités, ce qu’ils veulent.

Mais le plus dingue, c’est quand ils font leur tour de magie. Bah oui, vous connaissez le fameux kill screen de Tetris ? C’est ce moment où après une partie marathon, il y a tellement de données que le jeu plante… Et bien nos petits génies provoquent volontairement ce crash qui en réalité, devient leur porte d’entrée pour injecter leur code personnel.

Techniquement, ils exploitent une faille dans la gestion des manettes car sur les Famicom, il y avait un port d’extension pour brancher des manettes supplémentaires et quand le jeu crashe, il perd les pédales et va interpréter n’importe quoi comme instruction, y compris les fameuses entrées de manettes. Résultat : vous appuyez sur des boutons bien précis au bon moment, et ça redirige l’exécution du programme exactement où vous voulez !

Évidemment, tout ça c’est d’un niveau de difficulté extrême, il faut connaître le jeu et la console sur le bout des doigts. Mais comme ils ont désassemblé le code de Tetris en langage machine, ils savent exactement ce que fait chaque octet de la ROM. Et la beauté de la chose, c’est que ça fonctionne sur une NES standard, avec une cartouche originale. Pas besoin d’un Game Genie ou d’un émulateur. Du 100% pur jus rétro

Par contre, il ne faut pas être trop gourmand non plus. On parle de reprogrammer un jeu en passant par les high scores, donc vous n’aurez jamais de quoi coder un truc plus complexe… et puis il faut rusher le truc à chaque partie, parce que dès que vous éteignez la console, pouf ça s’efface. C’est vraiment de la bidouille éphémère, il faut aimer l’art pour l’art.

Mais je trouve ça cool car il y a un côté  »hacker la Matrice » assez jouissif. Ça me donne presque envie de ressortir ma vieille NES pour essayer… Mais je suis pas encore assez bon à Tetris. Mais si vous voulez essayer chez vous, il vous faudra :

  • Une NES (ou une Famicom)
  • La cartouche Tetris
  • 2 manettes NES supplémentaires (ou un adaptateur pour manettes NES sur Famicom)
  • De la patience et de la persévérance

Ensuite, vous devrez franchir chacune de ces étapes :

  • Étape 1 : Atteignez le level 155 en mode A-Type. Assurez-vous qu’une seule ligne vous sépare du level suivant.
  • Étape 2 : Effacez cette ligne SANS appuyer sur bas (pour ne pas marquer de points) et en affichant la pièce suivante dans la zone Next.
  • Étape 3 : Branchez vos deux manettes NES supplémentaires (appelons-les manette 3 et manette 4).
  • Étape 4 : Sur la manette 3, maintenez Haut. Sur la manette 4, appuyez simultanément sur Gauche, Bas et Droite (bonne chance…).
  • Étape 5 : Maintenant, préparez-vous à entrer dans la partie la plus délicate : l’écriture de votre programme via les high scores ! L’astuce consiste à utiliser les noms et scores pour y cacher des instructions destinées directement au processeur de la NES. Pour cela, vous devez placer judicieusement certains caractères dans les high scores. Par exemple, mettez (G comme 2ème lettre du nom en 1ère position du tableau B-Type. Cela indique au processeur de sauter vers une autre zone du tableau et de lire la suite comme un bout de code. Ensuite, en 2ème position B-Type, commencez le nom par )). Puis continuez à remplir les noms et scores suivants selon votre programme. Attention, vous êtes très limité dans les instructions possibles ! Vous ne pouvez utiliser que les 43 caractères autorisés pour les noms et les 10 chiffres pour les scores. La plupart des opcodes du processeur sont impossibles à reproduire ainsi. Mais avec de l’astuce, c’est jouable. Par exemple, essayez ceci pour votre 1ère position en A-Type : (A name of '))"-P)' . Ce code basique injecte deux zéros dans les digits de poids fort du score, ce qui limite son augmentation et retarde le crash du jeu (sans le corriger complètement).
  • Étape 6 : Validez le high score. Le jeu va planter, c’est normal. Maintenez les boutons enfoncés sur les manettes 3 et 4.
  • Étape 7 : Tadaa ! Votre code personnalisé s’exécute. Vous pouvez maintenant modifier le comportement du jeu. Mais attention, tout s’efface à la prochaine coupure !

Voilà, vous savez tout. Avec un peu d’entraînement, vous pourrez à votre tour hacker Tetris comme un pro mais n’oubliez pas, c’est un grand pouvoir qui se mérite et qui implique de grandes responsabilités ! (non)

Happy hacking !

Source

Learn Python for Just $16 Through 5/5

One of our best-selling Python bundles is discounted even further to just $15.97 through May 5. Now's the time to learn the popular programming language.

Flowise – Créez des applications LLM sans coder

Par : Korben
3 mai 2024 à 07: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.

Price Drop: Code Faster and More Accurately, Even in Collaboration, for Just $40

Microsoft Visual Studio Professional 2022 for Windows allows you to code with teams across platforms and languages, and offers advanced tools to ensure accuracy. Now at $39.97 through May 31st.
❌
❌