Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Chers amis,

Ce week-end, c’est la douzième édition des Geek Faëries, qui aura donc lieu du 2 au 4 juin 2023, au Château de Selles-sur-Cher. Pour ceux qui ne connaissent pas, les Geek Faëries c’est un festival indépendant, autofinancé par son public, avec un farouche esprit de résilience !

Fondé en 2010, ce festival est l’occasion de célébrer la philosophie geek & hacker dans un cadre unique.

Si vous êtes un geek, ou si vous appréciez tout simplement la culture geek, c’est l’événement à ne pas manquer. Durant ces trois jours, vous pourrez rencontrer une centaine d’exposants, plusieurs dizaines d’invités, des associations, des collectifs, et les équipes des GF, tous prêts à vous divertir, vous apprendre des trucs et vous faire vivre des émotions​ ^^.

Les Geek Faëries, c’est un temps de fête, de jeux, d’échanges et de retrouvailles. C’est aussi l’occasion d’échanger, de vivre de bonnes émotions, de jouer, de s’informer…etc. Vous pourrez partager votre passion, découvrir celle des autres, expérimenter et apprendre de nouvelles choses. Et c’est aussi l’occasion de rencontrer les gens qui vous appréciez sur Internet.

Je serai présent à l’événement et j’espère vous y retrouver nombreux. La météo s’annonce magnifique, il y a un camping sur place, la restauration et un bar seront là pour vous nourrir et vous rafraichir. Alors préparez votre voyage et rejoignez-nous pour ce week-end unique dans le temps et l’espace​.

J’espère vous y voir !

A bientôt !


Vous kiffez GPT d’OpenAI et vous vous dites que ce serait quand même cool à utiliser dans votre vie quotidienne d’admin Unix ?

Et bien j’ai une excellente nouvelle pour vous puisque votre rêve s’appelle Loz !!

Loz est un outil en ligne de commande basé sur l’API OpenAI, qui permet d’utiliser les pipes Unix en combinaison avec d’autres outils Unix. Ainsi, à l’aide de cet outil, vous allez pouvoir profiter de la puissance de GPT pour effectuer des tâches courantes avec vos outils de la manière la plus fluide qui soit.

Pour installer Loz, c’est comme ça :

sudo npm install loz -g

Vous pouvez également cloner le dépôt si vous voulez.

Ensuite, il faudra configurer vos identifiants OpenAPI. Pour cela, créez un fichier .env à la racine du projet et ajouter les variables suivantes :

OPENAI_API_KEY=VOTRE_CLE_OPENAI

Et si vous avez installé Loz en utilisant la commande npm, ajoutez OPENAI_API_KEY=VOTRE_CLE_OPENAI dans votre .bashrc ou comme ceci :

export OPENAI_API_KEY=VOTRE_CLE_OPENAI

Ensuite, vous pourrez utiliser Loz de deux manières… Soit en passant par le mode conversation en lançant simplement la commande « loz ».

Soit en mode pipe pour traiter les entrées en provenance d’autres outils en ligne de commande. Je vous montre quelques exemples :

ls | loz "Compte le nombre de fichiers : "

Pour vous donner un exemple un peu plus sympa, j’ai créé un fichier texte que voici :

cat exemple.txt | loz "Comment s appelle le gars ?"

Et voilà le résultat :

Évidemment, après l’intérêt c’est de lui demander des trucs plus intéressants selon vos besoins. Ça peut être des conversions de valeurs, de code, de la remise en forme de chaine de caractères, de l’analyse de messages d’erreurs…etc.

Regardez, par exemple, j’ai fait ce code Python plutôt simple :

Et en passant directement par Loz, je le convertis en C++ avec une commande tout en un comme celle-ci :

cat hello.py | loz "Convertis ce code en C++ : " > hellocode.c ; g++ -o hello hellocode.c

Et ça compile, morte-couille !

Bref, Loz est un excellent moyen de disposer de la puissance de l’IA directement dans son terminal.

Un genre d’outil universel en somme. Pour en savoir plus, c’est par ici.


En tant que bidouilleur de l’extrême, je parie que vous passez parfois par des phases où vous lancez encore et encore les mêmes commandes jusqu’à ce que vous ayez envie de vous pendre.

Heureusement, il existe des outils pour automatiser ces tâches répétitives et ainsi vous faciliter la vie. Parmi eux, Watchexec se distingue par sa simplicité d’utilisation et son efficacité.

Watchexec est donc un outil autonome qui surveille un chemin spécifique et lance une commande chaque fois qu’il détecte des modifications sur un ou plusieurs fichiers. Évidemment compatible avec macOS, Linux et Windows, cela permet de monitorer le répertoire courant ainsi que tous ses sous-répertoires.

Ainsi, vous pouvez lancer automatiquement des tests unitaires, exécuter des linters ou reconstruire fichiers. Je vous donne un exemple pour que ce soit plus clair. Admettons que vous codiez un site sous NodeJS.

En surveillant les modifications sur les fichiers source de votre projet, vous pouvez automatiquement lancer un build de votre site dès le moindre changement.

watchexec -e js,css,html npm run build

Vous pouvez également appeler ou redémarrer python server.py lorsque n’importe quel fichier Python du répertoire courant (et de tous les sous-répertoires) est modifié :

watchexec -r -e py -- python server.py

Pour installer Watchexec, plusieurs options s’offrent à vous via le gestionnaire de paquets de votre OS, ou carrément à partir des binaires comma ceci :

cargo binstall watchexec-cli

Et si ça vous dit d’aller plus loin, et bien la doc est ici.


Tiens, aujourd’hui je vous propose un site marrant qui permet de générer des GIF animés simulant des commandes dans un terminal.

Je vous montre un exemple :

Pour créer cette petite merveille, rendez-vous sur le site Terminal Gif Maker et entrez simplement les commandes dans les champs prévus à cet effet en choisissant les commandes d’entrée et de sortie ainsi que la durée requise pour l’affichage de chacune d’entre elles.

Quand vous aurez fini, cliquez sur « Simulate » pour voir le résultat et surtout « Export » pour télécharger le GIF animé du terminal. Et si le look du Terminal ne vous plait pas plus que ça, vous pourrez le personnaliser en cliquant sur le bouton « Settings ».

A vous de jouer maintenant !


Peux être être vous tombé sur ce projet incroyable baptisé SectorC ?

C’est un compilateur C écrit en assembleur x86-16 qui tient dans le secteur d’amorçage de 512 octets d’une machine x86. Si vous pensez que c’est déjà assez impressionnant, attendez d’entendre toutes les fonctionnalités dont il dispose !

Il prend en charge un sous-ensemble de C suffisamment grand pour écrire des programmes vraiment intéressants (Variables globales, fonctions, instructions if et while, de nombreux opérateurs, les pointeurs, commentaires, etc.), en plus d’être probablement le plus petit compilateur C jamais écrit.

Encodé en base64, voici ce que ça donne :

6gUAwAdoADAfaAAgBzH/6DABPfQYdQXoJQHr8+gjAVOJP+gSALDDqluB+9lQdeAG/zdoAEAfy+gI
AegFAYnYg/hNdFuE9nQNsOiqiwcp+IPoAqvr4j3/FXUG6OUAquvXPVgYdQXoJgDrGj0C2nUGV+gb
AOsF6CgA68Ow6apYKfiD6AKrifgp8CaJRP7rrOg4ALiFwKu4D4Srq1fonP9ewz2N/HUV6JoA6BkA
ieu4iQRQuIs26IAAWKvD6AcAieu4iQbrc4nd6HkA6HYA6DgAHg4fvq8Bra052HQGhcB19h/DrVCw
UKroWQDoGwC4WZGrW4D/wHUMuDnIq7i4AKu4AA+ridirH8M9jfx1COgzALiLBOucg/j4dQXorf/r
JIP49nUI6BwAuI0G6wyE0nQFsLiq6wa4iwarAduJ2KvrA+gAAOhLADwgfvkx2zHJPDkPnsI8IH4S
weEIiMFr2wqD6DABw+gqAOvqicg9Ly90Dj0qL3QSPSkoD5TGidjD6BAAPAp1+eu86Ln/g/jDdfjr
slIx9osEMQQ8O3QUuAACMdLNFIDkgHX0PDt1BIkEMcBaw/v/A8H9/yvB+v/34fb/I8FMAAvBLgAz
wYQA0+CaANP4jwCUwHf/lcAMAJzADgCfwIUAnsCZAJ3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAVao=

Xorvoid, l’auteur de ce projet a été inspiré par les recherches de Justine Tunney et Tom Murphy. Ainsi, pour réduire la taille du tokenizer, l’auteur a proposé une version de C appelée « Barely C Programming Language » qui utilise des « méga-tokens » pour minimiser le nombre de tokens nécessaires.

Voici la « grammaire » de son C maison :

program     = (var_decl | func_decl)+
var_decl    = "int" identifier ";"
func_decl   = "void" func_name "{" statement* "}"
func_name   = <identifier that ends in "()" with no space>
statement   = "if(" expr "){" statement* "}"
            | "while(" expr "){" statement* "}"
            | "asm" integer ";"
            | func_name ";"
            | assign_expr ";"
assign_expr = deref? identifier "=" expr
deref       = "*(int*)"
expr        = unary (op unary)?
unary       = deref identifier
            | "&" identifier
            | "(" expr ")"
            | indentifier
            | integer
op          = "+" | "-" | "&" | "|" | "^" | "<<" | ">>"
            | "==" | "!=" | "<" | ">" | "<=" | ">="

De plus, la fonction atoi() est utilisée comme une fonction de hachage pour les littéraux entiers, ce qui permet de réduire encore plus le nombre de tokens.

Pour réussir à minimiser la taille de son code en langage assembleur, Xorvoid a expérimenté différentes méthodes, comme celle du « byte-threaded-code », qui consiste à aligner les adresses sur une limite de 2 octets pour utiliser un seul octet pour l’adressage. Finalement, le créateur de SectorC a réussi à minimiser son code autant que possible en utilisant différentes petites astuces et en revenant sans cesse à une version encore plus simple de son code.

Au final, ce petit projet nous démontre que même avec des contraintes importantes, il est possible d’obtenir des résultats impressionnants. Ainsi, SectorC pourrait être utile pour ceux qui souhaitent explorer les fonctions bios x86-16 et ce modèle de machine sans avoir à apprendre beaucoup d’assembleur au préalable. Ce genre de défi impressionnant est souvent l’occasion de trouver des solutions plutôt créatives et assez innovantes. Ça scotche les amateurs de technique comme moi en tout cas.

Et bien sûr, si vous êtes curieux et voulez en apprendre davantage sur ce projet surprenant, je vous invite à découvrir SectorC ici : https://xorvoid.com/sectorc.html

Source