Courses de printemps 2025

Sunday, 16 February 2025
|
Écrit par
Grégory Soutadé

RoureTrail (du camp Romain)

Affiche trail du Rouret

Le trail du Rouret en est à sa 3e édition, ce qui démontre l'engouement généré par cette course extrêmement sympathique. Le départ sera donné le dimanche 16 mars 2025 à 9h30 pour le 16km, 10h pour le 9km et 10h10 pour la randonnée (9km) devant le théâtre municipal. De quoi passer une bonne journée et aider au financement de l'école du Rouret.

Ascension du col de Vence

Affiche ascension du col de Vence

La 21e édition de l'ascension du col de Vence est prévue le dimanche 4 mai 2025. 12km pour un total de 620m de dénivelé positif, dont le dernier qui fait vraiment mal aux jambes. Et pour les plus courageux, la redescente après la course via les chemins de randonnée. Descente à la fois rapide, technique et agréable (notamment dans sa seconde partie plus plate).

Le coût de l'intelligence artificielle

Sunday, 09 February 2025
|
Écrit par
Grégory Soutadé

L'intelligence artificielle est un sujet récurrent ces derniers temps. Entre la génération d'image réaliste, la (plus ou moins grande) pertinence de ChatGPT, le modèle soi-disant ultra performant et à bas coût de DeepSeek, le projet de méga centre de calcul Stargate, l'échec de la première version publique de Lucie, la concurrence dans le domaine est acharnée, avec des investissements qui vont de pair.

D'ailleurs, on ne devrait pas parler d'une intelligence artificielle, mais de plusieurs. Chacune avec son modèle et sa finalité propre. C'est exactement comme pour le cerveau qui est découpé en différentes zones avec des domaines spécialisés (langage, mémoire, vision ...). Mais dans le cas du cerveau, nous avons tous les domaines en même temps !

Pourtant, quel que soit le domaine, l'intelligence artificielle n'est pas juste un modèle informatique. Avant de pouvoir être efficace, il faut réaliser toute une phase d'apprentissage à partir de données existantes. Sur ce point, le web représente une véritable aubaine, une mine d'or de données de type divers et varié. Ce n'est pas pour rien que Microsoft a racheté Github en 2018 pour la modique somme de 7,5 milliards de dollars... Il peut ainsi accéder à, désormais, 500 millions de projets ! En ce qui concerne les données multimédia (particulièrement les images), l'apprentissage est plus complexe car il faut des personnes pour "annoter" ce que contient l'image, c'est à dire spécifier dans un carré la nature d'un élément (une personne, une voiture ...). Sur ce point, les premières annotations à grande échelle ont été réalisées via les CAPTCHA afin de "prouver" que l'utilisateur n'est pas un robot. Aujourd'hui, il existe dans des pays où la mains d'œuvre est peu chère (notamment en Asie du Sud Est) des centres professionnels où les personnes sont payées pour annoter des millions d'images.

Tout cela est relativement transparent pour les utilisateurs finaux, qui se contentent d'envoyer des requêtes via le "prompt".

Dans la dernière version d'IWLA, j'ai implémenté la fusion des robots via leur identifiant ("compatible"). Quelle ne fut pas ma surprise de voir qu'en à peine 6 jours, le robot GPTBot/1.2 a téléchargé 19,5GB de contenu depuis mon site, alors que ce dernier n'évolue que très peu. Je suppose donc que GPTBot opère une ré indexation complète à chaque changement. L'utilisation de toute cette bande passante est là encore invisible pour l'utilisateur final, mais constitue, avec le stockage des données et son traitement, une consommation d'énergie très importante.

C'est pourquoi j'ai décidé de bloquer purement et simplement toutes les requêtes venant d'openai, comme je l'avais fait pour le très gourmand robot de Microsoft (bingbot).

Voici le script que j'utilise et qui est dans mon crontab. Il va analyser les logs du serveur Apache et bloquer les IP qui correspondent à un mot :

#!/bin/bash

function ban_ip()
{
    echo "Ban $1"
    nft add rule inet BAN_RU input ip saddr $1 drop
}

function ban_file()
{
    file=$1
    token=$2
    prefix_len=$3
    fields=""
    postfix=""
    case $prefix_len in
        "8")  fields="1";       postfix=".0.0.0";;
        "16") fields="1,2";     postfix=".0.0";;
        "24") fields="1,2,3";   postfix=".0";;
        "32") fields="1,2,3,4"; postfix="";;
        *) echo "Error: prefix_len must be 8, 16, 24 or 32"
           return;;
    esac
    ips=`cat $file|grep $token|cut -f2 -d' '|sort|uniq|cut -d'.' -f$fields|uniq`
    for ip in $ips ; do
        ban_ip "${ip}${postfix}/${prefix_len}"
    done
}

if [ -z "$1" -o $1 = "-h" -o $1 = "--help" ] ; then
    echo "$0 token prefix_len (8,16,24,32)"
fi

ban_file /var/log/apache2/access.log.1 $1 $2

Il se base sur le pare-feu Linux netfilter configuré comme tel :

nft create table inet BAN_RU
nft add chain inet BAN_RU input "{{ type filter hook input priority filter; }}"

La table en question est BAN_RU, déjà utilisée pour bloquer les IP venant de Russie. Le script ne supporte que des IPv4, mais je ne vois pas de connexion IPv6 de la part de robots aussi gourmands.

IWLA 0.8

Tuesday, 04 February 2025
|
Écrit par
Grégory Soutadé

Capture d'écran IWLA

Version 0.8 of IWLA (Intelligent Web Log Analyzer written in Python) is now released. While looking at the Changelog, I realized that IWLA is now 10 years old ! It's crazy to see that it's still so useful for me, I use it everyday. There is no real alternatives to it if we consider statistic analysis without cookies/embedded javascript. Only AWSTATS do the same, but it's one big unmaintainable PERL file. This is why I created my own tool which is, I think, more accurate and fine tuned. IWLA is my most actively developed personal project, but this not the only one to be old. I also developed gPass (12 years old), KissCount (15 years old), Denote (10 years old) and Dynastie (13 years old). For these projects, I only do maintenance, but I still use them a lot. For KissCount, I think it should be re wrote from scratch with a cleaner architecture. For Dynastie, there is no real alternative, any current static site generator has a dynamic/web frontend, but I think backend should be migrated to something else (more fast). Denote is quite simple and perfect for my needs.

Going back to IWLA, the changelog is :

Core

  • Awstats data updated (8.0)
  • Sanitize HTTP requests before analyze
  • Fix potential division by 0

Plugins

  • Add rule for robot : forbid "1 page and 1 hit"
  • Try to detect robots by "compatible" strings
  • Move feeds and reverse_dns plugins from post_analysis to pre_analysis
  • Move reverse DNS core management into iwla.py

HTML

  • Add domain and number of subscribers for feed parser

Config

  • Add "multimedia_re" filter to detect multimedia files by regular expression
  • Add "no_merge_feeds_parsers_list" configuration value
  • Add "robot_domains" configuration value
  • Add "ignore_url" configuration value

A demo instance (for forge.soutade.fr) is available here

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.

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