Suite à http://shaarli.guiguishow.info/?-NVJtw
Le ministre ne s'est pas contenté de cet argument: il a également fustigé l'attitude des deux manifestants qui l'ont interpellé vendredi dernier. «Le vrai respect est de les écouter et aussi de répondre ce que je pense. Je n'ai ni mépris ni démagogie, mais j'attends aussi d'eux qu'ils respectent les représentants des pouvoirs publics: on ne tutoie pas un ministre, on ne l'invective pas», a-t-il martelé. «Notre pays s'en sortira en permettant à chacun de travailler», avait-il déjà éludé sur Twitter, invitant les grévistes à cesser de «bloquer le pays».
Contactés par BFMTV, les deux opposants au projet de loi travail se sont dis «choqués» par l'attitude et les mots du ministre à leur endroit. «Je ne pensais pas que ça allait prendre cette ampleur-là. Je me suis dit: “c'est normal, il est ministre, il a tous les droits”», déplore Jordan Michaux, le plus jeune des deux. «Il veut jouer le bras de fer, nous on ne cédera pas, c'est certain», abonde le second, Roland Veuillet.
On ne tutoie pas un ministre, on ne l'invective pas
Hé, regardez, Jesus revient ! :) Les propos des syndicalistes n'étaient pas injurieux. Quand au tutoiement, on touche le fond… On vouvoie par principe, par coutume, par autoritarisme, pas par respect. Demandez-vous : les gens que je respecte le plus, au plus profond de moi, est-ce que je les vouvoie ?
Supposons que tu veuilles servir le fichier de conf' d'un logiciel avec ton Apache httpd.
La mise à disposition du fichier fonctionne de base mais, vu que ce n'est pas une page web avec un entête « <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> », ni un script PHP qui demande à Apache d'ajouter le bon entête dans la transaction HTTP, ni un mime-type connu d'Apache httpd pour lesquels il ajoute automatiquement un entête HTTP, ben le navigateur web (testé avec Firefox et Chromium) considère que le fichier a un encodage iso8859-1 alors que, sur le serveur, il utilise UTF-8. Forcément, les caractères non-ASCII foirent.
Solution : faire ajouter nous-même le bon entête HTTP par Apache httpd en ajoutant ce qui suit dans la conf' du VirtualHost :
<IfModule mod_headers.c>
<FilesMatch ".(conf|ovpn|txt)$">
Header always set Content-Type "text/plain; charset=UTF-8"
</FilesMatch>
</IfModule>
Attention : le bloc IfModule est nécessaire sinon Apache httpd n'ajoute pas l'entête. :-
Grosse mise à jour de ce billet de mon blog pour tenir compte de l'expérience acquise lors d'une crypto-party et des questions que l'on m'a posé depuis.
Ce qui a changé :
Redirection des utilisateurs winwin vers des tutos adaptés ;
GPG 1.X versus 2.X et ce que ça change à la conf' ;
Indication que RSA 4096 bits, ça vaut toujours quelque chose ;
Ajout de comment générer une bonne phrase de passe pour sa clé ;
Ajout d'un complément d'information sur la différence entre expiration et révocation et sur ce qu'apporte l'expiration ;
Ajout d'une précision que toute identité / adresse mail liée à votre clé OpenPGP permet une corrélation entre vos identités. Toutes vos identités ne sont pas bonnes à lier ;
Ajouter de la commande GPG « lsign » qui permet de signer localement une clé c'est-à-dire que la clé ne sera jamais exportée vers un serveur de clé. Ça permet deux-trois choses comme de ne pas exposer publiquement tout votre graphe de relations ;
Ajout d'un usage de GPG comme gestionnaire de mots de passe ;
Ajouts de précisions sur la manière de vérifier l'appartenance d'une clé récupérée sur un serveur de clés à une personne précise ;
Il vaut mieux installer Enigmail depuis addons.mozilla.org que depuis le système de packages de votre système GNU/Linux ;
Enigmail n'est pas forcément le meilleur choix : il s'agit d'une bidouille du workflow de Thunderbird, d'un ajout disgracieux et il gère très très mal les enchaînements et les imbrications de plusieurs compartiments MIME dans un corps de mail, ce qui peut conduire l'utilisateur-trice en erreur et donc en insécurité ;
Ajout d'explications sur pourquoi vouloir utiliser OpenPGP avec un webmail est une mauvaise idée ;
Une équipe de chercheurs de l’université de Stanford a publié une vaste étude montrant l’étendue des informations personnelles qui peuvent être déduites des seules métadonnées de ses appels et SMS sur la vie privée d’une personne. A savoir toutes les informations qui « entourent » un message : durée d’un appel, numéro appelé, heure de l’envoi d’un SMS… En bref, tout ce qui concerne un message, à l’exception de son contenu.
[...]
Pendant plusieurs mois, ils ont enregistré, avec l’accord des 823 participants à l’étude, les métadonnées de 251 788 appels et de 1 234 231 SMS. Ils ont ensuite analysé de manière automatique les tendances récurrentes dans les métadonnées. Des appels réguliers à des commerces dans une zone géographique précise peuvent par exemple indiquer que la personne habite dans ce quartier. Les chercheurs ont ensuite procédé à des analyses « manuelles » pour identifier des numéros appelés et tenter d’en déduire des informations sur la vie privée des participants.
[...]
Ils sont ainsi parvenus à déterminer que l’un des participants venait de se voir diagnostiquer un problème cardiaque : après un long appel à un centre de cardiologie, l’homme avait appelé un laboratoire médical, puis reçu plusieurs coups de fil d’une pharmacie, avant d’appeler le service consommateur d’une entreprise qui commercialise des outils permettant de surveiller son rythme cardiaque. Dans d’autres cas, la seule analyse des métadonnées a permis de montrer l’existence de grossesses, ou le fait qu’une personne avait acheté une arme à feu.
Les analyses automatiques des données se sont révélées moins précises : la technique n’a permis d’identifier la ville où résident les participants à l’expérience que dans 57 % des cas – mais dans 90 % des cas, l’analyse a permis de déterminer la localisation des personnes à moins de 80 km de leur domicile réel.
Interrogé par le Guardian, l’un des coauteurs de l’étude, Patrick Mutchler, affirme que ces résultats sont bien en deçà de ce dont sont capables les agences de renseignement, qui disposent de moyens considérables. « Gardez à l’esprit que [ces résultats] ne sont que le reflet de ce que peuvent faire deux doctorants disposant de ressources limitées. »
Après avoir vu la présentation « Wake up the geek way! » de Gaël Pasgrimaud à PSES 2015 dans laquelle il nous présente son logiciel-réveil configurable via IRC et qui ne sonne pas si Gaël a causé sur IRC avant l'heure programmée, j'ai eu l'idée de me faire un réveil aléatoire.
Aléatoire sur une plage d'horaire définie. L'idée derrière, c'est est de privilégier un réveil naturel (sommeil léger, tout ça, on est toujours un peu réveillé inconsciemment dans une plage horaire autour de l'heure de réveil que notre cerveau assimile par habitude) sur un réveil en force comme le fait généralement un réveil. Tout ça sans utiliser de capteurs et des bidules connectés cheppaquoi. Alors oui, si je me couche plus tard (ou plus tôt), ça n'empêchera pas le réveil de me réveiller brutalement. Forcément, y'a des jours où l'aléatoire tombe pas au bon moment.
À la différence de Gaël, je n'ai pas dev' un bout de python qui a la classe (simplement parce que la lib panoramisk n'est pas packagée dans Debian et que j'ai pas trouvé d'équivalent potable) mais j'ai choisi de le faire en mode adminsys et crade. Et vu que j'ai appris des choses sur le fonctionnement d'Asterisk bah ça m'a bien plu.
Asterisk, le serveur VOIP standard, est capable d'exécuter des appels téléphoniques tout seul simplement en lui fournissant un fichier texte qui décrit l'appel à effectuer dans /var/spool/asterisk/outgoing . Mieux que ça, Asterisk ce sert du mtime (date de dernière modif') de ce fichier pour déterminer la date et l'heure à laquelle l'appel doit être effectué ! Bref, tout simple. On notera que tout ce mécanisme repose sur inotify. Voir https://wiki.asterisk.org/wiki/display/AST/Asterisk+Call+Files
L'idée est donc la suivante : placer un script en cron.daily (qui sera exécuté tous les jours à 6h25) qui placera un fichier dans /var/spool/asterisk/outgoing avec un mtime tiré au sort. Asterisk me téléphonera sur mon 06. Évidemment, sur mon 06, je configure une sonnerie différente pour le numéro de la ligne SIP utilisée par Asterisk histoire d'être réveillé en douceur. Si je décroche, Asterisk raccroche et considére qu'il a terminé son boulot. Si je ne réponds pas ou que je rejette l'appel, on a l'équivalent d'un snooze : Asterisk me téléphonera à nouveau dans 15 minutes (paramètrable).
La première étape, c'est la configuration d'Asterisk (je pars du principe qu'Asterisk est déjà configuré / en état de marche sinon, voir ici : http://shaarli.guiguishow.info/?vHS3rA )
Vu que c'est Asterisk lui-même qui passera l'appel, il est inutile de créer un nouveau compte utilisateur dans sip.conf ;
Dans extensions.conf, il faut créer une nouvelle extension qui décrit le déroulement de l'appel. Le fichier dans /var/spool/asterisk/outgoing demande un appel mais ne dit pas ce qu'il faut faire ensuite, lorsque l'interlocuteur répond : jouer un son, raccrocher, dire quelque chose avec la synthèse vocale, proposer plusieurs choix, etc. ? Perso, je veux juste qu'Asterisk raccroche :
[Wake-Up]
exten => s,1,wait(1) ; On attend 1 seconde.
exten => s,2,Hangup(16) ; On raccroche. 16 est le code de retour qui, en SIP, indique que l'appel s'est terminé normalement, comme attendu
sip reload depuis la console Asterisk ou sudo systemctl reload asterisk ;
La deuxième étape, c'est de créer notre cronfile (/etc/cron.daily/reveil ):
#!bin/bash
cat<<EOF > /tmp/reveil.call
Channel: SIP/<utilisateur_sip.conf OU numero_tel@ligne_SIP_sip.conf>
Callerid: WakeUpCall ; Le nom qui s'affichera si l'appel est effectué en SIP (sinon c'est le numéro de la ligne SIP…)
MaxRetries: 3 ; Combien de fois Asterisk doit essayer de re-téléphoner si l'appel est rejetté ou si pas de réponse ? En plus de l'appel initial.
RetryTime: 900 ; Combien de temps entre chaque re-essai ? Ici 15 minutes. Ce qui nous fait un snooze de 15 minutes.
WaitTime: 45 ; Combien de temps Asterisk doit-il attendre avant de déclarer que l'appel est un échec ? Ici 45 secondes. Attention : si le numéro appelé à un répondeur, il faut une durée d'appel inférieure au déclenchement du répondeur sinon l'appel sera considéré comme un succès même si c'est votre répondeur qui répond. ;)
Context: Wake-Up ; Contexte, extension et priorité dans l'extension. Ce que l'on a défini dans extensions.conf. On peut remplacer tout ça par « Application / Data » pour exécuter une application tiers.
Extension: s
Priority: 1
EOF
# Asterisk a besoin de modifier mtime pour programmer le retry
# du call. chmod 777 + proprio = root ne fonctionne pas…
chown asterisk:asterisk /tmp/reveil.call
# On veut que le réveil sonne entre 8h00 et 9h59
touch -d "$(shuf -i8-9 -n1):$(shuf -i0-59 -n1):00" /tmp/reveil.call
# mv pour garder datetime + proprio
mv /tmp/reveil.call /var/spool/asterisk/outgoing/
Dans mon cas, l'appel s'effectue en VOIP, en utilisant CSIPSimple sur mon ordiphone. L'appel ne passe jamais par le réseau commuté donc ça ne coûte rien.
Voilà pour un usage bateau. On peut aller plus loin et créer une extension qui, quand elle est déclenchée via un appel, supprime l'alarme pour la journée. Ainsi, si vous êtes réveillé avant l'heure programmée, vous désactivez le réveil en un appel. :D
Tu peux mettre le certif qui se trouve sur https://www.tbs-certificates.co.uk/FAQ/en/44.html dans /usr/share/ca-certificates/extra (que tu auras créé au préalable), puis tu ajoutes extra/UTNDataCorpSGC.crt (ou le nom que tu lui as donné) dans /etc/ca-certificates.conf.
Enfin, un petit coup de update-ca-certificates, et ça devrait être bon.
Ho, je ne savions pas que, pour qu'un certificat X509 racine soit pris en compte, il fallait faire des manip' supplémentaires que juste déplacer le certificat dans /etc/ssl/certs…
C'est un tweet de Myriam El Kohmri ce matin. Du genre de ceux qui ont le don de me plonger dans des abimes de perplexité auxquels succèdent des tréfonds de dépit qui à leur tour se muent immédiatement en furieuse envie d'éparpiller tout ça façon puzzle.
Donc Myriam El Khomri a tweeté :
"Notre objectif commun avec @CiscoFrance est de former en 3 ans 200 000 personnes aux métiers des réseaux numériques"
[...]
Donc franchement ça me fout le cul en larmes. Bah oui. Parce que dans mon petit IUT je les croise tous les jours les collègues du département réseau et télécom. Pas plus tard que l'autre jour justement on discutait du fait qu'ils avaient trop d'offre d'emploi et de contrats pro par rapport aux candidatures qu'ils reçoivent.
[...]
Mais bordel. Bordel. What. The. Fuck. Mais bordel à quoi on sert ? Mais sans déconner nous à l'université on fait quoi ? On forme à quoi ?
Des formations "professionnalisantes" voire "professionnelles" on en a déjà plein. On a encore le gosier encombré et le transit bouché du nombre de fois où il a fallu avaler notre chapeau en sacrifiant la pédagogie à la rentabilité supposée ou au côté "bankable" de tel ou tel métier momentanément porteur ou déficitaire sur tel ou tel bassin d'emploi, mais faut croire que c'est pas assez. On est arrivé à des situations totalement aberrantes dans lesquelles on nous oblige à recruter de mauvais étudiants disposant d'un contrat quelconque (professionnel, apprentissage) plutôt que de bons étudiants qui ne rapporteront pas une thune à l'université qui les forme.
[...]
Parce que cet accord avec Cisco est loin, très loin d'être le premier.
Souvenez-vous de l'accord que la ministre de l'éducation nationale a passé avec Microsoft, juste avant d'en passer un autre avec Amazon.
Souvenez-vous qu'en même temps que l'on sucre plus de 250 millions d'euros aux grands organismes de recherche français (voir le récent Appel des Nobels) on file chaque année la même somme d'argent public à Elsevier et quelques autres grands éditeurs pour racheter des travaux financés sur fonds publics par des chercheurs payés sur fonds publics.
[...]
Moi je suis juste au-delà de l'au-delà du ras-le-bol. Des impôts j'en paie comme tout le monde. Et franchement je m'en félicite tous les jours. Mais bordel de merde je ne paie pas des impôts pour financer Microsoft, Amazon, Cisco, Elsevier ou je ne sais quel autre grand groupe privé, a fortiori dans un contexte où les universités n'ont plus une thune, et où ces acteurs privés se vautrent déjà allègrement dans le détournement organisé du crédit impôt recherche (on parle quand même de plus de 5,5 milliards d 'euros ...).
[...]
Quand Cisco fera le boulot des départements réseaux et télécom avec la thune, les moyens et l'accompagnement qui auraient dû leur revenir de droit, quand Elsevier fera le boulot des bibliothèques avec la thune, les moyens et l'accompagnement qui auraient dû leur revenir de droit, quand Microsoft fera le boulot des formateurs au numérique avec la thune, les moyens et l'accompagnement qui auraient dû leur revenir de droit, quand Amazon fera le boulot des éditeurs de manuels scolaires avec la thune, les moyens et l'accompagnement qui auraient dû leur revenir de droit, on se retournera, on regardera les dernières fumerolles s'échappant de ce qui fut un temps l'enseignement public de la maternelle à l'université et on organisera des colloques pour pleurer avec les familles des défunts ou aller pisser sur la tombe de Jean Zay. Et Myriam, Najat, Valérie, Manuel, François, Nicolas et leurs copains ils rigoleront tranquillou en touchant les dividendes de leur impéritie pondérés à l'aune de leur soumission. On aura achevé de flinguer le droit à un service public de la formation mais on aura en contrepartie largement financé (sur fonds publics) Cisco, Amazon, Microsoft et Elsevier qui, c'est vrai, en avaient grandement besoin.
Inverser la hiérarchie des normes dans le code du travail, dans le droit à la formation, dans l'enseignement supérieur et la recherche. Le voilà le grand projet. La voilà la seule doctrine. Tout aura été fait en ce sens. Plus j'y pense et plus c'est clair. Ils nous ont fait le coup d'abord "à l'ancienne" : sabrer dans les crédits et les postes. Et puis ils nous l'ont refait mais en mode filou : rendre les universités "autonomes" (et en profiter pour sabrer dans les crédits et les postes). Et pour parachever le tout ils nous le refont encore une fois en mode "ça ose tout" : passer des contrats léonins avec des acteurs privés en expliquant qu'on n'a plus les moyens les crédits et les postes pour faire faire le boulot par les acteurs publics.
Via https://twitter.com/_meriem/status/736541540001189888 via https://twitter.com/bortzmeyer/with_replies
À la vue de plusieurs autres shaarlis, j'ai eu envie de tester le plugin Mardown pour Shaarli. Ça fonctionne, ça peut être utile, j'apprécie, je garde.
En revanche, ce plugin s'applique de base à tous les anciens shaarlis. Forcément, ça casse des choses : des blockquote qui n'en sont pas, l'espacement entre les items d'une liste,...
J'ai la flemme de passer en revue 1960 shaarlis. Dans le README du plugin on apprend que l'on peut désactiver le plugin au cas par cas, shaarli par shaarli en ajoutant le tag privé « .nomarkdown ». Ça ne peut pas fonctionner : le tag ne sera jamais transmis au plugin lorsqu'un visiteur consulte un shaarli puisque c'est un tag privé. Donc le plugin ne pourra JAMAIS voir le tag. Seul l'administrateur pourra voir le markdown désactivé… Pour changer cela, il suffit de changer de tag à utiliser pour en prendre un public et de changer plugins/markdown/markdown.php en remplaçant define('NO_MD_TAG', '.nomarkdown'); par define('NO_MD_TAG', 'nomarkdown');.
Fort bien, mais comment l'appliquer sur tous les anciens shaarlis ?
J'ai codé ça vite fait comme un malpropre :
if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=addtagggs'))
{
$LINKSDB = new LinkDB(
$GLOBALS['config']['DATASTORE'],
isLoggedIn(),
$GLOBALS['config']['HIDE_PUBLIC_LINKS'],
$GLOBALS['redirector']
);
$linksToAlter = $LINKSDB;
foreach($linksToAlter as $key=>$value)
{
$value['tags'] = (empty($value['tags'])) ? 'nomarkdown' : $value['tags'].' nomarkdown';
$value['tags'] = trim(preg_replace('/\s\s+/', ' ', $value['tags']));
// Remove first '-' char in tags.
$value['tags'] = preg_replace('/(^| )\-/', '$1', $value['tags']);
// Remove duplicates.
$value['tags'] = implode(' ', array_unique(explode(' ', $value['tags'])));
$LINKSDB[$key]=$value;
}
$LINKSDB->savedb($GLOBALS['config']['PAGECACHE']); // Save to disk.
exit;
}
À ajouter temporairement en bas du fichier index.php de Shaarli, juste avant :
if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=genthumbnail')) { genThumbnail(); exit; } // Thumbnail generation/cache does not need the link database.
if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=rss')) { showRSS(); exit; }
if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=atom')) { showATOM(); exit; }
if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=dailyrss')) { showDailyRSS(); exit; }
if (!isset($_SESSION['LINKS_PER_PAGE'])) $_SESSION['LINKS_PER_PAGE']=$GLOBALS['config']['LINKS_PER_PAGE'];
renderPage();
Ensuite, pour que le tag soit ajouté, il suffit de se rendre sur http://monshaarli.example/?do=addtagggs
Une fois le tag ajouté, vous pouvez virer le bout de code du fichier index.php :-
Évidemment, faites une copie de sauvegarde de votre Shaarli (ou au moins du dossier data) AVANT !
ÉDIT DU 05/07/2016 À 16H : Ça a été corrigé dans shaarli, cf https://github.com/shaarli/Shaarli/pull/582 . Ce sera inclus dans la prochaine release (celle qui suivra la 0.7.0). Le nouveau tag pour faire ignorer un shaarli au plugin Markdown est « nomarkdown », sans le point et ce tag n'est pas affiché car considéré comme étant un tag technique. FIN DE L'ÉDIT.
Il paraît que FreeBSD met un point d'honneur à rester à la page sur les aspects réseau, performance et sécurité. Il paraît que FreeBSD a fait tourner et fait encore tourner de grand noms de l'Internet comme Netfilx, Yahoo! ou des équipements comme les Juniper et les NetApp.
J'ai eu l'occasion de mettre mes mains dans un FreeBSD de prod' et… je m'avoue déçu, surtout par l'aspect réseau.
L'implémentation GRE est à la masse. Créez une interface GRE avec « ifconfig create », elle fonctionnera directement. Rendez-là permanente dans rc.conf, l'interface sera crée au boot mais elle n'aura pas le flag « RUNNING » et elle sera donc inutilisable. Forcément, « ifconfig gre0 up » n'aura aucun effet, sinon c'est trop facile. Solution ? Lancer un tcpdump sur l'interface. :- Le problème est connu : https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=164475 mais n'est visiblement pas fixé (j'ai la version 10.1 de FreeBSD dans les mains). Et cette plaisanterie dure depuis 2009 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=138407 ). Sérieux ?
Dès que tu veux faire un peu de réseau avancé, j'ai l'impression que c'est mort avec FreeBSD. Il n'y a pas d'équivalent à iproute2 donc il faut encore utiliser ifconfig, route, l'IP aliasing pour ajouter plusieurs IPv4 sur une même interface, pas de support de « proto » ( http://shaarli.guiguishow.info/?SLl4Pg ) ni de « src » (http://shaarli.guiguishow.info/?6P2feQ mais on doit pouvoir jouer avec /etc/ip6addrctl.conf, l'équivalent FreeBSD du /etc/gai.conf GNU/Linux), etc. C'est vraiment relou. Je ne conseille pas FreeBSD pour monter un routeur, c'est juste intenable.
Parlons de mises à jour. Faille limitée (il faut avoir activé l'option) dans Quagga patchée le 09/03/2016 ( https://savannah.nongnu.org/news/?group=quagga ). Le 17/03/2016, le paquet est mis à jour dans les ports FreeBSD (voir https://svnweb.freebsd.org/ports/head/net/quagga/?view=log - « Update to 1.0.20160315. »). Fort bien. Debian : le patch arrive le 27/03/2016. BOOOOOOUH Debian c'est trop nul, pas vrai ? Sauf que, depuis, chez Grifon + FreeBSD, Zebra est totalement KO dès qu'il se mange les routes IPv6 d'Internet via BGP :
2016/04/26 14:52:01 ZEBRA: client 13 disconnected. 0 bgp routes removed from the rib
2016/04/26 14:52:01 ZEBRA: client 13 says hello and bids fair to announce only bgp routes
ZEBRA: Received signal 10 at 1461675151 (si_addr 0x40f150); aborting...
Backtrace for 3 stack frames:
0x80088865d <zlog_backtrace_sigsafe+0x3d> at /usr/local/lib/libzebra.so.0
0x800887dc5 <zlog_signal+0x515> at /usr/local/lib/libzebra.so.0
0x8008937a8 <signal_init+0x308> at /usr/local/lib/libzebra.so.0
in thread work_queue_run scheduled from workqueue.c:125 »
Foirer tout ton AS avec une màj de sécurité, c'est beau. :') Pendant ce temps là, chez ARN + Debian, le Quagga fonctionne très bien. :)))) Différence ? FreeBSD fait un bond de version (20 juillet 2015 -> 15 mars 2016) donc plein de choses peuvent changer là où Debian security porte uniquement le patch de sécurité (sauf quand c'est trop la merde comme avec samba en avril 2016…).