Journal [LWN] Une porte de sortie pour a.out

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

Ceci est une traduction de l'article LWN A way out for a.out, rédigé et publié par Jonathan Corbet.

Contrairement à ma précédente tentative, j'ai cette fois ci l'autorisation de l'éditoriat de LWN (cf fin du journal).


Le format d'exécutable a.out date des tout premiers jours de Linux—et même avant. Il n'a pas été utilisé sérieusement depuis plusieurs décennies, mais le support existe toujours dans le noyau Linux et a résisté à toutes les tentatives de suppression. En Janvier (…)

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 Challenge: Écrire la plus petite implémentation de /bin/true

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

Bonjour Nal,

/bin/true est un programme qui ne fait rien et retourne le code de sortie 0.

Par exemple, en C :

int main() {
    return 0;
}

Si on compile ce dernier avec la commande suivante:

$ gcc true.c -o true
$ wc -c true
16464
$ ./true && echo $?
0

On obtient un binaire d'environ 16kb.

Si on pousse plus loin avec la version assembleur:

bits 64
global _start
section .text

_start:
  mov eax
(…)

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 (…)

WMFS, Window Manager From Scratch

Posté par  (site web personnel) . Modéré par Xavier Teyssier. Licence CC By‑SA.
45
12
avr.
2011
Serveurs d’affichage

WMFS, Window Manager From Scratch

WMFS est un gestionnaire de fenêtres dit tiling. Développé par xorg62 (et quelques utilisateurs du logiciel) en C à l’aide de la XLib. WMFS se distingue des autres tiling window managers sur de nombreux points.

Il intègre notamment pas mal d’agencements (layouts), de belles fonctionnalités sur les tags et possède une configuration très simple à prendre en main. C’est un WM souple et tout autant léger.

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 Combattre la procrastination en publiant mes travaux non finis

42
18
jan.
2024

Bonjour Nal !

Cette nouvelle année 2024 fut un électrochoc pour moi. En effet, en 2022 et 2023 j'ai eu plein de petits projets personnels par-ci et par-là.

J'allais les publier demain (tu connais), et du jour au lendemain, sans prévenir, on est en 2024 !!

Il fut temps de prendre une résolution : combattre ma procrastination (demain…).

C'est pourquoi j'ai commencé à publier tout ces petits projets non finis qui restaient à pourrir sur mon ordinateur :

Journal À quel point votre projet open source doit-il être ouvert ?

Posté par  (site web personnel) .
39
14
mai
2023

NdA: Cet article, How 'open' should your open source be?, a été initialement publié sur GitHub's The ReadME Project, et traduit par mes soins avec le consentement express de son auteur.


Dans les faits, le projet Litestream est (et a toujours été) 100% open source. Il respecte les 10 prérequis de la définition de l'Open Source Initiation, utilise une licence approuvée par l'OSI, et vous êtes plus que bienvenu pour forker et modifier le projet comme bon vous (…)

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 (…)

Journal Écrire un jeu en Rust presque de zéro

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
36
6
juin
2022

Bonjour Nal !

Si comme moi tu penses que le Rust c'est simple car il suffit d'écrire du code et corriger ce que le compilateur te dit de corriger, tu te trompes à moitié.

Introduction

En vérité, le Rust c'est compliqué, car la programmation c'est compliqué. Contrairement à la plupart des langages, le Rust n'est pas une abstraction. Le compilateur ne prendra aucune décision pour toi et n'essayera jamais de deviner ce que tu as voulu exprimer. Le Rust te (…)

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 [HS] Akira Toriyama bronsonisé

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
34
8
mar.
2024

Connu pour les mangas Dr Slump, Dragon Ball, Jaco, … et les chara-design des jeux Dragon Quest, Akira Toriyama est décédé aujourd'hui à l'âge de 68 ans.

Une petite pensée pour cet homme qui a bercé mon enfance.

https://www.francetvinfo.fr/culture/le-createur-de-dragon-ball-akira-toriyama-est-mort-a-l-age-de-68-ans_6411382.html

Journal Python 3.11 est disponible

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
33
25
oct.
2022

Ce journal est une traduction de https://discuss.python.org/t/python-3-11-0-final-is-now-available/20291

Nouveautés

Changements généraux

  • PEP 657 - Introduction de meilleures sources d'erreurs

Exemple :

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    x['a']['b']['c']['d'] = 1
    ~~~~~~~~~~~^^^^^
TypeError: 'NoneType' object is not subscriptable
  • PEP 654 - Groupes d'exceptions et except*
  • PEP 680 - tomllib rejoint la librairie standard
  • GH-90908 - Introduction des groupes de tâches dans asyncio
  • GH-34827 - Groupes atomiques ((?>...)) and quantifieur possessifs (*+, ++, ?+, {m,n}+) sont maintenant supportés (…)

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 Sunday Python Pattern : Une machine à état toute simple

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
29
17
avr.
2022

Bonjour Nal,

Il y a un "design pattern" que je réutilise souvent dans différent langages pour découper la logique métier en plusieurs petit bout de code bien séparés et facilement testable.

Ce design pattern s'apparente très fortement à une machine à état :

  • on a la machine a état qui possède un contexte (des données qui seront manipulées et modifiées par l'exécution de l'algorithme)
  • chaque état va agir sur ce contexte et retourner l'état suivant à exécuter, ou None si (…)