1096

Monday, 24 February 2025
|
Écrit par
Grégory Soutadé

Les conflits armés sont des événements décidément très imprévisibles. Il y a un peu plus de 3 mois, nous passions le cap des 1 000 jours depuis le franchissement de la frontière Ukrainiennes par l'armée Russe. 1 000 jours de combats acharnés, 1 000 jours de courage, 1 000 jours de résilience, 1 000 jours d'innovation, 1 000 jours que Kiev résiste tant bien que mal à un ennemi largement supérieur en homme et matériel.

À la sortie de l'hiver dernier, et après une contre offensive Ukrainienne stérile, les positions étaient relativement figées. L'aide Américaine concernant les livraisons d'obus a été gelée pendant plusieurs mois suite à la discorde entre Républicains et Démocrates. Face à ce constat, le haut commandement Russe a décidé d'augmenter (encore) les moyens. Le nombre de missiles envoyés quotidiennement avoisine désormais les 100 par jour, visant notamment les installations énergétiques, mais aussi les bâtiments civils. Plus encore quand il s'agit de répondre à une attaque de missiles longue portée. Heureusement, grâce au soutient allié, nombre d'entre eux sont interceptés, même si certains traversent les mailles du filet.

Sur le terrain, l'armée de Poutine a adopté de nouvelles stratégies plutôt efficaces puisqu'elle progresse, faiblement, mais quotidiennement, avec un nombre de combats engagés là encore plus important. Ceci, malgré les nombreuses pertes humaines. De l'ordre de 1 000 soldats mis hors de combat par jour selon les chiffres du renseignement Ukrainien. Ainsi, dans le Sud Est, Avdiïvka est tombée. Pokrovsk est quant à elle quasiment encerclée. Stratégie moins coûteuse et plus efficace qu'un assaut frontal. Au Nord Est, la Russie a réalisé une nouvelle percée dans le sud de la région de Belgorod. L'étirement des zones de combats étant plus favorable aux soviétiques grâce à leurs importants moyens humains et matériel. En effet, 3 ans plus tard, elle est toujours capable de recruter des unités pour le combat, et l'industrie de l'armement tourne à plein régimes, par delà les sanctions.

Afin d'éviter la chute de Pokrovsk, l'Ukraine a lancé un mouvement très audacieux en envahissant une partie de la région de Koursk, directement sur le sol Russe. Un jet de dés pour espérer alléger la pression sur le front Sud, mais aussi pouvoir peser dans d'éventuelles négociations. La réponse Russe fut tout aussi intelligente avec la mobilisation de troupes Nord Coréennes (en plus de son soutien matériel). Mouvement tout a fait légitime d'un point de vue du droit international, car il s'agit de protéger son intégrité territoriale. Selon les diverses sources, ce sont donc plus de 10 000 soldats supplémentaires qui sont arrivés. Une aubaine pour le camps de Poutine.

Côté Ukrainien, les succès militaires sont rares. Un certain nombre d'avions de chasse sont opérationnels depuis l'été dernier, mais ne sont utilisés que pour des tâches défensives telle que l'interception de missiles. Par contre, l'industrie s'est grandement spécialisée dans la conception de drones à courte et longue portée. Ce qui permet d'endommager régulièrement les installations pétrolières et gazières très profondément dans le territoire ennemi. La guerre de drones est une nouveauté à laquelle peu d'armées étaient préparées. Les innovations y ont été rapides, peut-être autant que pour les missiles hyper sonique. Ces nouvelles armes sont redoutables, avec une précision inégalée quand elles sont directement pilotées par caméra. Notamment contre les chars qui ne sont pas forcément complètement blindés sur la partie supérieure. Idem pour les drones maritimes, véritable terreurs de la mer Noire, obligeant la flotte ennemie à se retirer en mer d'Azov. La marine Russe a ainsi développé des drones anti drones ! Comble de cette bataille technologique, nombre de militaires Ukrainiens formés à l'étranger se sont plaints de ne pas avoir reçu de formation spécifique pour ces nouveaux types de combats.

Fin janvier, Donald Trump est entré en fonction. Le 47e président des États-Unis est encore plus imprévisible que lors de son premier mandat. Il souffle le chaud et le froid, alternant entre soutien à l'Ukraine et négociations forcées. L'aide destinée aux pays étrangers ayant été suspendue dès sont entré en fonction, c'est désormais les métaux rares du sous-sol Ukrainien qui l'intéresse (parce qu'il adore les forages). Pourtant, les États-Unis semblent de moins en moins capables de peser dans l'issue du conflit. Trump veut juste stopper les dépenses liées à cette guerre, sans avoir d'intérêt réel quant au sort de l'Ukraine. Ce qui oblige l'Europe à faire plus et mieux, alors qu'elle est en proie aux difficultés et divisions.

Le soutien de l'opinion publique internationale s'étiole lui aussi de jours en jours. De plus en plus d'Ukrainiens sont eux-mêmes disposés à abandonner une partie de leurs territoires perdus contre la fin du conflit. Le président Zelensky n'est plus soutenu que par 57% de ses concitoyens, alors que la loi martiale court toujours et que des élections auraient normalement dû être organisées. Côté Russe, la population souffre en silence, car sous une croissance en trompe l'œil (4,1% selon les chiffres du Kremlin) principalement tirée par l'industrie militaire, la réalité du quotidien est beaucoup plus difficile avec une inflation de 9,5% en 2024. Ce problème économique pousse nombre d'entre eux dans les rangs de l'armée, qui offre de bons salaires et de bonnes primes en cas de pépin.

Dans ce tableau plutôt noir, on peut pourtant lire l'incroyable résilience d'un peuple agressé depuis maintenant 3 ans et qui vit proche des zones de combat, voir même pour certains carrément dedans. Peuple toujours debout malgré les alertes quotidiennes, les destructions, les pénuries et les mauvaises nouvelles quotidiennes.

Le bras de fer continue donc, avec des répercutions de plus en plus dramatiques sur le long terme, d'un côté comme de l'autre. Il faut continuer à espérer une sortie rapide et favorable, même si elle semble peu probable sans un soutien majeur extérieur.

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.

Retour: La pluie a fait craindre une annulation de la course. Heureusement, elle n'est tombée que dans la nuit et il faisait beau lors du départ. Cette année, la participation était en hausse avec 409 partants ! Pour ma part, je n'ai pas pu prendre le départ car malade depuis une semaine, et plus particulièrement les 3 jours précédents qui ont été difficiles. Hâte d'être à l'année prochaine pour retrouver ce beau circuit et cette belle ambiance.

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).

Retour: Alors qu'il faisait beau presque partout en France, c'est la pluie qui s'est invitée sur la Côte d'Azur, ce n'est qui n'est pas terrible pour les photos mais offre de bonnes conditions de course. Il ne fallait donc pas traîner dans le col pour rester sec. Après 1h06 et 34 secondes de course (+4 secondes comparé à l'année passée), je n'ai pas eu le temps de prendre un verre d'eau que l'averse a commencé ! J'ai eu la chance de pouvoir m'abriter sous un barnum monté à la hâte le matin même, mais il y avait encore 181 coureurs en sur le bitume, ainsi que les bénévoles ! On ne les remerciera jamais assez. Côté sensations, malgré une préparation loin d'être optimale (maladie, météo) et beaucoup de fatigue (merci les voisins), je suis satisfait d'avoir pu aussi bien gérer mon effort. Seuls les 2 derniers kilomètres ont été très difficiles. Météo et/ou effet du pont du 1er mai, il faudra espérer un peu plus que 257 participants pour la prochaine édition (la marche ayant été annulée).

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.