Archives 2020
Friday, 30 October 2020
|
Écrit par
Grégory Soutadé

Comme près d'un français sur deux, j'étais devant mon poste de télévision mercredi soir à 20h. Par écran interposé, le président de la république, dit "Manu", nous a dévoilé son plan d'urgence. D'abord en posant les faits, puis les axes d'actions, les pistes écartées car jugées insuffisantes pour finalement arracher ce mot qui nous rappelle à un souvenir traumatisant, malheureusement si proche, le confinement.

Ce n'était pas une grande surprise tant la nouvelle avait fuité tôt dans la semaine, tant les mesures prises jusqu'à présent semblent inefficaces par rapport à la réalité des faits et l'augmentation exponentielle des cas de contaminations.

Pourtant, ce fut un sentiment de colère et d'injustice qui est venu le premier. Le même que l'on ressent à l'école lors d'une punition collective. Encore plus pour moi, qui depuis 3 semaines n'a pas pu bouger de mon canapé, attendant patiemment la reconstruction des ligaments de ma cheville. Certes, le confinement durera autant que le reste de ma convalescence, mais je ne pourrais pas profiter des infrastructures externes qui faciliteraient ma ré éducation, ni même m'aérer le week-end maintenant que j'ai retrouvé un peu de mobilité. Ajouté à cela, l'idée que les gens se ruent déjà dans les magasins et créent des pénuries inutiles me débecte au plus haut point.

Bien sûr que j'en ai voulu à Manu, qui n'est finalement pas responsable de la situation. Puisque la responsabilité est collective, c'est le résultat de l'ensemble des comportements individuels ... ou presque. Depuis 6 mois, il ne se passe pas un jour sans que l'on entende parler, sur tous les supports et que l'on parle soi même et avec son entourage de ce virus qui nous gâche l'existence. Depuis 6 mois, les consignes sanitaires n'ont cessées de se renforcer : dans les commerces, dans les lieux de vie, dans les lieux communs, dans le cadre professionnel... Certes, la reprise générale du travail et des écoles est un catalyseur d'épidémie, mais les "gestes barrières" (je commence à ne plus supporter cette expression) sont justement étudiés pour contraindre la propagation du virus dans un milieu restreint.

Je suis ingénieur. Très doué dans mon domaine, même si je ne pourrais être comparé aux lauréats des grandes écoles. Les ingénieurs sont des gens très cartésiens et qui ont tendance à respecter les règles du moment que celles-ci sont cohérentes. Il y a d'ailleurs peu d'ingénieur dans les manifestations nationales et aussi peu qui sont syndiqués. À ce titre, je me contente de suivre les directives nationales : beaucoup de masque dans les lieux publics, un peu de gel hydroalcoolique, respect des distanciations, même si tout n'est pas parfait. Pourtant j'ai vu ces derniers mois des rassemblements importants où les gens (jeunes et moins jeunes) ne respectaient pas ces consignes. On m'a reproché plusieurs fois d'être peureux, quand je portais simplement un masque au milieu d'un public important. Alors qu'en réalité le virus ne me fait pas peur, je suis relativement jeune, en bonne santé et sportif. Parallèlement, j'ai aussi vu qu'au quotidien ces consignes étaient respectées par la plupart des personnes que j'ai croisé.

Pourquoi les gens ont-ils agi de cette manière ? Après une période difficile, il y a un besoin naturel de faire tout le contraire, de jouir de sa liberté retrouvée, de s'extraire des contraintes auxquelles ont a été soumises. Mais le cœur du problème, c'est l'invisible. Ce concept d'action-réaction (cf Kad Merad dans Les Choristes) qui n'existe pas, le fait de ne pas avoir à subir immédiatement les conséquences de ses actes. La transmission et la période d'incubation sont asymptomatiques, indolores, quand ce n'est pas l'infection elle-même. Plus encore parce-que cette maladie est assez peu mortelle.

Les pays asiatiques et nordiques sont habitués à respecter, de manière plus ou moins contrainte, scrupuleusement les règles édictées (ce qui peut poser d'autres graves soucis en cas de sur-contrainte). Le reste du monde, et particulièrement les nations du "sud", vit plutôt dans un mode "On s'en bat les c...." tant qu'il n'y a pas quelqu'un pour surveiller et sévir. C'est un comportement primaire que l'on retrouve dans tout le règne animal et végétal, à savoir exploiter à convenance toutes les ressources que l'on a à disposition.

Parce qu'au final, cette pandémie n'est rien. À très court terme, ce confinement nous fait tous c.... À court terme, il y aura une surmortalité, mais finalement pas tant que ça. Il y aura des séquelles persistantes pour un certain nombre de personnes, mais finalement pas tant que ça. À moyen terme, il y aura une crise économique mondiale non négligeable. Mais à long terme, entre les tests, les mesures, l’hypothétique vaccin ou la résignation, on s'en sortira. On espère juste passer entre les mailles du filet jusqu'à ce que ça se tasse.

Néanmoins, elle met en exergue le comportement individuel et collectif de nos sociétés face à un danger qui n'est pas palpable, malgré le rabâchage intensif que l'on subit. Parce qu'il y a un autre problème tout aussi important dont on entend autant parler et pour lequel on se comporte de la même façon. Il y a une similitude avec la propagation du Covid-19 : les actions que j'entreprends aujourd'hui de manière consciente ou inconsciente auront un impact dans le futur. Il s'agit de l'impact de l'activité humaine sur l'état de notre planète. Cet impact que l'on résume souvent en "réchauffement climatique", mais qui va au delà du simple aspect thermique puisqu'il englobe aussi la pollution atmosphérique, du milieu aquatique, l'appauvrissement des ressources naturelles, la réduction des espaces sauvages, l'artificialisation des sols...

"Notre maison brûle...", mais nous ne regardons pas ailleurs car en réalité (citation) "Notre maison brûle et nous sommes tous des pyromanes". Certes, il n'est pas évident de changer. Certes, nous sommes enfermés dans un système où la (sur)vie passe par l'utilisation d'un certain quota de ressource. Mais nous avons, à l'échelle humaine, un manque cruel d'auto régulation. Si une partie de la population fait réellement des efforts (ou ne peux pas faire autrement), le reste possède un pouvoir de destruction tellement important qu'il semble difficile d'envisager une issue positive. Les conséquences seront bien plus dramatique et à plus grande échelle que la crise actuelle. Nous commençons déjà à en voir les premières conséquences : jusqu'à cette année, personne en dehors de la région n'avait entendu parlé du village de Tende, et pourtant nous n'en sommes même pas au frémissement. Le problème étant que lorsqu'il fera trop chaud et que les conséquences seront lourdes pour l'ensemble de la population, nous ne pourrons pas revenir en arrière. La jeunesse est un peu plus sensible à cette problématique, pour autant les actions entreprises ne sont clairement pas suffisantes (à tous les niveaux).

On se repose sur l'espoir technologique qui est pourtant une source importante du problème. Il faut faire preuve de sobriété, jouir sans détruire, ne pas surconsommer juste pour son petit plaisir personnel. La 5G par exemple, qui est largement décriée à cause de sa consommation énergétique. En réalité, à débit équivalent, elle est moins consommatrice que les réseaux actuels, mais comme elle permet une utilisation plus intensive, la consommation des utilisateurs et donc la consommation électrique explose ! L'outil s'améliore, mais l'usage qui en est fait n'est pas raisonnable. Il n'y a pas de Manu pour siffler la fin de la récrée, pour dire stop, pour dire non. Sur ce point là, c'est même l'inverse vu que le système est basé sur la croissance et que la croissance doit être soutenue par la consommation, alors qu'il pourrait très bien y avoir croissance (inflation) sans consommation supplémentaire. C'est un système fondamentalement déséquilibré alors qu'à l'inverse la vie n'a pu se développer et prospérer sur terre que grâce à un équilibre des forces.

Une inflexion de cette courbe destructrice, si tant soit peu qu'elle soit possible, ne passera que par l'éducation des populations, même si, force est de constater que l'effort fourni dans ce sens et les résultats obtenus (ce fameux rabâchage) sont assez maigres jusqu'à présent, voir faussement intégré dans l'esprit collectif avec le green washing opéré par la publicité autour des produits de consommation courante.

Friday, 23 October 2020
|
Écrit par
Grégory Soutadé

This article you're reading is hosted on my own server. This last one runs a lot of services : web, mail, database, XMPP... and to manage it I need an SSH connection which is the more secure way to connect to a remote server. But, how I can trust this connection in an hostile environment ?

Connection protocols and key exchange has greatly evolved the last 20 years, but there are still based on a root asymmetric key pair (RSA, DSA, ECDSA...). When you connect to a server for the first time, you get a message like this :

The authenticity of host 'mint.phcomp.co.uk (78.32.209.33)' can't be established.
RSA key fingerprint is 6a:de:e0:af:56:f8:0c:04:11:5b:ef:4d:49:ad:09:23.
Are you sure you want to continue connecting (yes/no)? no

This is a human readable fingerprint of the root key used to establish a connection. Personally, I don't know my server fingerprint by heart. There is some solutions to check it :

  • Manually by printing it on a paper/on your phone/on a USB key
  • Register it with a DNS record, but DNS server/response can be easily spoofed
  • Using a public key based connection (you need to keep it on a USB key)

The better remains having the secret (key or fingerprint) somewhere you could access it. I propose in this article an other solution you can always run in an hostile environment without any previous setup.

The idea is to create a restricted user that can only run a verification script that will check fingerprint once connection is established which avoid Man In The Middle attacks !

Setup

First, we'll have to create this user named check-user :

su
useradd --create-home --no-user-group --shell /bin/rbash check-user
cd /home/check-user

You can set a password or not. I don't do it, so I cannot open a connection from external nor internal as my server always checks for password (we can still use su/sudo command). I also set a restricted shell (rbash).

Then, we have to create a key pair

su check-user
ssh-keygen
cp .ssh/id_rsa.pub .ssh/authorized_keys

You can set or not a password for this key. Then, edit .ssh/authorized_keys and add :

command="rbash check_ssh_server.sh" ssh-rsa AAAA...

Now, downloads check_ssh_server.sh in /home/check-user and set execution permissions.

Then, go to your webserver directory were you can put some downloadable files (something like /var/www) and copy SSH the private key.

cd /var/www
cp /home/check-user/.ssh/id_rsa ssh_check
chmod a+r ssh_check

Now, you can edit and run check_ssh_client.sh from any network !

How does it works ?

The client starts by establishing an SSH connection and close it immediately in order to retrieve remote fingerprint. Then, it downloads check-user SSH private key and use it to connect to the server and send the fingerprint. The only command that can be run with this key is rbash check_ssh_server.sh which get the fingerprint and compare with the ones installed on the server side. A message is then displayed which indicates if the connection is secure or not.

Scripts

check_ssh_server.sh

#!/bin/bash

target_key=`echo $SSH_ORIGINAL_COMMAND| tr -d "\r\n"`

if [ -z "${target_key}" ] ; then
    echo "Empty key provided, abort"
    exit 0
fi

for keyfile in /etc/ssh/ssh_host_*_key.pub ; do
    a=`ssh-keygen -l -f ${keyfile}|grep "${target_key}"` # To avoid print
    if [ $? -eq 0 ] ; then
        echo "Target key found, your connection is secure !"
        exit 0
    fi
done

echo "!!! WARNING !!! Key not found, the connection may not be secure"

exit 1

check_ssh_client.sh

#!/bin/bash

KEY_TRACE="Server host key:"
SSH_CHECK_KEY="https://soutade.fr/files/ssh_check/ssh_check"
REMOTE_USER="check-user"

if [ -z "$1" ] ; then
    echo "usage : $@ <ssh server>"
    exit 0
fi

echo "Retrieve remote key for $1"
tmp_file=`mktemp`
ssh -v -o "NumberOfPasswordPrompts=0" $@ >${tmp_file} 2>&1
key=`cat ${tmp_file}|grep "${KEY_TRACE}"`
key=`echo ${key}|cut -d" " -f6`
rm -f ${tmp_file}

echo "Retrieve SSH private key from ${SSH_CHECK_KEY}"
wget -O ssh_check ${SSH_CHECK_KEY}
chmod 0400 ssh_check

echo "Check for key ${key}"
ssh -l ${REMOTE_USER} -i ssh_check $@ "${key}"
echo "Cleaning"
rm -f ssh_check
Saturday, 17 October 2020
|
Écrit par
Grégory Soutadé

Quille de bowling

On ne le dira jamais assez, mais la pratique d'une activité sportive doit être encouragée à tout âge, toute condition physique, tout sport, tellement les bénéfices sont grands pour la santé, que ce soit d'un point de vue physique ou mental. Plus encore quand elle se déroule dans la nature, car elle permet en plus de prendre une bouffée d'oxygène, de se "reconnecter" avec mère nature comme diraient certains. J'avais était agréablement surpris au début du confinement en mars de voir plein de monde se mettre un peu au sport afin (surtout) de s'aérer. Malheureusement, ces velléités ont été rapidement stoppées par le gouvernement.

Mais, faire du sport ne veut pas dire faire n'importe quoi. Il faut en faire à son niveau, prendre le temps de progresser sans brûler les étapes. Il faut également apprendre à écouter son corps, le pousser plus loin pour progresser mais aussi savoir le restreindre, le soigner quand cela est nécessaire, détecter les petits signes. Sinon il y a un risque avéré de blessure plus ou moins grave. L'enfer redouté de tous les sportifs (et même des non sportifs). Trouver ce juste milieu n'est pas toujours aisé tant le sport est une drogue. Tant la recherche de la performance nous pousse à aller plus loin. Tant l'envie de conserver son niveau est forte, quand l'on sait combien il est difficile d'y arriver. Parfois c'est un concours de circonstance, plusieurs défauts consécutifs qui mènent au désastre, un enchaînement trop mécanique, un mauvais choix, un coup de pompe, un obstacle inattendu...

En 13 ans d'activité sportive, et plus généralement depuis mon enfance, j'ai eu la chance d'éviter les grosses blessures (entorse, tendinite, fracture, ...). Mais voilà, nous sommes en 2020, une année ... Depuis mi-septembre, les nuits sont difficiles. Paradoxalement, mon corps le supporte plutôt bien. Le circuit, je le connais depuis 3 ans. Une descente technique, rapide, une visibilité un peu faible, un esprit embrumé qui pense à moitié à autre chose et ... un appui mal assuré qui lâche à 20km/h, comme si j'avais été fauché. La cheville qui vrille à 90°. Je reste plusieurs minutes au sol avec une douleur importante à la cheville. Je sais que je ne pourrais rentrer chez moi par mes propres moyens.

Un kilomètre plus loin, je retrouve l'entrée de la forêt. On me ramène gentiment jusqu'au parking en voiture. La cheville a doublé de volume, j'ai un anneau de 2cm d'épaisseur. Une simple entorse qu'il faudra glacer, je me dis. Ce n'était pas mon initiative, mais un détour est fait par les urgences. Le temps d'y aller (~1h30 après la chute), je ne peux plus poser le pied à terre. La douleur montera crescendo. Une heure pour passer la radiographie. Encore une demi heure d'attente pour obtenir les résultats : rien de cassé au niveau osseux. Et puis encore une heure d'attente pour voir le médecin urgentiste. La salle d'attente est pleine de bras cassés en ce vendredi soir, même si je semble le plus abîmé. Qu'il est long le temps quand on souffre. Pas de paracétamol sous la main, la furieuse envie d'une poche de glace et la douleur. Deux heures trente avant de pouvoir repartir avec une botte de marche, des béquilles, 3 semaines d'arrêt, 15 jours d'anti coagulants en injection. Des examens complémentaires seront à réaliser quelques jours plus tard, une fois que tout aura un peu dégonflé. Je souffre beaucoup, certes, mais je me sens quand même privilégié de pouvoir accéder rapidement à des appareils de soins performants, une expertise médicale, pour un coût dérisoire et en un temps très raisonnable.

Ma cheville le soir de l'accident

Mon nouveau bureau et centre de vie se situe au milieu du salon, à côté de la télé. En attendant que la douleur se calme, j'allume cette dernière, j'applique des pains de glace, je prends du paracétamol. Il faudra attendre 1h du matin pour que ce soit enfin le cas, complètement allongé sur le canapé. C'est ce que j'aurais dû faire dès le début, mais les consignes du médecin ont été assez sommaires. J'aurais également dû immerger totalement le pied dans un bain glacé. Bref, ce soir là, j'ai découvert l'aventure Podium de ce cher Cloclo avant de passer quelques heures à dormir. Douleurs dans la nuit, je vais chercher tant bien que mal un autre pain de glace au congélateur, que c'est dur !

Ma cheville le lendemain de l'accident

Réveil matinal, c'est l'heure de l'excursion aux toilettes, là dernière fois c'était il y a plus de 12h. La botte est lourde et pèse sur le pied. Elle devient insupportable. Quand je la retire, je sens comme un déchirement à l'intérieur. Tout le pied est gonflé par l'hématome. À l'horizontale, la douleur est très supportable. Matinée télé. Après le repas et le passage de l'infirmière, je me lave au gant et me change, ça fait du bien d'être propre ! Ce n'est pas évident pour moi qui manque de force dans le haut du corps. Je m'occupe comme je peux dans l'après-midi et la soirée, couché dans le canapé. Ce sera désormais mon programme quotidien.

Lundi matin. Je commence à abandonner ma chaise roulante de bureau et supporte mieux les béquilles. C'est l'heure de la prise des rendez-vous après ce week-end de repos. Premièrement, le chirurgien orthopédique. Il part en vacances la semaine suivante et ne peut me recevoir que le lendemain matin à 8h. Branle-bas de combat, il faut passer une échographie d'ici là. Je n'avais pas prévu un rendez-vous si tôt. Heureusement la région est bien fournie en cabinets de radiologie. Un créneau est trouvé avec un peu d'insistance à 10h, dans moins d'une heure. Pendant l'examen, une grosse boule de sang gêne la radiologue, elle pulse. Il s'agit d'un probable anévrisme ! Il faut faire un scanner injecté en urgence ! Direction les urgences donc. J'arrive à obtenir un créneau entre deux patients. Au bout de 3h d'attente, dont une demi-heure avec un cathéter dans le bras, je passe dans le tube de l'IRM. Un quart d'heure de vrombissements puissants plus tard, retour en salle d'attente. Le médecin passe une heure plus tard. Les ligaments semblent bons, l'anévrisme ne serait qu'une plaie vasculaire. Il faut quand même passer voir le médecin urgentiste avant de partir. Encore une bonne heure d'attente. Retour à la maison à 18h. Le temps de savourer un petit muffin d'en cas après cette longue journée d'attente, lecture du compte rendu. Il y a une rupture du ligament talo fibulaire antérieur et une rupture partielle du ligament calcanéo fibulaire. J'avoue avoir ressenti de la colère. Contre rien ni personne en particulier, simplement le fait d'avoir perdu un ligament, chose que je redoutais le plus.

La nuit a été courte et désagréable. Lever tôt, généralement quand on commence à peine à se reposer, pour aller voir le chirurgien. Du fait de l'activité de la veille, l'hématome semble plus gonflé. Après examen, il se montre rassurant. C'est une entorse grave, mais qui ne nécessite pas d'opération, elle va guérir toute seule. Il faudra commencer les séances de kiné dans 10 jours. L'anévrisme est par contre confirmé et il faudra voir un chirurgien vasculaire, avec un scanner, pour traiter ce problème. Il faut glacer plus et plus longtemps, appliquer également un cataplasme d'argile verte et d'huile essentielle de menthe poivrée. On ne le dira jamais assez, mais le soutien tant matériel que moral de l'entourage est primordial dans ces cas de figure et, de mon côté, je suis vraiment gâté.

J+6 (Semaine 1)

Ma cheville à J6

Face gauche à J6 Face droite à J6

Il faudra attendre presque une semaine (6 jours) pour que mon pied retrouve une forme à peu près humaine. Entre temps, le sang éjecté par la déchirure s'est propagé dans la jambe (entre le bas du pied et la mi tibia), elle est toute jaune. Il s'est également accumulé dans le bas du pied qui est tout violet. La partie ligamentaire reste encore assez gonflée. Il est assez difficile de bien dormir, voir de dormir tout court, étant donné que je dors habituelle pas sur le dos. Rester assis et/ou couché toute la journée est désagréable. Utiliser un ordinateur n'est pas pratique du tout, mais permet de s'occuper un peu. Pour le moment la douleur est supportable (à l'horizontale). Étrangement, malgré les contraintes actuelles et surtout futures, je continue de rester positif, je ne me comprends pas moi même. Un excès d'optimisme ? Du déni ? Peut-être avais-je vraiment besoin de faire une pause ? Dès le début je me suis dit que c'était un mal pour un bien.

J+15 (Semaine 2)

Pied à J15

La semaine passée fut plus longue que la précédente avec moins de choses à faire. Paradoxalement, elle fut aussi plus fatigante étant donné que les nuits sont très hachées. En début de semaine, j'ai ressenti pas mal de douleurs qui se sont heureusement calmées rapidement. Aujourd'hui, l'hématome a bien dégonflé, il y a encore du sang résiduel qui ne s'est pas totalement évacué et qui donne sur certaines parties (dont le tibia) un aspect très curcuma. Les ligaments sont quant à eux toujours gonflés, il faut continuer à glacer et mettre l'argile verte.

15 jours de repos marque la fin des anti coagulants et le début des séances de kinésithérapie ! Le praticien semblait confiant quant à l'évolution de la blessure, sachant qu'il faut 3 semaines pour une cicatrisation complète. C'est donc le début des exercices de ré éducation, à commencer par l'amplitude de mouvement. Il faut dire que pour le moment, le pied avec ses nouveaux ligaments ne peut pas aller au delà d'1 cm... Il faudra également faire les premiers exercices de marche avec appui léger. Bref, c'est une travail sérieux, et sûrement le plus pénible, qu'il va falloir entamer dès à présent avec la remobilisation de la cheville, mais aussi de l'ensemble des muscles, sans pour autant se voir trop grand trop vite !

J+21 (Semaine 3)

Pied à J21

L'hématome n'est toujours pas dégonflé et les ligaments sont encore enflammés même si la situation s'améliore doucement. La cicatrisation est plus longue que je ne le pensais, mais je suis d'un naturel à avoir des cicatrisations longues sur les plaies du quotidien. La semaine a été rythmée par les exercices de kiné que je fais en autonomie deux fois par jour. De ce côté, c'est un réel plaisir de voir une évolution significative de jour en jour. Quel plaisir également de retrouver de la mobilité et de l'autonomie (enfin une vraie douche-bain). La fin de semaine marque le début des appuis plus prononcés sur la cheville (pas encore de la vrai marche) avec les premiers exercices d'équilibre. L'arrêt de travail a été prolongé pour 4 semaines encore (la durée initiale du confinement...).

J+28 (Semaine 4)

Pied à J28

À chaud ou à la verticale, le pied a tendance à devenir rouge et gonfler... La semaine a été plus active, je peux désormais avoir un appui complet au sol, me tenir droit sans béquilles et même me déplacer dans de petites zones ! Si j'ai retrouvé beaucoup d'amplitude sur le dessus du pied et en rotation, la partie arrière (talon) est très raide, ce qui m'empêche de pouvoir marcher. Les exercices de kiné sont également plus poussés avec beaucoup d'étirements que je fais deux à trois fois par jour (ce qui n'est pas du plus agréable).

J+35 (Semaine 5)

Pied à J35

Je commence des exercices plus complexes chez le kiné (vélo, équilibre, trampoline...) avec plus de séances. Le scanner du début de semaine révèle qu'il y a encore un gros épanchement (du liquide dans la cheville), c'est ce qui fait qu'elle bloque en flexion avant et qui ralenti également le processus de guérison. L'inflammation est toujours présente. La bonne nouvelle, c'est qu'avec l'ajout d'une chaussette neuve (jour et nuit) et en sur élevant un peu le pied, le bas de la jambe se trouve un peu compressé et donc l'épanchement commence doucement à s'évacuer ! Évidemment, aucun des médecins que j'ai rencontré jusqu'à présent ne m'en a parlé...

J+42 (Semaine 6)

Pied à J42

La semaine a été rythmée par les séances de kiné (4) et la ré éducation à la maison. La cheville a sensiblement dégonflée (les malléoles sont accessibles) ainsi que l'inflammation, même si elle est persistante. Ces progrès permettent d'avoir une angle de flexion plus important et donc de "marcher" en boitant (assez fort) pour le moment.

J+49 (Semaine 7)

Pied à J49

De gros progrès ont été réalisés durant cette semaine. Je peux maintenant me déplacer sans béquilles (en boitant un peu, certes). L’inflammation est toujours présente, mais tend à diminuer (la cheville n'est plus très chaude). Chez le kiné, j'applique de plus en plus de force sur la cheville et je peux désormais tenir en équilibre dessus sans problème.

J+56 (Semaine 8)

Pied à J56

Semaine de reprise du travail grâce aux efforts entrepris jusqu'à présent qui me permettent d'avoir une démarche enfin normale. Les photos sont un peu trompeuses puisque le pied a bien dégonflé. J'ai malgré tout encore du mal à descendre les escaliers, il manque encore un petit peu d'angle de flexion. Je continue les séances de kiné à raison de trois fois par semaine, il ne faut surtout pas s'arrêter en si bon chemin. En ce qui concerne le travail, je préfère pour le moment maintenir ma cheville avec un orthèse Donjoy sans mettre les straps qui serrent trop pour une utilisation prolongée (ce sera utile lors de la reprise du sport !).

J+73 (Semaine 9)

Pied à J73

Les progrès ne sont pas aussi importants que les semaines précédentes. Je suis beaucoup plus libre sur les côtés de la cheville, mais les escaliers coincent toujours. Je sens également que les ligaments travaillent plus lors des étirements. Côté kiné, je débute le petit footing sur trampoline (ça faisait tellement longtemps) ainsi que des exercices où je saute sur la jambe. Il m'a également conseillé de ne pas utilisé l'orthèse en dehors du sport afin de faire travailler la cheville.

J+80 (Semaine 10)

Pied à J80

Encore quelques degrés de flexion de gagnés, je suis presque à 120° (contre 90° il y a deux mois). Avec la reprise du travail, j'ai l'impression de guérir plus lentement, surtout que la cheville a tendance à gonfler rapidement quand elle est sollicitée.

J+87 (Semaine 11)

Pied à J87

Les progrès sont légers mais bien présents. Lors de mes exercices d'étirements je sens la cheville qui craque, signe que l'épanchement diminue et se déplace, cela permet de libérer un peu l'articulation. C'est également la première fois que je retourne sur la piste suite aux conseils du kiné de monter en intensité. Il faudra peut être faire une séance d'étirement en amont car ce ne fut pas une grande réussite avec un pied qui tourne carré. Résultat : une légère inflammation du tendon.

J+94 (Semaine 12)

Pied à J94

Ma démarche est désormais très fluide, seul l'escalier bloque encore un tout petit peu. Cette semaine, j'ai fais deux séances de 20" 300m course et 100m marche au stade, la foulée naturelle commence à revenir malgré quelques blocages.

J+101 (Semaine 13)

Pied à J101

Voilà trois mois que l'accident a eu lieu. Pour être honnête, je pensais que tout serait terminé entre 3 et 6 semaines. Force est de constater que ce n'est pas le cas. Le pied est encore gonflé et un peu raide. Avec de l'échauffement, j'arrive à courir presque normalement. Il reste également encore un petit blocage pour des escaliers un peu haut, mais dans l'ensemble ça va. Au quotidien, j'ai pourtant l'impression que ma cheville est normale. Je suis engagé dans la bataille du millimètre... Il faut encore que je travaille avec le kiné pour récupérer les quelques degrés et la souplesse qui me manque par rapport à l'autre jambe.

J+119 (Semaine 17)

Pied à J119

Point au bout des quatre mois : Le pied a bien dégonflé, mais il reste un peu enflé avec des raideurs (surtout à froid). La marche se déroule sans aucun soucis, seul l'escalier en descente bloque encore un petit peu. Reprise progressive du sport, toujours sur piste, avec des paliers franchis à 3km, 4km et 5km. Les séances de kiné sont quasiment terminées.

J+147 (Semaine 21)

Pied à J147

Point au bout de cinq mois : la cheville est encore un peu tiède et enfle surtout après les longues journées, sinon elle s'affine doucement. Niveau amplitude, il n'y a pas vraiment eu d'amélioration. Surtout après un passage chez l'ostéopathe qui a permit d'évacuer le liquide resté bloqué dans l'articulation. Résultat, plus de craquements, mais une cheville redevenue raide comme un mois auparavant, il va falloir encore un peu de temps avant de tout évacuer. Niveau course j'en suis au pallier des 7km.

J+175 (Semaine 25)

Pied à J75

Bilan au bout de 6 mois : on peut considérer que les ligaments sont guéris. Pour autant, je n'ai pas retrouvé 100% de mes capacités. En cause : l'épanchement est toujours présent. Il diminue, mais doucement. Ainsi, le soir, mon pied est encore bien gonflé. J'ai gagné en souplesse dans les escaliers, mais il manque encore pas mal par rapport à l'autre jambe. Je pense que la reprise de l'activité sur des séances plus longues (~45/50 minutes) améliore les choses. Côté course, je continue une progression assez linéaire : j'arrive à faire les mêmes distances qu'avant (8/10/12 km) sur du plat, mais forcément moins vite à cause d'une perte de cardio, une souplesse pas tout à fait retrouvée sur les appuis (beaucoup de compensation de l'autre jambe) et parfois quelques douleurs.

Friday, 16 October 2020
|
Écrit par
Grégory Soutadé

Logo gPass

Petit rappel : gPass est un gestionnaire de mot de passes en ligne. C'est une alternative libre à lastpass. Il permet d'héberger un serveur de mot de passe, qui stockera un mot de passe fort et unique pour chaque site web. Les mots de passes sont chiffrés par une "clé maître" que seul l'utilisateur connaît et sont remplacés à la volée dans le formulaire d'authentification.

gPass version 1.0 est dehors ! En réalité, cela ne constitue pas un tournant majeur dans la vie de ce greffon, mais simplement une "dixième" version qui évolue régulièrement de manière incrémentale. La liste des modifications n'est d'ailleurs pas énorme. On pourra toutefois noter un petit nettoyage de code.

Côté serveur :

  • Nouveau bouton "clear form"
  • Défilement automatique sur l'entrée correspondante lors de la validation d'une clé maître si le champs URL est renseigné (ce qui est le cas quand on clique sur le lien "Your server" du popup)

Addon :

  • Suppression de la compatibilité avec l'ancien code de cryptographie
  • Suppression du code de l'addon de Firefox pour ne garder que la webextension
  • Suppression de la fonction de blocage des requêtes
  • Copie du mot de passe dans le presse papier quand on utilise "@_" dans la fenêtre popup même s'il est rempli dans le formulaire
  • Correction d'un petit bug lors de la copie du mot de passe dans le presse papier

Les addons sont disponibles ici (firefox) et (Chrome). La partie serveur est à télécharger sur la page du projet.

Saturday, 22 August 2020
|
Écrit par
Grégory Soutadé

Let's play with some strangefun C stuff related to macro implementation in GCC compiler.

In the next code, we will work on this kind of structure which is a basic implementation of a matrix structure :

typedef struct {
  int width;
  int height;
  double* data;
} matrix;

In a standard algorithm implementation, we would use malloc() for at least .data field. But, in embedded world, it's preferable to use static allocations (if we use "static" matrices with known parameters).

Use an array as a C macro parameter

First trap of our compiler. We want to statically initalize an array like this :

#define STATIC_ARRAY(_name, _values) double _name[] = _values

STATIC_ARRAY(myArray, {0.0, 0.1, 0.2};

Compilation returns this error :

b.c:5:38: error: macro "STATIC_ARRAY" passed 4 arguments, but takes just 2
STATIC_ARRAY(myArray, {0.0, 0.1, 0.2});

The second argument is not considered as an array, but a list of arguments. My question is WHY ??? This seems a non sense as the goal of macros is to copy paste without interpretation.

Solution I found is to use a variadic macro parameter. This will only works for one array value.

#define STATIC_ARRAY(_name, ...) double _name[] = __VA_ARGS__

STATIC_ARRAY(myArray, {0.0, 0.1, 0.2});

In flight shadow array

Another problem come if I make a more complex macro to initialize my structure. Basically, we may do something like this :

#define STATIC_MATRIX(_name, _width, _height, ...)          \
  static matrix _name = {.width = _width, .height=_height, .data=__VA_ARGS__}

STATIC_MATRIX(myMat, 2,2, {0.0, 0.1, 0.2, 0.3});

Which give a wonderful error :

b.c:13:1: warning: braces around scalar initializer
STATIC_MATRIX(myMat, 2,2, {0.0, 0.1, 0.2, 0.3});
^
b.c:13:1: note: (near initialization for ‘myMat.data’)
b.c:13:28: error: incompatible types when initializing type ‘double *’ using type ‘double’
STATIC_MATRIX(myMat, 2,2, {0.0, 0.1, 0.2, 0.3});

The correct way to initialize our structure is to declare an array and affect it to .data field. We can embbed this declaration in macro definition :

#define CONCAT_DIRECT(s1, s2) s1##s2
#define CONCAT(s1, s2) CONCAT_DIRECT(s1, s2)

#define STATIC_MATRIX(_mat, _w, _h, ...)            \
static double CONCAT(sarr_,__LINE__)[]=__VA_ARGS__;static matrix _mat={.width=_w,.height=_h,.data=CONCAT(sarr_,__LINE__)}

STATIC_MATRIX(myMat, 2,2, {0.0, 0.1, 0.2, 0.3});

This a bit long, but it works ! The macro creates two statics objects, one named by user and one which is unique thanks to line number concatenation. Note, that we cannot split it on two lines due to line number in the name.

We can modify this macro (or create a new one) by removing static attributes. In this case, be careful if you define it in an header, and use it in two separate file at the same line. It could be interesting to use static objects or not depending on variables usage.

Another improvement could be to create const array if data is not updated. Thus, compiler can use a the same memory space for multiple matrix arrays with the same values.

Last but not least. Here, the created array has a variable length that depends on value in parameter. We can fix its size with :

static double CONCATENATE(static_darray_,__LINE__)[_width*_height]