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 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 [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 GPL vs MIT, que choisir ?

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

Bonjour Nal !

Dans mon précédent journal concernant le passage de Redis a des licences "source available" (non opensource selon la définition de l'OSI), on a pu voir dans les commentaires de nombreux arguments qui peuvent se résumer à :

  • n'importe quel logiciel sous MIT peut devenir propriétaire du jour au lendemain
  • cela ne serait pas arrivé avec la GPL

Alors, je ne suis pas un avocat mais j'aimerais quand même clarifier 2-3 points :

Une licence s'applique au code

(…)

Journal Redis Open Source bronsonisé

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

Bonjour Nal.

Désolé pour ce titre un peu putaclick. Personne n'est décédé cette fois ci.

Juste Redis qui change de licence, passant de BSD3 a une double licence, dont une propriétaire.

Un autre lien sur le sujet avec un peu plus d'information ici. Toujours en anglais cela dit.

On notera l'apparition quasi immédiate du manifeste CacheRevolt en réponse.

J'observe une tendance des "gros" projets à se retirer de l'open source progressivement, tout en communiquant leur prétendu "amour de (…)

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 [Letlang] Hommage à Leonardo Pisano Fibonacci

Posté par  (site web personnel) . Licence CC By‑SA.
18
23
mai
2022

Bonjour Nal,

Aujourd'hui, je vais te parler de la suite de Fibonacci en Letlang.

Pour la table des matières, comme d'habitude:

Prélude

Pour ceux qui ne sont pas au courant, le programme Letlang Hello World compile :

module "hello.main";
(…)

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 Des nouvelles de Cream-Browser

Posté par  (site web personnel) .
18
24
sept.
2011

Je vous avez déjà parlé de Cream-Browser dans ce journal.

Après 5 long mois je pense qu'il est temps de rédiger un nouvel article pour ceux ayant la flemme de suivre le blog, le flux RSS, la mailing list ou carrément le commit log sur github.

J'avais dans mon dernier article présenté deux caractéristiques de Cream-Browser :

  • support de GTK+-2.0 et GTK+-3.0
  • les GModule
  • la configuration en lua

Quelques petites choses ont changés depuis.

Suppression du support

(…)

Journal Carte bancaire piratée, la faute à qui ?

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

Bonjour Nal,

J'ai reçu ma nouvelle carte bancaire vers la fin du mois de Mars, et je l'ai activée au premier avril avec un petit achat en pharmacie.

J'ai ensuite mis à jour mon moyen de paiement sur Amazon le 4 avril, pour un achat également.

J'ai ensuite eu le plaisir d'avoir un appel de ma banque ce matin concernant 2 transactions douteuses :

  • le 4 avril à 22h30, un paiement de 13.90€ à Amazon, depuis les États Unis
  • le (…)

Journal Cream-Browser

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

Vous en avez peut-être entendu parler (ou pas). Bref cela ne fait pas de mal de faire une nouvelle présentation n'est-ce pas ?

Un peu d'histoire ? Oula que non c'est barbant je me contenterai simplement d'énoncer tout cela dans les grandes lignes (pas de dates, je m'en souviens plus exactement).

Un petit historique du projet

  • Il y a 1-2 ans : Cream-Browser est un navigateur Internet vim-like développé avec GTK+ et WebKit, la configuration se fait via un fichier (…)

Journal WMFS, Window Manager From Scratch

Posté par  (site web personnel) . Licence CC By‑SA.
16
11
avr.
2011

WMFS, Window Manager From Scratch

WMFS est un gestionnaire de fenêtre 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 manager sur de nombreux points.

I. Les layouts

La est le point fort de tout tiling WM, les layouts sont les différents modes d'organisations des fenêtres sur votre environnement de travail. En plus des classiques free, max et tile (right, left, (…)

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 [Letlang] Et si on rédigeait la spec ?

15
6
mai
2022

Bonjour Nal,

Aujourd'hui pas de code, mais de la doc !

En effet, il est grand temps de mettre mes idées sur papier pour les générations futures.

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

La documentation, c'est bien

(…)

Journal Le roi est mort, vive le roi ! Les alternatives de Redis sont là

Posté par  (site web personnel) . Licence CC By‑SA.
13
3
avr.
2024

Bonjour Nal !

Après le changement de licence de Redis, ce qui devait arriver arriva, et des alternatives libres apparaissent.

Tout d'abord, on a le timing magnifique de Microsoft qui publie quelques jours avant le-dit changement : Garnet, sous licence MIT, et utilisant le protocole RESP, permettant d'utiliser les clients Redis tels quels.

Ensuite, on a l'annonce de Redict, sous licence LGPL 3.0-only (à différencier donc des LGPL 3.0 et plus).

Puis Valkey, supporté par la Linux (…)