Milano nuovo

Tuesday, 07 January 2025
|
Écrit par
Grégory Soutadé

IBM à Milan

Le début d'année une période propice aux bilans divers et variés ainsi qu'à l'introspection. Ce qui amène à prendre des résolutions pour ce nouveau cycle qui commence, bien qu'en réalité notre rythme de vie est calqué sur le rythme scolaire. L'autre tradition consiste en l'envoie de ses vœux à un maximum de personnes, les outils de communication actuels permettant de transmettre ces messages immédiatement. Je préfère personnellement des messages personnalisés que l'on pourra délivrer directement à la personne, en face à face quand cela est possible.

Mais le 1er janvier est également synonyme d'entrée en vigueur de nouvelles législations et d'ajustement de taxes et pensions. Législations qui ont souvent été votées longtemps en avance (parfois des années). Il y a ainsi de grandes dates butoirs qui font régulièrement écho dans la presse : neutralité carbone en 2050, fin de la vente de véhicules thermiques en 2035... À la fois lointaines et si proches, ces mesures inquiètes car elles vont nous forcer à repenser notre mode de vie et nos déplacements, pour des modèles fort probablement plus contraignants.

En Lombardie, c'est une petite révolution qui s'opère en ce 1er janvier 2025. Les Milanais ont eu 5 ans pour se préparer psychologiquement à une nouvelle mesure : l'interdiction totale de fumer dans les espaces publics (ouverts ou fermés). Petit encart néanmoins : il est possible de fumer dans des lieux isolés avec une distance minimale de 10m autour de soi (difficile à obtenir dans une métropole aussi dense). Je me souviens en effet de mon voyage datant de 2019 dans la capitale Lombarde où je notais

Il est d'ailleurs assez difficile de trouver des rues où personne ne fume...

Je trouve donc cette mesure extrêmement courageuse sachant que 20% des Italiens fument et qu'il y a même des distributeurs de cigarettes en libre service (une aubaine pour la mafia). Cette mesure me rappelle le "big bang" opéré par le Royaume-Uni lorsqu’a été interdit la cigarette dans les pubs. On pensait alors à la mort de ces derniers, il n'en fut rien. Milan n'est pas précurseur en la matière. On trouve des règles similaires à New York (avec un peu plus de souplesse) ou Singapour. Mais cette mesure met en lumière une prise de conscience généralisée des pouvoirs publics face à ce qu'on appelle communément une "drogue douce".

Dans ma jeunesse, j'étais entouré de fumeurs. L'habitude faisant, la fumée ne provoquait qu'une gêne légère. Je me souviens encore de certains repas familiaux où flottait 20cm de fumée au plafond, ou encore certains restaurants/bars totalement enfumés. Les plus anciens ont même connus la cigarette dans les avions ! Il y a désormais moins de fumeurs dans mon entourage. Puis, il y a eu ce 1er février 2007 où la cigarette a été interdite dans les restaurants (entre autres). Et puis, la plupart des voisins sont non fumeurs. Et puis, j'ai commencé à faire plus de sport, domaine où l'oxygène est une ressource précieuse. Les bronches étant particulièrement ouvertes, on est beaucoup plus sensible à la pollution atmosphérique. Il s'est donc opéré un réel sevrage depuis plusieurs années. À tel point que cette odeur m'est désormais particulièrement désagréable. Et pour cause, une fois sevré, on se rend compte à quel point ce produit est de la grosse m****.

Parce que la cigarette n'apporte que des mauvaises choses :

Pour soi

  • Dépendance
  • Troubles de l'humeur
  • Perte de goût et d'odorat
  • Jaunissement des dents et de la peau
  • Mauvaise haleine
  • Encrassement des poumons et des artères
  • Risque de cancer
  • Perte de capacité respiratoire
  • Obligation de fumer en extérieur par temps froids et pluvieux
  • Obligation de se réapprovisionner régulièrement
  • Coût du tabac

Pour les autres

  • Tabagisme passif
  • Pollution de l'air
  • Exploitation des travailleurs pauvres

Pour l'environnement

  • Produit exotique venant de loin
  • Transformation du tabac utilisant des produits nocifs
  • Pollution due aux mégots
  • Risque d'incendie
  • Déforestation (plantation é séchage du tabac)
  • Pollution plastique (paquet de cigarette, briquet)

D'ailleurs, je ne comprends pas les personnes qui fument avant/pendant les repas. Il est impossible d'apprécier un plat quand on a les papilles brûlées par la fumée (en plus d'incommoder le voisinage). On pourra malheureusement dresser ce triste constat : beaucoup de personnes travaillant dans la restauration (dont des grands chefs) sont fumeurs... Et que dire des personnes qui fument dans leur voiture ? Dès le lever ? On voit ainsi à quel point cette drogue "douce" est une véritable addiction et n'est pas consommée seulement dans les moments festifs/conviviaux. Elle est une fausse solution face au stress et à l'angoisse, qui augmentent avec l'addiction cat le corps se met en état de stress avec le manque.

Fumer n'est ni un droit, ni une liberté, c'est une addiction.

Pour autant, j'ai vu autour de moi plusieurs personnes arrêter de fumer. Je trouve cette démarche très courageuse de leur part quand on connaît la difficulté de se sortir d'une addiction parfois vieille de dizaines d'années.

Halte aux squatteurs !

Sunday, 08 December 2024
|
Écrit par
Grégory Soutadé

Trouver un nom est toujours un exercice délicat, car il aura toujours une portée et une connotation sur un temps plus ou moins long. Une fois les choses actées, en changer pourra jeter le trouble chez les personnes qui auront connues l'ancienne référence.

Mon dernier projet en date est Drycat. Le nom retenu n'a été choisi que récemment. Toute sa version de développement s'est faite sous l'acronyme ssss, qui reflète plus la nature du projet mais est moins facile à retenir pour l'utilisateur. Une fois ce joli nom évoquant nos chères bestioles choisi, il aurait été bon de faire une recherche pour savoir s'il n'était pas déjà attribué. J'ai oublié de faire la démarche. Résultat, le projet est un homonyme d'un aspirateur industriel... Les deux mondes restent toutefois suffisamment éloignés pour éviter les confusions et que l'utilisateur puisse retomber rapidement sur ses pattes.

Le projet est désormais exposé aux yeux du monde entier via l'adresse https://drycat.net. Comme pour toutes les adresses internet, elle doit être enregistrée chez un organisme certifié appelé "registrar" (bureau d'enregistrement). Cet enregistrement n'est pas gratuit. Il faut s'acquitter d'une cotisation annuelle plus ou moins importante selon les organismes et l'extension choisie (.fr, .com, .net, ...).

Mon idée première était d'enregistrer l'adresse drycat.com. Le premier réflex est de tester directement cette adresse dans un navigateur. On arrive alors sur une page indiquant que le nom de domaine est à vendre. Bonne nouvelle puisque je souhaite l'acquérir. Ce service est proposé par l'Américain GoDaddy. Là où les choses deviennent étranges, c'est qu'il y a un encart qui propose de faire une offre pour le nom de domaine ("Make an offer") et n'est donc pas soumis à une grille tarifaire. Je tente de rentrer 10$, ce qui semble cohérent (en France, un nom de domaine en .com coûte dans les ~15€/an). Un message en rouge apparaît indicant que le propriétaire n'accepte pas d'offre en dessous de 5 000$ ! En gros, il y a un co***** qui a enregistré ce nom de domaine dans le seul but de le revendre.

Ce phénomène de squat n'est pas nouveau. Sauf que jusqu'à présent il était utilisé pour 2 raisons principales :

  • Faire payer de grosses entreprises
  • Créer un site de phishing

Le premier point n'excuse pas le squat. Les entreprises peuvent d'ailleurs porter l'affaire en justice lorsque la marque a été enregistrée préalablement au nom de domaine. À l'inverse, certaines entreprises ont tenté de s'approprier des noms déjà réservés par des personnes légitimes. Le deuxième point ne l'excuse pas non plus et peut être particulièrement vicieux avec des nom comme faceboook.com ou facebook.co. D'autant plus que depuis 2012, le nombre d'extensions a considérablement été élargi, passant de 21 + 250 extensions régionales à plus de 1 000 ! Avec des extensions plus ou moins farfelues telle que .builders, .buzz, .christmas, .guru, .kim, .ninja, .rich ...

Je pense que cette ouverture a poussé à la création d'un marché dit "secondaire". Il y a même une section dédiée sur le site de GoDaddy. Il devient donc de plus en plus cher pour une entreprise (internationale) de couvrir toutes les possibilités acceptables. Dans ce nouveau marché secondaire, les noms de domaines les plus prisés sont ceux avec une extension courte (et générique), souvent associée à un pays.

Transformer cette mécanique légitime en actif numérique spéculatif est une pratique infecte. Même si le spéculateur arrive, de temps en temps, à écouler un de ses squats, les entités qui gagnent vraiment de l'argent sont les registrars. Comme dans une guerre, les personnes qui s'enrichissent sont celles qui vendent des armes...

Personnellement, je possède plusieurs noms de domaine. Mon registrar favoris était Gandi, mais ils ont, semble-t-il, décidé de se saborder complètement avec d'une part, une diminution des services associés au nom de domaine (adieu le mail) et, d'autre part, une augmentation significative des tarifs. Ainsi, s'enregistrer chez eux (hors .fr) coûte 2 à 3 fois plus cher qu'ailleurs, ce qui est complètement injustifié !

J'ai donc migré tous mes actifs (hors soutade.fr) vers OVH. Le tarif y est correct, l'interface de gestion très moche et les fonctionnalités plus restreintes. Typiquement, on n'a pas une totale liberté quant aux entrées DNS. Particulièrement pour créer les entrées DNS inverse (PTR), qui ne sont disponibles que quand on loue un serveur... Résultat, j'ai dû monter mon propre serveur DNS pour Drycat afin de ne pas être filtré par les clients mails (notamment gmail qui impose une entrée PTR). Le problème est qu'un serveur DNS non officiel peut être considéré comme n'étant pas de confiance par beaucoup d'acteurs... Bref, tout le monde essaie de trouver des sous de tous les côtés.

Drycat

Sunday, 01 December 2024
|
Écrit par
Grégory Soutadé

J'annonce le lancement officiel de Drycat.net !

Je me suis rendu compte à posteriori, que ce nom était utilisé par une marque d'aspirateurs industriels... Il est d'ailleurs assez peu parlant quant à sa finalité (du moins au premier abord). En effet, Drycat est site web permettant le partage de secret entre plusieurs personnes. Un secret (une phrase ou un fichier) va être découpé en plusieurs parties et, selon la configuration, il faudra réunir plus ou moins de parties pour arriver à reconstituer le secret original.

Exemple, avec un secret que l'on découpe en 4 parties, mais dont 3 seulement sont nécessaires pour le recomposer :

Ainsi, le partage de "pouvoir" est assez souple en fonction du nombre de parties générées et à qui on les affecte. Dans notre exemple, il faudra absolument que la première personne soit présente, mais elle ne pourra pas seule reconstituer le secret.

La théorie mathématique derrière Drycat fut décrite par Adi Shamir. Elle se base sur la reconstruction d'un polynôme d'ordre k (k étant le seuil) par interpolation. Bien qu'ancienne, elle reste pour autant très peu répandue, alors que je la trouve particulièrement intéressante. D'autant plus qu'Adi Shamir n'est autre qu'un des co créateurs du système RSA (système cryptographique asymétrique), utilisé un peu partout en informatique, notamment pour la couche de sécurité HTTPS.

Drycat se base sur l'implémentation JavaScript ouverte Amper5and, dont un site de démonstration est disponible ici. Alors, pourquoi avoir crée un site tiers supplémentaire ? Pour une question d'ergonomie et de facilité d'utilisation.

En effet, je voulais réaliser un site facile à utiliser par tout le monde, et surtout les personnes qui ne sont pas très techniques. La configuration nécessite de connaître quelque bases, mais avec Drycat, la récupération du secret est quasi automatique. Ainsi, les points forts sont :

  • Ergonomie qui va à l'essentiel
  • Utilisation des QRCode et de l'envoie par mail
  • Recombinaison automatique du secret une fois que toutes les parties sont rentrées
  • Chiffrement des fichiers réalisé directement depuis l'interface (mais en local sur l'ordinateur de l'utilisateur)
  • Hébergement des fichiers sur le serveur

En ce qui concerne le dernier point, les fichiers envoyés sur le serveur sont forcément chiffrés, de sorte que personne ne pourra les lire sans la clé de déchiffrement. Clé connue uniquement en réunissant les différentes parties.

Un autre ajout majeur (et inédit) de Drycat est la possibilité, pour le chiffrement d'un fichier, de rendre une partie obligatoire. Ainsi, si le seuil est atteint sans que toutes les parties obligatoires ne soient rentrées, le déchiffrement sera invalide.

Pour le moment, il faut simplement être enregistré sur le serveur pour pouvoir y téléverser des fichiers, avec certaines restrictions (taille du fichier, durée de vie du fichier). La fonctionnalité d'envoi par mail étant réservé à des comptes payants. Cette partie payante sera mis en œuvre selon la demande des utilisateurs car cela nécessite la création d'une société. Mais le but premier est que les gens puissent s'amuser en toute autonomie.

How to do polymorphism in C ?

Thursday, 31 October 2024
|
Écrit par
Grégory Soutadé

At work, I had to write a code architecture with types polymorphism in C language. The idea is very basic : one header with common functions and multiple backend implementations. At compile time, we decide which kind of implementation is taken. This can be achieved in a very elegant way using a not so much known C feature : forward definition.

First, a quick recap :

here is a declaration of a function (usually in a header):

int my_func(void); 

Here is a definition of a function (usually in a .c file):

int my_func(void) { return 4; }

This is the same for structures.

Good solution

When compiling, compiler checks that types match declaration, but it needs definition only when object is handled. So, we can create an opaque structure (lets say struct my_struct_s) that can have multiple implementations using its pointer version:

public_header.h

#ifndef _PUBLIC_HEADER_H_
#define _PUBLIC_HEADER_H_

/* Opaque type "my_struct_s" */
struct my_struct_s;
typedef struct my_struct_s* my_struct_t;

my_struct_t init(void);
void do_something(my_struct_t param);
void print_my_struct_t(my_struct_t param);
void delete(my_struct_t param);

my_struct_t init2(void);
void do_something2(my_struct_t param);
void print_my_struct_t2(my_struct_t param);
void delete2(my_struct_t param);

#endif

And two private implementations:

private.c

#include "stdlib.h"
#include "stdio.h"

#include "public_header.h"

/* Private implementation */
struct my_struct_s
{
    int member_i;
};

my_struct_t init(void)
{
    my_struct_t res;

    res = malloc(sizeof(*res));
    res->member_i = 0;

    return res;
}

void do_something(my_struct_t param)
{
    param->member_i++;
}

void print_my_struct_t(my_struct_t param)
{
    printf("I'm an integer with value %d\n",
           param->member_i);
}

void delete(my_struct_t param)
{
    free(param);
}

private2.c

#include "stdlib.h"
#include "stdio.h"

#include "public_header.h"

/* Private implementation */
struct my_struct_s
{
    char member_c;
};

my_struct_t init2(void)
{
    my_struct_t res;

    res = malloc(sizeof(*res));
    res->member_c = 'a';

    return res;
}

void do_something2(my_struct_t param)
{
    param->member_c++;
}

void print_my_struct_t2(my_struct_t param)
{
    printf("I'm a character with value '%c'\n",
           param->member_c);
}

void delete2(my_struct_t param)
{
    free(param);
}

In main.c

#include "public_header.h"

int main()
{
    my_struct_t var;

    var = init();
    do_something(var);
    print_my_struct_t(var);
    delete(var);

    var = init2();
    do_something2(var);
    print_my_struct_t2(var);
    delete2(var);

    return 0;
}

In this example, both implementations are present in output program. But, we can use only one implementation, selected at compile time, and thus have same function names in both private.c and private2.c.

This example works because my_struct_t is a pointer to struct my_struct_s. So, type is checked correctly, and it doesn't care about pointed value unless operation like increment, decrement or dereferencement is done on it. For example, in main.c :

struct my_struct_s var2;

Will generate an error:

error: storage size of ‘var2’ isn’t known

Bad solution

Another solution for pylomorphism is

typedef void* my_struct_t;

But, I do not recommend to write it, because in this case pointer type is not checked, void* is too generic and match all of them. This code compiles without warnings and can lead to type confusion error !

#include "stdio.h"
#include "public_header.h"

typedef void* my_struct_t2;

static void print_string(char* a)
{
    printf("Value of param '%s'\n", a);
}

int main()
{
    my_struct_t2 var;
    var = init();
    do_something(var);

    print_string(var);

    delete(var);

    return 0;
}

NB : In my examples, I use "stdio.h" only because "<" and ">" are removed by code coloration.

La Poste et moi

Monday, 21 October 2024
|
Écrit par
Grégory Soutadé

La Poste d'Espelette

On a tous une histoire avec La Poste, notamment les personnes qui ont connu l'entité en tant qu'organisme d'État. Il faut dire que le facteur est une personne qui nous connaît par procuration, via les courriers et les colis que l'on reçoit et qu'il délivre de par sa tournée. Il reste pourtant souvent dans l'ombre de nos boîte aux lettres. Si, dans l'inconscient collectif, le groupe a une réputation plutôt moyenne, je dois dire que personnellement, et en dehors des périodes estivales, je n'ai de mémoire jamais eu de problème de livraison. Au contraire, le facteur arrive même à compléter les éléments parfois manquants de l'adresse, et ça, c'est quand même vachement bien !

Pourtant, tout n'est pas rose. Particulièrement quand on discute avec celles et ceux qui ont travaillé pour le groupe avant le changement de statut. Mais également avec la plupart des personnes du service publique qui ont connu une période dorée jusque dans les années 1990/2000. C'est d'ailleurs en 1991 que les PTT sont séparés de France Telecom pour devenir La Poste, alors une entreprise publique autonome. Cette transformation est l'application d'une directive très libérale Européenne visant à supprimer les monopoles d'État (pour ouvrir les marchés à la concurrence). Deux an plus tard (novembre 1993) voit la ratification du traité de Maastricht qui transforme la Communauté Européenne en Union Européenne, telle que nous la connaissons aujourd'hui.

La deuxième étape majeure pour le groupe intervient en 2010 avec la création d'une Société Anonyme en lieu et place de l'entreprise publique autonome. Si l'aspect financier et rentabilité se retrouvent sous le feu des marchés, l'aspect politique reste inchangé puisque la société nouvellement créée est détenue à 66% par la Caisse des dépôts et consignations et à 34% par l'État Français. Du fait de son statut d'entreprise privée, le groupe se doit donc, à minima, de trouver un point d'équilibre financier. Pas évident dans un monde en transformation constante et rapide. Notamment quand son statut de service publique lui a offert une arme à double tranchant : un maillage territorial important, donc une masse salariale importante. Ce maillage permet pourtant de délivrer des services locaux qu'aucune autre entreprise ne serait en mesure de créer sur le court terme. Pourtant, il a tendance à disparaître dans les zones peu rentables. Les services postaux et associés y sont peu à peu confiés à l'administration (via les bureaux de mairie) ou à des sociétés locales (bar, commerce...).

Pour faire rentrer de l'argent, La Poste n'a donc d'autres choix que la diversification. Le groupe, via ses multiples filiales, est aujourd'hui un monstre présent un peu partout : livraison de courrier, livraison de colis (Collisimo, Chronopost, DPD), Immobilier, Finance (La Banque Postal), Prévoyance, Assurance, Bourse (EasyBourse), Telecom (La Poste Mobile), Cinéma, Numérique (Docaposte). Dans le numérique, elle se paie même le luxe de racheter le logiciel Pronote et la plateforme KissKissBankBank. Il faut reconnaître que cette stratégie semble fonctionner puisque depuis 2004 (alors que le nombre d'entités est en croissance), le groupe a toujours été bénéficiaire. La crise du COVID lui a même permis de doubler son résultat net à plus de 2 milliards d'euros ! Pourtant, à partir de 2019, et malgré une réduction des effectifs de 30% depuis 2004, la dette du groupe n'a cessé d'augmenter passant de ~3/4 milliards à plus de 10 milliards d'euros en 2022 ! Le conseil d'administration semble être devenu accro à l'endettement, ce qui ne présage rien de bon pour la suite.

La Poste a donc besoin de se ré inventer constamment pour rester en vie. En ce qui concerne son cœur de métier (courrier - colis), elle propose des services assez innovants, mais pas forcément très bien mis en avant.

  • Le premier qui permet de gagner en temps de livraison tout en diminuant la pollution est l'impression à distance. L'idée est de faire imprimer le courrier par l'agence postale la plus proche du destinataire. La confidentialité en prend pour son compte, mais l'efficacité est de mise !

  • Le second est la possibilité d'imprimer à la maison son bon de livraison, de le coller sur son colis et de le mettre dans sa boîte aux lettres. Le facteur se chargera de le récupérer le lendemain et de le déposer lui même au bureau de poste. Ce qui évite les files d'attente et/ou le fait de devoir se déplacer dans un bureau dont les horaires ne nous conviennent pas forcément (notamment quand ils sont tenu par des agents de mairie). Attention cependant, le colis ne sera pris en charge pour le transport que le lendemain du dépôt au bureau (donc J+2 par rapport à l'impression de l'étiquette).

  • Dans la même veine, on peut désormais imprimer ses timbres numériques, même si La Poste continue de vendre toute une collection de timbres originaux (ou classiques).

  • Pour augmenter ses marges, la société met également en vente des cartons de taille diverses et variées dans ses agences.

Tout n'est donc pas parfait avec cette entreprise qu'au fond on aime bien (et donc que l'on châtie bien), mais il faut savoir reconnaître et mettre en valeur les bons aspects quand ils existent. Ce que les Français ont beaucoup de mal à faire !

Dernier gif les joies du code Quand je code depuis des heures et que je réalise que je suis sur la mauvaise branche