Journal [Letlang] Faire la différence entre un nombre et une quantité

Posté par  (site web personnel) . Licence CC By‑SA.
19
21
mar.
2022

Bonjour Nal,

Je vais encore te parler de Letlang aujourd'hui. Mais cette fois ci, pas de code, plutôt une discussion sur une fonctionnalité que j'aimerais bien rajouter à la syntaxe.

Voici d'abord une petite table des matières de ma série d'articles sur ce projet :

Je suis tombé ce weekend sur ce sujet (sur HackerNews): Please put units in names.

L'idée (…)

Journal Golang, oops you did it again

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
23
15
mar.
2022

C'est donc aujourd'hui que sort officiellement Go 1.18, avec le support tant attendu des Generics.

Naïf que je suis, je me dis :

Cool! On va enfin pouvoir implémenter des types Option et Result pour avoir enfin une gestion d'erreur potable.

Allez, je me lance. On commence par le type Option (ou Maybe Monad pour les intimes).

Tout d'abord, on se créé 2 structures, None et Some[T] :

type None struct {}
type Some[T any]
(…)

Journal [Letlang] Écrire un compilateur en Rust (partie 2)

Posté par  (site web personnel) . Licence CC By‑SA.
20
11
mar.
2022

Bonjour Nal :)

Je suis inspiré en ce moment, du coup je continue ma série sur l'écriture d'un compilateur en Rust. Si tu es intéressé par les précédents articles, les voici :

Dans cette partie, je vais te présenter mes dernières découvertes concernant le parser.

Introduction

Tout d'abord, c'est quoi un parser ?

Google Translate traduit le terme par analyseur. Voilà bonne (…)

Journal [Letlang] Écrire un compilateur en Rust

15
7
mar.
2022

Bonjour Nal,

Il y a quelques temps, je t'ai présenté Letlang, un projet de langage de programmation fonctionnelle.

Il a pour but d'être compilé vers du code natif, avec un système de type strict et expressif basé sur une logique d'ordre supérieur.

Malheureusement, avec le boulot (mission freelance + Kubirds), j'ai pas beaucoup de temps à y consacrer, à part quelques heures par-ci par-là.

L'un des objectifs initiaux de ce langage était d'en faire un langage compilé. Comment (…)

Journal [LKML] Est-ce le moment de supprimer ReiserFS ?

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
34
23
fév.
2022

Ceci est une traduction d'un mail récent sur Linux Kernel Mailing List (LKML pour les intimes) :

https://lkml.org/lkml/2022/2/20/89


Garder ReiserFS dans l'arborescence a certains coûts. Par example, j'aimerai beaucoup supprimer l'argument flags de ->write_begin. On a l'infrastructure en place pour gérer différement AOP_FLAGS_NOFS, mais AOP_FLAG_CONT_EXPAND est toujours présent, utilisé uniquement par ReiserFS.

En parcourant les patchs à ReiserFS au cours des précédentes années, il y a des bugfixs pour quelques rapports syzbot* et changements globaux de l'arborescence. Il (…)

Journal Wordle sans attendre 1 jour

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
8
13
fév.
2022

J'ai succombé au virus Wordle.

Je l'ajoute à mes jeux chronophages comme 2048, Sudoku, Minesweeper, et Solitaire.

Par contre, attendre 1 jour entre chaque partie ? Non c'est pas possible pour les procrastinateurs ça !

Du coup j'ai téléchargé une liste d'environ 2500 mots anglais, et j'ai fait une appli Vue 3 avec Pinia au lieu de VueX que j'utilise habituellement.

HS : Pinia est assez sympa quand on travaille avec TypeScript.

Bon du coup le code que j'ai (…)

Journal Une 20-aine de lignes de code pour le defer de Go en C++

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
7
fév.
2022

Bonjour Nal,

Si tu es comme moi, tu détestes Go malgré quelques fonctionnalités géniales et un écosystème vaste et grandissant, qui en font un choix à considérer malgré tes préférences personnelles.

Si tu es comme moi, tu préfères certainement le C++ surtout depuis le C++11. Tu fais d'ailleurs surement du C++20 histoire d'être moderne.

Parmi les fonctionnalités de Go que tu apprécies, il y a le mot clé defer :

func example() error {
  rsrc1, err := CreateResource
(…)

Journal Linux et BusyBox, un duo parfait pour s'amuser

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
54
31
jan.
2022

Bonjour Nal,

Depuis peu, le weekend j'aime bien m'amuser sur des petits projets que je ne compte pas continuer.

Ce weekend, c'était concevoir rapidement un OS bootable basé sur Linux. Mais sans suivre LFS.

Le disque virtuel

Je commence par me créer une petite image disque :

$ qemu-img create ./hd0.img 2G

Puis une table des partitions (à la va vite, une seule partition qui fait tout le disque):

$ cfdisk ./hd0.img

Enfin, je formate le tout en EXT4 (…)

Journal Letlang, encore un nouveau langage de programmation

52
6
jan.
2022

Bonjour Nal,

Cela faisait longtemps que je ne t'avais pas écrit, mais je n'avais pas grand chose de pertinent à dire, tu me pardonneras j'espère.

Aujourd'hui, je vais te parler d'un de mes "side-project", j'ai nommé Letlang.

Si tu as la flemme de tout lire, tu peux aller mettre en favoris le site web https://letlang.dev pour une lecture du soir.

DISCLAIMER: Très peu de code existe pour l'instant, le projet en est à ses balbutiements. Même le design de (…)

Journal SFR rejettent les mails de Framaliste

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
43
24
juin
2021

Bonjour Nal,

Le savais-tu ? SFR balance les mails en provenance de Framaliste en spam.

Moi en tout cas, je ne le savais pas, à vrai dire, je ne me tiens pas beaucoup au courant de ce qui se passe chez eux.

SFR a donc des serveurs pas aux normes qui se contre-fichent de DKIM et compagnie ? Ou acte volontaire ?

J'ose espérer que LinuxFR aura des infos sur le sujet et pourra m'éclairer :)

Ci joint le transcript (…)

Journal Secure User Data : Reprenons le contrôle de nos données

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
18
16
mai
2018

Lorsque l'on développe une application qui nécessite un compte utilisateur, on demande à cet utilisateur des informations à propos de lui afin de créer son compte et lui offrir les services de notre application.

Le minimum requis c'est le nom d'utilisateur et un mot de passe. Mais si on veut vérifier que le compte que l'on créé est bien relié à un être humain, on va demander une adresse e-mail pour envoyer un lien d'activation du compte.

Selon les applications (…)

Journal Projet DIY d'intégration continue auto-hébergée

Posté par  (site web personnel) . Licence CC By‑SA.
24
13
nov.
2017

Alors voilà le topo, je me suis monté une infrastructure auto-hébergée contenant :

  • stockage de fichier (nextcloud)
  • mail (postfix/dovecot/…) et webmail (roundcube)
  • git (gogs)
  • annuaire ldap (openldap) pour tout le monde

Le tout basé sur du container docker, sur un Kimsufi (40Go de disque, 4Go de RAM).

Je voulais exécuter les TU/TF de mes projets (qui sont sur le gogs) sans passer par un service externe (CircleCI, TravisCI, Codeship, …) qui serait potentiellement payant pour mes projets privés.

J'ai (…)

Journal Tentative de financement participatif pour projet OpenSource

Posté par  (site web personnel) . Licence CC By‑SA.
4
18
oct.
2016

Salut les moules!

Quittant la vie de salarié, je me lance dans l'indépendance la plus totale, et avec quelques amis lançons notre propre entreprise, en attendant, il faut bien manger.

C'est pourquoi aujourd'hui, je tente une nouvelle expérience : me faire financer pour développer un projet, pas seulement OpenSource, mais surtout libre.

J'ai quelques idées de projets, et compte les réaliser une à une durant cette première année sans revenu (du moins autre que les-dit projets).

La première de ces (…)

Journal [Bookmark] Faire tourner Linux sur un micro-contrôleur 8-bit

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
32
20
sept.
2016

Ah! Hackernews! On y voit passer de petites perles quand même.

Comme par exemple, ce matin, je tombe sur cet article qui explique la démarche complète pour faire tourner une Ubuntu Jaunty (on est sur de la vieille version) sur un micro-contrôleur 8-bit, rien que ça !

Pour une petite traduction en mode TL;DR, il explique les prérequis pour pouvoir exécuter un noyau linux et booter une distribution :

  • CPU 32 bits, avec support du MMU (Memory Managment (…)

Journal Génération de code (Python) avec Grako

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
3
juil.
2016

Depuis quelques jours, je découvre une lib Python, grako. Et je dois dire, elle est assez magique !

Besoin initial, trouver la lib!

Le besoin initial s'est présenté au boulot : on doit écrire un DSL pour interroger un ensemble de systèmes fournissant chacun de la donnée à leurs manières.

La première chose faite, c'est d'écrire la grammaire eBNF de ce DSL. Histoire de prévoir comment on va parser le bazar.

La seconde chose faite, et c'est devenu un réflexe (…)