Croc : un outil méconnu mais surpuissant

Il y a fort longtemps, j'avais mis dans wishlist de logiciel à inventer le magic pipe pour passer des données d'une machine à une autre malgré les frontières…

Et bhé en fait ça existe.

Croc

Ouai c'est un poil miteux comme mise en scène mais pardonnez-moi s'il vous plaît.

Donc je reprends. Croc est un petit logiciel en Go donc sans dépendances (fusil de Tchekhov) qui tourne sur un peu tous les OS du bien (Linux, Linux et aussi Linux entre autres, même s'il parait qu'il tourne aussi sur des OS moins biens).

Il sert tout simplement à s'échanger des fichiers entre deux machines. Il le faut donc des deux côtés : chez l'émetteur et chez le récepteur.

Il fonctionne en ligne de commande mais est tout simple. Il suffit de faire croc send /votre/fichier /un/autre/fichier /et/pourquoi/pas/un/dossier/ . À ce moment-là, il vous apparaitra trois mots plus ou moins aléatoire qu'il faudra donner à votre destinataire.

Le destinataire n'aura plus qu'à faire croc right-bucket-orlando (enfin vos 3 mots à vous) et hop ça initiera l'échange et tout. Pas d'ouverture de port, c'est très rapide (à peu près la vitesse de la connexion), c'est chiffré de bout-en-bout.

Il affiche une ptite barre de progression, la vitesse de téléchargement, le temps passé et une estimation du temps restant.

Je ne vous cache pas que c'est pas non plus à 100% magique. Ça nécessite un relai. Si vous n'en avez pas, le projet en fourni un qui est celui utilisé par défaut mais si jamais vous ressentez l'envie d'être autonome, vous pouvez faire votre propre relai. Et là c'est ultra simple aussi un simple croc relay et hop votre machine sert désormais de relai.

Pour l'utiliser il vous faudra juste le préciser avec –relay a.b.c.d:port et voilà.

Le petit plus

Franchement ça ne serait que ça je n'aurai pas écrit ce ptit article. Il y a déjà tout un tas de soft pour s'échanger des fichiers donc bon.

Là, le truc qui me fait l'apprécier encore plus, c'est que l’on peut piper des trucs dedans ! Et là, ça en devient un simili-ssh du pauvre.

À vraie dire, ça complémente vachement ssh. Le truc qui m'arrive souvent, c'est de me connecter à une première machine via ssh, de celle-là je me connecte ensuite sur une autre machine via ssh et parfois encore un coup (mais rarement tout de même). Et du coup dans ce genre de cas, on peut pas forcément établir une connexion directe entre notre machine locale et la machine distante finale. Et du coup on peut pas forcément s'échanger un fichier.

Et là c'est la tristesse et vous savez quoi ? La tristesse c'est vraiment pas cool. Du coup, là, un simple coup de croc et hop, tout s'arrange. La brume du désespoir se dissipe et laisse place à un soleil radieux.

Et donc avec un pipe sur la machine A on lance : ps auxf| croc send et sur la machine B on lance le croc edward-brown-parade | grep machin et pouf ça fonctionne. Je vous laisse imaginer les ptits enchaînements possibles avec tout ça :-D

Et comme c'est du Go donc statique, il suffit de coller le binaire où vous en avez besoin et hop ça fonctionne. Pas de libs à installer, si ça fonctionne aujourd'hui ça fonctionnera demain. Voilà, n'hésitez pas à en abuser, ça se trouve sur Github et le blog de son auteur qui est bien comme tout.


Si vous voulez tester, je vous propose de récupérer un fichier avec croc truc-machin-bidule.

The Final Member

Un documentaire poignant qui explique la quête d'un musée cherchant à compléter sa collection en obtenant un nouveau spécimen rare. En Islande dans un ptit village se trouve un musée unique au monde consacré à la phallologie. Son directeur et fondateur possède une collection de pénis d'une bonne partie du règne animal mais manque de bol il lui manque celui de l'espèce la plus commune : l'humain.

Partant d'une histoire à priori loufoque, le sujet est au final assez touchant et le storytelling, le montage et tout rend le documentaire vraiment cool.

Il s'avère que le musée est donc à la recherche d'un spécimen humain en 2011 (ou ptet 2010). Le souci c'est qu'il est en Islande qui ne compte que 300 000 habitants et que le sujet étant tabou, il est vraiment compliqué de s'en procurer un.

Sauf qu'un jour un certain Pall Arason se propose. Et ce cher monsieur c'est pas vraiment n'importe qui. C'est un aventurier islandais pas mal renommé pour avoir participé dans les années 40 dans diverses expéditions. Donc déjà c'est pas n'importe qui, c'est quand même une célébrité locale. Mais au-delà de ça, ce cher monsieur a une sacré réputation de tombeur de ces dames avec apparemment un carnet recensant les centaines de femmes avec qui il aurait couché. Ça rend le spécimen d'autant plus intéressant !

Mais, c'est alors que l'on découvre un second canditat. Un … canditat vraiment … hors norme. C'est un américain dans le plus pur cliché ricain : prétentieux, loin d'être humble, grandiloquent, arrogant. Et ce monsieur souhaite fortement que son Elmo (surnom de son braquemard) soit (osons les mots) la bite la plus connue et reconnue du monde entier. Rien que ça. Et bon, je ne vais pas vous spoiler mais il est très patriote et prêt à tout.

Le documentaire dure 1h15 et franchement c'est drôle, intéressant et plein d'humain.

Récap 08 : Mars 2020

Quel mois étrange n'est-il pas ? Avec cette pandémie Covid19 tout est chamboulé. J'ai tenté de m'occuper et de vous occuper aussi un peu en écrivant un peu plus qu'à l'accoutumée (tout du moins au début).

Blog

Bon bha voilà, après pas mal de mois d'hésitation, j'ai pris mon courage à deux mmains et j'ai enfin ajouté les visionnages avec le reste du blog. Du coup, pour ceux qui n'y étaient jamais allé avant ça va surprendre un peu mais bon.

D'ailleurs pour ça, j'ai retouché un tout petit peu le thême pour qu'ils soient tronqués sur la homepage. J'ai aussi modifié le RSS pour ajouter un tag visionnage pour vous permettre de les masquer maintenant qu'ils sont dans le flux global.

J'ai aussi ajouté les tags des articles classiques dans le flux RSS (étrangement c'était pas fait avant). J'ai aussi viré la ptite animation du logo Fediverse et de son texte qui bouffait pas mal de CPU sur les ptites machines. Et puis de toute façon c'était si subtil que pas grand monde l'avait remarqué.

J'ai aussi rajouté trois blogs dans le pool du blogroll sur la droite.

En bref ce mois-ci : 9 articles, 27 commentaires, 15 visionnages, 600270 requêtes, 51092 visiteurs uniques pour 12.09 Go de trafic.

Films

The Host

Un film de monstre coréen. Toujours un certain décalage dans les films de Bong Joon Ho que j'aime bien. Efficace malgré des effets visuels qui laissent un peu à désirer.

Rumble In The Bronx

Aussi connu comme Jackie Chan dans le bronx est assez culte. De la castagne avec le style inimitable de Jackie. Drôle, speed, niais, efficace.

3 From Hell

Le troisième volet de la saga Firefly commencé par House Of 1000 Corpses et continué par The Devil's Reject. C'est tout comme le deux : sale, violent, choquant, dérangeant. Du coup bha c'était cool.

The Crow

Tiré d'une BD, c'est un film assez sombre à l'ambiance un poil gothique dans une ville délavée par la pluie. C'est un rape&revenge où le protagoniste va assouvir sa vengeance en revenant d'entre les morts. Visuellement très travaillé, il a tout de même causé la mort de son acteur principal.

Raw Deal

Un bon vieux pan pan boum boum avec Schwarzy de 1986. Et il est clairement pas terrible en manquant d'originalité (manque de punchline ?).

The 6th Day

De la science-fiction avec Schwarzy mais indice : “je ne m'en souvenais pas”. C'est sympa mais peu original et assez passe-partout.

Payback

Mel Gibson s'est cru dans un film de Guy Ritchie et tente de récupérer son pognon. De l'action, des malfrats, des putes, de la drogue, des ripoux et une dette. Pas mal du tout même si la director's cut est probablement meilleure.

Snatch

Voilà, après Payback me fallait le revoir. Un de mes films culte, j'aime tout ici, l'action, l'humour, l'histoire, les acteurs, l'ambiance.

Casino

Un classique de Martin Scorcese avec sa pègre habituelle. J'adore ce film avec son ambiance et ses personnages.

Doctor Sleep

40 ans après The Shining voilà sa suite. J'avais peur que le film s'éclate la tronche en passant après un tel monument mais… il est excellent ! Il arrive à prendre ses distances tout en étant fidèle.

Countdown

Une daube de film d'horreur mal branlé de partout. Gare au facepalm, ça vaut pas chipette. Ils teasent une suite… beware.

La Nuit A Dévoré Le Monde

Un film de zombies français qui rappelle très fortement Project Zomboid. C'est assez mou mais sympa. Le personnage principal ne prend pas toutes les décisions à la con ce qui est plutôt rare.

Uncut Gems

Avec maintenant quelques jours de recul je pense que j'ai pas mal apprécié le film même si ça a été compliqué au début. Un mec qui doit du pognon à tout le monde un peu looser/relou sur les bords.

The Greasy Strangler

Un film sacrément étrange et vraiment malaisant. C'est vraiment très crade et déjanté et bizarre.

La Cité Des Enfants Perdus

Excellent film français sorti en 1995. Super ambiance avec des décors incroyables et une histoire cool.

Séries

Castle Rock Saison2

J'avais adoré la première saison en octobre 2019. J'ai encore plus aimé cette seconde saison.

Le personnage principal est magistral. Il s'agit du personnage que l'on a déjà vu dans Misery mais plus jeune. Kathy Bates était génial dans le film et bha là Lizzy Caplan (je la connaissais pas) est encore meilleure. Elle est vraiment incroyable.

On y retrouve également Tim Robbins que ne reprend pas son rôle de Shawshank Redemption. Lui aussi est bon. Bref, le casting est vraiment super cool globalement. D'ailleurs pour jouer Annie Wilkes ils ont choisie une actrice plus jeune et la ressemblance est vraiment frappante. J'ai été pas mal bluffé.

Au-delà de ça, l'histoire est aussi vraiment cool. La saison a bien pris son temps pour développer les personnages au point d'être un peu lente avant d'arriver à la moitié mais le travail sur l'ambiance. Les relations et surtout le comportement des personnages est captivant. On se doute qu'ils ne sont pas forcément ce qu'ils semblent être mais c'est pas non plus de la grosse ficelle qu'on voit à 6 épisodes à l'avance.

Bon c'est dur d'en parler plus sans rien spoiler. D'ailleurs c'est assez indépendant de la première saison.

Made In Abyss

Je n'avais pas matté de nouvel animé depuis des années donc voilà j'en ai pris un peu au hasard. J'ai juste vu que ça semblait un peu inspiré de l'enfer de Dante du coup j'ai voulu voir ce que ça pouvait donner.

C'est pas mal gentillet kawaii toussa. Mais il arrive par moment qu'il y ait une scène un peu hardcore. Les musiques sont pas mal et visuellement c'est vraiment très joli sauf le style des monstres que j'ai pas vraiment apprécié.

Bon par contre on sent que la série est clairement inachevée au bout de ses treize épisodes. C'est dommage.

Jeux

Tomb Raider (2013)

J'ai beaucoup aimé Tomb Raider (surtout le 2) sorti à la fin des années 90. J'y ai rejoué il y a quelques années et … yuck. Ça a vraiment très mal vieilli.

La manipulation du personnage, la caméra, les séquences plateforme au mm près c'est vraiment devenu insupportable. C'est même pas l'aspect graphique qui a le plus vieilli au final.

Je n'avais pas touché à la série depuis mais là, confinement (ou pas ?) toussa toussa, il a été en promo à 0€ sur Steam pour quelques jours. Je me suis rué dessus sans penser y jouer. Mais comme il y a une version native Linux par Feral je me suis dit que c'était l'occasion de voir si leurs jeux étaient réellement compatibles ou bien si c'était un portage un peu foireux qui fonctionne qu'avec une version précise d'Ubuntu avec certains paquets sélectionnés…

Bref, j'en attendais pas grand-chose et qu'elle ne fût point ma surprise ?! Ça tourne nickel avec ma pauvre Gentoo assez exotique. Pas eu besoin de passer par les Steam runtimes ni par Proton. Non, non, ça marche nickel avec du son (pas de soucis du fait de ne pas avoir Pulseaudio), la manette xbox reconnue du premier coup, non tout fonctionne bien et c'est même plutôt joli (ouai j'ai un train de retard).

Et… bha c'était vraiment cool comme jeu. Je ne savais pas qu'ils étaient passés sur un environnement open-world mais au final ça colle pas trop mal. C'est moins dépaysant qu'avant cela-dit mais ça passe.

La pauvre Lara prend cher dans ce jeu… Les quelques séquences de QTE sont nulles mais bon.

La maniabilité est super cool mais du coup faut avouer que niveau difficulté bha c'est pas choucard. c'est une vraie petite balade tranquilou.

Bon… du coup… est-ce que je me laisse tenter par le jeu Mad Max qui a été porté par Feral (je suis méga fan de ces films) ? Mouai 20€ un peu cher…

Software Inc.

Je me suis remis une ptite partie de Software Inc. C'est un jeu de gestion où l'on tient un studio de dev logiciel. On peut se spécialiser dans pas mal de type de logiciels différents et c'est plutôt pas mal fait.

Il y a déjà eu quelques jeux du genre qui restaient pas mal en surface, lui tente d'aller plus loin dans la gestion. Ça va de l'aménagement physique des locaux avec les meubles, l'équipement, les serveurs, l'éclairage, la gestion de la température, la cuisine en allant plus dans le cœur du sujet avec la gestion du personnel où l'on constitue différentes équipes avec leur spécialisation (marketing, design, dev, artistes) avec ensuite chacun leurs différentes branches.

Il faut choisir quels logiciels on utilise pour développer, sur quel OS on sort nos softs, est-ce qu'on fait du marketing à outrance, est-ce qu'on porte vers de nouvelles plateformes…

C'est pas mal du tout et pas si simple surtout les premières fois. Les graphismes sont sobres avec un style low-poly assez à la mode. Ça tourne super bien sur mon nunux et j'ai tendance à m'y laisser happer de très longues heures.

Musique

Deux morceaux calmes ce mois-ci.

What it is par Mark Knopfler

J'ai toujours aimé ce morceau super léger qui commence avec un ptit rythme semblant martial mais bam la guitare démarre et ça change du tout au tout. Je vous laisse écouter.

I Don't Know What Happened To The Kids Today par Labi Siffre

Un morceau qui monte continuellement. Découvert dans la série Misfits à l'époque, depuis il squate constamment ma playlist et il vient tout juste de démarrer quand je suis arrivé à cette partie de l'article :-)

Vous pouvez l'écouter ici

Nuxeries

Tiens je me suis demandé comment faire pour afficher du texte progressivement dans un script shell. J'ai bidouillé un premier truc avec ce ptit truc

hecho(){
  charseconds=${2:-"0.02"}
  for char in $(echo "$1" | fold -w1); do
    printf "%s" $char
    sleep "$charseconds"
  done
}

En gros ça prend une ligne de texte, l'éclate en caractère avec le fold -w1 et ça envoie les caractères un par un en attendant un peu entre chaque.

Ça marche bien sauf que ça n'aime pas les espace et encore moins les caractères d'échappements qui sont sur plusieurs caractères.

Du coup, j'ai demandé sur IRC aux grands anciens et forcément c'est à ce moment qu'on en est arrivé à la conclusion qu'il faudrait un outil qu'on puisse intercaler dans un pipe pour faire ça. Et là Ding Ding Ding. “Pipe” Il a fallu entendre ce mot pour que ça tilt. Quelle commande permet de voir un peu ce qui se passe dans un pipe ? pv aussi nommé pipe viewer .

À la base elle permet de voir à quelle vitesse ça transite dedans. Mais elle peut aussi limiter le débit. Du coup un simple cat truc | pv -q -L 30 et voilà on obtient le résulta escompté. Et bien entendu ça supporte les caractères à la con et les échappements.

Vidéos

Je sais plus trop comment, mais je suis tombé sur des vidéos de championnat de commissaire-priseur de bétail. Bon, c'est très américain du nord apparemment. Et c'est assez drôle à regarder.

Leurs performances sont assez stupéfiantes. Je pense qu'ils sont à même de rivaliser avec les logiciels de synthèse vocale pour les aveugles. Jetez-y un coup d'œil c'est atypique.

Vrac

Tenez bon confiné chez vous et n'hésitez pas à squatter les Internets (ça tiendra large la charge) si ça peut vous aider à vous sentir moins seuls.

La Cité Des Enfants Perdus

En voilà un film qui a de la gueule ! Sorti en 1995, cette perle du cinéma français est un vrai ptit bijoux.

Ce film est une réussite en tout point. L'histoire est originale, l'atmosphère excellente, visuellement c'est superbe, les acteurs ont de l'allure, c'est tordu/crasseux à souhait, les décors sont absolument superbes, les musiques accompagnent bien tout ça dans le ton. Ce film est vraiment atypique et a su devenir culte.

Il s'agit d'une nouvelle (enfin en 1995) collaboration entre Jeunet et Caro faisant suite à Delicatessen. On ne s'éloigne d'ailleurs pas trop de ce premier film. Ici, l'atmosphère est très appuyée, on retrouve pas mal des mêmes acteurs, bref c'est le même feeling global mais en plus verdâtre.

On est ce coup-ci dans une ville côtière où il semble faire à peu près tout le temps nuit. C'est tout humide de partout. Tout est fabriqué en feraille, aucune date n'est donnée mais ça ressemble à du premier quart du vingtième siècle. On voit pas mal d'objets à l'allure bien steampunk.

Dans la galerie de personnage on retrouve pèle-mèle : un homme de fort de foire, des siamoises, un tatoué chinois, un savant-fou amnésique, des clones, des orphelins, des cyclopes adeptes d'une secte, un cerveau dans son aquarium… Et le casting a eu le droit à de sacré trogne ce qui participe bien à l'ambiance du film.

Le film regorge de détails en tout genre à la fois dans les décors, mais aussi dans les décors superbes avec tout un tas d'accessoires fait sur-mesure. Toute l'esthétique visuelle du film est ultra travaillée. C'est un vrai régal pour les yeux. On a le droit à tout un tas de plan en très courte focale en gros plan de personnage donnant toujours un aspect dérangeant des personnages.

Faut dire que pas mals de personnages sont pas mal flippants :

  • Les siamoises abjectes à souhait mais délirantes dans leur façon d'être deux-en-un (surtout quand elles font à bouffer !).
  • Les cyclopes dans leurs grands impers moches avec leur caméra/œil bioniques steampunk
  • Le rêve des pères noels envahissant est un vrai nightmare fuel
  • Irvin est particulièrement horrible avec ses mimics amplifiant ses aspects dérangeants

Bref bref, l'histoire se déroule donc dans une ville où des enfants se font enlever mystérieusement. Notre personnage principal est un homme-fort se donnant en spectacle en train de péter des chaînes. Son tout petit petit frêre se fait enlever et va donc tenter de le retrouver avec l'aide de l'orpheline Miette.

Ce film mériterait une suite ou bien un film similaire avec ce même genre d'ambiance dans cet univers !

The Greasy Strangler

Et bhé… Que dire ?

C'est quoi encore que ce truc ? Ça sort d'où ?!

C'est assez déroutant, étrange, perturbant, intrigant, dérangeant, dégoutant, hypnotisant. Je ne pense pas qu'on puisse rester indemne à son visionnage.

L'histoire est toute simple, enfin … non. Quoi que si, un père et son fils vivent ensemble. Il y a un tueur en série le Greasy Strangler qui sévit dans les parages. Le fils tombe amoureux, le père aimerait goûter à cet amour. Les deux sont dans un business de visite guidée de la ville ayant pour thême le disco. Le père mange tous ses aliments à condition que ce soit détrempé de gras. Ils ont tous des acoutrements à coucher dehors. Ils traînent souvent en slibard (quand on est chanceux) ou avec rien (quand on est moins chanceux). Il s'avère que la relation père/fils est assez tumultueuse. Le meilleur ami du fils est un mec qui se balade avec un faux groin. Le meilleur ami du père est un fan de disco aveugle tenant un truc de lavage de voiture.

Et avec tout ça, vous touiller tout. Et tentez de mettre ça dans l'ordre que vous voulez. Si c'est pas super cohérent c'est pas trop grave.

C'est un enchaînement de scène délurées globalement dérangeante. D'ailleurs si la nudité vous rebute vous pouvez éluder la moitié du film.

Ils ont eu un sacré délire sur les bites d'ailleurs. Un vrai régal !

Techniquement, on va pas se mentir c'est un film à petit budget. Mais, justement, c'est visuellement assez joli : les placements de caméra, le cadrage, les éclairages, tout ça est surprennament bien foutu. Ça n'a pas du tout l'air cheap. Et ça contribue à ce sentiment étrange quand on regarde le film. On est pas visuellement face à un nanar tout pourri mais bien devant un vrai film qui fait des efforts.

Les quelques effets visuels sont aussi vraiment pas mal fait (sauf les combinaisons qui sont un poil trop voyantes et du coup détonne avec le reste).

Bref, je sais pas trop quoi penser de ce film. Certains passages sont lourdingues de par leur humour de répétition qui dure un poil trop (et apparemment le premier montage c'était 45 minutes de plus pour les mêmes scènes. Mais d'autres scènes sont vraiment pas mal.

C'est un film que je pourrai pas recommander à grand monde. Il faut vraiment un esprit très ouvert et ne pas s'attendre à grand-chose. Mais il vaut quand même le coup au moins une fois.

Les alias SSH

Désolé désolé, j'ai oublié de vous écrire pendant ce confinement ces quelques jours. Me revoilà \o/

Bon je vous avoue que j'ai pas grand-chose pour vous occuper. J'ai fouillé fouillé (en vrai j'ai démarré l'ordi). Et comme d'hab quand il est démarré, j'ai lancé ma connexion ssh vers mon client IRC, démarré mon ptit script pour la musique et lancé mon navigateur web.

Et là, PAF ! Je me suis dit que je pourrai vous écrire à propos des alias SSH. J'en utilise pas mal, même presque tout le temps.

Dès que je dois me connecter plus de deux fois à une machine je me fais un alias. Mais pas un alias au sens shell, mais direct dans la conf de mon client ssh. Ça évite de retenir les détails et compagnie.

Les fichiers de confs OpenSSH

Bon là on va pas parler du protocole lui-même mais vraiment d'OpenSSH. Ça ne sera pas forcément valide avec les autres clients. Et je n'aborderai que la partie client.

La conf globale se trouve dans /etc/ssh/ssh_config . Ce que vous modifiez là-dedans sera appliqué à chaque connexion.

Ce fichier est commenté pour vous expliquer ça d'ailleurs. Vous pouvez vous amuser à mettre de la conf spécifique à un hôte là-dedans mais c'est pas trop le but. Il vaut mieux réserver ça à son fichier de conf personnel.

Le fichier de conf perso se trouve dans ~/.ssh/config . Il a la même syntaxe que le global mais ne s'applique qu'à votre utilisateur. Les options que vous définissez ici auront la priorité par rapport au fichier global. Et d'ailleurs si vous définissez des options directement dans la commande, elles auront la priorité par rapport aux fichiers.

La puissance des alias

En gros ce fichier va contenir plusieurs blocs de texte, chacun correspondant à un hôte vers lequel vous vous connecter. La syntaxe est dans ce genre :

Host le_nom_de_l'alias
	option valeur
	option valeur
	option valeur

Un exemple ultra basique :

Host n2
	hostname 10.0.0.253
	user root

Voilà, au lieu de me faire un ssh root@10.0.0.253 maintenant je fais ssh n2 et le tour est joué.

Dans les options les plus intéressantes à mettre dedans il y a :

  • le user parcequ'on se rapelle jamais duquel c'est.
  • le Port quand c'est pas celui par défaut.
  • le IdentityFile car j'imagine que vous avez plusieurs clés SSH différentes.
  • le hostname en y mettant l'IP comme ça même si le DNS est HS vous pourrez vous connecter en direct (me suis déjà brûlé).
  • les LocalForward et RemoteForward quand vous utilisez des tunnels via SSH pour pas les réécrire à chaque fois.

Bon si vous êtes aussi flemastucieux que moi, vous remarquerez vite qu'on peut jouer avec les asterisques. Je m'explique : j'ai pas mal d'alias pour me connecter à différents containers et je leur donne un ptit nom explicite où je préfixe le nom de l'hyperviseur.

Par exemple j'ai un l'hôte des containers qui s'apelle Z et dedans j'ai mon client irc pour chatter. Et bhé j'ai un alias Zchat, tout comme j'ai aussi Zbackup mais aussi Zmail … Et bien, figurez-vous que c'est cool d'écrire ssh Zchat mais c'est encore trop long, du coup dans le fichier config j'ai fait un alias comme ça :

Host zc*
	# Z-Chat
	option valeur
	option valeur

Comme ça je peux écrire ssh zchat ou bien ssh zcatacombes_du_net, vous voyez le genre. Je peux tout aussi bien me contenter de ssh zc. Bon c'est une mini-ruse de flemmard j'en conviens, on peut se contenter de définir zc mais quand on a utilisé zchat pendant des années ça permet de faire une transition en douceur.


Voilà n'hésitez pas à abuser de ces alias ssh ça libère la mémoire et ça accélère un poil les affaires et ça permet d'utiliser différentes clé sans se contraindre.

Bon, voilà, c'était léger aujourd'hui. C'est le bon moment pour aller faire un tour dehors… ha bha non.

Kernel Mainline sur Odroid N2 vol.2

Suite de l'épisode précédent

Il y a un TL;DR à la fin.

UART

Bon, je me suis armé d'un câble UART > USB. Ce petit câble va me permettre d'avoir un accès console dès le démarrage de la ptite SBC. Je vais donc pouvoir voir ce qu'elle fait réellement quand elle ne boot pas.

Bon du coup je m'installe minicom et je lui crée un ptit fichier de conf qui va bien.

/etc/minicom/minirc.odroid
# Machine-generated file - use "minicom -s" to change parameters.
pu port             /dev/ttyUSB0
pu pprog9           /usr/bin/ascii-xfr -dsv
pu pname9           /YUNYNascii
pu downdir          /tmp/TTYUSB-Downloads
pu rtscts           No
pu xonxoff          Yes

Bon maintenant quand je veux m'y connecter j'ai plus qu'à minicom odroid et hop.

Un premier test sur l'odroid C2, nickel, ça fait ses ptits trucs, c'est cool ça fonctionne.

Allez, je recopie le blog sur une autre machine, j'y fous un nginx, le certif, sur le routeur je nat le port vers cette nouvelle machine. C'est bon je peux couper la N2 un peu plus longuement. J'ai quand même mon instance Pleroma coupée ainsi que mon TTRSS, du DNS et mon bot IRC… bref c'est pas super impactant non plus mais si ça pouvait ne pas s'éterniser ça m'arrange.

Allez c'est parti pour un premier boot sur le kernel 4.9 blobbé. Effectivement au démarrage j'ai le temps de voir passer un peu de truc made in uboot.

Reprise une semaine plus tard

Allez je ré-édite le boot.ini pour remettre ce que j'avais laissé en commentaire la fois précédente. Et on fait un reboot.

Hmmm j'ai pas gardé les logs c'est dommage ça aurait été pas mal mais en gros uboot râle que le CRC du kernel est pas bon. Voilà… Bon je sais pas trop pourquoi, est-ce le transfert de fichier qui a merdé ou autre je ne sais pas.

Bon, je redégaine l’article gentoo pour la n2 et je recommence de 0. Je rechope les sources du kernel, je choppe le compilo qui va bien.

Je fous les variables d'environnement qu'il faut pour crosscompiler vers du Arm64. Je modifie les quelques options indiquées sur la page du wiki, je compile et je touille le truc pour le passer en … bha je sais pas trop exactement ce que c'est mais en un format utilisable par uboot. Je copie ça sur la SD, je choppe le DTB qui est le fichier représentant l'architecture matérielle de la board afin que le kernel puisse bosser convenablement. Le fichier est présent dans les sources du kernel dans arch/arm64/boot/amlogic/meson-g12b-odroid-n2.dtb .

Je tente de booter et là en fait, je tente d'un peu mieux apprivoiser uboot.

Uboot

Lors du boot on peut marteler Enter pour arriver à un shell avec quelques commandes permettant d'outrepasser le fichier de conf (qui n'est même pas lu à ce stade). Et là déception ce shell est vraiment très minimaliste, j'ai pas trouvé d'éditeur de texte, bon je m'y attendais mais c'est pas trop grave. Je ne trouve pas non plus de quoi lire un fichier.

Il y a bien la commande ls qui nécessite par contre une syntaxe un chouilla particulière vu qu'il n'y a pas de système de fichier racine encore à ce moment. Du coup faut d'abord lui indiquer sur quel appareil lire (la mmc dans mon cas), ensuite quelle partition ( :1 pour la partoche boot).

Quand on charge un kernel en mémoire, si jamais on s'est planté, on peut en charger un autre sans rien faire de particulier. C'est une ptite info qui m'inquiétait avec mes gros doigts qui ripent…

Bon, j'ai de quoi me débrouiller légèrement avec uboot désormais je vais pouvoir m'atteler à la suite.

Ce coup-ci c'est la bonne pour uboot !

Bref, première chose à faire c'est s'assurrer qu'on demande bien au kernel de chopper la bonne partition.

Je me suis fait un mini fichier boot.ini contenant le strict nécessaire pour booter.

boot.ini minimal
1
2
3
4
5
6
7
8
setenv condev "console=ttyS*,115200n8"
setenv bootargs "root=/dev/mmcblk0p2 rootwait rw console=ttyAML0,115200 clk_ignore_unused"
setenv dtb_loadaddr "0x1000000"
setenv kernel_loadaddr "0x01080000"
fatload mmc ${devno}:1 ${dtb_loadaddr} meson-g12b-odroid-n2.dtb
fatload mmc ${devno}:1 ${kernel_loadaddr} uImage
fdt addr ${dtb_loadaddr}
bootm ${kernel_loadaddr} - ${dtb_loadaddr}
  • 1: On déclare une variable indispensable à uboot, j'ai essayé sans, je me suis brûlé.
  • 2: On définit les options qui seront données au kernel
  • 3 et 4 : Déclaration de variables pour les adresses mémoires, on peut s'en passer et les mettre direct en dur dans les commandes suivantes mais pourquoi pas ?
  • 5 : La commande fatload charge depuis un device (mmc) en lisant une partition au choix (:1) pour mettre en mémoire à l'adresse voulue (${dtb_loadaddr}) le fichier spécifié (meson-g12b-odroid-n2.dtb). Donc là on charge le dtb en ram.
  • 6 : pareil qu'au-dessus mais pour le kernel ce coup-ci.
  • 7 : celle-là m'est un peu mystérieuse. J'imagine que cette commande lit le dtb et probablement qu'elle initialise le matos mais j'en suis clairement pas sûr.
  • 8 : la commande bootm est celle lançant le boot en lisant les adresses mémoires qui vont bien.

Le dtb est en fait la description matérielle de la SBC. Ça veut dire qu'en théorie ça ne change pas, sauf que celle fournie par le kernel officielle utilise des drivers particuliers qui sont différents du kernel mainline, donc il me faut un nouveau dtb pour le mainline. À l'avenir, ce fichier ne devrait plus changer cela dit.

Voilà voilà.

Avec ça, plus besoin de tripoter cette partie.

La bataille du kernel !

Bon je vous la fais courte : j'ai commencé à compiler un kernel tout droit sorti de git. Mais j'avais des erreurs de merde concernant rcu et tout… J'ai galeré cherché et tout et il s'avère que j'ai vraiment pas eu de bol. Il y a un léger bug trouvé depuis hier et j'étais en plein dedans.

Bon, après une heure de perdue, retour à la case kernel.org. Je choppe le dernier stable donc un 5.5.10 .

Tiens d'ailleurs un truc que j'ai appris c'est que les options présentes dans le make menuconfig changent en fonction de la variable d'environnement ARCH. Du coup en définissant ARCH=arm64 on a tout un set d'options qui changent.

Fast Forward, je choppe le fichier .config d’ ArmBian histoire d'avoir un préset pas dégueu. Je le compile sans erreur.

Je refais la manip pour le rendre compatible avec uboot. Après réflexion je pense que ça y colle quelques métadonnées, comme par-exemple un CRC, les adresses mémoires, quel type de kernel c'est afin qu'uboot puisse faire quelques tests avant de charger le truc à l'aveugle. La commande pour ça est donc mkimage -A arm64 -O linux -T kernel -C none -a “0x1080000” -e “0x1080000” -n “$(make kernelrelease)” -d arch/arm64/boot/Image ../uImage .

Il reste quand même les modules à transférer. La ptite feinte c'est de monter (soit carrément la mmc sur l'ordi ou via sshfs si elle tourne) et de faire un ptit make modules_install ARCH=arm64 INSTALL_MOD_PATH=/mnt/n2 .

Bon… moment de vérité. On reboot.

Et … ça marche \o/ . Bon ça m'a pris beaucoup d'essai et près d'une heure et demi mais ça fonctionne j'ai booté sur un kernel mainline sur l'odroid N2 !

Bon bha maintenant je refais pareil, mais je modifie le .config du kernel afin de dégager pas mal d'options inutiles pour moi. Je vous le mets ici

Voilà c'était mon ptit voyage de découverte dans le monde du boot chez ARM. À première vu uboot fait peur avec ses adresses mémoires et tout, mais au final c'est pas si horrible que ça. J'aurai appris pas mal de chose et maintenant j'ai ma ptite SBC favorite avec un kernel tout libre et des mises à jour assurée pour des lustres.

TL;DR

  • Choper les sources du kernel depuis kernel.org
  • export ARCH=arm64
  • export CROSS_COMPILE=aarch64-linux-gnu-
  • export PATH=/chemin/vers/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/:$PATH
  • Choper un .config adapté à la N2 (ou le faire soi-même)
  • Compiler un joli kernel avec make -j32
  • mkimage -A arm64 -O linux -T kernel -C none -a “0x1080000” -e “0x1080000” -n “$(make kernelrelease)” -d arch/arm64/boot/Image ../uImage
  • Transferer les modules (en s'aidant de make modules_install ARCH=arm64 INSTALL_MOD_PATH=../modules)
  • Transferer également le kernel au format uImage à placer dans la partoche de boot de la SBC
  • Créer un boot.ini
  • Copier le dtb trouvable dans les sources du kernel : arch/arm64/boot-dts/amlogic/meson-g12b-odroid-n2.dtb
  • Et booter !

Confinement : Recâbler sa tanière

Bon en ces temps de confinement, faut parvenir à s'occuper (et si en plus ça peut aussi vous divertir un peu, tant mieux). Du coup j'ai entrepris (au bout de deux ans) d'améliorer un peu mon câblage réseau à la maison.

J'ai deux gros câbles dans le salon qui font le tout le tour le long du mur. Le but est de relier les deux datacenter du salon :

  • Le premier est un meuble contenant la fibre, le routeur, un switch (où sont raccordés les ordis).
  • Le second est la tanière où se trouvent les SBC, disques durs, un switch.

Grosse infra vous dis-je !

Bref, j'avais tiré un double câble réseau et je l'avais serti direct comme un sagouin. Le souci c'est que c'est pas du câble de brassage, il est très rigide et supporte assez peu les torsions. Du coup une pauvre SBC, du haut de ses quelques grammes a tendance à se faire balader par ce câble.

Bref, fallait agir !

Allez on s'arme de ciseaux et de connecteurs RJ45 femelles mais surtout un testeur de câble (plus dur à trouver je vous l'accorde).

Photo de la tanière avec les SBC et les gros câbles violet en question

Voilà donc la tanière, et le câble violet bien épais et rigide

(Il manque l'odroid N2 sur la photo car elle est actuellement en bidouillage intensif sur le bureau).

Donc la première étape consiste à dégager le connecteur mâle. On va y mettre un connecteur femelle (le grand remplacement vous dis-je !).

Donc snip snip, on place la première partie du connecteur femelle.

On voit les 8 fils de couleurs différentes passés à l'intérieur d'une sorte de bague

Pas trop long sinon ça rentre pas, pas trop court sinon… ça rentre pas

Bon maintenant il faut séparer les 8 fils qu'on va devoir mettre dans le bon ordre. Faut faire gaffe à ne pas abîmer les fils qui sont assez petits et légèrement cassant une fois sorti de leur gaine et blindage.

Bon maintenant faut placer chacun des fils dans sa petite encoche. C'est assez chiant quand on est peu manuel avec une légère tremblotte.

Faut pas hésiter à repousser un en arrière la gaine qui aura tendance à gêner. Une fois tous les fils biens calés, fait bien faire en sorte qu'ils ne bougent pas et que l'excédent à été bien coupé.

On a rassemblé le ptit réceptacle des fils dans le reste du connecteur

Faut couper le surplus en veillant bien à ce que ça ne bouge pas puis enfoncer les deux parties ensembles.

Une fois les deux morceaux ensemble, on rabat les deux ptits bras l'un dans l'autre histoire que ça ne se rouvre pas.

Le connecteur est refermé, presque prêt à l'emploi.

Voilà le rendu final. C'est propre et ça peut se clipser dans une prise murale ou un bandeau de prise.

Bien entendu j'ai pas de bandeau de prise ni de prise mural donc pour l'instant ça devrait rester à cet état.

Il faut bien entendu s'assurer que ça fonctionne avec un ptit testeur de câble. Le but du jeu c'est que les 8 fils du connecteur soit dans le bon ordre.

Un testeur de câble indique que l'ordre des fils ne correspond pas.

Là c'est typiquement pas le cas. La paire 1 et 3 est inversée ainsi que la 2 et la 6.

Dans ces cas-là, pas de miracle, on rouvre, on coupe on recommence. On peut tenter de bidouiller et intervertir les erreurs mais faut être doué et malheureusement les fils seront fragilisés ce qui n'est pas cool du tout.

On s'y reprend pour cinq minutes et on arrive à ce résultat.

Le testeur de câble indique que tout est OK

On voit que la longueur a légèrement diminuée et surtout que tout est bien raccord.

Voilà pour le mini-bricolage du jour.

Kernel Mainline sur Odroid N2 vol.1

L'odroid N2 est une petite SBC très puissante. C'est mon ptit serveur à la maison qui héberge une bonne partie de mes services.

Elle utilise de base un vieux kernel blobbé. C'est un kernel linux qui a déjà pas mal de versions de retard et qui utilise des drivers proprios pour certains morceaux. C'est cool ça fonctionne et tout, mais d'un point de vue évolutivité c'est vraiment pas cool. Et niveau sécurité c'est pas top.

Mais j'avais entendu des rumeurs. Des rumeurs comme quoi il est maintenant possible de faire tourner cette petite bête sur un kernel mainline sans blob. Et ça, c'est la méga classe. Un kernel mainline, ça veut dire un kernel normal, sans modif particulière, le truc classique sans modification. C'est assez rare chez les SBC et je dois vous avouer que j'espérais très fort que ça soit effectivement le cas lorsque je l'ai acheté.

Chez Hardkernel (le fabricant), contrairement à beaucoup d'autres, ils assurent pas mal le suivi de leurs bestioles et tentent autant que possible d'avoir un support mainline (sans hack, sans blob si possible).

Bref, avec ce temps libre qui s'offre à moi, j'ai voulu tenter l'aventure !

Bon j'ai commencé à la bourrin en choppant l'emmc, pour l'enficher dans son adaptateur microSD, que je fous dans l'adaptateur SD que je fous dans le lecteur usb de mon ordi. Je colle un kernel que j'ai compilé en suivant des instructions, je trifouille le boot.ini. Je serre les doigts et croise les fesses. Je refous ça sur la board, je branche et je lance un ping en espérant chopper une réponse de sa part.

 

 

C'est long, là non ?

 

C'est ptet normal que ça prenne plus de temps pour booter que le kernel tout optimisé, non ?

 

Bon, j'arrête de me voiler la face, ça marche pas.

Bon je rechoppe l'emmc pour la coller dans mon ordi. Là je vois, que le kernel peut décider de ne pas booter si il n'a pas un ptit argument qui va bien. Bon, ça doit être ça. Je reserre les doigts et recroise les fesses.

 

Bon bha ça n'a pas l'air mieux.

C'est pas possible cette méthode. C'est du bruteforce débile à l'aveugle.

C'est vraiment des manips que je ne maîtrise pas trop. Le monde ARM c'est bien gentil matériellement mais logiciellement c'est vraiment le Far West. Il faut un kernel, éventuellement un initrd, mais surtout il faut rajouter un dtb ou dts, le bootloader c'est pas un bon vieux grub mais uboot. On peut pas lui filer juste le kernel à l'arrache comme ça, il faut y faire une modif, puis charger ça a des adresses mémoires particulières. Pour le moment c'est vraiment abscons pour moi.

J'ai la main sur à peu près rien, je suis bien loin de ma zone de confort. C'est un échec, je m'avoue vaincu.

Allez, je refous le kernel d'origine et je remets le boot.ini comme il faut. C'est dommage.

Uncut Gems

Ce film m'a fait un double effet. Une bonne partie du film, le héros prend une très grosse part du film. Et … bha … il est vraiment insupportable.

Ce personnage est relou au possible et a un comportement des plus déplorable. Constamment on a envie qu'il se fasse calmer/maîtriser/contrôler/ramener à la raison. Adam Sandler n'est pas un acteur que j'apprécie, car faut quand même avouer qu'il a une filmographie bien pourrie. Mais là, j'ai eu l'impression de voir un Al Pacino survolté tout droit sorti de Scarface le côté violence physique en moins.

Le film donne l'impression qu'on est pas face à un rise and fall mais juste un fall. Le personnage s'embourbe progressivement dans ses magouilles, dans sa vie de famille, dans ses relations, dans ses ennuis de pognon. On sent qu'il joue constamment sur le fil avec les gens au risque que ça lui pète à la gueule. Et ça lui pète à la gueule.

Et malgré tout ça, si on parvient à faire l'effort d'accrocher. Il arrive un moment vers la fin, où j'ai fini par apprécier le personnage et à vouloir qu'il s'en sorte. Et pourtant je le déteste mais c'est plus fort que moi.

Je suis arrivé au second où j'ai vraiment bien apprécié le film. Sauf que pas de bol on est plus très loin de la fin du film déjà.

C'était vraiment très très bon. Et maintenant, je reluque un peu les crédits et j'aperçois qu'il y a Martin Scorsese en producteur executif. Et bha, ouai ça se comprend.

C'est de la magouille, avec des bijoux, des ventes aux enchères, des paris, bookmakers, gage, des gangsters… Des thêmes assez courants dans sa filmo.

C'est le film ayant rapporté le plus de pognon à la société A24 (ça va faire plaisir à quelqu'un ça).

Le film est assez joli esthétiquement, avec du grain, de belles lumières (wow dans la boite de nuit, c'est la folie ce rendu). Il y a assez peu de musique mais elle est super cool avec des sonorités assez proche de Richard Vreeland (Disasterpeace). Elle contraste vraiment beaucoup avec l'impression de vitesse et de perte de contrôle du film.

Voilà c'était un super film malgré ce sentiment étrange vis-à-vis du personnage principal.

Collaborer à l'aveugle sur un sondage

Bon maintenant qu'une bonne partie de la France est confinée, il faut s'occuper. Je ne vous cache pas que mon activité sur IRC et le Fédiverse s'est pas mal intensifiée :-°

Sur le Fediverse, on peut créer des ptits sondages où les gens votent. Et du coup j'ai eu envie de voir si le peuple du Fédiverse pouvait collaborer aveuglément sur deux idées à la con :

Votez pour la suggestion ayant le moins de vote !

et

Votez pour la suggestion ayant le plus de vote !

La subtilité étant que l’on ne peut voir les résultats du sondage qu'après avoir voté.

Bon, j'ai pas un super large audimat et je ne prétends absolument pas avoir forcément bien formulé le truc, ni même avoir appliquée une méthode bien rigoureuse. Mais je dois avouer que les résultats me semblent tout de même intéressants.

J'ai donc proposé aux gens les nombres de 0 à 9 afin d'avoir 10 possibilités. Biensûr il leur était possible de commenter avant de répondre, ou bien de poster leurs résultats mais tout s'est bien passé, les gens ont joué le jeu.

Je vous indique les résultats de manière textuelle en dessous

Votez pour le plus petit nombre de vote

Je vous indique les résultats de manière textuelle en dessous

Votez pour le plus grand nombre de vote


Concernant le sondage pour voter pour le plus grand nombre de vote les résultats sont les suivants :

153 votants

Proposition Nombre de vote
1 28%
2 5%
3 4%
4 3%
5 14%
6 10%
7 20%
8 6%
9 3%
0 7%

Je comprends parfaitement la stratégie de voter pour le premier résultat possible. Je comprends que toutes les autres options oscillent près des 5% de résultat mais je dois avouer que les résultats pour les valeurs 5, 6 et surtout 7 m'interrogent.

J'avais déjà entendu parlé de-ci de-là de l'attirance des gens pour le chiffre 7 sans jamais trop y croire et étonnament ça semble être vrai. Pourquoi ?


Concernant le sondage pour voter pour le plus petit nombre de vote les résultats sont les suivants :

356 votants

Proposition Nombre de vote
1 13%
2 8 %
3 10%
4 14%
5 6 %
6 9 %
7 11%
8 9 %
9 7 %
0 12%

Là, dans le cas parfait, chacune des propositions devrait avoir 10% de résultat et franchement on en est pas très éloigné. Je me demande même si avec beaucoup plus de votes on ne s'en serait pas très fortement approché.

Je me plante peut-être complètement, mais j'ai le sentiment que ça se rapproche pas trop mal d'un générateur de nombre aléatoire à peu près potable.

Conclusion

Bha je sais pas quoi en conclure.

Je ne suis pas statisticien ni sociologue ni pas grand-chose donc à vous d'en conclure ce que vous voulez.

Je vous invite à regarder le fil de discussion où ça s'est déroulé. Visiblement ça a amusé les gens et rien que ça c'est cool.

La nuit a dévoré le monde

C'est un film de zombie sorti un peu de nul part. J'en avais pas entendu parlé mais pourquoi pas en ces temps de pandémie.

Bref, on suit Sam qui se réveille dans un appart un lendemain de fête. Il est à peu près tout seul, du sang sur les murs et le sol. Il va donc tenter de survivre.

Et en fait le film aurait pu commencer sur un carton “This is how you died” tiré de Project Zomboid. Parcequ'en fait ça pourrait être une adaptation du jeu en film. Et si comme moi vous aimez le jeu, il y a des chances que vous accrochiez au film.

Le malheureux est donc en mode survie dans son immeuble. Il amasse la bouffe, cherche des armes, tente de s'occuper l'esprit, fait face à tous les agréments de ce genre d'apocalypse. Bref, Zomboid le côté craft en moins et le tout à Paris.

Et étonamment pour un film de zombie, le héros ne prend pas toutes les décisions les plus pourries. Non c'est même plutôt cohérent avec des décisions à peu près réflêchies avec l'état d'esprit qui évolue avec le temps et les circonstances et la santé mentale qui se dégrade.

Le film est assez lent, assez austère mais ça reste quand même un film à petit budget… Et mine de rien ça participe aussi à cette ambiance de fin du monde pas très spectaculaire.

Par contre les quelques dialogues… meh. Au final on s'en serait passé aisément.

Les zombies sont plutôt bien fait et l'esthétique gore est très présente mais pas non plus ultra poussée. Le film est interdit au moins de 16 ans et pourtant est assez soft à mon goût.

Voilà c'était un instant sympa.

Mon ptit backup avec Rsnapshot

J'ai raté le coche mais voilà : il est important d'avoir un backup de ses données. D'autant plus pour les données que vous ne pourrez par retrouver ailleurs.

D'ailleurs le RAID, ce n'est pas un backup. Voilà ça c'est dit. Et aussi testez la restauration de vos données régulièrement histoire d'être sûr de vous. Ça aussi c'est dit.

Dans mon cas j'ai différents types de données à backupper à la maison.

  • A) les données précieuses introuvables ailleurs : les photos et les papiers. J'ai pas envie que ça se balade en clair partout et je ne peux absolument pas les retrouver ailleurs.
  • B) les données chiantes mais pas non plus capitales : ce sont des données uniques qui servent pour le fonctionnement. C'est par exemple des fichiers de configuration, les base de données de différents services, les mails, mon blog.
  • C) les données que j'aime bien ne pas perdre mais qui … bha … au pire ça se retrouve ailleurs. C'est typiquement les partitions systèmes. Si je le perds faut réinstaller et tout, ça bouffe du temps mais bon…
  • D) les données que j'aime bien mais qui sont rechoppable au pire. Ce sont les fichiers… multimédias *wink wink*.

Les volumétries sont variées. Le D c'est immense, donc on oublie de backup.

Pour le A, c'est non négociable, je dois le sauver coûte que coûte. Le B c'est au final assez petit, je peux très facilement le stocker et le C… je vais pas tout backuper (pas mon ordi par exemple) mais les SBC ouaip.

Pour le A, je peux cependant recompresser les données (ce que j'ai déjà détaillé il y a un bail, ce qui m'a permis de réduire énormément le volume nécessaire). Pour le B et le C c'est principalement du texte, donc si c'est stocké sur un système de fichier malin (qui compresse) ça va le faire.

Où je sauvegarde

C'est assez peu courant mais j'ai choisi de mettre ça dans mon routeur sur un SSD en msata. Ça tourne dans un conteneur Alpine avec rien d'autre que cron, rsync, rsnapshot et ssh d'installé.

Ça bouffe 25Mo de ram quand ça bosse pas donc c'est parfait.

J'ai un second backup sur une odroid hc2 dans mon appart.

J'ai un troisième backup sur une odroid hc2 chez ma mère.

J'ai un dernier backup chez C14 que ne met à jour que très rarement à partir d'un backup du routeur, que je rapatrie au préalable sur mon ordi, je vérifie quelques fichiers, je chiffre puis j'upload.

Je pense être à peu près safe.

Rsnapshot : le papy autonome

Ça fait maintenant près de dix ans que je l'utilise. Il n'est pas moderne. Il n'a pas toutes les fonctionnalités de Borg.

Cela-dit, il n'est en vrai qu'un bout de perl pour servir d'interface (pas graphique) à rsync. Il n'offre pas de crypto, donc pas de chiffrement. D'ailleurs exit la déduplication également (enfin pas totalement non plus).

Il marche aussi bien en local (peu d'intéret) qu'en mode serveur. C'est d'ailleurs ce point que j'adore : il n'a besoin que de ssh et rsync sur les clients. Bref, que deux ptits outils disponibles partout.

Le gros de la conf consiste à choisir la rétention des backup, la définition des différents backup. Il ne reste plus qu'à s'appuyer sur cron pour déclencher le truc.

Conf basique

Une fois que vous l'aurez installé, vous aurez un fichier de conf par défaut. Si votre distro est pas trop pourri, il devrait être pas mal commenté. Ça fait office de doc.

Le truc à savoir c'est qu'il a une syntaxe tatillonne : Il faut utiliser des tabs pour séparer les arguments ! Une fois ce détail maîtrisé ça devrait le faire.

Je vous laisse vous balader dans le fichier de conf.

Les options que j'aime bien :

  • snapshot_root : l'endroit qui servira de racine à tous les backup
  • no_create_root: si jamais l'option du dessus se trouve être sur un support amovible cette option vous évitera une catastrophe si jamais vous avez oublié d'installer le média nécessaire.
  • cmd_preexec et cmd_postexec : ça permet de lancer des scripts en début et fin de backup. Je m'en sers pour les notifs vers irc.
  • retain : c'est là que vous indiquerez la rétention de vos différents backup
  • one_fs : histoire de pas dérouler l'arbre des montages.

Définition d'un backup

Alors déjà vous allez devoir définir les intervales. Bon c'est un peu … comment dire … particulier.

C'est pas vraiment un intervale de temps. C'est plus un nom générique mais c'est vrai que souvent on retrouve les noms usuels du genre “daily”/“weekly”/“monthly”. Mais si vous ne déclenchez le backup “monthly” que tous les six mois… bha ça sera un backup bi-annuel et puis c'est tout. Du coup chez alpine (et j'ai gardé cette convention) ils les ont nommés “alpha”, “beta”, “gamma”, “delta”.

Perso j'utilise que le “alpha” et “beta”, je n'ai pas besoin de plus.

Quand vous allez définir un backup, il faut déjà s'assurer d'être capable de pouvoir se connecter sans mot de passe à la machine désirée. Du coup ça veut dire utiliser des clés sans passphrase, d'ailleurs je vous avais déjà parlé de la sécurisation de clé SSH pour cela.

rsync ssh

Le backup classique qui consiste donc à copier les fichiers est au final assez simple.

backup root@hc2:/ hc2/

Pensez bien à utiliser des tabulations !

Donc là on indique de se connecter en tant que root sur la machine nommée hc2 (on peut mettre une ip, ou un nom complet) pour récupérer ce qui se trouve dans / et on stockera ça dans le dossier hc2/ (ouai je suis pas super inventif pour les noms). Bref là c'est un backup complet.


Un autre exemple :

backup root@n2:/ n2/ exclude=/var/lib/postgresql

Là on se connecte en tant que root à la machine n2 pour récupérer ce qui est dans / pour ranger ça dans n2/ mais ce coup-ci on zappe volontairement le dossier /var/lib/postgresql .


Un troisième et dernier exemple ! backup root@10.0.0.251:/storage c2/ +rsync_long_args=–rsync-path=/storage/.kodi/addons/virtual.network-tools/bin/rsync

Là on se connecte en tant que root sur la machine 10.0.0.251 pour sauvegarder ce qu'il se trouve dans /storage, on stocke ça dans c2/ et on rajoute la ptite option qui va bien (là c'est une option pour indiquer où se trouve rsync sur la machine distante car il ne se trouve pas dans le path).

Backup via script

Certaines données ne peuvent pas être simplement fait via rsync mais via un script. Ça peut être à peu près n'importe quoi comme script.

C'est souvent le cas pour les bases de données par exemple.

Dans mon cas j'ai un postgresql qui me sert entre autre pour mon instance ttrss et mon ptit pleroma et deux trois autres ptits trucs.

Là je passe par :

backup_script /usr/bin/ssh root@n2 “/usr/bin/pg_dumpall -Upostgres” > pg_dump.sql n2_postgres/

Vous comprenez vite qu'en vrai ce n'est pas un script mais juste une commande balancée à l'arrache :-) Ici le script se connecte en ssh pour lancer une commande de backup postgres. Le résultat n'est pas stocké sur la machine distante mais dans un dossier créé à l'occasion par rsnapshot qui ensuite balancera ça dans n2_postgres/ .

Mon but était d'épargné autant que possible le stockage de la machine distante (c'est une eMMC, c'est plus solide qu'une carte SD mais tout de même loin d'un disque classique ou ssd).

Tester / Lancer / Croner

Vous voulez voir si vous n'avez pas fait de connerie ? Rhaaa ayez un peu plus confiance en vous !

rsnapshot -t alpha

Là vous verrez toutes les commandes qui seront lancées. Vous pouvez même vous les noter et les lancer au cas par cas pour tester/débugguer.

Bon tout vous semble correct vous voulez déclencher un backup ?

rsnapshot alpha

Voilà ça va se dérouler devant vos yeux.

Bon bha maintenant il ne vous reste plus qu'à mettre cette commande dans votre cron pour que ça se déclenche à votre convenance.

Je lance ça une fois par semaine dans mon cas.

Où qu'elles sont les données ?!

Dans votre fichier de conf, vous avez défini la racine des backup, rendez-vous là-bas.

Vous aurez donc un dossier alpha.0, au prochain lancement il sera renommé alpha.1 et le nouveau backup sera lui alpha.0 . Quand vous aurez atteint votre nombre de backup, le plus ancien sera effacé.

Gardez à l'esprit que les fichiers ne sont pas réellement dupliqués entre les différents alpha.* . Les fichiers qui ne bougent pas d'un backup à l'autre ne sont en fait que des liens ce qui vous épargnera beaucoup de stockage. Vous pourrez donc en garder un bon paquet sans que ça n'ait un gros impact.

Par contre avec le calcul de l'espace peut parfois être un peu étrange et du coup supprimer un backup peut en vrai ne pas libérer autant de place que ce qu'il semble prendre.

L'intérieur de ces dossiers est directement consultable, vous pouvez donc aller simplement consulter un fichier, voir ne restaurer qu'un dossier par exemple. Et tout ça juste avec vos commandes classiques de votre shell, cp, mv et pourquoi pas un rsync.

Countdown

Bouh ! Voilà, vous n'aurez probablement pas plus peur maintenant que devant ce film.

C'est … mou … mauvais et peu inspiré.

Bon bha voilà le concept : une appli de tel qui donne une date annonçant votre mort. C'est vieux comme le web… Sauf que là… houuuuuu … c'est vrai !

On a des bouts de latin dans le code source de l'appli. L'appli contient toute la base de donnée de tout le monde avec la date de péremption. 60Go l'appli, mais elle s'installe en deux deux.

Ha et en fait c'est un démon ho et puis non une malédiction. Faudrait savoir.

Ha et si quelqu'un meurt avant son compte à rebours sa coupe la malédiction pour le monde entier…

Et qu'est-ce que c'est insipide niveau réal. C'est plat. 0 suprise.

Et ça tease une suite à la fin mais please, no.

Encore une odroid HC2 !

Encore une ?!

Je vais encore ajouter une ptite odroid dans mon harem. Ce coup-ci elle ne sera pas à la maison mais un peu éloignée à la campagne. Le but est de remplacer un disque dur externe mal en point. Et tant qu'à remplacer un disque dur à l'agonie autant en mettre un vrai, plus robuste en réseau.

Mais pourquoi toute une Odroid ?

Le disque dur externe ne servait à peu près jamais en mobilité mais à 95% pour du backup. Du coup je me suis dit que ça ferait une pierre deux coups : un disque pour le backup maternelle et … un disque pour mon backup. Et pour ça, une Odroid HC2 c'est nickel : c'est tout petit, ça fait pas de bruit, ça consomme vraiment rien, le disque est bien au frais, c'est juste un peu moche (pas selon mes critères cela dit).

En plus ça me permettra de faire l'occasionnel SAV plus facilement qu'en passant par TeamViewer. Même si j'en ai de moins en moins besoin, c'est toujours chiant.

Objectif

Du coup le but, c'est de monter une ptite Alpine Linux dessus, y installer un skeudur, Samba et voilà pour le moment. J'ai opté pour un skeudur de 4To qui sera tranquille pour au moins dix ans vu la volumétrie à stocker… Une ptite carte SD de 64Go (vu le prix, prendre moins aurait été con).

Comme d'hab je choisis Alpine car c'est tout ptit, la surface d'attaque est minimale. Le risque de bug est d'autant plus amenuisé, que je n'utiliserai quasiment aucun soft. Je me contenterai vraiment du strict minimum. Les updates seront rares et très rapides.

Je n'exposerai rien sur les Internets en plus. Moins de risque de mauvaise surprise.

Une fois qu'elle aura mis le gros de ses données dessus, selon la volumétrie, j'en ferai un backup versionné chez moi. Comme ça, même en cas de crypto locker vorace, je devrais être à même d'avoir une version clean des données.

Retroussage de manches

Au début j'ai voulu faire le gros flemmard en faisant un gros dd du début de la carte SD de l'odroid existante. Puis vu les débits pitoyables j'ai capitulé.

Je me suis donc rabattu sur une option à peine plus complexe : j'ai déjà une hc2 à la maison, je vous avais raconté son installation à l'époque. Du coup, bha j'ai pas refait pareil mais en sautant les étapes du rootfs !

  • J'ai créé une partition sur la carte SD en ext4 (le moins d'emmerde à court terme).
  • Dessus, j'ai juste passé un coup de rsync depuis l'HC2 qui tourne actuellement.
  • J'ai ensuite remis les bouts du bootloader à base de /boot/sd_fusing.sh /dev/sdi.
  • Une fois fait j'ai corrigé customisé deux trois trucs (la conf réseau, le hostname, généré des clés ssh).
  • Le moment crucial de coller la SD dans la nouvelle Odroid.

L'accès réseau à distance

Bon, ma mère, avoir une machine dispo en SSH, ça lui fait une belle jambe. Et installer les mises à jour et tout ça va clairement pas lui plaire. Du coup, non seulement je vais lui offrir la SBC, mais la lui installer et surtout lui maintenir (“I'm a generous god”).

Du coup, il va me falloir un accès distant sécurisé. Bon, je mets ça en place aujourd'hui, je croise les doigts pour que ça tienne mais je vais tenter de faire un truc le plus simple possible pour que ça ait le moins de chance de casser possible. Je dois tout préparer en amont pour n'avoir qu'à brancher chez elle.

VPN

La première idée est de partir sur un VPN. Si je le fais ça sera à base de Wireguard, sauf que bon, le kernel du truc est plutôt du genre pré-colombien… du coup on peut oublier. Et je compte pas mettre autre chose niveau VPN.

Accès SSH

La seconde idée c'est l'accès SSH direct. L'idée me plait sauf que bon, je sais pas trop comment fonctionne sa connexion. Est-ce qu'elle est en IP dynamique ? fixe ? NAT ? CGN ? Bref, plein de risque que ça ne marche pas où qu'il faille tripotter son routeur et tout. Et ça sans avoir la certitude qu'à la première update du routeur ça se fasse jarter. Bref, ça ne m'enchante pas et j'ai pas super confiance.

Tunnel SSH inversé

La troisième idée c'est l'accès SSH inverse. Ouaip. Ça ne veut rien dire. En gros, c'est l'Odroid qui va initier la connexion et non l'inverse. Mais du coup par quelle diablerie ça fonctionne ?

Et bien, ma ptite dame je vous le dit tout de go, ça sera facile et automatique. Et comment ça fonctionne ? Par la magie d’un tunnel TCP et d'une connexion automatique de SSH. Et tout ça pour le prix d'un seul logiciel du doux nom de AutoSSH.

Et c'est cette solution qui est choisie !

AutoSSH

Ce petit logiciel est super simple, il initie une connexion SSH. Et dès qu'elle pète, il recommence. Voilà, ça ne fait que ça.

Donc si jamais la connexion déconne, si le serveur déconne ou autre, dès que ça sera de nouveau opérationnel, la connexion sera rétablie. C'est super pratique. Le seul inconvénient, c'est qu'Alpine ne fournit pas le ptit fichier d'init nécessaire pour OpenRC. Mais vous allez voir que c'est super simple.

/etc/init.d/autossh
#!/sbin/openrc-run

name="AutoSSH"
command="/usr/bin/autossh"
command_args="-M 0 -f -NR localhost:23:localhost:22 user@serveur"
command_user="root"

depend() {
        need net localmount
}

Le premier tour de force c'est de lancer ça au boot et le fait qu'autossh s'acharne à ce que ce soit tout le temps up.

La seconde partie de la magie réside dans le tunnel qui est défini par -R localhost:23:localhost:22. Cette option de SSH indique que le port localhost:23 sur le serveur SSH, est relié au port localhost:22 du client.

Dans ce cas, les deux occurences de localhost n'indiquent pas la même machine. Le premier est le localhost du serveur, potentiellement, on peut ne pas le mettre, ce qui aurait pour conséquence que l'entrée du tunnel serait disponible sur toutes les interfaces réseau du serveur SSH. Ça voudrait dire que n'importe qui tentant une connexion SSH sur le port 23 du serveur arriverait réellement sur le port 22 de l'odroid. Perso, je préfère restreindre ça uniquement aux connexions provenant de localhost (donc le serveur). Le second localhost est l'odroid du coup.

Bref, avec ce petit montage, je suis à peu près sûr de toujours parvenir à récupérer la main sur la machine. Il me suffira de me connecter au serveur intermédiaire et sur celui-ci de me connecter avec ssh -p 23 root@localhost ce qui me connectera via le tunnel à l'odroid.

Samba

Bon, un ptit partage Samba des plus basique.

Je crée un utilisateur nunux, un utilisateur samba avec le même nom avec smbpasswd -a lutilisateur. Dans le montage, je file le dossier du skeudur à lutilisateur avec chown lutilisateur:lutilisateur /mnt/sata/samba -R.

Le fichier de conf Samba qui va avec :

/etc/samba/smb.conf
[global]
 workgroup            = WORKGROUP
 force user           = lutilisateur
 bind interfaces only = yes

[skeudur]
 browseable = yes
 writeable  = yes
 path       = /mnt/sata/samba

Voilà, il ne devrait plus qu'à le rajouter dans le Window.

Trouver l'IP

Bon et si SSH a un souci ? Peu probable mais ça pourrait arriver. Un problème de clé ou le serveur ssh qui déconne.

Ça serait pas mal si je pouvais avoir ne serait-ce que l'IP. Du coup, j'ai pondu un ptit script d'une ligne à foutre dans le cron.

Le but est juste de faire une connexion http comme ça on récupère dans les logs du serveur web (une autre machine que le serveur SSH, comme ça c'est plus redondant).

Donc un ptit wget http://ip.du.serveur -O /dev/null -q . C'est chouette, avec ça je pourrai trouver l'adresse IP publique que la machine va utiliser.

Pas mal, pas mal du tout mais… Et si on chopait aussi les IP locales et tout ?

Allez j'arrête le teasing : wget http://ip.du.serveur -O /dev/null -q -U odroid-$(ip a s eth0 | grep inet | awk ‘{print $2}’ | tr ‘\n’ ‘-') et voilà. On récolte toutes les IP directement assignées à eth0 (donc pas d'IPv4 publique, mais on l'a via le log.

Voilà c'était la ptite ruse de sioux.


Bon bha ça c'est fait. Reste le plus difficile : configurer le windows. Configurer le décodeur TV de la freebox, pour pouvoir y accéder.

Et expliquer un peu comment ça marche :-)

Doctor Sleep

La suite de Shining. Voilà rien qu'avec ça on sait que ça va être compliqué.

Dur de passer après ce premier film surtout quarante ans plus tard. Dur de passer après le bouquin qui diffère également du film. Dur de passer derrière Stanley Kubrick. Dur d'être raccord avec le film et les deux livres.

Déjà niveau continuité des acteurs, c'est pas mal du tout. Pour reprendre le rôle de maman Torrance on a Alex Essoe que je ne connaissais pas et qui visiblement en vrai est à des lustres de Shelley Duvall mais qui bien acoutrée/maquillée remplie pas mal le contrat (les ratiches mieux rangées tout de même). Pour reprendre papa Torrance par contre ils ont choisi Henry Thomas (Mike Flanagan oblige, il devait être de la partie) qui lui par contre est … pas vraiment ressemblant à mon goût malgré l'acoutrement et la pilosité similaire. Dick halloran est repris par Carl Lumbly qui est proche mais loin de coller tout de même. Et notre cher Danny est désormais incarné par Ewan McGregor, rien à redire, c'est plausible.

D'ailleurs sachez qu'on peut entrevoir Danny Lloyd qui était le vrai Danny Torrance à l'époque. Il apparait l'espace de quelques secondes pendant le match de baseball vers le début. Il porte désormais le bouc le petiou.

On a le droit à quelques scènes tirées du film de l'époque. Mais plutôt que de récupérer et retoucher les scènes d'origines, ils se sont fait chier à les refaire à l'identique avec les nouveaux acteurs. Ils ont juste repompé quelques plans à l'hélico qu'ils ont retaillés pour les adapter. Le résultat est sacrément troublant. Ça rend vraiment pas mal et c'est des plans souvent assez rapides ce qui laisse assez peu de temps pour voir la supercherie. Et mine de rien, toutes ces scènes ne sont pas juste gratuite pour titiller la fibre nostalgique des spectateurs.

Pourtant, c'est vrai que c'est facile : tout plein de séquences iconiques refont leur apparition. C'est ty pas chouette de revoir ça ? Revoir cette salle de bain verte avec sa vieille décrépie qui ferait mieux de se frotter un peu plus (d'ailleurs on retrouve cette même salle de bain dans la série Misfits dans l'épisode où Mr Grand Fromage jalouse la célébrité nouvellement acquise des Asbo 5). Aller boire un ptit coup dans la Golden Room ou bien se promener gaiement dans le labyrinthe de nuit avec un ptit tapis de neige… Toutes ces activités vous attendent à l'Overlook Hotel. Ils ont même recréé le bureau de l'entretien d'embauche de Shining ici.

Mais là où le film pourrait se complaire à ne faire que du fan service et à ne rien apporter de nouveau, l'histoire assez dense diffère radicalement du premier opus. On n'est pas dans un huis clôs oppressant, là on est face à une histoire bien plus surnaturelle. On en apprend un peu plus sur le pouvoir du shining puisque l'on en voit quelques variations différentes.

Ce coup-ci nous avons donc des ennemis, bien réels, tangibles, visibles de tous. Et c'est d'ailleurs à la fois sympa et à la fois un poil gênant. Le premier film était très … fantômatique. Là on a un groupe de gens avec des pouvoirs. La menace n'est pas du tout la même. On est donc face à une suite qui n'est pas dans le même genre de l'horreur. J'ai bien aimé, mais je comprends que ça puisse décevoir.

On est bien face à un film tiré de Stephen King, on retrouve un écrivain, l'alcool est pas mal présent, on a des références de droite et de gauche, on aperçoit de jolis champs de maïs… Dans les multiples références, on retrouve du Dark Tower, Firestarter et Dreamcatcher. Probablement d'autres que j'ai manqué mais par contre le coup du chat qui sent la mort arriver (son shining à lui) est tiré d'un vrai chat nommé Oscar.

Le film est vraiment très beau avec pas mal de scènes assez contemplatives. Et justement, le film n'hésite pas à prendre son temps. Il est très généreux sur ce point et c'est très plaisant. On est pas rushé dans de l'action, le contexte est posé calmement. Les personnages principaux ont le droit à leur backstory et tout.

Les scènes d'utilisation du shining sont fofolles. C'est super joli et sacrément bien fait. C'est visuellement une tuerie.

Mike Flanagan a vraiment super bien réussi le pari. C'est bien raccord avec le film. Ça tente même d'être un poil plus raccord que le film d'origine concernant l'Overlook. Et on retrouve ses acteurs fêtiches : le gamin d'ET, le géant touché d'acromégalie, le médecin, quasiment tout le Knot en fait, la ptite gamine du début…

Franchement ce réalisateur est excellent. Il commence à avoir une sacré filmographie. J'attendais beaucoup ce film en ayant quand même assez peur mais tout s'est bien passé.

Bonjour les visionnages

Voilà, ça y est. Je me lance après quelques mois de tergiversations et d'hésitations. Et même si “je me lance”, je suis pas tout à fait sûr que ce soit une bonne idée mais bon.

Voilà c'est fait. Si vous voyez cette news c'est que c'est fait.

J'ai enfin arrêté de planquer la section visionnages de mon blog. Les articles apparaissent donc dans les RSS et dans la home et la monopage.

Voilà.

J'en ai d'ailleurs profité pour très légèrement retoucher le thême du site. J'ai passé les méta-infos des articles dans le footer à côté du lien pour lire en entier. C'est un design un poil plus compact.

D'ailleurs pour ne pas avoir à me faire chier pour le placement des différents éléments, j'ai opté pour du flexbox avec le justify-content: space-between; . Cette propriété est super, elle permet de ne pas avoir à se faire chier.

D'ailleurs j'ai pas foutu le contenu des articles de visionnages, ça prenait beaucoup trop de place.

D'ailleurs en passant. Je trouve que le blogroll sur la droite se répète un peu trop souvent. Du coup je suis à la recherche d'autres blogs francophones à intégrer dedans. N'hésitez-pas à me faire un ptit coup de pub pour votre blog, je l'ajouterai dans le random s'il me plait. Pas besoin de parler d'informatique ou autre, du moment que le sujet me parle ça le fera :-)

Et dernière petite info : je me suis rendu compte seulement très récemment que j'avais pas mis à jour le lien de la sidebar concernant les RSS. Ça faisait déjà quelques mois que j'avais rédigé une ptite page mais qu'elle n'avait aucun lien. Voilà c'est réparé.

Bon, bha c'est tout concernant les meta-news du blog.

Casino

Sacré film. 3 heures de magouilles, violences, drogues tout cela inspirés de faits réels ayant eu lieu dans les années 70/80 à Las Vegas.

On suit donc les tribulations de Sam Rothsein interprêté par Robert De Niro et de son acolyte survolté joué par Joe Pesci. Le premier est globalement toujours calme, en maîtrise, ultra carré alors que le second est un chien sans muselière et bien hargneux. Les affaires à peu près légales de gestion du casino vont pour le mieux avec, on ne pas se le cacher, une partie moins légale qui tourne tout aussi bien.

Le grain de sable qui va tout menacer est l'arrivée de Sharon Stone qui joue une femme un poil délurée qui a bien du mal à se défaire de son ex, un looser camé un peu mac sur les bords. Forcément ça va être assez explosif.

Le film n'a pas spécialement une trame bien fixe. C'est presque un “slice of life” dans le milieu de la mafia. Il y a quand même une certaine progression et des étapes marquantes mais c'est au final assez secondaire. C'est plus un feeling global.

On a le droit à une BO vraiment sympatoche. Les morceaux sont bien raccords avec ce qu'il se passe, c'est des ptits détails appriciables.

Visuellement c'est ultra classieux. Je sais pas comment ils se sont débrouillés mais les éclairages sont de toute beauté. Sur énormément de plan, on va retrouver une lumière très intense en un point ce qui causera des contours presque brûlé. L'effet visuel est terrible. On se croirait dans Oblivion fasse à une caillasse. Non je déconne, c'est vraiment beau.

Constamment on a le droit du coup à des éclairages indirects grâce à ces lumières surpuissantes. Toujours des reflets lumineux dans les cheveux feront ressortir les personnages. J'ai pas souvenir de beaucoup de film avec ce genre d'éclairage.

On est mine de rien pile dans les thêmes de prédilections de Martin Scorcese avec des immigrés européens imposant leur façon de faire du business (mafia). Et on retrouve d'ailleurs pas mal de têtes de ces précédents films.

Snatch

Un de mes films fétiche. Il est génial en tout point. Je l'ai déjà maté un gros paquet de fois mais à chaque fois c'est un régal.

C'est dense, rythmé, drôle, bien foutu, la musique pète, l'image est belle, l'ambiance fofolle, les personnages délirants et le casting magnifie le tout. Réellement ce film contient tout et est parfaitement dosé.

L'histoire est impossible à raconter. Tout est entremêlé avec différents groupes de personnages éparses qui tôt ou tard se croise, interagissent. Constamment on sent qu'on est à deux doigts d'une explosion.

Tous les protagonistes ont leur caractère bien à eux et ça semble super plausible. Les ptites frappes qui tentent de se faire un nom dans un milieu qui les dépasse. Les mecs qui semblent complètement psychopathe mais qui étonnament sont plutôt humains et ne font pas n'importe quoi aveuglément.

J'adore cette ambiance très british avec ces surnoms : Brick Top, Bullet Tooth, Boris The Blade, Franky Four-Fingers. Et puis tout l'argo qui va avec ça participe d'autant plus à cette atmosphère qui sent le rosbiff et la menthe. (J'adore le Royaume-Uni, ça m'attriste le Brexit, j'espère qu'ils reviendront vite).

Le montage du film est très nerveux ce qui donne un rythme assez prononcé au film. Il ne faut pas se déconnecter dix secondes sous peine de risquer d'être largué. Tout s'enchaîne assez vite avec de multiples retournements de situations difficiles à prévoir. C'est super fluide à regarder mais le fait que l'histoire soit pas mal alambiqués et qu'il y a quand même une belle tripottée de personnages fait qu'on peut facilement s'y perdre la première fois.

J'adore le ton global du film : c'est super drôle. Certains dialogues semblent tout droit sorti d'un Tarantino (surtout la scène du braquage d'introduction). Mention toute particulière aux gitans. Clairement les personnages les plus intéressants. L'accent incompréhensible de Brad Pitt avec ses mimiques, ses réflexions et sa gestuelle en font un de ses meilleurs rôles (après les douze singes quand même). Et dire qu'à la base ils devaient pas être dans le film… ça aurait été un sacré manque.

Au début, l'histoire est assez foutraque, on est perdu. On est noyé sous tout un tas de personnages que l'on voit assez peu. On pense que tout va tourner autour de Jason Statham puis en fait non (un peu comme Game Of Thrones avec les Stark au début). On a presque l'impression d'être face à un film à sketchs mais petit à petit tout commence à converger. Le film monte en neige progressivement.

Et toute l'ambiance est mise en place en partie par sa BO (j'adore Golden Brown des Stranglers et Ghost Town des Specials). Rien que d'entendre ça, ça suinte le britain. On rajoute à ça une grosse désaturation et un étalonnage bleu/verdatre bien froid. Des angles et des mouvements de caméra assez originaux sont aussi présents tout le long du film. Et la cerise sur le gâteau, c'est un éclairage toujours bien travaillé qui fait que c'est toujours un peu sombre mais bien lisible. Et l'olive sur la pizza, il y a un très léger grain sur l'image (j'adore).

La brochette de personnage est incroyable : on a les juifs qui tiennent la bijouterie, les gitans qui arnaquent le premier venu, les hommes de main maltraités par leur patron, les ptits caïds qui font toutes les bourdes possibles, le grand ponte flippant à souhait, le russe increvable à l'esprit pratique, le flambeur invétéré. Et tous ont la gueule de l'emploi. Et les acteurs sont sacrément bons.

Rhaaa je suis un gros fanboy de ce film.

Il y a une ptite série assez récente mais j'ai pas encore eu le courage de m'y mettre.

Payback

Tombé un peu par hasard sur ce film j'ai passé un très bon moment.

On retrouve un Mel Gibson jouant les durs à cuire voulant récupérer son pognon. On croise toute une palette de vilains de Chicago avec des trognes qu'on retrouve dans tout un tas d'autres films. Les personnages sont assez variés et pour certains assez atypiques.

J'aime bien l'aspect très désaturé de l'image avec un étalonnage très bleu, ça rend pas mal avec donc un aspect très froid. Ça s'accorde plutôt bien avec le héros qui a quand même la gachette assez facile et n'hésite pas à buter de sang froid pas mal de monde. Il y a d'ailleurs une version Director's cut où apparemment il tue au moins un innocent. Comme ça, juste parcequ'il aurait mal parlé à sa ptite amie. Quel chevalier galant !

Ça colle des bastos dans tous les coins entre différentes factions. Tout ça pour se piquer un peu de pognon. Et mine de rien ça rapelle un peu du Guy Ritchie de la grande époque. Chacun essaye d'entourlouper l'autre. C'est plus direct cela dit.

En plus, on a le droit à de la bonne musique qui m'a titillé les esgourdes dans le bon sens.

J'ai vu que par contre le réalisateur a été viré avant la sortie du film et que par la même occasion, ils ont donc retourné près d'un tier du film pour y faire des ajustements. Le film devait être plus violent avec moins de concessions. Du coup la version director's cut mériterait un visionnage.

Les quelques femmes du film ne font pas rêver : une junkie qui crève d'overdose, une prostituée qui se fait tabasser et dont le chien est maltraité, une autre prostitué qui se prend des pains dans la gueule constamment et qui échappe de peu à la mort… Bon, d'un certain point de vue les mecs c'est pas vraiment mieux… Moralité : vaut mieux pas être dans ce film, même le héros morfle pas mal et pareil pour le clebs.

The 6th Day

Un film de science-fiction avec Schwarzy ça devrait être cool, hein ? Ouai avec une intro comme a vous vous doutez que ça pas l'être… J'ai raté mon entrée.

Après le clonage de Dolly la brebis, le clonage des animaux est devenu un business permettant de prolonger la vie de nos chers ptits compagnons. C'est un business juteux mais le but est bien entendu d'en faire autant avec les humains sauf que c'est interdit par la Loi.

Ça se déroule en 2015 et Schwarzy est pilote d'hélicavion et les télécommandes également (banal), il va au boulot dans sa bagnole autonome, il paye avec son empreinte digitale, les écrans plats sont omniprésents et les frigo ont des tablettes intégrées. Merde ! Pour une fois le film est plutôt réaliste dans son interprêtation du futur : les drones, les bagnoles autonomes et le paiement via mobile avec déblocage par empreinte, ça colle plutôt bien et les autres objets sont plutôt obvious. Bon par contre le clonage humain et les flingues piou piou, bien tenté mais non.

Bon par contre le clonage de nanimaux ça reste réservé aux grandes bourses et les poupées creepy aux allures de Greta Thunberg on nous a épargné (enfin je crois, je connais pas trop le marché j'avoue).

On est donc en présence de notre héros qui se débat sans relâche. En 2015, donc, le RGPD n'est pas encore d'actualité et Adam Gibson (Schwarzy) s'est fait voler ses données personnelles. Il veut les récupérer et qu'elles soient supprimmées.

Si je vous jure c'est à peu près ça l'histoire.

Spoiler alert : il y parvient.

Voilà, le film est pas très surprenant mais se laisse quand même regarder. C'est pas le plus inspiré mais l'histoire du clonage est pas mal. Par contre ils peuvent pas s'empêcher les allusions à la religion. Et d'ailleurs on ne me fera pas croire que d'appeler le protagoniste Adam n'est pas un bon gros wink_wink des familles.

J'aime bien le concept de date de péremption sur les clones, oser mettre de l'obsolescence programmée sur des humains c'est pas mal. Le méchant est malin !

En résumé, c'est pas mal mais pas transcendant, pas le meilleur de la science-fiction avec Schwarzy.

Raw Deal

Film d'action des années 80 avec Schwarzy que je ne connaissais pas. Je sais pas si le fait de ne pas l'avoir vu à l'époque (et donc de ne pas avoir de nostalgie pour ce film) mais j'ai pas trouvé ça transcendant. C'est pas mauvais mais c'est pas non plus indispensable.

Il y a de la castagne, du bourre-pif, des explosions, des bagnoles, des costards, des moustaches mais ça a plutôt mal vieilli. Même en comparaison des films de l'époque comme Commando ou Predator ça fait vraiment pâle figure.

Le héros de l'histoire s'est fait viré du FBI et se retrouve shériff dans un village reculé. On lui propose une infiltration secrète afin d'éventuellement retrouver un poste au FBI, je vous épargne les détails. Il simule donc sa mort, même sa femme n'est pas au courant de la supercherie.

Et rien que ça c'est problèmatique, non pas qu'elle ne soit pas au courant, mais qu'en fin de film on ne nous la remontre pas. C'est tout juste évoqué, mais elle ne sert vraiment que de potiche en début de film. Et on nous la montre en poivrotte qui se fait bien mecspliquer qu'il ne faut pas boire quand on pâtisse lolilol.

Bon c'est sûr qu'espérer que les femmes soit un sujet correctement traité dans un film d'action bas du front c'est beaucoup en demander mais c'est tout de même navrant.

Bref, castagne et torgnoles plus tard, notre pépère flirtouille mais c'est un homme bien ! Il ne drague pas ! Non non il est marrié ! Voir Schwarzy friendzoner l'acrice du film est assez marrant tout de même. Mais voilà ça s'arrête là.

Du coup, plus tard, il la sauve de ses mauvaises relations après lui avoir filé à de multiples reprises du pognon ou lui avoir acheté (techniquement c'est plutôt volé d'ailleurs) des frusques hors de prix. Voilà, la femme est une pauvre créature à la maison qu'on doit arroser de pognon pour être le mâle alpha. Autant vous dire qu'encore une fois le test de Bechdel n'est pas positif. Mais c'était l'époque.

On retrouve des références qui n'en sont pas car certaines sont arrivées ici les premières : Schwarzy qui s'équipe, le “Je reviendrai”, les lunettes de soleil mais aussi les barreaux de chaises.

Voilà, ce soir j'aurai vu un tas de gonzes en costard se jeter dans les airs en criant.

The Crow

Contrairement aux apparences, ce film se déroule à Detroit avec une nuit et une pluie omniprésente. Ces deux éléments contribuent énormément à l'ambiance sombre, crasseuse, humide et torturée. Le décor est étouffant et la photographie se contraint presque au noir, blanc et rouge. On ne vera pas de bleu à peine un peu de vert lors d'un flashback.

On est donc au final dans une ambiance très similaire à Dark City réalisé également par Alex Proyas. L'esthétique très cuir (pas moustache) est souligné par une bande originale pas dégueu. D'ailleurs même si on s'en rend assez facilement compte, j'aime beaucoup l'utilisation de maquettes pour la ville. Ça a un rendu bien différent des effets numériques plus conventionnels aujourd'hui.

L'histoire est celle d'un rape&revenge teinté d'une lichette de surnaturel. J'aime bien le côté retour de bâton avec le ptit côté mystique et maquillage. D'ailleurs j'imagine que le maquillage a quand même eu une influence sur le corpsepaint du black metal (ouai je sais le film est sorti en 94, mais la BD date de 1989, ce qui préfigure pas mal de groupes).

Il existe une version longue que je n'ai pas. Elle est apparemment bien plus gore… intriguant. C'est vrai qu'en y repensant le film ne montre pas trop de sang et la violence n'est que peu montrée. Haaa l'amour frangin/frangine, ce que c'est beau… non.

Bon comment parler de ce film sans évoquer la vraie mort de l'acteur principal Brandon Lee ? Il a été tué par une vraie balle coincé dans le flingue pourtant chargé à blanc. L'acteur ayant tiré a été d'ailleurs pas mal traumatisé.

Bref, le pauvre mec est mort salement. La production du film a failli capoter mais en usant d'artifice, d'effets spéciaux d'incrustation et autre ils ont réussi à combler les scènes manquantes. Quand on mate le film, bha on s'en rend pas vraiment compte. On voit quand même des incrustations pourries par endroit mais pas au point de se dire que ce n'est pas le bon acteur.

Voilà un chouette petit film.

3 From Hell

Troisième opus de la saga Firefly. Quoi ça vous parle pas ? La famille Firefly est la famille de crasseux imaginé par Rob Zombie qui a fait ses débuts en 2003 dans House Of 1000 Corpses et que l'on a retrouvé deux ans plus tard dans The Devil's Reject.

On a donc le droit à une suite malgré la fin assez … définitive du précédent. C'est vrai, on a vu le bon Captain Spaulding, Baby et Otis se faire sacrément plomber dans leur bagnole sur fond de Freebird. Ça s'annonçait assez difficile de faire une suite.

Et pourtant il y en a bien une. Et franchement, c'est toujours aussi cool ! Quel plaisir de retrouver les restes de cette famille de bouseux dégénérés.

Certe, le film n'apporte pas grande innovation par rapport au second volet. Mais bon, c'est pas comme si on était au bord de l'overdose non plus avec près de quinze ans entre les deux sorties. Le manque d'originalité ne m'a pas gêné, au contraire, je préferre un truc comme le 2 qu'un truc tentant de faire du neuf mais mal.

Petit spoiler : c'est un peu triste que Sid Haig n'ait pas un rôle plus important mais ses ennuis de santé ne lui ont pas permis d'apparaitre plus. Baby et Otis sont au top par contre. Elle est sacrément perchée et pourtant est toujours suffisamment lucide pour comprendre les gens. Mais surtout, lui est toujours aussi énorme. J'adore trop ce personnage, bien dégueu, bourrin.

Le demi-frêre caché qui vient compléter le trio est pas mal aussi dans son genre. Psychopathe aussi en train de se créer sa place dans la fratrie.

Bref, si vous avez aimé les premiers films vous devriez passer un excellent moment. C'est toujours le même feeling de film à petit budget des années 70 avec du grain dans l'image (alors qu'il se passe en l'an de grâce 1988), des vieilles bagnoles, des paires de lunettes datés et des moustaches qui tâchent. Les méfaits toujours aussi graveleux et malaisants sont bien là. Et bien entendu la musique qui accompagne est bien dans le ton.

Les décors sont similaires au 2 et on retrouve toujours ces couleurs flashy dans les éclairages. L'image regorge de détails de partout, dans les décors, les costumes. Le tout est ponctué de pas mal de ralentis, de transitions et ça fini par des plans en drones.

Le film a un tout petit budget estimé à 3 millions de dollars mais n'a connu qu'une toute petite sortie aux USA et n'a donc pas réussi à se rentabiliser sur ce point. Il n'aurait rapporté que 2,295 M$ ce qui veut dire qu'il devrait ptet ne pas être déficitaire avec les ventes de droits et de supports physiques. Par contre ça risque d'être plus compliqué pour une suite.

Les acteurs sont bien dans leurs rôles. Pour une fois on voit pas les miches de Sheri Moon, elle a surement passé l'âge.

Voilà c'était un super film qui ne révolutionnera rien et reste bien dans la lignée de The Devil's Reject. C'est crasseux, violent, sanguinolant, dérangeant, obscène avec pas mal de sexe : un bon défouloir assez humoristique à ne pas mettre entre toutes les mains.

Rumble In The Bronx

Jackie Chan a une filmographie bien conséquente. Et je n'en connais pas grand-chose les peu que j'ai vu sont assez sympa. Son style de castagne est très visuel en jouant énormément avec son environnement et les accessoires. C'est super plaisant à voir et le montage donne une illusion de fluidité bien agréable.

Ce film est super cliché : le chinois qui arrive aider son oncle aux USA pour son mariage. Il est tout gentil et plein d'empathie pour le mioche voisin handicapé. Surtout quand il se rend compte rend compte que la voisine s'occupe seule du gamin. Enfin … surtout qu'elle est très sexy et embourbé dans des histoires de gangs mais surtout très sexy et qu'elle a 21 ans (et lui 40 pendant le tournage…).

Comme dans un boulard, l'histoire n'est qu'un prétexte à des scènes de virevoltes où les corps s'entrechoquent. Les échauffourées sont cosmopolites avec des italiens, afro-américains et donc des chinois alors que derrière tout cela se cache un vieux bourgeois blanc.

Pas mal de cascades sont impressionnantes et comme d'hab les chorégraphies sont de haut vol. D'ailleurs, quelques acteurs auront droit à un passage à l'hosto pour fracture ou autre.

Rumble In The Bronx s'apelle en français Jackie Chan Dans Le Bronx. Ça donne un ptit côté Martine à la plage. D'ailleurs ils auraient pu faire la même chose pour les films de Schwarzy : “Schwarzy dans la jungle”, “Schwarzy est enceinte”…

C'est le film qui a propulsé Jackie Chan à Hollywood. Ça donne envie d'en voir d'autres d'ailleurs. L'aspect comédie/action/castagne/niais est cliché mais en fouillant un peu sa filmo j'espère trouver de la perle.

The Host

Un scientifique américain ordonne à son grouillot coréen de vider des produits dégueulasses bien toxiques dans l'évier alors que c'est formellement interdit. Quelques années plus tard, une créature bien massive et plutôt véner en a marre de se planquer dans le fleuve de Séoul.

On a donc un pitch assez simple qui augure un film catastrophe/action classique. Sauf que *Bong Joon Ho, le réalisateur récemment primé pour Parasites a réussi à y insuffler des thêmes supplémentaires. On se retrouve donc face à un film assez sérieux mais qui arrive toujours à sortir des sourires à cause de ptites phrases ou de situations assez incongrues.

Les personnages ont des réactions assez étranges par moment. À tel point que ça vire à la bouffonnerie alors que ça devrait être ultra grave et pesant.

Les effets spéciaux numériques comment déjà à gratouiller l'œil. C'est pas tout dégueux mais suffisamment peu crédible pour gêner un peu. Mais comme le film ne se prend pas non plus 100% au sérieux c'est un défaut que j'ai facilement pardonné.

Le film est très sympa de part son contexte coréen, ce qui change des productions américaines. Et c'est d'ailleurs assez à charge vis-à-vis des usiens.

Bref, un moment sympatique et dépaysant.

Récap 07 : Février 2020

Blog

Comme je vous l'ai marqué, j'ai donc affiné les suggestions d'articles similaires, j'ai commencé à le faire également sur les visionnages. C'est loin d'être parfait mais c'est tout de même plus pertinent qu'avant.

J'ai aussi ouvert les commentaires sur les visionnages soit dit-en passant. Vous allez pouvoir vous y moquer de mes goûts douteux questions films.

En bref ce mois-ci : 5 articles, 12 commentaires, 9 visionnages, 550214 requêtes, 47708 visiteurs uniques pour 12.53 Go de trafic.

Films

Et ainsi s'achève le marathon des adaptations des œuvres de Stephen King en film. Il y a pas mal de téléfilms à la qualité variable et aussi quelques séries.

Mercy

Un film moyen tentant vainement de faire peur. C'est pas mauvais mais c'est pas bon.

Cell

C'est mauvais et longuet pour une fin nulle à chier. Pourtant avec John Cusack et Samuel L Jackson ça pouvait augurer quelque chose de bon. Comme quoi, ni l'époque ni le casting n'influencent la qualité d'un film.

Jessie

Titré Jessie en français mais Gerald's Game en anglais ce film est génial. L'histoire d'une femme accrochée (volontairement) au lit par son mari qui vient d'avoir une crise cardiaque. Pleins de clins d'œil, une histoire top et un excellent jeu d'acteur.

Empire Of The Sun

Film de Spielberg de 1987 où l'on découvre le début de carrière de Christian Bale tout jeune. C'est posé, historique, bien foutu et l'histoire est intéressante.

Goodnight Mommy

Petit film d'horreur allemand. Sympa et bien froid.

1922

Film très mou et au final super prévisible. Le seul point fort est le jeu de l'acteur mais sinon c'est vraiment dispensable.

Simetierre 2019

Bien moins bon que l'original et moins fidèle au livre. J'en attendais trop et ça n'a vraiment pas atteint ses objectifs. Le premier était cheapos et semblait daté mais au moins c'était bien.

Jeux

Devil Daggers

C'est un ptit jeu au concept assez simple. C'est un FPS, sans map, avec des ennemis cons mais qui submerge.

On est plongé dans le noir avec un vague carrelage mal éclairé et des gros pixels qui tâchent. Notre arme ? Heuuuu … comment dire ? C'est notre grosse paluche pourri.

Quand on clique gentiement ça fait office de fusil à pompe. Quand on reste vautré sur le clic ça devient une mitrailleuse.

Des ennemies vont spawner à l'infini et il faut tenter de résister tant bien que mal.

C'est un jeu de scoring. C'est assez prenant et on rage d'avoir raté ce ptit clic de rien du tout qui aurait pu probablement vous faire tenir quelques secondes de plus et vous permettre de pulvériser votre score.

J'aime bien le concept et je m'en fais des ptites sessions de 10/15 minutes pas plus.

Musique

Une petite musique relaxante. Le second acte de Diablo 2 se déroule dans la ville de Lut Gholein une cité dans le désert. Et elle est donc accompagnée d’une musique d'ambiance sympa comme tout.

Nuxeries

Je sais pas comment je me suis débrouillé mais j'avais paumé mon sous-volume BTRFS. Mais bon c'est pas bien grave, ce n'était que de l'expérimental.

Du coup j'ai voulu m'en refaire un tout propre. J'en ai profité pour passer ma gentoo dans un nouveau sous-volume btrfs. Actuellement elle était dans le sous-volume par défaut (le 5). Du coup j'ai fait un snapshot d'un simple btrfs subvolume snapshot / /gentoo.

Je récupère ensuite son id avec btrfs subvolume list / qui me donne l'id 601. J'ai modifié mon initramfs pour monter le bon sous-volume. Je reboot et le tour est joué.

Désormais, si je monte le sous-volume btrfs 5, dedans j'y trouve un dossier /gentoo et également un dossier /alpine que j'ai recréé dans son sous-volume.

J'ai mon dualboot de fonctionnel sans avoir touché grub.

Je continue de tripotter un peu tmux en ce moment. Je vais probablement pondre un autre article à ce sujet.

Vrac

On a eu le droit à quelques jours de beau temps, l'occasion de reprofiter à fond des allergies. Ça m'a été dévastateur, le nez en corne d'abondance et les yeux qui démangent malgré leur transformation en cascade… il ne me tarde pas le printemps.

Simetierre (2019)

Nouvelle adaptation du roman Simetierre de Stephen King. C'est vrai qu'en ayant revu il y a peu la première adaptation, il y avait clairement moyen de faire un remake pour moderniser l'aspect technique et aussi obtenir un meilleur film en y consacrant plus de travail et de budget. C'est vrai, le premier n'était pas une grosse production et le succès de la sortie de Ça a poussé les studios à voir le film d'horreur comme un genre un peu plus bankable qu'auparavant. Du coup un Simetierre avec du budget, des acteurs et une grosse ambition ça annonçait du très bon.

Il y aura ptet un poil de spoil.

On retrouve donc notre sympatique petite famille avec un papa qui souhaite quitter sa difficile vie à l'hôpital en ville pour changer de rythme de vie. La nouvelle maison en campagne va lui permettre de se ressourcer et embrayer sur une vie plus paisible. Sa femme quant à elle… bha en fait on s'en fout. On ne sait rien d'elle, on sait pas ce qu'elle fait, est-ce que ça lui plaît ou bien elle fait ça que pour suivre son chouette mari docteur ? On ne saura pas.

Et puis la ptite fille qui est un peu complice avec son père mais quand même proche de sa mère, on nous la montre beaucoup. Alors que le second gamin, un ptit mecton qui sait tout juste marmonner deux trois mots bha on le voit pas beaucoup. Pourtant, il est censé mourir donc faut qu'on s'y attache, il est là faut qu'on le sache, il n'est traité qu'à l'arrache. On le voit presque pas (pourtant ils ont utilisé deux jumeaux, ils les ont pas rentabilisé).

On a le droit au voisin relou un peu trop collant. On ne peut clairement pas s'en défaire de ce “gentil vieux” toujours en train de reluquer par ici, ou à boire une bière sur son porche, ou à trouver le cadavre de votre chat fraichement écrasé sur la route (encore qu'on pourrait croire que c'est lui).

Ha oui, j'ai oublié de vous parler du chat, même lui qui est censé être assez important dans l'histoire n'est que survolé. Je commence à me demander qui va bien mourir pour être ramené à la vie.

On a le droit à l'opposition des points de vue entre le papa médecin cartésien pragmatique réaliste et la maman … heuuu … qui croit au paradis. Et on découvre que la mère à un vrai syndrome post-traumatique concernant la mort de sa sœur ou tout du moins ces derniers instants. Faut dire que la scène qu'on nous offre pour nous montrer ça, a de quoi choquer.

C'est très con, pas gentil et tout, mais la gamine qui représente la mère dans le flashback a une drôle d'allure et des mouvements étranges. Au point, où j'ai tout bonnement l'impression qu'elle sort tout droit de Dark Crystal et qu'il s'agit d'une marionnette sacrément bien faite. Elle est tout bizarre, avec une coupe de cheveux bizarre, des expressions assez figées bizarres, avec des frusques bizarres. Vous savez quoi ? Je trouve ça … bizarre.

Du coup, c'est logique qu'elle soit traumatisée la pauvre maman. Heureusement en grandissant elle est devenue une vraie ptite fille. Désormais elle se tient bien sans aucun lien. Mais la pauvre à des hallucinations dérangeantes.

Faut dire qu'apparemment, sa sœur est morte dans le monte-plat (allo ? qui a un monte-plat chez soit ? certainement pas des gens qui n'ont pas les moyens de se payer une infirmière s'ils partent en laissant une de leur fille à l'agonie à la maison). Parceque ouai, la sœur est clouée au lit avec la colonne vertébrale toute vrillée au point où elle peut pas sortir du paddock, faut lui apporter à manger. MAIS, elle peut se faufiler dans le monte-plat et tomber dedans et mourir. (ouai c'est le genre de truc incohérent du film, pourquoi ne pas en être resté la version du bouquin ? ça n'apporte rien de positif cette modif).

Bon, on retourne à notre super chef de famille, en train de soigner deux rhumes dans son ptit hôpital de campagne quand soudain un gamin arrive la gueule râpée, éclatée, déchiquetée. Il tente de faire un miracle mais non, le gamin meure malgré les 5 secondes de massage cardiaque. Notre pauvre médecin encaisse le coup et là, le gamin se relève et lui sort une connerie genre “faut pas outrepasser la barrière”. Quel choque pour le padré. Lui qui pensait qu'on n'avait des accidents graves qu'en ville et qu'à la campagne tout le monde vivait centenaire en n'affrontant qu'au pire une ptite grippe.

Après une bonne nuit de sommeil, la ptite fille ne trouve rien de mieux que d'entrer par effraction chez le voisin collant. Quand il est pas chez eux, ils vont le chercher, c'est fou ça.

C'est de nouveau la nuit, papa dort mal, se lève à cause du gamin mort (ouai ils sont impitoyables, pas de grasse mat chez les morts) et se rend au fin fond de la forêt en passant la porte de sa chambre pour arriver dans le fameux Simetierre pour nanimo (ouai je vous l'ai zappé parcequ'on s'en fout). Il est réveille en sursaut par son fils. Parceque oui il a quand même un fils… Du coup sa ballade en forêt n'était qu'un rêve, par contre il se rend compte qu'il a les pieds bien crasseux comme s'il avait parcouru toute la Comté. Et il étale bien ça dans le lit (c'est surement pas lui qui nettoiera les draps). Sérieux, c'est un motif sérieux de divorce un truc comme ça (et à raison !). Bref, il est tout tourneboulé le pauvre : fut-ce un rêve ?

Il se lève, va s'occuper de sa gamine mais faut encore que le voisin stalker vienne casser l'ambiance. Il a “trouvé” le chat de la famille mort sur le bord de la route. Perso je suis quasiment sûr que c'est le voisin qui demande de l'attention et qu'il est prêt à n'importe quoi pour ça. Il se rencarde avec le padré pour aller en ballade le soir pour aller enterrer le pauvre greffier dans le Simetierre dans le fond de leur terrain.

On a le droit à un nouveau flashback de l'enfer avec la muppet de mère. Puis nous voilà de nuit avec les deux hommes de l'histoire parti enterrer ce bon vieux Winston Churchill. Et là le voisin propose d'aller enterrer le chat un peu plus loin. Le père est vraiment pas chiant : ils partent super loin, il traverse un cours d'eau avec les pieds dans l'eau et tout, en trimballant le pauvre chat mort et une pelle, au beau milieu de la nuit mais le père s'en plaint pas. Vous le feriez-vous ? On érigerait des monunents pour vanter la cagne légendaire dont je ferai preuve en cette occasion mais non, lui il suit au bout du monde un vieux mystérieux.

Le lendemain vous ne devineriez jamais ce qu'il se passe ! Le chat ! Bha en fait, bha il est pas mort ! SURPRISE !

Papa est encore une fois tout tourneboulé et dans ces cas-là qu'est-ce qu'on fait ? On va encore voir le voisin ! À mon avis il gagnerait un temps précieux en le faisant vivre à la maison.

Bon le chat est un coup super gentil un coup très space voir méchant. La ptite fille le brosse comme une sauvage il dit rien, puis au bout de dix secondes on sent que le réal a dit “Allez le chat maintenant tu es méchant, tu te rebelles dans 3… 2… 1 !”. Pas de bol, ce chat est réellement trop gentil, du coup ça aura lieu en hors champs. On rajoute trois griffures sur le bras de la gamine et hop. Voilà, la gamine ne veut plus de son chat, c'est dommage, après tout ce qu'à fait le voisin pour la préserver …

Bon, Papa et Maman vont faire des trucs de papa et de maman et là Matou apporte un pauvre pigeon mort sur le lit. On a donc une des réactions les plus logiques de tout le film : l'abandon des trucs de papa et de maman. Visiblement ça a cassé l'ambiance. À peu près toutes les autres décisions de Papa sont hautement contestables.

Maman nous assène une hallucination de plus où l'on voit sa sœur mourir dans son placard à pharmacie transformé pour l'occasion en monte-plat. Du coup dans ces cas-là, le Papa décide d'organiser une fête pour la gamine. Ensuite, il décide d'aller encore se promener chez le voisin qui va raconter un peu de folklore et où il explique qu'il se doutait que le chat reviendrait et serait méchant. Sympa mec. Mais le père, bha il le prend pas vraiment mal, ni bien d'ailleurs. Il ne réagit absolument pas à ça.

On avance un peu dans l'histoire, arrive la fête pour la gamine. Elle ne trouve rien de mieux que de rejoindre son chat sur la route où passe constamment des gros camions en excès de vitesse. Le ptit frangin la suit et là on va avoir le droit à sa mort. Le père court court court mais arrive à temps pour soustraire le mioche à son triste destin. Voilà le remake dans toute sa splendeur, le gamin que l'on nous a quasiment pas montré de tout le film n'a pas le droit à sa scène mémorable.

Bon bha du coup, le gamin ne meurt pas mais la gamine qu'on nous a beaucoup montré, elle, a le droit de mourir. Bon. Pourquoi changer ça ?

Bref, le père est triste et ne pense qu'à une chose, ramener sa gamine comme il l'a fait avec son chat. Ce qu'il va faire la nuit venue, discrètos, sans prévenir le voisin ce coup-ci. Au contraire, il va lui filer un bon somnifère histoire de pas l'avoir dans les pattes pour une fois.

Et contrairement au film d'origine, on ne voit pas le père tomber progressivement dans la folie. Il est lucide mais con.

Plus tard dans la soirée il suit des traces de pas assez flippantes qui mènent dans la cave. Et là il se retourne et voit sa gamine bien crasseuse, avec la peau grise, un œil qui se barre en couille, les cheveux qui s'arrachent par mèches entières rien qu'en les brossant. Bref, aucun présage qu'il a fait une très grosse connerie.

Au réveil, le voisin ultra perspicace tente de faire un peu la morale au père qu'il soupçonne d'avoir commis l'irréparable (après lui avoir montré comment faire). Là, le voisin flippe. Pour une fois il tente de se réfugier chez lui mais c'était sans compter la faculté du chat et de la gamine capable de coopérer pour leurs méfaits. Il se fait dégommer en deux deux et voilà. On n'aura plus à le supporter.

La mère rentre à la maison et découvre sa désormais fille-zombie. Visiblement le courant ne passe pas tant que ça. La couple ne se congratule pas et la gamine semble vouloir provoquer la fin du film assez rapidement mais c'était sans compter sur une nouvelle hallucination de la mère qui se rêve en train de se transformer en sa propre sœur biscornue. La zombie abrège cette scène grâce à son couteau.

Tout s'accélère, la gamine poignarde un peu la mère, ça papotte tranquilement. “Tu n'es pas ma fille.” Bam nouveau coup de couteau dans les côtes mais de l'autre côté pour équilibrer. La gamine traîne le cadavre maternel jusqu'au simetierre avec ses ptits bras de gamines de 9 ans.

Papa court se réfugier dans le simetierre, là où les morts reviennent là vie. Ça castagne ça castagne ça castagne. Il zigouille sa fille mais *Schpuichtre*. Il se prend une barre de fer dans le bide en passant par le dos. C'est sa femme qui exprimme son désaccord maintenant qu'elle est elle-même une mort-vivante.

Tout ce beau ptit monde retourne vers la maison. Il ne reste plus que le fiston réfugié dans la voiture. Et on balance le générique.


Voilà voilà voilà. C'est quand même décevant. Le début du film prend bien son temps c'est posé calme.

Et la fin c'est pas mal rushé. Le père au lieu de devenir fou et à prendre des décisions foireuses à cause d'un état mental perturbé, bha là il prend des décisions de merdes, point. On le voit pas perdre les pédales, il se rebelle pas contre ce con de voisin qui est quand même la cause de tout ce merdier.

Et puis là, au lieu d'être épaulé par le gamin qu'il a tenté de sauver au début du film, il n'a le droit qu'à des hallucinations sans explications. Du coup le père étant pas le plus fûté, il ne comprend pas les avertissements.

Un gros détail qui me gêne et que je ne comprends pas trop c'est le fonctionnement du truc. Quand tu te fais tuer par une de ces choses revenues à la vie, tu te transformes également en une de ces choses. C'est quoi ? Des zombies ? Il me semble pas, normalement, quand tu meurs, le seul moyen de revenir, c'est de se faire enterrer dans l'arrière-boutique du Simetierre.

C'est une très grosse déception. J'en attendais beaucoup. J'éspèrais que ce nouveau film gommerai les quelques menus défaut et saurait être généreux pour faire un très bon film en reprenant beaucoup plus ce qui avait été fait sur la première adaptation. Au final, il joue trop à vouloir innover où il ne faut pas, à rater la mise en place de l'atmosphère, à un rythme complètement à la ramasse et ne parvient pas à être beaucoup plus sombre et glauque.

1922

Je sais pas pourquoi mais j'ai vraiment pas accroché à ce film. Pourtant, grosse ambiance, esthétiquement travaillé, une once d'horreur, c'est assez psychologique mais je sais pas. J'ai lutté pour pas m'endormir. Le rythme un peu trop pausé et contemplatif m'ont perdu.

Et puis c'est ultra prévisible du coup même pas eu de ptit twist final pour me faire changer d'avis. C'est dommage parcequ'en fait l'environnement sort un peu du lot (les stazunis des années 1920 mais en campagne sans que ça parle de guerre, c'est mine de rien peu commun).

Thomas Jane joue ici un père de famille paysan accompli très proche de son fils. Tout ce qu'il souhaite c'est faire prospérer sa ferme pour ensuite pouvoir la léguer à son fils qui continuera l'affaire. Sa femme par contre n'apprécie pas trop la vie à la ferme et rêve d'ouvrir une boutique de vêtement en ville.

Ces trois personnages sont vraiment pas mal, avec le père superbement bien interprêté et une mère qui détonne avec son ton sincère et dur.

Bref, j'imagine que ce film peut plaire à beaucoup mais j'ai pas passé un bon moment. J'étais ptet pas non plus dans le bon état d'esprit.

Goodnight Mommy

L'histoire est simple : deux jumeaux attendent le retour de leur mère qui vient de subir une très lourde chirgurgie au niveau du visage. Elle rentre à la maison en ayant effectivement le visage complètement recouvert de bandages. Leur mère leur apparait pas mal changée dans son comportement mais également dans son physique.

Voilà comment ça démarre. C'est sacrément intrigant et on passe son temps à tenter de trouver des ptits indices. Est-ce que c'est bien elle ? Quelqu'un tente de prendre sa place ?

Le film est assez austère. C'est pas mal désaturé avec au final des tons presque pastels, pas de musique, des plans de caméras assez basiques (sauf un, qui est vraiment top).

C'est sacrément prenant et les deux gamins sont très bien dans leur rôle. D'ailleurs ils ont gardé leurs vrais prénoms dans le film (j'aime bien quand ça arrive). Et franchement qui mais alors vraiment, qui s'amuse à élever des blattes énormes comme celles présentes ?

Bref, ce film est une jolie ptite pépite assez peu connue. Ça parle en allemand en plus (quel dépaysement !).

Amélioration des suggestions d'articles similaires via un script shell

En bas des articles j'ai mis (depuis un bon moment maintenant) un lien vers des articles similaires. Ça marche pas trop mal car ça se base sur les tags. Le souci c'est que c'est très manuel. Et donc c'est toujours chiant de trouver les bons tags à mettre.

Du coup j'ai voulu me simplifier la vie et affiner un peu ces résultats. Pour ça je conserve les tags comme actuellement parceque ça crée des pages de tags et tout, mais j'ai ajouté un système supplémentaire assez équivalent mais qui est invisible et ne créer pas de page supplémentaire. Ça me permet d'ajouter des tags invisibles et donc d'y mettre des trucs pas forcément pertinent au premier regard.

Top_Words

Le principe est le suivant, je compte tous les mots afin de voir lesquels reviennent le plus dans un article. Il y a de fortes chances que ça soit de potentiels tags.

Je fous ça dans le frontmatter et je demande à Hugo de les prendre en compte pour trouver les articles similaires.

Voyons ça de plus près.

Élaboration du dico des mots bateaux

Vous vous doutez que les mots qui reviennent le plus sont les mots “inintéressants”. D'ailleurs voilà le TOP10 des mots qui reviennent le plus sur mon blog.

# ocurences mot
1 8995 de
2 5496 est
3 4908 le
4 4672 un
5 4045 et
6 3719 à
7 3626 la
8 3287 les
9 3024 pas
10 2856 d

Pour créer ce top j'ai utilisé la commande suivante :

tail ~/www/content/*/*/index.md -n +12 | grep -E ‘\w+’ -o | tr ‘[:upper:]’ ‘[:lower:]’ | sort | uniq -c | sort -g | less

Passionnant n'est-il pas ? Bon globalement tous les mots de ce TOP10 (et en vrai même top 100 ou plus) sont inintéressants et n'apporte pas de contenu.

Création d'un dico personnalisé

tail ~/www/content/*/*/index.md -n +12 | grep -i -E ‘\w+’ -o| sort | uniq -c | sort -g | tail -n 500 | awk ‘{print $2}’ | sort > ~/www/top_words

On hésite pas à fureter dedans et virer les faux-positifs. D'ailleurs probablement qu'à terme j'y ajouterai certains mots manuellement.

Script pour analyser les top_words d'un article

Ce script va donc utiliser le dico précédemment créé. Il suffira de le lancer et hop il vous affichera un top des mots avec leur nombre d'ocurence.

Ensuite il donne la ptite ligne à copier/coller dans le frontmatter de l'article (flemme jusqu'au bout).

/usr/local/bin/top_words
#! /bin/sh
tail "$1/index.md" -n +12 | grep -E '\w+' -o | tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -g | grep -f /home/lord/www/top_words -v -w | tail -n 10

printf "TopWords = ["
virgule=" "
for line in $(tail "$1/index.md" -n +12 | grep -E '\w+' -o | tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -g | grep -f /home/lord/www/top_words -v -w -i| tail -n 10 | awk '{print $2}')
do
  IFS=""
  printf "%s \"%s\"" $virgule $line
  virgule=","
done
printf "]\n"

Le script pourrait très probablement être amélioré mais pour un premier jet c'est amplement suffisant.

Adaptation de la config d'Hugo

Il suffit de modifier la config du site pour prendre en compte ce nouveau paramètre du frontmatter.

~/www/config.toml
[related]
  includeNewer = true
  [[related.indices]]
    name = "categories"
    weight = 20
  [[related.indices]]
    name = "TopWords"
    weight = 21

Et le tour est joué, notre nouvelle variable a plus de poids que le précédent critère.

Bon j'imagine que les experts dans le traitement du langage et les programmeurs vont bien se marrer en voyant le truc mais à mon niveau ça fait bien le taff. Ça me fait une petite commande de plus à lancer lors de la publication.

Empire Of The Sun

Je ne connaissais pas ce film et je ne savais pas du tout à quoi m'attendre. J'ai plutôt apprécié, voir la guerre du point de vue d'un enfant n'ayant connu que l'opulence dans une colonie est original.

Le côté débrouillard du gosse face aux comportements des autres protagonistes était cool. C'est d'ailleurs marrant de voir Christian Bale tout petit dans son premier rôle. Il a vraiment la même trogne que maintenant c'est choquant à quel point il n'a que peu changé.

Le film n'est pas du tout rentré dans ses frais, ça a même été un sacré four pour notre pauvre Spielberg. Faut dire que de nombreuses scènes sont très impressionnantes avec des foules bien massives. Ce qui serait aujourd'hui généré numériquement ne l'était pas à l'époque et nécessitait des montagnes de figurants, de costumes et des décors immenses.

Bref, c'est sympa mais avec un rythme assez lent.

Terminator : Dark Fate (6)

Annoncé comme étant l'opus qui doit relancer la licence suite à la perte progressive de l'amour du public (lié à la qualité des films) et bha pas tant que ça. Le réalisateur a été un peu aidé au niveau du scénar par James Cameron mais sans plus.

Il est quand même pas mal. Il relève effectivement le niveau. Mais il est vraiment pas au niveau des deux premiers.

Quel plaisir de revoir Sarah Connor et même John au début du film. L'utilisation d'effets numériques pour nous recoller la tronche des acteurs d'il y a vingt ans ça marche à mort sur moi. Vraiment ça titille la fibre nostalgique. L'effet n'est pas absolument parfait à 100% mais c'est désormais ultra crédible, une personne non-avertie se ferait clairement avoir.

Le film lorgne à fond sur son héritage des premiers opus au point de repomper la musique iconique mais aussi en réutilisant la musique de l'arrivée de Schwarzy dans le bar dans le 2. Les répliques sont aussi pas mal inspirées.

On a aussi le droit à des poursuites de véhicules en tout genre pour rester dans l'esprit de la franchise. Par contre on ne voit pas le docteur Silberman pour une fois !

Les scènes d'action s'enchaînent. s'enchaînent et ça devient assez vite over the top. Le film veut absolument en faire des grosses caisses.

Le scénar est pas trop mal mais malheureusement il en chie pour tenter de justifier le bordel dû aux voyages temporels qui changent le futur. Du coup Skynet n'existe plus mais on a le droit à Legion qui est … pareil mais en … ha non c'est pareil.

L'introduction des nouveaux personnages auguraient la création d'une trilogie mais visiblement le fait que le film n'ait pas atteint ses objectifs c'est pas gagné. Pourtant ils sont pas trop mal. Entre l'humaine venue du futur boostée de partout qui revient à la vie en 5 minutes après une ptite piquouze qui est ultra costaude et la nobody mexicaine qui s'avère être l'espoir de l'humanité ça pouvait avoir de l'allure.

Le casting est en plus vachement féminin. Sarah Connor est encore plus badass dans cet épisode que dans les autres.

Bref, c'est un bon moment, pas à la hauteur des précédents mais c'est l'intention qui compte.

Scripter une session Tmux

Cette semaine Alyve a publié un chouette article sur son blog pour créer des sessions Tmux avec Tmuxinator. Et là au milieu de l'article il est écrit :

Alors on va me dire “Oui mais tu peux configurer un script sh pour quand tu lances tmux toussa toussa”. Oui, j’ai pas ton temps, frère. Je suis là pour être productive et botter des culs avec mes nouvelles Doc Martens.

Du coup je saisis la perche au vol : Oui on peut scripter ça assez facilement !

On va recréer un environnement similaire à celui de l'article :

  • Une session tmux
  • Un premier espace de travail avec un éditeur de texte
  • Un second espace de travail scindé en deux parties
  • Une première partie avec hugo qui génère le blog à la volée
  • Une seconde partie avec les commandes git à portée de main

Script pas à pas

En fait toutes les commandes interactives de Tmux sont également disponibles en commandes shell que vous pouvez lancer manuellement ou bien lancer dans un script.

On va donc faire tout cela dans un script que l'on nommera /usr/local/bin/blog, on pense tout de suite à le rendre éxecutable avec chmod +x /usr/local/bin/blog et c'est partit !

#! /bin/sh
session="blog"
window="$session:0"

Bon tout bon script commence par un … shebang et quelques déclarations de variables pour se simplifier la vie. Il faut savoir que Tmux permet de créer des sessions avec dedans des fenêtres et chaque fenêtre peut contenir de multiple panes. Les panes sont les terminaux virtuels.

Donc pour parler d'un pane en particulier son nom est de la forme session:fenêtre.pane . En sachant qu'on commence à compter à partir de 0. (gardez cette info pour la suite)

Ensuite premier truc concret, on va faire en sorte que lorsqu'on lance le script, si la session tmux est déjà existante, bha on fait rien si ce n'est rentrer dedans. Ça va être le moment le plus délicat du script

if [ $(tmux attach -t "$session" )]; then
  exit 0
fi

Voilà, si la session existe, on s'y rattache puis on coupe le script (si on ne le fait pas, la session se rouvrirait dès que vous la fermez).

Bon, maintenant on va commencer pas mettre dans le bon dossier et à créer la session

cd /home/lord/www
tmux new-session -d -s "$session"

Voilà on est dans le bon dossier, la session est créée. On est détaché (-d) et on lui a donné un ptit nom (-s blog)

tmux split-window -t "$window"
tmux split-window -t "$window"
tmux select-layout -t "$window" main-vertical

On commence par couper l'espace de travail en deux puis en trois. Ensuite on active le layout main-vertical qui consiste en un terminal principal sur la moitié gauche et sur la droite un empilement des suivants.

tmux send-keys -t "$window.0" "kak" C-m

Maintenant, on se démarre kakoune via sa commande kak dans le pane 0 de notre fenêtre. D'ailleurs pour envoyer une commande c'est avec C-m qui fait un Ctrl-m (ça fonctionne aussi dans votre shell), sinon vous pouvez aussi mettre Enter à la place.

tmux send-keys -t "$window.1" "hugo server --navigateToChanged --disableFastRender" C-m

On se place dans le second pane (c'est le vocabulaire de tmux pour dire terminal) et on y lance hugo qui va permettre de faire des previews et tout.

tmux send-keys -t blog "git status" C-m

On se place dans le troisième pane et on y lance un ptit git status comme ça on sait tout de suite ce qui est en attente ou non.

tmux attach -t "$session"

Voilà, on rentre dans notre session

On a assemblé notre T800 yapukatester !

Si vous voulez le revoir en un morceau
#! /bin/sh
session="blog"
window="$session:0"

if [ $(tmux attach -t "$session") ]; then
  exit 0
fi

cd /home/lord/www
tmux new-session -d -s "$session"

tmux split-window -t "$window"
tmux split-window -t "$window"
tmux select-layout -t "$window" main-vertical

tmux send-keys -t "$window.0" "kak" C-m
tmux send-keys -t "$window.1" "hugo server --navigateToChanged --disableFastRender" C-m
tmux send-keys -t "$window.2" "git status" C-m

tmux attach -t "$session"

Bref, c'est ptet un peu plus long à monter soi-même mais bon si vous recopiez ce script ça sera plus rapide. En tout cas merci pour l'idée et n'hésitez-pas, allez voir le blog d'Alyve.

Gerald's Game

Sacré film. Un concept tout simple mais une réal au top, un scénar tout bien foutu, des références en veux-tu en voilà, des musiques… ha non il n'y a pas de musique.

Ce film est vraiment cool. Un couple tente de raviver la flamme et partent dans leur maison secondaire au milieu de nul part pour un week-end coquin. Mais le viagra aidant, le mari fait un AVC.

Le hic, c'est qu'il venait de menotter sa femme au lit, elle se retrouve coincée devant le cadavre de son mari.

C'est tout bête, ça pourrait être plié en dix minutes mais le film parvient à rendre le truc super. Notre chère petite dame commence à avoir quelques hallucinations qui matérialisent ses pensées. Elle se voit donc elle-même mais aussi son mari qui lui donne des conseils et avec qui elle discute.

Et… wow. C'est du génie.

On découvre petit à petit le background et le malaise de la situation évolue perpétuellement. C'est subtil et les acteurs sont vraiment bons. C'est d'autant plus vrai pour Carla Gugino qui dans sa double présence montre tous ses talents.

C'est bien un Stephen King, ça référence Cujo, ça rapelle Carie, il y des mentions plus ou moins claires de Dolores Claiborne (et d'ailleurs des similitudes dans l'histoire). C'est angoissant, psychologique.

Mike Flanagan le réalisateur s'est hissé en un Master of Horror. C'est lui qui a aussi réalisé The Haunting Of Hill House. On y retrouve d'ailleurs un peu le même casting. C'est aussi à voir.

Examen d'un spam #2

J'avais déjà fait un épisode il y a désormais fort longtemps. Et là j'en ai reçu encore un (j'en ai eu d'autres entre temps, hein) qui m'a fait tiquer.

Je suis tout fier d'utiliser un générateur de site statique, j'ai écrit pas mal d'articles à ce sujet. Un des buts est que c'est ultra simple à héberger et que ça a des perfs biens meilleures que les sites dynamiques. Je suis également tout fier d'être auto-hébergé et je pousse au maximum les gens à en faire autant.

Et là on me démarche pour me faire installer un pauvre Wordpress de merde et qu'il faudrait que je l'héberge chez Amazon…

Bon j'imagine que les spammeurs ne lisent pas mon blog, ils ont juste récupéré l'adresse mail et envoyé un truc bateau, mais c'est tout de même un peu dommage qu'ils ne poussent pas leur “enquête” afin de regarder quel générateur j'utilise (c'est dans les premières lignes de la page ouaib) et quelles sont les perfs (un test de vitesse est assez rapide à réaliser).

Bref, je vous laisse voir ça :

headers
Return-Path: 
X-Original-To: lord-blog@lord.re
Delivered-To: lord-blog@lord.re
Received: from GBR01-LO2-obe.outbound.protection.outlook.com
        (mail-eopbgr100111.outbound.protection.outlook.com [40.107.10.111])
        (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
        (No client certificate requested)
        by kif.lord.re (Postfix) with ESMTPS id BC16680DFD
        for ; Mon, 17 Feb 2020 11:04:34 +0100 (CET)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
        b=mplATnPloY+VsLMG393OVbGNkl3c1miOHBJpB5iHd2rLKobxxJvTKhuyxzUQdSNfluUg/rNdLmn9INiPQVCvAo1dUQuwW74nCZ0GGGqK/hRQK9SY3j9naKgwuVGG0glrUGCGgD4XthgrC4jCrb7O7lOZsPAtJp+sv2ITOR8d+o1nnsa3EAAvm85edOduUSE45gYz8mHKW6VWdxxOiUHkheFxOufrK8BebwfYF1wEnYL8G8y6Lxa0fpU1A7+A+GmI7tq3Hh9wc00qZmK39pAP9NlBbMjuUwNRVe7JWT6tbYzmbHAxnCgoVkIoKvI76sIrlGx3hqBnb/Fv0/UtmauA2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
        s=arcselector9901;
        h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
        bh=s4WGpamVwMebN2Os2VAaq0yjP55f5fOigOLvGcMDxNU=;
        b=ej+jH9zAUK6+TYny1BlPoRQueIVtEHmqTNh6NpoPpTmSgIMcRqnqH9uzqnPqwke4pclXvICqqF3QTwnLPU9KRZHU23gbeClRaWgeVIFi1Qy3F8EsCDisMB7XZwUFmbcUUnhsLJAErDGrWASlQsqUE7gSMdyNkMtk6PErD0cAOIHOPtgMohrIko6wC7ou7dAP797ShcmT81+uBy5skCPMPKWPoayjI8aEzyHtRqBVkdalXX1mgX2NbrRY9f1D204aqZG+ZOvVXZWiaR4EVpuL1EwLeuar6WoJCj1keOh8cWKBJUm7M4zk1WkDDQk7ms3LphoN496g7/0qZUdTvXcqcw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
        smtp.mailfrom=wpoptim.co; dmarc=pass action=none header.from=wpoptim.co;
        dkim=pass header.d=wpoptim.co; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=wpoptim.onmicrosoft.com; s=selector1-wpoptim-onmicrosoft-com;
        h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
        bh=s4WGpamVwMebN2Os2VAaq0yjP55f5fOigOLvGcMDxNU=;
        b=fJ0jhNQ+9Dlrx4B+5GHgafWgACmcI7zzwVByW6EGZfNfknyoKdKX9J2Vhxu3FhGpeqWebux46z/Y3EXspqAuGn3U2IHY/0jP7rIVS5vKCVb5buGDidP+NhmPyyQTW3CSF2KEI5DD7P2vKpq+wAYie1K2CcypC/ZcW+7HbPCe0Hk=
Received: from CWLP123MB2979.GBRP123.PROD.OUTLOOK.COM (20.180.144.79) by
        CWLP123MB3057.GBRP123.PROD.OUTLOOK.COM (20.180.144.142) with Microsoft SMTP
        Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
        15.20.2729.25; Mon, 17 Feb 2020 10:04:34 +0000
Received: from CWLP123MB2979.GBRP123.PROD.OUTLOOK.COM
        ([fe80::1505:2353:23eb:f92]) by CWLP123MB2979.GBRP123.PROD.OUTLOOK.COM
        ([fe80::1505:2353:23eb:f92%6]) with mapi id 15.20.2729.032; Mon, 17 Feb 2020
        10:04:34 +0000
Received: from bot (188.27.235.97) by VI1PR06CA0150.eurprd06.prod.outlook.com
        (2603:10a6:803:a0::43) with Microsoft SMTP Server (version=TLS1_0,
        cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) id 15.20.2729.22 via Frontend Transport;
        Mon, 17 Feb 2020 10:04:34 +0000
From: WP Optim 
To: "lord-blog@lord.re" 
Subject: 😨 lord.re - Speed report
Thread-Topic: 😨 lord.re - Speed report
Thread-Index: AQHV5XmnPDzhe1z6VkSi1mtPL8RVHw==
Date: Mon, 17 Feb 2020 10:04:34 +0000
Message-ID: <88b70bb42e14caff2eadf6d028c2a869@bot>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-clientproxiedby: VI1PR06CA0150.eurprd06.prod.outlook.com
        (2603:10a6:803:a0::43) To CWLP123MB2979.GBRP123.PROD.OUTLOOK.COM
        (2603:10a6:400:51::15)
authentication-results: spf=none (sender IP is )
        smtp.mailfrom=contact@wpoptim.co;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: eea5a767-e1d8-454c-1fea-08d7b390ca4e
x-ms-traffictypediagnostic: CWLP123MB3057:
x-microsoft-antispam-prvs:
        
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-forefront-prvs: 0316567485
x-forefront-antispam-report:
        SFV:NSPM;SFS:(10019020)(39850400004)(396003)(136003)(366004)(346002)(376002)(189003)(199004)(956004)(66574012)(478600001)(33716001)(966005)(9576002)(64756008)(4744005)(66446008)(66946007)(66556008)(66476007)(81166006)(81156014)(5660300002)(8936002)(71200400001)(108616005)(86362001)(9686003)(186003)(316002)(55016002)(2906002)(6496006)(26005)(6916009)(52116002)(24736004)(493
+534005)(14943795004);DIR:OUT;SFP:1102;SCL:1;SRVR:CWLP123MB3057;H:CWLP123MB2979.GBRP123.PROD.OUTLOOK.COM;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1;
received-spf: None (protection.outlook.com: wpoptim.co does not designate
        permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
        b5q1x3Ux9mc0f+e+KUrC2YRdeKaQM69i7Sqz/JeYqEcgT7nDWXZ/YrJ8QzZ4doiwsUl9fdI6b8cEm3FZ7E6GSnyOqh/Pw8pH9bGUz10BbxcgJdKdt49y7WxlfF3E3/fZ+tU+ut2OWrEueezvO2jkRynabq3hiCNu1209h58LKEyRj3MHpC+KmKSVnsY7V4s+paxOXL/hcCfe0H+Ae8AwteltYxbseO7UITgaNawjOz2WImRxwYAM0XdPtaCDPVwkM5FlJJUYxu5cV+c21P9mD5tkwcTfH/kjJgT+N8ng2sURbQsHJsPY9/bPPJyd/7H1h4xbkTeGDXmfvaZGSYgAHZfv0gTfrgjoaKBTQvlPU4EpyshhI221dAv
+/2Jc21PpdGz3LnuX47sMFxetSUnDEtCo0eUbFO33Y158lZQ+5u9HOiDOi1G4vx81V90FLK2LnhX4Hjt9apEz4n1+5xcOwE3c0vOlxn/eDdq3gENa5195p0OPSKL3o37UdrDHSyo4JzKJgFi7OG3yVk0eJPkL106HnXvx/HcwkuZvPoEaIMz2kXr5O5Ucqz2I5Pf1Voff4QF+b8omWEsDyUMOkhapU1hWrgnX3kXUmoxP6JEfpm28=
x-ms-exchange-antispam-messagedata:
        +1f6U2V0HTuyg2gto5A2wGVXEAYqOkhbZNuTDYnyyyv0tzyaQSZA1HH5e2WnkR2srzfbxd49vjF2mh2u28b0CNCu/vd1pzJtqFd/5jMnYyBZStrsrclCdYiid13YoAcr4QQ37FsrwCjfuOitLg4TpA==
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative;
        boundary="_000_88b70bb42e14caff2eadf6d028c2a869bot_"
MIME-Version: 1.0
X-OriginatorOrg: wpoptim.co
X-MS-Exchange-CrossTenant-Network-Message-Id: eea5a767-e1d8-454c-1fea-08d7b390ca4e
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Feb 2020 10:04:34.8408
        (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5b44ec05-8deb-41cf-83ee-1e0419556989
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: rudfrbUtwTIiC5eyYlnVB0BjhC28GDwAU5oe0B+XjI/EpSsaqRSUno2tfwM/S4pAl8eEEopKV2EdVrXUdrcR1g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWLP123MB3057
X-Rspamd-Queue-Id: BC16680DFD
X-Spamd-Result: default: False [-0.88 / 9.00];
        RCVD_TLS_LAST(0.00)[];
        BAYES_SPAM(0.02)[49.67%];
        R_DKIM_ALLOW(-0.20)[wpoptim.onmicrosoft.com:s=selector1-wpoptim-onmicrosoft-com];
        FROM_HAS_DN(0.00)[];
        R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16];
        TO_MATCH_ENVRCPT_ALL(0.00)[];
        MIME_GOOD(-0.10)[multipart/alternative,text/plain];
        DMARC_NA(0.00)[wpoptim.co];
        RCPT_COUNT_ONE(0.00)[1];
        RCVD_COUNT_THREE(0.00)[4];
        DKIM_TRACE(0.00)[wpoptim.onmicrosoft.com:+];
        MIME_BASE64_TEXT(0.10)[];
        TO_DN_EQ_ADDR_ALL(0.00)[];
        RCVD_IN_DNSWL_FAIL(0.00)[111.10.107.40.list.dnswl.org:server fail];
        FROM_EQ_ENVFROM(0.00)[];
        MID_RHS_NOT_FQDN(0.50)[];
        ASN(0.00)[asn:8075, ipnet:40.64.0.0/10, country:US];
        MIME_TRACE(0.00)[0:+,1:+,2:~];
        ARC_ALLOW(-1.00)[i=1]
X-Rspamd-Server: kif

Content-Type: text/plain; charset="utf-8” Content-Transfer-Encoding: base64

Hello there!

Your website, lord.re was recently checked on our Speed Test.

Optimization report →http://bit.ly/39FzlSg#190927179328fea61f57 http://bit.ly/39FzlSg#190927179328fea61f57

We found multiple bottlenecks and opportunities to optimize performance. This has a high impact on search engine visibility and bounce rate!

How we can help:

  1. Fully managed hosting, custom optimized for WordPress, using single tenant private servers.  Powered by Amazon Cloud platform, making websites run blazing fast.

  2. Unlimited migrations free of charge.

  3. 1400 pre-built sites, created using the best premium WordPress themes, available for all our customers at no cost.

Interested in fixing your site?

…..

Maria T. - WordPress Expert WP Optim - Running on AWS Amazon

Voilà voilà. C'est pas trop un examen au final. D'ailleurs le mail est sacrément clean.

Un peu d'adminsys vol.1 : Alpine 2020, Acme, Knot

En ce tout début de weekend, je sais pas trop pourquoi j'ai eu envie de faire un peu d'adminsys. Du coup je vais vous partager ce petit vrac.

Upgrade d'Alpine qui accroche

J'ai donc commencé par upgrader une de mes machines à la toute dernière version d'Alpine. Bref, le truc ultra basique et rapide. Juste un passage de 3.10 à 3.11.

J'édite donc le /etc/apk/repositories pour y changer le numéro de version. Je lance un coup de apk update et quelques secondes après apk upgrade. Tout se passe bien.

Je regarde les services qui tournent avec htop, je les redémarre un par un histoire d'être sur la dernière version.

Postfix passe.

Dovecot passe.

Nginx passe.

Postgres… Ha tiens je l'ai migré, je peux le dégager lui. Je le coupe pour le moment (jamais trop prudent).

Knot passe pas. Arg c'est dommage c'est un important lui. Peut pas trop le foutre en vrac trop longtemps.

Bon visiblement il se plaint de truc bizarre. Relançons un apk upgrade ouai ça sert à rien mais des fois que…

Tiens ! apk me sort 2 errors mais c'est écrit en tout petit j'avions point vu !

Dans ce cas il faut apk fix. Hmm il arrive pas à résoudre les erreurs et me sort un secure_getenv : symbol not found .

Ha tiens c'est aussi l'erreur que me sortait knot ! On avance !

Bon un ptit tour de DuckDuckGo… Mouai rien de probant. Allez je me sens sale mais go pour du Google.

Pas mieux. Comme quoi c'est pas mieux que DuckDuckGo.

Bon bha quand le web n'aide pas vers quoi on se tourne ? IRC

Allez je pose ma question sur #alpine-linux . 49secondes plus tard j'ai une première réponse. On investigue un peu et là. Tadaaaaaa un sauveur me sort la solution comme ça au bout de trois minutes.

apk upgrade -U -a -s Me sort un listing de paquets pas super à jour. Du coup un ptit apk upgrade -a et voilà !

Plus d'erreur, je peux relancer knot. En moins de 5 minutes top chrono la communauté irc d'alpine m'a démerdouillé le truc.

Donc note à moi-même pour la prochaine fois : Lors d'un upgrade de version chez Alpine il faut faire un apk upgrade -a pour vraiment tout upgrader.

Migration d'acme-client à acme.sh

Bon, une fois ce premier souci résolu, j'ai voulu me créer un nouveau vhost.

Je m'ajoute une nouvelle entrée dns avec knsupdate. Ensuite je me fais le vhost au niveau de nginx. Je le reload, j'ouvre mon navigateur, ça fonctionne nickel.

Du coup je vais pour lui coller du TLS. Historiquement sur cette machine j'utilisais encore acme-client mais celui-ci n'est plus maintenu (sous BSD si). Il n'implémente que Acme-v1 qui est la première version du protocole de LetsEncrypt mais pas de bol, seuls les renouvellements sont acceptés sur ce protocole. Pour la création il faut passer à Acme-v2, du coup il me faut changer de client acme.

Mon nouveau chouchou du jour c'est acme.sh . Tout en shell avec quasiment aucune dépendances.

Ça s'installe en deux deux, très simple d'utilisation et tout. Et pour une fois je me suis laissé allé à la flemmardise et je le laisse même trifouiller la conf nginx tout seul.

Du coup je fais un coup de acme.sh –issue -d mon.domaine –nginx ça mouline quelques secondes. Il m'indique ensuite où sont rangés les cert clé et compagnie. Plus qu'à ajouter ça au fichier de conf nginx et à le reload.

Voilà c'était torché en deux minutes. Mais du coup autant migrer aussi mes autres certs pour jarter acme-client.

Je fais exactement la même technique. Me reste à mettre à jour mon script de cron.

J'ai pour l'instant fait un script qui s'amuse à relancer les différents services utilisant les certificats (postfix, dovecot, nginx, weechat). Par contre j'ai pas tout de suite trouvé comment me faire des notifs vers mon bot irc. Visiblement les hooks de notifications sont pré-établis. On peut pas lancer une commande arbitraire du coup ça va être chiant.

Un ptit tour sur Postfix

Je sais pas pourquoi mais aujourd'hui c'est revenu dans deux fois dans des discussions différentes dans des lieux différents. Postfix mais surtout Postscreen a été un gros sujet du jour du coup.

Et j'ai d'ailleurs découvert une option permettant potentiellement zapper le greylist. postscreen_dnsbl_whitelist_threshold Lorsqu'un serveur s'avère n'être présent dans aucune de vos DNSBL, alors les tests supplémentaires ne sont plus faits et le reste du traitement du mail est fait sans plus attendre.

Je l'ai mis en place ce soir, je verrai dans quelques jours si ça m'épargne un peu de greylisting.

Un ptit tour du côté du DNS

Vu que j'ai regéneré les certificats Let's Encrypt de zéro il s'est passé un truc auquel je n'ai pas pensé. Mes enregistrements TLSA n'étaient plus trop d'actualité et il me fallait les refaire. C'est ce qui permet à DANE (le truc trop bien mais complètement ignoré) de faire son boulot.

J'ai tenté de me battre au début avec knsupdate mais c'est toujours un poil chiant. Je sais pas si je suis particulièrement mauvais où bien il ne connait effectivement pas les enregistrements TLSA et donc refuse d'en ajouter…

Du coup je me suis rabattu sur knotc directement. Je pense que je vais lui faire un peu plus honneur dans mon guide sur le DNS.

D'ailleurs j'en ai profité pour purger ma zone de pleins de trucs inutilisés et accumulés au fil des expérimentations.

Un ptit knotc zone-read lord.re. est particulièrement blindé. Donc knotc zone-begin lord.re. et là on commence à couper dans le gras : knotc zone-unset lord.re. vieux.trucs.lord.re. . On fait ça pour chacun des trucs à jarter. Quand on a un peu tout fait, un ptit knotc zone-diff lord.re. et si c'est bon on lance knotc zone-commit lord.re. et c'est tout bon.

Bref, j'ai refoutu des enregrstrements TLSA kivontbien pour mes mails.


Et voilà fin du weekend :-/

Jay & Silent Bob : Reboot

Rhaaa quel film chaotique. On retrouve quasiment tous les acteurs ayant déjà bossés avec Kevin Smith. Ce film est un petit cadeau pour les spectateurs mais aussi pour le réalisateur. Si vous avez déjà vu un de ses films vous allez forcément reconnaitre des têtes, des références, des caméos…

J'ai vraiment beaucoup aimé. Mais faut dire que j'aime beaucoup les films de Kevin Smith.

Et ce film est des plus méta. Ça parle de Kevin Smith qui va faire un film, sur un personnage incarné par Kevin Smith. Et franchement c'est foutraque.

C'est vrai que ça a un peu ni queue ni tête par moment mais c'est tellement plaisant à regarder de voir tous ces acteurs reincarner leurs anciens rôles. Il y a du beau monde d'ailleurs, il a même réussi à ravoir Matt Damon et Ben Affleck, tout le cast de Clerks et aussi Clerks 2 (sauf malheureusement Elias que j'aurai adoré revoir). Chris Hemsworth vient même se prendre une ptite dose d'autodérision (légère, hein, faut pas non plus s'attendre à du lourd). Et comme prévu on a le droit aux filles et de Kevin Swith (Harley Quinn Smith) mais aussi de Jason !

Par contre de les voir tous avec 10/25 ans de plus ça fait toujours un ptit choc. Pour capter toutes les références par contre il va falloir réviser tous ses films. J'ai d'ailleurs peur, que ce film ne fonctionne absolument pas si on ne les a pas vu.

Bref, c'était un moment vraiment cool avec beaucoup d'humour. Le parallèle avec la vie réelle des protagonistes rend le film d'autant plus tendre.

Cell

Ce film de zombie c'est la douche froide. Les effets spéciaux … spéciaux (cheap) n'aident pas à faire passer la pilule.

Autant il y a le ptit côté survie en milieu urbain rempli de zombies. Et de l'autre… bha … on rencontre des personnages auxquels on parvient pas à s'attacher.

Le scénar est vraiment pas terrible. Mais surtout la fin. On a pas compris. J'ai eu l'impression qu'on nous a montré successivement les différentes fins possibles et que c'est au spectateur de choisir celle qu'il veut à la fin.

Bref, c'est très décevant et ennuyant.

Mercy

Une grand-mère qui se fait virer de la maison de retraite de part son comportement particulier. Une mère seule avec ses deux gamins qui retourne dans la maison de la grand-mère pour s'occuper d'elle. Dans le derche du monde, bien isolé.

Et pour faire vite, la grand-mère a pactisé avec un démon pour parvenir à avoir des enfants suite à ses fausse-couches. Du coup, elle est en effets très particulière. C'est … meh.

Il n'y a pas vraiment de point noir mais il n'y a pas non plus de bon point. La photo est basique, la musique insipide, l'histoire assez creuse, les acteurs mouai. Tout ça c'est sans saveur. Par chance le film est assez court et donc ne s'éternise pas trop mais bon.

C'est vraiment dispensable.

Récap 06 : Janvier 2020

Blog

Grosse baisse de publication ce mois-ci. Faut dire que j'ai pas mal maté de film et joué. Pas trop d'inspiration. J'ai quand même deux trois idées d'articles dans la todo (dont un depuis plus d'un an) mais la flemme est forte ces derniers temps.

Mais bon si ma prose vous manque n'hésitez pas à vous rendre dans les visionnages c'est là où j'écris le plus en ce moment.

En bref ce mois-ci : 3 articles, 10 commentaires, 15 visionnages, 573039 requêtes, 50596 visiteurs uniques pour 19.28 Go de trafic.

Films

The Mangler

Un bon gros nanar des familles mauvais en tout point. C'en est risible.

Dolores Claiborne

Ce film n'est pas très connu du haut de ses 25 ans. Il est excellent avec une histoire vraiment très prenante. Et le casting est d'enfer avec Kathy Bates avec un rôle taillé pour elle.

Thinner

Un film a petit budget un peu fantastique, un peu horreur, un peu nanar. On peut le voir une fois mais pas plus.

Apt Pupil

Un film sans saveur où il faut une sacrée suspension d'incrédulité pour rentrer dedans. Il ne s'y passe pas grand-chose et le peu qu'il s'y passe on y croit pas. C'est un gros meh.

Interstellar

Un chef-d'œuvre même parmi la superbe filmographie de Christopher Nolan. Tout est trop bien dans ce film, les 3h passent trop vite. À revoir régulièrement.

La Ligne Verte

On en sort pas indemne. Trois heures excellentes en prison grâce à Frank Darabont encore. Un peu tire-larme mais magnifique.

The Lightouse

Malgré une image noir&blanc, un son mono et une image carré on est bien face à un film de 2019. Film assez lourd et oppressant teinté de mystère. Peu d'acteurs, peu de dialogue, peu d'action mais vraiment prenant.

Hearts In Atlantis

On retrouve beaucoup d'éléments habituels d'un bon Stephen King mais malgré Anthony Hopkins ça n'apporte pas grand chose de plus. Au contraire le film est assez avare en matière pour expliquer et tout. C'est donc un peu frustrant mais ça se laisse regarder.

Dreamcatcher

Durant la première heure de film on sait pas trop ce qu'on regarde. Ça oscille de genre en genre rendant le truc assez étrange, c'est particulier mais pas non plus immonde. Le film veut bien faire mais il fait un peu tout et n'importe quoi.

Riding The Bullet

Aussitôt vu aussitôt oublié. C'est inintéressant, mou, mal joué, pas spécialement agréable à voir. Enlevé les caméras des mains de ce réalisateur.

Secret Window

Enfin un film qui relève le niveau avec Johnny Depp et John Turturro jouant des écrivains en conflit. C'est très sympa surtout au premier visionnage. L'histoire fait tout.

The Mist

Troisième et dernière adaptation de Stephen King par Frank Darabont. Clairement moins bon que ses autres films, c'est tout de même sympa. Une histoire à fond surnaturelle et à fond dans le film d'horreur.

1408

La chambre 1408 est le diable et c'est vraiment cool. C'est joli, bien fait, prenant et le casting est bon. Un film d'horreur jouant sur des ressorts moins communs.

Dolan's Cadillac

Rhaa mais que c'était nul et vraiment trop long. Un homme venge l'assassinat de sa femme par un traficant d'être humains ultra cliché. Voilà c'est tout résumé.

Carrie (2013)

Remake plutôt fidèle remettant aux goûts du jour une histoire culte. Je suis pas super fan, mais je le trouve plus agréable à regarder que l'original qui a assez mal vieilli à mon sens.

Séries

Sex Education (saison2)

J'avais beaucoup aimé la première saison et cette seconde est tout aussi bonne. Ça fleure la joie de vivre, c'est du ptit drama dans une ptite ville de Britannie.

C'est super joli et intéressant mais en plus comme le titre l'indique ça parle de sexe mais d'une façon vraiment bienveillante et instructive. La série est assez méta dans son propos : les jeunes (mais aussi les adultes) n'ont pas le droit à une vraie éducation sexuelle qui peut résulter en un mal-être. Et la série peut disperser par-ci par-là des conseils, des points de vue et c'est vraiment très rafraîchissant. C'est pas coincé du tout et c'est cool d'avoir des personnages d'un peu tous les bords représentés sans être moqués ou clichés.

La bande d'acteurs est vraiment excellente et parvient à nous divertir mais surtout à faire en sorte que l'on s'attache à tous les persos. De tous, il n'y en a qu'un qui est repoussant du début à la fin (le padré d'Otis), tous les autres de part leurs expériences et tout apparaissent sympatiques.

D'ailleurs mon préferé est clairement Eric Effiong qui a un parcours assez laborieux mais qui est tellement génial qu'on aimerait être pote avec lui.

La série est à recommandé à tout le monde ados, adultes, coincés, liberés… tout le monde y trouvera son compte.

Jeux

Surviving Mars

J'ai craqué pour Surviving Mars qui est un excellent city builder sur … Mars. Le jeu est natif Linux et tourne vraiment bien. Ses graphismes ne sont pas le top du top mais ils sont tout de même très beaux et surtout ça tourne vraiment bien malgré ma config décente.

Le but est de monter une colonie humaine sur la planète rouge. Il faut donc affronter l'environnement difficile : créer son oxygène, sa flotte et son électricité. Il faut amasser des ressources pour pouvoir faire prospérer votre colonie.

Là où ça sort de l'ordinaire c'est que ce n'est qu'une colonie et que vous allez donc pouvoir vous faire ravitailler par la Terre via des fusées. Et vous allez également pouvoir revendre des métaux locaux à la Terre.

Pour l'instant je n'ai fait qu'une partie en mode facile et ça m'a pris un joli paquet d'heures.

Dead Cells

Les promos m'ont fait craquer. J'étais pas sûr d'accrocher donc j'étais près à me faire rembourser dans les temps imparti par Steam. Mais au final, au bout de 3/4 runs c'est bon j'ai adhéré au concept.

C'est un rogue lite made in France vraiment bien foutu.

La génération des niveaux est procédurale et ils ont réussi à faire différents types de niveaux avec des architectures pas mal différentes, du coup la lassitude et l'impression de faire toujours la même chose est bien moins présente que dans Rogue Legacy. Toujours pour le comparer à lui, il est d'ailleurs bien plus nerveux et réactif. Il faut un sens du timing bien plus poussé pour réagir aux attaques des ennemis pour parer/esquiver/attaquer sans prendre de coups. Et du coup le feeling de jeu est beaucoup plus addictif je trouve. J'apprécie les jeux demandant de la réactivité et là je suis gâté.

Graphiquement c'est de toute beauté : c'est du pixel art mais avec une grosse touche de modernité technique via l'utilisation de parallax mapping direct sur le pixel art et des lumières dynamiques. Du coup les objets paraissent réellement en 3D, c'est somptueux. Ça fait quelques années que j'avais vu des concepts de cette technique mais je ne l'avais jamais expérimenté dans un jeu et c'est cool même si on va pas se le cacher, dans le feu de l'action on ne le remarque pas.

Je pense que ce jeu va m'occuper quelque temps.

Crypt Of The Necrodancer

J'en entendais parler depuis un bail et il y a eu une promo donc j'ai craqué.

Et finalement j'accroche moyen. Le concept est assez sympas mais je sais pas trop pourquoi j'y arrive pas. Pour être joué en rythme en faisant gaffe aux patterns des monstres et tout, je le trouve au final très difficile à maîtriser.

J'ai fini le premier monde que je trouve sympatique mais le second m'a complètement rebuté. Les ennemis changeant tous, faut apprendre tout un tas de nouveaux patterns et là, la difficulté monte d'un très gros cran. Et j'ai un poil laché l'affaire et j'ai pas spécialement envie de m'y plonger plus. Je ne retire pas grand plaisir de ce jeu même si je sais que beaucoup l'apprécient.

Nuxeries

J'ai fait mumuse avec des sondes de températures et d'hygrométrie mais pour l'instant je suis pas arrivé au résultat escompté. Il faudrait que je m'y penche un peu plus dessus. J'en ferai probablement un post.

Dans un autre registre je me suis rendu compte qu’isso (ce que j'utilise pour les commentaires) était vautré depuis dix jours. J'ai fait un ptit pip install isso et visiblement gcc ne parvenait pas à compiler ce qu'il fallait à cause de cffi.h manquant. J'ai donc apk add libffi-dev et relancé l'install pip et hop c'est passé. Voilà, un bout de python qui s'installe pas, parcequ'il manque des libs C tout ça pour un ptit truc web pour des commentaires. -___-

Vidéos

Trois fois rien. Une ptite discussion entre Dean Lamb (guitariste de Archspire (le meilleur groupe du monde)) et Dave Otero (producteur de grosse musique qui bosse entre autre avec Archspire (le meilleur groupe du monde)). Ça parle d'un peu de tout et de rien (en Anglais) mais c'est intéressant et décontracté.

Dark Mode pour Qutebrowser

Je viens de découvrir qu'il est possible d'avoir un mode sombre pour Qutebrowser. Ça fait des années que je rêve d'une telle fonctionnalité. Alors que certains ce sont les portes rouges, moi ce sont les sites blancs que je veux repeindre en noir.

Cette astuce n'est pas propre à Qutebrowser lui-même mais pourrait s'appliquer à toutes les applis Qt. Dans les versions récentes de Qt, toutes les applis peuvent avoir un mode sombre.

Bref pour l'activer dans votre Qutebrowser il faut éditer votre config.

~/.config/qutebrowser/config.py
c.qt.args = ["blink-settings=darkMode=1"]

Vous relancez votre joli navigateur et hop.

C'est tout.

Ha et si les couleurs vous plaisent pas vous pouvez tenter d'autres valeur que 1 et mettre 2 ou plus (je ne sais pas jusqu'où ça va).

Dernière déconvenue

On doit quand même subir l'horrible page super blanche quand on ouvre une nouvelle fenêtre ou un nouvel onglet avant que la vraie page ne s'affiche. J'ai pas encore trouvé de solution à cette horreur.

Il est possible d'en changer la couleur. Sauf qu'en fait ça veut dire changer également la couleur de toutes les pages webs n'ayant pas redéfinies leur couleur de fond par défaut. Et mine de rien pas mal de site ouaib l'ont laissé par défaut. Donc si comme moi vous tentez de faire le malin pour mettre une couleur foncée, vous allez vous confronter à des pages n'ayant pas non plus redéfinie leur couleur de texte par défaut. Vous aurez donc la joie de tenter de lire du texte noir sur fond noir.

On peut aussi s'amuser à changer la couleur du texte par défaut mais bref on arrive à un point où il faut tout refaire et ça pète forcément à un endroit. Bref c'est merdique.

Donc faisons-nous la promesse, lae premier d'entre nous qui trouve comment changer la couleur de la blank page et uniquement elle (pas les couleurs par défaut globales à toutes les pages), iel le dit à tout le monde et on sauve l'humanité ! OK ?

Carrie (2013)

Remake du film culte (surtout aux US) de l'année 76, il s'est attelé à moderniser un peu le film afin de lui faire gagner un public plus djeuns. Faut dire que du haut de ses 40 ans les nouvelles générations pouvaient probablement moins se sentir proche de ces ados.

De ce point de vue c'est plutôt réussi. L'arrivée des téléphones portables, d'Internet et de la publication de vidéo pour faire du public-shaming rend pas mal. Et le look bien plus contemporain des ados ça fait du bien.

D'un certain point de vue le film est d'ailleurs plus regardable. On a un poil moins l'impression de regarder des gamines à poil vu qu'on nous a épargné une nudité n'apportant absolument rien au film. Et j'ai d'ailleurs une impression globale que le film a un regard moins malveillant envers ses personnages. La mère est méchante car elle est mentalement dérangée, la prof de sport semble plus proche de Carrie, la méchante elle est la seule a être vraiment 100% méchante et c'est tout.

Bref, je sais que ce n'est clairement pas l'avis général mais je préfère ce remake plus aux goûts du jour que l'original. C'est plus aseptisé et tout mais le rythme est déjà bien mieux géré.

C'est loin d'être un film culte, mais il se laisse regarder. D'ailleurs je pense qu'il est culte (surtout l'original) aux US parceque le bal de fin d'année est vraiment très ancré dans leur culture.

Dolan's Cadillac

C'était chiant. C'était longuet. L'histoire est pas mal, hein, mais fallait pas l'étirer autant. En trois quarts d'heure c'était plié mais non il fallait en faire des caisses et tout.

Lors de sa balade en canasson quotidienne, une meuf aperçoit de multiples meurtres de ce qui ressemble à de la traite des femmes par deux mecs en costards. Ils la voient, ils veulent la tuer. Ils la tuent plus tard et du coup le mec de la canassonneuse veut se venger.

Voilà déjà tout ça c'était trop long. On en arrive à la partie intéressante, la vengeance.

Et là, on a le droit à la mise en place d'un piège digne d'une altercation entre Bip-Bip et le Coyote. Mais ils en font des caisses pas possibles. Christian Slater est un méchant des plus caricatural qui est dans la traite des femmes et les considère comme de la merde, s'arroge le droit de cuissage et tout. Et vas-y que je me balade en peignoir en soie, on se croirait dans un Disney : vous avez pas besoin de connaitre le film mais en un screenshot vous savez que c'est un méchant.

Bref, le héros vengeur mets au point son plan et pouf ça fonctionne sauf que là, au lieu d'en finir de suite ils décident de faire durer ça encore des plombes pour… bha … rien. C'est même pas spécialement sadique, c'est pas spécialement recherché, c'est juste pour faire en sorte que le héros prenne plus de risque que nécessaire.

On est bien loin du Maine et on se tape de la frontière mexicano-usienne. Pas d'écrivain, pas de surnaturel, pas de gamin. Non c'est pas du Stephen King.

En court-métrage ça passait mais en long, non merci.

1408

Bien qu'assez peu connu, c'est un très bon film.

John Cusack est un écrivain assez con au premier abord. Il est spécialisé dans les bouquins un peu naze de Top 10 des X les plus hantés. C'est pas un écrivain à grand succès non plus mais suffisamment vendu pour en vivre tranquillement.

Il croit pas du tout aux esprits/fantômes et compagnie même s'il écrit sur le sujet. Ce n'est qu'un job pour lui et du coup il va aller dans une énième “chambre hantée”. Le mec est loin d'être sympa avec les autres toussa globalement. Mais dans la chambre il va vivre un enfer psychologique à base de malaise, de désespoirs et d'hallucinations plus ou moins dangeureuses.

On en apprend un peu plus sur lui et sa relation avec sa femme. Bref l'histoire est assez simple mais bonne.

L'ambiance du début est bien classe et d'ailleurs l'hôtel est vraiment joli et Samuel L Jackson est parfait dans le rôle. John Cusack est très bon aussi dans le rôle du mec pôli mais pas gentil.

Le film est sympa car il fait flipper sans avoir recours ni au jump-scare ni au gore ni à des monstres grotesques. Et le ptit truc à la toute fin est sympatoche.

Bref le film est vraiment très agréable à voir.

The Mist

Troisième adaptation d'un récit de Stephen King par Franck Darabont qui a pour l'instant réalisé un sans-faute. Et je dis bien pour l'instant.

On retrouve des acteurs de ses précédents films d'ailleurs mais ce coup-ci on est dans un registre bien différent. On est ici dans un film bien plus horrifique et surnaturel.

J'aime beaucoup l'histoire, c'est basique mais efficace : une brume étrange tombe sur un bled du Maine (le seul indice que j'ai perçu c'est le titre du journal local le Castle Rock Times). C'est une bonne grosse brume ultra épaisse empêchant de voir à 10 mètres. Et apparemment il y a des choses dedans qui ne sont pas très amicales. Nos personnages se sont réfugiés dans la supérette du coin.

J'adore les films où les personnages sont coincés dans un lieu et tentent de survivre. C'est assez paradoxal parce-qu’à chaque fois je suis frustré et énervé des prises de décision des personnages. Ils font toujours les trucs qu'il faut pas faire. Mais j'aime bien quand même ces films (ouai même l'armée des morts de Zack Snyder).

Et là on a le droit à tout un lot de décision hautement contestable mais bon j'imagine que sans ça le film perdrait de l'intéret.

  • Les personnages qui veulent pas croire qu'il y a des trucs pas nets malgré les litrons de sang et les personnages manquants.
  • Les mecs blessés dans leur masculinité (c'est it texto, bon point) qui veulent faire le truc débile.
  • Les personnages religieux (ho god je les déteste).
  • “Allons dehors chercher des médicaments pour soigner 1 pauvre gars qui va claquer et qui demande à être achevé !”
  • “Hey mais c'est la faute des militaires, on devrait s'en prendre au pauvre troufion de base qui est au courant de rien !”

Bref, au moins ça donne des “rebondissements” et on a pas vraiment le temps de s'ennuyer. La pression ne redescend à peu près jamais, pas de moment de détente ou d'égarement.

Les acteurs sont pour beaucoup pas très très connu et tant mieux, c'est cool de voir des têtes moins connues (bon il y a quand même Raymond Holt de Brooklyn 99 qui a un personnage intrigant mais malheureusement casse-couille). Par contre, certains de ces acteurs sont un poil limite niveau jeu et sont bien stéréotypés. C'était le film pour orienter Toby Jones vers les films d'action (visiblement ça n'a pas pris).

Au début j'ai voulu cracher sur les effets spéciaux mais au final ils sont vraiment pas si dégueux. Leur intégration est plutôt convaincante sur certains plans où ils interagissent avec les décors et tout. Par contre le design des monstres est globalement basique. Ils sont restés très sages je trouve en ce cantonnant à faire de gros insectes. Ils auraient pu faire des créatures bien plus fofolles et dégueulasses. Après j'imagine que le budget du film étant assez serrés, ils ont fait déjà quelque chose de fort bonne facture et qu'il aurait été impossible de faire plus de folie.

Là, où par contre ça déconne, c'est au niveau de la mise en scène. Je comprends pas trop le délire. Les caméras sont constamment mobiles. Ça fait des ptits zooms, ça bouge même pour une scène de dialogues anodines. Je me demande s'il n'y avait pas volonté de s'approcher du found footage. Il y a même un moment où ça se castagne dans l'épicerie où on se croirait presque en vue à la première personne avec les mains s'agrippant au premier plan. Ça aurait été probablement difficile à justifier scénaristiquement mais ça aurait pu se faire à la Rec (sorti la même année) ou Cloverfield (sorti un an après). Ils s'en sont approchés mais ne l'ont pas fait et du coup ça donne une drôle d'impression.

Bref, on a un film avec beaucoup de bons côtés mais certains côtés un peu repoussant qui en rebuteront pas mal. Personnellement j'ai bien aimé et j'en avais de bons souvenirs mais c'est vrai que la façon de filmer fait cheapos/chiantos.

Secret Window

Un écrivain (ouai c'est une histoire de Stephen King donc c'est un écrivain le protagoniste) vivant reclus dans sa baraque de campagne telle une loque car en instance de divorce va être accusé de plagiat. Notre pauvre Johnny Depp va se faire harceler par John Turturro.

Jusque-là c'est assez classique mais c'est bien fait. Les acteurs sont bons, les décors jolis, les musiques heuuuu m'en rapelle pas, il y en a ? Bref, c'est un bon moment surtout grâce à son histoire prenante.

Notre cher écrivain sait être bien con vis-à-vis de sa femme mais on prend forcément parti de s'y accrocher. Après tout c'est le gentil, c'est pas lui qui vient proférer des menaces. Bref, je ne vous spoile pas plus l'histoire mais c'est clairement le point fort de ce film.

Il est par contre moins sympa en revisionnage, une fois la surprise passée.

Riding The Bullet

Rhaaalalala ce que c'est à la ramasse. C'est chiant, moche lent, mal joué. Les interactions entre les personnages sonnent tellement faux.

Rhaaa mais qui a fait ça ? Mick Garris ? Hmmm ça me parle vaguement, j'ai déjà vu ce nom.

Haaaaa ! C'est lui qui a commis Sleepwalkers. Et bha 12 ans de plus au compteur ne lui ont pas donné l'expérience nécessaire pour se rendre compte qu'il accouche d'un navet.

C'est mauvais mauvais mauvais en tout point. D'ailleurs je vous avoue que je suis en train de rédiger ce post alors que le film tourne encore ce que je ne fais pas habituellement. Mais sinon je vais m'endormir.

Le personnage principal ultra cliché d'artiste tourmenté incompris avec son ptit minois est gonflant. Et ce ne sont pas les effets spéciaux foireux qui nous montre sa conscience qui vont lui donner un ptit côté attachant. Non, non, ça tombe complètement à plat.

Bon dans les bons points, ça se passe dans le Maine, non loin de Castle Rock et on voit passer Christine. En un peu moins évident il y a l'infirmière nommée Annie Wilkes qui est la fan un peu dérangeante de Misery. Voilà, trois références, mais c'est pas ça qui fera passer la pillule.

Comment peut-on laisser passer ça lors des projections-tests ? Combien de fois dans le même film, ont-ils utilisés le coup du personnage perdu dans ses pensées réveillé par un véhicule qui klaxonne ? Le truc est déjà bien lourdingue mais en plus ils le ressortent plusieurs fois…

Dreamcatcher

Dis donc c'est une vraie montagne russe ce film. On découvre une bande de mec adultes potes, on a un chouilla de leur background et là on a le droit à un flashback : des préados, marchant le long d'une voix ferrée et là on se dit qu'on va avoir droit à un ptit film sympatoches sur les relations amicales toussa.

Puis, le flashback prend fin, on se rend compte que certains personnages seraient doués de pouvoir de télépathies ou truc du genre (on sait pas trop exactement qui et dans quelles mesures).

Puis ça part en mode aliens venus de l'espace qui se sont crashés dans la campagne américaine et l'armée qui vient nettoyer toussa.

C'est un sacré foutraque ce film. On sent que c'est plein de bonnes intentions, ça veut vraiment faire bien, avec pas mal de bonnes idées, des acteurs bons dans ce qu'ils font, des effets spéciaux loins d'être ridicules mais ça va trop vite un peu partout. C'est dommage, ça pourrait être vraiment bon.

Une partie de l'intrigue se déroule à Derry (là où se déroule également It, acceuillant Pennywise the dancing clown qui est une entité maléfique extraterrestre). Bref, c'est indéniablement du Stephen King, mais niveau scénar il aurait fallu élaguer un peu ou alors étaler ça sur deux films ?

Après c'est pas pourri du tout. Mais le mélange des genres est perturbant.

J'ai beaucoup aimé le concept des archives des souvenirs qui est le bâtiment où l'on range tous nos souvenirs. Le concept est fun mais en plus ils ont réussi à montrer un lieu vraiment très classieux.

C'est un film particulier qu'il faut voir avec un bon état d'esprit pour que ça passe.

Hearts In Atlantis

On retrouve pas mal de thêmes récurrent des histoires de Stephen King ici. C'est un écrivain, nostalgique ressassant de vieux souvenirs d'enfance des années 60 avec de légers dons de télépathies qui rencontre un ancien ayant manifestement aussi des dons et étant bienveillant avec lui. Toute ressemblance avec d'autres films est purement fortuite.

Bon après, c'est pas mauvais ni rien mais l'histoire part dans certaines directions sans jamais rien donner jusqu'au bout. Ça laisse sur la faim.

L'ambiance est sympa, les musiques assez effacées, les acteurs bons mais voilà. Ça manque d'un peu plus d'âme ou de matière. Il y a déjà eu d'autres films assez proches qui ont été plus généreux du coup ça tombe un peu à plat. Désolé Sir Anthony Hopkins mais il en faudra un peu plus.

The Lighthouse

On a là un film bien singulier. C'est un film en noir et blanc avec un format d'image presque carré et un son en mono.

C'est un film atmospherique, oppressant, calme mais éprouvant. Très psychologique et plein de références assez obscures pour moi.

C'est l'histoire de deux mecs qui doivent s'occuper de leur phare pendant un mois. Loin de tout, bravant des tempêtes, en autarcie.

Petit à petit l'alcool coule à flot, les relations ne se détendent pas et la folie guète. On ne sait pas exactement lequel deviendra fou en premier, lequel résistera le mieux. Lequel devra tuer l'autre.

Bref, c'est vraiment très sympa.

Dans les références complexes, c'est apparemment beaucoup basé sur des mythes grecques et ça permet de mieux expliquer le dénouement. SPOIL -» En gros Robert Pattinson est calqué sur Prométheus et Willem Dafoe sur Proteus. Proteus est un dieu de la mer et Prométhéus un titan ayant défié les dieux en leur volant le feu (la lumière du phare). Pour le punir, les dieux attachèrent Proemetheus a un rocher où chaque jour ils envoyèrent un aigle lui bouffer le foie (la scène finale des mouettes lui bouffant la panse).

La Ligne Verte

Un sacré tire-larme ce film. Mais qu'est-ce qu'il est bien.

Après avoir réalisé The Shawshank Redemption, Frank Darabont nous replonge une nouvelle fois en prison. Cependant ce coup-ci on est en 1935 pour suivre le bloc E ayant donné son surnom au film de part son sol couleur vert pomme. Il s'agit de la section de la prison où sont interné les taulards condamnés à mort attendant l'application de leur sentence.

Ouai c'est pas un film très joyeux au premier abord. L'ambiance s'annonce lourde, grave, tendue. Mais du haut de ses trois heures le film nous propose des situations nous permettant de nous évader grâce à des moments forts en émotions. Des interactions humaines indispensables pas toujours faciles voir carrément invivables.

Le film nous raconte comment un détenu colossal brise la monotonie d'un système bien huilé. John Coffey arrive donc dans sa cellule et force est de constater qu'il est différent. Et pas uniquement son physique hors norme mais plus sa façon d'être : dur à croire qu'un gaillard aussi massif et ayant tué et violé deux gamines puisse avoir peur du noir. D'ailleurs l'acteur n'est pas plus grand que les autres acteurs mais un vrai jeu de perspective et de placement de caméra participe à cette impression.

Du surnaturel pointe vite son nez et insuffle tout un nouvel éclairage sur le film. Notre cher détenu s'avère détenir des pouvoirs permettant de guérir et ré-insuffler de la vie dans les gens. Bon je ne vous spoile pas plus.

L'histoire reste assez légère sur le côté surnaturel et sa mise en scène est assez sobre. C'est le jeu des acteurs qui comble cette sobriété d'effets spéciaux. Ils sont tous bons : les gentils transpirent effectivement la gentillesse sans tomber dans le niais et les têtes à claques bha t'as envie de les tarter.

Le décor est superbe avec souvent de très beaux éclairages alors que bon c'est pas censé être bien ragoûtant. Niveau ambiance c'est vraiment bien foutu. L'image orangée est bien chaude, la musique d'époque sortant des vieux transistors, les vieilles bagnoles, on s'y croit à fond, on en serait presque nostalgique.

C'est par ce film que j'ai découvert Thomas Newman avec ses musiques sympatoches.

Dans ce film ça cause un peu de religion et aussi de racisme. Mais je trouve ça dommage que les personnages remettent en question leur rôle de bourreau uniquement via le prisme de la religion.

Bref, ce film est plus que recommandé.

Le fonctionnement d'un switch réseau

Le commutateur réseau ou switch est un appareil de base de tout réseau informatique. C'est la multiprise réseau qui permet de raccorder un peu tous vos appareils à votre réseau local pour avoir accès à l'Internet !

C'est un truc assez basique mais qui n'est au final pas très bien compris. Et au lieu de me répéter encore cinquante fois autant écrire ici une fois pour toute un chouilla de vulgarisation à son propos. Je vais pas aller très loin dans la technique et je me contenterai des switchs classiques qu'on peut s'acheter pour la maison.

Un port réseau

Un port réseau c'est … une prise réseau ethernet. C'est le trou avec une forme caractéristique (un rectangle avec une encoche en haut pour la languette des câbles (le truc qu'on casse et qui est censé empêcher le câble de se déconnecter).

Ce port réseau contient 8 contacts électriques pour faire passer le signal.

À l'époque fallait faire gaffe au type de câble mais maintenant les ports réseaux des différents appareils s'arrangent pour croiser/décroiser comme des grands.

Pour faire passer du téléphone on peut également utiliser ces prises et on a besoin uniquement de 2 contacts (du milieu) sur les 8 disponibles. Pour faire passer du réseau il en faut au minimum 4 sur les 8 mais pour atteindre la vitesse maximum, il faut bien entendu les 8.

(je précise car c'est une source de problème assez courant d'avoir soit la prise soit le câble un peu pété mais pas complètement.)

Le Hub

Avant l'arrivée des switchs il existait déjà les hubs qui sont l'ancêtre primitif des switchs. Ils ont le même but : raccorder différents équipements ensemble.

Le but est le même mais un hub est “con” et s'avère n'être qu'une multiprise. Tout ce qui rentre par l'un des ports est envoyé à tous les autres ports.

Ça fonctionne sauf qu'on s'est vite rendu compte que ce n'était clairement pas très efficace et que d'un point de vue confidentialité des échanges c'est pas top. N'importe qui branché sur un hub peut écouter tout ce qu'il se raconte sur le hub. Il est possible d'intercepter toutes les communications sans équipement particulier.

Le switch

Face à ces problèmes et les avancées technologiques aidant (les puces étant moins chères surtout), on a ajouté de l'intelligence dans les hubs pour les transformer en switch.

Le switch comprend le langage utilisé par les machines qui lui sont raccordé. Et avec ce qu'il comprend il se débrouille pour n'envoyer les informations qu'aux ports concernés.

Imaginons un cas simple :

  • un switch
  • un ordinateur A
  • un ordinateur B
  • un ordinateur C

Lorsque A discute avec B, l'ordinateur C ne recevra pas la conversation entre A et B.

Comment il sait ?

Le switch possède donc un petit processeur et surtout un peu de mémoire. Lorsqu'un ordinateur est branché sur un port du switch, l'ordinateur annonce qu'il possède telle adresse MAC.

Le switch consigne l'information que sur le port X se trouve l'adresse MAC Y. Il met tout ça dans un tableau qu'il consultera à chaque fois pour savoir à quel port envoyer telle information.

Bon ça paraît simple et vite vu mais il faut garder à l'esprit que sur un port d'un switch, vous pouvez brancher tout et n'importe quoi. Vous pouvez brancher un autre switch. Ça veut donc dire que sur un port, vous n'allez non pas avoir 1 adresse MAC mais tout un tas d'adresses MAC correspondant à chacune des machines présentes sur le second switch. Et vous pouvez en enchaîner plusieurs comme ça.

Une des caractèristiques technique d'un switch est donc la taille de sa mémoire lui permettant de connaitre plus ou moins d'adresse MAC.

Mais que se passe-t-il quand sa mémoire est saturé ? Et bhé c'est moche à dire mais ne sachant plus trop quoi faire, il peut avoir un comportement aléatoire. Certains switchs vont carrément se planter (très mauvais switch, ceux-là faut les éviter). D'autres vont se comporter comme des hubs avec des performances pas mal dégradées (symptôme repérable).

Ce second comportement est d'ailleurs une attaque assez classique d'un réseau : sur un port on sature la mémoire du switch en envoyant plein d'adresses MAC fictives. Une fois la mémoire saturée, le switch se comporte en hub et l'attaquant est désormais à même de capturer le trafic passant sur tout le switch (interception d'appels SIP, capture de trafic web, récolte d'identifiant telnet…).

Le cas des boucles

Si vous êtes un peu farfouilleur, vous vous demandez ce qu'il se passe quand on fait une boucle :

Vous branchez le switch A sur le switch B et un second câble qui relie le switch B au switch A. Vous avez créé une boucle. Du coup sur les ports en question vous avez les adresses MAC qui vont se répliquer d'un switch à l'autre à l'infini. BOUM.

Les switchs ont horreur de çà et là aussi c'est la loterie. Certains switchs vont tenter de fonctionner tant bien que mal, mais vous aurez des performances d'un autre temps. Ça deviendra inutilisable.

D'autres switchs cesseront de fonctionner mais certains sont suffisamment malin pour détecter ce genre de connerie et ils prendront la décision de désactiver l'un des deux ports de la boucle.

Ça paraît con mais c'est une cause trèèèès fréquente de panne.

Quand vous voyez toutes les loupiotes du switch clignoter de façon assez synchrone c'est louche et il va falloir trouver la boucle. Ça peut paraître con mais quand vous êtes sur un réseau avec une quinzaine de switchs dans tous les sens c'est beaucoup moins drôle à dénicher.

Performances d'un switch

L'argument premier d'un switch est son nombre de ports. C'est vrai, on cherche souvent à raccorder tous ses appareils et le reste importe peu et pourtant il y a quelques considérations à avoir.

Il faut aussi regarder les vitesses qu'il permet d'atteindre. Il y a des switchs (anciens certes mais encore à la vente) qui sont limités à 100Mbps. C'est désormais pas mal obsolète, d'autant plus que les connexions fibrées sont désormais pas mal démocratisées et qu'elles seraient bridées par un tel switch. Méfiez-vous des grandes surfaces qui vendent encore ce genre de truc alors que pour moins cher vous trouverez bien mieux.

On trouve donc des switchs plus rapide jusqu'à même 10Gbps (je parle pas du matos pro qui monte plus haut sur des technos en fibre optique) même si c'est encore un peu tôt pour de tels débits. Méfiez-vous tout de même, quand on donne ces vitesses la, c'est la vitesse individuelle d'un port. Il faut bien voir que si tous les ports du switchs sont sollicités à fond en même temps, la vitesse sera bien moindre. Sur la fiche technique on trouve (assez rarement) la vitesse cumulée totale que le switch est à même de soutenir.

Si j'insiste un peu sur ce point, c'est que sur des ptits switchs bas de gamme, les performances réelles sont loin des théoriques. Si vous investissez dans un switch, vous le garderez très probablement de longues années et donc grapiller quelques menus €uros n'est pas forcément très judicieux.

Conseil d'achat ?

Bof. Mais bon j'aime bien les ptit netgear GS108E, c'est du basique mais très fiable. Vous vous en tirerez pour une cinquantaine d'€uros pour du 8 ports.

J'en ai trois dont un qui tourne depuis 8 ans.

En quoi les switchs pro sont différents ?

Ils font beaucoup plus que simplement switcher.

  • Certains sont de véritables routeurs
  • Certains font un peu de pare-feu.
  • Ils peuvent avoir plein de fonctionnalités de switchs supplémentaire (les VLAN, la QoS…) permettant d'avoir de meilleures performances ou surtout plus de sécurité en segmentant le réseau en différents réseaux plus petits et plus hermétiques.
  • Ils peuvent faire des statistiques.
  • Ils peuvent être configurés à distance et monitoré.
  • Ils peuvent transformer un port en Hub (pour du débug et plus si affinité).
  • Ils peuvent raccorder de la fibre ou atteindre des débits bien plus élevés.
  • Ils peuvent se raccorder les uns aux autres pour fonctionner comme un seul gros switch.
  • Ils peuvent alimenter électriquement les appareils qui y sont reliés (très pratique !).
  • Ils permettent de raccorder bien plus d'équipements

C'est bien entendu non exhaustif mais c'est juste pour vous donner quelques pistes.


Voilà pour ce ptit tour concernant les switchs. J'ai bien trop écrit switch aujourd'hui.

Interstellar

Ce film est magistral.

Sans dec, à chaque visionnage c'est une grosse baffe. Ce film est beau, l'histoire est top, tout un tas de sujets sont abordés, scientifiquement ça a de la gueule, une part de fantastique (sisi j'insiste) et la musique qui accompagne est nickel.

Franchement, je sais que je suis légèrement fanboy des films de Christopher Nolan mais celui-là est probablement mon préféré. C'est de la science-fiction vraiment haut de gamme qui sait rester sobre visuellement. On visite quelques planètes mais on est pas dans des trucs flashy exotiques au possible et tout. Il y a des voyages dans l'espace mais on traverse pas la galaxie d'un claquement de doigts sans aucune conséquence sans refaire le plein d'essence. Non, non, là c'est de la trèèès très bonne science-fiction où l'aspect scientifique a vraiment une grande place afin de servir la fiction.

Les acteurs sont bons et tout particulièrement le héros incarné par Matthew McConaughey qui pourtant avait un rôle plutôt archétypé et a sû donner une profondeur au personnage. Les autres acteurs sont bons aussi, hein. Il y a juste l'arrivée de Matt Damon qui fait un “Tiens il était pas plutôt sur Mars ?!” (sans dec il aura voyagé durant les années 2010, lui).

Même la situation de départ a de la gueule : la planète se meurt mais ça se fait pas dans une apocalypse horrible et soudaine. Non ici, c'est bien plus crédible, plus sournois, plus anxiogène et pernicieux. C'est bien plus … réaliste. L'environnement devient progressivement invivable et l'humanité se retrouve petit à petit sur une planète aride où la nourriture vient à manquer. C'est un détail tout con mais ça permet une meilleure immersion. C'est un futur plus que probable qui arrive très progressivement.

Et du coup ce futur a ses nouvelles règles : il n'y a plus d'armées, le système éducatif pousse la grande majorité des gamins à étudier l'agriculture pour aider la survie. C'est juste dommage qu'on ne nous le montre pas plus mais bon le film est déjà suffisamment long.

Visuellement ce film est très classieux. Même si les alternances de format d'image me fruste un peu, quand on est sur un plan 70mm on en prend vraiment plein les mirettes. Les effets spéciaux numériques sont vraiment très bien fait à tel point que j'ai du mal à les discerner. J'avoue ne même pas savoir si certains plans des vaisseaux spaciaux sont réalisés via des maquettes ou purement numériques. De jouer la sobrieté à ce point (certains disent froid mais je suis pas spécialement d'accord) me font penser que ce film vieillira très bien.

Les plans sur la Terre sont généralement assez fixes et c'est seulement quand le héros s'en va que la caméra commence à avoir plus de mouvements. On a même le droit à un plan où la caméra suit le vaisseau arrivant sur une planète avec des nuages. Déjà c'est sublime, mais en plus la caméra se déplace comme si elle était elle aussi sur un vaisseau/avion/drone ce qui donne un effet de réalisme de fou alors que bon… c'est très surement du numérique de partout. On a pas de vaisseaux interstellaires encore, non ?

Qu'est-ce qu'on voyage en plus dans ce film (bon vu le titre heureusement). Mais, par chance, ils nous épargnent les scènes vues et revues de la préparation du voyage. À peine le héros part de chez lui que sa fusée décolle. Le film fait ses trois heures mais nous épargne des passages longuets. D'ailleurs tout tourne autour du temps dans ce film. On a beau nous prévenir à l'avance que l'écoulement du temps est relatif mais quand on se le prend dans la gueule on est tout aussi choqué que les personnages. Et la musique d'ailleurs souligne aussi l'importance du temps.

Hans Zimmer a pondu une BO radicalement différente de ce qu'il nous a habitué. Ici, on est pas malmené par la musique qui se veut très … lointaine, distante, ambiante. C'est bien de l'orgue, non ? C'est rare cette tessiture dans les films…

Le seul point un peu plus négatif c'est l'incartade dans le fantastique vers la fin. J'ai du mal à y trouver une explication scientifique au tesseract du coup je ne peux m'empêcher d'y voir un deus ex machina pour raccorder l'histoire. J'ai donc du prendre un tout petit peu sur moi pour ne pas décrocher mais bon ce n'est qu'un tout petit effort qui en vaut la chandelle.

Bon franchement si vous l'avez pas vu, vous pouvez y aller les yeux et oreilles ouverts.

Ha j'ai failli oublier d'en parler, même les robots ont de la gueule. Pour une fois, ils ne sont pas humanoïdes et ont l'air pratiques. Leur système de multiples jambes et de changement de forme ça semble vraiment utile en plus d'être stable et praticable dans pleins d'environnement. Voilà voilà.

Apt Pupil

J'ai trouvé le film assez meh. Le postulat de base d'un gamin qui en un clin d'œil reconnais un nazis 50 ans plus tard me semble déjà farfelu. Qu'ensuite il parvienne à recueillir tout un tas de preuve et tout… pareil je n'arrive pas à le croire. Tout ça dans le but d'assouvir une curiosité malsaine. Mouai.

Non j'ai vraiment eu du mal à rentrer dedans. Et à vrai dire, il n'y a que vers la fin du film que j'ai trouvé que ça remontait la pente.

Je me suis un poil fait chier et en plus les personnages sont pas attachant. Surtout le gamin. C'est une pure pourriture du coup c'est impossible d'éprouver la moindre empathie pour lui. Pareil pour Sir Ian McKellen. Du coup pas de personnage à qui se rattacher, une histoire peu crédible.

Bon bha reste pas grand chose pour accrocher.

Bref, je connaissais pas ce film et je n'en attendais rien et j'en tire rien.

Après c'est fait correctement, c'est assez neutre niveau réal. C'est tout juste fonctionnel sans folie esthétique ni montage particulier et une musique globalement absente. Bref c'est un film meh.

Thinner

Ce film est assez peu connu. Et en fait ça on le comprends assez vite. C'est difficile de choisir entre le film fantastique et la comédie. Constamment on ne sait pas trop quoi penser de ce film.

Malgré son heure et demi on a le droit a des séquences pas trop mal puis à de la grosse boufonnerie. L'histoire en elle-même est pas trop mal mais la montée en tension est vraiment peu crédible.

On a l'impression de tomber sur un téléfilm pour enfant avec malgré tout un ptit twist final qu'on sent venir à des kilomètres.

Ce n'est pas un mauvais moment parceque le film ne s'étire pas trop en longueur. On est quand même pas bien loin du nanar. Le film ne semble pas trop se prendre au sérieux heureusement.

C'est d'ailleurs étrange cette mode de la seconde moitié des années 90 de faire des déguisement de personnes obèses.

Stephen King a le droit à son caméo en tant que Monsieur Bangor, sachant que Bangor est la ville où il vit. Le clin d'œil est peu subtil mais tant mieux :-D

Un petit film pas trop pourri mais pas terrible non plus.

Dolores Claiborne

Wow super découverte. Je n'avais jamais entendu parlé de ce film. Visiblement il est loin d'être populaire mais pourtant c'est un sacré film.

L'histoire est vraiment cool, les actrices sont ultra-crédibles. Sérieux Kathy Bates est une actrice qui déchire tout. Déjà dans Misery elle en jetait un max mais là, elle est encore plus mise en valeur dans ce film.

D'ailleurs je suis pas sûr que ce film passe le test de Bechdel inversé. Les femmes ont vraiment pris le contrôle du film et les mecs sont soient des raclures, soit des potiches qui n'ont qu'un rôle utilitaire archétypal.

Le film ne se déroule pas à Castle Rock, mais visiblement c'est pas très loin tout de même vu que la prison de Shawshank est mentionné dans le film et le journal local est le Daily Bangor. Ouai, on est en plein dans le Maine par contre qu'est-ce que c'est moche cette île de Little Tall Island. La météo n'y est vraiment pas clémente, c'est le genre d'endroit où il pourrait y avoir une sacrée tempête (enfin de ce que j'en dis).

On a un motif assez récurrent de Stephen King : le père alcoolique dégueulasse à tendance tripoteuse. On retrouvera un peu le même genre de personnage dans It notamment (le père de Bev).

The Mangler

Un petit film sans prétention très très typé années 90. On oscille entre le film fantastique, le film d'horreur, le film d'action et le bon gros nanar qui tâche et c'est tout ce qu'on en retiendra.

Sérieux, c'est vraiment mauvais. L'histoire est vraiment mauvaise, la musique insipide quand elle est là, le jeu des acteurs est à côté de la plaque, les lumières criardes dégueulasses, seule la machine a un minimum de gueule. Le méchant, mais tu le vois un quart de seconde, tu sais que c'est le méchant, on le croirait tout droit issu d'un dessin animé Disney.

J'ai rarement vu un truc aussi mal branlé. C'est qui le réalisateur ? Tobe Hooper ? Hein ? C'est qui lui ?

Ha bha il a quand même fait Massacre à la tronçonneuse et Poltergeist bien avant. Comment il a pu commettre ça.

C'est plein d’incohérence scénaristiques. Et puis les personnages sont pas crédibles non pas uniquement des acteurs mais aussi par … heuuu … ce qu'ils sont. Le personnage principal est inspecteur. Inspecteur certe, mais de quoi ?

Il y a eu un mort dans la lingerie, on l'appelle, il y va. Là c'est bon.

Bon je suis pas inspecteur moi, mais en arrivant sur place, je tenterai d'avoir l'air un minimum pro et je tenterai d'avoir l'air de mener un peu l'enquête en interrogeant les gens. Lui, bha il arrive, lance un regard vers une pauvre employée couverte de sang en plein choc. Et ça dure. Ça dure. Bha ça dure près de 25 secondes. Donc le mec reste passif dans sa bagnole pendant 25 secondes devant une pauvre femme traumatisée. Bon, on va dire qu'il est tourmenté, on découvre le personnage c'est pour qu'on sente qu'il est mystérieux.

Ensuite il rentre réellement dans la lingerie où a eu lieu l'accident. Il parte 10 secondes avec le contremaître qui lui explique qu'il est sous le choc après avoir vu le cadavre mutilé, qu'il veut pas le revoir.

Là, on a le droit à ses 5 secondes d'enquêtes où il remarque que la machine a peu de sécurité que c'est un gros truc en feraille avec des bords un peu saillants. On découvre le photographe déjà sur place. Le film se passe très probablement en 95 (vu le 4x4 de l'inspecteur ça colle) et le photographe affilié à la police prend des photos avec son engin à soufflet. Encore un détail pour te sortir du truc. Notre inspecteur se sent mal à la vue du cadavre qui n'est plus qu'une vieille bouillie immonde, c'est la fin de son … inspection. Il retourne dans sa bagnole et là, une témoin de l'accident l'intercepte avant qu'il ne s'échappe, elle est en pleure elle lui donne des cachets appartenant à la victime pour qu'il se sente mieux. Elle donne son nom. Et voilà.

Une intervention des plus… étrange. Et pendant ce temps les ambulanciers embarquent la victime réduite à l'état de Kouglof de viande dans leur ambulance. Ils vont en faire quoi ? L'amener à l'hôpital ? C'est pas plutôt à des nettoyeurs spécialisés de s'occuper de ça ?

Et puis le montage c'est vraiment n'importe quoi. Ils tentent d'insuffler du rythme là où il n'y en a pas besoin en intercalant des plans de deux scènes différentes qui ne sont pas liées l'une à l'autre. Ou alors ils coupent court à un moment qui mériterait plus d'attention tout ça pour nous gratifier d'un plan interminable complètement inutile.

Plus loin dans le film, notre inspecteur s'est trouvé un acolyte des plus atypiques mais passons. Il a besoin de trouver des indices et décident de retourner voir son pote le photographe de la police. Il s'y rend et par malchance au moment où ils rentrent il est en train de se faire embarquer sur un brancard nain (sisi je vous jure c'est le plus petit brancard jamais vu dans un film américain ! Ça doit vraiment pas être la joie d'être ambulancier dans cet univers dis donc.).

Le pauvre photographe fait une crise de … heu … d'on sait pas quoi avec des spasmes et tout. Sa fin est proche c'est indéniable. Puis il arrive à se controler pendant 30 secondes le temps de donner un conseil de merde et un indice des plus mystérieux. Et là les spasmes reprennent, il crache un demi-litre de sang sur la caméra (sisi je vous jure aussi, ça coule sur l'objectif). Notre héros avec les yeux exhorbités lance un “Ho shit” et les ambulanciers embarquent le cadavre sur le brancard nain. Le héros regarde deux secondes puis se barre chercher son indice dans le bureau du photographe.

Pas de tristesse, pas de petite larme, pas d'hésitation, rien. Son pote vient de mourir les ambulanciers en ont rien à secouer eux non-plus d'ailleurs.

Et ce qui suit c'est ? 20 secondes descente d'escalier, sans dialogue, sans rien.

Le pauvre photographe meurt et est remballé en dix secondes parcequ'il fallait libérer un peu de temps pour montrer les deux personnages en train de descendre des escaliers pendant vingt longues secondes.

Et puis encore une fois on sait pas ce qu'il fait cet inspecteur. Il est censé empêcher des meurtres et compagnie ?

Je sais pas moi, mais quand lundi, une employée meurt broyée dans une machine. Que mardi trois employées sont brulées au visage et emmenées à l'hôpital. Je pense que mercredi l'usine est fermée pour des ptits soucis de sécurité et que si c'est pas le cas, toi en qu'inspecteur tu fais tout pour cela.

Surtout quand tu vois que le patron c'est vieux avec une tête des plus diaboliques, avec un œil vitreux, une simili-trachéotomie, des gibolles en feraille et qui refuse constamment que tu ailles l'interroger alors qu'il y a un cadavre encore chaud au rez-de-chaussée de son usine.

Bon, je vous spoile encore un peu, mais la machine est possédée, elle a goûté au sang d'une vierge et il lui faut des sacrifices réguliers pour que … heuu bha je sais pas. Pour continuer de plier le linge ? Surement ça.

Bref, on arrive à la fin du film, le vieux patron méchant s'apprête à sacrifier une jeunette de 16ans (à qui on donnerait dix ans de plus, hein). Nos deux protagonistes arrivent, castagne castagne castagne. Le vieux se fait plier par la machine, c'est bien gore mais comme il a été caricaturalement immonde tout le long du film ça redonne le sourire. Et puis notre inspecteur est pas spécialement gêné par cette vision contrairement au début du film où il gerbe quand il voit le cadavre mais bon. S'en suit une scène d'exorcisme de la grosse machine. Mais un exorcisme bien ridicule : un personnage lit des trucs mystiques tirés d'un vieux bouquin avec une couverture en cuir tandis que l'inspecteur s'amuse à jeter un peu tout ce qu'il trouve dans une vielle sacoche tout aussi mystérieuse que le bouquin. Il jette une croix, de l'eau bénite, des trucs qu'on a pas le temps de voir. Puis il trouve une bible. Nos deux héros se retrouvent à gueuler des passages de leurs bouquins respectifs en prenant des poses de plus en plus ridicule. C'est une cacophonie insupportable, la machine tremble, fume, des éclairs des lumières jaillissent. Puis plus rien, la machine est morte !

L'inspecteur se reprend un petit cachet qu'on lui a donné en début de film. Et là l'acolyte en prend-un puis regarde ce que c'est. Et là j'ai pas compris il lance un “ I think we may be fucked !” mais je sais pas trop pourquoi. La machine explose de partout, c'est joli à voir. Mais en fait la machine prend vie et commence à devenir menaçante avec tous ses effets numériques dégueulasses. Ils s'enfuient, l'acolyte se fait rattraper et couper en deux.

Ils descendent dans les tréfonds de l'usine où il y a en fait un escalier qui semble être infini, c'est joli mais stop, quoi. Déjà la machine qui prend vie et se déplace c'était déjà over the top, mais là cet escalier il a de la gueule, vous êtes fier de votre décor mais c'est vraiment too much. Bon nos héros restants (ouai je vous ai pas dit mais il reste l'inspecteur et la vierge) sautent de l'escalier pour tomber dans un trou avec de la flotte (pfiouu quelle chance). Et là, bha la machine décide de mourir toute seule sans explication. C'est perturbant.

Et donc là c'est la fin du film, tout est bien qui fini bien. On a le droit aux scènes pour désamorcer le truc. Le héros retourne à l'usine pour offrir des fleurs à la vierge de 16 ans qui au final est devenue la nouvelle patrone de l'usine o___o. Ha et puis maintenant elle boîte avec ses cannes (comme le patron du début, wink-wink). Elle fait un signe de main qui ne pourrait pas sembler encore moins naturel. C'est forcé à un point que je me demande encore si ce n'est pas un animatronic avec un visage super bien fait.

Voilà, l'usine a été reprise par une gamine de 16 ans qui a participé à la mort de l'ancien patron sans que personne n'y voit grand-chose à redire.

D'ailleurs je sais pas si j'ai dormi sans m'en rendre compte ou quoi, mais ils font une fixette sur les doigts manquants dans le film. J'ai pas compris la signification et j'ai pas l'intention de le re-regarder pour comprendre mais clairement cette scène finale malaisante c'est une allusion à ça.

C'est fini, là, la musique au piano laisse la place discrètement à la musique du générique. Et bha en fait non. La musique du générique passe par-dessus la musique du film au piano, même ça c'est raté. Qu'est-ce que c'est que cet étron quand même !

Le seul truc bien fait du film ce sont les effets de gore. Tout le reste laisse à désirer.

Si vous voulez un bon nanar à mater entre amis, vous pouvez y aller. D'ailleurs il a eu le droit à deux suites qui n'ont plus grand-chose à voir si ce n'est le titre.

Récap 05 : Décembre 2019

Blog

Une petite astuce Hugo que j'ai mis en place suite à la lecture de cet article. Au lieu d'utiliser des partial pour le header, la sidebar et l'openring j'ai utilisé des partialCached. Ça évite de les regénérer à chaque fois puisqu'ils ne changent jamais. Étant donné que j'atteins désormais les 1500 pages, gagner un tout ptit chouilla de temps pour la génération d'une page permet de gagner beaucoup au final.

Je suis passé d'environ 1.5s à 0.6 secondes. Ça reste anecdotique mais étant donné que je génère assez souvent mon site (quand je rédige surtout) c'est toujours ça de gagn«. Une petite optimisation bien venue mais j'ai ptet quelques bugs à cause de ça…

En bref ce mois-ci : 7 articles, 22 commentaires, 10 visionnages, 553647 requêtes, 51215 visiteurs uniques pour 19.79 Go de trafic.

Films

Poursuite du marathon des adaptations de Stephen King.

Misery

Malgré des apparences trompeuses ce film est vraiment excellent. Pas de surnaturel mais un écrivain malmené par une infirmière incarnée de main de maître par Kathy Bates.

Rock ‘n Rolla

Du Guy Ritchie avec des gangsters à Londres. Excellent film qui cloture une non-trilogie J'adore ces histoires imbriquées, cette ambiance, le casting.

Sleepwalkers

Un bon navet des années 90 avec un scénar de Stephen King. C'est pas terrible, ça se prend trop au sérieux et en dehors des caméos il n'a pas vraiment d'intérêt ce film. Les effets spéciaux sont moins pourris que prévu mais c'est pas la joie.

The Dark Half

On se rattrape avec ce film somme toute moyen mais agréable. Un écrivain, du surnaturel, de la vengeance, une voiture noire. George Romero ne s'est pas trop foulé pour faire le strict minimum pour une histoire à Castle Rock se basant un peu sur la vie de Stephen King.

Needful Things

Une production Castle Rock Entertainment qui se déroule à Castle Rock avec le shériff Alan Pangborn. L'histoire est un classique du fantastique et est réalisé sans surprise. C'est bien mais pas top, une version longue existe d'ailleurs.

Joker

Le film qui aura probablement le plus surpris de 2019. En s'éloignant du genre du film de super-héros, on a ici une des meilleures inteprêtations du némésis de Batman. Puissant, malaisant, superbe c'est une vraie réussite mais pas non plus le film du siècle.

Ad Astra

Superbe film de science-fiction réaliste dans la veine du précédent film du réalisateur. Le voyage y est bien plus important que la destination ici. C'est ici très calme et posé (comme le héros du film) mais prenant.

Dark City

Un film assez peu connu de 1998. Il a tout d'un film culte sauf la popularité. Grosse ambiance, bonne histoire, bel esthétique, tout ce qu'il faut.

The Irishman

Le dernier film de Scorscese avec tous les habitués du film de gangsters américains. C'est bien et tout mais ça souffre de la comparaison avec les anciens films de Scorcese. Un bon vieux Casino ou Goodfellas remplit mieux le contrat et ça me fait un pincement au cœur de voir tous ses acteurs vieillissants.

The Shawshank Redemption

Un de mes films favoris. Tout est bien : histoire, acteurs, décor, musique… C'est le tout meilleur film selon IMDB, je n'irai pas jusque-là, mais il est effectivement un chef d'œuvre.

Séries

Watchmen

Wow. Déjà le film avait une certaine aura. Je n'ai jamais lu l'œuvre d'origine mais c'est sacrément intrigant. C'est un univers qui a l'air particulièrement dense dans un univers alternatif sombre mais très plausible politiquement avec à peine quelques éléments de science-fiction.

La série ne comporte que 9 épisodes et pourtant on en vit des trucs. Ça parle beaucoup de racisme/suprémacisme blanc mais tout un tas de sujets annexes se greffent autour.

Si vous ne connaissez pas l'univers, c'est dans un présent alternatif où la guerre froide n'était plus si froide que ça. Les tensions sont montées très haut. Plusieurs générations de super-héros sans pouvoir ont émergés pour combattre le crime à petite échelle. Certains héros étaient particuliers tout de même, dont un avec une super intelligence et un autre qui, suite à une expérience qui a mal tournée, s'est retrouvée omnipotent tel un dieu.

Bref, il y a globalement assez peu de surnaturel et peu de castagne. Visuellement c'est vraiment très beau. Les musiques sont agréables mais pas trop présentes.

Tiens d'ailleurs il n'y a pas de générique, un ptit “Previously…”, le logo HBO et hop ça démarre. Pourquoi s'embarasser avec un générique ? C'est un poil dommage du coup de ne pas avoir un thème musical propre à la série mais bon.

Je pense qu'on a affaire à une très grosse série HBO qui peu largement titiller Games of Throne ou Westworld. Est-ce que ce sera un oneshot d'une saison ou y aura-t-il des suites ?

Jeux

Team Fortress 2

Je me suis remis un peu à Team Fortress 2 en ce moment. Sur le mode de jeu casual avec le bas peuple. C'est la loterie, autant il y a des serveurs avec une bonne ambiance où ça joue pas trop mal mais c'est assez rare. Autant il y a des serveurs avec cheaters, des coéquipiers qui n'ont pas remarqué qu'il fallait jouer en équipe… C'est dommage parceque du coup ça devient vite chiant à jouer.

Portal

Tant qu'à me remettre à TF2, autant aller faire un ptit tour sur Portal premier du nom. J'avais oublié à quel point il était court. Sans rusher je l'ai fini en une heure et quart.

C'est sacrément court. Comparé à sa suite il fait un peu pâle figure.

Portal 2

Bon et tant qu'à faire Portal 1 autant enchaîner avec Portal 2. C'est beaucoup plus long et on sent que c'est passé d'un ptit truc à un jeu de grande envergure. La mise en scène, les ~dia~monologues sont vraiment hilarants.

C'est de loin le jeu le plus drôle. Le level design d'apparence assez simple est sacrément travaillé avec un gros travail d'éclairage pour que l'on ne soit jamais perdu.

Les puzzles sont globalement très simples mais tout le monde sait qu'on peut compter sur les niveaux de la communauté pour créer des puzzles ultra-alambiqués.

Bref graphiquement il reste encore très sympa malgré son ptit âge.

Fez

Ce jeu indé de 2012 est une perle qui n'a pas pris une ride. C'est un sacré jeu qui de prime abord semble banal mais qui s'avère être tourneboulant si l'on s'y penche vraiment.

Musique

J'ai eu le droit à un concert de Archspire du coup je ne peux que vous recommander d'en écouter encore !

Et pour changer un peu de registre un bon vieux Scatterheart de Björk.

Nuxeries

Alpine Linux est passée en version 3.11 . Plein de machines à mettre à jour \o/. Bon ça se passe sans soucis même pour Postgres qui passe de la 11 à la 12 et qui a donc un processus de migration un peu particulier (faire un backup, couper, mettre à jour, restaurer le backup).

The Shawshank Redemption

Voilà un film que j'adore tout particulièrement. L'histoire prend place à la fin des années 40 dans la prison de Shawshank. Et comme d'hab c'est pas toujours bien clair mais il semblerait que c'est en fait une prison proche (ptet même sur la commune) de Castle Rock.

C'est le premier long métrage de Frank Darabont qui ne fera pas une carrière très pleine mais qui nous honorera de 3 adaptations de Stephen King.

Ici le casting n'est pas ultra-fameux en dehors de Morgan Freeman mais il s'est averé être un très bon choix. Les acteurs sont tous bons dans leur rôle et crédibles.

Tout le film est vraiment super. L'histoire est géniale et on sait jamais trop à quoi s'attendre jusqu'au dénouement. Le rythme est posé avec pas mal de ptites intrigues, de ptites anecdote, on se sent bien dans un Stephen King pour cet aspect. Certains pourraient trouvés ça limite pépère mais ça me convient parfaitement : on est pas face à un film d'action.

Les musiques accompagnent bien le truc en étant bien discrète sans trop d'envolées. Les pointes d'humour qui parsème le film sont toujours bienvenues et l'esprit d'une bande de pote malgré les conditions sont toujours sympatoches. On en oublie les horreurs que subissent nos taulards.

Le décor appuie bien le propos avec les cellules et la cours grisâtre déprimante qui contraste avec la partie administrative plus chaude ou bien la bibliothêque cosie avec ses meubles et tout.

Le personnage Andy Dufresne est au premier abord assez difficile à comprendre avec sa froideur en donnant l'impression d'être extérieur à ce qui lui arrive. Il ne montre aucun ressenti malgré ce qu'on lui impose. Et c'est au final quand il est de nouveau libre qu'on lui découvre des expressions plus sincères. Les calculs et manipulations sont terminées.

Ce film est une ôde à l'espoir et à la camaraderie. L'entraide est ce qui les fait tenir.

Pas de fantastique, mais une putain d'histoire. Les 2h20 passent trop vite.

The Irishman

Je viens tout juste de finir le film (le générique tourne en fond) et en fait je sais pas. Autant j'ai vraiment adoré l'histoire et tout mais de savoir que Scorcese a 76 ans, que tous les acteurs du film ont la même tranche d'âge et de voir que la fin du film ils sont tous mort… Ça sonne trop comme un film d'adieu.

Je n'ai pas été assidu dans la filmographie de Scorcese mais les quelques films que j'ai maté m'ont pas mal marqué (sauf Hugo Cabret). Et ici, j'ai l'impression qu'il a voulu faire un bon gros film de gansters comme il en a déjà fait avec tout un tas de trogne bien connu.

Le casting est sent le formol et la naphataline. On nous ressort dans un même métrage Robert De Niro, Joe Pesci, Harvey Kettel qui cumule à eux trois presque deux cents ans de cinoche !

Visuellement c'est propre et les effets de rajeunissement m'ont paru assez subtil surtout sur De Niro qui est un coup jeune un coup vieux un coup très vieux. On ne sait plus à quoi il ressemble en vrai.

Le film est long afin de nous montrer l'ascencion de son héros. Mais contrairement à Goodfellas, ici il n'y a pas vraiment de redescente brutale. La perte de sa famille n'est pas brutale sauf dans les derniers plans qui veulent tirer une larme. Pire encore, la vraie descente n'est autre que la déchéance de la vieillesse.

Bref, la morale de l'histoire n'est pas glorieuse. “Quand un truand te dit de prendre soin de ta famille bha… heu… tu auras beau le faire, fallait pas être truand.” …

Le message du film est distillé subtilement tout au long du film : dès que l'on rencontre un nouveau malfrat, on nous montre son nom et la date et la cause de la mort. Comme quoi “si vous faites ça, bha voilà ce qui vous arrivera”.

Bref, c'est un film cool mais loin d'être un chef-d'œuvre. Casino est largement meilleur.

Dark City

Un sacré film assez méconnu et pourtant avec une palanquée d'atout. Comment se fait-il qu'il ne soit pas plus connu et reconnu ? Il a tout pour être un film culte : une esthétique entre La Cité Des Enfants Perdus et The Crow, des antagonistes entre les cénobites de Hellraiser et le juge DeMort de Qui Veut La Peau De Roger Rabbit, des effets à la Inception et une histoire qui pourrait sortir de The Twilight Zone.

Bon il est vrai que les effets numériques commencent à accuser leur âge mais beaucoup d'effets sont pratiques ce qui donne un rendu tout de même assez organique. Je pense que pas mal de plan ont été fait à partir de maquettes et d'incrustations. C'est pas mal du tout.

Ce film a quand même une sacrée ambiance en grande partie grâce à son esthétique. Il est très difficile de déterminer à quelle époque ça se passe (ce qui est logique) mais ville crasseuse de nuit ça a toujours un côté oppressant mais attirant. Le film mérite très bien son titre.

Par contre Kiefer Sutherland est vraiment pas un acteur convaincant ici. Les antagonistes sont bien flippants à souhait.

L'intrigue est très vite dévoilée alors que faire durer le mystère aurait pu être bien sympa, c'est un poil dommage. Du coup on devine assez vite les enjeux et comment cela va se finir.

Si vous ne le connaissez pas, faites-vous plaisir et laissez vous happer.

Ad Astra

James Gray est un réalisateur mal aimé et qui peine à produire des succès commerciaux. Et pourtant il arrive à sortir des films avec de gros budgets et des gros castings. Et Ad Astra est l'un de ses plus gros succès bien qu'il n'ait pas réussi à ramener tant d'argent que ça.

On a le droit à voyages interplanétaire des plus somptueux. Les images sont vraiment de toute beauté malgré une tentative de poursuite du réalisme. Ça ne tente pas de nous en mettre pleins la gueule avec des effets spéciaux qui pètent mais de la sobriété et des plans assez lents. C'est beau, très beau.

Et puis c'est de la science fiction vraiment pas tape-à-l'œil, elle non plus. C'est à peu près réaliste et pourrait être crédible d'ici quelques années.

La destination est bien moins important que le voyage en lui-même. C'est dans la même veine que son film précédent The Lost City of Z. On est d'ailleurs pas loin d'un Apocalypse Now j'ai trouvé. Et d'ailleurs tout comme dans Apocalypse Now, je suis un poil déçu quand on arrive à l'objectif.

En 2019 Brad Pitt se sera montré dans de très grand films…

Je me rend compte que j'aime de plus en plus la Science Fiction. Il faudrait que je me penche un peu plus vers ce genre.

Fez

J'arrive bien après la bataille, je sais. Mais même 7 ans après sa sortie ce jeu est toujours excellent.

On pourrait croire qu'il s'agit d'un jeu de plateforme mais le challenge n'y est pas. Non ici, vous vous contenterez de sauter certe, mais vous ne pourrez pas mourir, si vous ratez un saut vous êtes immédiatement replacé où vous étiez. Ici point de chronomètre, point d'ennemi ni de score.

Non, ici il y a une part d'exploration dans des niveaux cousus et un peu de réflexion sur comment aller d'un point A à un point B et c'est tout. Il faut contempler des niveaux en pixel art de bon goût.

Notre personnage se nomme Gomez et vient d'hériter d'un Fez qui a fait planté le jeu. Hein !?

Oui oui, le jeu a planté quand notre héros s'est retrouvé doté de la faculté de faire tourner la caméra autour de lui alors que le monde était en 2D ! Donc une fois le jeu redémarré, notre héros s'avère être dans un univers en 3D ce qui lui ouvre de nouvelles perspectives (huhu).

Le petit Gomez découvre que le monde n'est pas constitué de carré mais de cubes. Et sa quête va d'ailleurs consister à retrouver un certain nombre de cubes pour éviter que l'univers ne s'affaisse sur lui-même.

Vous allez donc vous aventurer hors de votre mignon petit village 2D pour aller chopper tous ces fragments de cube afin de sauver le monde. Le concept du jeu est assez simple mais laisse toujours une agréable sensation de surprise quand on s'y balade. Quand vous pensez ne plus pouvoir progresser dans une direction car il n'y a plus de plateformes, il va falloir faire tourner la caméra dans un sens où dans l'autre pour révéler la présence de plateformes qui se retrouvaient dans le fond.

Bref le concept est assez dur à expliquer, le plus simple est de regarder cette vidéo présente sur la page wikipedia du jeu qui vous montre le début du jeu :

Joker

Probablement l'un des films le plus marquant de 2019. La bande annonce voulait jeter le doute (et ça a fonctionné) : Est-ce un drame français comme on sait si bien les faire ? Et bien non, c'est un drame mais américain sur un personnage fictif mais tellement bien foutu qu'on croirait un vrai biopic sincère et tout.

Les adaptations de DC Comics c'est toujours la roulette russe. Il y a beaucoup de daubes mais il y a quand même des fulgurence (merci Nolan).

La dernière interprêtation du Joker (par Jared Leto) était clairement risible de cliché et de maladroitesse. Le personnage était vendu comme “Regardez je suis fou. Je suis fou parceque je dis que je suis fou ! Hey mais regardez je suis fou !” Merci c'est bon, c'est gentil mais non c'est nul.

Joaquin Phoenix a donc eu la lourde tâche de nous faire oublier ce Joker pathétique pour donner une nouvelle vie à un personnage iconique en quête de … Ha bha merde alors il est en quête de quoi dans ce film ? De reconnaissance ? Non pas vraiment même si ça s'y apparente. En quête d'identité ? Non du tout. Il veut juste exister et ne plus être malmené dans sa vie.

Bref, le film est à des kilomètres des autres productions estampillées “Super Héros”. D'ailleurs c'est bien simple il n'y a pas de super pouvoir, pas de justicier et tout le tralala. Le film est puissant et s'amuse à mettre le spectateur mal à l'aise.

Le mal-être et le malaise global est d'ailleurs ce qui resort constamment du film. Mais c'est ce qui est voulu et attendu. Et là le film remplit à 100% son contrat.

D'ailleurs niveau réal c'est super propre avec des images superbes, des environnements crapsek et glauques à souhait. La galerie de personnages que l'on rencontre est parfaitement dans le ton. Et le film joue habilement à ne pas rendre les personnages blanc ou noir. Ils ont tous des nuances plus ou moins subtiles.

La musique est un peu discrète mais sait se montrer plus présente par moment. Bref, c'est un film qui plaira même aux allergiques des super-héros. Ne vous attendez pas à croiser Batman ni à de la castagne à tous les recoins de bobines.

Needful Things

Nous revoilà à Castle Rock pour une histoire fantastique avec notre cher Shériff Alan Pangborn. Aujourd'hui dans notre paisible (keuf keuf) ville une nouvelle boutique ouvre ! Pas de bol il ne s'y vend que des objets mystérieux affectant leurs acheteurs.

L'histoire est assez connue (même reprise et moquée dans un épisode de Rick & Morty) mais efficace. La réalisation est simple sans vraiment d'artifice et à peine un soupçon d'effets spéciaux numériques pas terribles.

Ed Harris comme à son habitude joue bien et même globalement tous les acteurs s'en sortent. Visuellement ça date bien des années 90 mais ça n'a pas trop mal vieilli. Le film dure deux heures mais une version d'une heure supplémentaire existe (et ça m'intrigue !). Cette version longue est encore plus proche du bouquin en éludant moins d'intrigues.

Ça se laisse voir.

IRC se meurt

Je suis Team IRC depuis très longtemps.

Ce protocole mais surtout son environnement me râvie. C'est simple, sans artifice, c'est stable, ça n'évolue que très peu et lentement. C'est rassurant, sans surprise, pas besoin de s'inscrire, l'ensemble de connaissances nécessaires est très restreint. C'est un peu à l'opposé des alternatives modernes et même des réseaux sociaux sur le web.

Ici, quand tu veux discuter, tu t'installes un client irc, tu te connectes à un serveur et tu rejoins un salon de discussion et c'est bon. Pas de création de compte, pas de profil à remplir, pas de mail à donner, rien. Et c'est brut, pas de bouton, de vibration, de notification juste un peu de texte et hop. Ça bouffe pas de CPU, ni de RAM, ni de réseau.

Par contre c'est vrai que si on est pas connecté on ne voit pas ce qui se raconte mais tant mieux, non ? Et puis quand bien même, il existe des moyens d'être connecté constamment.

Bref, malgré tous ses avantages (tout du moins à mes yeux), force est de constater que la communauté s'étiole petit à petit. Récemment Mozilla vient d'annoncer qu'ils migrent d'IRC vers Matrix. Ils étaient parmi la plus grosse communauté à héberger un réseau IRC non généraliste.

Freenode qui est le des plus gros réseaux IRC vient de se faire acquérir (indirectement) par PIA et du coup on ne sait pas trop ce qu'il adviendra du réseau. Bon je doute que Freenode disparaisse comme cela du jour au lendemain mais c'est tout de même peu rassurant.

Des chiffres

On en discutait un peu sur #weechat-fr et j'ai eu l'idée de faire quelques stats sur mes logs de différents salons irc sur différents réseaux. Voici le nombre de lignes par années :

salon 2014 2015 2016 2017 2018 2019
#fdn 206300 149873 129766 100459 71664 72635
#ffdn 139850 121075 89192 99414 83748 65050
#troll 42253 30534 21081 11940 21363 31939
#alacritty 23211 39571 61522
#alpine-linux 153916 146090 150625
#bepo 59545 24281 25212 30309
#debianfr 80119 142313 141069 137146 55766
#gentoofr 78229 61015 45535 49698 39227 30740
#qutebrowser 129711 151354 110156
#sway 29446 30329 78783 135948
#weboob 54310 39988 37583 32532 29830 17496
#weechat-fr 16957 14898 13437 15999 9586
#iloth 79535 52060 22864 18593 16402 10391
#online 235134 217374 140566 111832

On voit clairement que sauf exceptions, l'année 2019 marque une grosse perte de vitesse dans des communautés un peu variées.

Pourquoi ?

Beaucoup de nouveaux compétiteurs ces dernières années. Slack est arrivé et a bouffé beaucoup de part de marché auprès des entités corporates.

Discord a fait à peu près pareil auprès de la communauté des gamers.

XMPP a … heu … non. C'est mort né, ça n'a jamais vraiment décollé (je sens venir des commentaires).

Matrix est le nouveau messi qui s'attèle à créer la plateforme ultime avec toutes les features, des bridges vers tous les autres réseaux. Bref le fourre-tout un peu bricolé mais qui malheureusement est encore un peu jeune. Tellement jeune, que je ne saurai dire si ses défauts actuels vont s'estomper ou s'ils vont s'affirmer. C'est lourdingue, c'est décentralisé en théorie mais très centralisé en pratique ce qui induit des soucis techniques de performances mais également de résilience et de concentration.

Matrix est un peu à l'opposé d'IRC. En voulant tout faire, on se retrouve avec des clients lourdingues mais pire encore, des serveurs ultra-lourdingues. Derrière il y a une entreprise qui a commencé la définition de protocole et la création des premières implémentations et qui a mis un peu de temps à ouvrir le tout et on est toujours pas à l'abris d'un fork du protocole.

Toutes ces alternatives sont brillantes et tout, et l'écosystème de clients IRC a bien du mal à se moderniser. C'est vrai que déballer un hexchat en 2019 c'est pas reluisant, ni même un mIrc. Sans parler des clients irc en TUI comme irssi et weechat.

Ça manque de client tout joli avec les derniers frameworks à la mode, des icônes avec un style d'aujourd'hui, des réglages par défaut bien foutus, un ptit tuto au premier lancement, des serveurs préconfigurés. Avec ça on rajoute des fonctionnalités modernes pour l'envoi d'image/vidéo (en feintant en uploadant ça vers un service externe et en ne postant que l'url), l'affichage inline de différents documents (prévisu d'image/vidéos/sons/tweets/…). En normalisant la gestion des services dans le protocole (c'est déjà en cours de réflexion mais c'est pas prêt d'arriver) pour que la gestion de l'enregistrement de pseudo et de salon puisse avoir une interface graphique.

N'est-il pas trop tard ?

Je ne sais pas. Mais ce dont je suis sûr c'est qu’IRC sera toujours là quand les autres plateformes se seront pétées la gueule.

C'est vrai quoi. Google Chat est devenu Google Talk pour finalement se transformer en Google Hangout et est mort. MSN Messenger a changé quinze fois de nom et est mort. Jabber est devenu XMPP et vivotte toujours difficilement. ICQ ne recherche plus grand monde.

Bref, tous les protocoles proprios (ouai je sais xmpp ne l'est pas) ont connu une mort plus ou moins douloureuse à terme. Dès que la source de pognon se tarit le service est coupé et hop disparition, on fout une ptite obèle sur la page wikipedia correspondante et voilà.

De part sa simplicité mais aussi qu'il s'agit d'un protocole de l'Internet (il y a une RFC), IRC connaîtra des implémentations et des réseaux plus ou moins populaires pendant encore longtemps.

The Dark Half

Un film assez méconnu pas excellent mais pas pourri non plus. Il est pas mal typé années 90 mais il reste regardable quand même.

C'est une histoire bien Stephen Kingesque (normal) qui parle d'écrivain, de pseudonyme, de part sombre, de vengeance. Le titre est un gros spoiler.

Bon qui qui c'est qu'on retrouve dans ce film ? Dans le rôle principal on a le droit à Timothy Hutton qui a fait le père de famille dans The Haunting Of Hill House (super série sur Netflix) en vieux. Sa femme est jouée par la vraie femme de Ed Harris. D'ailleurs Ed Harris n'est pas dans ce film mais son personnage Alan Pangborn est bien dans ce film mais interprêté par l'acteur qui joue Yondu (mais si, la Mary Poppins punk bleue dans Les gardiens de la galaxie !). Tout est lié !

L'histoire se déroule encore une fois à Castle Rock et il est même mentionné Bangor qui elle n'est pas fictive mais la vraie ville où habite Stephen King. L'histoire se fonde réellement sur Stephen King. L'enfant qui veut devenir écrivain écrit une nouvelle intitulée Here Ther Be Tigers comme SK. L'écrivain combat son alcoolisme comme SK. L'écrivain dévoile qu'il a écrit sous pseudonyme comme Richard Bachman (c'est SK aussi).

L'histoire ne laisse pas trop de surprise avec un soupçon de paranormal. Visuellement c'est pas super beau (c'est du Romero quoi). Les plans sont utilitaires sans plus. Et les effets spéciaux numériques piquent un peu les yeux mais sont rares. Le maquillage de George Stark est suffisamment recouvrant que je n'ai pas reconnu l'acteur (j'ai cru que c'était quelqu'un d'autre).

Bref à voir au moins une fois.

Sleepwalkers

Attention ! */!\ Alerte au navet /!*

Voilà ce que je redoutais dans le marathon Stephen King. Après les années 80 qui ont vu l'apparition de quelques films avec pas mal de succès. Les années 90 ont senti le filon et on voit des films à petits budgets sans grande envergure avec des équipes de bras cassés.

Le casting est sans saveur, visuellement c'est moche (surtout les éclairages), le scénar est directement du Made in Stephen King et visiblement c'est pas un bon point. Ce visionnage est vraiment pas agréable.

Ça commence méga cheapos et à la moitié du film j'ai eu l'impression que ça allait partir en comédie/parodie et ça aurait pu relever le niveau mais c'est juste que ça devenait affligeant même en étant sérieux. La musique aussi par moment semblait vouloir remonter le niveau mais en fait non.

En plus d'être mauvais, le film se complait à nous montrer une mère et son fils faire l'amour à au moins deux reprises. Et ça sort un peu de nul part. C'est pas justifié, ça n'apporte rien. Franchement si c'est pas uniquement pour choquer je sais pas trop pourquoi ça a été mis là.

Par contre il y a quelques caméo (que j'ai pas tous reperé). Dans les ptits trucs à remarquer, ils apellent les flics de Castle Rock alors que l'action du film se passe dans l'Indiana qui est tout de même assez loin du Maine (où se trouve le “vrai Castle Rock”).

Ce film est super dispensable.

Rock'n Rolla

Guy Ritchie est un réalisateur qui m'impressionne beaucoup. Il a commencé sa carrière en sortant Arnaques Crimes & Botanique de nul part.

Il a direct enchainé en sortant Snatch. Pan une seconde claque encore plus massive grâce au succès du premier.

Il prend une ptite pause pour sortir une merde et un film pas mal mais en deça. Et là il nous sort Rock'n'Rolla.

Wow quel film mes amis ! Chaque visionnage est un régal.

La trame scénaristique est moins alambiquée que Snatch mais pas simpliste non plus. D'ailleurs si je devais choisir un préféré entre les deux j'aurai vraiment du mal. Les films de gangsters britains sont l'apanage de Ritchie et là il est bien énergique avec une dose d'humour finement assaisonnée : on est pas dans de l'humour MCU trop forcé. Là, ça peut être juste une petite remarque grinçante ou de la bonne gifle des familles (du genre à te décoller la rétine quand même, ce sont des gangsters après tout) ou une situation cocasse.

Le premier braquage est quand même smooth au possible. Et le second est tellement bien monté et mis en scène…

Visuellement il est dans la lignée de Revolver. Certains plans sont vraiment magnifiques grâce à des lumières bien foutues. Certaines scènes se passent dans de vieux troquets dégueulasses et pourtant c'est beau à l'image. L'étalonnage très présent fait des miracles. D'ailleurs chacun de ses films est identifiable rien qu'a sa couleur.

Le casting ramène du beau monde en plus. Mark Strong est toujours aussi classieux et Toby Kebbell fait une belle loque humaine. Mais aussi Tom Hardy… non ils sont tous bien dans leur role jvais pas tous les citer.

La musique est très présente (mention spéciale pour The Subways avec le montage puissant) mais en plus elle est bien. C'est de la zik toujours dans le ton et pas des trucs ultra connus. On sent que ça a été bien travaillé.

En fait j'ai du mal à comprendre que Snatch soit autant acclamé mais pas Rock'n'Rolla ! Globalement ces deux films sont très proches : une belle dose d'humour, super casting, même environnement, une sacrée gueule, une bonne BO et un Mc Guffin pour faire avancer l'histoire. C'est kif-kif bourricot. D'ailleurs Arnaques Crimes & Botanique est également dans le même panier. Ces 3 films sont très proches mais très bons. Si on en aime un, on devrait tous les aimer.

Voilà j'aimerai vraiment que ce film reçoive plus d'amour et que l'on ait enfin droit à sa suite le Real Rock'n'Rolla

Concert Archspire 08/12/2019

Dimanche 8 Décembre 2019 était un grand jour : un concert de Archspire a eu lieu à Paris. Archspire c'est mon groupe préféré du moment.

Technical Brutal Death

Archspire est un groupe de Technical Brutal Death Metal mais la formulation n'est pas bonne. C'est LE groupe de Technical Brutal Death Metal.

Pour vous situer, à la base on a le Death Metal qui est un genre musical dit extrème. C'est donc du métal où la batterie est très présente, les guitares sont nerveuses et très présentes aussi où le chant s'apparente à un mix de brâme de cerf et de rugissement de lion. Du Death Metal deux sous-genres ont ensuite émergés (plein d'autres mais qui ne nous intéresse pas ici) avec d'un côté le Technical Death Metal. Celui-là au premier abord est assez déroutant avec un rythme qui change très souvent dans un même morceau avec des cassures, des accélérations. Bref le batteur va redoubler d'imagination pour imposer un rythme sans cesse variable pour les pauvres guitaristes qui vont tenter des solos improbables. Le second sous-genre est le Brutal Death Metal, lui, est beaucoup moins surprenant avec moins de variation dans un même morceau mais toujours un rythme survolté.

Et donc tout naturellement on a le Technical Brutal Death Metal qui est un mix des deux : des rythmes très élevés et qui varient régulièrement. Et bien évidemment c'est très plaisant à écouter.

Archspire

Archspire est à mon sens le meilleur groupe du genre actuellement. Ils n'ont pondu que trois albums mais le groupe n'a que 10 ans.

Le premier nommé All Shall Align était très bon, surtout pour un premier album sorti de nul part. Mais c'est vrai que même s'il n'est pas bien vieux, certains morceaux sont pas terrible terrible et le groupe en renie certaines.

Le second est The Lucid Collective et là le groupe a clairement décollé. Et là franchement pas le temps de niaiser. Tous les morceaux sont bons : c'est puissant, violent, précis, net.

Et trois ans près ils sortent le troisième : Relentless Mutation. Bon bha là c'est un chef-d'œuvre. L'album précédent c'était l'échauffement, là c'est le perfect. Pas un morceau moyen/bof, non non ! Ils sont tous impeccables, pas un moins bon que les autres.

J'ai jamais eu ça ailleurs, d'habitude sur un album il y a toujours des pistes qu'on adore, d'autres qu'on aime puis celles qu'on écoute mais dont on peut se passer l'écoute. Et bha là, non. Les 7 morceaux me laissent pantois. C'est au point où habituellement je n'écoute que des morceaux en aléatoire mais là je me fous l'album en entier à chaque fois. Le seul reproche qu'on peut faire c'est qu'il ne dure qu'une demi-heure.

Bon ça sert à rien que j'écrive des pages et des pages parceque je n'ai que des éloges à faire à cet album, le mieux c'est que vous l'écoutiez (d'ailleurs merci Season Of Mist de l'avoir mis légalement à disposition de tous et merci de soutenir ce groupe). Admirez ces deux guitares qui jouent ensemble, se répondent, se complètent. Bavez devant le batteur qui oblitère sa caisse claire en alternant des deux bras, c'est beau. Même la basse participe (sisi je vous jure !) Et le chant lui aussi est techniquement impressionnant en changeant régulièrement de style et en suivant le rythme ahurissant des morceaux. D'ailleurs un ptit karaoké vous tente ?

Tech Trek Europe

Bref, pour finir l'année 2019, ces ptits canadiens se sont monté une tournée européenne avec trois autres groupes.

Stand vendant les tshirt des différents groupes conviés

Le passage obligé vers le merch pour trouver de beaux tshirts

Ils ont convié tout d'abord Inferi que je ne connaissais pas mais c'était sympa.

Inferi en train de jouer le premier morceau de la soirée

Inferi qui a dû réchauffer un peu la salle.

Ensuite on a eu le droit à Vulvodynia que je connaissais mais qui ne me secoue pas plus que ça. Bon j'ai eu qu'une photo un peu dégueulasse donc je vous épargne.

Et enfin ils ont convié Beneath The Massacre, un groupe tout charmant canadien eux aussi et qui font du tech death metal. Même si j'aime bien, ça me titille bien moins que Archspire. Leur prestation était quand même bien cool. Bon par contre j'étais pas trop bien placé et j'étais un poil fatigué avec quelques douleurs au dos.

Le groupe vu d'un peu loin dans la salle

Ouaip j'étais mal placé mais bon j'entendais bien tout de même !

C'est assez sympa de voir les membres des groupes déambuler dans la salle pour se détendre avant/après leur prestation. D'ailleurs il y avait la manman du batteur Spencer Prewett ce qui lui a permis d'éviter les mauvaises blagues habituelles que fait le chanteur sur chacun des membres du groupe.

Tobi Morelli tourné pour faire les derniers ajustements avant de jouer et Spencer Prewett se mettant en place

Là j'ai fait l'effort de bien mieux me placer :-D

Bon, bha sans surprise, Archspire est pas venu pour enfiler des perles. Ils ont joué à fond majoritairement des morceaux issus de Relentless Mutation mais aussi quelques-un de The Lucid Collective.

Comme lors du Hellfest (mais visiblement c'est habituel pour eux), le concert était truffé de blagounettes.

Photo très floue où les membres sont hilares suites aux conneries du chanteur

Entre les morceaux on se marre bien

On approche de la fin, la fatigue se fait ressentir mais toujours plein d'entrain

Voilà voilà :-)

23h fin du concert. C'est décidément trop court.

Bon bha j'espère qu'en 2020 il y aura un nouvel album !


Concernant la qualité des photos, bha je m'attendais pas à ce que ce soit aussi bon vu les conditions mais au final c'est plutôt regardable ! Ça a été pris au téléphone portable sans prendre de précaution et sans faire de réglage particulier.

Restreindre des clés SSH pour du backup via rsync

Bon alors d'un point de vue sécurité utiliser SSH avec des clés c'est très bien. Le problème c'est que si vous automatisez le backup (ce que vous devez absolument faire) c'est que votre clé privée ne peut pas avoir de passphrase (ça ne peut pas s'automatiser et être sécure ça).

Du coup ce qui est recommandé c'est de créer une paire de clé dédiées au backup sans passphrase. Et d'ailleurs par la même occasion, utilisez des clés de type ed25519 c'est plus moderne toussa toussa.

Donc dans un premier temps on génère les clés, puis sur les machines clients on va appliquer des restrictions.

1. Génération de clé SSH

ssh-keygen -t ed25519

Voilà c'est fait. Vous pouvez vous regardez les clés (non ce n'est pas sale) avec cat ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub

Elles sont belles, hein ?

2. Partage de la clé publique

Bon vous avez vos belles clés. Maintenant vous allez coller la publique sur chacun des machines que vous backuppez : ssh-copy-id user@machine-client

3. Restriction des clés

Bon c'est chouette mais c'est pas super sécure : votre clé sans passphrase peut se connecter aux différentes machines clientes et potentiellement être root et faire tout ! C'est craignos.

Maintenant on va s'affairer à restreindre ce que peut faire notre clé. Donc sur les machines clientes la première chose à faire est d’éditer le ~/.ssh/authorized_keys

Ce fichier contient une ligne par clé autorisée à se connecter en tant que votre utilisateur. Trouvez la ligne concernant votre clé.

Ensuite les options doivent se mettre en début de ligne en les séparant d'une virgule (voir exemple en toute fin d'article).

3.1 Restreindre les facultés

Ensuite en début de ligne ajoutez des options de config SSH qui s'appliqueront donc lorsque cette clé se connecte. Les options intéressantes sont les suivantes (non-exhaustif) : no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding.

Bon rien que ça c'est pas mal, ça évite quelques emmerdes mais ça n'évite pas tout.

3.2 Restreindre les commandes

Vous pouvez spécifier quelles commandes peut lancer une clé. C'est chouette et permet de sacrément améliorer la sécurité.

Ça se fait avec un simple command=”/votre/commande" .

3.3 RRsync

Il existe un ptit programme en perl adapté pour cet usage afin de restreindre les capacités de rsync nommé sobrement rrsync. Alors certe, c'est une dépendance en plus, à installer sur chacune des machines clientes mais malheureusement c'est comme ça.

rrsync permet de limiter rsync à un mode read-only empêchant de modifier les fichiers sur la machine cliente. Il y a également un mode write-only qui permet de ne pas lire les fichiers mais d'écrire uniquement (pratique dans l'autre sens mais plus exotique).

Il permet également de restreindre les dossiers que rsync pourra atteindre. Avec une telle option, les connexions ssh avec cette clé seront cloisonnées au seul dossier que vous permettez.

Pour l'utiliser, éditez encore ~/.ssh/authorized_keys et dans les options de votre clé, ajoutez command=”/usr/bin/rrsync -ro /“ et hop.

3.4 Restreindre les connexions depuis une adresse particulière

Bon c'est pas mal du tout déjà avec ça, mais bon imaginons que votre clé se retrouve dans la nature sans que vous le sachiez, un attaquant sera à même de backupper vos machines et donc d'y récupérer vos précieuses données.

Il est donc très appréciable de ne permettre l'utilisation de la clé à une/des adresse(s) précise(s).

Il suffit de rajouter from="a.b.c.d" et vous êtes tranquile.

Exemple final

Au final votre

~/.ssh/authorized_keys
ssh-ed25519 AAAAC3N…………………n/euLPb lord@hermes
from="a.b.c.d",command="/usr/bin/rrsync -ro /",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-ed25519 AAAAC…………………………cJRwBwrc backup@backup_server

Voilà avec ça, votre clé ne peut plus rien faire d'autre que du rsync en lecture seule. Plus de commande, plus de tunnel, plus rien.

Quelques tips concernant la conf Nginx

Il arrive régulièrement de filer des coups de main à propos de serveur web et surtout Nginx. Et parmi les erreurs classiques il y a les soucis dans les fichiers de conf.

Beaucoup de conf sont anormalement alambiquées et sont plus ou moins dupliquées pour rien. On se retrouve avec des comportements foireux. Et le classique c'est “ J'ai un résultat différent en HTTP et en HTTPS ! ” .

Bon voici quelques petites astuces pour simplifier la config.

Les inclusions

Si vous avez plusieurs vhosts vous vous retrouvez très vite à affecter les mêmes options un peu partout. Une bonne pratique est de placer les options communes dans un fichier séparé et de l'inclure à chaque fois que nécessaire.

C'est par exemple très pratique pour la configuration TLS. J'ai un fichier tls.conf que je m'amuse à inclure de partout. Et d'ailleurs je le trimballe également sur chaque nouveau nginx que je fous en place.

Dans vos vhost il ne vous reste plus qu'à ajouter include tls.conf et voilà.

Pour ceux intéressés je vous le mets ici, si ça peut vous inspirer ainsi que celui pour le cache.

*/etc/nginx/tls.conf*
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ecdh_curve X25519:prime256v1:secp521r1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_session_cache shared:ssl_session_cache:1m;
ssl_session_timeout 8h;
ssl_session_tickets off;
ssl_buffer_size 4k;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

ssl_stapling on;
ssl_stapling_verify on;
# PENSEZ À CHANGER CES ADRESSES DE SERVEURS DNS
# resolver 1.1.1.1 8.8.8.8;
*/etc/nginx/cache.conf*
gzip_vary on;
gzip_static on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/activity+json application/atom+xml;

Ça marche bien évidemment pour tout un tas de réglages usuels et pas uniquement la crypto. Ça peut le faire par exemple pour du cache ou de la conf pour php/fastcgi.

Arrêtez de dupliquer vos vhosts

Très souvent on voit des exemples de conf où les vhosts ont 2 bouts de confs : 1 pour le HTTP et une seconde pour le HTTPS. C'est bien gentil mais très généralement ça sert à rien : vous voulez la même conf sur les 2.

Nginx est suffisamment malin pour comprendre que certains bouts de confs sont spécifiques au HTTPS et donc n'ont pas à s'appliquer au HTTP. Je m'explique :

Si dans votre conf vous indiquez le certificat est le fichier bidule, cette directive n'a pas à s'appliquer à une connexion HTTP et donc pas besoin de générer une erreur pour rien. Bref au lieu d'avoir une conf de ce style :

server {
  listen 80;
  server_name truc.bidule;
  
  
  
}
server {
  listen 443 ssl;
  server_name truc.bidule;
  ssl_certificate /votre/cert.pem;
  ssl_certificate_key /votre/cert.key;
  include tls.conf;
  
  
  
}

Le risque de faire des conneries et d'avoir des incohérences est maximal.

Il est préferrable de faire une conf de ce genre :

server {
  listen 80;
  listen 443 ssl;
  ssl_certificate /votre/cert.pem;
  ssl_certificate_key /votre/cert.key;
  include tls.conf;
  
  
  
}

Votre conf sera bien plus légère et vous n'aurez plus de risque d'avoir un comportement différent en HTTP et HTTPS.

Et là je vous entends “ Ouai mais comment je fais la redirection du HTTP vers HTTPS ?! ” . Bon déjà mon avis sur la question est que ça ne devrait pas être forcé, mais je sais que c'est pas un avis partagé par la majorité. Cependant il est possible de rajouter un simple :

if ($scheme = http) { return 301 https://$server_name$request_uri; }

Bon par contre niveau perf, c'est un tout ptit chouilla moins bon que d'avoir deux blocs server donc à moins de vraiment grignotter les micro-optimisations de droite et de gauche ça ne devrait pas vous impacter plus que ça.

La bonne syntaxe pour écouter sur toutes les interfaces

Constamment je vois passer des bouts de conf incorrects concernant les interfaces. Très généralement, la conf voulue est d'écouter sur toutes les interfaces possibles.

La bonne conf est la suivante.

  listen 80;
  listen [::]:80;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

Avec ça vous écoutez en IPv4 et en IPv6. Et sur le port 443 vous écoutez en HTTP1 et HTTP2.

Là vous êtes parés pour le vieux web et le web du futur !

Conf pour Let's Encrypt

Bon alors maintenant, comme tout le monde vous voulez du TLS surtout grâce à Let's Encrypt. Mais j'espère pour vous que vous n'utilisez pas Certbot (pour plein de raisons). Du coup il y a fort à parier que vous deviez renouveler vos certificats tous les trois mois.

Certains clients LE se proposent de modifier votre conf dans votre dos. C'est gentil mais pas des plus rassurant. Sinon vous pouvez couper votre nginx le temps du renouvellement ce qui n'est pas terrible niveau disponibilité.

La troisième technique n'a pas ces désavantages mais nécessitent une micro-bidouille dans la conf nginx. Il suffit d'ajouter :

location /.well-known/acme-challenge {
  alias /un/dossier/précis;
}

Il faudra indiquer le même dossier à votre client Lets's Encrypt pour que ça fonctionne sans heurts.

Tester sa conf à froid

Bon allez un dernier micro conseil.

Quand vous modifier votre conf, testez-la avant de tenter de la mettre en service. Ça vous évitera un peu de stress et vous permettra de corriger les éventuelles erreurs avec plus de sérénité.

nginx -t

Là il vous indiquera si la syntaxe est ok et donc vous serez heureux et esquisserez un petit sourire. La vie est belle.

Misery

Première adaptation de Stephen King des années 90. Ça ressemble un peu à un téléfilm à cause d'une image assez particulière, un éclairage assez cheapos et très peu de décor. Mais au final ce film est génial.

L'histoire est assez courte : un écrivain a un accident de bagnole et est récupérée par une fan. Cette fan est très fan, mais alors vraiment très fan au point de vouloir se le garder.

L'histoire est vraiment bien foutu mais surtout les acteurs mais surtout Kathy Bates est prodigieuse dans ce rôle. Wow.

Son jeu d'actrice est précis, flippant, intrigant, amusant, oppressant. Ce film lui doit tout. Elle a d'ailleurs eu le droit à un oscar pour ce film.

C'est le deuxième film de Rob Reiner tiré de Stephen King après Stand By Me et du coup ça lui fait un joli palmarès.

Récap 04 : Novembre 2019

Blog

Ce mois-ci je vous ai exposé mon dilemme concernant le flux RSS et du coup j'ai créé une page dédiée. Et j'ai mis à jour la sidebar pour pointer vers cette page.

Je me suis d'ailleurs rendu compte que tous les flux étaient pétés sauf le global. Du coup j'ai un peu corrigé ça.

Quand je serai un peu plus satisfait de la section visionnages je les intégrerai au flux global. En attendant vous pouvez déjà retrouvé les différents flux disponibles.

Ce mois-ci, 7 articles, 32 commentaires !, 12 visionnages, 584219 requêtes, 52370 visiteurs uniques pour 25Go de trafic. C'est un gros mois !

Films

Dans les récap je suis assez expéditif dans les descriptions que je fais. Je les élabore un peu plus dans des pages individuelles, pour les voir cliquez sur les titres des films :-)

Ce mois-ci je continue mon marathon Stephen King.

Children of the Corn

On est maintenant en 84 et on passe dans une seconde phase des adaptations bien plus pauvre. Ici le budget est pas énorme, les acteurs adultes ça va mais les gamins… le jeu est … compliqué. Bref, ce pourrait être un téléfilm pas super avec un concept pas pourri mais vraiment très moyen sauvé par sa musique. C'est devenu une saga de 10 films pourtant en commençant comme ça c'est étonnant que ça ait donné des suites.

Firestarter

Encore 84 pour un bon gros concentré de clichés. Ce film pourrait être bon s'il ne durait pas aussi longtemps. Les acteurs jouent bien, l'histoire (au-delà des clichés) est pas mal mais le rythme le rend pénible. Bref, à voir une fois bien éveillé sinon c'est la sieste assurée.

Cat's Eye

Un film en trois parties indépendantes qui contrairement à Creepshow est vraiment très bien. Avec un petit budget il a réussi à se chopper un bon casting, a de bonnes histoires et une bonne réal. Excellente bonne surprise avec de l'humour, de la tension, une dose de surnaturel et un chat très bon acteur.

Silver Bullet

Un film basique, sans surprise mais pas mauvais non plus. Des enfants, un oncle, un loup-garou et une ville et ses habitants. Voilà voilà.

Maximum Overdrive

Quand Stephen passe aux commandes ça … ne vaut rien. C'est mauvais mauvais mauvais sauf la bande son signée ACDC.

Stand By Me

Nous voilà de retour à Castle Rock pour y voir une bande de gosse dans les années 50. Excellent, prenant, divertissant, relaxant.

47 Meters Down : Uncaged

Petite pause dans le marathon pour un sacré nanard britisho-américains. C'est assez affligeant et incohérent. Je vous en ai fait un récap bien plus long.

Anna

Allez second film de cette petite pause. Un ptit Besson des familles sans surprise avec un bon casting, des bonnes scènes d'action et le scénar de Nikita 2. Ça se regarde mais s'oublie vite.

Running Man

On reprend le marathon avec le film qui je pense sera très différent des autres. Un bon Schwarzy de 1987 avec tout ce qui va avec : punchlines cons, actions délurées, sexisme et ridicule. J'adore même si c'est très cliché.

Simetierre

Un film avec une histoire super glauque et triste mais où la mise en scène rate un peu le coche. Au lieu d'avoir un film terrifiant et horrifique j'ai plus le sentiment de regarder un film fantastique. C'est un bon film sympa mais qui aurait pu être bien mieux en étant plus sombre.

Ready Or Not

Encore une petite pause pour un film d'horreur étonnament bon. Sorti de nul part, ce film est tout bien dosé pour ne pas verser dans le film surjoué trop sérieux. Il a très bien marché au cinéma et va très probablement avoir droit à des suites/remakes/reboot/origin story.

Graveyard Shift

Allez on reprend du Stephen King avec un navet. Des personnages clichés, qui font n'importe quoi. C'est long, moche, chiant, inintéressant.

Jeux

Je me suis refait Diablo 1 via DevilutionX qui est un effort de reverse engineering pour faire marcher le jeu sur les plateformes modernes. Dans mes souvenirs le jeu était bien plus long.

Et j'ai ensuite enchaîné sur Dishonored que je me suis refait via Steam+Proton. Il tourne parfaitement sur ma ptite Gentoo. Le jeu est vraiment excellent avec plusieurs façons d'appréhender des niveaux ultra bien foutus. Je l'ai déjà fini un ptit paquet de fois mais je n'ai pas sa suite.

Musique

Chase - Giorgio Moroder Cette reprise est vraiment cool et respectueuse de l'originale en utilisant de vrais synthés analogiques.

Nuxeries

L'overlay QT de Gentoo nous a gratifié d'un passage de 5.12 à 5.13 puis quelques jours plus tard à la 5.14 apportant au passage enfin le support du primary clipboard sur wayland. Je peux enfin copier/coller facilement entre mon navigateur et mes terminaux. C'était vraiment chiant de passer par wl-copy/wl-paste pour ça.

Graveyard Shift

Une tannée ce film. Pas mal d'élément Kingesque : une grosse machine, du surnaturel, des personnages un poil fou mais c'est vraiment nul.

Bien qu'il ne dure qu'un peu moins d'une heure et demi, c'est long. Le rythme est clairement inégal et certaines scènes qui ne font pas avancer l'histoire ni ne pose vraiment l'ambiance s'étalent en longueur. Les personnages sont 100% clichés et autant les décors extérieurs ça va c'est joli, mais dans la seconde moitié du film… arg c'est moche et répétitif.

Les réactions des persos sont … navrantes. Bref, c'est clairement pas un bon moment. Et le casting ne remonte pas le niveau. La seule petite pépite (microscopique) c'est que le perso féminin star dit qu'il provient de Castle Rock… voilà voilà.

La musique de fin est audacieuse : ils ont fait un morceau de musique composé des répliques du film et … bha ça rend pas si mal. Donc si vous êtes intéressés, contentez-vous du générique final.

Ha et si vous voulez un peu de spoil, le titre français c'est “* La créature du cimetière *”.

Ready Or Not

Ce film est arrivé un peu comme un cheveux sur la soupe : “Tiens un film d'horeur, allez ça fait longtemps et vue le casting ça doit être une ptite daube habituelle.” Et bien non ! Ce film est vraiment sympatoche.

Un famille bourgeoise s'adonne à un rituel un peu particulier lors de la nuit de noce des membres de la famille. Le nouvel arrivant dans la famille doit tirer une carte au hasard qui va définir un jeu qui devra être joué. Cependant dans la liste de jeu possible il se trouve y avoir le cache-cache. Mais il s'agit d'une variante du folklore famillial. Le nouvel entrant doit se cacher et la famille doit le trouver et le tuer avant le levé du jour sinon le sort s'abattra sur la famille.

C'est couillon mais fun. Et le film joue sur cette fine ligne entre le sérieux et le fun. Et par miracle il s'en sort très bien. Un peu trop sérieux et ça serait chiant et tournerait au ridicule mais ils ont su le prendre pile comme il faut. Du coup ça passe vraiment bien.

La marriée est jouée par la nièce de Hugo Weaving (mais si c'est l'Agent Smith ou Priscilla du Désert ou Elrond (dans l'ordre de mes références favorites)).

Il y a fort à parier que l'on écope de suites : avec un budget de 6myions de dollars, il a rapporté près de dix fois la mise juste au cinoche.

C'est un joli ptit mélange d'une partie de Cluédo, de You're Next, un soupçon de fantastique à la Hellraiser, une marriée sanguinolante à la Rec 3 et d'un final explosif.

Simetierre

Cette adaptation d'un livre de Stephen King est très fidèle. Ce film est vraiment sympa avec son ptit charme de film un peu vieillot avec un peu de budget mais pas trop.

L'histoire est bien triste et glauque et pourtant le film n'est pas vraiment sombre et torturé. C'est un peu dommage car je pense qu'il pourrait être bien plus lourd. Et par la même occasion bien plus effrayant et malaisant. C'est ce qui le distingue du film assez basique qui l'est d'un grand film d'horreur.

Je n'ai pas vu le remake de 2019 encore mais avec un peu de chance ils ont corrigé le tir.

Comparatif entre Mastodon et Pleroma

Je traîne un peu sur le Fédiverse. C'est un amalgame de services différents constituant un réseau social assez différent de ce qu'on trouve ailleurs. Une de ses plus grande force à mes yeux est le fait de pouvoir s'héberger son (ses) ptit(s) bout(s) à soit.

Le réseau propose actuellement plusieurs services différents comme du partage de photo, de vidéos, de musique, quelques petits jeux, du blog et surtout du micro-blog. Le Micro-blog c'est du simili-twitter : des messages courts avec des hashtags et des gens qui réagissent/boostent…

Le microblog c'est sympa mais il existe plusieurs logiciels différents pour en faire sur le Fediverse. Le plus connu est Mastodon et son concurrent le plus visible est Pleroma mais il y a également MissKey ou bien le plus ancien GNU Social et enfin microblog.pub qui est plus minimaliste.

Pour rejoindre le Fédiverse, la majorité des utilisateurs du réseau ont rejoint une instance existante (au moins le temps de découvrir). Mais de nombreux geeks à tendance adminsys décident de s'y établir un peu plus sérieusement et donc de se monter une instance perso (ouai en vrai je vous raconte mon parcours, mais c'est mon blog ! J'ai le droit !). Et donc une question se pose assez vite : Mastodon ou Pleroma ?

J'ai donc demandé de l'aide sur le Fediverse pour créer un tableau comparatif entre ces deux poids lourds du secteur et voilà le résultat.

Glitch.soc est un fork de Mastodon apportant quelques améliorations bien venues à Mastodon. Il est inclu dans Pleroma et s'avère être l'interface web Mastodon de Pleroma ce qui fait que ce qui est possible sur glitch est faisable dans Pleroma.

Bien entendu ce n'est pas ultra exhaustif et c'est très mouvant (Pleroma et Mastodon sortent très régulièrement de nouvelles versions).

Pour les utilisateurs

  Mastodon     Glitch.soc     Pleroma  
toot X X X
local timeline X X X
global timeline X X X
Nombre de caractères 500 500 5000 configurable
formattage du texte X X source de tensions
formattage des liens X X pour intégrer un lien dans du texte
Affichage du texte formatté X X
Affichage des articles tronqué X X Sur Glitch et Pleroma : configurable
Envoi d'images X X X
Envoi d'audio X X X Arrivé récemment sur Mastodon
Envoi de vidéos X X X
Dessiner X M
Sondages X X X Arrivé récemment sur Pleroma
Limite choix sondage 4 4 20+
Content Warning X X X
Restriction de visibilité X X X (global, pas listé, followers seulement, privé
Recherche d'utilisateurs X X X
Recherche de hashtag X X X
Recherche intégrale X X X
  Mastodon     Glitch.soc     Pleroma  
Photo de profil X X X
Bannière de profil X X X
Fond d'écran X
Thême graphique X X X
Personnalisation de thême X galerie
Emojis X X X
Liste d'émoji X X X
Édition de toot envoyé X X M
Suppression de toot X X X
Silence d'un fil de disc. X M
  Mastodon     Glitch.soc     Pleroma  
Follow X X X
Silence X X X
Block X X X
Report X X X
Marque-page X X M Marquer un toot comme favoris
Épinglage de toot X X X Pour s'afficher en haut dans le profil
Création de listes X X M Ranger des utilisateurs dans des listes
Interface BBS X Gadget de poisson d'avril
Interface Gopher X Gadget de poisson d'avril
Chat integré X Permet de discuter avec l'instance locale

Pour les Administrateurs

  Mastodon     Glitch.soc     Pleroma  
MRF X Filtres programmables sur les activités
Transparence de la modér. X Les MRF peuvent être publiques dans le NodeInfo
API d'administration X voir doc
API de modération X X X
Support de OStatus Fraîchement supprimé de Mastodon et Pleroma

Pour les devs

  Mastodon     Glitch.soc     Pleroma  
Langage Ruby Ruby Elixir
Base de données Postgres + Redis Postgres + Redis Postgres
Nodeinfo X
Plateforme de dev Github + Discord Github + Discord IRC/Matrix + Gitlab
API Mastodon X X X C'est ce qui permet d'utiliser les applis Mastodon
API Compatible Twitter X Ancienne version de l'API

Pour les (auto-)hébergeurs

  Mastodon     Glitch.soc     Pleroma  
Configurable à chaud X X * *Disponible très récemment
Tourne sur un Rasp. Pi X
Peu de dépendances X
Dev communautaire X X Gargron décide de tout pour Mastodon
Médias distants réenco+stock réenco+stock proxy optionnel
Stockage S3 X X X

Bon c'est pas super digeste… Et ça sera probablement pas à jour très longtemps.

Mon avis

Je trouve que la gouvernance plus ouverte de Pleroma et l'orientation du projet est bien plus sympa que Mastodon. Mastodon est le reflet de la volonté de Gargron et donc si la communauté veut quelque chose mais que lui, non… bha Mastodon n'aura pas cette chose.

En plus de cela, d'un point de vue technique, faire tourner Pleroma est beaucoup plus simple :

  • Ça demande beaucoup moins de ressources
  • La stack logicielle est plus simple à installer
  • Postgres est suffisant, pas besoin de Redis et d'ElasticSearch même pour la recherche.

D'un point de vue utilisateur, tout ce que sait faire Mastodon est disponible sur Pleroma, que ce soit via son interface propre ou bien l'interface Mastodon qui est fournie avec. Les applis Mastodon sont nativement compatibles avec Pleroma.

À la vue de tout cela, je ne vois pas vraiment d'intéret d'héberger un nœud Mastodon plutôt que Pleroma. Donc au final Mastodon't.

L'an dernier je vous ai publié un petit tour des services du Fédiverse si jamais vous voulez voir les autres challengers.


Merci à tous les gentils contributeurs du framacalc pour leur coup de main. Ça traîne depuis juillet mais ça arrive enfin !

Googhell.fr

J'ai ouvert très récemment un nouveau site web (qui ressemble furieusement à mon blog, tiens donc !) : Googhell.fr .

Objectifs

Le but de ce nouveau site est de pointer du doigt l'actualité de Google et ses différents services.

Mais attention, avec un gros biais ! Le but est de souligner les dérives, les malversations, les nouvelles agressions de la vie privée… L'intérêt est de démontrer que non, Google n'agit pas dans le bien de ses utilisateurs mais bien dans son propre intérêt.

Bon, après le but n'est pas de cracher sur Google juste pour leur cracher dessus. C'est plus pour réflêchir aux conséquences de certaines de leurs actions qui ne sont que rarement respectueuses de leurs utilisateurs. Ce qui manque assez fréquemment sur les sites de news généralistes (et même informatique).

Bien entendu, tout sera sourcé.

Même si initialement, le but est de réagir à de l'actualité immédiate, rien n'empêche également de poster à propos d'un méfait plus ancien ou plus général.

Si jamais, vous avez des propositions sur le type de contenu qui vous ferait plaisir sur ce site, n'hésitez pas à proposer. Et si vous voulez plus que proposer mais carrément participer : viendez ! Contrairement à mon blog, je n'ai pas l'intention d'être le seul rédacteur de ce site.

Audience

L'audience visée n'est pas du tout le geek hardcore (qui sera probablement déjà au fait) mais une audience plus généraliste. Le but est d'expliquer avec des termes simples que “Non, tel nouveau service n'est pas un cadeau de leur part parceque ceci …".

Une partie du site sera donc de la vulgarisation et pourquoi pas dans certains cas présenter des alternatives favorables.

À terme, cela pourrait devenir une ressource à donner aux gens débutant leur remise en question de leur dépendance aux gafam.

Contribution

Ce nouveau site ayant un but assez éducatif, plus on sera nombreux à y rédiger des articles, plus les sources seront variées et les points de vue seront donc plus partagés et valides.

Si jamais, vous souhaitez contribuer, je serai râvi de vous y aider.

Que vous teniez déjà un blog ou tout juste écrit deux phrases dans un bloc-note, vous pourrez contribuer à ce site. La façon de le faire importe peu (envoi par mail, ouverture d'une Pull Request ou d'une issue sur le dépot github). Bref, que l'aspect technique ne vous rebute pas.

Si vous avez la moindre idée pour améliorer le site, n'hésitez-pas non plus.


GoogHell.fr

Running Man

Derrière des allures de film bourrin des années 80 (j'ai un gros faible pour ces films qui m'ont bercés) on retrouve quand même un film plutôt intéressant. Notre cher Schwarzy fanfaronne dans ce film avec des punchline qui tâchent en collant des pains comme il en a le secret.

L'histoire est sympas comme toute : dans le futur, en 2017 (haha), le peuple est dans une mouise pas possible mais heureusement il est appaisé par le biais de la téloche et plus spécifiquement d'une émission de télé-réalité bourrine. Des taulards sont sortis de prison pour être donné en pâture à des simili-gladiateurs qui vont devoir jouer au chat et à la souris.

Le concept est faussement idiot et montre une problèmatique toujours bien actuelle de manipulation des masses par du divertissement et des médias. C'est tiré d'une nouvelle de Richard Bachman qui était le pseudo utilisé par Stephen King.

D'ailleurs l'utilisation d'un pseudo est assez marrante. Pour ne pas saturer le marché et ne pas être mal vu de publier plusieurs livres par an, il a décidé d'utiliser un pseudo. Il voulait aussi voir s'il pouvait avoir du succès en publiant sous pseudonyme. Mais ça s'est assez vite éventé bref…

Revenons à notre film, il est bien typé fin 80 avec des tenues bien flashy, de l'aérobic everywhere, de la moustache proéminente et des injures homophobes et sexistes à tire-l'arigot.

Ce pauvre Arny n'a pas le droit à son doubleur traditionnel (Daniel Beretta, ça ne s'invente pas) mais il a quand même la voix de Morphéus ce qui n'est dégueu. D'ailleurs le réal du film n'est autre que l'acteur David Starsky de la série Starsky et Hutch.

Bref, si vous êtes pas contre un bourre-pif, une bonne dose d'années 80 et de dystopie de 2017 allez-y !

Anna

Un film de Luc Besson donc avec une héroïne loin d'être moche, qui va se transcender, qui est badass et qui va se faire malmener par les bonhommes. On est en plein dedans.

C'est pas mauvais, ça se laisse plutôt regarder. Certaines scènes sont vraiment jolis et on sent que John Wick est passé par là pour les chorégraphies de baston.

Si vous avez aimé Nikita bha… regardez Nikita mais ça devrait quand même vous plaire.

Tout le long du film, on a le droit à des flashbacks qui nous font voir l'envers d'une scène précédente parceque “HAHA ! Vous l'avez pas vu venir mais il y avait un twist !” Mais bon, autant j'ai apprécié les deux premiers coups, autant ensuite ça devient … redondant.

C'est un film qui se laisse voir mais qui ne laisse pas de trace. Voilà.

47 Meters Down : Uncaged

J'avais une heure à tuer sans trop savoir quoi faire du coup je me suis mis ce film. C'est un bon gros nanard merdique avec des adolescentes en maillot de bain dans des décors magnifiques. Je ne peux m'empêcher de vous en parler en détail, ça vaut le coup.

Bon déjà, c'est le classique “Je désobéis pour faire la fête et je me fous dans une merde noire en faisant tous les choix les plus pourris”. Mais bon ça maintenant on est habitués.

Donc le principe du truc, c'est que les gamines se barrent au milieu de nulle part pour aller se baigner dans une cité maya engloutie qui vient à peine d'être découverte par deux clampins et c'est pas encore public. Vous le voyez arrivé le plan de merde ?

Bon, les gamines font les sérieuses et savent parfaitement s'équiper toute seule de toute le matos de plongée qui attendait là, à être utilisé (how convenient !). Ça rentre dans la grotte sous l'eau, passe par un petit couloir assez étroit qui s'avère être le seul passage par ici. Ça serait vraiment dommage qu'il se retrouve être bouché par la suite.

Donc nos chères donzelles arrivent dans une salle avec de jolies décos, des statues, un autel à sacrifice et des gros piliers en terre de plusieurs tonnes. C'est là qu'elles rencontrent un cousin éloigné de Némo qui s'avère être translucide et aveugle. Elles comprennent vite qu'il a alors dévelopé son ouïe. Et c'est là que ça va devenir assez problématique.

Bon autant, je veux bien croire que pour un film, ce soit pas la joie de faire du muet pendant 1h30 et donc faire en sorte que nos protagonistes aient des casques de plongée leur permettant de se parler entre elles. Mais vous allez vite vous rendre compte que la gestion du son dans ce film est bien conne.

Bref, le poisson a pas l'air des plus sympatoche mais ça reste un truc de la taille d'une sardine mais “Ho ! Attendez ! J'ai vu un truc bouger là-bas !” facepalm Ça y est, le gros requin livide, aveugle mais qui vous entend chuchoter sous l'eau à deux kilomètres mais ne vous entend pas vous débattre comme un poulet sans tête dans la flotte. Et là dans la panique, une des gamines de 50Kg au max, percute un pilier millénaire d'une dizaine de tonne et le fait tomber. Et non, le pilier n'était pas en équilibre précaire, c'est de la bonne grosse caillasse bien stable. Le truc tombe et remue toute la poussière/vase et on ne voit plus rien et c'est la panique générale. Dans le bordel ambiant, d'un coup, un mec en combi et tout les trouve, ils discutent (oui oui toujours sous l'eau comme ça à l'aise) mais d'un coup d'un seul le mec se fait bouffer laissant tomber son fil d'Ariane (enfin un malin).

Poursuivies par Bruce, elles tentent de rejoindre le petit couloir étroit qui s'avère être la sortie évidente mais pas de bol, une fois enfilées dedans, le squale vénère tente de s'y engouffrer mais bien entendu il est trop gros (ouf) et du coup il s'acharne en tapant dessus et fait s'effondrer une partie de la structure (pas ouf) et le couloir se bouche. Ha mince alors, qui aurait pu prédire que ça se serait mal passé ?!

Bon elles patientent, vérifie leur niveau d'oxygène, ça panique, ça se reprend, ça décide de rebrousser chemin : il y a forcément une autre sortie où Papa est en train de travailler (ouai c'est lui qui a découvert la grotte, c'est son boulot, je vous épargne).

Visiblement notre cher requin, a décidé d'aller se promener ailleurs, elles retrouvent la bobine du fil d'Ariane de Mr encas-de-requin. Elles suivent le truc en stress. En tirant assez fortement dessus… c'est pas une corde pour se tracter, hein ! Vous allez finir par le péter !

Bref, elles le suivent jusqu'à arriver à un endroit où … il est coupé. Voilà. Bon elles farfouillent et trouve une pièce avec une poche d'air. On fait le point sur la quantité d'oxygène dispo dans les bouteilles. Et je vous le dis tout de go, c'est pas la joie.

Une des meufs, trouve une faille sous l'eau et décide d'aller voir seule si ça mène à quelque chose. Et la réponse est oui, ça mène à une salle où se trouve un autre mec en train de souder des trucs. Bon je vous l'ai pas expliqué tout à l'heure mais en gros, les mecs s'évertuent à rendre l'endroit visitable pour des scientifiques en balisant et foutant de l'éclairage. Voilà c'est dit, c'est chiant et ça n'apporte pas grand-chose si ce n'est une excuse pour rajouter de la chair à requin.

Notre aventurière entend de la musique parceque oui, les travailleurs se sentent obligé d'avoir leur petit lecteur mp3 submersible pour travailler dans une grotte séculaire où tout peut s'effondrer à chaque instant (bha si, même une gamine peut faire s'effondrer des éléments d'infrastructure, c'est fragile !). Le pauvre gars a donc attiré le vilain squale et se fait bouffer et la meuf se retrouve à deux doigts de servir de snack.

Par chance, les autres greluches (ouai au bout d'un moment, quand tu fais autant de conneries on peut te traiter de greluche) se sont dit : “tiens elle revient pas, allons voir”. Elles tombent à pic pour sauver leur copine en faisant tourner en bourrique le poiscaille en faisant du bruit en tapant sur les colonnes et compagnie (sans tout faire tomber ce coup-ci).

Elles s'échappent un peu plus loin pour enfin tomber sur le père d'une des gamines. Le héros mâle est là, tout va bien ! Il prend les choses en main et les ramènent à un endroit où elles peuvent remonter à la surface. Sauf qu'il s'agit d'un trou et le seul moyen de sortir de l'eau est d'utiliser une corde.

La première remonte péniblement jusqu'à ce que !!!!! Hooo plusieurs requins livides aveugles sourds qui n'ont jamais vu la lumière du jour parcequ'ils sont dans les caves depuis des années sont désormais au niveau de la surface pour tenter de finir les tapas ! Pris de panique, la plus gourde de toutes (depuis le début c'est celle qui fait les pires conneries) s'agrippe puis escalade sa copine en la faisant tomber à la flotte. Bon, il reste encore pas mal de temps au film donc, la corde se décroche et tombe dans la flotte avec la greluche. Elle se fait bouffer.

Bon j'accèlère un peu, papa se fait bouffer, une autre se fait bouffer. Et autant vous le dire ils ont encore faim !

Il n'en reste plus que deux et il n'y a presque plus d'oxygène, il reste un quart d'heure de film. Qu'est-ce qu'il reste dans la besace des scénaristes ? Un courant de flotte ultra puissant qui va vers le bon. Mais je vous parle d'un courant à faire pâlir les meilleures chasses-d'eau.

Bref, une des deux se fait happer, mais en fait elles se retrouvent quelques minutes plus tard. Elles voient la lumière du soleil percer à travers une brèche au plafond. Elles montent, elles larguent leur matos de plongée pour parvenir à passer et hop elles sont en mer proche de la côte mais ce sont des falaises, c'est pas possible de remonter.

Il reste 10 minutes de film, les spectateurs n'en peuvent plus, le calvaire n'en finit pas. Heureusement il y a un bateau non loin. Elles nagent, nagent, nagent et tiens donc, l'eau est de plus en plus rouge ! o___O

C'est un bateau qui balance de la bouffe pour les requins pour distraire les touristes. Bref, nos deux dernières survivantes sont vraiment mal barré, ho lala. Une parvient à monter dans le bateau in-extremis et la seconde se fait happer.

Mais la première n'a pas dit son dernier mot, elle récupère dans le bateau une fusée de survie, plonge dans la flotte, vise et tire en headshot sur le squale. Il lache sa proie tout abasourdi par autant d'héroïsme et fair-play laisse dix secondes d'avance aux meufs pour qu'elles parviennent juste à temps à monter dans le bateau.

FIN


Non mais sérieux, c'est merdique à souhait. Et accrochez-vous, le réal s'est vu proposé de réaliser Resident Evil Reboot. Il en a surement les capacités.

Et même en regardant ce film à vitesse 1.33 c'était éprouvant. Je vous le recommande pas.

D'ailleurs en regardant la page wikipedia je vois que c'est une suite… Oups.

Petit fun fact : une des actrices est Sistine Stallone (je crois que c'est la gourde en chef et oui c'est une des filles de Sylvester) et dans les snacks masculins de requin il y a un Khylin Rhambo. Voilà c'est le genre de détail qui me fait bien rire.

Les trackers 1st-party : quelles solutions ?

Bon bha voilà qu'on est en train de se rendre compte que non le RGPD ne nous protège pas tant que ça des violeurs de vie privée. Ptet même qu'au contraire ça a d'autant plus poussé les marketeux à dévelloper de nouvelles armes plus pernicieuses.

Je veux parler de ce que Shaft et Aeris ont déniché. En gros, contrairement à avant où les trackers/pubs (c'est pareil) étaient hébergés par les prestataires, ces prestataires fournissent désormais un système faisant croire que leurs merdes sont hébergées directement sur le site que vous consultez.

1st-party ?

First-party est un terme pour désigner que c'est du contenu issu du domaine que vous visitez. Une page web c'est avant tout un fichier texte contenant des liens mais aussi incluant divers documents (des images, des vidéos, des morceaux de pages web, des scripts).

La magie du web fait que l'on peut aussi bien inclure des ressources provenant du serveur consulté mais aussi du contenu provenant de serveurs extérieurs (tiers ou “3rd-party”).

C'est un détail anodin et technique à première vue, mais ça contourne tous les systèmes antipub existants. Habituellement les bloqueurs de pubs s'échinent à rejeter les ressources extérieures au domaine consulté mais les nouveaux trackers sont désormais en first-party et sont donc distribués comme provenant du site d'origine.

En plus de contourner les protections typiques, ça tente de s'immiscer dans une possible faille du RGPD (mais tant qu'il n'y aura pas eu de procès à ce sujet ça restera incertain).

Bref, des trackers sont à mêmes de contourner toutes les protections usuelles.

Quelles solutions ?

Bloqueurs de pubs classiques ?

Bon il y a fort à parier que les bloqueurs de pubs vont s'adapter mais ça risque d'être une sacrée guéguerre. À l'heure actuelle aucun n'est adapté pour les bloquer efficacement.

Et d'ailleurs tant que j'y suis, si vous devez en utiliser un, le plus recommandable est uBlock Origin.

Si vous êtes plus débrouillard vous pouvez lui ajouter uMatrix. Il est d'ailleurs à même de vous protéger des 1st-parties, mais il faut le configurer manuellement pour chaque site pour l'instant.

Bloquer le Javascript par défaut ?

Il est à mon sens de plus en plus recommandé de bloquer le js par défaut. Ça pète plein de sites. Ça protège pas complètement contre ce genre de pratiques (ça aide un peu mais c'est bien loin d'être ultime) mais ça vire les merdes les plus néfastes.

Malheureusement cette solution ne peut pas être recommandée à tout le monde. Il faut déjà avoir un niveau certain de connaissances techniques sur le sujet et puis faut être prêt à constamment activer le javascript au moindre site mal foutu (de plus en plus répandu).

À une époque HTML permettait de fournir du contenu, CSS permettait de le mettre en forme et JS permettait d'ajouter quelques petits raffinements appréciables mais dispensables. En 2019, beaucoup de sites ont fait le choix de ne pas afficher le moindre contenu sans JS. Déjà d'un point de vue accessibilité c'est très souvent mauvais signe, ensuite concernant le référencement c'est pas toujours l'éclate mais en plus c'est très souvent signe de sites ultra lourds requérant plus de ressources que réellement nécessaire.

Bref, si vous possédez un site qui nécessite absolument Javascript pour afficher le moindre contenu vous méritez de regarder le trending Youtube jusqu'à la fin de votre vie ! Voilà j'ai fini de cracher sur JS.

Blocage DNS ?

C'est possible mais compliqué.

C'est la solution prônée par Shaft. C'est efficace, mais ça demande de mettre en place un résolveur DNS dans son réseau. C'est pas la mère à boire mais c'est clairement pas à la portée de tout le monde.

Si vous avez un raspberry pi (même les plus anciens sont suffisants pour faire ça), ça peut être une bonne idée. Vous serez à même de bloquer quasiment toutes les pubs classiques + ces nouvelles bouses.

Blocage au firewall ?

Bon c'est la solution que j'ai préféré.

Dans mon cas, c'est la plus simple à mettre en place mais j'ai une installation particulière à la maison. Et puis ça va nécessiter de mettre à jour de temps à autres pour suivre les évolutions des emmerdeurs du web.

J'ai donc ajouté quelques lignes dans mon

script iptables du routeur
## Eulerian (tracking publicitaire)
/usr/sbin/iptables -I FORWARD -s 109.232.192.0/21 -j DROP
## Criteo (tracking publicitaire)
/usr/sbin/iptables -I FORWARD -s 178.250.0.0/21 -j DROP
/usr/sbin/iptables -I FORWARD -s 91.212.98.0/24 -j DROP
/usr/sbin/iptables -I FORWARD -s 91.199.242.0/24 -j DROP
/usr/sbin/iptables -I FORWARD -s 185.235.84.0/24 -j DROP

Bon, c'est pas idéal non plus mais ça fonctionne pour l'instant mais nécessitera d'être tenu à jour régulièrement.

Action en justice pour viol du RGPD ?

Ça peut aider mais c'est clairement pas du cours terme. Perso, je le ferai pas car je me tiens aussi loin que possible des avocats mais si l'envie vous prend ça sera pour le bien de l'Europe entière.

Boycotter les sites clients des boîtes qui ont ce genre de pratique ?

Faut taper là où ça fait mal mais bon ça reste illusoire. Pour l'instant une des boîtes qui s'adonne à cette pratique affiche fièrement sa liste de client mais il y a fort à parier que lorsque le bad buzz se répandra un peu cette liste disparaisse.

Le seul moyen de détecter un site employant cette technique nécessite de pas mal fouiller, c'est difficilement automatisable (si ça l'est, mais ils ont la capacité de brouiller les pistes en changeant très régulièrement les noms utilisés). Ça ne va mener qu'à une escalade inéxorable.

Voyez-vous d'autres solutions pour l'instant ?

Mon dilemme concernant les visionnages et le flux RSS

Voilà maintenant deux mois que j'ai commencé à écrire mon avis à chaud sur les films que je mate. C'est assez brouillon et je ne prétends absolument pas faire des critiques (pour ça que j'appelle ça un visionnage).

Je n'ai pas la culture, ni le vocabulaire et je ne parviens pas souvent à mettre les bons mots pour cela. Mais c'est un exercice que j'apprécie et surtout ce qui m'intéresse c'est en cas de revisionnage d'un film : être en mesure de comparer ce que je m'en rappelle, ce que j'en ai pensé la fois précédente et ce que je viens d'en penser.

Pour certains films ça vient bien mieux que pour d'autres. Certains j'ai même du mal à analyser ce qui fait que j'ai apprécié ou non dans le film. C'est d'ailleurs un souci que j'ai pour tout un tas d'autres choses que les films. Du coup, je pense que ça fait à la fois un bon exercice d'écriture mais également un très gros analyse d'introspection.

C'est agréable d'écrire sur quelque chose de non-informatique, moins technique, plus dans le ressenti. Cependant c'est cet éloignement avec le reste du contenu de mon blog qui m'intérroge.

Est-ce que je dois publier la catégorie “visionnages” dans le flux RSS global du blog ?

De part son aspect radicalement différent je me dis que ça serait pas forcément judicieux de le faire.

Qui plus est, je regarde quand même pas mal de film et du coup ça fait du contenu très fréquent, ce qui aurait tendance à noyer le flux initial avec du contenu très moyen et peu intéressant.

Dans la situation actuelle, il y a le flux RSS global et des flux pour chacune des catégories du site dont un flux visionnages.

Voilà… je n'ai pas de conclusion. Je vous avoue que j'espérais éventuellement en trouver une en écrivant tout ça. Une sorte de fulgurence “Bon sang mais c'est bien sûr !” mais que nenni. Je suis pas plus avancé.

Maximum Overdrive

Stephen King est un excellent écrivain. Il est super prolifique en parvenant à sortir plusieurs livres dans une seule année.

Il est versé dans le fantastique à tendance horrifique et a eu le droit à une tripotée d'adaptation cinéma. Et bha pour une fois il a eu le droit à réaliser une de ses adaptations.

Dans le rôle principal on retrouve Émilio Estevez qui n'est autre que le fils de Martin Sheen et donc le frangin de Charlie Sheen. Mais contrairement au reste de sa famille il a préferré gardé son vrai nom pour se différencier. C'est d'ailleurs marrant de voir que la famille Estevez a une sacrée contribution dans ces adaptations puisque le papa a déjà eu le droit à deux films.

Le film a le droit a une excellente bande son signée par ACDC. Et ouai ! C'est pas la classe quand même ?

On a le droit à du Who made Who, un peu de Hell's Bells une pincée de Ride On et probablement d'autres. Là on se fout clairement pas de notre gueule. Franchement, ça a dû être un sacré poste de dépense.

On aperçoit même un fourgon avec le logo ACDC au tout début.

Bon et le film sinon ? Bha … C'est pas terrible. Pas terrible du tout.

C'est surjoué, c'est pas vraiment cohérent, on sait pas trop où ça veut en venir. Non c'est mauvais c'est tout.

Désolé Stephen, mais lache la caméra et garde ta machine à écrire.

AV1 est utilisable !

Hey vous avez vu ?! Dans mon précédent post j'ai mis des vidéos !

Je les ai faites moi-même toussa toussa. Bon il n'y a pas de montage, ni audio et elles sont ultras basiques. Je vous rassure je vais pas en refaire de si tôt (tout du moins pas sans raison valable). C'est pas un format de contenu que je consomme et je suis pas du tout outillé pour en faire. Et je vous avoue que je suis pas spécialement à l'aise en vidéo, bref je transformerai pas ce blog en chaîne youtube demain.

Je me suis dit que tant qu'à poster de la vidéo en 2019 autant le faire comme quelqu'un de moderne. Et puis que ce soit avec un format libre. Donc comme vous l'avez deviné (merci le titre de spoiler le reste de l'article), j'ai utilisé de l'AV1.

AV1 ?

Je vous en ai parlé il y a longtemps à l'annonce de sa sortie.

Il s'agit d'un nouveau codec récent issu de la collaboration de très nombreuses boîtes. C'est une sorte d'hybride de différents codecs pré-existants (ou presque).

Son but est d'avoir des perfs au moins similaires à celles du poids lourd du secteur h265. Mais contrairement à ce dernier, il est libre et ne nécessite pas de se payer des licences hors de prix.

Bref un codec très performant, libre et gratuit. Mais ce qui fait la force d'un codec c'est aussi en grande partie son adoption qui dépend directement de son support par les logiciels.

AOM (le regroupement de compagnies qui se sont alliées pour pousser ce codec) est composée entre autre de tous les livreurs de navigateur web. Le support dans les navigateurs web a donc été assez rapide.

70%

Donc dans le précédent article j'ai posté les vidéos en deux formats :

  • mp4 : la vidéo d'origine toute droit sortie du téléphone en h264
  • webm : la vidéo recompressée en av1

La page web propose les deux formats et c'est au navigateur de choisir la version qu'il préférre. Et bha selon les logs du serveur, 70% des visiteurs ont eu le droit aux versions en av1.

Bref, c'est déjà un codec avec un bon taux d'adoption.

1/3

Alors je sais que c'est pas fiable du tout comme méthodologie. Mon ensemble de vidéo est absolument pas représentatif (vidéo globalement fixes et trop similaires les unes des autres). Qui plus est les vidéos d'origines ont été encodées par un téléphone, il y aurait très probablement moyen de les réencoder sur pc avec d'autres réglages.

Mais dans mon cas présent, l'ensemble des vidéos pèse 35Mo en mp4 pour seulement 10Mo pour les webm en av1. J'ai donc des fichiers qui ne font qu'un tier du poids des fichiers d'origine.

Comment encoder en av1 ?

Il existe plusieurs encodeurs déjà.

  • La libaom : c'est l'implémentation officielle qui n'a pas vraiment d'intéret pour les utilisateurs
  • Rav1e : qui est l'implémentation de Xiph (organisation qui pousse ogg, opus, theora et daala entre autre) qui se veut rapide et sûre
  • SVT-AV1 : qui est l'implémentation made in Intel qui se veut la plus rapide.

J'ai éliminé directement libaom car je l'avais testé quelques mois auparavant et ça peinait à travailler à plus de 2fps (ce qui est vraiment affreusement long même pour de courtes vidéos).

Je me suis tourné vers SVT-AV1 car … heu chsais pas trop. Et wow, ils déconnent pas quand ils disent que c'est rapide.

Au premier essai ça m'a fait du 48fps. Wow !

Bon, en fait en changeant un peu les paramètres ça descend un peu mais ça reste quand même très élevé. Il y a un paramètre permettant de changer la vitesse qui est par défaut réglé de façon à être le plus rapide possible, en le baissant, le poids du fichier est grandement diminuée.

J'ai donc fait des tests d'encodage avec la vitesse max (8), mais pour l'encodage final j'ai baissé à la vitesse 2. Et je suis tombé aux alentours de 3fps. Donc ouai je suis retombé probablement au niveau de la libaom…

Bon et pour la pratique voilà comment j'ai fait :

  1. chopper les sources sur le repo github
  2. les compiler
  3. mouliner le truc à base de ffmpeg et envoyer ça à SVT
  4. muxer le fichier obtenu dans du webm

Alors pour l'étape 3 j'ai utilisé une commande de ce style : ffmpeg -i ./partie7.mp4 -nostdin -f rawvideo -pix_fmt yuv420p - | /home/lord/githuberies/SVT-AV1/Bin/Release/SvtAv1EncApp -i stdin -fps 60 -q 63 -w 720 -h 1496 -enc-mode 2 -b ./partie7.av1

La commande est particulière parcequ'actuellement le compresseur ne sait se débrouiller que si on lui envoie les images dans un format bien particulier (ce que fait ffmpeg). Mais bon rassurez-vous, il existe déjà un patch pour intégrer ça directement dans ffmpeg pour que ça soit bien plus simple à l'avenir.

Et concernant l'étape 4 il suffit d'un simple ffmpeg -i partie7.av1 -c:v copy partie7.webm et vous voilà avec un fichier webm à placer où_vous le souhaitez.


Bon par contre héberger des vidéos ça bouffe beaucoup de bande passante (je suis loin de saturer, hein). Certains mois je transfère dans les 10Go de données et bha je les aie atteints en quatre jours :-)

Silver Bullet

Un film assez basique. Pas mauvais ni brillant, au final il se laisse voir même aujourd'hui.

Les effets spéciaux sont pas trop dégueux, on a évité le pire. Le jeu d'acteur est bon et le gamin handicapé a quand même le droit à des fauteuils roulants de la mort !

L'histoire est plutôt classique sans trop de surprise. On demanderai au premier venu de pondre un scénar de film de loup-garou on obtiendrai un truc assez proche. La seule originalité est d'avoir un enfant handicapé.

Bon… bha… pas grand chose de plus à dire.

Cat's Eye

J'avais un peu peur ce film, surtout quand on m'a dit “Comme Creepshow c'est un film à histoires multiples”. Aoutch… “Comme Creepshow…” Hmm

Dans les deux premières minutes ça te balance des wink wink références à Cujo et Christine des moins subtiles. Là je commence à avoir peur.

Et au final bha… C'était vraiment bien ! Non sans blague ce film est plutôt bon.

Les histoires sont cools, les acteurs aussi, les décors, les effets spéciaux… Non c'est vraiment pas mal du tout. La musique est un peu merdique, c'est de qui ? Alan Silvestri ?!

Hein ?! Et on est en 1985 ! Ptain la même année il pond la musique de Retour vers le futur qui est super et cette musique nazebroque ?! Et bhé, le grand écart la même année.

Au final c'est la musique qui est le point noir du film.

Et franchement le chat. Mais c'est un putain d'acteur ! Il est sacrément bon, comment ont-ils réussi à lui faire faire tout ça ? O____o C'est ahurissant.

La première histoire est plus comique et absurde que terrifiante. Une histoire de compagnie dont le but est de faire arrêter la clope à ses clients avec des méthodes assez hardcores. C'est assez amusant avec un bon twist. On y retrouve un James Woods beaucoup moins badass que dans Vampires.

La seconde histoire est mieux avec un gros vicelard fou de paris. J'aime beaucoup l'aspect graphique de celle-ci. J'ai pas pu m'empêcher de penser à Grim Fandango avec les enfianteurs de corniches. Ce coup-ci c'est Robert Hays qui s'y colle dans un rôle bien plus sérieux que dans Y-A-T-Il Un Pilote Dans L'Avion ?. Et il est plutôt bon acteur le gugusse, c'est presque dommage qu'il se soit coltiné l'étiquette de loser traumatisé ridicule.

La dernière histoire nous met une couche de Drew Barrymore en gentillette gamine qui trouve un chat et qui veut le garder (normal, non ?). Mais c'est sans compter sur une mère reloue au possible (elle prend la tête au mari, au chat, à la gamine) mais surtout sur une incarnation de Pillow Pants (tout du moins je me le visualise bien comme ça). Bref, il y a ptit troll qui hante la gamine dans sa chambre. Et là il y a de la baston et des effets spéciaux pour simuler la chambre d'enfant et tout. J'ai adoré. Un joli ptit tour de force même si on décèle quand même les effets spéciaux, c'est super à voir.

Voilà. Je m'attendais à une bouse et je suis super agréablement surpris.

Je me le referai très volontier.

Messagease en vidéos

Je vous ai déjà fait un article concernant Messagease mais j'ai eu quelques retours. Souvent les gens sont assez convaincu par l'article mais une fois devant la bête se retrouvent un peu perdu.

Pour les non-initiés, Messagease est un clavier Android cherchant à minimiser la taille du clavier en faisant fi des claviers physiques et en jouant à fond sur le tactile pour proposer une approche différente. Il est particulièrement adapté pour être utilisé à une seule main avec peu de touches tout en proposant plus de caractères accessibles que les claviers traditionnels.

Je vous ai fait 7 petites vidéos concernant les fonctionnalités que j'utilise régulièrement et qui font sa force.

1. Écrire des lettres

Parceque ouai, un clavier c'est avant tout pour écrire. Voilà le fonctionnement ultra basique pour les lettres.

Les lettres jaunes sont en accès direct : on appuie dessus et c'est bon. Pour les lettres blanches il faut appuyer sur la case puis glisser la direction de la lettre voulue.

## 2. Écrire des chiffres Vous êtes au top pour les lettres, on passe aux *chiffres*. Bon rien de transcendant.

Vous pouvez soit appuyer sur 123 pour passer tout le clavier en mode chiffres. Soit vous pouvez faire des cercles anti-horaires sur les cases où se trouveraient les chiffres si vous étiez en mode chiffres.

3. Les caractères spéciaux et les émojis

Bon bha après cette https://lord.re/posts/183-video-messagease/partie vous saurez tout écrire.

Vous pouvez afficher plus de caractères en glissant vers le haut depuis la barre espace.

Et si vous avez besoin de vos émojis vous les trouverez dans le coin tout en bas à droite.

4. Les déplacement ainsi que le coupé/copié/collé

Même si rien ne l'indique, le clavier propose les flêches directionnelles pour se déplacer. Pour la gauche et la droite il faut glisser dans la dite direction depuis la barre d'espace. Pour les verticales il faut glisser vers le haut depuis i ou descendre depuis s.

Pour la gestion du copié collé c'est en glissant depuis la touche 123.

Pour sélectionner tout le texte, un cercle sur 123.

5. Les textes prédéfinies

Il est effectivement possible d'enregistrer des phrases prédifinies que vous écrivez souvent pour pouvoir les ressortir en deux secondes (une adresse pour le GPS, un message parceque vous conduisez, ce genre de trucs). Un appui long sur 123 puis vous glissez sur l'une des neuf cases.

Pour les définir, il vous suffit d'écrire le texte, le sélectionner et faire comme si vous vouliez poser une phrase prédifinie. Le fait d'avoir un texte sélectionné remplacera le texte existant par le nouveau.

Et d'ailleurs en passant, si les 9 de base ne vous suffise pas, en appuyant au préalable sur 123 vous aurez accès à 9 de plus.

6. La taille du clavier et son placement

Un des avantages de Messagease est le fait d'être tout petit. Mais pour aller plus loin on peut altérer sa taille pour mieux s’adapter à votre morphologie.

Pour ça il faut glisser sur le bouton de la main de haut en bas pour changer la taille ou bien de gauche à droite pour décaler le clavier.

7. Les touches modificatrices et les diacritiques

Si vous êtes dans une des rares applis nécessitant de faire du Ctrl, Alt ou Echap, vous aurez ce qu'il vous faut, même si l'appli n'a rien de prévu.

Vous pouvez également faire des accents et autres symboles en entrant une lettre puis en glissant en diagonale vers le haut à gauche sur la touche a. Bon vous remarquerez que je suis pas très doué pour ça… je ne m'en sert pas.


Bon j'espère qu'avec ces vidéos vous voyez un peu mieux le fonctionnement de la bête et avec un peu de bol vous aurez appris un truc ou deux.

Certaines fonctionnalités que je vous ai montré nécessitent d'être activées dans les options du clavier (en appuyant longuement sur la main).

Il en existe d'autres mais si vous maîtrisez ça vous serez déjà un pro de l'affaire.

Perso je n'affiche même plus les lettres qui ont tendance à me pertuber plus qu'autre chose. Et le plus dur est d'arriver à trouver la bonne taille et le bon placement du clavier quand on change de téléphone (ce que je n'ai pas encore trouvé avec ce nouveau téléphone).

Bon j'espère que ce format vidéo est suffisamment parlant (haha c'est muet), le découpage a été laborieux (depuis le téléphone). Les vidéos sont en format av1 et h264. Voilà tout.

Firestarter

Fond sonore

Un laboratoire un peu louche du gouvernement qui donne un peu de pognon pour avoir des cobayes pour tester des produits qui “font des trucs”. Des jeunes sans le sous à patte d'eph qui se laissent tenter et qui hallucinent en fricottant. Du synthé, du texte avec des dégradés dignes du WordArt. Ouai on est bien dans les années 80.

Ce film est molasson et bourré de clichés. Il pourrait être bien plus cool s'il se faisait charcuter pour passer de 2h à 1h30.

Le jeu des acteurs est bon, surtout Drew Barrymore qui est plutôt convaincante malgré son jeune âge. Et puis les effets spéciaux sont globalement sobres et du coup ne sont pas ridicules.

Les personnages sont hypers clichés : le borgne manipulateur, le costard cravateux avec son brushing des enfers en pure pourriture, les scientifiques avec leur blouse qu'ils ne quittent jamais, le gentil couple de petit vieux prêt à prendre tous les risques et donner ses affaires pour aider de parfaits inconnus mais bien ricains. Ça passait à une époque toute cette accumulation ?

Children Of The Corn

La musique à écouter pour lire. Et bhé… je ne connaissais pas du tout ce film, mais je savais qu'il avait eu des suites, bref c'est un signe que ça doit être plutôt cool.

Et là vous vous prenez une sorte de téléfilm de fin de soirée dans les dents. Les acteurs adultes sont à peu près convaincants mais les gamins (dont certains sont pas si gamins) vous mettent une bonne grosse dose de surjeu.

Autant certaines idées sont pas folles mais pas ridicules non plus mais l'enchaînement de mauvaises idées du héros fait qu'on a franchement du mal à s'y plonger. Bon et vers la fin, c'est vraiment triste mais on a le droit à des effets visuels… wow … très … heuu … violents pour les yeux. Il aurait mieux valu s'abstenir mais bon le mal est fait.

L'idée de base est pas mauvaise : des gamins qui créent leur propre religion où ils se débarassent des adultes via des sacrifices à une divinité étrange. Lorsqu'ils deviennent adultes ils sont également sacrifiés pour apaiser la bête. Bon c'est cool mais niveau long terme ça marche pas trop comme religion hein.

Bref, leur ville est désormais vidée de tous ses habitants ce qui donne d'ailleurs quelques scènes post-apo plutôt réussies. Mais voilà quand un adulte se fait malmener par des gamins, c'est dur de filmer l'adulte qui se défend réellement. Parceque bon tabasser des gamins, même fanatique, c'est pas trop dans les mœurs et pourtant ç'aurait été la solution efficace.

Bref, la critique de la religion est l'aspect le plus intéressant du film, c'est pas les scènes d'actions ni le jeu, ni les dialogues, ni grand-chose qui sauve le film. Bon en fait si, la musique est bonne je trouve, mystérieuse avec des chœurs d'enfant des synthés stylés. Ça colle plutôt bien. Ouai en fait c'est la musique que j'ai préférré dans ce film.

D'ailleurs petite remarque : à la toute fin du film, dans la dernière minute il y a quelque chose qui sort de nulle part. Tention je vais spoiler un peu !

Là, tout est fini, nos deux héros s'en sortent et ont également sauvé deux mioches des mains de cette communauté. Le héros monte dans la bagnole et là POUF ! Une ultime fervente tente de l'assassiner à gros coup de faucille, on est à 30secondes du générique ! L'homme se débat, parvient à s'extraire du véhicule et boum, un coup de portière dans la gamine. Et ? Et bha il sort de la voiture et part à pied avec ses trois comparses et “The end” dans un silence gènant. Le générique commence à monter on voit encore les acteurs marcher et voilà. Cette petite scène dure réellement 37 secondes. Quelle est la valeur ajoutée de ce truc ? Et pourquoi mettre le générique si tôt avant la musique ? Wow.

Bon, ils ont fait combien de films dans cette série ? 10 !?! Ha ouai ! Hmm chuis ptet maso mais du coup ça m'intrigue d'autant plus. Est-ce que ça vaut le coup ?

Récap 03 : Octobre 2019

Ce mois-ci on change d'heure, ça me perturbe pas tant que ça si ce n'est qu'il fait nuit tôt mais comme il fait encore suffisamment chaud ça me va !

Blog

Sur le côté j'ai ajouté un texte à côté des icônes parcequ'elles n'étaient vraiment pas parlantes. C'est un peu plus clair comme ça. Je me suis d'ailleurs un peu amusé concernant le lien fediverse pour lui mettre son petit dégradé. J'ai même essayé de le synchroniser un peu avec l'icône qui tourne (tout le monde ne l'avait pas remarqué).

5 petits articles ce mois-ci, j'ai pas trop trop d'idée pour écrire… ça va revenir (?). 12 visionnages, 11 commentaires, 457831 requêtes, 45091 visiteurs uniques, 11.14Go de trafic.

Films

Seul sur Mars

Sorti il y a quatre ans, ce gros film de science-fiction tiré d'un bouquin est génial. Le casting, les images, l'ambiance, l'histoire : tout est bien. On ne s'ennuie pas et je me le referrai encore plus tard avec plaisir.

Midsommar

Chaudement recommandé par Korbak, ce film sorti un peu de nulle part est excellent ! C'est un film d'horreur où le malaise est omniprésent. Gardez un film léger à voir ensuite pour pas vous pendre.

Scanners

Vous êtes très probablement déjà tombé sur un gif d'un homme dont la tête explose. Bha ça vient de ça. Le film parle de personnes aux capacités surnaturelles et leur traque. Bref, même si le film a vieilli il est sympa à reluquer.

Hereditary

Avant de faire Midsommar, Ari Aster a fait ce tout premier film. Il est vraiment super. C'est un film d'horreur classieux, avec une lourde ambiance et qui évite pas mal de clichés. Pas révolutionnaire dans son scénar mais vraiment vraiment bien fait et prenant.

HellRaiser 1

L'origine d'une grande lignée de film (keuf keuf) de films d'horreur. Il pose les bases d'une mythologie mystérieuse et intrigante qui mériterait des bons films. Celui-là est bon malgré son aspect daté et un faible budget.

Carrie

Je déclare ouvert le marathon des adaptations de Stephen King au cinéma. Ça commence par un classique du film pour ado. Et bha personellement j'aime pas trop. Ça a vieilli aussi bien techniquement, que dans les mœurs et ce rythme … soporifique.

The Shining

Un de mes films fétiches, si je fais ce marathon c'est juste un prétexte pour revoir celui-ci :-° ! J'ai pas encore vu tous les autres, mais il sera très probablement très haut dans le classement des meilleures adaptations bien qu'il ne soit pas vraiment fidèle à l'œuvre originale. Tout est bien pensé et réalisé dans ce film. Encore !

Creepshow

Seule adaptation sortie en 1982. Aoutch premier faux-pas : c'est lent, sans grand intéret, sans conclusion, ça empeste le navet. Composé de 5 histoires, une est sympa, deux regardables et deux chiantes. Malgré une note pas dégueu, j'ai trouvé ça chiant. Tiens d'ailleurs, le fiston King a un rôle de gamin un poil sadique ^__^

Cujo

1983, grosse année avec 3 bons films de Stephen King. Cujo est d'ailleurs le premier à se passer dans une des villes fictives de son univers : Castle Rock. Ici on a le droit à un chien enragé menaçant pour un film tout en tension. Après Creepshow ça fait plaisir d'avoir un bon film.

The Dead Zone

Encore en 1983 et encore à Castle Rock, ce coup-ci on est dans du surnaturel avec un Christopher Walken clopinant. Bien que posé voir assez lent le film est captivant avec des personnages attachants et une histoire vraiment sympatoche. C'est vraiment tranquile et se laisse voir avec plaisir.

Red Team

Une petite pause dans le marathon Stephen King. Un film qui pue les vestiaires testosteronés et la guerre froide. Ça tente d'avoir un discours manifestement pro-américain tout en ayant un ptit sous-entendu “ouai mais en fait les américains sont pas non plus top, hein” mais on sent que c'est très forcé. Bref, c'est très moyen et faussement subversif même pour l'époque.

Christine

Dernier film de 1983 de ce marathon et on finit en beauté avec du Carpenter. Vraiment super film avec tous les éléments d'un bouquin de Stephen King. Jusqu'à présent, des grands réalisateurs se sont succédés et j'ai peur que les prochains films soient plus … rugueux.

Jeux

Mindustry

C'est un jeu que j'ai découvert très récemment et qui est fichtrement bien foutu. C'est un parfait mélange de Factorio et de Tower Defense.

L'aspect usine n'est clairement pas aussi poussé que dans Factorio, mais il faudra tout de même parvenir à accumuler certaines ressources primaires pour ensuite les transformer en autres ressources. Il faut gérer l'approvisionnement en énergie tout cela en essuyant des vagues de divers ennemis.

Vous aurez donc dans votre arsenal des tours aux capacités variées. Il vous faudra assurer leur ravitaillement en munitions et pourquoi pas les soutenir avec des bâtiments permettant de les booster, les réparer ou les complémenter.

En plus d'être vraiment cool et bien pensé, le jeu est libre et ne nécessite que java pour fonctionner et est donc dispo sur un peu toutes les plateformes (même mobiles). C'est d'autant plus exceptionnel que le jeu propose un concept original ce qui est tout de même rare pour un jeu libre.

Il propose une campagne qui permet de découvrir les différents concepts progressivement au fil des niveaux, un peu comme un tuto géant mais qui ne vous prend pas par la main pour autant. Une fois la campagne terminée, vous pourrez tester divers niveaux dans 4 modes de jeu différents. Et après vous créerez vos niveaux dans l'éditeur. Voilà c'est super et ça se trouve sur le site officiel qui est leur dépot github.

Musique

Je me suis mis sur le dernier album de Tool. Et bha … il m'a fallu un peu de temps pour accrocher mais maintenant je l'adore. Fear Inoculum est bien trippant, c'est atmosphérique, précis, ennivrant. C'est parfait pendant que j'écris.

Ça tourne en fond, ça se laisse oublier, on y prête attention quelques instants, on le réoublie. Les longs morceaux avec la basse toujours bien présente sont ponctués d'une voix qui sait ne pas prendre le dessus sur les instruments de musique.

J'ai jamais trop écouté Tool auparavant étant plus habitué au death metal bien puissant, mais je pense que je m'y pencherai dessus. Je pense que ça devrait bien le faire pour s'endormir.

Nuxeries

Pour le marathon Stephen King, j'ai dû chopper quelques films et trouver des pistes sons, des pistes de sous-titre et tout muxer. Rien de bien transcendant mais très chiant et très manuel. Les sous-titres c'est vraiment foireux.

J'ai également migré mon instance Pleroma sur l'Odroid N2. La migration a été un peu chaotique car j'en ai profité pour migrer de acme-client à acme.sh et j'ai grillé mon nombre de tentatives de challenge et j'ai donc dû patienter une heure. Bref, faut toujours penser à faire un ptit coup sur le staging de letsencrypt quand on est pas sûr que ça fonctionne du premier coup.

Je ne crois pas que ce soit lié à la migration de serveur mais plus à une update globale mais j'avais peté mon instance qui ne pouvait plus envoyer de toots publics. Un ptit coup dans la base de données avec select * from users where info is null; me renvoyait deux lignes qu'il a fallu que je vire pour réparer le truc. Voilà voilà.

Vidéos

Une petite minute de relaxation et de contemplation. Vol de nuit au-dessus de la péninsule arabique.

Séries

Je me suis déroulé la Saison 1 de Castle Rock. J'adore Stephen King, à un point où j'ai même lu un de ses livres (je ne lis absolument pas, c'est dire si c'est un exploit). D'ailleurs après la série je me suis commencé un marathon Stephen King.

Du coup là Castle Rock c'est une série originale qui se passe dans son univers (parceque oui c'est tout un univers). Castle Rock est donc l'une des villes fictives où s'est déjà déroulé plusieurs de ses histoires. On retrouve des acteurs ayant tourné dans Ça, dans Carie avec des histoires surnaturelles comme j'aime.

C'est bien fait, joliement filmé, l'intrigue est super. Une grande partie de l'intrigue repose au final sur l'effet Koulechov et ça tient jusqu'à la fin.

Vrac

Tiens une autre galerie d'images. Ce coup-ci c'est un mix film noir et science-fiction avec un style graphique des plus charmeur. Le projet s'apelle Aurora Noir de Tim Razumovsky.

Complètement différent, un article concernant 4 types de documentation. C'est un sujet qui me touche pas spécialement mais qui au final est intéressant et du coup j'ai envie de refaire une doc concernant les services IRC sur Geeknode. Bref, je suis en train de faire ça, ça sortira d'ici quelque temps, quand je serai à peu près satisfait du résultat.

Pleroma : problèmes de toots publiques

Je viens de passer une semaine avec mon instance Pleroma à moitié petée. Enfin même pas la moitié juste un petit morceau : je pouvais plus envoyer de toots publics.

Les toots à destination des followers uniquement ou les messages privés arrivaient bien.

Étrange, n'est-il pas ?

Bon pas de bol, en utilisant les versions OTP de Pleroma, on a aucun log de base. J'ai donc lancé pleroma de façon à voir les logs à l'écran :

su - pleroma -s ./bin/pleroma start_iex

Et là j'ai tenté d'envoyer un toot pernicieux pour avoir le droit à ce message d'erreur :

ex(pleroma@127.0.0.1)1> 19:18:01.486 [error] Task #PID<0.6188.0> started from PleromaJobQueue.Worker terminating
** (UndefinedFunctionError) function nil.deactivated/0 is undefined (module nil is not available)
    nil.deactivated()
    (pleroma) lib/pleroma/web/activity_pub/activity_pub.ex:70: Pleroma.Web.ActivityPub.ActivityPub.check_actor_is_active/1
    (pleroma) lib/pleroma/web/activity_pub/activity_pub.ex:128: Pleroma.Web.ActivityPub.ActivityPub.insert/4
    (pleroma) lib/pleroma/web/activity_pub/activity_pub.ex:332: Pleroma.Web.ActivityPub.ActivityPub.announce/5
    (pleroma) lib/pleroma/web/activity_pub/publisher.ex:204: Pleroma.Web.ActivityPub.Publisher.publish/2
    (elixir) lib/enum.ex:783: Enum."-each/2-lists^foreach/1-0-"/2
    (elixir) lib/enum.ex:783: Enum.each/2
    (pleroma) lib/pleroma/web/federator/publisher.ex:60: Pleroma.Web.Federator.Publisher.publish/2
Function: #Function<3.57955314/0 in PleromaJobQueue.Worker.maybe_start_job/4>
    Args: []

Et je sais pas vous mais moi ça me parle absolument pas et d'ailleurs Elixir est vraiment exotique à mes yeux (rien que la syntaxe de la conf est étrange je trouve). Du coup je suis allé pleurnicher auprès du salon #pleroma sur Freenode.

Visiblement, ma base de donnée est un poil abîmée.

Donc on s'y connecte :

  • su - postgres
  • psql
  • \c pleroma_prod;
  • select * from users where info is null;
  • Si vous avez des résultats à la commande précédente et qu'il s'agit de comptes distants, vous pouvez (et il le faut)les dégager
  • delete from users where info is null;

Voilà, maintenant la base de donnée est dans un meilleur état. Il ne reste plus qu'à relancer votre instance et c'est repartit, vous allez pouvoir shitposter like a boss.

Holala Chrome a rendu uBlock Origin incompatible !

Hahahahahaa Je me marre.

Il y a un mini-drame en ce moment concernant le fait que Ublock Origin (le bien qu'il faut utiliser) ne peut plus fonctionner sur Chrome. Des gens gueulent parce que bon c'est quand même chiant de plus pouvoir utiliser le meilleur antipub sur son navigateur favori.

Hey ! Mais réveillez-vous !

Vous utilisez le navigateur par la plus grosse boîte de pub au monde !

Faut pas s'étonner qu'ils se démènent pas trop pour faire tourner un truc qui nique leur business.

En utilisant Chrome vous jouez le jeu de la stratégie Google. Leur but est de se rendre partout indispensable en adoptant la fameuse Embrace, Extend, Extinguish.

  • Tout d'abord ils ont aidé le web en proposant un nouveau navigateur innovant.
  • Ensuite ils ont poussé tout un tas de standards et pratiques avec Chrome.
  • Et on passe ensuite dans la troisième phase où ils deviennent clairement hostiles en bridant les fonctionnalités permettant de bloquer les pubs, en tentant d'imposer un sous-ensemble du web qu'ils hébergent eux-mêmes (AMP) et autres saloperies qui sortent régulièrement.

:wq

PS : ouai j'ai oublié de poster l'article, ça fait une semaine qu'il traîne, j'ai raté la vague.

Christine

Dernière adaptation d'une œuvre de Stephen King de 1983 et non des moindres. Aux manettes, le grand John Carpenter. Franchement qu'est-ce qui pourrait arriver de mal ?

Le film commence avec Bad To The Bone, c'est cliché mais finalement est-ce vraiment cliché en 83 alors que le morceau est paru l'année précédente ? Ça en impose sévère.

On a bien les composants d'un Stephen King : un loser maltraité, une machine pas si inerte, un revirement de personnalité, une once de surnaturel, un vieux mystérieux (wink wink).

L'histoire est cool, les persos aussi, les acteurs biens dans le ton, la musique bien synthé de Carpenter fait toujours plaisir. Ce film est vraiment génial. Il est simple mais prenant, sobre mais réussi.

J'aime beaucoup l'effet de la voiture qui se reconstruit d'elle-même. La façon de faire est au final pas si complexe mais visuellement ça rend super bien.

Red Team - Double Détente

Un buddy movie un peu pataud voir lourdingue par moment. Il échoue largement au test de Bechdel (et pas qu'un peu), l'époque n'aidant pas…

Bref, des gros bras, du pan pan du boum boum. On se fout un peu de la gueule des russes mais implicitement on se fout bien de la gueule des amerlocks. Bref, la fin de la guerre froide s'exprime dans tous ses clichés.

Les scènes d'actions ne sont pas spécialement mémorables, l'humour non plus et l'histoire… boarf. C'est très moyen et dispensable.

The Dead Zone

Nous voilà encore à Castle Rock pour une histoire assez surnaturelle. Suite à un accident de voiture (ou ptet même un peu avant, c'est étrange), notre cher Christopher Walken se retrouve doté d'un pouvoir lui permettant de voir le futur ou le passé en d'une personne en la touchant.

Ce film passe tout seul sans qu'on s'en rende compte. C'est très léger même quand il y a une scène d'action, pas une vague. Le rythme posé, les quelques pointes de musiques éparses et le jeu assez fin des acteurs font que ce film est une bonne réussite.

L'histoire est cool. Bref très bon film.

Cujo

Le pitch est assez simple : un bon gros Saint-Bernard se fait becter par une chauve-souris et contracte la rage. Et là, il est pas très content et assez sensible aux sons. Et pouf on bon film.

Le film prend son temps pour poser son histoire. On voit bien le background des persos, les décors toussa, c'est même un poil long à démarrer. Mais, c'est ce qui permet de mieux profiter des scènes de tension par la suite.

Même s'il fait daté, il reste vraiment bien. Le chien joue pas trop mal en plus ! Non je déconne pas en disant ça !

L'histoire se déroule dans la bourgade de Castle Rock dans le Maine. Jolie baraque au bord de la mer visiblement (alors que bon, si je ne m'abuse, il n'est pas censé y avoir de mer à Castle Rock). Certains mouvements de caméra sont assez foufou dont un où la caméra tournoie au centre de la voiture pour filmer tout autour. Jolie performance.

Creepshow

Un film composé de six histoires. Et bha c'est très mouaif.

Les histoires sont à peu près sympa même si au final à chaque fois il manque un truc. Franchement, il n'y a pas de twist, pas de moral, pas de conclusion. À chaque fois on reste sur sa faim.

C'est très nanardesque, avec du latex et du surjeu. C'est long et ça rame pour des histoires sans enjeu.

La seconde est quand même ma préférée. Elle est en plus jouée par Stephen King himself. Il n'est pas meilleur acteur qu'écrivain. Mais le pire c'est que malgré son surjeu d'un personnage simplet, bha en fait on arrive à s'y attacher alors que franchement on s'y attend pas tant que ça.

Ce qui est d'autant plus étrange, c'est que ce film a des avis pas si pourri avec une note globale de 59 sur metacritic ! Mouai.

The Shining

Rhaaalalala mais quel film ! Tout est génial. Franchement c'est top. La musique, les décors, l'ambiance, l'histoire, les acteurs, les jumpscares, le montage.

Je sais que j'en parle souvent mais c'est vrai que pour moi c'est un critère assez important, ce film a pas vieilli : le rythme est toujours bon, les dialogues sont toujours actuels, tout est toujours crédible, les effets spéciaux, les mouvements de caméra. Ce film est toujours classieux et moderne 40 ans plus tard. Surtout qu'il a été vraiment bien remasterisé, la qualité d'image est top.

Il est issu de l'un des rares bouquins que j'ai lu. Et même s'il est loin d'être fidèle, le pitch de base est bien là, il est moins surnaturel mais ptet que tant mieux. Il aurait été probablement difficile de rendre les tribulations avec la chaufferie et les buissons crédible et intéressants.

De nombreuses scènes de ce film sont devenues iconiques :

  • l'ascenceur qui se vide
  • les promenades en tricycle
  • le calin dans la salle de bain
  • les discussions avec ce bon vieux Lloyd dans la salle dorée
  • la ballade dans le labyrinthe
  • les gentils ptits nenfants dans le couloir

C'est un film d'horreur qui commence en mettant direct dans le bain. La scène d'ouverture pourtant basique du trajet en voiture entre Denver et l'Overlook Hôtel dans des décors magnifiques se pose tranquilement. Et là en fait, la musique instaure une ambiance étouffante avec son synthé bien gras et ses sons de ??? heuuu ??? ce sont des voix qui semblent souffrir, ptet des indiens. Enfin je sais pas trop ce que c'est mais c'est vraiment particulier. La petite voiture qui avance se retrouve un peu loin de tout et on sait direct que l'isolement va être un sacré problème. Voilà, il m'en faut pas plus pour entrer direct dans le film, il ne s'est pas passé trois minutes, j'ai pas vu un personnage, pas eu un dialogue que ça y est je suis happé dans le film et là on découvre l'hôtel.

Un point que j'apprécie c'est que bien que le film s'appelle The Shining, on ne sait pas exactement ce que c'est. On ne connait pas l'étendue de ce pouvoir et surtout est-ce que l'hôtel lui-même possède aussi réellement ce pouvoir ? Est-ce que Papa Torrance possède une variante du Shining ou bien est-ce qu'il devient juste fou sous l'emprise du pouvoir de l'hôtel ?

Rhaaaaa que ce film est bon !

Tiens d'ailleurs, petit fun fact, Dick Halloran le gentil cuistot possédant lui aussi le pouvoir du Shining est censé être pote avec les parents de Mike de Ça. (Everything IS Connected !)

Carrie

C'est la toute première adaptation ciné d'un bouquin de Stephen King et ce film est devenu culte. Et pourtant j'aime pas spécialement.

C'est bien filmé avec le Gimmick de la double focale, l'histoire en elle-même est pas mal, les acteurs sont crédibles. Mais qu'est-ce que c'est lent ! Certaines musiques sont vraiment très clichés, on peut difficilement passer à outre.

Et les pouvoirs surnaturels de la Carrie, bon ils sont cools mais bon j'arrive vraiment pas à y croire. Le tuyau des pompiers qui se fait bringueballer au bout d'une ficelle transparente n'est pas vraiment impressionnant. La voiture qui lui fonce dessus mais qui esquive au dernier moment, je n'arrive pas à y croire une seconde non plus. Ce film n'a pas réussi à provoquer la fameuse suspension consentie d'incrédulité.

Et puis le comportement des personnages est choquant. Autant la gamine qui se fait emmerder par tout le monde, c'est pas cool, mais même aujourd'hui c'est malheureusement “normal”. Autant la mère, qui maltraite sa gamine (à coup de bible dans la gueule), bon c'est horrible, mais c'est bien un comportement de pervers narcissique doublé d'une couche de fanatisme religieux. Mais par contre, la meuf populaire du lycée, qui se prend des torgnoles de son mec et qui deux secondes plus tard l'embrasse ! WHAAAAT !? C'était vraiment comme ça dans les années 70 ?!

En fait c'est dommage, parceque ce réalisateur a réussi à pondre de supers films et qu'en plus tout le monde place Carrie dans les films cultes mais j'ai eu l'impression de me taper un nanard. Il y avait du potentiel, mais ce film n'a pas réussi à rester moderne et est très marqué années 70. Déçu

Universal Movie Database

Franchement l'état actuel du partage de culture est bordélique. Si on est un peu exigeant c'est galère de trouver ce que l'on veut précisément.

Chopper un film un peu ancien et peu populaire, dans une qualité vidéo pas dégueu, avec une/des pistes audio dans la langue qui convient dans une bonne qualité et par-dessus on rajoute des sous-titres sans faute d'orthographe, bien synchronisés et dans les/la langue voulue c'est parfois une galère sans nom. Si, par-dessus, on espère trouver ça avec des chapitres et les métadonnées bien renseignées c'est mission impossible.

Il faut se coltiner ça à la main.

Imaginez :

  • Un site qui indexerait tous les films avec leurs différentes éditions (versions longues, nouveau cut, remaster…).
  • La mise à disposition d'un flux vidéo de très bonne qualité dans différents codec (h264,h265,av1) et quelques résolutions (720, 4k).
  • La mise à disposition des flux audio dans toutes les langues ayant été doublées dans divers codecs (mp3, ac3, opus, atmos).
  • La mise à disposition des sous-titres dans toutes les langues (sans faute dû à l'OCR) toujours synchrones.

On aurait alors un site de référence consignant tout ce contenu en assurant leur cohérence. L'utilisateur n'aurait plus qu'à piocher les différents flux et les muxer (les assembler dans un seul fichier) à la lecture (ça ne demande quasiment aucune ressource et se fait en quelques secondes) dans le format qui lui convient (webm, mp4, mkv).

On simplifierait la vie de tout le monde. On stopperait la duplication actuelle du contenu qui se retrouve en multiples versions quasi-identiques éparpillé partout. On s'assurerait d'avoir toujours les meilleures versions du contenu (si une nouvelle version en meilleure qualité est disponible, elle remplacerait la version proposée jusque-là).

Tout ce site pourrait être un point de centralisation des recherches mais ne serait pas nécessairement un point unique d'accès : il pourrait être distribué à plusieurs niveaux. On pourrait effectivement distribuer ces infos via une DHT, une blockchain pour être moderne ou juste par IPFS.

Le contenu en lui-même pourrait se distribuer via torrent voir HTTP ou tout autre protocole.

Et le pire dans tout ça, c'est qu’il serait même possible de rendre ça légal (hahaha je me fait rire, des ayants droits s'entendre ensemble ?!) si sur cette plateforme les contenus étaient envoyés (suite à paiement/abonnement) auprès des ayants droits des différentes sources. Il s'agirait d'un méta-catalogue rassemblant toutes les productions vidéos, les gratuites, les payantes et les fournisseurs seraient rémunérés en fonction de leur contenu.

Bon je vous cache pas que la version pirate gratos m'attire plus mais ce système avec une licence globale ou un prix correct m'attirerait bien.


Il fut un temps où Netflix s'approchait de cette plateforme de rêve. Mais le morcellement du marché de la VOD avec tous les nouveaux acteurs souhaitant leur part du gâteau fout tout en l'air.

On se retrouve avec quinze plateformes avec des catalogues plus ou moins étendus, des solutions techniques différentes, des abos différents, des applis qui se multiplient. On perd l'intéret du point unique universel.

Bref, je sens que seul la piraterie pourrait créer une telle plateforme.

Hellraiser 1 : Le Pacte

Le meilleur épisode d'une saga maudite. Cet épisode fondateur pose les bases d'une mythologie que j'affectionne particulièrement. Bien que la très grande majorité des films de cette saga soit des merdes parfois nanardesques parfois juste nulles il n'en reste pas moins que l'univers est super intéressant.

Le film est très typé fin 80 dans le look des personnages et le jeu des acteurs est vraiment … bof voir à côté de la plaque. Les décors sont plutôt basiques mais la musique est vraiment cool : très atmosphèrique avec un thême qui participe en grande partie à l'ambiance intrigante surnaturelle.

Les effets spéciaux c'est du quitte ou double, certains sont vraiment bien réussi grâce à du maquillage de folie (coucou Franck) d'autres font très latex cheapos. J'en remet une couche mais la scène où Franck revient avec le plancher en panique, les fumées, les clous et le corps… wow wow wow ça m'en met plein les mirettes.

Et bien entendu le design des cénobites est iconique. Chaque film a sa fournée bien à lui avec toujours quand même Pinhead. L'ambiance malfaisante, froide, avec les chaînes qui pendent du plafond, les piliers maudits… wow. Ça c'est l'apothéose de l'ambiance horrifique fantastique.

Et même les lieux qui devraient être rassurant (la maison, l'hopital…) sont aussi bien glauques ici.

Bref, malgré ses défauts dû en grande partie à son budget minuscule et son âge, ce film est génial. Par contre ne vous aventurez pas trop dans les suites, chaque épisode supplémentaire prend une part de votre âme.

Hereditary

J'ai vraiment beaucoup aimé Midsommar du coup il me fallait voir le premier film d’Ari Aster. Et bha il est encore mieux.

Celui-là est un peu moins dans le malaise et plus dans la peur viscérale.

Wow, la gamine jouée par Milly Shapiro est quand même overcreepy. Sans dec, elle est vraiment dérangeante au point où je me suis demandé si elle n'était pas le sujet du film au tout début. Mais … bha en fait non.

C'est une version bien plus sérieuse et moins Sam Ramyesque de Jusqu'en enfer. Ça débute comme un drame chiant. Puis vas-y qu'on te remet une couche bien grasse de drame par-dessus. C'est seulement après que le film va devenir intrigant et horrifique teinté de surnaturel.

La musique est globalement assez discrète mais les vrombissements dans le fond c'est vraiment un moyen simple et toujours efficace pour ajouter de la tension. On s'attend régulièrement à un bon gros jumpscare qui tâche mais que nenni. Ce film a trop de classe pour se permettre d'en mettre.

Le rythme peu soutenu laisse bien le temps à l'atmosphère à s'imposer à vous. Et il restera encore une part de mystère même à la fin du film.

J'attendrai son prochain film avec impatience !

Le mot de passe Unix de Ken Thompson

Cette histoire est toute fraîche. Elle est apparue sur le blog de Leah Neukirchen le 09 Octobre 2019 (version en cache local).

Je vous en propose une traduction avec bien entendu l'accord de son auteur.


Aux alentours de 2014 je suis tombé sur un fichier /etc/passwd dans les sources de BSD3 contenant les mots de passes des vieux de la vieille tels que Dennis Ritchie, Ken Thompson, Brian W. Kernighan, Steve Bourne et Bill Joy.

Comme l'algorithme crypt(3) basé sur DES est bien connu pour être assez mauvais (et limité à maximum 8 caractères), j'ai pensué qu'il serait amusant de cracker ces mots de passe.

Les outils les plus connus pour ce genre d'exercices sont John et Hashcat.

Rapidement, je suis parvenu à cracké la majorité de ces mots de passe, qui pour la plupart étaient plutôt mauvais. (Curieusement, Bwk utilisait /.,/., qui sont relativement simple à taper en Qwerty.

Malgré tout, le mote de passe de Ken résistait à mes assauts. Même une recherche exhaustive de toutes les combinaisons de lettres minuscules et de chiffres prirent plusieurs jours (c'était en 2014) sans résultat probant. Sachant que l'algorithme fût développé par Ken Thompos et Robert Morris, je me demandais ce qu'il se tramait. J'ai d'ailleurs réalisé à ce moment que contrairement à d'autre méthode de hash (comme NTLM), crypt(3) s'avérait plus long à craquer (probablement dû à un manque d'optimisation).

Avait-il réellement utilisé des majuscules ou des caractères spéciaux ? (Une recherche bruteforce exhaustive sur toutes les combinaisons sur 7bits prendrait plus de 2 ans sur un GPU moderne.)

L'histoire est revenue sur le tapis plus tôt ce mois-ci sur la mailing list The Unix Heritage Societyj'y ai partagé mes résultats ainsi que ma frustation à propos de ce dernier mot de passe résistant.

C'est alors qu'aujourd'hui le mystère est levé par Nigel Williams :

From: Nigel Williams

Subject: Re: [TUHS] Recovered /etc/passwd files

ken is done:

ZghOT0eRm4U9s:p/q2-q4!

took 4+ days on an AMD Radeon Vega64 running hashcat at about 930MH/s during that time (those familiar know the hash-rate fluctuates and slows down towards the end)

Il s'agit d'un mouvement d'échec en notation descriptive. Il s'agit d'une ouverture plutôt classique. Cela correspond bien au fait que Ken Thompson est un grand amateur et même joueur d'échec sur ordinateur.

Je suis très content que ce mystère ait pu être percé et la réponse me satistfait.


Voilà, cette histoire est vraiment cool. Déjà, rien que trouver un fichier passwd avec tous ces utilisateurs dans un seul endroit ça parait fou. Ces gens sont des légendes de l'informatique (et du Libre).

Certains de ces mots de passe sont plus complexes que la majorité des passes qui leakent actuellement alors qu'ils avaient des contraintes bien pourris (max 8 caractères sur de l'ascii simple).

La galère pour les billets du Hellfest 2020

Et voilà, aujourd'hui à 12h tapante, le Hellfest a mis en vente ses billets. Autant dire que ça a été la cohue. Du sang et des larmes !

Sans surprise le site ouaib a été pris d'assaut et a souffert.

À 12h tout le monde s'est jeté sur le site. Même en étant un peu en avance il y a eu une file d'attente. Et malgré la file d'attente ça a été très erratiques.

Pour tenter de faire durer le truc, l'équipe du HellFest a choisi de limiter le nombre de vente à 2 billets par commande. Pas de bol j'en avais besoin de 3+1.

11h50

On s'est donc mis à 4 à ouvrir la page, en communiquant via SMS pour savoir où on en était dans la file d'attente. Pour le moment on a juste le droit à un petit compte à rebours. Les logs du serveur doivent commencer à défiler à vitesse grand V.

12h00

Quand on ouvre la page, on nous indique un numéro de place dans la file d'attente. On a eu du 700, du 6000, du 7500 et du 22000.

Il y a environ 50 000 visiteurs par jour, donc on peut estimer à au moins 22 000 pass 3 jours… “ça devrait le faire”. On croise les doigts. Les SMS fusent dans tous les sens.

Là celui ayant commencé à 700 arrive logiquement le premier à la place numéro 1 ! Wouhou l'excitation monte. Il se passe plus rien O__O Qu'est-ce qu'on fait ?!

On patiente et là PAN. Erreur 504.

12h02.

Bon. Du coup on fait quoi ? F5 ?

Allez ! Pan on repart en file d'attente sur ce PC, en 46 000 position. Aoutch ! Ça colle beaucoup moins avec notre petite estimation à l'orteil mouillé.

 

Je suis chanceux, c'est à mon tour d'être en position 1. Et hop j'ai de la chance la sainte page où je choisis mes billets. Je vois qu'il y a un pack billets uniquement et un pack billets+tshirts.

Je tente la feinte : 2 billets + 2 billets tshirts. BUBUUUU. Le site est pas con et m'indique poliement que je ne peux vraiment prendre que deux billets.

Bon je prends, je paye.

12h12

Un peu rassuré, il en manque plus que deux.

Je rouvre un onglet pour me remettre en file d'attente. Wow me voilà 73000.

Mes comparses avancent petit à petit dans la file. Mais l'horreur commence à se produire : le compteur de file d'attente ne bouge plus ! Et là si tu fais F5, tu repars tout en haut de la file.

Dès que ça se coince on se rouvre un onglet et on recommence. L'aiguille tourne ça s'annonce difficile. Le +1 parvient à se prendre son billet mais par manque de synchro (ouai on a été vraiment mauvais sur le coup), il ne prend qu'un billet au lieu de 2. 12h17 il ne nous manque plus qu'un billet.

On est tous en lice. Avec des onglets avec le compteur qui se bloque plus ou moins tard.

J'en suis à 5 onglets simultannés (j'ai pas le cœur de les fermer). Quand on commence la file d'attente on débute désormais dans 120 000. La tension ne redescend pas et c'est un début d'angoisse qui commence à naître.

On a tous des onglets qui descendent descendent descendent puis plus rien. Et les erreurs 500 s'accumulent.

12h47

On se rapproche de 13h, quand on recommence la file d'attente on est désormais dans les 300 000. Par chance ça baisse relativement vite par paquets de 1000. Parfois on gagne 200 000 places d'un coup (un serveur qui purge sa file complète ?).

Et c'est là que le miracle se produit. Un de mes 8 onglets de file d'attente coincé se retrouve comme par magie sur la page de sélection de billet ! O____O

Wow ! J'aurai réussi deux fois ?!

Bon je sélectionne le billet, suivant. Ça moulinne. Moulinne. Erreur 500 Weezevent blabla.

Au lieu de faire F5, je fais le bouton précédent. Je retombe bien sur ma page (surement en cache car c'est instantanné). Je refais la manip.

Le navigateur timeout carrément, même pas une page web envoyée par le serveur. back manip mouline

On répète tout ça une bonne cinquantaine de fois. Chaque fois avec un peu moins d'espoir. Toujours en ouvrant de nouveaux onglets à chaque fois que le compteur s'arrête.

13h05

Je commence à me dire que cet onglet foiré qui est revenu à la vie c'était ptet juste le navigateur qui a récup le cache de la première commande. Le twitair du Hellfest déborde de commentaires de malheureux qui se plaigne de pas parvenir à acheter. Visiblement beaucoup de gens ne sont pas très téméraires et capitule au bout d'un essai.

Vous voulez pas y aller ?

13h25

Bref, on est toujours 4 à marteler le site (gentiement, hein, on utilise pas d'outil spécifique non plus). Et là mon pauvre onglet revenu à la vie parvient enfin à rejoindre la seconde étape !

Paiement.

Pfiouuuuu !

J'ai enfin cet ultime billet. Le soulagement. Le sourire. La joie.

13h30

Sur IRC d'autres personnes arrivent également à prendre leur billet à peu près en même temps. Weezevents auraient-ils réussi à débloquer la situation de leur côté ?

Bref, des sites de revente listent déjà des billets à 1300… Rhaaa les crevards.

Une galère encore pour l'an prochain ?

Des solutions techniques existent pour rendre l'expérience plus supportable. Déjà bloquer les bots avec du captcha ?

Ensuite une gestion de la file d'attente un peu moins étrange pourrait être mis en place. Certaines personnes se sont même retrouvées à perdre des places dans la file au lieu d'en gagner.

Avec l'avènement du cloud toussa toussa. Ne pourraient-ils pas prendre quelques machines supplémentaires pendant les quelques nécessaires ? Ça ne devrait pas être bien compliqué.

Bon je vais pas râler plus que ça, j'ai réussi à avoir tout ce que je voulais mais c'est clairement pas le cas de tout le monde.

Scanners

Scanners a vieilli. C'est triste à dire mais c'est dur de le regarder sans se le dire malheureusement. J'ai du mal à mettre parfaitement le doigts dessus mais le déroulé de l'histoire me perturbe. L'enchaînement scénaristique me semble parfois plutôt étrange.

Le film est quand même super cool. Ses effets spéciaux pratiques sont vraiment super (la fameuse tête qui explose) et malgré leur âge restent franchement classe. L'affrontement final est vraiment sympa aussi mais c'est ptet parceque Michael Ironside a une allure démente avec son trou de balle sur le front.

C'est marrant de voir l'informatique dans ce film avec son ordinateur, ses terminaux, son piratage via le téléphone. C'est étrangement moderne et «réaliste» pour un film dont ce n'est pas le sujet principal.

Bref, le film est pas trop long et se laisse regarder.

Midsommar

Quel film intriguant.

Ça commence comme un gros drame, puis ça part dans l'insouciance à partir de la moitié du film c'est le malaise incessant. Et le pire c'est que lorsque tu crois être arrivé à l'apogée du malaise et PAN ! Une couche supplémentaire de malaise. Le rythme assez lent n'aide pas à se dissiper ce sentiment oppressant.

Déjà de base j'ai tendance à trouver très étrange les communautés isolées et tout ce qui est respect des traditions mais alors là le combo des deux c'est l'horreur. Et le pire c'est que tout se passe dans une simili-bonne-ambiance joyeuse sous le soleil et un grand ciel bleu.

Les quelques effets graphiques sont plutôt réussi et donc le film n'est clairement pas à mettre en toute les mains.

C'est un très bon film qui est vraiment pas mal différent des autres films d'horreur. On a pas vraiment peur mais on crève d'envie de s'enfuir pour respirer.

J'ai adoré les effets visuels lorsque nos pauvres personnages sont sous les effets des drogues : ça reste subtil mais on perçoit des ptits détails dérangeants et on focus dessus. Du coup on perd un peu ce qu'il se passe à l'image, un peu comme si… HO WAIT nous aussi on est schnouffé !

Bref, il est vraiment cool.

Seul Sur Mars

À sa sortie il m'avait fait vraiment de l'œil : Ridley Scott qui repart dans l'espace mais pour de la science pas trop fiction. Pas d'alien ici mais de la survie crédible.

Un pauvre astronaute qui se retrouve abandonné par son équipe sur Mars, tout seul (c'était pas intentionnel).

C'est un sacré débrouillard qui va chier de la science pour tenir bon. Il lui faut trouver de quoi se nourrir. Il lui faut de quoi communiquer.

J'adore. J'imagine que tout n'est pas 100% réaliste mais c'est bien crédible à mon niveau. La réalisation est très propre et pas fofolle au point d'avoir presque l'impression de regarder un docu-fiction. Pas trop de musique (en dehors de la disco intra-diégètique), biensûr il y a des effets spéciaux numériques mais c'est pas fait de sorte à en jeter. C'est sobre et propre.

Le casting est vraiment impressionnant, là où ils auraient pu foutre du second couteau voir du figurant, ils ont sorti de la star. On ne s'ennuie pas grâce aux ellipses narratives qui arrivent aux bons moments.

Même quatre ans après sa sortie en second visionnage je ne me suis pas ennuyé à subir de la redite. Le film évite de jouer au larmoyant, il tombe pas dans la surenchère d'action, tout est bien dosé.

Merci Ridley pour ce super film.

Récap 02 : Septembre 2019

La France se réveille avec la rentrée, les routes s'engorgent, les températures s'apaisent, la pluie se généralise.

Blog

Bon après le récap du mois dernier je me suis dit que je pourrai garder une trace des avis des films que je mate. J'ai donc pas mal fait mumuse avec Hugo et maintenant je tenterai de publier les avis sur les films que je pourrai mettre à jour facilement en cas de revisionnages. J'hésite à ouvrir les commentaires sur cette section…

Ce mois-ci il y a eu 4 articles, 12 visionnages, 42 commentaires, 483204 requêtes, 42895 visiteurs uniques, 12,65Go de téléchargement.

Films

Kiss Kiss Bang Bang (2005)

Le brouillon de The Nice Guys avec Robert Downey Jr et Val Kilmer qui partent dans une enquête biscornue. C'est bien mais pas top. Je l'avais déjà vu et je me rappelais pas de l'histoire, juste que c'était sympa. Bha je pense que j'en garderai le même souvenir.

Men In Black 4 : International

Fraîchement sorti et étant un amateur de Men In Black je voulais le voir. Bon, aurevoir le casting du début et bonjour les nouveaux. Je n'en attendais pas grand-chose, mais je m'attendais à pire. Cet épisode sera très probablement vite oublié.

The Dead Don't Die

Sortie en juin, je n'avais vu que l'affiche traîner dans la rue avec un sacré casting à l'affiche. Bill Murray et Adam Driver sont deux flics dans un bledaillon ricain. Au bout d'une heure chiante les zombies arrivent dans le film et … ça reste tout aussi chiant. Ce film est frustrant et mou et inintéressant et l'humour est trop éparse pour sauver le tout. Un joli gâchi.

Eraser

C'est à mon sens d'un des films qui annonce la fin des gros films d'actions des années 80/90 avec Schwarzy. Il est tout plein des clichés qui vont avec ce style de films. Le revoir une fois tous les vingt ans est le bon rythme (pas plus).

Y-a-t-il Un Pilote Dans L'avion ?

Une comédie culte des années 80. Même si certains gags sont très limites désormais, ça reste globalement très drôle. Un nouveau gag toutes les trente secondes, des jeux de mots permanents. Il est pas culte pour rien.

Mad Max : Fury Road

Le meilleur film des années 2010. Tout est bien, musique, univers, acteurs, décors, enjeux, message. Celui-là je le remate très régulièrement. J'ai eu le droit à une séance 4DX avec siège dynamique, effets à la con et tout, c'était éprouvant tout de même.

Ça : partie 1

Par un concours de circonstances, au lieu de voir la partie 2 je suis tombé sur la partie 1… Toujours est-il que ce film est excellent. Le réalisateur a sacrément bien géré son coup en faisant l'un des meilleurs films d'horreur. J'aime beaucoup les Stephen King et celui-là est parmi les meilleurs.

Y-a-t-il Enfin Un Pilote Dans L'avion ?

La suite en moins bien. Autant le premier est vraiment à voir, celui-là on peut s'en passer. C'est quand même drôle bien que parfois lourdeau.

Ça : partie 2

Bon je suis tout de même parvenu à voir cette seconde partie. C'est agréable de retrouver ces personnages même si j'ai perdu pas mal d'empathie envers leurs versions adultes. Bien que moins flippant et plus fantastique, ce film est clairement très bon.

Iron Sky 2 : The Coming Race

Le premier était vraiment drôle et assez unique à l'époque. Sa suite est plus pataude même si ça se laisse regarder. C'est limite bancal à deux doigts de tomber dans le lourdingue mais ça se maintient quand même grâce en partie à sa technique pas ridicule (les effets spéciaux sont quand même bluffant pour une production de ce type).

Apocalypse Now

Quarante ans plus tard je découvre enfin ce film (dans sa version redux de 2001). Le visionnage est vraiment agréable même si j'ai été un poil déçu par la fin. Ce film est vraiment classe avec son feeling des films sans CGI aux décors naturels et tout. Il mérite son statut de film culte.

X-Men : Dark Phoenix

Et bhé, le casting ne parvient pas à sauver ce film. C'est chiant, on s'emmerde avec des vilains sortis de nulle part et sans background. Meh pourtant j'aime bien les X-Men…

Musique

Des morceaux posés ce mois-ci. Pas vraiment de découverte.

Blade Runner Blues - Vangelis (1982)

J'aime beaucoup Blade Runner pour toute son ambiance et c'est en grande partie grâce à sa BO de Vangelis. Ce morceau est probablement celui qui résume le mieux la BO. Il en existe des versions 10h sur youtube. En fond c'est excellent : écouter.

Eminence Front - The Who (1982)

Tiens c'est de 1982 aussi (je savais pas avant de le wikipédier). Ce long morceau pourrait durer deux heures et accompagner de long voyages en voitures avec un coucher de soleil voir de nuit. On le démarre puis on oublie qu'il tourne et d'un coup on reprend conscience qu'il est encore là. C'est la fin de la première partie du groupe qui se séparra après ça. Quoi qu'il en soit, passez-le régulièrement dans le fond : écouter

Bass Attack (Sonic6) - Sonic Mayhem (1999)

Ce morceau provient de la BO de Quake 3 (le meilleur des Quake). Il est assez calme avec des sonorités très électroniques et distordues. En musique de fond quand on se concentre ça passe très bien : écouter

Nuxeries

Matrix

J'ai migré du plugin matrix.lua vers matrix.py pour Weechat. L'ancien n'était plus maintenu alors que le nouveau se veut plus complet et plus à jour. Par contre il a fallu installer pas mal de dépendances mais j'y gagne en confort au final.

Autocomp.sh

Long story short : j'ai voulu faire un peu d'autocomplétion dans un script shell. Bref j'y ai passé un peu de temps mais ça fonctionne pas mal, voici l'allure du truc :

autocomp.sh
#! /bin/sh

line=""
IFS=''
nb_entered_chars=0
while read -r -n1 char
do
  prev_completion="$tmp_completion"
  ans_count="$(grep ^$line$char /usr/share/dict/words -c)"
  tmp_completion="$(grep ^$line$char /usr/share/dict/words -m 1)"

#  printf "$green |$ans_count|$nc"

  case "$char" in

  "	" )
    completed="$prev_completion"
    break
  ;;
  "" )
    completed="$line"
    break
  ;;
  *)
    line="$line$char"
    nb_entered_chars=$(($nb_entered_chars + 1))
  ;;
  esac

  if [ "$ans_count" -lt 100 ] && [ "$ans_count" -gt 0 ]
  then 
    tput sc
    printf "$(tput dim)"
    grep "^$line" /usr/share/dict/words | while read item
    do
      printf "${item:$nb_entered_chars} "
    done
    printf "$(tput sgr0)"
    tput el
    tput rc
  fi

done
stty echo

echo "Tu as tapé $line completé en $completed"

Jeux

Project Zomboid

Ça fait des années que je m'y intéresse de très loin mais là, suite aux vidéos du Cygne Noir, j'ai craqué. Je ne savais pas qu'il y avait du multi mais ça m'a convaincu du potentiel énorme de ce jeu.

C'est un donc un jeu de survie assez réaliste où il faudra se nourir, boire, se trouver un abri, subvenir à ses besoins pour survivre dans le froid. Ça se déroule en 1993 sur une très grande map inspirée d'un coin des USA. Mais pas de bol, il y a une épidémie de zombie et on est donc seul(es) survivant(es).

Déjà, sans aucun mods, le jeu propose déjà beaucoup de contenu. Mais il existe en plus des mods et des maps supplémentaires qui apparemment peuvent vraiment ajouter énormément de contenu. Pour l'instant je n'ai testé que le mod Hydrocraft qui rajoute énormément d'objets, crafts, actions. Je débute vraiment avec ce mod.

Le jeu est assez punitif mais toujours juste : si vous faites une connerie (partir de nuit, avec de l'équipement en piteux état) vous risquez de perdre quelques points vie, voire de chopper une infection de zombinite… À vous de choisir un mode de vie urbain où vous pillerez les habitations et les magasins pour récolter ce dont vous avez besoin, ou si vous préferez, établir votre campement loin de la civilasition (et donc des zombies) dans une forêt où vous récolterez des baies/champignons en gêrant votre potager et en pêchant à l'occasion.

Le jeu est en early access depuis 8 ans et le sera encore très longtemps. Mais après tout c'est pas vraiment gênant, c'est un jeu-service en constante évolution et bien que non fini est tout de même stable. Par contre son rythme de mise-à-jour est vraiment lent (une version majeure par an).

La version 0.41 devrait bientôt sortir et apporter pas mal d'améliorations notamment graphiques et du contenu également.

Guacamelee 2

J'avais adoré le 1 et @dashie m'a offert le 2 (merci beaucoup !). Malheureusement cet épisode n'est pas disponible officiellement sous Linux contrairement au premier.

Je ne l'ai pas encore fini à 100% mais je m'éclate. Il est vraiment super à jouer : c'est un Metroidvania 2D assez fun se déroulant dans le Mexiverse.

C'est la suite immédiate du premier et rien que là on sent que les devs sont très doués : les premières minutes du 2 nous font rejouer les dernières minutes du précédent mais avec une difficulté quasi nulle. Ça permet de se remettre direct dans le bain, faire un tuto contre un boss. C'est vraiment bien amené.

Le jeu regorge de détails montrant le talent des devs ainsi que leur auto-dérision.

Le gameplay est assez exigeant mais le jeu n'est vraiment pas punitif. Quand vous mourrez, vous reprenez tout de suite sans attendre une seconde, sans menu sans rien. Ça permet de prendre plus de risque et de jouer plus dans le flow.

Il faut y jouer à la manette et je suis vraiment pas doué à la manette. Et là tous les boutons sont utilisés pour faire des attaques spéciales, pour déphaser le monde, pour se changer en poulet (oui oui), pour planer, pour se projeter. Bref, je galère à appuyer sur la bonne touche mais j'imagine que c'est un peu voulu et qu'il faut le temps de s'y habituer.

Certains challenges sont vraiment ardus et demandent de la précision, du timing, du réflexe et même un peu de réflexion.

Par rapport au premier, les graphismes sont toujours aussi colorés mais là ils ont rajoutés des effets bien sympas de bumpmapping, parallax mapping et d'éclairages dynamiques (en 2D, oui) et ça rend vraiment pas mal. Les décors sont très stylisés et le Mexiverse est vraiment une super trouvaille avec ses Luchadors, ses poulets, ses calaveras et son Guacamole sacré.

Vraiment dommage qu'il n'ait pas eu de version native nunux. Je trouve quand même qu’en mode normal c'est tout de même assez court : on récupère très vite de nouveaux pouvoirs, il y a au final assez peu de donjons et le hub entre les donjons est parcouru assez vite. De souvenir le premier était plus long.

Web

Un nouveau blog vient d'ouvrir : Dreads Unlock avec maintenant deux articles. Ça parle d'informatique et de son éthique. Je l'ai rajouté au blogroll.

Vidéos

Une ptite connerie qui m'a bien fait rire.

Vrac

J'ai découvert par hasard Dan Mumford qui est un artiste qui fait des nimages toutes mimi. C'est du dessin numérique (sous Photoshop apparemment) avec un style que j'apprécie vraiment. Il joue beaucoup sur les couleurs c'est superbe. Ça me donnerait presque envie de me faire un fond d'écran. Il a une jolie galerie.

Apocalypse Now

Pour fêter les 40ans de la sortie du film (un peu en avance) j'ai voulu découvrir ce film.

L'intro avec This is the end des Doors est déjà super. J'étais convaincu dès la première minutes du film. Le malaise est total au début, le Capitaine qui est complètement HS, quand on lui attribue sa mission tout est fait en sorte pour que ce soit dérangeant avec des gros plan qui bougent sur de la bouffe aux couleurs dégueux.

Ce pauvre Mastin Sheen semble malmener tout le long du film. C'est crade, immoral, rempli de tarés, ça semble étouffant, des cadavres de partout. Ça fait pas rêver.

La palette de personnage est bien enterprêté et les décors sont magnifiques. Comment ce film n'a pu coûter que 30millions ?! Le même film aujourd'hui coûterait trois fois plus, dégobillerait d'effets numériques de partout. Là c'est vraiment viscéral.

Le tournage a dû être un calvaire mais le résultat est bluffant. En fait j'ai beaucoup aimé tout le film sauf la fin quand on rencontre enfin Marlon Brando. Je sais pas pourquoi mais on nous survend le côté mystique et complètement taré du personnage et quand on le voit. … Bha… Ouai il est un peu allumé mais je n'arrive pas à croire qu'il puisse avoir une aura telle qu'il parvienne à embrigader ses militaires mais aussi ses autochtones.

Ça m'a direct sorti du truc. Les gens parlent pas sa langue et se font massacrer par des ricains et lui en déclamant trois poêmes et demi pouf ils les rallient à sa cause et leur insufle toute une mythologie au point d'être un prophète ou connerie du genre ? mwé

Bref.

Franchement en dehors de sa toute fin, le film est franchement chouette. J'ai ressenti cette galère aussi dans The Lost City Of Z.

X-Men : Dark Phoenix

J'aime bien les personnages des X-Men même si certains sont un peu nunuches ou sous-exploités. Cet opus est vraiment pas terrible. On se fait chier.

Sérieusement, l'histoire est bateau, c'est joliement fait mais c'est vraiment pas palpitant. Aucune empathie ne ressort de ce film. C'est ptet moi mais la Sophie Turner me laisse toujours de marbre : pour jouer les pleurnicheuses elle est forte mais pour jouer un personnage à la puissance démentielle … bha elle vaut pas chipette.

Les méchants de l'histoire, on sait pas trop d'où ils sortent et pourquoi ils sont là. On nous ressort pour la millième fois l'opposition entre Magnéto et Roulette qui n'avance pas. Et puis, avant même le film la continuité était déjà très bordélique avec tous les films de la saga mais là ça va pas aider en crevant Raven…

Bref, c'est gentil mais non merci, je vais devoir me rematter Days Of Future Past qui reste le pinnacle de la série (et qui même hors de la série est vraiment un excellent film). Ici, on ne fait que se taper des scènes de baston sans grand intéret et même Magnéto n'arrive pas à péter la classe.

J'attendais rien de ce film (en fait si je voulais voir un déchaînement de puissance de la part du Phoenix) et je n'ai rien eu.

Déploiement Hugo

Je génère mon blog avec le logiciel Hugo directement sur mon ordi. Un site ouaib c'est au final qu'un ensemble de fichiers textes et des images en plus.

Ça fait maintenant deux ans que j'utilise Hugo. J'ai désormais dépassé la phase de découverte et je suis passé à une utilisation un peu plus avancée. J'ai un peu changé ma façon de l'utiliser.

Du coup à chaque fois que je rédige un nouvel article voilà ce qu'il y a à faire :

  1. Création de l'article : hugo new posts/super-article/index.md
  2. Édition du fichier : kak content/posts/super-article/index.md
  3. Ajout des éventuelles illustrations : cp /une/image.jpg ~/www/content/posts/super-article/
  4. Ajout des fichiers dans git : git add content/posts/super-article
  5. Commit dans git : git commit -m “[POST] publication : super-article"
  6. Pousser les modifs sur le dépot git : git push
  7. Générer les miniatures : thumbnailer.sh ~/www/content
  8. Générer le blogroll : openring/openring.sh
  9. Génération du site en lui-même : hugo
  10. Compression des fichiers textes en gzip : static-compress -c zopfli -e gz …
  11. Compression des fichiers textes en brotli : static-compress -c zopfli -e br …
  12. Transfert du site fr vers le serveur web : rsync -av ~/www/public/fr/ user@serveur:/destination/fr
  13. Transfert du site en vers le serveur web : rsync -av ~/www/public/en/ user@serveur:/destination/en

Bon c'est des ptits trucs simples mais en gros les étapes 6 à 13 sont toujours les mêmes avec aucune intervention nécessaire. Du coup j'ai automatisé tout ça.

Dans git, on peut lancer des scripts automatiquement lors de certaines actions, on appelle ça un hook. Du coup, dans le hook qui s'exécute lors d'un push j'ai mis toutes les actions de 7 à 13. Comme ça, lors du git push elles sont toutes lancées, je n'ai plus rien à faire.

Ça évite d'en oublier une, de se planter sur la syntaxe ou autre connerie du genre.

Pour faire ça, il suffit d'éditer le fichier .git/hooks/pre-push (qui se trouve à la racine de votre repo) et d'y mettre tout ce que vous souhaitez et c'est tout bon.

Les scripts en question

Tout d'abord le hook qui lance un peu tout.

.git/hooks/pre-push
/usr/local/bin/thumbnailer.sh /home/lord/www/content
/home/lord/www/openring/openring.sh
/usr/bin/hugo
static-compress -c zopfli -e gz -j 16 "/home/lord/www/public/**/*.svg" "/home/lord/www/public/**/*.html" "/home/lord/www/public/**/*.csv" "/home/lord/www/public/**/*.css" "/home/lord/www/public/**/*.txt" "/home/lord/www/public/**/*.xml"
static-compress -c brotli -e br -j 16 "/home/lord/www/public/**/*.svg" "/home/lord/www/public/**/*.html" "/home/lord/www/public/**/*.csv" "/home/lord/www/public/**/*.css" "/home/lord/www/public/**/*.txt" "/home/lord/www/public/**/*.xml"
rsync -av /home/lord/www/public/fr/ www@n2:/var/www/lord.re/.
rsync -av /home/lord/www/public/en/ www@n2:/var/www/lord.re/en/

Ensuite le script de génération des miniatures qui me sert aussi globalement et pas uniquement pour le blog.

/usr/local/bin/thumbnailer.sh
#!/bin/sh

check_replace(){
# Si le thumbnail généré est plus gros que l'original (ça arrive régulièrement surtout avec les png) on garde l'original et on le copie comme si c'était le thumbnail.
  size_orig=$(stat -c %s $1)
  size_thumb=$(stat -c %s $2)
  if [ "$size_orig" -lt "$size_thumb" ]; then
    rm "$2"
    cp "$1" "$2"
  fi
}

thumbnail(){
  echo -en "Processing image \e[0;34m$1\e[0m :"
  extension="$(echo $1 | awk -F\. '{print $NF}')"
  thumbname="$(dirname $1)/$(basename -s .$extension $1).thumb.$extension"

# Si une image est un thumbnail on la considère comme déjà bien traitée.
  if [[ $1 == *".thumb."* ]]; then
    echo -e " \e[0;31m est un thumb !\e[0m"
    return 0
  fi

# Si une image a déjà un thumbnail, on la considère comme déjà traitée et donc on y retouche pas.
  if [ -f "$(dirname $1)/$(basename -s .$extension $1).thumb.$extension" ]; then
    echo -e " \e[0;31ma déjà un thumb !\e[0m"
    return 0
  fi

  case "$extension" in
  jpg | jpeg | JPG | JPEG )
    /usr/bin/convert -resize 1224\> -quality 55 "$1" "$thumbname"
    jpegoptim -s "$1"
    check_replace "$1" "$thumbname"
  ;;
  png | PNG)
# Ce con de pngcrush a tendance à faire n'importe quoi si on lui dit de réécrire par-dessus les images, du coup on passe par un fichier temporaire qu'on renomme par la suite.
    pngcrush -warn "$1" "$1.tmp"
    mv -f "$1.tmp" "$1"
    /usr/bin/convert -resize 1224\> "$1" "$thumbname"
    pngcrush -warn "$thumbname" "$thumbname.tmp"
    mv -f "$thumbname.tmp" "$thumbname"
    check_replace "$1" "$thumbname"
  ;;
  esac
  echo -e "\e[0;32mOK\e[0;m"

}

export -f thumbnail
export -f check_replace
find $1 -name '*.jpg' -or -name '*.jpeg' -or -name '*.JPG' -or -name '*.JPEG' -or -name '*.png' -or -name '*.PNG' | parallel --jobs 16 thumbnail

Et enfin le script de génération du blogroll.

openring/openring.sh
#! /bin/bash
# Je ne vous partage pas la liste parceque bon il y en a trop et ça pète l'affichage…
feeds=( 'https:// … feed.xml' 'https:// … index.xml' )

rand_feeds=( $(shuf -e "${feeds[@]}") )

choose_feeds(){
for index in 0 1 2 3 4 5
do
  selected_feeds="-s ${rand_feeds[$index]} $selected_feeds"
done
}

choose_feeds
echo $selected_feeds

/home/lord/www/openring/openring -n 6 \
$selected_feeds \
< /home/lord/www/openring/in.html \
> /home/lord/www/layouts/partials/openring.html

Utilisation

Donc maintenant, je me farcis les 5 premières étapes manuellement. Quand je lance la sixième manuellement, les dernières se déroulent toutes seules.

Me reste plus qu'à ouvrir https://lord.re pour vérifier que ça a bien été poussé comme il faut et de constater les typos que j'ai ratées lors des relectures (toujours pareil).

Iron Sky 2 : The Coming Race

Le un était sympa à flirter avec le nanard, lui donner une suite était risqué.

La moquerie envers Apple ne pouvait que me faire plaisir. À cela qu'ils sont allés jusqu'à moquer la pub de 84.

Le contrat est rempli même s'il est loin d'être drôle. Les références sont un peu partout. Et même avec un petit budget (mais tout de même confortable) ils ont réussi à avoir des effets spéciaux vraiment pas dégueu. C'est assez bluffant de ce côté.

Bon, il s'oubliera très vite à moins d'être vraiment fan de l'humour ridicule-overkill à base d'Hitler à dos de Trex… Heureusement que le film n'est pas plus long.

Mes applis Android

Après avoir épuré le téléphone il est temps de le peupler convenablement.

La quasi-totalité des applis que j'utilise sont libres et dispos sur fdroid. Il y a encore qui ne le sont pas mais c'est généralement les applis pré-installées pour laquelle je n'ai pas trop cherché de remplaçant.

Launcher

Première chose à faire, utiliser un launcher potable. Habituellement j'utilisais Trébuchet que j'ai découvert sur Cyanogenmod il y a maintenant fort longtemps. La force de l'habitude étant, j'ai toujours essayé de le réinstaller lors des changements de téléphone. Pas de bol, il n'est pas compatible avec mon nouveau téléphone (problème de version d'Android je suppose). Du coup j'ai regardé un peu fdroid et j'ai débusqué Kiss Launcher. J'avais déjà testé un launcher uniquement textuel et j'avais trouvé ça assez con sur un tel tactile.

Là cependant, c'est juste nickel, pas de supreflu : des icônes en bas pour les favoris, une barre de recherche, quand on appuie sur l'écran il affiche la liste complète des applis. Il est on ne peut plus rapide et super léger et se permet même quelques options bien venues.

C'est rare de trouver des applis aussi légères et bien foutues !

Clavier

Je vous ai déjà pondu un truc à ce propos : j'utilise MessageEase. Il est pas libre mais malheureusement je suis addict.

J'ai jamais trouvé mieux, il est bien pensé et bien foutu. Il est pas beau, mais je m'en fous complet, il fait tout bien ce qu'il faut et n'a pas de trackers ou autre et on peut le télécharger direct sur leur site sans passer par le Play Store. Bref, si vous voulez, mon article plus détaillé à son sujet est toujours dispo.

SMS

J'utilise Silence depuis quelques années maintenant. J'aime bien le fait que c'est une appli de SMS qui semble classique mais qui permet d'avoir des conversations chiffrées avec les autres utilisateurs.

Et ça n'utilise que les SMS, pas de data nécessaire. Et pour chiffrer c'est ultra simple, tout le monde peut le faire, ça ne nécessite aucune connaissance technique.

Lecteur de QR Codes

J'utilise le classique Barcode Scanner. J'ai pas testé d'autres trucs mais celui-là fonctionne bien pour le peu que j'en ai besoin.

J'ai choisi Fennec qui est un dérivé de Firefox made in Fdroid. En gros ils ont recompilés Firefox en enlevant le branding et les parties les plus problèmatiques. En gros c'est à 99% du Firefox classique. Ça tourne bien et il y a peu de pistage.

GPS

Là j'utilisais Google Maps. Ça marche quand même super bien, le moteur de recherche est top et c'est très rare qu'il ne trouve pas une adresse. Il peut trouver aussi les commerces par leur nom. Mais bon c'est du Google proprio quoi…

Du coup je tente de migrer à Maps.me (enfin Maps tout court sur fdroid) mais c'est pas encore parfait. L'interface est pas mal, les cartes bien exhaustives (merci les mappers) et puis ça marche complètement offline. Par contre le moteur de recherche … c'est pas facile : la moindre faute il trouve pas, parfois il trouve pas mais en fouillant un peu les suggestions finalement si c'est bien présent mais en fin de liste alors que j'ai bien tapé « 3 rue du boudin trifouillis-les-oies ». En dehors de ce souci de moteur de recherche c'est vraiment bien.

Je me demande pourquoi ils font pas comme certains GPS où tu rentres les premières lettres de la ville et il te propose une liste de choix, puis les premières lettres de la rue et il te propose de compléter, puis le numéro. C'est moins moderne, mais j'imagine que lorsque le moteur de recherche n'est pas aussi performant que ce qu'offre Google c'est une bonne alternative.

Notes

Mes besoins sont vraiment légers, juste de quoi noter un truc et c'est tout. Pas de synchro, pas d'upload, pas de formatage. Juste un pense-bête minimaliste. Du coup je me suis tourné vers Simple Notes.

Ça fonctionne, parfait.

Fediverse

Pour traîner sur le Fediverse j'ai utilisé Tusky quelque temps et finalement j'ai migré sur Fedilab. Pas mal d'options (presque trop). Je m'en sers assez peu, c'est vraiment pour combler les rares moments d'ennuis.

C'est très souvent mis à jour et ça fonctionne pour un peu tous les services du Fédiverse. Le dev fait un sacré boulot !

Kodi

J'ai un Kodi qui traîne à la maison pour mater des films. Du coup je le contrôle à la télécommande de la téloche mais c'est pas terrible. J'ai également une manette de xbox c'est mieux (beaucoup plus réactif) mais dès qu'il faut entrer du texte c'est une tannée.

Du coup j'ai aussi Kore qui permet de contrôler Kodi depuis le téléphone. Ça permet on peut naviguer dans les menus mais surtout d'entrer du texte. Bon ça vaut pas un vrai clavier physique mais c'est mieux qu'une manette ou une télécommande.

Youtube

Pour mater des vidéos sur Youtube ou juste y écouter de la musique, j'utilise NewPipe. Elle propose tout ce qu'on peut espérer : choix de la résolution, téléchargement, écoute en arrière-plan, PIP. Et le pire c'est que l'interface reste simple. Il paraît que c'est mieux que l'appli officielle.

IRC

J'utilise l'appli Weechat Android qui n'est pas dispo sur fdroid mais chopable direct depuis github. Elle se raccorde à une instance weechat tournant ailleurs et permet de retrouver tous ses buffers sur le téléphone. L'interface est bien adaptée au téléphone ce qui lui confère un avantage certain par rapport à un client ssh pour récupérer une session tmux avec weechat.

Elle a juste une ptite tendance à pas aimer être mis en veille par le téléphone (ce qui rend la reconnexion impossible, il faut killer l'appli et la redémarrer dans ces cas).

Contacts

Bon, là je suis aussi parti sur Simple Contacts. C'est simple et efficace. Pas besoin de plus.

Dialer

J'en ai pas trouvé de libre qui me convienne, j'ai testé Emerald Dialer qui pourrait suffire mais l'affichage complètement foireux (pour les français) des numéros me rebute complètement.

Depuis deux semaines j'ai installé Dialer2, on verra bien. À première vue l'appli date des temps reculés mais est toujours fonctionnelle.


Voilà tout.

Globalement c'est les applis de téléphonie qui sont les plus pauvres en alternatives. Triste monde. Pas d'appli de téléphonie sur fdroid, deux pauvres dialers, niveau contacts c'est pas reluisant non plus.

Ça : Partie 2

Cette deuxième partie est vraiment bien. On revoit les gosses (pfiouuu j'avais peur qu'ils ne soient que survolés dans cette seconde partie). C'est un plaisir de revenir à Derry pour y avoir quelques frissons.

Ce second chapitre est bien moins effrayant que le premier je trouve. C'est bien plus visuel et fantastique ce coup-ci. Perso ça ne m'a pas dérangé mais je sais que ça rebute d'autres.

Notre cher Pennywise est un peu moins amusant et plus monstrueux.

Certains adultes sont convaincants mais pas tous. Bill (James McAvoy) pas du tout (il joue bien et tout mais la ressemblance bof. Bev (Jessica Castaing) non plus, mais tous les autres sont vraiment ressemblants ça permet de pas trop sortir de l'histoire. Par contre on voit bien que certains ont un peu trop grandis entre les tournages et j'ai l'impression qu'il y a eu quelques effets numériques de morphing ou autre pour faire un peu plus raccord.

On est plus trop dans un film menés par des gamins terrifiés mais plus par des adultes traumatisés, du coup l'ambiance est quand même différentes. Et le fameux Pennywise s'est donc adapté en ce sens. Bref, on peut avoir adoré le premier et trouver le second meh. Perso j'ai beaucoup aimé même si je le trouve moins flippant que le premier et l'ambiance moins sympatique.

Airplane 2

La suite de la fameuse comédie. C'est pas fait par les mêmes réalisateurs et ça se ressent un peu. On sent qu'il y a eu une volonté de faire quelque chose de ressemblant avec un humour assez proche et même certaines redites. Mais globalement ça marche un peu moins.

Ça parodie 2001 L'Odyssée de l'Espace avec son ordinateur de bord qui devient fou. Toujours des flashbacks. Bref c'est sympa mais plus dispensable que le premier.

Beaucoup de gags autour de l'homosexualité tombent bien à plat. Et d'ailleurs ça parle déjà de végétarianisme pour sauver la planète… comme quoi même presque quarante ans plus tard ça n'a pas trop changé…

Ça : Partie 1

Cette première partie est géniale.

Les gosses sont super attachants grâce au talent de Stephen King et par l'interpretation bien au poil de chacun des gamins. Ils ont tous leur personnalité, leurs peurs et l'alchimie qui en résulte est top. On découvre leur amitié naissante et les liens qu'ils tissent.

Le vilain de l'histoire est tout bonnement terrifiant avec ses métamorphoses, ses rires, son intelligence et ses facultés extraordinaires. Mais pire que Ça, les parents à peine présents sont tous plus dérangeants les uns que les autres !

La ville est toute mignonne mais est peuplés d'ordures. L'empreinte de Pennywise sur la ville se ressent dans tous les évènements qui s'y déroulent

Pour accentuer le tout les musiques sont discrètes mais savent accentuer de rares jump scares ou monter la tension à son paroxysme. Et puis les dialogues font naturels pour des gamins.

On se marre pas mal, on vit des aventures et on flippe avec eux. Le club des losers est à son apogée.

Quand on le voit, on ne ressent pas le temps passer et il tarde de voir la suite pour clôturer l'histoire.

Épurer un téléphone Android

J'ai récemment changé de téléphone pour le boulot. Me voilà donc avec un Samsung Galaxy A50.

Et qui dit nouveau téléphone dit ?

CRASSES

Le téléphone est rempli de merdes.

  • Il y a les merdes made in Orange™.
  • Il y a les merdes made in Samsung™.
  • Il y a les merdes made in Google™.

On peut en enlever un peu depuis le téléphone mais la plupart sont bien attachées. Et quand la crasse s'attache qu'est-ce qu'on fait ? On utilise une console !

Fût un temps où il fallait forcément rooter le téléphone pour s'en sortir. Installer une nouvelle rom et tout. Et c'était vraiment le far west : installer d'obscurs logiciels pompés sur des sites tous plus louches les uns que les autres et croiser les doigts pour que tout se passe bien. Toujours une partie d'emmerdes.

C'était vraiment chiant et je n'avais vraiment pas confiance envers tous ces sites et logiciels à bidouiller dans tous les sens.

Maintenant c'est bien moins indispensable je trouve. Le root n'apporte plus grand avantage.

On peut désactiver tout un tas d'applis d'origine avec ADB. Elles sont un peu présentes mais ne tournent pas (c'est le principal).

 

Bref, petite marche à suivre :

  • installer android-tools via emerge android-tools.
  • Sur votre téléphone il faut activer le mode dev : dans les paramètres de votre téléphone, dans status, il faut taper plein de fois sur build number jusqu'à ce qu'un message s'affiche en bas.
  • Un menu dev se trouve tout en bas des paramètres où il faut activer l’USB debugging.
  • sur votre ordi, un ptit coup de adb shell et vous vous retrouvez avec la main sur votre tel.

Maintenant pour désactiver une application c'est pm disable-user –user 0 LE_NOM_DE_L'APPLI

À chaque téléphone sa crasse. Donc il vous faudra lister les applis d'abord : pm list packages

Liste de ce que j'ai désactivé
package:com.google.android.youtube
package:com.samsung.android.themestore
package:com.google.android.googlequicksearchbox
package:com.samsung.android.aremoji
package:com.samsung.android.kidsinstaller
package:com.diotek.sec.lookup.dictionary
package:com.sec.android.app.samsungapps
package:com.samsung.android.app.settings.bixby
package:com.samsung.android.game.gamehome
package:com.google.ar.core
package:com.android.vending
package:com.samsung.systemui.bixby2
package:com.samsung.mlp
package:com.samsung.android.aircommandmanager
package:com.samsung.android.net.wifi.wifiguider
package:com.samsung.android.bixby.service
package:com.samsung.android.emojiupdater
package:com.samsung.android.smartfitting
package:com.google.android.gm
package:com.samsung.android.bixby.agent
package:com.google.android.setupwizard
package:com.facebook.services
package:com.samsung.android.mobileservice
package:com.android.printspooler
package:com.samsung.android.game.gametools
package:com.orange.update
package:com.android.chrome
package:com.samsung.android.ipsgeofence
package:com.google.android.tts
package:com.android.calllogbackup
package:com.google.android.partnersetup
package:com.samsung.android.app.routines
package:com.google.android.feedback
package:com.samsung.sec.android.teegris.tui_service
package:com.samsung.android.wellbeing
package:com.samsung.android.authfw
package:com.samsung.android.bixbyvision.framework
package:com.samsung.android.dqagent
package:com.samsung.android.game.gos
package:com.samsung.android.keyguardwallpaperupdator
package:com.android.wallpaper.livepicker
package:com.samsung.android.stickercenter
package:com.samsung.android.fmm
package:com.samsung.android.bixby.wakeup
package:com.samsung.android.samsungpass
package:com.samsung.android.scloud
package:com.samsung.android.app.spage
package:com.samsung.android.knox.analytics.uploader
package:com.sec.android.emergencylauncher
package:com.samsung.android.bbc.bbcagent
package:com.samsung.android.visionintelligence
package:com.samsung.android.app.watchmanagerstub
package:com.samsung.android.mateagent
package:com.samsung.android.networkdiagnostic
package:com.enhance.gameservice
package:com.android.wallpaperbackup
package:com.samsung.android.app.omcagent
package:com.samsung.android.samsungpassautofill
package:com.sec.android.app.fm
package:com.samsung.ipservice
package:com.samsung.android.tapack.authfw
package:com.samsung.android.bixby.agent.dummy

Une fois viré toutes ces merdes le téléphone ne s'en porte que mieux. Il fait moins de trucs dans votre dos, bouffe moins de batterie (j'arrive à faire des journées à 15% de batterie).

Il y a probablement pleins d'autres applis parasites mais faut avouer que les noms ne sont pas super explicites…

Dans un prochain article je vous listerai un peu les applis que j'utilise.

Mad Max : Fury Road

C'est à mon goût le meilleur film des années 2010. Il est vraiment génialissime. On ne s'ennuie pas une seconde, les décors sont magnifiques, les effets spéciaux

Ce film est une claque monumentale ! Les décors sont magnifiques, les acteurs parfaitement dans le rôle, l'univers bien rembourré, les musiques magnifiques et bien câlées.

J'adore la série Mad Max, ils sont tous assez proches mais en ayant quand même chacun leur truc distinctif. Celui-là est le plus énergique. On nous balance pas trop d'histoire et au final l'univers nous est pas envoyé direct en plein dans la gueule, mais en y regardand de plus près on le voit transparaitre de partout. Les enjeux sont un peu moins les ressources pétrolières désormais mais l'eau, la bouffe et surtout la santé.

C'est le film que j'ai vu le plus de fois au cinéma : VO, VF, 3D, noir et blanc et maintenant 4DX (le truc un peu nul avec des ptits jets d'eau, du vent, des éclairs, des sièges dynamiques; une séance fatigante).

Les images en jettent sacrément et les effets spéciaux pratiques sont majoritaires. Les effets numériques sont plutôt subtils, le tournage était presque aussi impressionnant que le film.

Et le pire dans tout ça, c'est que le réal c'est le bon vieux Papy Miller qui a accouché de ce film à 70 balais ! Le tour de force !

Airplane ! | Y-a-t-il un pilote dans l'avion ?

Un classique de la comédie américaine. Réalisé par le fameux trio ZAZ, il enchaîne les gags plus ou moins loufoques. Ça parodie les films de catastrophe globalement mais aussi quelques films bien particuliers comme la mythique scène des dents de la mer lors du générique.

C'est un enchaînement constant de gags. Certains excellents, certains moyens, certains vraiment limites et certains passant mal la traduction française. C'est vraiment très drôle.

Dans le casting on retrouve des habitués du genre comme le fameux Leslie Nielsen qui est dans la plupart des productions ZAZ (les réals David Zucker, Jim Abrahams et Jerry Zucker). Mais aussi Lloyd Bridges (le papa de Jeff) qui lui est dans les Hot Shots (qui est fait par le A de ZAZ).

Bref, ce film est vraiment bon.

Eraser

Les punchlines super clichées. Le petit solo de guitare électrique toujours au bon moment. La fin d'une époque. On en fait plus des comme ça.

Même si c'est vu et revu et ultra stéréotypé, bha ça fonctionne sur moi.

Visiblement les critiques n'ont pas aimé ce film et pourtant j'aime bien sans pour autant vouloir le revoir. La chute de l'avion est ptet quand même difficilement admissible mais bon dans l'ensemble ça se laisse bien voir.

J'avoue avoir un faible pour les films d'action avec ce cher Schwarzy. 20 ans plus tard bha force est de constater que les effets spéciaux numériques sont vraiment pas si pourris ! On les voit mais c'est vraiment loin d'être rédhibitoire.

The Dead Don't Die

Ça commence lentement. Et puis vers la moitié du film ça continue lentement. Heureusement à la fin ça se finie… lentement.

J'ai vraiment du mal à comprendre ce film : il y a un casting de folie, il y a quelquels très bonnes blagues (mais vraiment éparses) et bha voilà. Il se passe pas grand chose.

On se fait vraiment chier. Ça monte en tension mais ça n'explose jamais. Des personnages sont montrés. On a un chouilla de background sur eux mais bha rien.

C'est un film très frustrant.

On est bien loin d'un Shaun of the Dead. C'est un film de zombie censément drôle mais où il y a assez peu d'humour et où il se passe rien. Les réactions des personnages sont… décontertantes.

C'est décevant. C'est dommage parcequ'en ce moment je joue à Project Zomboid du coup j'étais dans l'ambiance mais là ça tombe vraiment à plat.

Les blagues tournant autour des deux flics conscient d'être dans un film c'est cool et tout le reste peut être jeté.

Men In Black 4 : International

Le quatrième épisode de Men In Black signe le début de la fin visiblement. Le casting des précédents épisodes a disparu (sauf Emma Thompson mais c'est un ptit rôle). Les nouveaux sont pas mauvais mais Chris Hemsworth dans ce rôle… bof. Par contre Tessa Thompson est pas mal du tout (après l'avoir détesté dans son rôle dans Westworld…).

Ils ont alloué tout le budget pour l'esthétique du film et assez peu au niveau scénar. On se retrouve avec une histoire assez basique au twist trèèèèès prévisible (d'ailleurs est-ce encore un twist à ce niveau ?).

J'ai tout de même adoré le ptit personnage alien qui devient le Sidekick. Et l'Alien barbe… hahaha il m'a quand même bien fait marrer celui-là, c'est une bonne trouvaille. D'ailleurs c'est joué par Nandor de la série What We Do In The Shadows (à voir !).

Pour une fois on sort un peu des USA, ça change du reste de la saga. D'ailleurs le léger discours concernant les Womem In Black est un (léger) signe que ça rentre petit à petit dans la culture populaire.

Bon c'est sûr qu'après l'excellent MIB 3 (ouai c'est pas l'avis majoritaire, mais bon moi dès qu'il y a du voyage temporel je suis conquis) c'était dur de continuer sur la lignée. Cet épisode reste agréable sur le coup mais n'est clairement pas mémorable.

Kiss Kiss Bang Bang

Une enquête alambiquée avec une bonne dose d'humour (malgré des blagues légèrement homophobes). J'ai du mal avec Robert Downey Jr, parcequequ'Ironman… Quel plaisir de le voir galérer dans ce film.

Ça me fait pas mal penser à The Nice Guys et bha c'est normal parceque c'est le même réal. On sent que c'est le brouillon et que the Nice Guys a amélioré la formule sur tous les points.

C'est agréable à regarder même si un peu speed et décousu (ptet que ça a été rogné au montage, je ne sais pas).

Le narrateur qui discute avec nous et envoie bouler les figurants : Genius ! Ça joue à briser le quatrième mur et ça, c'est toujours cool.

BlacKkKlansman

Un film tiré d'une histoire vraie qui paraît absurde : un flic nouvellement recruté, noir, à la fin des années 70 dans un commissariat bien raciste d'un bledaillon des États-Unis, qui infiltre le Ku Klux Klan. Ce pitch est foufou déjà.

Le film en lui-même est bien réalisé rien à redire. Et la mise en perspective avec l'actualité des USA à la fin met une jolie baffe aussi. Je le recommande.

Us

Un ptit film d'horreur de Jordan Peele. Il avait déjà fait l'excellent Get Out, bha là il revient avec Us. Et c'est franchement super.

Les acteurs sont bons, les décors cools, l'ambiance bien stressante et les acteurs vraiment bons !

Un film d'horreur peut facilement être gâché par des acteurs un poil à côté du truc et ça me sort direct du délire mais là c'est pas du tout le cas. C'est d'autant plus ardu que les acteurs sont tous en double et ont donc deux rôles distincts, bref la difficulté est doublée. Je materai son prochain film sans attendre.

Alita : Battle Angel

Je ne connais pas du tout le manga ni l'animé.

J'ai trouvé que ça passait pas mal sans être non plus vraiment génial. Je pense que j'en garderai pas un souvenir très longtemps.

Esthétiquement c'est vraiment propre, c'est bien animé, les acteurs sont… dans le ton. Bref c'est un moment sympa, mais je pense pas que ça devienne un film impérissable.

C'est par contre bien trop lisse, apparemment le matériel d'origine est bien plus sombre que ce qui est dépeint dans le film. C'est d'ailleurs étrange, les personnages vivent dans un “bidon-ville” où ils ont envie de rejoindre la ville des nantis, mais ce qui est montré dans le film est plutôt charmant.

Bref, des détails qui font que c'est pas un super film, c'est dommage c'était pas loin de pouvoir le faire.

Three Billboards

Excellente découverte de ce mois. La bande annonce m'avait tenté, mais je n'avais pas eu l'occasion et bha franchement pas déçu.

C'est joli, l'histoire est prenante, les relations entre les persos sont vraiment cool, le casting est bien.

Et puis ce personnage principal ! Wow j'ai adoré sa répartie, son courage et tout. Vraiment cool.

J'aime bien aussi les films qui se passent dans la campagnes usienne. C'est un contexte au final assez rare dans un film qui ne tourne pas autour de cet aspect.

Panic Room

Un autre David Fincher. Celui-là est super aussi (Fincher quoi).

Une grande baraque avec une panic room et de vils voleurs qui en veulent.

Techniquement, il en jette pas mal dans ses mouvements de caméras même si les effets spéciaux numériques se voient quand même pas mal mais ça se laisse oublier ce détail. C'est un très bon thriller avec un casting bien cher (coucou Kristen Stewart toute pitite).

Tu te retrouves à tenter de vouloir les aider et à facepalm mais ça marche vraiment bien.

Under The Silver Lake

L'affiche m'avait intriguée à là sortie puis je l'avais oublié. Le vil Korbak m'a poussé à le matter et WOW. Super film.

C'est par le même réalisateur qu’It Follows (à voir aussi). On pourrait croire à un simili Mulholland Drive. On comprend pas trop ce qui se trame, il y a une ambiance particulière et tout. C'est mystérieux et d'ailleurs allez traîner sur le reddit du film, il y a énormément de trucs cachés dans le film qui n'ont pas été encore complètement résolus.

Juste un ptit exemple : le feu d'artifice produit du morse. J'ai adoré, merci Korbak, super découverte !

D'ailleurs, il y a un subreddit qui cherche à résoudre tous les mystères.

Dunkerque

J'adore Christopher Nolan et pourtant j'avais pas encore vu ce film car j'apprécie pas trop les films de guerre. Et bah c'était vraiment super. Les images sont magnifiques. Mais vraiment.

Je m'attendais à voir un truc grisâtre, déprimant, avec des nazis de partout mais pas du tout, la météo était belle (mine de rien ça change du classique film sous la grisaille).

C'est pas un film de guerre classique, les combats ici ne sont presque pas montrés (quelques affrontements aériens mais sans plus). J'ai presque pas reconnu d'acteurs, la musique est vraiment peu présente, ça joue énormément sur l'ambiance.

Godzilla 2 : King of the Monsters

Je suis pas super fan de film de monstre. J'apprécie quand j'en vois un, mais je vais rarement en voir.

Le “premier” était pas trop mal (en dehors de la fin où le gros monstre estime qu'il a fait son taf et qu'il peut partir fièrement retourner s'ennuyer sous l'eau…) du coup pourquoi pas une suite. Et bha en fait maintenant on sait pourquoi fallait pas.

Les effets spéciaux sont impressionnants. Tiens il y a la ptite de Stranger Things, hoo une hydre avec la tête qui repousse.

Houlla encore une heure de film à tenir ? C'est chiant. On s'ennuie.

Je sais pas trop pourquoi mais ça n'a pas été agréable de voir un combat de mite et de lézard qui se mettent ensemble pour buter l'hydre. J'arrive vraiment pas à y croire.

Once Upon A Time In Hollywood

Well well well, le tout nouveau Tarantino ! Sans surprise c'était bien.

Les dialogues sont toujours aussi cool. Ça part un peu dans tous les sens pour au final une histoire plutôt simple mais c'est ça qui est bon. C'est toute une ambiance et tout. Les moments de tensions sont bons, les moments d'humour aussi, les plans contemplatifs bien réussis, les acteurs impecs.

J'y suis allé sans m'être renseigné du tout, je ne savais pas de quoi ça allait parler. Pour ceux connaissant l'histoire vraie, il y a un super twist à la fin.

Die Hard 5 : A Good Day to Die Hard

Ha tiens il y a un 5ème ! Et bha c'est gentil mais fallait pas, hein.

D'un coup d'un seul ile fameux John McClane a un fils pseudo-badass qui sort de nulle part.

Le 4 était too much celui-là il est over 9000 ! Ça devient particulièrement ridicule.

Le précédent était encore supportable, là vraiment pas. Il a quand même rapporté du pognon donc … Il va y en avoir un sixième du 6, imaginez ma joie.

Die Hard 4 : Live Free or Die Hard

Rhaaa l'épisode de trop. C'est too much de partout.

Les cheveux sont plus là et le bon goût non plus. L'enjeu est d'ampleur nationale. C'est … fatigant et pourtant il y a Kevin Smith dedans.

Bref on peut s'abstenir largement. Je l'avais vu à sa sortie sans l'apprécier bha dix ans plus tard le sentiment est confirmé.

On sent que Bruce Willis commence à vieillir, ce genre de rôle ne pourra plus être crédible bien longtemps.

Die Hard 3 : Une journée en Enfer

John McClane fait équipe avec Samuel “Motherfucker” L. Jackson pour la vengeance de Jeremy Irons.

J'adore cet épisode (en partie à cause du jeu sortie sur Playstation à l'époque) où on visite un peu New York. John McTiernan reprend les rennes de son Die Hard et franchement c'est au moins aussi bon que le premier épisode.

Le rythme s'emballe, le scénar brille, les acteurs sont bons. Il y a même de ptites énigmes survolées, encore du panpan et plus de vroom vroom.

Franchement c'est l'apothéose.

Die Hard 2 : 58 minutes pour vivre

John McClane vient de changer son réalisateur mais tout se passe bien dans cet épisode. Il est un poil moins bien que le premier mais se laisse passer quand même. Ça prend de l'ampleur dans l'enjeu.

Le premier est un classique de Nowel, celui-là se regarde à Nowel mais n'est pas un classique. On se retrouve encore une fois avec les alliés théorique de John qui l'entravent/ne le croient pas. Bon c'est déjà vu.

Heureusement ça twist un peu à la fin. Et puis vas-y que je crash de l'avion de ligne.

Die Hard 1 : Piège de Crystal

Un classique de John McTiernan. De l'action, un Bruce Willis cheveulu, des panpans du Boom boom.

Alan Rickman incarne le fameux Hans Gruber. Il est génial, c'est un très bon film de Nowel.

C'est devenu un classique à raison. C'est lui qui a fait la transition entre les films d'action des années 80 et ceux des années 90. De légères touches d'humour, un montage nerveux. En dehors des looks, ça n'a pas pris une ride.

C'est ptet le meilleur des Die Hard (j'hésite avec le 3).

The Game

Un ptit Fincher des familles. Il est propre, efficace, réussi.

La tension monte de plus. C'est à en devenir parano. En plus Michael Douglas a toujours une certaine classe.

Par contre, la toute fin, la suspension d'incrédulité est mise à mal. C'est dommage parcequ'à peu près tout est crédible mais ça échoue à la dernière marche.

Ça reste quand même un très bon film. Au fait, vous avez perdu ! Je le rematte de temps à autre, c'est toujours un bon moment plein de suspens.

Kalidor / Red Sonja

La suite qui n'en est pas une de Conan. Bon, là on flirte avec le nanar. Mais le nanar avec quand même un sacré budget pour les canassons les décors et compagnie.

Il a bien plus mal vieilli que ses confrères. Premier film que je découvre ce mois-ci. L'expérience était quand même agréable, surtout en mettant en perspective avec les deux premiers.

À voir une fois et c'est tout et seulement si vous avez vu les deux premiers.

Conan Le Destructeur

C'est une suite plutôt fidèle mais quand même un peu moins bien. Les décors sont toujours aussi classe.

Le dromadaire a eu sa revanche, mais sa victoire n'est que de courte durée…

Je ne l'avais jamais vu et c'est pas sûr que je le rematte. Le monstre cheapos moche, Grace Jones en surjeu, Bombaata le relou… bref à faire une fois mais pas plus.

En plus j'ai l'impression de ne pas connaître ces musique, ce qui joue sur le sentiment globale j'imagine.

Conan Le Barbare

J'aime beaucoup ce film. Il est dans son jus et pourtant il fait pas non plus rire à ses dépens. Les effets spéciaux sont pas mal, l'ambiance est cool, les décors sont jolis.

Il a un rythme très posé que l'on ne retrouve pas dans les productions actuelles. Il y a peu de dialogue. Le grand vilain (le fameux Tholsadum) a une aura indéniable.

Et quand on apprécie également le Donjon de Naheulbeuk bha forcément, quand on entend les musiques forcément ça fait tilt.

Stand By Me

J'ai presque honte, j'avais jamais vu ce film culte. En plus c'est tiré d'une nouvelle de Stephen King. J'ai beaucoup aimé cette ambiance des années 50 avec les gamins qui grandissent ensemble en tentant de trouver une place dans le monde à travers des instants de camaraderie.

Ça ressemble un peu à Ça dans l'ambiance gamins-entre-potes. Il se passe pas de trucs foufous, pas de grandes scènes d'actions, mais on ne s'y ennuie pas pour autant. J'adore Stephen King (enfin ses adaptations, parce-que je lis pas).


Je viens de le revoir 3 mois plus tard dans le cadre d'un marathon des adaptations de Stephen King. Et ouai il est vraiment super.

Cette petite épopée des gamins où il ne se passe rien mais où tout est dans les interactions et les dialogues des gosses. Tout comme dans Ça (ouai j'arrive pas à ne pas en parler), on est dans un monde où le monde des adultes est cruel. Les adultes sont détestables, voir de pures raclures alors que les gamins sont insouciants, se moquent joyeusement mais tout en se pardonnant et restant au final bienveillant.

En se lançant le défi d'aller trouver le cadavre afin de grandir, ils vont grandir de par leurs interactions. C'est typiquement le genre de film où tu te retrouves dans la situation du narrateur qui comprend mieux son passé en y repensant avec des années de recul. C'est vraiment un film touchant.

Judge Dredd

Je n'avais pas revu ce film depuis au moins 20 ans. Et bha … ça a mal vieilli.

Je connais pas le comic dont s'est tiré, mais je pense que le sidekick relou au possible, le fait de compresser autant d'histoire sur aussi peu de temps (la présentation du perso, le fait de le détruire et de lui faire obtenir sa vengeance et tout) aussi vite ça m'a semblé baclé. C'est dommage parceque que ça aborde pas mal de sujets à forts potentiels (jusqu'où la justice est nécessaire, séparation des pouvoirs, eugènisme, dystopie des méga-cités, apartheid riches/pauvres).

Les effets spéciaux ont pris une grosse claque sauf le gros robot de combat qui étrangement est assez stylé je trouve. J'en avais pas trop de souvenir et bha c'était justifié. C'est très dispensable.

Rambo 1 : First Blood

C'est le seul film Rambo que je connais. Je ne sais pas comment sont les autres mais celui-là est vraiment super je trouve.

Le mec paumé qui se fait emmerder comme pas possible par les flics mais qui HOHO pas de bol c'est un héros de guerre qui sait se défendre… j'aime bien. Le mec qui passe en mode survie face aux flics abusifs.

De l'action sans que ça soit overkill à mon goût. Les musiques qui me font un peu penser à celles de Predator (ça se passe aussi dans la forêt, coincidence ?). Je me le rematterai encore dans quelques années avec plaisir.

Sicario 2 : Day Of The Soldado

Le premier a été réalisé par Denis Villeneuve et wow il m'a scié dès le premier visionnage. La mise en scène en jette et tout, ça a beau être un film avec pas mal d'action, il y a pleins de moments plutôt posés. Et bha le nouveau réalisateur a voulu garder cette pâte. Et je trouve que c'est franchement réussi.

Josh Brolin est toujours aussi immoral et Bénicio Del Toro redore son personnage dans cet épisode. Bref, il poursuit bien le premier.

Shape Of Water

Je l'avais pas encore vu et là aussi c'est une bonne découverte. C'est joli, l'histoire est pas si gentillette et les acteurs sont encore une fois cool. On croirait un peu un film de Jeunet et Caro mais non c'est du Guillermo Del Toro.

Même si j'ai pas vraiment aimé l'allure de la bestiole, j'ai vraiment bien aimé. C'est tellement rare de voir des persos muets dlans des films.

L'ambiance années 50 est génial et c'est super beau.

Récap 01 : Aout 2019

Heyhey une nouvelle section. Je vais tenter de m'astreindre à faire un ptit récap mensuel.

Ça sera assez varié je pense (ou pas).

J'aime beaucoup cette mode des récaps réguliers. Pas mal de projets y sont passés (chez les émulateurs à commencer par Dolphin) ou chez Mozilla avec les récap Rust, Webrender et compagnie. De plus en plus de bloggueurs en font aussi et c'est toujours sympa à lire du coup voilà je me lance.

Blog

J'ai publié 7 articles ce mois-ci. C'est beaucoup !

Bon en vrai De FAI à ISP est dans les tuyaux depuis juillet 2018, du coup j'ai capitulé, je l'ai fini et enfin publié même s'il ne me satisfait pas à 100%.

Pire encore, Se créer un initramfs manuellement est lui, commencé depuis décembre 2017. J'ai eu besoin de cet article pour me refaire l'initram et j'ai fini par retrouver le brouillon, donc je l'ai pas mal complété, poli et hop publication.

24 commentaires, 7 articles, 468995 requêtes, 43330 visiteurs uniques, 16.21Go de données.

Films

Beaucoup de films ce mois-ci et comme c'est la première fois que je fais ce genre de post, certains de ces films remontent à quelques semaines déjà. Ça sera un peu plus sérieux les prochaines fois.

Conan le Barbare (1982)

J'aime beaucoup ce film. Il est dans son jus et pourtant il fait pas non plus rire à ses dépens. Les effets spéciaux sont pas mal, l'ambiance est cool, les décors sont jolis. Et quand on apprécie également le Donjon de Naheulbeuk bha forcément, quand on entend les musiques forcément ça fait tilt.

Conan le Destructeur (1984)

C'est une suite plutôt fidèle mais quand même un peu moins bien. Le dromadaire a eu sa revanche, mais il est pas gagnant pour autant. Je ne l'avais jamais vu et c'est pas sûr que je le rematte. Le monstre cheapos moche, Grace Jones en surjeu, Bombaata le relou… bref à faire une fois mais pas plus.

Kalidor (Red Sonja) (1985)

La suite qui n'en est pas une de Conan. Bon, là on flirte avec le nanard. Il a bien plus mal vieilli que ses confrères. Premier film que je découvre ce mois-ci. L'expérience était quand même agréable, surtout en mettant en perspective avec les deux premiers.

The Game (1997)

Un ptit Fincher des familles. Il est propre, efficace, réussi. C'est à en devenir parano. En plus Michael Douglas a toujours une certaine classe.

Die Hard 1 (1988)

Un classique de John McTiernan. De l'action, un Bruce Willis cheveulu, des panpans du Boom boom. Alan Rickman incarne le fameux Hans Gruber. Il est génial, c'est un très bon film de Nowel.

Die Hard 2 (1990)

John McClane vient de changer son réalisateur mais tout se passe bien dans cet épisode. Il est un poil moins bien que le premier mais se laisse passer quand même. Ça prend de l'ampleur dans l'enjeu.

Die Hard 3 (1995)

John McClane fait équipe avec Samuel “Motherfucker” L. Jackson pour la vengeance de Jeremy Irons. J'adore cet épisode (en partie à cause du jeu sortie sur Playstation à l'époque) où on visite un peu New York. Des ptites énigmes survolées, encore du panpan et plus de vroom vroom.

Die Hard 4 (2007)

Rhaaa l'épisode de trop. C'est too much de partout. Les cheveux sont plus là et le bon goût non plus. L'enjeu est d'ampleur nationale. C'est … fatigant et pourtant il y a Kevin Smith dedans. Bref on peut s'abstenir largement. Je l'avais vu à sa sortie sans l'apprécier bha dix ans plus tard le sentiment est confirmé.

Die Hard 5 (2013)

Ha tiens il y a un 5ème ! Et bha c'est gentil mais fallait pas, hein. D'un coup d'un seul John McClane a un fils pseudo-badass qui sort de nulle part. Le 4 était too much celui-là il est over 9000 ! Il va y en avoir un sixième du 6, imaginez ma joie.

Once Upon A Time In Hollywood (2019)

Well well well, le tout nouveau Tarantino ! Sans surprise c'était bien. Les dialogues sont toujours aussi cool. Ça part un peu dans tous les sens pour au final une histoire plutôt simple mais c'est ça qui est bon. C'est toute une ambiance et tout. Les moments de tensions sont bons, les moments d'humour aussi, les plans contemplatifs bien réussis, les acteurs impecs. J'y suis allé sans m'être renseigné du tout, je ne savais pas de quoi ça allait parler.

Godzilla 2 : King of the Monsters (2019)

Je suis pas super fan de film de monstre. J'apprécie quand j'en vois un, mais je vais rarement en voir. Le “premier” était pas trop mal (en dehors de la fin où le gros monstre estime qu'il a fait son taf et qu'il peut partir fièrement retourner s'ennuyer sous l'eau…) du coup pourquoi pas une suite. Et bha en fait maintenant on sait pourquoi fallait pas. Les effets spéciaux sont impressionnants, tiens il y a la ptite de Stranger Things, hoo une hydre avec la tête qui repousse. Houlla encore une heure de film à tenir ? C'est chiant. On s'ennuie. Je sais pas trop pourquoi mais ça n'a pas été agréable de voir un combat de mite et de lézard qui se mettent ensemble pour buter l'hydre. J'arrive vraiment pas à y croire.

Dunkerque (2017)

J'adore Christopher Nolan et pourtant j'avais pas encore vu ce film car j'apprécie pas trop les films de guerre. Et bah c'était vraiment super. Les images sont magnifiques. Mais vraiment. Je m'attendais à voir un truc grisâtre, déprimant, avec des nazis de partout mais pas du tout, la météo était belle (mine de rien ça change du classique film sous la grisaille). C'est pas un film de guerre classique, les combats ici ne sont presque pas montrés (quelques affrontements aériens mais sans plus). J'ai presque pas reconnu d'acteurs, la musique est vraiment peu présente, ça joue énormément sur l'ambiance.

Under The Silver Lake (2018)

L'affiche m'avait intriguée à là sortie puis je l'avais oublié. Le vil Korbak m'a poussé à le matter et WOW. Super film.

C'est par le même réalisateur qu’It Follows (à voir aussi). On pourrait croire à un simili Mulholland Drive. On comprend pas trop ce qui se trame, il y a une ambiance particulière et tout. C'est mystérieux et d'ailleurs allez traîner sur le reddit du film, il y a énormément de trucs cachés dans le film qui n'ont pas été encore complètement résolus. Juste un ptit exemple : le feu d'artifice produit du morse. J'ai adoré, merci Korbak, super découverte !

Panic Room (2002)

Un autre David Fincher. Celui-là est super aussi (Fincher quoi). Une grande baraque avec une panic room et de vils voleurs qui en veulent. Techniquement il en jette pas mal dans ses mouvements de caméras même si les effets spéciaux numériques se voient quand même pas mal mais ça se laisse oublier ce détail. C'est un très bon thriller avec un casting bien cher (coucou Kristen Stewart toute pitite).

Three Billboards (2017)

Excellente découverte de ce mois. La bande annonce m'avait tenté, mais je n'avais pas eu l'occasion et bha franchement pas déçu. C'est joli, l'histoire est prenante, les relations entre les persos sont vraiment cool, le casting est bien. Et puis ce personnage principal ! Wow j'ai adoré sa répartie, son courage et tout. Vraiment cool.

Judge Dredd (1995)

Je n'avais pas revu ce film depuis au moins 20 ans. Et bha … ça a mal vieilli. Je connais pas le comic dont s'est tiré, mais je pense que le sidekick relou au possible, le fait de compresser autant d'histoire sur aussi peu de temps (la présentation du perso, le fait de le détruire et de lui faire obtenir sa vengeance et tout) aussi vite ça m'a semblé baclé. C'est dommage parceque que ça aborde pas mal de sujets à forts potentiels (jusqu'où la justice est nécessaire, séparation des pouvoirs, eugènisme, dystopie des méga-cités, apartheid riches/pauvres). Les effets spéciaux ont pris une grosse claque sauf le gros robot de combat qui étrangement est assez stylé je trouve. J'en avais pas trop de souvenir et bha c'était justifié. C'est très dispensable.

Rambo 1 : First Blood (1982)

C'est le seul film Rambo que je connais. Je ne sais pas comment sont les autres mais celui-là est vraiment super je trouve. Le mec paumé qui se fait emmerder comme pas possible par les flics mais qui HOHO pas de bol c'est un héros de guerre qui sait se défendre… j'aime bien. Le mec qui passe en mode survie face aux flics abusifs. De l'action sans que ça soit overkill à mon goût. Les musiques qui me font un peu penser à celles de Predator (ça se passe aussi dans la forêt, coincidence ?). Je me le rematterai encore dans quelques années avec plaisir.

Alita Battle Angel (2019)

Je ne connais pas du tout le manga ni l'animé. J'ai trouvé que ça passait pas mal sans être non plus vraiment génial. Je pense que j'en garderai pas un souvenir très longtemps. Esthétiquement c'est vraiment propre, c'est bien animé, les acteurs sont… dans le ton. Bref c'est un moment sympa, mais je pense pas que ça devienne un film impérissable.

Us (2019)

Un ptit film d'horreur de Jordan Peele. Il avait déjà fait l'excellent Get Out, bha là il revient avec Us. Et c'est franchement super.

Les acteurs sont bons, les décors cools, l'ambiance bien stressante et les acteurs vraiment bons ! Un film d'horreur peut facilement être gâché par des acteurs un poil à côté du truc et ça me sort direct du délire mais là c'est pas du tout le cas. C'est d'autant plus ardu que les acteurs sont tous en double et ont donc deux rôles distincts, bref la difficulté est doublée. Je materai son prochain film sans attendre.

BlacKkKlansman (2018)

Un film tiré d'une histoire vraie qui paraît absurde : un flic nouvellement recruté, noir, à la fin des années 70 dans un commissariat bien raciste d'un bledaillon des États-Unis, qui infiltre le Ku Klux Klan. Ce pitch est foufou déjà. Le film en lui-même est bien réalisé rien à redire. Et la mise en perspective avec l'actualité des USA à la fin met une jolie baffe aussi. Je le recommande.

Stand By Me (1986)

J'ai presque honte, j'avais jamais vu ce film culte. En plus c'est tiré d'une nouvelle de Stephen King. J'ai beaucoup aimé cette ambiance des années 50 avec les gamins qui grandissent ensemble en tentant de trouver une place dans le monde à travers des instants de camaraderie.

Ça ressemble un peu à Ça dans l'ambiance gamins-entre-potes. Il se passe pas de trucs foufous, pas de grandes scènes d'actions, mais on ne s'y ennuie pas pour autant. J'adore Stephen King (enfin ses adaptations, parce-que je lis pas).

Sicario 2 : Day Of The Soldado (2018)

Le premier a été réalisé par Denis Villeneuve et wow il m'a scié dès le premier visionnage. La mise en scène en jette et tout, ça a beau être un film avec pas mal d'action, il y a pleins de moments plutôt posés. Et bha le nouveau réalisateur a voulu garder cette pâte. Et je trouve que c'est franchement réussi.

Josh Brolin est toujours aussi immoral et Bénicio Del Toro redore son personnage dans cet épisode. Bref, il poursuit bien le premier.

Shape Of Water (2017)

Je l'avais pas encore vu et là aussi c'est une bonne découverte. C'est joli, l'histoire est pas si gentillette et les acteurs sont encore une fois cool. On croirait un peu un film de Jeunet et Caro mais non c'est du Guillermo Del Toro. Même si j'ai pas vraiment aimé l'allure de la bestiole, j'ai vraiment bien aimé. C'est tellement rare de voir des persos muets dans des films.

Musique

J'ai pas écouté de neuf ce mois-ci sauf un morceau sur lequel je suis tombé complètement par hasard sur FIP et qui est franchement cool.

Get Down - Deluxe (2019)

Je connaissais pas ce groupe mais c'est énergique, ça met de bonne humeur. Il passe vraiment bien : écouter.

Remote Tumour Seeker - Archspire (2017)

Ça fait des mois que j'écoute l'album au moins une fois par jour. C'est mon groupe préferé désormais. Il me tarde leur prochain album qui devrait arriver pour 2020. Ce morceau en particulier est une tuerie : écouter

Nuxeries

J'ai pas mal retravaillé mon script pour faire les miniatures pour les articles.

J'ai migré quelques services depuis le VPS vers les Odroid. J'ai aussi complètement éteint mon ex-serveur à la maison (un ptit atom D510) qui ne sert plus. Il reste encore deux disques durs de stockage dedans mais c'est pas indispensable dans l'immédiat.

Vidéos

Tiens je suis tombé sur l'invit pour l'Evoque 2019. Et bha elle est vraiment belle.

Vrac

Je suis content, le salon irc #fediverse (sur Geeknode) a bien décollé on est plus de vingt sur le salon désormais. Ça papote d'un peu de tout et de rien.

Les grosses chaleurs d'Août tardent à se dissiper. Dans le potager je peux enfin profiter des tomates tardives qui sont trop bonnes. J'ai une première courgette qui arrive tardivement aussi. Le basilic est mort de sa belle mort (il a été taillé et bouffé).

Bon je migre de plus en plus vers invidio.us et pour aider j'ai foutu le keyword y pour rechercher sur invidious au lieu de youtube.

 

 

Bon j'avais peur de pas trop savoir quoi dire… mais ça va j'ai bien meublé.

Compresser ses fichiers statiques pour son site ouaib

La mode actuelle des sites statiques n'est pas qu'une … heu … mode. Les sites statiques ont en effet énormément d'avantages dont les excellentes performances.

Contrairement à un site dynamique qui va devoir générer la page à chaque fois qu'une personne la demande, le site statique, lui, aura généré toutes les pages en amont. Le serveur web, n'a donc plus qu'à les envoyer et c'est tout.

D'un point de vue performance c'est excellent (et du coup c'est plus écolo, d'ailleurs) bref. Il est assez courant de ne pas envoyer les pages brutes directement : elles sont souvent envoyées compressées histoire d'être moins gourmande en débit réseau.

La compression sur le web

Le navigateur, lorsqu'il demande un document (une page, un fichier, une vidéo, un truc) envoie quelques informations supplémentaires avec sa demande. Dans les entêtes de la requête, il indique quels sont les formats d'encodage qu'il sait gérer. Par exemple mon navigateur indique Accept-encoding: gzip, deflate, br. Ce qui signifie que les réponses peuvent être compressées selon les algorithmes gzip, deflate ou bien brotli.

Ces systèmes de compression sont très efficaces pour les documents textuels mais pour ce qui est images/vidéos/sons ça sert à peu près à rien (les données sont déjà compressées avec des algos largement plus efficaces). Un site ouaib est très souvent rempli de texte même si on va pas se le cacher, c'est tous les média qui sont des centaines de fois plus gros que du texte. Mais c'est pas pour autant que ça ne vaut pas le coup de compresser les textes.

En compressant le texte de mon site, j'ai presque divisé par deux la taille de la page d'accueil puisque je n'ai quasiment pas d'images. Tous mes fichiers textes représentent environ 20Mo et après moulinette font un peu moins de 6Mo en brotli. En sachant que ces fichiers seront envoyés en permanence aux clients, ça peut vous permettre d'économiser un tiers de votre bande passante mine de rien.

Compression dynamique (à la volée)

Habituellement, après avoir configuré le serveur web, c'est lui qui se démerde à compresser les données à la volée et les envoyer. C'est bien mais pas top. Il va les compresser le moins possible (histoire d'être le plus rapide pour pas que les gens attendent) et le faire à chaque fois (bon en vrai j'imagine qu'il va les mettre un peu en cache pour pas le refaire à chaque fois mais bon.).

Compression statique (à l'avance)

Une meilleure solution est de passer par un autre module de nginx qui permet de lui filer les fichiers originaux mais également les fichiers compressés à côtés. Donc vous stockez votre index.html mais aussi index.html.gz et pourquoi pas index.html.br. Et lorsqu'un navigateur annonce qu'il supporte par exemple le gzip, nginx lui servira le fichier gzippé plutôt que le non-compressé.

Pour activer ça dans nginx il vous faut avoir le module gzip_static et/ou brotli_static. Pour vérifier lancez un simple nginx -V et vérifiez qu'il apparait bien dans la liste. Ensuite dans votre conf nginx ajoutez juste un gzip_static on; et/ou brotli_static on;. C'est tout.

Il ne vous reste qu'à compresser vos fichiers. Vous pouvez vous le tapez à la main mais perso j'utilise un ptit outil fait pour static-compress. C'est du rust donc c'est bien ! Ouai je suis hypé, désolé. Pour l'installer c'est avec cargo install static-compress et voilà.

Maintenant il suffit de lancer un joli static-compress -c zopfli -e gz -j 16 “**/*.svg” “**/*.html” “**/*.csv” “**/*.css” “**/*.txt” “**/*.xml" . À lancer dans votre dossier contenant votre site ouaib. Il va le parcourir et compresser tous les fichiers avec les extensions données. D'ailleurs en passant, zopfli c'est un chouilla mieux que gzip mais c'est compatible, donc à privilégier.

Et si vous re-générez votre site, pensez à relancer la commande histoire qu'il recompresse tout. Perso, j'ai ajouté ça dans la liste des commandes de déploiement du site. Je vous en parlerai un peu plus un de ces quatre.


Cet article passede 14Ko à 4.9Ko.

Installer Tiny Tiny RSS sur Alpine

Bon bha je vais ramener à la maison quelques services que j'hébergeais ailleurs. Je commence par Tiny Tiny RSS qui est un agrégateur de flux RSS que j'utilise depuis un peu plus de dix ans maintenant. Il marche bien toussa toussa.

C'est une install en partant d'une Alpine vierge et on aborde tout ce qu'il faut pour avoir un truc fonctionnel avec du TLS et tout.

Bon on va commencer par la liste de paquets à installer :

  • acme.sh
  • git
  • nginx
  • openssl
  • php7
  • php7-curl
  • php7-dom
  • php7-fileinfo
  • php7-fpm
  • php7-iconv
  • php7-intl
  • php7-json
  • php7-mbstring
  • php7-pdo
  • php7-pdo_pgsql
  • php7-pgsql
  • php7-pcntl
  • php7-posix
  • php7-session
  • postgresql
  • postgresql-contrib
  • tmux

Ensuite on se crée un utilisateur exprès avec adduser rss on lui met un mot de passe bidon (qui ne servira pas).

Configuration de Nginx

On crée un fichier /etc/nginx/conf.d/rss.lord.re.conf avec dedans la conf du virtualhost.

/etc/nginx/conf.d/rss.lord.re.conf
server {
  listen 80;
  listen [::]:80 ;
  server_name rss.lord.re;
  root /home/rss/tt-rss;
  index index.php;
  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    include fastcgi_params;
  }
}

On peut ensuite le démarrer avec /etc/init.d/nginx start et d'ailleurs on démarre également php avec /etc/init.d/php-fpm7 start .

Ajout du HTTPS via LetsEncrypt

On utilise le script acme.sh pour générer le certificat et le renouveler et tout. Il faut donc lancer acme.sh –issue –nginx rss.lord.re –keylength ec-384 .

On édite ensuite la conf nginx pour mettre en place tout ce qu'il faut.

/etc/nginx/conf.d/rss.lord.re.conf
  listen 443 ssl http2;
  include ssl.conf;
  ssl_certificate /root/.acme.sh/rss.lord.re_ecc/fullchain.cer;
  ssl_certificate_key /root/.acme.sh/rss.lord.re_ecc/rss.lord.re.key;

Et on ajoute un fichier contenant toute la conf TLS qui vous permettra d'avoir une config au top (tout du moins à la date de l'écriture de l'article).

/etc/nginx/ssl.conf
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ecdh_curve X25519:prime256v1:secp521r1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_session_cache shared:ssl_session_cache:1m;
ssl_session_timeout 8h;
ssl_session_tickets off;
ssl_buffer_size 4k;
#add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 8.8.8.8;
Vous êtes encouragé à changer l'adresse ip des *resolver* par les adresses des serveurs DNS qui vous inspire confiance.

On prévoit le renouvellement automatique des certificats en créant un ptit fichier.

/etc/periodic/weekly/acme.sh
#! /bin/sh
/usr/bin/acme.sh --cron --renew-hook "service nginx reload"

On peut reload nginx pour qu'il prenne en compte ces modifs /etc/init.d/nginx reload .

On prépare la base de donnée

On démarre postgres avec /etc/init.d/postgresql start . Ensuite on active les trigrames avec su - postgres -c psql et là vous vous retrouvez dans le shell de postgres. Et là un simple CREATE EXTENSION pg_trgm; et c'est bon c'est activé.

Ensuite un CREATE DATABASE ttrss; et enfin CREATE USER ttrss WITH PASSWORD ‘truc’; et pour finir on lui donne les droits nécessaires GRANT ALL PRIVILEGES ON DATABASE ttrss to ttrss;.

Voilà votre base est utilisable par ttrss.

Install de TT-RSS

Bon, on se loggue en tant que rss avec su - rss ce qui nous téléporte dans /home/rss/ là on récupère ttrss avec git clone https://git.tt-rss.org/fox/tt-rss.git</samp>.

Quelques secondes plus tard vous avez tout d'installé dans le dossier /home/rss/tt-rss.

Ensuite, si vous avez bien configuré votre nom de domaine et l'éventuel NAT, vous pouvez ouvrir la page https://rss.lord.re/install dans votre navigateur.

Ici il faut rentrer tout ceci :

  • Username : ttrss
  • Password : truc
  • Database name : ttrss
  • Host name : localhost
  • Port : 5432

En appuyant sur test configuration les éventuelles erreurs (vous n'en aurez pas !) apparaîtront. Ensuite en bas un joli bouton rouge avec Initialize database apparaîtra.

Et là ttrss va vous pondre un fichier de conf à poser dans /home/rss/tt-rss/config.php et c'est bon.

Mettre tout ça au boot

Alors on va rajouter au boot les différents services nécessaires :

  • rc-update add nginx
  • rc-update add php-fpm7
  • rc-update add postgresql

Il manque un dernier truc : ttrss possède un daemon en php allant régulièrement récupéré les différents flux RSS pour trouver les nouveaux articles. On va rajouter ça proprement en créant un fichier de service (vous allez voir, c'est pas plus compliqué qu'avec systemd).

/etc/init.d/ttrss
#! /sbin/openrc-run
name="Tiny Tiny RSS"
description="Tiny Tiny RSS update Daemon"
command="/usr/bin/php"
command_args="/home/rss/tt-rss/update_daemon2.php"
pidfile="/var/run/ttrss.pid"
start_stop_daemon_args="--user rss --chdir /home/rss/tt-rss --stdout /var/log/ttrss.log --stderr /var/log/ttrss.err --background"
depend() {
  use postgresql
}

Et enfin rc-update add ttrss . Et voilà.

Bon appétit !

De FAI a ISP

Un truc que j'ai toujours trouvé intrigant c'est la différence de traduction entre le Français et l'Anglais pour “F.A.I.". En Français c'est donc Fournisseur d'Accès Internet alors que dans la langue de Dirk Gently on dit plutôt “I.S.P.” pour Internet Services Provider que l'on pourrait se risquer à traduire mot-à-mot par Fournisseur de Services Internet.

Accès à Internet

Donc d'un côté on nous fournit un accès à l'Internet. Ce qui veut dire que l’on nous relie physiquement à des millions d'autres machines à travers le monde. Oui oui, les machines sont réellement reliées entre elles physiquement. En dehors du wifi et autres connexions sans-fil, on pourrait s'amuser à aller de votre ordinateur jusqu'au mien en suivant des fils serpentant à travers le monde.

Mais en plus de ce lien physique, il y a bien évidemment un peu plus. Le FAI va vous prêter une adresse IP qui sera votre adresse pour que les autres puissent vous joindre. Un bon FAI devrait se contenter de cela, en s'assurant que ses interconnexions avec les autres réseaux soient toujours au top niveau fonctionnement.

S'il fait plus que cela, c'est généralement pas par bonté d'âme.

Par exemple, un FAI pourrait vous fournir l'appareil faisant l'interconnexion entre votre réseau local et son réseau à lui. Cet appareil est un routeur, mais il faut avouer que c'est pas un nom des plus sexy, donc autant l'apeler box et tant qu'à faire, maintenant qu'on a un pied chez l'abonné, autant y rajouter des fonctionnalités pour le rendre un peu plus captif.

Tiens, on va lui donner un peu de téléphonie, ça coûte plus grand-chose et les autres le font donc pour pas perdre pied face à la concurrence on le fait.

Ho et puis la téloche c'est quand même le meilleur moyen de remplir les caisses : vendre un abo par-ci par-là, quelques VOD et hop, on double rapidement la facture mensuelle de l'abonné.

Bref ces services supplémentaires s'appuient sur le réseau Internet mais au final ne sont pas vraiment des services propres à l'Internet. L'Internet n'est ici qu'un simple moyen de transport interne au réseau de l'opérateur. Ces services ne sont pas issus de réseaux extérieurs à votre FAI.

Services Internet

Mais du coup ça serait quoi des services Internet ? Il fut un temps, un des ptits arguments de vente des FAI étaient la mise à disposition d'un hébergement de pages web plus ou moins poussées. Un peu de stockage web, éventuellement du PHP et le grand luxe de l'époque : l'accès à une base de donnée Mysql. Et hop chacun des abonnés peut avoir un ptit site ouaib à peu près gratuitement. À une époque pas si reculée, Free hébergeait pas mal de contenu vraiment sympatique, créé par ses abonnés. Mais ça devient de moins en moins utilisé, les utilisateurs se tournant vers d'autres systèmes.

Avant le tout web, il existait des “forums de discussions” par Internet fonctionnant un peu comme les mails. Et ça a d'ailleurs été un poil détourné pour s'échanger des fichiers de toutes sortes (ahoy !). Ça s'appelle les Newsgroups et il y a quelque temps c'était un des arguments de vente de Free qui proposait un accès gratuit dans son abonnement (mais faut pas se voiler la face, c'était assez foireux).

Les FAI proposent tous de vous créer une adresse mail qui est l'une des bases de l'Internet. Ce n'est par contre pas la panacée : une fois votre boîte créée chez un FAI, vous êtes à la mercie de son bon vouloir en cas de résiliation. Mais c'est un service purement Internet.

Fût un temps, Free proposait même un service ultra original pour l'époque, la possibilité de streamer. Mais contrairement à maintenant où c'est rentré dans les mœurs, c'était il y a dix ans et diffusé directement sur la téloche (via la box). Ça s'apelait TV Perso. Et franchement à l'époque c'était ahurissant, Twitch n'existait pas, Youtube ne proposait pas de live et n'était pas le mastodonte d'aujourd'hui. Un service qui ne pouvait être fait que grâce à Internet, où la connexion uploadait un flux vidéo de chez vous vers tous les spectateurs de votre chaîne. Bon malheureusement le service n'aura pas eu une vie particulièrement longue du fait du manque de popularité mais il avait le mérite d'exister et d'être un sacré précurseur d'une mode actuelle.

Bref ça va ça vient mais globalement les FAI français se contentent d'être des fournisseurs d'accès et non de services Internet. Au lieu de rajouter des services supplémentaires qui ne servent d'Internet que comme un medium de transport ils pourraient fournir de vrais services Internet.

Exploiter les box

Les box fourni par les FAI sont de véritables petits ordinateurs qui seraient à même de faire pleins de choses.

Elles pourraient vous permettre d’héberger des pages webs voir des applications web, elles ont la puissance nécessaire. Au lieu de recourir à une brique Internet, cela pourrait être inclu dans la box ce qui permettrait de simplifier la configuration réseau nécessaire (NAT, DHCP/adresse statique). Et d'un point de vue écologique ça permettrait d'avoir un seul appareil regroupant les deux fonctions.

Un FAI pourrait vous fournir un nom de domaine, ça ne coûte pas grand-chose (entre 5 et 20€/an en général) voir uniquement un sous-domaine (c'est une vue de l'esprit). Et comble du luxe configurer le reverse de l'adresse IP associée avec le nom de domaine (si vous comprenez pas c'est pas grave, ça permet de faire du mail un poil plus facilement et c'est plus propre).

Imaginez la grande classe, la box de votre FAI qui héberge son ptit serveur mail. La box qui héberge une instance mastodon/pleroma !

Des vrais services web distribués sur chacun des clients. Du peertube de partout ! Des galeries photos chez chacun. Plus besoin de Facebook pour donner des nouvelles du petit, plus besoin de Youtube pour montrer les photos du mariage, pas besoin de Gmail pour s'envoyer un mail entre amis.

Bref au lieu de ne servir que de routeur et de boîte noire, votre box pourrait se rendre utile pour vous.

Ça serait cool.

Ce système permettrait de décentraliser un peu le net. En redonnant plus de pouvoirs aux gens en leur permettant de sortir des silos que sont les GAFAM.

Mais d'un autre point de vue, c'est un risque à se retrouver dépendant de son FAI au point de ne pas pouvoir aller voir la concurrence. Bon, pour pas que ça se transforme en calvaire faudrait un backup et surtout un moyen en cas de résiliation de tout copier sur un service externe ou sur une clé usb, que l'on foutrait sur la box du nouveau fai et c'est reparti !

Bref, ça n'a à peu près aucune chance d'arriver mais imaginez si un gentil FAI (Free aurait été le meilleur candidat à une certaine époque) intégrait Yunohost dans sa box ! Ils pourraient contribuer un peu au projet histoire de régler les problèmes de compatibilité entre yunohost et la freebox et hop ils pourraient proposer plein de nouveaux services pour peanut ! Bon je m'enflamme mais franchement ça serait cool.

D'un certain point de vue j'aimerai que les FAI se contentent de fournir un accès au net sans rien de plus mais de l'autre quand je vois la situation actuelle je me dis qu'il pourrait en faire plus de ce point de vue.

Se créer un initramfs manuellement

ou

Se monter un système Linux minimal

Alors que quelques années en arrière, le wiki d'Arch Linux était une des rares documentations à aborder des sujets assez variés et techniques, désormais le wiki Gentoo s'améliore grandement et arrive à faire au moins aussi bien. Il lui arrive même de dépasser son concurrent et a l'avantage d'être plus centré sur ma distro favorite. Il intègre désormais le fameux handbook permettant d'installer sa Gentoo. Aujourd'hui je vais vous faire un ptit TL;DR de la partie dédiée à l'InitramFS.

Initramfs ?

Je pensais avoir déjà fait un article à ce propos mais visiblement non… Donc un initramfs est la première racine (quand je dis racine, c'est la racine des fichiers, c'est “/", c'est aussi ce que l'on appele le userland) que le kernel Linux va utiliser lors du boot.

Bon comment ça boot un ordi ?

Bon déjà le BIOS fait ses cachoteries. Et en théorie vous l'avez configuré en lui disant : “Pour booter, tu vas d'abord tenter de booter sur ce truc, si c'est pas bon essaye ce machin et enfin si aucun ne marche boot sur ce bidule.” . Bon généralement le truc, le machin et le bidule sont des appareils dits de blocs, c'est-à-dire un lecteur CD/DVD/Bluray (en voie de disparition), une clé usb ou plus classiquement un disque dur/SSD.

À partir de là l'ordi va donc regarder ce qu'il se trouve au dans les premiers blocs de l'appareil choisi en espérant trouver un bootloader. Il s'agit d'un programme qui fonctionne avec différentes couches.

La difficulté vient du fait que le BIOS ne peut charger qu'un bootloader d'une taille particulière qui se situe à un endroit particulier du disque dur. Et ce bootloader est d'une taille assez ridicule. Il doit donc être découpé en différentes couches qui vont chacune devoir charger la couche suivante. Il doit être capable de lire la partition sur laquelle il se trouve. Il va ensuite devoir être en mesure de charger le Kernel et lui donner ses options pour monter le reste.

Il est de plus en plus fréquent que le kernel (Linux évidemment) ne soit pas capable de monter de lui-même le système de fichier de sa racine : elle peut être chiffrée ou bien être sur un RAID par exemple. Donc afin de monter la racine, il faut déjà avoir des outils capables de déchiffrer ou bien assembler le RAID. Du coup il faut un système provisoire embarquant ces outils afin de monter la véritable racine. Ce système provisoire est donc fourni au kernel par le bootloader et est placé en ram. C'est le système de fichier initial en ram : initial ram filesystem ou initramfs. Une fois la racine montée, l'initramfs a terminé son boulot et passe la main à la racine et ça fini de booter.

Résumons : BIOSBootloaderInitramfsLinux userland

On a pas la main sur le BIOS, le bootloader on a la main mais on préfère le laisser le plus simple possible. L'initramfs est donc un vrai OS nunux qui n'est que temporaire pour charger l'OS définitif.

Et du coup il y a quoi dans ce truc ?

En gros c'est une racine classique sauf que ça doit rentrer en ram, donc on y met peu de choses et on fout tout ça dans un seul fichier que l'on compresse (le kernel sait décompresser pas mal de type fichier de lui-même).

On y met donc ce que l'on veut. Il nous faut généralement un shell pour pouvoir trifouiller manuellement en cas de soucis. On y fout donc de quoi monter la partoche racine donc là ça dépend de votre cas : de quoi déchiffrer ou bien de quoi “assembler” le RAID, gérer votre gestionnaire de volume (LVM).

Perso j'ai ajouté un peu de bonus :

  • j'y ai mis un client SSH afin de pouvoir déjà bidouiller sérieusement
  • mon fidèle tmux histoire de pas vivre comme des sauvages non plus
  • le layout bépo pour pouvoir écrire tranquilement
  • deux trois ptits outils comme kakoune, ncdu …

Rien d'extraordinaire mais c'est toujours pratique.

Comment on le crée alors ?

Il existe pas mal de méthodes différentes. Il ne s'agit que d'une archive de type cpio (un peu comme tar, zip et compagnie mais en plus primitif apparemment). Il existe pas mal d'outils différents pour le créer. Pas mal de distribution ont créé leur outil spécifique. Là on va tenter de faire ça selon les règles de Gentoo qui s'avèrent être la méthode officielle Linux.

Donc on crée le dossier /usr/src/initramfs et dedans on va y mettre quelques fichiers utiles. On va créer un fichier /usr/src/initramfs/initramfs.list qui contiendra les instructions pour générer le fichier en lui même :

Création de la structure

*/usr/src/initramfs/intitramfs.list*
# directory structure
dir /proc       755 0 0
dir /usr        755 0 0
dir /bin        755 0 0
dir /usr/bin    755 0 0
dir /sys        755 0 0
#dir /var        755 0 0
#dir /lib        755 0 0
dir /sbin       755 0 0
dir /lib64      755 0 0
dir /usr/lib64      755 0 0
#dir /lib32      755 0 0
dir /mnt        755 0 0
dir /mnt/root   755 0 0
dir /etc        755 0 0
dir /root       700 0 0
dir /dev        755 0 0
# depends
file /lib64/libmount.so.1       /lib64/libmount.so.1    755 0 0
file /lib64/libblkid.so.1       /lib64/libblkid.so.1    755 0 0
file /lib64/libc.so.6           /lib64/libc.so.6        755 0 0
file /lib64/libuuid.so.1        /lib64/libuuid.so.1     755 0 0
file /lib64/ld-linux-x86-64.so.2  /lib64/ld-linux-x86-64.so.2 755 0 0
file /lib64/libz.so.1           /lib64/libz.so.1        755 0 0
file /lib64/libpthread.so.0     /lib64/libpthread.so.0  755 0 0
file /lib64/liblzo2.so.2        /lib64/liblzo2.so.2     755 0 0
file /lib64/libresolv.so.2      /lib64/libresolv.so.2   755 0 0
file /lib64/libdl.so.2          /lib64/libdl.so.2       755 0 0
file /usr/lib64/libelf.so.1     /usr/lib64/libelf.so.1  755 0 0
file /lib64/libmnl.so.0         /lib64/libmnl.so.0      755 0 0
file /lib64/libnss_files.so.2   /lib64/libnss_files.so.2        755 0 0
file /lib64/libnss_dns.so.2     /lib64/libnss_dns.so.2  755 0 0
file /lib64/libutil.so.1        /lib64/libutil.so.1     755 0 0
file /lib64/libncurses.so.6     /lib64/libncurses.so.6  755 0 0
file /usr/lib64/libevent-2.1.so.6       /usr/lib64/libevent-2.1.so.6    755 0 0
# busybox
file /bin/busybox /bin/busybox 755 0 0
# btrfs
file /sbin/btrfs /sbin/btrfs 755 0 0
# our init script
file    /init                   /usr/src/initramfs/init 555 0 0
# our stuff
file /root/bepo.bmap            /usr/src/initramfs/bepo.bmap            444 0 0
file /usr/bin/ssh               /usr/bin/dbclient       555 0 0
file /bin/ip                    /bin/ip                 555 0 0
file /etc/nsswitch.conf         /etc/nsswitch.conf      755 0 0
file /sbin/boot                 /usr/src/initramfs/boot 555 0 0
file /usr/bin/tmux              /usr/bin/tmux           555 0 0
# mount fix
file /lib64/libmount.so.1	/lib64/libmount.so.1	555 0 0
file /lib64/libblkid.so.1	/lib64/libblkid.so.1	555 0 0
file /lib64/librt.so.1		/lib64/librt.so.1	555 0 0
file /lib64/libpthread.so.0	/lib64/libpthread.so.0	555 0 0
file /root/mount		/bin/mount		755 0 0

La syntaxe est plutôt simple, on indique s'il s'agit d'un fichier ou d'un dossier, puis le chemin qu'il aura dans l'initram et enfin ses droits. Vous pouvez bien évidemment vous inspirer du mien mais il y a fort à parier que si vous ne faites qu'un copier/coller ça ne marche pas.

Création de l'init

Alors le kernel démarre, son boulot va être de démarrer l’init à l'intérieur de l’initramfs. Donc c'est le programme init qui va faire le boulot qui nous intéresse.

Ça peut être un logiciel ou juste un script shell qui fait ses ptites affaires. Perso, je me suis fait un script shell assez basique (qu'on retrouve en exemple dans les différentes doc du web, hein, j'invente pas grand chose).

/usr/src/initramfs/init
#!/bin/busybox sh

rescue_shell() {
  echo "$@"
  busybox --install -s
  busybox loadkmap < /root/bepo.bmap

  echo "Voulez-vous la conf réseau habituelle ?"
  read network
  if ! test -z "$network" ; then net_setup ; fi

  echo -e "Une fois fini de faire mumuse : \033[41mexec /sbin/boot\033[0m"

  setsid cttyhack sh
}

mount_root() {
  echo "scanning for btrfs filesystems...."
  /sbin/btrfs device scan
  echo "mounting /mnt/root"
  mount /dev/sdb /mnt/root -o subvolid=$1
}

finish_boot() {
  # clean up. The init process will remount proc sys and dev later
  umount /proc
  umount /sys
  umount /dev

  # switch to the real root and execute init
  exec switch_root /mnt/root /sbin/init
}

net_setup() {
  echo "nameserver 10.0.0.254" > /etc/resolv.conf
  ip link set dev eth0 up
  ip a a 10.0.0.3/8 dev eth0
  ip r a default via 10.0.0.254
}

boot_menu() {
  echo "Qu'est-ce qu'on boot aujourd'hui ?"
# Gentoo is installed in the subvolid 5 and Alpine in the 555
  echo -e "\t1 | A | B : Gentoo"
  echo -e "\t2 | É | Z : Alpine"
  echo -e "\t3 | R : Rescue"
  read -t 5 choice

  case $choice in
    "1" | "\"" | "A" | "a" | "B" | "b")
      echo "Ça sera Gentoo !"
      /sbin/btrfs device scan
      mount /dev/sdb /mnt/root -o subvolid=5 || rescue_shell "Error trying to mount rootfs"
    ;;
    "2" | "É" | "é" | "Z" | "z" | "alpine")
      echo "Go pour Alpine !"
      /sbin/btrfs device scan
      mount /dev/sdb /mnt/root -o subvolid=555 || rescue_shell "Error trying to mount rootfs"
    ;;
    "3" | "R" | "r" | "rescue")
      rescue_shell
    ;;
    *)
      echo "Pas de le temps de niaiser, c'est l'heure de booter."
      /sbin/btrfs device scan
      mount /dev/sdb /mnt/root -o subvolid=5 || rescue_shell "Error trying to mount rootfs"
  esac
}

# 1) temporarily mount proc and sys
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev

# 2) disable kernel messages from popping onto the screen
echo 0 > /proc/sys/kernel/printk

# 3 ) Custom boot loader
boot_menu


echo "All done.\n\n"
finish_boot || rescue_shell

Bon je ne vous cache pas qu'en ce moment je le bidouille pas mal et donc qu'il est assez mouvant. J'ajoute des trucs j'en retire. Il y a moyen d'enlever des trucs si vous voulez vraiment le strict minimum. Dans mon cas le but est scanner les devices pour le btrfs et proposer le choix entre Gentoo et Alpine et un Rescue. Et le rescue c'est en fait busybox plus quelques logiciels en plus pour pouvoir démerdouiller ce qui arrive.

Assemblage

On va avoir besoin d'un ptit outil bien planqué.

On va lancer /usr/src/linux/usr/gen_init_cpio /usr/src/initramfs/initramfs.list > /usr/src/initramfs/initram.cpio . Et pouf ! On a un joli initram qu'on va pouvoir filer à bouffer à notre kernel.

exemple de menu.lst de Grub
title Gentoo RAID
root(hd1,0)
kernel /boot/kernel511 rootflags=device=/dev/sdb,device=/dev/sda,… rootfstype=btrfs quiet
initrd /boot/initram.cpio

Vous avez un joli initramfs fait main !

Cet article est dans les brouillons depuis deux ans. J'en ai eu besoin ces derniers jours et du coup je me suis dit que ça pourrait vous être utile également. Voilà tout.

J'ai d'ailleurs trouvé un bug sur la commande mount de busybox qui n'est pas capable de monter un sous-volume btrfs autre que celui par défaut.

Automount des partitions par leur label sous Alpine avec mdev

Bon maintenant que j'ai une Alpine sur l'Odroid HC2 il faut y mettre les données. J'ai donc un bon gros disque dur sur le port sata et un dock USB pour le disque dur des backup.

Pas de bol, les disques apparaissent bien dans /dev/sdXy sauf que j'ai par habitude de ne pas monter les partitions avec leur nom de device mais par un label, ou un uuid ou juste un id. Pas de bol, là, je n'ai qu'un id qui apparait dans /dev/disk/by-* .

Lister les devices

Comment ça marche ce truc d'ailleurs ?

Le kernel est pas très dégourdi : il ne gère pas la partition /dev, lui se contente de générer /sys qui contient tous les devices mais en vrac. À chaque fois que le kernel détecte un mouvement côté device, il va lancer une commande dans le userspace. Il est d'ailleurs possible de changer cette commande pour mettre ce que vous voulez. Dans le cas d'Alpine, on utilise Busybox et donc mdev au lieu de udev. On peut voir quelle est la commande en faisant un cat /proc/sys/kernel/hotplug Dans notre cas particulier, il faudra y trouver /sbin/mdev .

mdev va voir l'arrivée/départ du device et va agir en fonction de sa conf qui est définie dans /etc/mdev.conf . Ce fichier a une syntaxe au final assez simple définissant, en fonction du type de device, quel fichier créer dans /dev avec quels droits et éventuellement quelle commande lancer. Si vous voulez plus d'infos sur ce sujet il existe un article sympa pour débuter avec mdev (en anglais).

Bref, dans notre cas on va lancer un script dont le boulot va être de reconnaître le disque dur, puis ses partitions et ensuite de les mount. Donc on édite

/etc/mdev.conf
#sd[a-z].*	root:disk 0660 */lib/mdev/usbdisk_link
sd[a-z].*	root:disk 0660 */sbin/automount.sh

Voilà, on commente la ligne d'origine qu'on remplace par la nouvelle servant à lancer /sbin/automount.sh

Bon pour ce script on peut le faire soi-même ou bien faire confiance à Piotr Karbowski qui nous a pondu un script excellent que vous trouverez dans son repo github. Il ne manque qu'un ptit truc à ce script, l'automount. En fait il se contente de peupler les /dev/disk/by-*.

J'ai donc juste ajouté une ligne.

/sbin/automount.sh
#!/bin/sh
# Copyright (c) 2012, Piotr Karbowski <piotr.karbowski@gmail.com>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
#    * Redistributions of source code must retain the above copyright notice, this list
#      of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright notice, this list
#      of conditions and the following disclaimer in the documentation and/or other
#      materials provided with the distribution.
#    * Neither the name of the Piotr Karbowski nor the names of its contributors may be
#      used to endorse or promote products derived from this software without specific
#      prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE US
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# This script meant to create /dev/disk/by-* and /dev/mapper/* symlinks.
# and remove them after storage device is removed.
# the /dev/disk/by-* handling based on the idea and proof of concept from BitJam.

# debug
#exec >> /run/debug-mdev 2>&1
#set -x
#echo '### ENV:'
#env
#echo '### CODE:'
#

umask 077

storage_dir="/dev/.mdev-like-a-boss"
[ -d "${storage_dir}" ] || mkdir "${storage_dir}"

[ "${MDEV}" ] || exit 2

create_uuid_label_symlink() {
	local target_dir="/dev/disk/by-${1}"
	local target_symlink="${target_dir}/${2}"
	[ -e "${target_symlink}" ] && return
	mkdir -p "${target_dir}"
	ln -snf "/dev/${MDEV}" "${target_symlink}"
	echo "${target_symlink}" >"${storage_dir}/storage_symlink_${1}_${MDEV}"
}

add_symlinks() {
	# Skip temp cryptsetup nodes.
	case "${MDEV}" in
		'dm-'[0-9]*)
			case "$(cat "/sys/block/${MDEV}/dm/name")" in
				'temporary-cryptsetup-'[0-9]*)
					return 0
				;;
			esac
		;;
	esac

	if command -v blkid >/dev/null 2>&1; then
		local field name value UUID LABEL TYPE PTTYPE PARTLABEL PARTUUID
		local blkid_output="$(blkid "/dev/${MDEV}")"
		eval "${blkid_output#*: }"

		[ "${UUID}" ] && create_uuid_label_symlink 'uuid' "${UUID}"
		[ "${LABEL}" ] && create_uuid_label_symlink 'label' "${LABEL}"
	fi

	if [ -f "/sys/block/${MDEV}/dm/name" ]; then
		[ -d '/dev/mapper' ] || mkdir '/dev/mapper'
		if ! [ -c '/dev/mapper/control' ]; then
			awk '$2 == "device-mapper" { foo = system("mknod /dev/mapper/control c 10 " $1); exit foo }' /proc/misc || exit 1
		fi
		local dmname="$(cat "/sys/block/${MDEV}/dm/name")"
		if [ "${dmname}" ]; then
			local target_symlink="/dev/mapper/${dmname}"
			[ -e "${target_symlink}" ] && return
			ln -snf "/dev/${MDEV}" "${target_symlink}"
			echo "${target_symlink}" >"${storage_dir}/storage_symlink_mapper_${MDEV}"
		fi
	fi
	mount -a
}

drop_symlinks() {
	local type
	for type in uuid label mapper; do
		[ -f "${storage_dir}/storage_symlink_${type}_${MDEV}" ] || continue
		local target_symlink="$(cat "${storage_dir}/storage_symlink_${type}_${MDEV}" 2>/dev/null)"
		[ "${target_symlink}" ] || continue

		local target_symlink_device="$(readlink "${target_symlink}")"
		if [ "${target_symlink_device}" = "/dev/${MDEV}" ]; then
			rm "${target_symlink}"
		fi
		rm "${storage_dir}/storage_symlink_${type}_${MDEV}"
	done
}

case "${ACTION}" in
	'add'|'')
		add_symlinks
	;;
	'remove')
		drop_symlinks
	;;
esac

Automount

C'est presque tout bon : on a donc les disques qui apparaissent bien dans /dev/disk/by-* et on les monte automatiquement. Il ne reste donc plus qu'une étape pour les monter au bon endroit : configurer /etc/fstab

/etc/fstab
/dev/disk/by-label/morty	/mnt/sata	ext4	auto,noatime 0 0
/dev/disk/by-label/backup	/mnt/usb	btrfs	auto,noatime 0 0

Définir les labels

Bon c'est cool mais est-ce que vos disques ont bien leur label ?

Ext4

Un simple tune2fs -L backup /dev/sdb1

Btrfs

Tout aussi simple btrfs filesystem label /dev/sda1 backup et c'est bon.

Un reboot et c'est tout bon !

Si tout s'est bien passé vous avez vos disques montés au bon endroit et tout ce qu'il faut comme il faut.

*C'est un peu dommage qu'Alpine ne fournisse pas un script mieux foutu pour l'apparition des devices mais bon c'est l'avantage d'une distro minimaliste : il y a peu de morceaux à devoir décortiquer/analyser/comprendre pour pouvoir trifouiller et arriver au résultat escompté.

Adoption d'une Odroid HC2

Après les galères habituelles de livraison Made in Colissimo (grrrrr) j'ai enfin pû recueillir une ptite nouvelle à la maison.

Odroid HC2

Attendez attendez ! C'est pas le même article que le précédent !

Ça sera plus … heu … différent que le précédent.

Bref, je reprends. L'Odroid HC2 est une autre SBC de chez HardKernel. Celle-ci est spécialisée pour faire du stockage réseau : pas de sortie vidéo du tout. Il n'y a qu'un seul port USB, mais elle possède un port Sata avec son alim. Elle a un gros radiateur servant de socle pour accueillir un disque dur au format 3"1/2. Elle a quand même un CPU assez puissant (plus qu'un raspi, c'est le même CPU que dans les Samsung Galaxy S5 pour info). Elle a quand même un GPU mais aucune sortie vidéo…

Son OS se trouve par contre sur une carte microSD (pas d'eMMC possible).

OS

Bon vous avez probablement lu l'article précédent. Non ? Bha alors ?

Bon en gros : j'aime vraiment pas ArchLinux (ARM) mais ils sont à peu près les seuls à fournir tout ce qu'il faut : bootloader+kernel+initram+modules+userspace. AlpineLinux eux fournissent un super userspace mais pas le reste Du coup je me suis amusé à fusionner les deux.

Dans la procédure d'install du Odroid N2, ils font une partition /boot séparée mais pas pour le HC2. Il a fallu plus de bidouille du coup.

Hybridation entre Alpine et Arch

Archlinux ARM

Bon la HC2 contrairement à la n2 n'a pas de sortie vidéo, donc c'est à l'aveugle. Je fous la microSD dans l'ordi, je trifouille les fichiers, je refous la carte dans la SBC je la branche et … bha je croise les doigts pour pouvoir m'y connecter en SSH.

Et je vous cache pas que j'y ai passé quelques heures de très nombreux essais. Donc la première étape a été d'installer complètement ArchLinux Arm selon leur tuto. On le boot histoire de voir que la SBC fonctionne. Ça marche, on voit bien qu'elle a faite une requête DHCP et on peut s'y connecter en root via ssh. Bon ensuite, récupération de la microSD et début du bidouillage.

Alpine linux

J'ai créé un dossier dans mon ordi, dedans j'y glisse le contenu de /boot et de /usr/lib/modules . Bon ça c'est tout ce que je conserverai d'Arch.

Ensuite, je récupère le mini rootfs en armv7 de chez Alpine que j'ai détarré dans le dossier de tout à l'heure. Bon du coup là on a un truc à peu près bien comme base. Sauf que le mini rootfs est vraiment trèèès lite.

Il faut donc faire en sorte de faire la conf IP et démarrer le serveur SSH. Easy ?

hahaha NON.

Bref, j'ai tenté de booter en l'état. Visiblement pas de requête DHCP, pas de ping.

Modif de la carte pour y foutre un /etc/networking/interfaces en bonne et dû forme. Boot. Rien.

Will it boot ?

En fait la SBC fait clignoter ses LED mais au final je n'ai aucune idée de ce qu'il s'y passe. Du coup est-ce que ça boot ? Est-ce que ça kernel panic ? C'est vrai qu'on est en droit de se poser la question.

Bon j'ai rusé. J'ai édité le /etc/inittab pour y rajouter un script au boot qui ne fait qu'écrire un fichier dans /var/log/boot.

/etc/inittab
# /etc/inittab
::sysinit:/sbin/hello

Donc là, lorsque l'init de busybox démarre (sysinit) il va executer /sbin/hello

/sbin/hello
#! /bin/sh
echo "boot" > /var/log/boot

C'est ultra rudimentaire, hein mais le but est juste de savoir si au moins ça boot. Allez, je refous la microSD dans la SBC et je patiente puis éteint et récup la microSD.

Ho miracle ça a marché \o/. Donc elle boot bien avec son kernel et compagnie et démarre bien le mini rootfs.

Je veux du Ping ici !

Booter c'est cool mais maintenant il faut un moyen d'interagir donc il va nous falloir du réseau. Comme la première partie s'est bien passée j'ai fait pareil pour la suite.

J'ai donc rajouté un autre script au boot

/etc/inittab
# /etc/inittab

::sysinit:/sbin/netinit

Bon donc là on déclenche le script /sbin/netinit, donc… bha créons-le.

/sbin/netinit
#! /bin/sh
echo "BOOT" > /var/log/boot.log
/sbin/ipaddr a 10.0.0.252/8 dev eth0 >> /var/log/boot.log 2>&1
/sbin/iplink set dev eth0 up >> /var/log/boot.log 2>&1
/sbin/iproute add default via 10.0.0.254 >> /var/log/boot.log 2>&1

Bien penser à le rendre executable avec chmod +x sbin/netinit

Je vous passe la phase de tâtonnage pour arriver à ça, il m'a fallu quelques essais… On fout la microSD dans la SBC on boot. Et là, oui mesdames et messieurs : ça ping !

Bon après le réseau du SSH

Bon j'ai vraiment envie de prendre la main sur cette machine maintenant. Là ça doit bien faire deux heures que j'y suis mais on en voit le bout.

Il faut donc maintenant parvenir à installer des logiciels sur l'OS sans booter dessus. Alors on refout la microSD sur l'ordi et on va Frankensteiner un peu plus.

Retour sur la page de downloads d'alpine pour y chopper ce coup-ci le generic ARM en armv7. On l'untar dans un dossier temporaire et là au lieu de trouver un rootfs tout mignon, on trouve un bootloader, kernel et initramfs et surtout les apk pour divers paquets. Cette image est particulière parce qu'en fait l'initramfs est minimal et permet d'installer les paquets qu'elle contient.

Bon donc le but c'est de s'installer openssh-server donc pour voir les paquets nécessaires, on se rend sur la page du paquet et on reluque les depends. Donc dans un nouveau dossier temporaire on récupère les apk des dépendances ainsi que celui d'openssh-server :

  • openssh-server
  • openssh-server-common
  • openssh-keygen
  • openssh
  • zlib
  • openrc

Par chance, on aura pas besoin que d'un autre paquet… openrc qui est l'init officiel d'Alpine. Une fois tous ces paquets réunis. On va les extraire avec un mini script shell :

deapk.sh
#! /bin/bash
for i in $PWD/*.apk
do
  tar xvpf $i
done
rm *.apk
rm ./.*
rm ./deapk

Une fois exécuté vous vous retrouvez avec une jolie ptite arborescence qu'il suffit de glisser sur la microSD.

Il faut ajouter sshd au boot. Pour ça un simple ln -s etc/init.d/sshd etc/runlevels/default et le tour est joué.

On en profite pour pousser sa clé publique ssh dans /root/.ssh/authorized_keys pour s'éviter des emmerdes.

Et enfin l'ultime étape nécessaire pour pouvoir se connecter : débloquer le compte root.

On enfile la microSD dans l'HC2 et c'est bon.

PTY allocation request failed on channel 0

Et ouai on peut toujours pas se connecter avec un message d'erreur particulier. Bon j'ai pas la science infuse mais j'imagine que le problème vient du fait que le système est un peu installé à la rache et que tous les scripts d'init sont pas forcément bien passé.

Bref, c'est pas grave. ssh root@10.0.0.252 /bin/sh Et ça marche.

Bon, il n'y aura pas tous les ptits raffinement d'un shell parfaitement fonctionnel mais c'est pas grave : on a la main.

On peut installer setup-alpine. On se laisse guider et on reboot.

Et voilà on peut s'y ssh convenablement avec un truc parfaitement fonctionnel.

Pourquoi s'être fait chier comme ça ?

Même si ArchLinux (et son dérivé non officiel pour ARM) adopte la philosophie du KISS je ne trouve pas ça si simple et si léger. Systemd est trop bloaté à mon goût. C'est d'autant plus vrai pour un système qui va tourner sur une pauvre petite carte microSD qui aura tendance à claquer comme une merde au premier coup de vent.

Et puis, vu que l'architecture CPU est différente de ce que j'ai ailleurs, j'ai pas pu faire toutes ces manips à base de chroot (ça aurait été bien plus simple). J'aurai pu tenter de me simplifier la vie en passant par qemu mais j'avais pas spécialement envie de l'installer. Et puis c'était un défi sympa.

L'Odroid N2 ayant une sortie vidéo, il était assez simple de voir ce qu'il se passait pendant le boot et en rajoutant un clavier interagir avec pour corriger les éventuelles merdes. Là, sans ça, il fallait parvenir à avoir un système fonctionnel tout à l'aveugle. Un vrai Die&Retry.

Va falloir backup la microSD pour ne pas avoir à refaire tout ça la prochaine fois. Je pense que je passerai la carte en read-only par la suite histoire d'éviter qu'elle ne s'use trop vite. :wq

Adoption d'une Odroid N2

Après les galères habituelles de livraison Made in Colissimo (grrrrr) j'ai enfin pû recueillir une ptite nouvelle à la maison.

Odroid N2

La bête est un peu plus grande qu'un Raspberry, mais elle est toute mimi quand même. Pour sa petite taille elle est tout de même très puissante (bien plus que les raspi (même 4 non-throttlé). Avec ses 4Go de ram, son vrai port Gigabit et son slot de mémoire eMMC elle n'a aucun goulot d'étranglement pour les perfs et fera donc un ptit serveur redoutable à la maison.

En plus niveau conception ils ont foutu le CPU sur la face inférieure du PCB où réside un radiateur enveloppant toute la board. Elle est donc très bien refroidie d'autant plus qu'apparemment elle ne consomme que 5W au max.

                     
SOC AmLogic S922X
CPU 4x 1.8GHz A73 + 2x 1.8GHz A53
RAM 4Go DDR4
NIC Gigabit
Video Out HDMI 2.0 4K/60Hz
Stockage eMMC + MicroSD
USB 4x USB3.0 A + 1 Micro USB OTG

Si vous voulez plus d'info, le site officiel pourra vous aider.

Bon tout ça se paye… elle vaut 120€ chez Kubii par exemple. C'est plus cher que du Raspi mais c'est pas la même qualité ni les mêmes perfs. Ça reste tout de même raisonnable.

J'ai récupéré un module d'eMMC que je n'utilisais plus et il reste plus qu'à y coller un OS dedans.

ArchLinux

ArchLinux c'est l'artillerie lourde. Beaucoup de main d'œuvre, des repos très bien fournis (surtout si on compte AUR).

ArchLinux existe pour beaucoup de SBC dont la N2. Mine de rien c'est probablement la distro qui rush le plus pour proposer le support d'autant de board. Merci à eux pour ça, beau boulot.

Bref, je suis leur méthode d'install et pouf au bout de 5 minutes ça marche. Je SSH dessus et voilà ça tourne mais c'est tout tâché. C'est rempli de saletés comme networkd, journald, dbus, … bref cet OS porte la marque du malin (L Pouet).

Je commence à confer Knot pour me faire un nouveau slave DNS à la maison. Ensuite je passe à Postgres. Et là je me dis qu'il serait ptet bon de faire la conf IP (oupsss j'y pensais plus).

BEURK mais quelle horreur networkd. Non c'est bon j'en peux plus de cette merde.

Alpine Linux

Alpine est ma ptite chouchou du moment. Elle va remplacer Arch et fissa.

Le souci c'est que c'est une distro bien plus petite avec beaucoup moins de main d'œuvre et une communauté rikiki (mais super sympatique). Bref le problème c'est qu'il ne propose pas d'install spécifique pour ma ptite N2…

Bon, on va filouter. Je récupère l'eMMC, je l'enfiche dans l'adaptateur vers microSD. Lui je le fous dans l'adapteur carte SD. Et la carte SD je la fous dans le PC. WCGW ?

Hop, je jarte la seconde partoche que je remplace par un mini root fs en aarch64 de chez Alpine.

J'enfiche l'eMMC sur la board, je branche un câble HDMI, un ptit clavier USB et le câble d'alim.

Photo de mon bureau en bazar avec la N2, un clavier IBM Model M moddé en USB et tout un tas de trucs qui trainent

On pourrait en mettre cinq dans le clavier

Bon, bha en dehors du fait que le clavier est un poil handicapant (vim en qwerty sur clavier azerty où la touche shift gauche ne fonctionne pas et où il n'y a pas de touche échap ça devient folklorique). Bref, faut faire la conf réseau à base de

  • ip a a 10.0.0.253/8 dev eth0
  • la route avec ip r a default via 10.0.0.254
  • et ensuite les DNS avec echo “nameserver 10.0.0.254” > /etc/resolv.conf

Une fois tout ça fait on peut installer alpine-base qui permet d'installer à peu près ce qu'il faut.

  • apk update
  • apk upgrade
  • apk add alpine-base
  • setup-alpine
  • Il suffit de suivre le guide désormais :-)

Voilà ! On a une alpine pleinement fonctionnelle ! Pleinement ? Non, il reste une petite bidouille à régler: Il s'avère que j'ai copié mini rootfs d'alpine comme un sagouin et du coup toutes les commandes qui nécessitent de changer d'utilisateur déconnent ! PERMISSION DENIED ! PERMISSION DENIED Ouai ouai on a compris. Bref il m'a fallu faire un petit chmod o+rx / et tout est rentré dans l'ordre.

C'est quand même avec le kernel et l'initramfs d'Arch mais ça fonctionne. D'ailleurs il peut être sympa de récupérer les modules d'Arch pour les foutre sur l'Alpine.

Pour ça, on va aller chercher direct chez Arch avec les termes odroid-n2. Là on choisit le paquet linux-odroid-n2 et on le télécharge.

On détar le fichier ce qui va nous donner un boot,etc et usr. Les modules sont planqués dans usr/lib/modules/$version_du_kernel. On copie ça dans /lib/modules de la n2 et c'est bon. On peut modprobe l'un des modules (par hasard ipv6) et ça fonctionne \o/

D'ailleurs j'imagine que pour mettre à jour le kernel (ça sera rare tant qu'il n'y aura pas de kernel mainline (on croise les doigts, ça arrivera peut-être)), il suffira de récupérer le fichier image qui se trouve dans boot.

Voilà voilà pour le début des aventures de cette ptite SBC.


PS : On me signale dans l'oreillette qu'ArchLinux ARM et ArchLinux sont en fait deux projets proches mais distincts. Merci Breizh pour la remarque ;-)

Pinguez-moi pour jouer !

Après discussion sur IRC, je me suis dit qu'il serait intéressant de lister ici les quelques jeux multi que j'affectionne suffisamment pour être partant pour faire une ptite partie avec vous un peu n'importe quand.

La plupart de ces jeux ne sont pas/plus populaire et du coup c'est pas forcément facile de trouver quelqu'un avec qui jouer. Bref, si jamais vous aimez l'un de ces jeux et que vous voulez faire une ptite partie multi, n'hésitez pas à me pinguer, on se trouvera un créneau pour ça !

Quake 3 CPMA

Après Team Fortress 2, c'est probablement le FPS où j'ai passé le plus de temps. Je ne joue plus à Quake 3 normal, mais avec le mod CPMA, c'est toujours plaisant.

C'est multi-plateforme, le moteur est libre, seul les assets sont encore payants (une misère). CPMA n'apporte que de subtils changements qui rendent le gameplay bien plus fluide et nerveux. Le jeu est légèrement plus rapide et propose des maps spécialement taillées pour ce gameplay.

Capture d'écran d'une partie de CPMA

Franchement ? Je ne trouve pas ça moche.

Ça sera un plaisir de vous faire goûter l'une de mes délicieuses roquettes.

Pour jouer, selon votre OS, l'installation sera un peu différente. Sous Gentoo vous pouvez directement emerge quake3-cpma, ailleurs il vous faudra probablement installer Quake3, puis installer cpma en le choppant sur le site officiel.

Doom : Brutal Doom / Project Brutality

Je joue régulièrement à Doom 1 et 2 avec les mods Brutal Doom et Project Brutality. Il existe beaucoup de campagnes dont certaines vraiment sympa en coop avec des maps assez grandes. Même en étant débutant on s'amuse assez vite.

Capture d'écran de Project Brutality

Franchement ? Je ne trouve pas ça moche.

Il existe plusieurs moteurs pour jouer, le mieux c'est GzDoom, il vous faudra probablement les WAD de Doom1 et Doom2 trouvable contre quelques euros. Ensuite pour Brutal Doom un ptit tour sur ModDB et le tour est à peu près joué. Pour Project Brutality c'est un peu plus compliqué : je joue sur la version 3 qui n'est pas encore sortie, donc pinguez-moi je vous l'enverrai ;-)

Factorio : avec ou sans mods

La course vers l'espace. Le jeu de base se finit en une cinquantaine d'heure, les mods permettent de multiplier par 10 en rajoutant tout un tas de nouveaux composants dans tous les sens.

Une partie de factorio bien entâmée

Franchement, je sais pas vous, mais moi je trouve pas ça moche.

En multi il est possible de créer des bases encore plus grandes. Bref c'est du coop peinard.

OpenTTD

Issu du jeu Transport Tycoon Deluxe, cette version est libre avec des assets libres et pleins de mods. Excellent moyen pour perdre quelques dizainescentaines d'heures.

OpenTTD a des graphismes en 2D isométriques assez datés

Je veux pas avoir l'air de radoter mais, ça a quand même un certain charme

Ce jeu est particulièrement sympa en coop mais si vous êtes maniaques, je vais vous décevoir.

Tetrinet / Blockbattle / Blocktrix

Classique indémodable. Tetrinet est une version multijoueur de Tetris particulièrement prenante. Avec quelques bonus pour se foutre sur la gueule.

Il existe quelques variantes. La meilleure est Blocktrix, malheureusement c'est du Windows-only et le site est mort depuis des lustres. Par chance ça tourne super bien dans wine et ça s'adapte aussi aux écrans HiDPI \o/.

Bref voici le lien pour l’installer.

Le terrain de jeu de blocktrix

C'est pas joli, mais c'est très fonctionnel !

Si seulement le code était ouvert pour créer un portage plus moderne :-/ J'ai pas un excellent niveau mais je sais me défendre tout de même.

Nourrir ses gentils ptits chats

J'ai envie de vous parler de chat. Pas de discussion, hein. De chats. Les espèces de parasites qui dorment et réclament à manger.

J'en discute parfois avec des amis eux aussi infectés et il s'avère que depuis quelques mois j'ai pris conscience à quel point on nourrissait mal nos ptits bestiaux. Beaucoup de chats d'appartements sont en surpoids. Il faut dire que certains chats gourmands réclameront constamment de la nourriture et ne s'arrêteront que lorsque la gamelle est bien vide.

Mais pire que ça, souvent le régime alimentaire est désastreux. La très grande majorité de la bouffe pour animaux trouvée en supermarché ou magasins spécialisés n'est en fait pas vraiment approprié aux besoins réels des chats. Et ça inclut également la bouffe “premium” qui est juste plus chère que la classique sans forcément être meilleure. Les croquettes et pâtées sont souvent remplies de céréales, ce que les chats ne devraient pas manger.

Et la bouffe vendue par les vétos c'est souvent le même topo. Ils sont sponsorisés par Purina ou Hills ou autre truc du genre qui sont premium avec souvent telle ou telle vertue mais qui sont quand même blindée de céréales avec un fort taux de glucose et compagnie. Bref ne cédez pas.

Cette bouffe est souvent cause de divers problèmes dont l'obésité premièrement mais surtout du diabète. Bref, regardez un peu la composition de ce que vous leur donnez (ne vous arrêtez pas à l'étiquettes “truc au thon”, “truc au poulet”, mais regardez les proportions). Vous pouvez vous renseigner sur le web pour trouver plus d'infos à ce sujet, vous trouverez des documentaires des sites qui publient des comparatifs détaillées de la composition des croquettes.

Les forces en présences

Personnellement cela fait maintenant deux ans qu'on a radicalement changé l'alimentation de nos bestiaux. Ma ménagerie actuelle se compose d'un gros mâle de 9.6Kg, une petite femelle de 4.5Kg et d'une seconde femelle de 6.3Kg.

Le but du jeu a été de faire perdre 2Kg au gros, et 1Kg à la seconde femelle. Auparavant, on ne les nourrissait uniquement de croquettes qui étaient dispo à volonté. À peine la gamelle était un peu trop vide, le mâle nous le faisait savoir.

Un nouveau régime

Malheureusement avec l'âge et le surpoids, le gros a commencé à boiter et suite à un voyage chez la véto, le verdict est tombé : arthrose + obésité. Du coup, on s'est pas mal renseigné et c'est parti pour un changement drastique d'alimentation.

Exit les croquettes de merde. On va changer ça par quelque chose de plus sain.

Je ne vous cache pas qu'on a tâtonné quelque temps avant d'arriver de trouver la bonne formule avec les bonnes quantités. On a commencé par utiliser des croquettes de régime achetées en animalerie.

Effectivement ça marchait bien, le chat perdait du poids et ne réclamait pas, mais il n'avait vraiment pas la forme, son poil devenait terne… bref il dépérissait au bout de deux mois…

Bref après quelques errements la formule est désormais toute simple. On passe à un mélange de pâtée le soir à heure fixe et un peu de croquettes durant la journée. Niveau pâtée on donne des ptites boîte de marque Cosma. Ça revient à environ 1€ la boîte journalière pour les trois chats.

Il y a plusieurs parfums et ça a l'air presque appétissant (sur un toast ça passerait probablement). Une petite boîte répartie équitablement (la répartition est équitable, par contre le gros s'arrange toujours pour finir à droite à gauche) entre les trois. Et surtout à heure fixe : une fois l'habitude prise, ils sauront vous le rappeler au bon moment, plus besoin de rappel.

Et pour les croquettes on a pris du Orijen 6fish pendant un temps mais nous sommes passé à du Purizon Adult Sterilized Chicken & Fish. On est autour de 45€ le paquet de 6.5Kg qui tient un mois et demi pour les trois, en mettant quatre à cinq fois dans la journée de toutes petites ration dans la gamelle quand ils réclament.

Niveau prix

Attention voilà la douloureuse : On est à environ 68€/mois en incluant également la litière.

Bon d'ailleurs, soit-dit en passant, niveau litière on a arrêté la litière pourrie qui pu constamment. On est passé à une litière végétale qui absorbe incroyablement bien les odeurs et qui s'agglomère bien et qui est biodégradable (on ose pas les foutre dans le compost pour autant). C'est la Cat's best öko plus à près de 26€ les 40L. Ça tient deux mois sans soucis pour les trois chats. C'est le jour et la nuit avec la litière Catsan qui empeste la pisse au bout de deux jours.

Bref c'est un budget assez conséquent mais au moins ils mangent pas de la merde et se portent bien mieux.

Verdict

Sur le graph on voit la période de Mai à Aout 2017 avec les croquettes de régime qui l'ont mis dans un sale état.

Ensuite on est passé à des croquette “premium” jusqu'à Mai 2018 où la prise de poids a été constante.

De juillet 2018 à Avril 2019, c'était le régime avec les nouvelles croquettes sans pâtée. Il y a cependant quelques défaut sur le graph : le pic de Décembre est dû à un premier soucis de balance. Le pic d'Avril est dû au changement de balance (en vrai il n'a pas pris de poids, c'est juste que la nouvelle est mieux tarée).

Et enfin à partir d'Avril 2019 le mix pâtée + croquettes.

On va pas se le cacher ça coûte plus cher qu'avant mais en contrepartie, les chats ont un régime vraiment meilleur qu'avant. On ne risque plus trop de leur infliger un diabète ou tout un tas de maladie perrave.

Par trop de risque rénaux du fait de l'alternance pâtée et croquettes.

Et en trois mois, le gros est passé de 9.6Kg à 8.3Kg sans avoir l'air de dépérir. Ils réclament bien moins à manger et sont en bonne santé.

Bref pourvu que ça dure ! Je vous referai un point dans quelques mois quand il aura stabilisé son poids.

Quelques chaînes youtube

Je n'ai pas maté la téloche (hors séjour chez la madré) depuis des lustres désormais mais par contre plus ça va plus je matte de contenu issu de Youtube. De tous les services Google c'est un des rares dont je ne peux me passer.

Faut dire que c'est extrêmement bien foutu et la communauté est là et pas ailleurs. Mais c'est pas pour autant que j'ai un compte Youtube (pas folle la guêpe). On va dire que je consulte Youtube presque incognito : je vais rarement sur le site et quand j'y vais c'est dans une fenêtre en porn-mode. Les chaînes je les suis via RSS. Et généralement une fois qu'une chaîne est dans mes RSS je ne regarde les nouvelles vidéos qu'en passant par mpv+youtube-dl.

Je dis pas que je suis invisible pour Google mais bien moins trackable. J'imagine qu'ils se contentent de tracker 99% de ses utilisateurs et le reste tant pis.

Bref Je vais vous faire une ptite liste de chaîne que je consulte.

Voilà les liens RSS vers quelques chaînes.

Primitives

J'ai déjà fait un article dédié donc pas grand-chose de plus à raconter. On sent que la mode s'estompe et qu'ils tournent pas mal en rond désormais.

  • Primitive Life : Plus de six mois qu'il a rien posté. Est-il toujours vivant ?
  • Primitive Survival Tool : Cabane, piscine, cabane, piscine…
  • Primitive Technology : LA vraie. Non je veux pas dénigrer les autres mais il est resté fidèle à lui-même, ne semble pas tricher et ne fait pas des cabanes avec piscine en boucle. Il poste peu mais du contenu original. S'il ne faut en suivre qu'une c'est celle-là.

Ciné

J'adore le cinéma Bref, comme toutes les passions, ça se nourrit

  • Calmos : Ça parle cinéma comique ici. Peu de vidéo mais très intéressant.
  • Fabien Campaner : Chaîne qui aborde des thèmes dans le cinéma. C'est super intéressant, super bien fait et c'est drôle. Malheureusement plus beaucoup de vidéos :-/ À binger !
  • Gorkab : Chaîne spécialisé dans l'image de synthèse dans le cinéma. Au premier abord ça semble assez basique avec un contenu très factuel mais avec le temps il arrive à obtenir des interviews de techniciens mythiques des VFX.
  • Karim Debbache : Probablement mon vidéaste ciné favoris. Son humour est génial, ses acolytes au moins à 78% aussi drôles. Malheureusement ils ne postent plus rien car ils se sont acoquinés avec Dailymotion mais qui sait, ils reviendront probablement, ça sert à ça un RSS. Bref, ici vous aurez Crossed, une fois tout vu allez voir Chroma sur Dailymotion.
  • Le fossoyeur de films : Un des plus connus. Il fait des reviews mais aussi de l'analyse un peu plus poussé. Le fossoyeur est fini mais pas sa chaîne. Il est un des fondateurs du Frames Festival à Avignon qui réuni de très nombreux vidéastes.
  • Le ciné-club de M. Bobine : De la critique de films (pas de la review de sorties cinés). Très intéressant et puis ils adorent Mad Max Fury Road…
  • Les critiques du MaSQuE : De la critique et de la review de films. Aussi du jeu vidéo. Attention ça parle très vite faut être concentré mais c'est sympa et ça sort du lot.
  • Nexus VI : Une chaîne pas uniquement orienté ciné mais Science-Fiction. La réal est fofolle et l'humour bien dosé. Pas mal de crossover avec le fossoyeur (une bromance ?)
  • Romain Houles : Une chaîne sur le maquillage ciné. Ça change c'est cool.
  • Scinéma : De la science et du ciné mélangé. Peu de vidéo :-/

Jeux vidéos

Pas vraiment de reviews de jeux qui sortent (je ne joue plus aux nouveautés depuis des lustres) mais plus de l'analyse, de la réflexion et de la technique.

  • Ahoy [En] : Des vidéos très propres globalement sur l'histoire de grands jeux. Pas mal orientés sur les armes également. Poste peu mais de très bonne qualité.
  • Games Next Door : Des réflexions sur différents sujets sur le jeu vidéo. Ça sort de la masse et prend du recul. Sympa comme tout.
  • Pause Process : Ça parle technique dans le jeu vidéo. Bon c'est un peu mort mais c'est dommage. Ils ont quand même abordé tout plein de thèmes.
  • Pomf et Thud : C'est mort mais c'est dommage. Ils commentaient du StarCraft 2 avec humour. Bon maintenant c'est OgamingSC2. C'est plus pro toussa toussa.
  • Summoning Salt [EN] : Une chaîne sur le speedrun. Elle se spécialise dans l'historique des records d'un jeu et explique quels sont les approches. J'en regarderai pas tous les jours mais le rythme de publication est suffisamment long pour pas que ça prenne le chou.
  • Joueur Du Grenier : probablement l'un des plus anciens vidéastes de la plateforme. C'est toujours aussi agréable à regarder et la réal monte en puissance depuis ces quelques dernières années.
  • Noclip [EN] : des documentaires sur les jeux vidéos mais plus orienté sur leur création. Avec des interviews, des visites de studios.

DIY

Une catégorie que j'apprécie beaucoup. C'est pas du bricolage de merde ici mais plus des artisans qui se font des trucs. J'adore les vidéos qui parlent pas où les gens construisent des trucs avec tous les bruits des machines. Ça ponce, ça lime, ça soude, ça scie

  • BanjoShow : Il me semble que c'est un frenchy et il fait du joli Steampunk à base de cuivre, laiton. C'est mimi tout plein.
  • Le labo d'Heliox : Ici ça fait un peu d'électronique et surtout de l'impression 3D (avec quelques reviews). C'est un niveau assez débutant c'est cool.
  • Make it Extreme : De la bonne grosse soudure, de la grosse découpe, des roulements, des pistons. Ça va se bricoler du bon gros outil en ferraille.
  • The Modern Home Project [EN] : Un américain qui se construit une maison en container dans la pampa Californienne. Peu de vidéo (c'est le début), mais un projet sympa.
  • Wintergatan [EN] : Un musicien qui se créer un instrument de musique à base de bille, rouage, ingéniosité. C'est sa deuxième machine. Chaque mercredi il montre ses progrès. Et en plus même s'il n'est pas français il habite en France le monsieur.
  • My Mechanics : De la restauration de vieux objets. Le résultat est bluffant mais surtout c'est relaxant à regarder (mieux que du vrai ASMR). J'ai envie d'un atelier !!!

Vulgarisation

De la vulgarisation scientifique principalement. C'est toujours bien d'apprendre des nouveaux trucs.

  • Dans Ton Corps : Ça parle santé avec beaucoup d'humour avec une fréquence très régulière.
  • Kurzgesagt [EN] : De la vulgarisation sur pas mal de thêmes différents mais orienté science tout de même. C'est magnifiquement fait à base d'animation vectorielles. C'est sous-titré dans plein de langue.
  • Chat sceptique : Une première chaîne nommée La statistique expliquée à mon chat qui s'est transformée (dissenssion). C'est des maths surtout mais ça vulgarise bien.
  • Spline : Il va tenter de vous débiaiser la face. J'aime bien la réalisation faussement simple et le ton.
  • E-Penser : Un des vulgarisateurs scientifiques les plus connus de Youtube. Le rythme de publication a pas mal ralentis ces derniers temps mais ça devrait reprendre de plus belle.

Autre

Pas facile de les classer :

  • Alt 236 : Rien que le nom c'est intrigant, hein ! Une chaîne spécialisée dans l'art mais orientée sur le fantastique, l'intrigant, le dérangeant. C'est super bien fait et très … ambiance.
  • Luke Towan [EN] : Un spécialiste de la maquette ultra réaliste. Ça parle peu et c'est assez captivant à voir. Le résultat est bluffant.
  • MYST : Des sujets mystérieux qui sont racontés avec deux approches : scientifique et mystique.
  • Metalliquoi : Ça parle de musique un peu ! Enfin surtout Metal. J'ai pas trop les mêmes goûts dans le métal mais sa bonne humeur fait que ça passe bien.
  • Stop a Douchebag [RU/EN] : C'est chiant les gens garer comme des merdes ! Ces russes s'attaquent à ce fléau et autant vous le dire ils ont du taff. Ils posent des énormes stickers sur les bagnoles qui roulent sur les tlotoires. Le ton monte très souvent et la police intervient parfois. Étrangement ça me relaxe.
  • Une Chanson L'Addition : Chaque semaine ça parle d'un morceau célèbre : sa genèse, son contexte, son sujet. C'est principalement rock quand même.
  • 李子柒 [CN] : Une chinoise qui vit dans sa ferme et fait tout un tas de trucs (surtout de la bouffe). Vraiment sympa à regarder même si on ne comprend rien. Elle est débrouillarde qu'elle en peut plus et de mon point de vue occidental c'est très dépaysant. Elle bouffe des “trucs” de son potager, se construit des meubles, se couds des vêtements depuis de la soie de ses propres vers. Bref, je sais pas à quel point c'est représentatif du monde rural chinois mais c'est bluffant.

Bon j'ai pas tout mis, il y en aura d'autres. Mais là il y a déjà de quoi faire avec quasiment que du francophone.

Je vous ferai une autre fournée dans quelques mois.

Petit vrac pour améliorer l'accessibilité de votre site

Hey encore un post sur les modifs sur le site. Ce coup-ci c'est un peu plus orienté accessibilité et potentiellement plus intéressant pour vous si vous avez également un site.

Allez voilà en vrac quelques modifs intéressantes.

Indiquer la bonne langue

C'est tout con, on y pense pas trop, mais il faut indiquer la langue de votre document. Ça généralement c'est fait à peu près partout mais une piqûre de rappel ne fait pas de mal.

Donc dans votre balise html globale, indiquez la langue de votre page.

<html lang="fr">

Mais au-delà de ça, pensez à l'indiquer également si vous avez des éléments dans une autre langue sur votre page. Dans mon cas, j'indiquais que la page était disponible en anglais mais je n'avais pas mis l'attribut lang sur l'élément. Ça peut paraître con, mais un lecteur d'écran sait changer d'accent et de prononciation en fonction de cet attribut ce qui améliore grandement le rendu.

Donc maintenant j'ai :

<p lang="en"><a href="…"> Available in Frenglish : …</a></p>

Les Alt c'est bien mais pas trop

Bon j'imagine que vous êtes déjà bien au courant mais si vous avez des images dans votre page web, il faut mettre l'attribut alt avec une ptite description de l'image. Bon par contre, si c'est une image uniquement décorative qui n'apporte pas de contenu vous pouvez zapper.

Bon celui-là est basique comme conseil mais je me suis fait avoir. Dans la sidebar j'ai les ptites icônes sur lesquelles j'avais mis des alt. Mais au final je les ai supprimé car c'était redondant avec l'attribut title qui se trouvent sur les liens.

Et ouai, quand vous avez une image dans un lien et que vous avez bien fait votre lien, abstenez vous de garnir l'image d'un alt redondant.

Avoir du HTML valide

Ouai ouai c'est bateau mais ça arrive de plus en plus fréquemment de voir des sites testés pour Chrome et… c'est tout. Même si ça représente la vaste majorité des utilisateurs, il faut penser à tous les autres.

Un lecteur d'écran sera probablement bien plus sensible à du HTML crasseu. Franchement c'est pas dur d'avoir un truc valide donc faite le sans concession.

Tester avec un navigateur texte

J'enfonce encore des portes ouvertes mais celui-là permet de vite “voir” quel est le rendu qui sera interprété par un lecteur d'écran. Certains sites ne montrent pas leur contenu dans un ordre pertinent et utilisent du CSS pour rendre le truc plus cohérent et c'est une mauvaise pratique. Bref, si votre site est facilement navigable dans un navigateur tel que w3m, elinks, lynx ça devrait le faire.

Utiliser les balises sémantiques d'HTML5

Bon HTML5 n'est plus tout neuf désormais. Pas mal de nouvelles balises sont apparues avec lui.

Elles n'ont pas de rôle technique à proprement parlé et s'utilisent comme un div mais leur intérêt est dans le sens qu'elles convoient. Vous pouvezdevez utiliser header, nav, aside, main, footer, article, section et form. Grâce à ça vous donnerez plus de sens à votre page. Ça bénéficie à la fois aux humains mais également aux logiciels qui comprendront mieux votre page et sauront mieux la décortiquer (il paraît que ça influence le référencement Google).

Toutes ces nouvelles balises sont associées par défaut à des roles aria (des attributs html que l'on peut apposer manuellement afin de rendre sa page plus accessible).

Skip to content

En plus d'utiliser les nouvelles balises sémantiques vous pouvez aider les utilisateurs de lecteurs d'écran en leur épargnant les parties redondantes de votre site en ajoutant un lien permettant de se rendre directement au vrai contenu de la page.

Un lecteur d'écran lit toute la page (très rapidement) dans l'ordre. Les pages ont très majoritairement leur menu bannière et compagnie au début. Les gens doivent donc se les coltiner à chaque changement de page ce qui doit être des plus agaçants.

Du coup, vous pouvez ajouter lien pour passer tout l'enrobage et vous rendre directement au contenu. Et vous pouvez bien entendu rendre ce lien invisible via du CSS ou en utilisant la classe sr-only qui ne s'affiche que pour les sr, les screen readers.

Les couleurs pour le contraste mais aussi la taille

Le choix des couleurs n'est pas complètement anodin. Bien que l'esthétique soit la première considération il faut tout de même garder un truc lisible. Il faut donc toujours un fort contraste.

Mais sachez que si le contraste de votre texte par rapport à son fond est un peu faible, vous pouvez également contrebalancer ça en augmentant la taille du texte. Plus le texte est imposant plus son contraste peu être faible.

Les styles sur les liens

Un truc un poil à la mode et pourtant emmerdant c'est de planquer les liens. On a été très longtemps habitué aux liens écrit en bleu avec un souligné continu.

Bon c'est vrai que c'est moche. Mais on peut styliser le truc de façon à ce que ça ressorte quand même. Bref mettez toujours un signe distinctif comme du souligné, des tirets, des points, un truc quoi.

Et surtout ne vous amusez pas à virer le outline. Ça permet de savoir quelle partie a actuellement le focus. Et c'est surtout utile pour les personnes utilisant la navigation au clavier.

On peut même s'amuser en foutant une très légère animation un grossissement et tout mais ne le virez pas.


Voilà, ça sera pas parfait mais ça sera surement plus agréable pour vos lecteurs.

Je tiens à remercier |Lupin| pour ses précieux conseils.

Se débarasser des firmwares en rabe dans Alpine

Allez un micro-article des plus rapides.

Vous connaissez Alpine Linux ? C'est l'une des meilleures distros du moment. L'une de ses forces et sa légèreté.

Ça s'installe très vite, ça prend très peu de place, son administration est vraiment légère. Par contre, si vous prenez l'install de base pour faire une VM (enfin c'est pas spécifique au VM à proprement parlé, hein), vous allez remarqué qu'il y a quand même pas mal de trucs installés.

Et quand je dis trucs, je veux parler des linux-firmware-X qui servent à faire fonctionner du matériel. Il y a fort à parier que vous n'avez pas besoin de tout ce qui est pré-installé. Dans ce cas-là, il suffit de faire un ptit coup de apk add linux-firmware-Y.

Bon, il faut savoir de quels modules vous avez besoin et là… bha faut connaître votre machine. En faisant ça, cela supprimera tous les modules sauf ceux que vous avec explicitement choisis. Mais si vous n'en avez besoin d'aucun, il vous suffit d'installer le paquet virtuel avec apk add linux-firmware-none et voilà.

Voili voilou. À chaque fois je cherche le nom de ce paquet magique, maintenant je le retrouverai plus facilement.

Modif du premier semestre 2019 sur le blog

En ce moment je m'amuse en modifiant un peu le site. Rien de bien transcendant, hein. Mais ça m'amuse quand même.

Raffinage de l'esthétique

Rayures

Déjà j'en avais un poil marre de l'aspect un peu trop lisse. J'ai donc ajouté des rayures, de la texture sur quelques fonds. Ça reste quand même assez léger mais au moins c'est moins insipide.

D'ailleurs les rayures de fond d'articles donnent une impression de 3D grâce à un très subtil dégradé.

Lumières et bordures

J'ai un poil ajusté les bordures des articles en passant aux couleurs de type hsl pour la cohérence. Hein !? Mais ça n'a aucun sens !

Jusqu'à présent j'utilisais des couleurs choppées au pif. À la fois pour la couleur supérieure et sa version moins saturée (bordure du haut vs les trois autres bordures).

Les couleurs peuvent être représentées de plusieurs façons différentes en css. Soit avec un nom comme orangered, soit avec une représentation héxadécimale comme #bad, soit avec la représentation rgb (red green blue) comme rgb(117,32,100) mais aussi en hsl qui représente hue saturation luminance comme hsl(54,58%,58%). Avec hsl, il est donc possible de choisir une teinte (hue) et ensuite de choisir son intensité et sa luminosité. C'est donc beaucoup plus logique de choisir sa couleur principale et de la décliner en gardant la même teinte. Et on peut donc avoir la même différence relative pour différentes couleurs très facilement sans avoir rien à calculer par cette représentation.

Bref je l'ai utilisé pour les quatre couleurs de type de postes.

Les posts
Les fast-posts
Les shares
Les ideas

Franchement je trouve ça joli toutes ces ptites couleurs !

Blogrolls

J'ai déjà abordé plusieurs fois le sujet mais j'y retourne. Je pense qu'une forme de lutte contre les GAFAM est la production de contenu hors de leur emprise.

Bon j'ai déjà écrit des bouts de tutos pour un peu toutes les étapes. Mais maintenant vais aussi faire un peu de pub pour vos blogs avec un blogroll.

Sur la homepage, je vais afficher un certain nombre (pour l'instant je sais pas encore exactement combien, je vais voir à l'usage) d'extrait d'articles vers des blogs francophones pour en faire la pub. Voilà voilà :-)

Pour le générer, j'utilise Openring qui est écrit en Go et permet tout simplement de générer un ptit fichier html qu'il n'y a qu'à inclure. Ça s'emboîte pas trop mal dans Hugo. Ce logiciel est vraiment très récent, mais il fait déjà le boulot.

Maintenance de la DB de Pleroma

Le Fédiverse c'est vraiment génial. Son écosystème bouillonnant avec de nouveaux logiciels et fonctionnalités qui arrivent de partout. Perso, j'ai jeté mon dévolu sur Pleroma qui est léger et fonctionnel.

Enfin léger… sa base de données augmente inexorablement. Entendons-nous, c'est pas un bug ni rien. C'est le fonctionnement normal, plus le temps passe, plus la quantité de données augmente, c'est tout à fait logique.

J'ai installé mon instance fin Octobre 2018. Mon instance s'est donc fédérée petit à petit au point de connaître désormais plus de 2000 autres instances.

  DB Postgres     /home/pleroma  
29/10/2018 26 Mo 144.5 Mo
04/11/2018 88 Mo 144.9 Mo
20/11/2018 320Mo 161.5 Mo
02/02/2019 1212 Mo 256.4 Mo
18/03/2019 1809 Mo 280.4 Mo
31/05/2019 5021 Mo 345.7 Mo

Bref, ça monte assez vite et il faut donc faire un peu de ménage.

Pleroma commence à proposer quelques commandes internes pour cela.

Étape par étape

  • Situation initiale : 5021 Mo
  • MIX_ENV=prod mix pleroma.database remove_embedded_objects5997 Mo NANI !?
  • psql -d pleroma_prod -c ‘VACUUM FULL ANALYZE'3836 Mo ! pfiouuu c'est mieux, beaucoup mieux.
  • MIX_ENV=prod mix pleroma.database prune_objects3573Mo, ça aide aussi pas mal.
  • psql -d pleroma_prod -c ‘VACUUM FULL ANALYZE'3372 Mo ! pfiouuu c'est mieux, beaucoup mieux.

Et voilà.

Lorsque vous faites le VACUUM FULL ANALYZE votre instance sera inutilisable (vous ne perdrez pas de toots pour autant, soyez juste un peu patient).

Encore plus ?

Et oui c'est possible ma bonne dame ! Vous êtes vraiment limité en espace disque et vous voulez vraiment gagner beaucoup plus de place ? Et bien l'ami Tetsumaki a la solution. Si vous suivez son article vous pourrez gagner de précieux octets.

Pour vous donner un ordre d'idée, en suivant sa technique je suis de 3372 Mo à tout juste 242Mo. Ouaip ! 242Mo !

Bon la manipulation est un peu plus touchy donc faites bien votre backup avant et sachez le restaurer au cas où. Cette manipulation est plus destructrice : vous perdrez des anciens toots et compagnie mais au final… est-ce vraiment gênant ?

/etc/pve vide sur Proxmox

J'ai filé un ptit coup de main aujourd'hui sur une ptite install Proxmox un peu à l'agonie.

Après un reboot, le dossier /etc/pve était vide. C'est le dossier qui contient un peu toute la conf de l'hyperviseur, c'est donc pas super pratique.

Je suis pas vraiment expert Proxmox, j'utilise presque pas ce truc et ma première réaction été un ptit “O___O une partoche séparée pour /etc ?!” Bon pourquoi pas.

Bon, le fstab n'est pas d'une grande aide vu que ce n'est pas mentionné. J'imagine que c'est vraiment de la tambouille interne à leur truc. Va falloir se renseigner un poil sur leur système.

À première vue, un ptit coup de pvecm status m'indique pve configuration filesystem not mounted. Thanks Cpt Obvious !

Allez, tentons de redémarrer le service de cluster service pve-cluster restart. Systemd comme d'hab te dit que ça marche pas sans te sortir le message d'erreur… merci j'adore. Allons voir journalctl -xe.

Hmmm bizarre tiens j'ai une ligne intrigante. /etc/pve/local/pve-ssl.key: failed to load local private key (key_file or key) at /usr/share/perl5/PVE/APIServer/AnyEvent.pm line 1626. À première vue comme ça je vois pas trop le rapport mais bon, allons voir ce fichier et surtout cette ligne…

Bon je vous épargne mon habilité naturelle à lire le Perl… le problème vient pas réellement de là. Enfin je pense pas.

Refaisons un ptit tour sur le moteur de recherche (DDG, pas Google, hein !). … …

Ha tiens, apparemment il y aurait ptet une autre erreur planquée. journalctl -e Je fouille pour vérifier.

HA.mp4

balou pmxcfs[12300]: [main] crit: Unable to get local IP address

Il pouvait pas le dire plus tôt ?!

Un ptit tour dans le /etc/hosts pour commenter les lignes commençant par 127.0.0.1. Redémarrage via service pve-cluster restart. Et là plus d'erreur.

/etc/pve a récupéré ses fichiers \o/

Bon, en fait visiblement, Proxmox sachant fonctionner en cluster, cette partition est potentiellement partagée/distribuée/synchronisée avec les autres nœuds. Cela explique pourquoi cette partition est un peu particulière.

Bref, vingt minutes de perdu à cause de messages d'erreur pas raccords ou planqués. Heureusement, ça marche plutôt bien habituellement.

Bref, voilà si ça peut vous aider tant mieux et surtout faites un backup des fichiers de conf en plus de vos containers !.

Monitorer ses certificats TLS

Pour une fois je vais essayer de pas parler de SSL (les habitudes toussa toussa) mais de certificat TLS (parceque x509 ça parle pas à grand monde).

Bref, Une grande partie de la sécurité des services sur Internet repose sur TLS, que ce soit du web, du mail, de l'irc, du … Du coup pour sécuriser ça, on emploie des certificats que l'on fait signer par une Autorité de Certification ou CA en anglais. Donc si je résume : tout est sécurisé par TLS et tout repose sur les CA.

Imaginez la pression qui s'exerce sur les CA. Ce sont des cibles aussi bien pour les attaques des viles pirates mais également des nobles corsaires (commandités par un gouvernement).

Pour se protéger d'une vilaine CA, un propriétaire d'un nom de domaine peut mettre en place CAA ce qui empêchera (théoriquement) toutes les CA (sauf celle spécifiée) de signer un certificat pour ce domaine. Les CA doivent respecter ce système depuis quelque temps maintenant. Les gros navigateurs se chargent de ne plus faire confiance envers les CA ne respectant pas ça.

Mais on peut aussi pousser le bouchon un poil plus loin avec le Certificate Transparency. Il s'agit d'un journal public, où toutes les CA consignent les certificats qu'elles signent afin d'avoir une trace. Il est donc très intéressant de consulter ces logs publics afin de vérifier que personne n'a émis de certif dans votre dos.

Tout ce qui est manuel tombe à la trappe. Heureusement Crt.Sh propose *roulement de tambour* … un flux RSS ! C'est basique, mais ça fonctionne.

Ça vous permet à la fois de voir si votre renouvellement s'est bien passé, mais aussi que personne d'autre n'en a fait un.

Perso, je le couple avec une notif IRC déclenchée par le script de renouvellement Let's Encrypt.

Voilà c'est tout bête mais malheureusement c'est rarement monitoré, même pour des services plutôt sensibles comme des banques, des fournisseurs de système d'exploitation et autre… Tiens d'ailleurs, vous voulez un ptit Wall of Shame ?

Ma collection de claviers

Ça fait un bail que je voulais vous présenter ma collection de claviers. Je n'en suis pas peu fier !

J'ai fait une ptite séance photo cet aprem pour vous les présenter. Ils sont tous en état de fonctionnement et certains servent régulièrement en tant que clavier principal (et pas juste le temps d'une ptite démo).

Bon avant de vous jeter sur les photos, je vous préviens, ils sont pas tous parfaitement shiny and chrome ! L'éclairage est naturel aussi ça peut jouer un peu. Et j'ai des chats et donc des poils un peu partout :-)

Si vous cliquez sur les images vous les aurez en meilleures qualités et en entier.

Allez j'ai envie de commencer !

Microsoft Natural Keyboard

Voilà le premier clavier que j'ai acheté il y a maintenant un bon moment. Je l'ai beaucoup aimé mais quand je le re-teste un peu maintenant… je supporte plus son touché.

Quand on a goûté au mécanique, c'est assez difficile de revenir sur ces merdes.

Un clavier scindé en deux de chez Microsoft il y a vingt ans

Mon premier clavier acheté volontairement

C'est un clavier en PS2 qui a connu des nouvelles versions.

Le glamshot de rigueur où l'on voit bien la scission centrale.

Ça me fait encore un ptit effet ce design.

Allez, il peut retourner au fond du placard.

Razer Black Widow

Le clavier gamer mécanique assez basique. À vrai dire c'est le clavier de ma femme, je ne l'ai quasiment pas utilisé.

Un clavier noir avec un design anguleux

razer oblige c'est noir et anguleux. Pas de loupiote sur çui-là.

Il a des cherry MX bleu et donc est sacrément bruyant et se branche en USB. On a tweaké quelques trucs (remplacé par des MX blacks, quelques o-rings, le keycaps échap changé) mais rien de bien méchant.

Le glam-shot.

Le plastic est légèrement irisé sur cette photo… La font est moche à souhait mais gamer gamer…

Il ne sert plus celui-là non plus. Lui je le rebranche sur le ptit ordi du placard en cas de maintenance.

Siemens ??

Un clavier sauvé de la poubelle. C'est un Cherry avec des switch noirs.

Il est basique et moche

Rien de bien folichon. Je ne l'ai quasiment pas utilisé.

Il est assez basique en PS2 avec un joli câble cependant.

Le glamshot de base

Ouaip. C'est basique. Pour ça que je l'aime pas spécialement.

Bleudo

C'est pas son vrai nom mais ça lui va plutôt bien !

Il a des touches bleues avec des symboles de téléphonies.

Un peu plus exotiques, hein ?!

C'est un clavier PS2 en cherry black qui servait pour de la téléphonie. Raccordé à un PABX il était lié à un téléphone et un ordi et permettait de gérer les appels, transférer des appels et tout…

le glamshot usuel

Je le trouve vraiment sexy celui-là.

Alcatel 4059

C'est son vrai nom et c'est il est encore plus poussé que le Bleudo niveau téléphonie.

Il possède beaucoup plus de touches dont beaucoup avec des voyants

Franchement elles sont pas mimi toutes ces touches avec fenêtre ?

Celui-là ça commence à être un poid lourd. Il est assez massif avec un paquet de touches et ses led. Ce sont des touches MX noirs.

Il a un connecteur à la con (un boitier est nécessaire pour le brancher à un ordi) mais il existe une version USB. Lui aussi, comme le précédent, est couplé à un téléphone et un ordi pour gérer les appels.

Encore un glamshot

Il a un peu pris la poussière mais admirez quand même ces touches de fonctions.

Bref je l'ai jamais fait fonctionné sur un ordi à la maison.

Alcatel ??

Ouai un autre Alcatel mais en PS2 et switchs noirs

On retourne sur du plus classique.

Un clavier basique.

Il ressemble beaucoup au Siemens, hein ?

Comme le Siemens, en vrai c'est du made in Cherry rebrandé. À peu près le même modèle que le Siemens.

le glamshot encore et toujours

Oups le coup d'éponge était pas encore parfaitement sec…

Il m'a très peu servi.

Sesam ??

Bon c'est pas son nom, hein ! Lui c'est un chouchou à la maison qui sert en ce moment même.

Allez je vous spoile pas :

Un clavier normal mais avec un lecteur de carte à puce et un petit écran LCD.

Ho mais qu'est-ce donc que cette excroissance ?

C'est un clavier de médecin/pharmacien toussa. Il a un lecteur de carte vitale. C'est en PS2 et aussi en RS232 !

Ce sont des cherry black.

Je ne l'ai jamais branché sur le port série mais lorsqu'on le branche sur l'écran on le voit booter !

L'écran indique qu'il démarre

Et il y a un petit bip quand on le branche !

L'écran indique ensuite la version de son firmware

Sa version de firmware.

Son ptit glamshot

La simplicité.

Allez je le rebranche.

IBM Model M

Que serait une collection de claviers sans un fameux Model M ?

C'est un énorme clavier avec quelques différences notables comme, par exemple, les touches F1 à F24, pleins de touches de fonction à gauche et les flêches sont dans un ordre qui déroute

The beast. Le plus lourd de la collec !

Voilà la légende. C'est un système de touche différents des Cherry MX, ici c'est un gros ressort qui se plie pour actionner le contact. Bref ça fait un sacré bruit et il faut appuyer assez fort.

Une fois le plastic supérieur retiré on voit la grosse plaque métallique (et la crasse).

Voyez cette feraille ? Ça explique le poids. À quatres roues près, ça ferait un bon skate.

Le connecteur d'origine est un DIN assez massif que j'ai remplacé par un Teensy pour avoir de l'USB. Bon malheureusement ça marche pas parfaitement car certaines touches ne sont pas reconnues. Bref c'est difficilement utilisable.

J'ai glissé un petit Teensy à l'intérieur qui tente de convertir le DIN en USB.

Le hack basique pour avoir de l'USB (j'ai été radin sur la longueur du câble).

J'imagine qu'avec un autre firmware (Soarer) sur le Teensy il y aurait moyen de s'en sortir.

Bref, une pièce que tout geek du clavier se doit d'avoir !

Encore un glamshot

Sous les touches se trouvent une 'autre touche'.

Mon favori !

Mon fait maison fait avec des Cherry MX Brown et qui se branche en USB.

Un cadre en bois, une plaque d'alu, des touches bariolées, quelques fils qui dépassent.

Admirez le souci de la finition !

J'ai un méli-mélo de keycaps avec 4 profils différents. Une touche qui sert à rien.

L'ultime glam shot.

Il mériterait ptet un ptit coup de décrassage :-°

Voilà c'est celui qui a permit d'écrire la majorité des articles ici.

Typematrix 2030

Je ne l'ai plus. Donc pas de photo.

Il m'a servi quelques années lors de mon apprentissage du bépo. Je l'ai donné depuis.


Voilà tout pour le moment.

Best-of début 2019

Salut tout le monde !

J'étais en train de me dire que ça fait un petit moment que j'ai pas étoffé un peu le Best-Of de mon site. Mais j'ai toujours du mal à décider quoi mettre dedans.

J'essaye d'y mettre des posts qui sont toujours intéressantes à lire même quelques années après leur rédaction. Donc pas de trucs liés à l'actualité, pas de trucs qui vont devenir obsolètes.

Et puis finalement je me suis dit que vous demander votre avis pouvait probablement m'aider. Du coup est-ce que vous avez un avis sur la question ?

  • Est-ce que vous êtes déjà allé voir le Best-of ?
  • Est-ce que ce qui y est déjà est pertinent ?
  • Quels articles de 2019 y auraient leur place ?

Voilà voilà.

Reconquérir le web

Si vous me lisez, j'imagine que vous êtes déjà pas mal sensibilisé aux histoires de vie privée et d'indépendances numérique et des soucis que posent les GAFAM mais je vais quand même en remettre une couche. Je ne vise pas tous les GAFAM mais principalement Google et Facebook qui sont à mon avis ceux qui font le plus de tort au web.

On lit régulièrement des diatribes à l'encontre des GAFAM. Constamment les grands média mainstreams annoncent le dernier scandale en date de l'un d'eux. Et pourtant rien ne change.

Il faut dire que les grands média ont justement une part de responsabilité : ce sont les premiers à truffer leurs sites de trackers Facebook (et autres), à pousser les gens à liker, à faire du gringue à Google pour être le mieux placé (en allant jusqu'à héberger une partie de leur contenu chez eux, via AMP)… Bref, ils en retirent un profit certain et n'ont donc pas grand intéret à pousser les gens hors de ces plateformes.

Une autre plaie du web qui est réapparu à la face de pas mal de monde ces derniers jours c'est à quel point il est gangrené par la publicité. Et c'est rien de le dire, la moindre page web pèse trois à quatre fois plus lourd si l'on désactive son anti-pub. Le nombre de requêtes explose pour revendre vos habitudes de surfs Non seulement vous êtes vendu en pâture aux marketeux mais en plus, les performances s'écroulent à cause de ce merdier.

Un troisième point qui m'irrite c'est plus un sentiment assez généralisé que l'on ressent en lisant des commentaires, des posts par-ci par-là comme quoi “ le web est mort ”. Vraiment ? Je n'en ai pas l'impression.

Dans les années 90 le web était bouillonnant, criblé de sites aux designs plus que douteux, abordant des sujets ultra variés. Des sites de passionnés un peu débrouillards mais pas non plus experts informatiques. Ça parlait de tout un tas de passions sans se prendre la tête avec des histoires de SEO, de retour sur investissement d'un site ouaib, de monétisation toussa toussa. Et bien cet esprit n'a pas disparu ! Il a juste été noyé dans la masse.

Tous ces ptits sites pas toujours notables mais avec leur charme certain existent encore mais sont devenus ultra minoritaires planqués au fin fond des index de Google and co. Il est devenu bien plus dur de dénicher ces perles mais pour beaucoup ils existent encore et surtout rien n'empêche d'en créer de nouveaux.

Bref, malgré ces trois points, je reste persuadé qu'il est assez aisé de les contrebalancer voir renverser. Si vous voulez apporter votre petit pierre à l'édifice dans la lutte contre la mainmise du web et ses dérives, créez un site ouaib !

Il n'a jamais été aussi facile d'avoir un site web !

  • C'est moins cher qu'avant.
  • Il existe bien plus de logiciels pour vous aider à en faire.
  • Il y a bien plus de docs qu'auparavant.
  • Héberger un site est également plus simple.

Google et Facebook préferent vous voir captifs de leurs services mais rien ne vous y retient. Il est vrai qu'à première vue, c'est super attirant de se baigner dans un écosystème tout gentiment mis à votre disposition sans même vous demander d'argent. On vous propose des services mirifiques, avec des performances incroyables et sans limitations. Mais tout ça c'est pour mieux vous engraisser, vous découper et vous revendre aux plus gourmands.

Tout le monde a quelque chose à raconter ! Ça peut vous sembler con, être inintéressant, déjà vu mille fois mais racontez-le quand même. Écrire sera un peu difficile au début puis vous trouverez vos marques et ça viendra plus naturellement et la qualité s'améliorera. Et si vraiment l'écriture c'est pas votre truc, postez des photos, vos dessins, vos idées, vos poêmes, votre journal (pas trop) intime sur votre site ! Mais ne succombez pas au syndrôme de l'imposteur et lancez-vous !

Au lieu de balancer les photos du dernier rejeton sur Facebook, faites-vous une petite galerie photo que vous enverrez à toute la famille. Ne fichez pas le gamin à peine sortie du blister.

Besoin d'un coup de pouce technique ?

Bon, vous n'y connaissez rien du tout du tout, vous n'avez pas de logiciel dédié mais vous voulez vous lancer ? Allez je vais vous aider !

On va faire un site web minimal mais qui marchera très bien et pourra être étendu autant que bon vous semble. Vous n'aurez besoin d'aucun logiciel particulier, vous avez déjà tout ce qu'il faut sur votre ordinateur.

On va créer un dossier que l'on va appeler www (bon en vrai on peut l'appeler autrement mais ça a du cachet). Dedans on va créer un premier fichier texte que l'on nommera style.css qui va s'occuper de gérer la partie esthétique du site. Et enfin un deuxième fichier texte que l'on nommera index.html. Voilà jusque-là rien de bien compliqué.

Le HTML minimal

Le langage HTML est vraiment très simple et peut être appris par tout le monde en quelques minutes.

Il fonctionne à base de balises que l'on ouvre et ferme avec dedans du texte. Il existe beaucoup de balises différentes il suffit d'en connaître moins d'une dizaine pour parvenir à un résultat pas dégueu.

Voyons un exemple de page web fonctionnelle qui peut largement suffire pour tenir un site web simple. Donc ouvrez le fichier index.html avec le bloc-note (pas avec Word, Writer ou autre, ça ne marcherait pas).

Voilà ce que vous allez mettre dans votre fichier *index.html*
<!DOCTYPE html>
<html>
	<head>
		<title>le titre de votre page</title>
		<link rel="stylesheet" href="style.css">
	</head>

	<body>
		<h1>votre page</h1>
		<p>coucou c'est votre page.</p>
		<p>Ceci est une ligne super longue de texte qui devrait déborder de tous les côtés mais c'est moche du coup on
fait en sorte qu'elle soit moins longue pour que ce soit plus simple à lire.
		Idéalement, faut que ça fasse dans les 80 caractères maximume de large.</p>
		<p>Vous pouvez faire des <a href="/seconde_page.html">liens</a> et même mettre des <img src="photos.jpg" alt="la photo mon chat"></p>
	</body>
</html>

Le CSS minimal

Le langage CSS, lui, sert donc à styliser votre page web. Il permet de définir l'espacement entre les éléments, la couleur, la taille, le soulignement… bref tout ce qui change l'aspect esthétique du document. Le HTML c'est le fond, le CSS la forme.

La syntaxe est vraiment très simple : d'abord vous indiquez le sélecteur (le type de balise sur lequel vous voulez agir) puis vous indiquez quelles propriétés lui affecter. Il ne reste donc qu'à apprendre quelles sont les propriétés existantes. En pratique avec une dizaine de propriétés on peut déjà parvenir à des résultats vraiment travaillés.

Tout comme pour votre page web, ouvrez le fichier style.css dans le bloc-note (ou équivalent, mais pas un traitement de texte).

Remplissons donc notre *style.css*
body{
  margin:auto;
  padding:1em;
  background-color:#222;
  color:#ddd;
  max-width:35em;
}
a{
  color:cyan;
}
Rien que ça suffit à avoir un résultat, certe minimaliste, mais au moins utilisable sans se casser la tête. Fun fact : si ça vous plaît vous êtes un minimaliste ;-)

Résultat ?

Il vous faut ouvrir votre fichier index.html dans votre navigateur, soit en glissant le fichier dans la barre d'adresse, soit en faisant fichier/ouvrir

Bon c'est chouette tout ça, vous avez maintenant le début de votre site mais si vous voulez le partager avec le monde entier, il faut maintenant l'héberger. J'ai déjà dédié un ptit article à ce sujet qui vous donnera des pistes. Il arrive parfois que les revendeurs de noms de domaine fournissent un peu d'hébergement gratuitement (une mise en bouche) qui peut être un premier pas.

Qutebrowser : config.py et Jblock

Hahaha vous avez vu ? Firefox a cassé son système d'add-ons à cause d'un certificat expiré. Prenons une petite minute pour se moquer mais pas plus parceque bon c'est un peu le dernier rempart dans la guerre des moteurs de rendu web. On est à deux doigts de la monoculture ce qui est loin d'être une bonne nouvelle.

Autant j'aimerai qu'ils regagnent quelques parts de marché autant je n'arrive plus à utiliser Firefox depuis qu'ils ont changé l'API de leurs add-ons cassant Vimperator. Mais bon, je ne peux plus me passer de l’User Experience qu'apporte Qutebrowser. Cela dit, ce qui me manque le plus est tout de même l'add-on uMatrix.

Qutebrowser propose bien un système de blocage de pub nativement, mais il s'avère être assez rudimentaire. Il bloque à peu près toutes les pubs. Toute ? Non ! Les satanées pub Youtube persistent !

Aussi bien les ptites pubs moches en bas de la vidéo s'affichent parfois, parfois non. Mais surtout sur certaines vidéos il y a parfois l'infâme pub vidéo et ça je supporte plus. Je ne me tape pas de pubs à la tv (parceque je la regarde pas), à la radio (parceque j'écoute Fip), sur le web, ou autre, c'est pas pour m'en taper sur youtube.

Bref, j'ai cherché et j'ai trouvé JBlock qui s'échine à faire un bloqueur de pub plus poussé que le système natif. Il sait utiliser les listes bien connues qu'utilisent uBlock Origins, AdBlock et compagnie. Du coup on atteint à peu près le même niveau d'efficacité. Et effectivement, je n'ai plus de pub sur Youtube \o/

Config.py

Historiquement Qutebrowser utilisait qutebrowser.conf puis autoconfig.yml pour chopper sa config (avec également keys.conf). Il est cependant possible d'utiliser un fichier de conf en Python pour faire à peu près la même chose avec quelques possibilités supplémentaires. Je me suis donc amusé en ce joli dimanche pour convertir ma config dans ce format.

Dès que vous aurez créé le fichier, vos anciens fichiers de conf ne seront plus utilisés.

Voilà donc ce que j'ai mis dans *~/config/qutebrowser/config.py*
from qutebrowser.config.configfiles import ConfigAPI
from qutebrowser.config.config import ConfigContainer

import sys, os

config = config
c = c

# Bindings
config.bind('o', 'set-cmd-text -s :open', mode='normal')
config.bind('O', 'set-cmd-text -s :open {url:pretty}', mode='normal')
config.bind('w', 'set-cmd-text -s :open -t', mode='normal')
config.bind('W', 'set-cmd-text -s :open -t {url:pretty}', mode='normal')
config.bind('Fy', 'hint links yank-primary', mode='normal')
config.bind('Fy', 'hint links yank-primary', mode='normal')
config.bind('yy', 'yank -s', mode='normal')
config.bind('m', 'spawn --detach mpv {url}', mode='normal')
config.bind('Fm', 'hint links spawn --detach mpv {hint-url}', mode='normal')
config.unbind('F')

#Config perso
c.editor.command = ["kakoune -e vim {}"]
c.zoom.default = 150
c.messages.timeout = 10000
c.downloads.remove_finished = 30000
c.content.headers.do_not_track = True
c.completion.height = "33%"
c.tabs.show = "multiple"
c.tabs.tabs_are_windows = True
c.content.javascript.enabled = False
c.hints.mode = "number"
c.url.searchengines = {'DEFAULT':'https://duckduckgo.com/?q={}','y':'https://youtube.com/results?search_query={}','w':'https://fr.wikipedia.org/w/index.php?search={}'}

#Fonts
c.fonts.statusbar = "17pt monospace"
c.fonts.downloads = "17pt monospace"
c.fonts.hints = "18pt monospace"
c.fonts.keyhint = "17pt monospace"
c.fonts.messages.error = "17pt monospace"
c.fonts.messages.info = "17pt monospace"
c.fonts.messages.warning = "17pt monospace"
c.fonts.completion.entry = "17pt monospace"
c.fonts.completion.category = "17pt monospace"
c.fonts.prompts = "17pt monospace"


try:
	from qutebrowser.api import message
	sys.path.append(os.path.join(sys.path[0], 'jblock'))
	config.source("jblock/jblock/integrations/qutebrowser.py")
except ImportError:
	pass

Rien de bien exotique si ce n'est le try à la fin.

JBlock

JBlock est codé par Jay Kamat. Cet add-on en Python doit être installé via un ptit coup de git clone https://gitlab.com/jgkamat/jblock</samp> directement depuis le dossier ~/.config/qutebrowser/ .

Une fois cloné, il vous faut ajouter le bout de config.py de la fin. Ensuite il vous faut couper le blocage natif via un :set content.host_blocking.enabled false.

Ensuite il faut charger les listes que vous voulez utiliser. Pour ça un coup de :set content.host_blocking.lists ‘[“https://easylist.to/easylist/easylist.txt”, “https://easylist.to/easylist/easyprivacy.txt”]‘ .

Bon bha, plus qu'à faire prendre en compte tout ça avec un petit config-source et on y est presque.

Un ptit coup de :jblock-update devrait vous créer le fichier ~/.local/share/qutebrowser/jblock-rules . On lance enfin :jblock-reload et c'est en route.

Yapuka tester!

Bon vous remarquerez que c'est plus primitif que les classiques. Pas d'interface, pas de stats, pas d'auto-update… Primitif mais fonctionnel.

Héberger un site statique

Dans l'épisode précédent, on a créé un blog mais maintenant il reste des étapes avant d'avoir vos premiers visiteurs.

Le nom de domaine

Élément capital de votre blog !

Se prendre un nom de domaine

Avoir un nom de domaine à soi est à mon sens essentiel pour maîtriser un minimum son identité numérique. Ça ne coûte pas bien cher. On peut s'en tirer dans les environs de 10€ par an. Bref s'en priver serait dommage surtout que c'est techniquement très simple désormais.

La plupart des registrars (loueurs de nom de domaine) vous proposeront d'héberger eux même le serveur DNS sans avoir à dépenser quoi que ce soit. Vous perdez un peu en autonomie mais au moins vous pouvez pas faire de connerie et aurez quelque chose de fonctionnel et sans maintenance en 5minutes.

Il existe de très nombreux registrars. En France, puis au au-delà, vous trouverez (sans ordre particulier) OVH, Gandi, Online, Namecheap … Bref il y a de quoi faire.

Mais méfiez-vous, le choix du registrar peut s'avérer fatal.

Squatter un nom de domaine

À défaut d'investir dans votre propre nom de domaine, vous pouvez squatter un sous-domaine.

Il existe pas mal de gentils fournisseurs de sous-domaine gratuits qui seront plus ou moins flexibles. Vous trouverez par exemple netlib.re, eu.org.

Mais également de nombreux hébergeurs pourront vous héberger et fournir un sous-domaine comme par exemple github.io.

Bref il y a pas mal de choix allant du gratuit bienveillant au gratuit moins bien veillant et aussi du payant.

Héberger le site

Héberger un site statique est l'hébergement le plus simple qui soit.

Pas besoin de mettre en place d'intepréteur php encore moins de base de données. Un simple serveur web sans configuration particulière fera l'affaire.

Pas besoin d'une machine surpuissante pour pouvoir tenir la charge. Pas de mises à jour intempestives, votre site n'est qu'une pile de fichiers textes sans risque d'injection/exploitation distante/CSRF… bref c'est peinard et ultra performant.

Auto-héberger

Ça c'est le mieux pour votre indépendance. Vous foutez votre site à la maison, sur un serveur, un vieux laptop abandonné, un raspberry, un nas. Vous installez un serveur web, vous placez vos fichiers dans le bon dossier, vous faites pointer le nom de domaine vers votre IP, un peu de NAT sur votre routeur (redirection du port 80 et 443 vers votre serveur) et c'est parti.

Si votre blog ne contient que du texte vous pourrez l'héberger même sur une connexion ADSL moisie sans soucis. Par contre dès que vous mettrez des images/sons/vidéos ça peut devenir génant surtout si vous commencez à avoir pas mal de visiteurs. Mais ne nous voilons pas la face, pour un blog perso, ça n'arrive que rarement, vos visiteurs seront prêts à patienter quelques secondes s'ils ont fait l'effort de trouver votre blog.

Dans le pire des cas il est aisé de migrer vers un hébergement plus musclé par la suite. C'est donc une solution sympathique au moins pour débuter (ça fait près de 12 ans que je débute et que j'ai pas besoin de plus).

Héberger son site sur une plateforme prête à l'emploi

Vous allez dépendre du bon vouloir de votre hébergeur mais au moins vous aurez très probablement de meilleures performances réseaux que sur une connexion ADSL. Qui plus est, vous n'aurez plus de configuration à faire sur le serveur web et aurez quelqu'un vers qui vous tourner en cas de panne.

Encore une fois on trouve des hébergeurs gentils bien veillant comme les chatons ou bien des hébergeurs commerciaux plus ou moins cher. Héberger un site statique ne devrait pas vous coûter plus de 5€/mois.

Chaque hébergeur a un fonctionnement un peu différent pour l'envoi des fichiers, mais ils proposeront pour la plupart une doc simple d'accès pour vous guider. Ça pourra être de l'envoi en ftp ou bien une interface web.

Louer un serveur

Cette solution peut paraître overkill mais ça peut être une bonne occasion de s'y mettre :-)

Encore une fois, plein de choix possibles. Du petit mutualisé, à la machine virtuelle à 2€/mois jusqu'au serveur dédié à plusieurs centaines d'euro mensuelles…

Si le but est juste d'héberger votre blog, encore une fois, le plus petit des VPS (machine virtuelle) devrait faire l'affaire.

Installation d'un serveur web (Caddy, Nginx, Apache …), posage des fichiers au bon endroit configuration du serveur web (indiquer le nom du site et l'emplacement des fichiers au minimum) et voilà Si c'est votre première fois, en deux/trois heures c'est jouable. Il y a de très nombreux tuto sur le web pour faire ça. Pour un utilisateur plus technique ça ne vous prendra qu'une petite demi-heure.

La maintenance est très légère. Une fois configuré une première fois vous n'aurez probablement rien de plus à faire.

Le point le plus complexe peut s'avérer être le chiffrement pour HTTPS mais si vous vous orientez vers le serveur Caddy vous n'aurez rien à faire.

Verdict

On peut héberger un site statique en quelques minutes et gratuitement en passant par de multiples prestataires ou bien on peut investir un peu pour rester indépendant et/ou avoir un hébergement plus performant. Ça reste globalement simple et à la portée de n'importe quelle personne prête à investir un peu de temps dedans.

Si jamais vous vous lancez dans l'aventure n'hésitez pas à me communiquer l'adresse de votre joli blog (même s'il est pas si joli, c'est pas grave). Je me ferai une joie d'être votre premier visiteur :-)


Un an qu'il traîne dans les brouillons cet article… Allez hop !

Sandstorm : plateforme web-cloud libre auto-hébergeable

Sandstorm est un logiciel super. Et en plus d'être super il est très sécurisé. En plus de cela c'est facile à installer. Malheureusement c'est pas connu et du coup ça meurt à petit feu du manque de communauté.

Sandstorm est une plateforme de cloud pour héberger tout un tas de services différents un peu à la manière de Yunohost, Cozy, Cloudron et d'autres. Mais son fonctionnement est très différent. Tout son dev a été orienté par une approche assez radicale de la sécurité que l'on ne retrouve pas vraiment ailleurs.

Une architecture alien

Le cahier des charges lors de la création de Sandstorm se base sur l'isolation mais poussé à son paroxysme. Et du coup on isole pas les services entre eux mais de carrément isoler les grains. Les grains sont les objets : par exemple un pad, un partage de fichier, un kanban…

Je m'explique : Si par exemple vous avez besoin d'un pad (c'est ce que j'appelle un objet) pour noter des trucs, Sandstorm va vous démarrer un etherpad. Bon jusque là, ça va. Si par la suite vous avez besoin d'un autre pad (un autre objet), Sandstorm va vous démarrer un autre etherpad.

Et c'est là l'un des intérets majeur de la chose. Au lieu d'avoir tous vos pads sur le même service, chaque pad sera une instance indépendante des autres. Alors certe, quand vous en ouvrirez un, ça sera un peu plus long (on parle de dix secondes tout au plus).

Capture d'écran d'un etherpad dans l'interface de Sandstorm

Voilà sur quoi on tombe lorsqu'on l'utilise

Si jamais votre pad se fait trouer, les autres pads ne le seront pas. Le vice est poussé jusque dans les détails en faisant en sorte que chacun de vos grains ait une adresse unique impossible à deviner (mais moche). Du coup, si vous partagez un fichier dans Jirafeau, les gens ne pourront pas tenter de deviner l'adresse d'autres fichiers…

Cela a donc énormément d'avantages en termes de sécurité mais du coup également quelques inconvénients : ça bouffe un peu plus de place sur le disque, ça bouffe un peu plus de ram (et encore), les applications doivent être adaptées (c'est le gros point noir). Le système est tout de même suffisamment malin pour éteindre les services inutilisés au bout d'un certain temps.

Toujours concernant la sécurité, ils ont fait le choix de ne pas utiliser de mot de passe pour l'authentification des utilisateurs. C'est un détail tout con mais c'est excellent je trouve. Tout fonctionne par token : vous entrez votre adresse mail et vous recevrez un lien et/ou une suite de caractères à rentrer et voilà. Rien à retenir, pas de compromission du mot de passe. Bon par contre l'accès au mail devient crucial.

Bon et du coup on peut y faire quoi dans ce Sandstorm ?

Il y a un bon ptit nombre d'applis. C'est moins fourni que les autres car la communauté est plus restreinte, mais on trouve quand même de quoi s'occuper.

Dans mes favoris on retrouve Etherpad, Wekan, Gogs, Tiny Tiny RSS et Telescope mais il y en a pas mal d'autres.

Vous pouvez aller voir leur App Market (c'est gratuit, hein).

Une fois une application installée, vous pouvez créez de multiples grains de ces applis. Vous pouvez stocker un ensemble d'grains dans une collection pour pouvoir tous les retrouver facilement ou bien les partager d'un coup d'un seul.

Chacun de vos grain peut-être archivé par les utilisateurs (ça génère un fichier zip que l'on peut restaurer sur une autre instance par exemple) à tout moment. Vos utilisateurs peuvent partager les grains en lecture seule ou bien avec des droits supplémentaires, c'est tout bien geré et à tout moment vous pour voir qui peut accéder à ce grain et vous pouvez en un clic révoquer un accès.

Et où qu'on trouve ça ?

L'instance principale est Oasis et est devenue payante (elle était gratuite jusqu'à il y a six mois mais il faut désormais parvenir à payer l'infrastructure).

Mais surtout vous pouvez héberger une instance assez simplement. Ils fournissent un script d'installation qui marche sur à peu près tous les Linux (même Alpine). Par contre regardez ce que fait le script avant de l'installer, hein ! (on fait pas le sagouin qui curl |bash sinon je vais me fâcher !)

Et c'est solide ?

Hmm je l'utilise depuis quelques années maintenant pour les ptits trucs dont j'ai un besoin ponctuel. Quand j'ai pas envie de me faire chier à installer quelque chose, si c'est présent dans le market je l'installe, ça prend moins de trente seconde et j'ai pas à me faire chier à me demander si c'est sécure ou pas, quel mot de passe utiliser. Je n'ai jamais eu de soucis (sauf l'appli telescope qui en fait vire les trucs trop ancien toute seule… mais c'est propre à cette appli et non Sandstorm).

Le seul point inquiétant c'est que la startup qui montait le truc s'est pété la gueule : ils n'ont pas réussi à établir un business-model suffisant. Désormais certains ex-membres de l'équipe (dont le créateur de Protobuf) continuent de bosser dessus sur leur temps libre et du coup ça vie bien moins vite qu'auparavant sans pour autant être mort.

Bref, Sandstorm c'est une bonne plateforme de cloud qui peut très bien faire l'affaire pour une asso ou une ptite entreprise, une classe, un établissement scolaire (ça bouffe du LDAP et SAML).

L'installation est simple, la maintenance quasi nulle, et chacun peut backupper ses grains et cerise sur le gateau c'est tout sécure. Bon je ne vous cache pas que je ne me fais pas trop d'illusion quant à la santé du projet suite à l'arrêt de la startup mais on sait jamais. Un regain d'intéret et hop ça peut repartir… Ha et je ne l'ai pas précisé mais, tout ça c'est du libre, hein.

Tous les protocoles réseaux ne sont pas synchrones

Message de service

Tous les protocoles réseaux ne sont pas instantanés !

Lorsque vous envoyez un mail, vous n'avez aucune assurance que le destinataire le reçoive immédiatement.

Lorsque vous envoyez un toot sur le Fédiverse, vous n'avez aucune assurance que tout le Fédiverse le reçoive immédiatement.

Pourquoi ?

Je ne cite que deux exemples mais c'est vrai pour d'autres protocoles aussi. Beaucoup de protocoles n'imposent pas de contraintes quant au temps de traitement et d'acheminement.

Si le serveur d'envoi est un peu surchargé ou celui de réception ou les éventuels intermédiaires le sont, il y a de forte chance que les données soient mises dans une file d'attente pour être traitées ultérieurement.

Si l'un des serveurs (émetteur, intermédiaire ou destinataire) est HS, il y a des chances que ce soit également mis de côté pendant quelques jours et retenté régulièrement.

D'autres protocoles comme par exemple IRC, eux font tout leur possible pour transmettre immédiatement les données mais il reste toujours les aléas du réseau.

Les mails et le Fédiverse

Les mails peuvent être mis de côté pendant une semaine avant de vous revenir en erreur. C'est également un des moyens de filtrer le spam : renvoyer une erreur à la première connexion pour forcer le serveur d'émission à se reconnecter plus tard pour renvoyer le mail : on appelle cette technique le greylisting et c'est très efficace.

Pour les toots du Fédiverse ça peut expliquer le fait que certaines personnes répondent des heures/jours/semaines plus tard à certains de vos vieux toots : la fédération n'est pas automatique et parfois la communication inter-instances est un peu chaotique. Il est d'ailleurs courant de n'avoir qu'une vue partielle ou simplement désynchronisée d'un fil de discussion.

C'était un message à caractère informatif

C'était vraiment très intéressant.

La téléphonie c'est pas si compliqué !

En voilà un sujet étrange ! Ouai j'en ai jamais parlé auparavant, mais je m'aperçois que c'est finalement assez peu compris même par les informaticiens. Donc voilà quelques micro-bases de téléphonie pour ceux habitués aux dinateurs.

Vocabulaire

  • Téléphone : Le terminal utilisateur constitué d'un micro, un haut-parleur de quoi numéroter.
  • PABX : L'appareil sur lequel est raccordé tout un tas de téléphone.
  • Ligne : Ce qui “alimente” un téléphone pour établir une communication.
  • Numéro : L'identifiant d'un téléphone ou d'une ligne.

Bon là c'est assez basique, mais il faut bien voir que sur une installation téléphonique on peut décoreller le nombre de téléphone, du nombre de ligne et du nombre de numéro de téléphone. C'est-à-dire que l'on peut avoir par exemple 10 téléphones, avec seulement 4 lignes et uniquement 2 numéros de téléphones. C'est ensuite le PABX qui va s'amuser à gérer tout cela.

Bref on peut assimiler le nombre de ligne au débit d'une connexion Internet, les téléphones aux ordinateurs, le PABX à un mix de box et de serveur et enfin les Numéros aux IP publiques.

PABX

Le PABX c'est un appareil qui a le rôle de modem, routeur, switch, serveur. Il peut en effet s'accomoder de types de lignes différentes, router les appels aux bons endroits en fonctions de règles. On y branche plus ou moins de téléphones (de technologies différentes) dessus et en plus il permet d'ajouter des services supplémentaires (du répondeur enregistreur, de la répartition d'appels, du serveur vocal interactif…).

Bref c'est un peu comme les box des FAI désormais. C'est d'autant plus vrai que désormais les PABX sont de plus en plus proches du monde IP et donc sont parfois uniquement du logiciel sur une box.

D'ailleurs soit dit en passant, on voit souvent l'appelation IPBX qui ne veut pas dire grand-chose selon moi. Les PABX existent depuis des décennies et se sont toujours adaptés aux évolutions technologiques des lignes et des téléphones. Ils sont passés du bon vieux RTC à du trunk SIP en passant par du Numéris avec des téléphones RTC, des DECT et des softphones. Donc pourquoi changer le nom à part pour faire plaisir aux informaticiens ?

Les lignes

  • Commençons tout d'abord par la ligne analogique ou RTC. La ligne comme à la maison : deux fils de cuivre pour faire une boucle. La qualité sonore est basique, mais elle a l'avantage d'être alimentée par l'opérateur ce qui pour certains téléphones peut suffire pour fonctionner encore lors de coupure de courant. Elle va “bientôt” disparaître en n'étant tout d'abord plus proposé à la vente.

  • Il y a ensuite eu le Numéris ou ISDN existe en deux variantes en France : le T0 et le T2 (et rarement aussi en demi-T2). Là, c'est une sacré évolution : c'est du numérique de bout-en-bout avec donc une meilleure qualité sonore. Le T0 permet d'avoir deux communications simultanées alors que le T2 monte à 30. Il nécessite cependant un petit boitier d'interface : la TNR. Ce boitier est la propriété de l'opérateur et peut être alimenté électriquement chez le client en cas de ligne un peu capricieuse. En plus de sa bien meilleure qualité sonore, la vitesse d'établissement d'un appel est vraiment beaucoup plus rapide. Ces lignes ne sont vendues quasi-exclusivement qu'aux entreprises et sont sur le déclin du fait de leur prix élevé mais à une époque elles servaient pour avoir un accès à Internet à 128Ko/s voir près de 2Méga pour un T2.

  • La mode est en ce moment aux trunks SIP qui sont donc utilisé par-dessus le réseau Internet. Ce protocole est donc bien plus proche du monde informatique que les précédents (il y a tout de même eu le h323 qui a eu son moment de gloire avant). H323 émanait de l’ITU un organisme du monde des téléphonistes alors que SIP lui émane de l’IETF qui règne sur le monde de l'Internet. C'est le moment où la téléphonie a commencé a pas mal perdre pied face à l'informatique. Il s'agit d'une signalisation proche du HTTP. C'est ce qui se vend le plus actuellement. Il arrive même parfois que l'on interface des PABX à des lignes SIP via des convertisseurs qui présentent des T0/T2 d'un côté et du SIP de l'autre.

Les numéros

Déjà le plan d'adressage mondial est très hétérogène : chaque pays utilise un nombre de chiffre différent, le téléphone en lui-même ne peut donc pas savoir combien de numéro il doit envoyer mais c'est aussi galère même en restant en France.

  • On a des numéros à deux chiffres (les urgences)
  • à trois chiffres (les numéros de services)
  • les numéros à quatre chiffres (souvent surtaxés)
  • Enfin tout le reste est à dix chiffres.

C'est à peu près le même topo dans pleins d'autres pays. Donc si on rajoute les préfixes internationaux, le système ne saura jamais combien de chiffres il va y avoir et ça peut être assez problèmatique.

Et comme pour l'IPv4, on s'est vite rendu compte qu'un numéro unique par terminal c'était pas forcément utile donc on a développé un système similaire aux IP publiques et IP privées. Les opérateurs attribuent donc 1 NDI à chaque client et après, optionellemment vendent des SDA aux clients ayant besoin de plus de numéro. Le PABX agit donc comme un routeur qui fait du NAT avec d'un côté le réseau opérateur qui vous attribue X numéros (1 NDI et X-1 SDA) et de l'autre les terminaux sur lesquelles il va falloir attribuer les SDA.

D'ailleurs fun fact : les lignes Numéris peuvent être groupées (par exemple avoir 3 T0) pour pouvoir établir plus de communications simultanées. Et bien dans ce cas, le premier T0 sera le “porteur du NDI” et les deux autres T0 auront un numéro alphanumérique donc avec des “ABCD” qui ne sont donc pas numérotables. Ce numéro sert en interne pour l'opérateur.

Le PABX gèrera donc son plan de numérotation (plan d'adressage) local où il attribuera un numéro unique à 2/3/4/5/6/8 chiffres à chacun des téléphones qui lui sont raccordés dessus et fera la concordance avec une SDA et ce numéro interne. Il arrive couramment donc qu'un téléphone n'ait pas de SDA (numéro publique) et donc il ne pourra être joint que par un transfert depuis un autre téléphone tout comme un serveur n'ayant pas d'IP publique pourra être joint via du NAT de la part du routeur.

Les terminaux

On retrouve classiquement les téléphones mais ce n'est pas aussi simple que cela. On a les simples téléphones analogiques qui ont deux modes principaux de numérotation : la signalisation par impulsions ou bien les DTMF qui ont succedées. Ces téléphones fonctionnent sur deux fils de cuivre tout simplement avec une tension de fonctionnement variant entre 12 Volts et 60 Volts selon les modèles.

Il y a ensuite les téléphones numériques et là chaque constructeur de PABX fait à sa sauce : vous ne pourrez jamais faire marcher un PABX de marque X avec un téléphone numérique de marque Y. Ces téléphones embarquent des fonctionnalités supplémentaires (les fameuses touches de supervision notamment). Ils fonctionnent généralement sur une paire de cuivre mais parfois sur deux paires… rien de standardisé (ça peut être dans un autre ordre que l'accoutumée).

Il y aussi les téléphones DECT qui est la norme de téléphonie sans-fil la plus répandue, c'est un simili-wifi pour la téléphonie. C'est étrangement compatible entre constructeurs. On pose une antenne et on y appaire des téléphones avec plus ou moins de niveau de services. Il y a les DECT “nature” génériques et les DECT des constructeurs qui ajoutent encore plus de fonctions mais au prix d'une compatibilité incertaine et d'un prix lui certain.

On retrouve ensuite les fax, mais aussi des TPE et des machines à affranchir mais dans un futur proche ça ne se vera plus sur des lignes RTC mais directement sur de l'IP…

Il y a aussi des ascenseurs qui ne sont que de gros téléphones (un peu capricieux) et les alarmes qui se modernisent eux aussi pour passer en SIP ou bien en GSM.

Les téléphones IP et autres softphones sont un peu différents car rattachés à l'informatique mais rien de fondamentalement différent non plus.

Vous avez les bases

Maintenant vous devriez mieux vous y retrouver avec ces bases.

Les mondes de la téléphonie et de l'informatique se rapprochent voir désormais se chevauchent et il est toujours marrant de voir ces philosophies bien distinctes se confronter. Les gros PABX sont en fait des amas de multiples ordinateurs imbriqués les uns dans les autres et fonctionnent en harmonie avec des uptimes colossaux (on croise régulièrement des machines avec quinze ans d'uptime). La téléphonie est un domaine ultra propriétaire où toute fonctionnalité se déverrouille par l'achat de matériel mais en plus de licence. L'arrivée rapide de logiciels libres dans ce domaine est une bouffée d'air frais mais la téléphonie proprio reste encore ultra majoritaire.

Les variables d'environnement chez Gentoo

Pourquoi j'ai eu besoin d'y toucher ?

TL;DR passez au chapitre suivant

Je suis passé sur Sway depuis six mois environ et franchement tout se passe bien. La migration depuis i3 a été vraiment douce et tout fonctionnait vraiment bien. Mais si j'utilise du passé c'est parcequ'il y a eu un hic.

Qutebrowser (mon navigateur) tourne à base de Qt5 et un bug a fait surface récemment. Lorsqu'au moins une fenêtre de l'application n'est pas visible, alors ça rame énormément au point de ne plus être utilisable.

Ce bug ne touche que les applications Qt tournant sur Wayland et ce que ce soit nativement ou via XWayland. Sauf que bon avant d'arriver à définir aussi bien ce bug ça a été compliqué : il m'a fallu deux semaines pour y arriver.

Premièrement, il a fallu comprendre pourquoi des fois je le ressentais pas du tout et pourquoi des fois ça se trainait à mort. Naturellement pour tester j'ai vidé le cache, utilisé un profil vierge et là… ça fonctionne nickel. Pareil pour Falkon que je n'utilise pas du tout, là ça fonctionne nickel. Du coup le premier réflexe c'est de me dire, que c'est mon profil avec tous mes réglages qui font chier.

Allez tant pis, on sauvegarde puis dégage le profil. Ça fonctionne nickel, mais du coup naturellement qu'est-ce qu'on fait dans ces cas-là ? Bha on se retape la config habituelle : modification de la taille des fonts, dégageage de l'UI, suppression des onglets, quelques raccourcis claviers customisés. Bon bha là ça déconne. Arg ! (Ça va parler Gentoo et variables d'environnement bientôt.)

Bon je refous l'UI, je vire tout ce qui est modif des zooms et taille des fonts. Pareil. Je reteste Falkon, non ça marche du coup là j'ouvre une nouvelle fenêtre Falkon dans un autre workspace pour avoir le bugtracker Qt d'un côté et là étrangement ça commence à merder pour lui aussi.

Merde c'est un souci de Qt !

Bon bha emerge qtwebengine, c'est parti pour trois quarts d'heure. Pendant ce temps, je fais des tests et là je commence à penser que c'est le fait d'avoir deux fenêtres différentes. Je magouille et en fait bha non. J'ai beau ouvrir deux pages web côte-à-côte bha ça rame pas.

Je me dis que c'est ptet une saloperie du côté de XWayland donc je tente en le faisant tourner nativement mais non rien à faire, ça change pas le comportement. La compilation se termine, ça n'a rien changé du tout.

Je vais faire un tour sur IRC pour discuter de mes déboires avec le chan de #qutebrowser où je fais quelques magouilles supplémentaires sans grand succès, je vais voir du côté de chez #qt-labs où c'est … calme. Pas grand-chose à en tirer. J'en discute brièvement avec l'un des devs de Sway et là ! Ho Miracle ! Ça fait tilt, ça serait probablement un bug dans QtWayland qui serait déjà répertorié sur une histoire de “callback de surface”…

Après cinq minutes de fouilles effectivement c'est tout à fait ça et c'est un bug connu avec un patch en test. (Bon j'ai rarement fait une intro aussi hors-sujet et aussi longue mais vous allez voir ça va venir.) Bref le bug est connu et presque fixé ça devrait pas tarder à arriver. Mais j'ai vraiment envie de le tester.

Actuellement j'étais revenu à i3 mais j'avoue désormais préferrer Sway. Du coup, je me suis compilé le ptit qtwayland avec le patch qui va bien. Je me le suis make install et yapukatester.

Je lance Qutebrowser et ça déconne tout pareil :-( All hope destroyed. Bon en fait si : il s'est lancé via XWayland ce couillon, je rajoute quelques variables à la main pour le lancer nativement et là pouf ! C'est tout fluide comme au bon vieux temps.

Comment rajouter des variables d'environnement proprement dans Gentoo ?

Il y a un joli dossier /etc/env.d/ contenant plein de fichiers textes pour les variables d'environnement spécifiques à différents logiciels.

Du coup dans mon cas j'ai créé un ptit 42qutebrowser et dedans j'y ai mis :

QT_QPA_PLATFORM="wayland"
QT_WEBENGINE_DISABLE_WAYLAND_WORKAROUND="1"
QT_WAYLAND_DISABLE_WINDOWDECORATION="1"

Remarquez les guillemets ! Sans ça, ça fonctionne pas… Me suis fait avoir.

Et là un reboot Ouai j'avais la flemme. D'habitude je ne fais jamais ça mais là, vraiment, la fatigue, toussa toussa. Mais ça m'a laissé le temps d'aller voir un peu les semis sur le balcon.

Voilà.

Bon bha heureusement que j'ai brodé sinon ça allait se voir que c'était un article que pour me rappeler où j'avais planqué ces variables à la con…

Le Zéro Inbox pour vous soulager

J'ai eu quelques boîtes mails durant ma vie comme probablement tout le monde. Les plus importantes c'était celle de Hotmail avec ses 2Mo de stockage qui paraissaient pas immense mais au final largement suffisant pour l'époque. Avoir un webmail c'était génial : pouvoir accéder à ses mails de n'importe où sans rien installer !

Puis Google a débarqué avec son Gmail et sa boîte de 1Go mais en perpétuel accroissement ! Et puis cette interface toute moderne : la frontière entre webmail et client lourd commençait à se brouiller tellement l'interface était bien faite.

Mais j'ai vite commencé à avoir peur de Google et ses potes et j'ai entamé une dégooglisation à partir de 2007. Et du coup j'ai entrepris d'héberger mon propre serveur de mail.

Un poil galère au début mais pas tant que ça non plus. De nouvelles responsabilités (ouai si je fais pas de sauvegarde des mails bha… hé… personne d'autre ne le fera à ma place et je risque de tout perdre. Et puis faut pas configurer le serveur comme un sagouin pour pas se prendre trop de spams et surtout ne pas devenir émetteur de spam et se faire blacklister.

Mais en contrepartie une liberté accrue : plus de restriction sur la capacité de stockage des mails, possibilité d'avoir des pièces jointes de la taille que je veux (enfin si les serveurs en face sont d'accord eux aussi), autant de boîtes que je veux.

L'ivresse de la maîtrise de ses données toussa toussa, c'était la classe.

Après la dégooglisation la simplification

Un motif assez récurrent que j'ai constaté chez les personnes éprises d'auto-hébergement est la folie de vouloir monter tout un tas de trucs. Après tout c'est logique, l'offre de logiciels libres pour faire tout un tas de trucs est pléthorique, c'est assez fun à faire (pour certains), les ressources matérielles sont démentielles (même sans dépenser des milles et des cents) et puis c'est grisant d'avoir ses propres services rien qu'à soit.

Du coup on s'installe un serveur mail, puis un DNS, puis un ptit serveur web, on continue avec un lecteur de flux RSS, un serveur de synchronisation de fichiers, de contacts, de notes, un wiki, une ptite plateforme de vidéo, un truc pour synchro son portable, un autre truc pour enregistrer ses traces GPS, une galerie photo, un serveur de streaming de musique…

On se bloat.

Tout ce qu'on installe est un potentiel d'emmerdes. Je ne dis pas que ça va tomber en panne, mais il y aura forcément de la maintenance : il faudra mettre à jour sinon c'est de l'inconscience. C'est pas toujours compliqué ni très consommateur en temps mais il faudra quand même le faire.

Avec le temps, on gagne en expérience et c'est de plus en plus simple à faire et bien moins chronophage. Mais on se rend compte que “Ha bha en fait tel service m'en sert peu voire pas du tout." Ou bien que tel logiciel est tombé en désuétude et qu'il faudrait migrer vers un autre mais est-ce que ça vaut vraiment le coup ?

Bref la seconde phase de cette belle aventure c'est de réduire ses services à ceux qu'on utilise vraiment. Les moins accrocs décrocheront probablement pour aller voir des fournisseurs de services respectueux (avec le collectif des CHATONS ça n'a jamais été aussi simple de le faire avec une certaine confiance).

Personnelement j'ai viré pas mal de services pour ne garder que ce qui m'est vraiment utile mais je n'ai rien extériorisé. Donc me voilà désormais avec moins de trucs qui dorment, moins de maintenance à faire et plus de sérénité (moins peur de mettre à jour le système en croisant les doigts que des services ne pètent pas).

Et en dix ans, bha j'en ai accumulé du mail.

On recule et on purge

Jamais je me suis retrouvé à fouiller les mails d'il y a huit ans… Les rares fois où je cherchais un mail c'était généralement pour retrouver des identifiants à une certaine époque mais maintenant que j'utilise un gestionnaire de mots de passe bha ça ne m'arrive plus.

Les mails de newsletters que je n'ai pas lu il y a 7 ans… bha je les lirai pas aujourd'hui ni demain…

Les mails annonçant une panne d'un service réseau de Mars 2013 ça me fait une belle jambe.

J'ai bien quelques mails de la famille mais … bha … je suis pas très versé famille et c'est généralement de la futilité absolu ou bien des trucs qui étaient plus administratifs qu'autre chose, bref rien qui ne mérite d'être conservé.

J'ai pris la décision de purger.

Bon, j'y suis allé mollo quand même, j'avais quand même peur de supprimer le mail qu'il allait me manquer deux jours après (alors que bon, ça ne m'est jamais arrivé, mais la rationalité n'est pas de mise).

  • J'ai créé un dossier dans la boîte mail pour classer les trucs de familles.
  • J'en ai créé un autre pour les inscriptions/logins.
  • J'en ai ensuite créé un par année (sauf la courante).

J'ai entrepris de classer tous les milliers de mails dans ces dossiers. Là pas de miracle, j'ai tout fait à base de grep et de mv (avec une boîte au format maildir c'est super simple).

J'ai fait un backup.

Ensuite, j'ai viré les dossiers annuels, j'ai scruté celui des logins et j'ai complété le password-store puis je l'ai viré. Le dossier de famille j'ai relu un peu tout et j'ai viré tout ce qui n'était pas … comment dire … heu … “émouvant”, puis purgé.

Voilà il ne m'est resté que les mails de l'année.

J'ai reluqué un peu tout et en dehors de cinq/six mails encore d'actualité j'ai tout viré.

Mon inbox se résume alors à une dizaine de mails. À côté de ça, j'ai une dizaine de dossiers en sursis et voilà. Quelques mois plus tard, je virrais quasiment tous les dossiers et la purge ultime passera pour n'avoir plus que 6 mails.

Et voilà le chemin vers le Zéro Inbox.

Et comment ça se gère ?

Bha c'est simple, je me sers trèèèèès peu des mails. Je les consulte quand j'en attends un et parfois, de temps à autres. Dans le meilleur des cas c'est une fois dans la journée et des fois c'est au bout d'une semaine.

Ensuite tout ce que je reçois, je le lis immédiatement et là soit j'ai rien à en faire : je le jette; soit je fais ce qu'il faut faire tout de suite. Je réponds tout de suite, parfois même juste pour indiquer que j'ai reçu le mail et que j'ai pas de réponse dans l'immédiat mais que je répondrai plus longuement après réflexion ou récupération des infos nécessaires. Et si c'est un truc à conserver des tickets pour un évènement ou autre, je fous ça dans un dossier spécifique que je pense à vider de temps à autres avec tout ce qui est passé.

Alors je sais qu'il existe des variantes de la zéro inbox mais cette technique me convient plutôt bien.

Je reste très peu de temps dans mes mails et voilà.

D'ailleurs j'utilisais principalement un webmail (Rainloop) mais je suis passé à néomutt (que je sais à peine utiliser) et je m'en contente. Je me suis désinscrit de toutes les newsletters, j'ai blindé mon antispam et je n'envoie quasiment pas de mails de moi-même mais juste en réponse du coup je reçois plus grand-chose et ça me fait du bien à ma phobie administrative.


Voilà, je veux pas vous pousser à en faire autant, je sais que pour beaucoup de monde c'est pas vraiment faisable surtout pour le boulot mais ayant la chance de pouvoir le faire, je suis super content. J'ai fait pareil avec la boîte du boulot où j'ai même pas de dossier et qu'une quinzaine de mails en inbox.

Et d'ailleurs en passant, s'il y a une newsletter à suivre c'est le courrier du hacker qui vous permettra d'avoir un bestof hebdromadaire (elle est nulle mais j'atteins pas le quota de blagounettes sinon) de Journal du Hacker et ça me tient vraiment hacker (bon elle est nulle aussi).

Grosse attaque du weekend contre le DNS : et DNSSEC ?

Bon bha ça y est le weekend est passé et tout le monde a publié son ptit truc concernant la grosse attaque des Internets !

Je vais tenter d'expliquer un peu ce qui s'est passé mais disclaimer je suis pas un crack en DNS et si jamais je dis une bourde, n'hésitez surtout pas à me le signaler !

Mais en gros il s'est passé quoi ?

Bha pas grand-chose au niveau global. C'est pas une attaque contre l'Internet qui a eu lieu mais contre quelques cibles bien précises (des trucs étatiques du Moyen-Orient principalement).

Approximativement, des gens ont réussi à dévier du trafic (dont des mails et des mots de passes) réseau grâce à une attaque au niveau DNS mais pas seulement et c'est bien là où toute la subtilité se trouve. L'ICANN a publié un ptit communiqué de Presse assez … anodin mais qui a été repris un peu partout et amplifié/déformé. À tel point qu'on pourrait croire à un truc démesuré mais bon, laissons aux média faire leur travail de dramatisation outrancière.

Du coup, en fouillant un peu sur les Interouaib on trouve un article de Krebs On Security qui relate un peu plus l'histoire. Donc je vais me baser sur ce qui y est raconté.

Les méchants ont modifié les enregistrements DNS de certains domaines du Moyen-Orient. La plupart pointant vers des serveurs mails. Une fois fait, ils se crée des certifs x509 (le petit cadena vert sur les sites sécurisés) légitimes et n'ont plus qu'à attendre que les gens tentent de se connecter pour récupérer les identifiants et les mots de passe associés. Une fois ça en poche, il leur suffit de se connecter aux vrais serveurs mails et c'est tout.

Hahaha les boulets, ils avaient qu'à utiliser DNSSEC !

Ouaip c'est vrai.

Mais pour certains ils utilisaient DNSSEC et ça a quand même fonctionné ! DNSSEC c'est pas magique. C'est toute une chaîne de confiance. Petit exemple :

bender.lord.re

  • Pour que ce soit valide d'un point de vue DNSSEC, il faut que la racine soit signée donc . est signée par le root server (rapelez-vous, on ne l'écrit jamais, mais il y a un point implicite à l'extrémité droite des noms de domaines).
  • Ensuite .re doit être signé par le registry
  • Puis vient .lord qui est signé par le serveur DNS ayant autorité mais avec une nuance.
  • Et enfin bender. qui lui est signé par le serveur DNS ayant autorité (mais si j'avais délégué ça à un autre serveur DNS, ça aurait à cet autre serveur de signer).

Vous voulez savoir ce qu'est la nuance ? Bon, je vous le dis quand même : il y a un lien entre votre domaine et la zone du dessus (.re dans l'exemple) pour que la chaîne soit complète. C'est l'enregistrement DS qui permet de déléguer la signature de votre zone auprès du registrar, qui lui transmettra ça au registry.

Bref DNSSEC si c'est mis en place et validé aurait dû protéger.

Je remets un peu de suspens encore ? Non je pense que vous en avez eu assez.

Et bhé le registrar s'est fait trouer. Les attaquants ont pu s'infiltrer chez le registrar et modifier le DS et péter le DNSSEC du coup. Et comme le DNSSEC est une chaîne, si elle pète à un endroit, tout ce qui est en aval est compromis. Bref, là, ça a été pété chez le registrar donc les serveurs DNS ayant autorité sont … niqués, faut le dire.

Les attaquants ont donc utilisé leur propre DS et ont pu se refaire du DNSSEC ou carrément le supprimer sans trop d'emmerdes.

Moralité ?

On a beau faire tout comme il faut dans les règles de l'Art, bha si ça pète en amont tu es marron.

Bref, déployer DNSSEC est toujours aussi important et à ne pas sousestimer. Par contre, vous ne serez pas pour autant immunisé contre ce genre d'attaque !

Je rajoute une couche mais le choix du registrar est capital et malheureusement il est très difficile de savoir quel registrar a une bonne sécurité à priori.

TLS RePorTing sur votre serveur mail

Hey, je suis tombé sur une RFC assez récente l'autre soir. La 8460 de septembre 2018 qui permet de rajouter encore un ptit truc à votre stack mail.

TLS Reporting

Lorsque votre serveur de mail échange avec d'autres serveurs de mail, il y a de forte chance qu'il tente de sécuriser ses communications. Si c'est pas le cas, vous feriez mieux d'arrêter de lire cet article et de moderniser votre serveur de mail !

Bref, contrairement au web, les serveurs mails sont bien moins à la pointe de la crypto moderne. Restreindre votre serveur mail à du TLS1.2 va vous isoler de beaucoup de monde malheureusement. On est obligé de se taper de la vieille crypto pour pouvoir être compatible avec le reste du monde.

Mais bon, ça évolue quand même dans le bon sens petit à petit. Et d'ailleurs cette RFC tente de pousser un peu plus en ajoutant du reporting.

Vous avez probablement mis en place DMARC (c'est à mettre en place en priorité) qui consiste à rajouter un enregistrement DNS de type TXT où vous indiquez aux autres serveurs mails comment traiter les mails en votre provenance. Et bien là on rajoute un autre enregistement DNS de type TXT où vous indiquez une adresse mail pour recevoir des rapports d'erreurs concernant TLS.

Quand un serveur mail aura un souci de connexion TLS avec votre serveur mail, il vous enverra un mail (qui ignorra les erreurs TLS, sera signé via DKIM une fois par jour maximum) détaillant pourquoi ça a déconné.

  • Pourquoi est-ce que la négociation TLS a échouée ?
  • Est-ce que le certif est reconnu ?
  • Est-ce que le certif est expiré ?

Bref, vous saurez un peu mieux pourquoi votre conf TLS déconne.

Bon c'est vraiment très récent et donc quasiment pas déployé mais c'est ultra simple à mettre en place et ça bouffe rien.

Mise en place

Allez on se fout sur le serveur DNS et on ajoute un champ TXT de la forme _smtp._tls.votre.domaine. TXT “v=TLSRPTv1; rua=mailto:votre@mail.truc” . Si le rapport par mail vous saoule, vous pouvez opter par du web en POST avec _smtp._tls.votre.domaine. TXT “v=TLSRPTv1; rua=https://votre.page/web”

Bon perso, par mail ça me va bien.

Pour le faire c'est avec :

knsupdate

server 127.0.0.1
zone lord.re.
update add _smtp._tls.lord.re. TXT "v=TLSRPTv1; rua=mailto:gradabuk@lord.re"
send
quit

Et voilà, vous êtes à la pointe vous aussi !

Il me tarde de recevoir un de ces mails pour voir :-D

Protocole de renouvellement de mot de passe

C'est quand même con qu'en 2019, il n'y ait toujours pas de protocole pour pouvoir faire un changement de mot de passe. Je m'explique.

Il est indispensable d'utiliser des mots de passes différents pour chaque service.

Mais pour ça, ça veut dire qu'il faut un gestionnaire de mot de passe. Perso j'utilise Password-store depuis plus de six ans maintenant et c'est génial. Plus besoin de se souvenir de rien, on peut même s'en servire pour mémoriser d'autres trucs que des pass (des url, des numéros de trucs…) et tout est chiffré/versionné.

Le seul truc manquant aux gestionnaires de mot de passe est : Un moyen de changer les pass.

En ce bas monde il manque un protocole standardisé et déployé pour changer de pass facilement (et pourquoi pas ajouter d'autres trucs en plus genre suppression du compte et autres trucs). Le souci c'est que chaque site ouaib, chaque service a sa façon de faire avec des en plus des restrictions différentes pour les mots de passe.

On pourrait donc imaginer un nouveau protocole assez simple :

  • Le port 7709 en TCP. (je sais pas, ce chiffre m'inspire).
  • Un enregistrement DNS SRV genre _pass._tcp.lord.re. TTL IN SRV 0 5 7709 pass.lord.re.
  • Ça serait forcément en TLS bien entendu.
  • Lorsque le client se connecte, il s'auth (pas spécialement défini comment).
  • Ensuite le serveur répond les actions possibles.
  • Le client envoie une requête de changement de passe.
  • Le serveur acquiesce en répondant les conditions nécessaires (caractères minimum, tels types de caractères et tout, dans un format prédéfini).
  • Le client envoie son nouveau passe.
  • Le serveur confirme que c'est pris en compte.
  • Le client se ré-auth.
  • Si c'est OK, le serveur valide et coupe proprement la connexion et c'est tout bon.

On peut potentiellement ajouter de l'auth à plusieurs facteurs dans le lot même si ça enlèverait pas mal d'intéret (il faut autant que possible que ce soit automatisable).

Imaginez la joie de pouvoir changer de mot de passe sur tous les sites de façon sécurisée et super simple ! Au moindre petit soupçon, bam renouvellement et d'ailleurs pourquoi pas renouveler chaque mois ?

Ça serait tellement pratique, c'est le seul truc qui manque aux gestionnaires de pass.

En passant

Arrêtez avec les restrictions sur les mots de passe. Si vous en avez c'est que vous gérez mal votre système.

J'espère que vous ne stockez pas les mots de passe directement mais un hash, donc stocker 1,2,5,1000 caractères ça vous revient au même. Pareil pour les caractères spéciaux, hein.

Pass-rotate

Il existe un projet sur Github qui est un mélange de ce que je viens de raconter et de Weboob (mais si vous savez ! Le logiciel pour utiliser des services web en console ! ). Bref un logiciel pour changer de pass tout seul sur différents sites sauf que pas de bol c'est pas très populaire donc ça supporte peu de sites et malheureusement c'est pas super actif comme projet. Bref c'est Pass-rotate si ça vous dit de jeter un œil.

Retour suites aux cours 2018

Bon c'est un ptit article de vrac.

Chaque année je dispense quelques cours de Licence Pro ASUR (Administration et Sécurisation des Réseaux) où j'interviens juste ponctuellement deux fois dans l'année. Je ne connais pas spécialement le programme (en dehors de ce que je donne) mais c'est très orienté Linux et logiciels libres.

Mon cours est … très court. Par contre la très grande majorité est en fait un TP qui aborde pas mal de points différents dans le domaine en question.

Je pense qu'assommer les pauvres étudiants n'est clairement pas la bonne façon de faire et qu'il faut les balancer à la flotte au plus tôt pour qu'ils apprennent à nager. Et du coup, je lâche très vite les élèves avec tout un tas de questions qui sont un peu orientées mais pas trop, d'abord assez limitées dans leur scope puis de plus en plus ouvertes.

comic présentant 4 façons de prendre soin de ses petits. Gentoo préconise de balancer ses petits pour qu'ils apprennent à voler

Merci TheSquareComics pour la graine de ce meme que j'affectionne particulièrement

Et force est de constater, qu'ils n'ont pas l'habitude de rédiger autre chose que des réponses bêtes et méchantes.

Ils peuvent pondre des screenshots, même quelques schémas, copier/coller les commandes. Mais argumenter leur réponse, justifier leur raisonnement ou juste expliquer très succinctement leur raisonnement bha là ils savent pas faire.

J'ai beau mettre un préambule assez massif où j'indique qu'une réponse techniquement fausse mais avec le bon raisonnement sera comptée comme juste, que les screenshots du résultat de leur commande je m'en bats les steaks s'il n'y a pas d'explication avec mais … non. Et même si je rabâche toute la journée (quand je tourne dans la salle pour leur filer un coup de main/les orienter/donner des indices/expliquer des notions) que je n'ai pas besoin qu'ils me prouvent qu'ils ont réussi à faire ce que je demandais mais qu'ils me prouvent qu'ils ont compris ce qu'ils ont fait… bha non, ils restent scolaires.

Bon du coup pour éviter de faire un blogpost rien que pour râler, je vais dans la suite donner quelques pistes pour améliorer les comptes-rendus et aussi quelques tips divers et variés (on sait jamais, s'ils tombent sur ce blog ça pourrait les aider).

Ce qui peut être amélioré

  • Lire les questions complètement et si ce n'est pas clair demander des compléments d'informations. Ça peut paraître con mais quand on vous demande de nommer le fichier que vous allez rendre d'une certaine façon, pour pas passer pour un tâcheron avant même que votre compte-rendu ne soit lu c'est de respecter ça. Et quand on vous dit et écrit de multiples fois que les captures d'écran n'ont aucune valeur, pas la peine de perdre du temps à en faire. Le prof vous met pas au défi quand il vous le dit. Quand votre TP c'est 90% de commandes shell, au mieux vous n'avez qu'à faire du copié/collé de votre terminal.

  • Quand on vous dit de vous méfier des tutos sur le web et de privilégier le man, c'est qu'il y a une raison. Ça fait dix ans que je prodigue les mêmes cours/TP et dix ans que je tombe sur des réponses choppées sur les mêmes tutos sur le net avec les mêmes conneries obsolètes depuis des lustres. Les intervenants extérieurs ne sont pas là pour vous faire chier, au contraire, on arrive avec un état d'esprit clairement positif à votre égard. Souvent on a fait les mêmes études/diplômes et tout ce qu'on souhaite, c'est partager notre savoir/passion en faisant en sorte que vous ayez l'impression d'avoir progressé. On n'est pas là pour le pognon mais clairement dans une démarche positive, et pour vous directement, et plus globalement pour la profession (meilleur sont les étudiants, meilleurs seront les gens dans leur taff plus tard).

  • Ça ne vous plaît pas ? Cassez-vous ! Si vous faites un Bac+3 pour contenter papa et maman mais que vous êtes en souffrance, vous serez en souffrance toute votre vie. Arrêtez les frais au plus vite et réorientez-vous au plus vite. Je ne dis pas ça pour être méchant mais réellement pour votre bien être. Si le domaine ne vous plaît pas alors que vous débutez et que vous êtes tout frais, vous vous embarquez pour 42/45/60 (seul le futur nous le dira) de malaise et ce n'est clairement pas ce que je vous souhaite. Vous êtes encore jeune et même si c'est pas le chemin naturel, il est encore facile de changer d'orientation maintenant ; le plus tôt sera le mieux.

  • Si on vous dit que tel truc est déprécié/obsolète, demandez pourquoi ? par quoi on remplace ? Demandez pas “Pourquoi on m'a enseigné ça ?", ça fait pas avancer le débat et si alors que vous êtes encore étudiant vous refusez de remettre en question le peu de savoir que vous avez, qu'est-ce que ce sera dans cinq ans/dix ans ? L'informatique est un milieu qui évolue constamment et pour pas être largué vous allez vous aussi devoir évoluer avec. Donc quand on vous annonce “ifconfig est déprécié depuis 18 ans” ne répondez pas un “ouai mais j'ai appris comme ça, ip je comprends rien”. Vous n'avez pas encore des habitudes fortement ancrées, c'est maintenant qu'il faut réapprendre et pas après dix ans de mauvaises habitudes solidement imprégnées dans votre cerveau. N'abordez pas votre apprentissage par de la méfiance (encore une fois, si je vous le dis c'est pas pour vous faire chier, c'est pour que vous soyez plus à l'aise, plus performant, plus à jour). Si vous êtes en apprentissage avec des vieux briscards adminsys, ne pompez pas leurs défauts mais soyez prêt à leur apporter un nouveau savoir à eux aussi.

Quelques astuces pour les débutants sous Nunux

Le man est la documentation à peu près officielle. Certaines pages sont effectivement assez rébarbatives mais globalement c'est quand même assez bien foutu (surtout dans le cas de ssh). Mais il faut apprendre à s'en servir.

Rechercher

Ça utilise des raccourcis assez communs sous Linux. Par exemple, pour chercher vous pouvez utiliser / puis vous tapez le mot que vous cherchez. Ensuite avec n vous irez à la prochaine occurence du mot recherché. C'est tout con mais rien que le fait de connaître ça rend le truc utilisable.

Comment c'est rangé

Tous les man ont un ordre assez similaire : d'abord le nom de la commande, ensuite le synopsis qui donne un résumé bref, ensuite la description qui va indiquer toutes les options possibles avec leur intéret, ensuite des précisions en fonction du programme (dans le cas de ssh ça explique le fonctionnement de l'authentification, les caractères d'échappements, le tunneling, la gestion des clés d'hôte, bref des trucs spécifiques qui apportent pas mal de complément d'information), ensuite le voir aussi qui cite d'autres pages man en rapport pour compléter et enfin les auteurs.

Il y a parfois une section exemple qui regroupe les utilisations communes des logiciels ce qui peut vous faire gagner pas mal de temps, pensez-y, le man c'est pas un tuto mais c'est bien mieux une fois outrepassé la laideur du bousin.

Syntaxe de man

Le synopsis c'est pas mal mais si vous comprenez pas sa syntaxe c'est balot ça aide pas trop.

Prenons l'exemple du man ssh

ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J destination] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command]

Bon déjà, tout ce qui est entouré de crochet est facultatif.

Donc dans notre exemple le minimum obligatoire est ssh destination. Et quand on regarde un peu plus bas dans le man ils indiquennt à propos de destination : may be specified as either [user@]hostname or a URI of the form ssh://[user@]hostname[:port]. avec la même syntaxe des crochets.

Revenons à l'exemple, au début il y a le gros pâté [-46AaCfGgKkMNnqsTtVvXxYy] qui indique toutes les options qui n'ont pas besoin d'argument et que vous pouvez donc tout coller à la suite, mais c'est pas obligatoire, vous pouvez faire -4 -A -f ou bien -4Af.

Les messages d'erreur sont précieux

C'est con de devoir le dire, mais les messages d'erreurs sont pas faits pour être ignorés. Les logiciels bien faits ont des messages d'erreurs qui veulent dire quelque chose et assez explicites.

Et quand c'est pas le cas, il faut parfois rajouter un -v pour activer le mode verbeux qui détaille un peu plus ce que fait le programme ce qui peut être précieux.

Et vous aurez souvent les mêmes messages qui vont vous permettre de vite savoir d'où vient le souci.

  • Name or service not known : Visiblement il n'y a pas de DNS qui répond à cette requête. Donc est-ce que le nom est bon ? Est-ce que votre résolveur DNS fonctionne?
  • Connection refused : C'est généralement au niveau TCP cette erreur. Donc est-ce que le port auquel vous tentez de vous connecter est ouvert ? est-ce que c'est la bonne machine ? est-ce que vous avez du réseau ?
  • No route to host : Votre machine n'a pas de route pour joindre la destination. Est-ce que la machine est sur votre LAN ? Est-ce que vous avez une passerelle ? Est-ce que les routeurs entre votre client et votre serveur sont bien up et configurés ?

Avec un niveau Bac +3 ce genre d'erreur devrait tilter en moins d'une seconde et vous devriez avoir votre ptite checklist à dérouler.


Bon même si j'ai l'air assez énervé et aggressif en vrai pas tant que ça. Cette année j'ai été très agréablement surpris, contrairement aux deux/trois années précédentes le niveau était bien meilleur mais surtout le sérieux global était très largement en amélioration. J'avais une appréhension suite à l'année précédente qui était assez catastrophique, mais ils m'ont redonné l'envie de continuer.

C'était agréable pour moi et j'ai eu l'impression que ça l'était aussi pour eux.

Debunkage de Debunkage des mythes de Wayland

DrewDevault s'est lancé dans un blog post pour débunker les mythes autours de Wayland. Bon pour info ce gars est un des devs de Wlroots et Sway. Le premier est une lib permettant de développer des compositeurs Wayland et le second est un compositeur Wayland assez populaire (mais sans plus), bref c'est un mec qui connait pas mal le sujet sans pour autant être l'expert ultime (qui n'existe pas).

Bon et du coup ça parle de différents trucs : la sécurité, les screenshots, l'embarqué, transparence réseau, le CSD (les décos de fenêtres), nVidia. C'est globalement assez factuel avec pas mal de liens pour sourcer et tout.

Bref, l'article est pas mal.

Et là pouf un journal qui apparait sur LinuxFr et là attention ça vire un peu au n'importe quoi (surtout en considérant les commentaires).

Bon déjà ça vient pleurnicher sur le sort de Mir. Mir c'est le truc fait tout seul dans son coin par Canonical, vous savez ? Les gens d'Ubuntu qui passent leur temps à réinventer de leur côté des trucs qui ne percent jamais ailleurs.

Bref, cracher sur Wayland qui est un protocole avec des specs et compagnie alors que Mir c'est juste un soft utilisé par personne d'autre que Canonical… no comment.

Ensuite il y a un ptit paragraphe qui voudrait nous faire verser une ptite larme concernant nVidia qui ne veut pas faire comme tout le monde en faisant des drivers graphiques libres. Il faudrait en plus les encenser car c'est grâce à eux qu'on a de la 3D/accélèration décente sous Linux et FreeBSD… Ce qu'il faut pas lire. Bref pas mal de commentaires soulignent que si, on peut jouer décemment avec les drivers libres AMD (je peux en attester également).

Ce qui n'est pas évoqué

Un point qui n'est survolé que dans les commentaires c'est le paradoxe actuel de Xorg. Xorg c'est donc un serveur X11. X11 le protocole qui fait tourner les applications graphiques sous les unix et il date de … gogowikipedia … 1987. Et autant vous dire que le protocole accuse son âge.

Une grande partie du protocole est clairement obsolète et n'est quasiment plus utilisé (une histoire de primitives), à l'inverse il y a eu du bricolage dans tous les sens pour y ajouter des concepts inconnus à l'époque : l'accélération graphique.

Parce que ouai en 1987 il n'y avait pas de carte 3D, pas d'OpenGL. Et du coup les devs ont rusé en hackant le truc dans tous les sens pour permettre d'avoir de l'accélération graphique sur un serveur graphique (le cœur du métier quoi).

Du coup quand de nombreuses personnes pleurent la perte de transparence réseau en passant à Wayland je ris. Il existe trouzemille façon d'avoir de l'affichage distant entre les VNC, le SPICE, le RPD… mais non ces gens pleurent la disparition du protocole vieillissant ne sachant pas gérer l'accélération graphique et ayant des perfs réseaux miteuses.

Le second point qui n'est pas abordé et qui est pourtant capital c'est qu’une grande partie des devs (promoteurs) de Wayland SONT les devs de Xorg. Ce sont les mêmes gens qui lâche l'affaire de Xorg car c'est trop vieux, encombré, bricolé et qui avec l'expérience savent qu'il n'est plus possible de continuer inlassablement à faire vivre ce papy et qu'il est bien plus intéressant de repartir sur des bases plus modernes.

Petit à petit Xorg va être abandonné de ses devs (c'était déjà sacrément calme depuis quelques années) au profit de Wayland.

Wayland n'est pas un logiciel

Ouai c'est un point qui est souvent zappé, mais Wayland c'est pas un logiciel que vous lancez et hop. C'est un protocole qu'il faut implémenter pour créer un logiciel.

Il n'y a plus de serveur d'affichage + gestionnaire de fenêtre mais c'est remplacé par le compositeur qui a ces deux tâches désormais. Donc ouai dans les commentaires quelqu'un resort le coup de “Quand mon WM plante sous Xorg tout continue de marcher, les fenêtres sont moches quelques secondes puis tout revient alors que sous Wayland tu perds tout”. Ouai c'est vrai, mais quand c'est ton Xorg qui plante parce que (par exemple) le driver graphique se vautre, tu perds tout aussi. Bref pas d'avantage pour l'un comme pour l'autre.

Ouai si à l'époque coder un WM (Window Manager, un gestionnaire de fenêtre), c'était ultra simple et quelques centaines de lignes de code pouvait suffire ce n'est définitivemnt plus le cas. Mais c'est pas pour autant que ça ne sera jamais le cas. L'écosystème est encore tout jeune, mais il y a fort à parier qu'il existera des libs (à la wlroots) qui prémâcheront intégralement le boulot.

Wayland c'est pas un seul protocole monolithique mais un amas de protocoles avec le noyau et pleins de petits rajouts à droite à gauche pour gérer le presse-papier/les claviers virtuels/le vérouillage du curseur/… Donc ouai pour l'instant pas grand monde gère absolument tous les cas de figure et non il n'existe pas encore tous les “sous-protocoles” imaginables. Ça mûrit petit-à-petit, ça grandit au fil du temps de disponibilité des devs. Ce n'est pas rushé et les sous-protocoles sont discutés de longs mois avant d'être implémentés. Il faut bien voir qu'une fois défini et utilisé massivement, il est très difficile de modifier un protocole et tout l'écosystème l'ayant implémenté à posteriori. La compatibilité avec X via XWayland permet de ne pas avoir besoin de tout faire à la va-vite : faire tourner un soft via XWayland est transparent et permet pourtant de profiter de la sécurité améliorée de Wayland.


Bref Wayland arrive petit à petit en proposant plein de nouveautés pour les devs qui ne seront pas forcément visibles pour l'utilisateur lambda. Refuser cette évolution sous prétexte que la transparence réseau n'est pas possible alors que ce cas d'utilisation est marginal et bancal est assez dommage. Le fait que nVidia ne collabore pas… bha c'est du classique nVidia vis-à-vis du libre.

Pas la peine d'user de FUD à son encontre, Wayland est déjà là ou presque et tourne aussi bien sur de tous ptits trucs embarqué que des bons gros ordi avec du bon gros Gnome des familles.

10 ans de bépo

J'ai réalisé il y a peu que j'utilisais la disposition bépo depuis plus de dix ans maintenant. Et je voulais faire un bref rapide retour sur le sujet.

Faisons ça sous forme de fausse FAQ

Ça va vraiment plus vite ?

Noui. Oui parcequ'en ayant migré sur la disposition bépo j'ai appris plus sérieusement à écrire sans déplacer les doigts de la homerow (la ligne du milieu du clavier) et avec les dix doigts. Au final c'est ça qui m'a permis d'écrire un peu plus vite que la disposition elle-même.

En vitesse de croisière je suis aux alentours des 70mots par minutes mais en faisant de l'irc sans trop réfléchir à l'écriture je suis plus près des 80mots/minutes.

Ma migration vers le bépo n'était clairement pas motivé par un souci de vitesse.

Tu ne sais plus écrire en azerty ?

Et bien si. Et tout aussi bien qu'avant.

Et d'ailleurs au boulot je suis en azerty et à la maison en bépo. Je passe continuellement de l'un à l'autre sans réfléchir.

Un truc plus étonnant : Je ne sais écrire en bépo que sur mon clavier, pas sur un autre. Sur un clavier azerty, j'ai énormément de mal à écrire en bépo.

C'est uniquement de la mémoire musculaire et comme mon clavier est physiquement différent des claviers traditionnels… Et d'ailleurs je ne sais pas écrire azerty sur mon clavier.

Pas la galère les raccourcis dans les applications ?

OUI ! Mais globalement non.

J'utilise un environnement assez particulier à base de sway et d'applications dans le terminal et de Qutebrowser.

J'ai changé les raccourcis de Qutebrowser pour en avoir des similaires à Vimperator (un des prédecesseurs de Qute) mais avec des raccourcis pas forcément adapté au bépo (ni à l'azerty ni au qwerty). Pareil pour Sway, ce sont des raccourcis que j'ai récupéré de i3 que j'avais eux même adapté de wmii et qui ne se basent pas sur la disposition clavier mais plus sur la sémantique (meta+f pour fullscreen, meta+s pour stack, meta+t pour tab). Et pour les applis consoles (on me demande très souvent pour vi(m), mais je suis passé à kakoune) généralement je ne les modifie pas car ils sont encore une fois basés sur la sémantique.

Le seul truc chiant c'est pour les jeux vidéos. J'adore les FPS et contrairement aux affreux flêchistes je suis habitué au bon vieux wsad ou zsqd qui devient éuai en bépo. Et je vous le dis tout de suite, les jeux qui savent se démerder avec le é sont très rares.

Du coup j'ai pris l'habitude de me décaler d'une touche vers la droite pour utiliser piue qui donne edsf en azerty. Rien de bien méchant mais c'est chiant.

Moins mal aux poignets ?

Ouaip. Mais c'est pas parfait non plus. Tout dépend de la géométrie du clavier.

Le fait de moins bouger les mains c'est mieux mais c'est pas uniquement dû au bépo. Encore une fois dans mon cas j'ai changé de clavier par la même occasion.

J'adore les claviers toussa toussa, un jour je vous en parlerai probablement, mais avant le bépo j'étais sur un “clavier ergonomique”, un Microsoft Natural Keyboard. J'aimais pas mal surtout le fait qu'il soit séparé en deux.

Après en passant au bépo j'ai pris un Typematrix 2030 qui était sympa comme tout (surtout avec sa ptite skin). Mais depuis je suis passé sur un clavier fait maison qui reprend pas mal le design du Typematrix avec quelques petits ajustements. Mais surtout j'utilise désormais un repose-poignet (un torchon replié plusieurs fois pour arriver à la bonne hauteur). C'est moche mais super confortable, ça fait pas transpirer, ça frotte pas sur la peau, ça se décale facilement et c'est modulable à l'épaisseur que je veux.

Par contre j'envisage de plus en plus de me faire un nouveau clavier avec le même design mais en le scindant en deux parties : je me casse encore trop le poignet sur le clavier en ayant mes deux mains côte-à-côte.

Bépo c'est chiant pour l'anglais

Heuu non. Cette remarque revient souvent à cause du fait que le w soit super loin. Et c'est vrai qu'il est loin.

Personnellement j'ai pas un vrai bépo pur, il est un poil modifié. Du coup le w et le ç ne sont plus à leur place d'origine (l'extrème droite du clavier). J'ai mis le w sous le m et le ç sous le y.

Mais en dehors de ça, c'est pas moins adapté à l'anglais que ne l'est l'azerty. Pour rappel : l'azerty est pensé pour ralentir la frappe des lettres consécutives ce qui n'est plus un comportement souhaitable depuis l'abandon des machines à écrire…

Bépo c'est chiant pour coder

Je code pas. Mais d'un autre côté c'est pas complètement faux mais j'ai la conviction que ce n'est pas vrai.

Les langages informatiques sont pour la plupart inventé par des utilisateurs de qwerty et donc leur syntaxe est adaptée à ces claviers. Mais de là à dire que c'est chiant en bépo c'est pas non plus vrai.

Il y a une logique pas mal dans le placement des symboles en bépo : les chevrons, parenthèses, guillemets, accolades sont tous regroupés et placés de sorte à ce que le caractère ouvrant se trouve juste à droit du caractère fermant. C'est tout con mais c'est super logique et pratique. Les symboles mathématiques sont à la suite (+-/*).

Bref dans mon cas, ça ne me gêne pas car je ne code pas. J'ai entendu dire, de la part de non utilisateur, que “c'est nul” mais je doute que ce soit vraiment nul.

Combien de temps d'apprentissage ?

J'ai fait le grand saut à la barbare : du jour au lendemain j'ai changé de clavier et de disposition sans retour arrière. J'ai pas fait d'exercice avant ni après la migration.

La première semaine c'est dur de faire des phrases tellement ça demande de concentration pour chercher les touches.

Au bout d'un mois j'ai atteint une vitesse d'écriture tolérable avec un paquet de frappe hasardeuse puis suppression puis frappe hasardeuse. Mais au final ça devient utilisable.

Au bout de trois mois c'est bon j'ai retrouvé ma vitesse initiale et j'ai pu écrire sans réfléchir aux touches sauf pour les symboles. Au-delà c'est plus une histoire de confort.

Au bout d'un an plus besoin du tout de réfléchir pour les symboles non plus mais j'écris un peu porcasse en bougeant de la homerow mais j'y travaille légèrement en me forçant à moins bouger.

Tu trouves où un clavier bépo ?

Hmm alors là je sais pas trop. Je sais que Typematrix en proposait (via les skins) à une époque, mais je sais pas s'ils continuent.

Mais franchement, quitte à passer au bépo, autant se mettre à la frappe à l'aveugle. Mon clavier n'a pas de marquage et je m'en porte pas plus mal.

Tu recommandes ?

Si le sujet vous intéresse, je recommande clairement. Si vous êtes tombé par hasard sur cette page web et que vous ne lisez que cette phrase… nope.

Apprendre le bépo est difficile. Il faut perdre des (mauvais) réflexes bien ancrés dans la mémoire musculaire (inconsciente) et ça c'est très compliqué. Vouloir le faire parcequ'il y a un peu de hype autour de bépo sans plus de volonté vous fera perdre du temps pour que dalle.

C'est par contre un investissement rentable. Vous taperez au clavier toute votre vie (je crois pas aux assistants vocaux et ce genre de connerie) plusieurs heures par jour… Ça sera vite rentabilisé.


Voilà si vous avez d'autres questions, n'hésitez pas à les poster en commentaire j'éditerai l'article en conséquence.

L'histoire des User Agent des browsers

Quand vous consultez une page web, votre navigateur web envoie son nom au serveur. Cela permet entre autre de faire des statistiques à propos des visiteurs d'un site ouaib (tiens X% de mes lecteurs utilisent Chrome 67, Y% utilisent Firefox 58,… ce genre de truc). À la base ça permettait surtout aux serveurs web d’envoyer des pages webs adaptées au navigateur du visiteur.

Aux balbutiements du web, les navigateurs avaient des capacités pas mal différentes les uns des autres et du coup les pages web devaient être adaptées. Bon c'est toujours un peu le cas mais dans une bien moins moindre mesure.

Bref, je m'égare. Le user-agent des navigateurs ne donne pas simplement le nom du navigateur et sa version, il envoie des infos assez… étrange au premier regard. Un petit exemple ?

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.12.0 Chrome/69.0.3497.128 Safari/537.36

Ouaip. Tout ça pour dire Qutebrowser.

Décorticons !

  1. Mozilla/5.0 (X11; Linux x86_64)
  2. AppleWebKit/537.36 (KHTML, like Gecko)
  3. QtWebEngine/5.12.0
  4. Chrome/69.0.3497.128
  5. Safari/537.36

On retrouve presque tous les moteurs de rendu web existant (sauf ceux de chez Microsoft).

  • Donc du Mozilla (pour Netscape (qui est devenu Firefox))
  • Un peu de Webkit (qui est issu de KHTML de Konqueror qui a des fonctionnalités proche de Gecko (le moteur de Firefox))
  • QtWebEngine est le vrai moteur de rendu que j'utilise. C'est un dérivé du moteur de Chromium fait par les gens de chez Qt.
  • Chrome qui utilise le moteur de rendu Blink qui est dérivé de Webkit qui est dérivé de KHTML.
  • Safari : alors là pas vraiment, mais bon Safari est l'instigateur de Webkit

Sacré bordel, hein ?

Et c'est pas un cas unique! Voilà une ptite brochette trouvée dans mes logs :

  • Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16
  • Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
  • Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36
  • Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0

Comment est-on arrivé à un tel merdier dans le nommage des navigateurs ?

Cette page de chez WebAIM [cache] vous détaillera un peu tout ça mais tention ! C'est en anglais.

Pour les plus flemmards vla un ptit résumé. En gros tout a commencé au tout début du web, l'un des premiers navigateurs graphiques (Mosaic) ne supportait pas les frames et Netscape (Mosaic Killer → Mozilla) les supportait du coup jusque là tout va bien. Les serveurs web envoient donc des pages avec des frames aux navigateurs s'annonçant en tant que Mozilla.

À ce moment Microsoft a sorti son Internet Explorer , qui lui aussi suportait les frames. Du coup pour recevoir les pages avec frames, Internet Explorer s'est identifié en tant que Mozilla tout en ajoutant ensuite des subtilités. Et c'est à partir de là que tout a commencé.

De fil en aiguille on en arrive aux immondices actuelles où chaque nouveau navigateur s'est retrouvé obligé de se faire passer pour un autre pour recevoir les pages webs les mieux foutues. Bref cet article est court mais passionnant, je vous le recommande chaudement.

Pourrait-on aujourd'hui arrêter ces conneries et faire en sorte que les navigateurs se présentent plus directement ?

Je sais pas trop. J'imagine que oui et non.

Ça marcherait pour les pages simples, mais un peu moins pour les sites fait par des sagouins qui utilisent du code dépendant de chaque navigateur. Les moteurs de rendu modernes sont bien plus respectueux des normes qu'auparavant.

Malheureusement, la monoculture des moteurs de rendu poussent à des abus de la part des devs de navigateurs mais aussi de pages webs. La disparition récente du moteur de Edge ne va pas aider (et en plus ils se permettent de remettre en doute la pertinence la persévérance de Mozilla envers son moteur).

Deux grands types de VPN

Ça a commencé autour d'une discussion sur le Fédiverse et comme visiblement ça a plu, je me suis dit qu'en parler ici un peu plus longuement pourrait le faire.

Dans la vie il y a 2 types de VPN :

  • Le VPN strictement commercial. Lui c'est le VPN, il vous sert de passerelle à vous mais aussi à tous pleins d'autres clients qui vont se partager cette connexion.
  • Le VPN made in la FFDN. Lui c'est le gentil VPN, il vous sert de passerelle mais vous garantit un net neutre à vous et rien qu'à vous. Il n'est pas partagé.

De ça il découle donc une très grande différence mais avant de voir déjà faisons un ptit peu de vulgarisation sur ce qu'est un VPN. Tout le monde en parle mais pas grand monde sort une bonne définition de la chose donc c'est partit pour un ptit cours de réseau !

VPN : Koikoukess

Déjà c'est quoi une IP ?

Donc sur l'Internet mondial, chaque machine qui se dit connectée au réseau l'est par le biais d’au moins une adresse IP dite publique. Historiquement il n'y avait que les adresses de type IPv4 mais maintenant on rencontre de plus en plus fréquemment des adresses de type IPv6 (la distinction n'a pas trop d'intérêt, retenez juste que IPv6 permet beaucoup beaucoup plus d'adresse que IPv4 qui est limité lui à 4 milliards).

Une adresse IP publique est donc unique sur Internet et n'est donc présente qu'à un endroit. C'est un moyen pour identifier une machine.

La passerelle Internet

Bon donc tout bon Fournisseur d'Accès Internet qui se respecte fournit une adresse IP publique par client. Cette adresse est affectée à la box du client.

Mais généralement les clients ont plus d'un appareil à relier à Internet. Chacun des ordinateurs, téléphones, téléviseurs, IOTrucs se connectent à Internet via la box La box, en vrai, c'est un routeur (mais le nom est bien moins sexy) qu'on appelle souvent passerelle.

Chaque appareil a donc une adresse IP privée locale sur votre réseau (souvent en 192.168.1.x) avec lequel il discute avec la box pour aller sur Internet.

Comment la box répartit les données ?

Pour savoir quel est le destinataire local, il faut savoir que l'utilisation d'Internet est dans la très grande majorité des cas des réponses à des sollicitations de votre part.

Donc quand votre machine sollicite une machine sur Internet :

  • la box va garder en mémoire que c'est tel appareil qui contacte tel serveur.
  • le serveur répond à votre adresse IP publique
  • la box reconnait que c'est une réponse à une sollicitation qu'elle a transmise auparavant
  • Elle se remémore que c'est votre appareil qui a sollicité et donc que c'est pour vous la réponse.

Ce mécanisme ne fonctionne donc que pour les connexions sortantes.

Pour une connexion entrante, la passerelle n'a aucune idée de l'appareil destinataire. C'est dans ces cas que vous devez “ouvrir un port”/“natter”/“rediriger le trafic” (notez les guillemets). Vous devez donc indiquer “Les connexions en provenance d'Internet à destination du port X sont à envoyer à l'ordinateur Y". Ce mécanisme est mis en place car vos appareils se partagent une seule adresse IP publique. Chacun aurait son IP publique, il n'y aurait pas besoin de faire ça (IPv6).

En bref la box fait la traduction entre vos adresses IP privées (interne à votre réseau) et votre adresse IP publique (utilisée sur Internet).

Et donc un VPN c'est ?

Bha justement j'ai tourné autour du pot et j'ai pas sorti le mot magique exprès. Votre réseau interne avec vos adresses IP privées (locales, internes) on appelle ça un réseau privé (ou LAN).

Et un VPN c'est un Virtual Private Network. C'est donc un réseau privé virtuel, virtuel dans le sens il existe mais à un endroit où il ne devrait pas vraiment. Au lieu d'avoir votre réseau privé à un seul endroit, vous en aurez des bouts un peu plus loin sur Internet et non pas tout chez vous de votre côté de la box.

Donc votre réseau privé virtuel sera composé de votre réseau privé habituel (tout ce qui est raccordé de votre côté de la box) + ce qui est raccordé au VPN.

Et c'est pile ici que la distinction entre les différents types de VPN se fait.

VPN de type commercial pour l'anonymat

Ce type de VPN est le plus populaire car il répond à des objectifs assez recherchés :

  • Cacher son IP publique
  • Utiliser une IP publique d'un autre pays
  • Outrepasser une censure Internet
  • Chiffrer votre connexion
  • Anonymiser votre trafic Internet
  • Pas de logs

Déchiffrons un peu ce qu'ils font.

Ils vous fournissent une IP publique différente de la vôtre. Ils en proposent généralement plusieurs. Si vous vous rappelez le chapitre précédent, il s'agit en fait d'une passerelle qui vous est mis à disposition. Au lieu d'utiliser votre passerelle locale, vous allez utiliser la passerelle du fournisseur de VPN.

Donc vu de l'extérieur ça ne sera plus l'IP publique de la box qui sera vue mais celle de votre fournisseur de VPN.

Il faut savoir qu'il existe des bases de données faisant la correspondance entre une adresse IP publique et une adresse géographique. C'est grâce (à cause de cela) que certains services vous disent que vous ne pouvez pas accéder à tel contenu dans votre région du monde. Les fournisseurs de VPN ont donc vite compris qu'il y avait un business possible en revendant des accès à des passerelles utilisant des IP à différents points du globe pour outrepasser ce genre de restrictions.

Le chiffrement de la connexion ne sera pas assuré de bout en bout ! Les données seront chiffrées entre votre client VPN et le serveur VPN, au-delà ça ne sera pas chiffré ! En gros vous allez chiffrer les données que vera votre fournisseur d'accès Internet. Les données seront en clair après le serveur VPN !

Bon et concernant l'anonymisation du trafic, il n'en est rien. Si vous consultez votre compte facebook, VPN ou non, vous ne serez pas anonyme. Si vous avez tous vos cookies habituels dans votre navigateur, VPN ou non, vous ne serez pas anonyme. Le VPN en lui-même n'anonymise rien. Seul votre comportement et des réglages dans votre navigateur peuvent vous anonymiser ! (et si c'est ce que vous recherchez, penchez-vous plutôt sur TOR)

Et concernant les logs, bha on ne peut que tenter de leur faire confiance. Sachez que dans certains pays (dans l'Europe notamment), les logs sont obligatoires. Faut pas espérer qu'une entreprise se rende hors la loi pour vendre du VPN à 8€/mois…

VPN à la FFDN

Bon, déjà pour ceux qui ne connaissent pas la FFDN jetez un coup d'œil à leur site ouaib. C'est le regroupement des Fentils Fournisseurs Daccès au Net qui sont pour la plupart des FAI associatifs.

Certains proposent des offres de VPN qui sont radicalement différents :

  • Fournissent une IP publique fixe
  • Garantissent un accès Internet neutre
  • Chiffrement de votre connexion

Ici 1 IP publique = 1 abonné. Du coup tout le trafic en provenance de cette adresse IP est uniquement votre trafic Internet à vous. Pas de partage avec d'autres inconnus. Niveau traçabilité c'est à l'opposé complet de l'anonymat

La FFDN s'appuie sur une charte poussant chacun de ses membres à appliquer la neutralité du net. Elle est créée en grande partie autour de ce principe. Les grands FAI commerciaux ont déjà prouvés à maintes reprises que la neutralité du net n'était pas un de leurs objectifs et l'ont bafoué plusieurs fois (et continuent encore actuellement). Bref la FFDN, elle se bat pour la promotion de la neutralité du net qui est un critère crucial à la Liberté d'expression.

Concernant le chiffrement, bha là par contre c'est kif-kif avec les fournisseurs de VPN commerciaux. Le chiffrement de la connexion est fait entre le client et le serveur VPN, pas au-delà ! L'utilisation d'un VPN ne doit pas vous induire un sentiment de sécurité absolu !

Les VPN d'entreprise

Bon je les aborde vite fait juste pour être complet mais voilà…

Une grosse entreprise possède généralement un Intranet avec des ressources internes, des machines de stockage de fichiers, des imprimantes, des serveurs internes… Bref toutes ces ressources elles sont dans son réseau privé. Mais physiquement c'est très probablement réparti entre plusieurs succursales, sièges sociaux, datacenters. Bref le but du jeu est de regrouper tout ça dans un seul et même réseau.

Et en bonus, elle peut permettre à ses employés distants de raccorder leur propre machine à ce réseau.

Et bha… c'est avec un VPN qu'on fait ça… voilà voilà. Sauf que là au lieu de juste vous permettre d'utiliser une passerelle distante, on vous donne accès à tout un réseau privé et de ses ressources.

Et du coup où je veux en venir ?

Ouai pourquoi j'ai voulu écrire cet article déjà ?

Ha oui ! J'me rappelle !

Quand quelqu'un demande de l'aide dans le choix d'un VPN, proposer directement un VPN de la FFDN ou un VPN commercial est contreproductif. Ces deux types de VPN ont des buts diamétralement opposés.

Les gens cherchant à cacher ce qu'ils font de leur connexion n'ont que peu d'intérêt à prendre un VPN nominatif de la FFDN alors qu'un VPN commercial est tout indiqué (encore que …).

À l'inverse, quelqu'un cherchant à auto-héberger des services ne pourra pas le faire avec un VPN commercial et devra se tourner vers ce que propose la FFDN.


Voilà, bon c'est un peu plus long que prévu. J'ai simplifié le tout et il y a donc des approximations.

Bien sûr il existe des fournisseurs commerciaux de VPN qui garantissent la neutralité du net, bien sûr certains permettent d'avoir une IP fixe nominative mais c'est l'exception.

Fabrice Bellard un super dev français

Connaissez-vous Fabrice Bellard ?

Il s'agit d'un brillant informaticien français ayant un sacré palmarès. Il maîtrise particulièrement le langage C et gagne régulièrement des concours par ses prouesses.

Il aime visiblement bien s'attaquer à des problèmes assez bas niveau.

Entre autre il s'est fait un compilateur pour un sous-ensemble du C particulièrement petit avec TCC qui se permet même de compiler et faire tourner à la volée (tel un script) du code en C.

Il est à l'initiative du format d'image BPG qui est certes peu populaire mais est pourtant une sacrément bonne alternative au JPG. C'est basé sur le boulot fait sur le codec HEVC ce qui fait qu'il sera probablement jamais populaire.

Bon pour l'instant c'est assez obscur ce que je vous ai présenté mais si vous êtes adminsys vous avez probablement déjà utilisé Qemu. Et bha, ouaip, c'est aussi Fabrice qui l'a commencé avant que ça ne devienne un des piliers de la virtualisation maintenant ! Ça en jette, hein ?

Il a obtenu pendant quelques années le record du calcul du plus grand nombre de décimales de Pi où le précédent record avait été établi sur un super-ordinateur composé d'environ 2500 CPU alors que lui l'a fait sur sa ptite machine perso.

Pour son boulot il a monté un logiciel de BTS 4G (pas le diplôme, mais en gros de quoi faire marcher du réseau 4G côté opérateur). Cela permet potentiellement de se monter un réseau LTE avec un simple ordinateur et une carte PCI-Express pour gérer la partie radio. Ensuite tout le logiciel permet de passer des appels VoLTE, des SMS et de la data.

Pour s'amuser un petit peu, il a codé un émulateur de PC mais… en javascript. Parce que c'est quand même plus marrant ! Bref avec JsLinux vous pouvez booter un linux dans votre navigateur. Et c'est pas du VNC ou autre, ça tourne réellement dans votre navigateur. (et ça fait pas que du Linux, mais aussi un peu de Windows 2000)

Bon et celui qui me plaît le plus : FFMPEG. Ouai rien que ça. C'est le créateur de FFMPEG. Et aussi le lead dev pendant quelques années. Il s'agit du logiciel pour la (dé)compression vidéo le plus utilisé. Un vrai couteau suisse : s'il peut pas le faire aucun autre logiciel ne pourra faire ce que vous voulez.

Bref j'ai suffisamment fait mon fanboy, allez voir son site avec tous ses projets.

Top et Htop

Lors d'un récent post je vous ai montré un ptit screenshot d’htop et certains étaient intéressés donc voilà un mini article à ce propos.

Le vénérable top est bien il est Posix, dispo dans busybox toussa toussa mais htop est quand même bien mieux.

Mais avant de partir direct dans htop, je vais m'attarder sur top parce qu'il est quand même pas trop mal.

Utiliser top quand c'est inéluctable.

Ouai il y a des fois où vraiment on peut pas avoir htop. C'est triste mais ça arrive.

Et bha sachez qu'on peut s'en servir sans se vomir dessus.

On va transformer ça :

top en config par défaut est pas des plus attrayant ni des plus pratique.

Pas la joie.

En ça :

top tout personnalisé de partout avec pleins de couleurs

Ça a de la gueule, hein ?

Se démerdouiller

Premier truc à connaître : ? . Ouai, trouver de l'aide est le premier truc ;-)

Un truc indispensable pour rendre le truc plus lisible 0. Ça n'affichera que les valeurs non nulles.

Pour chercher une info c'est L (comme locate).

Pour envoyer un signal à un processus ça sera avec k.

Level UP

Bon c'est bien gentil mais c'est, pour l'instant, pas non plus la joie.

On va virer/ajouter les infos qui nous intéressent : Pour ça faut appuyer sur f et là choisissez avec Espace les champs que vous voulez et s pour le champ qui servira à ordonner les lignes.

Ha là déjà on a énormément progressé !

On peut encore améliorer le truc en pimpant les couleurs : Z et là tout un nouveau monde s'ouvre à vous ! Ce menu de configuration vous permet de choisir la couleur des différents éléments.

Hey mais vous savez quoi ? On peut aller encore plus loin !

Avec A vous aurez le multi-window !

O__O

Et oui. En fait top est vraiment pas si pourri que ça une fois un peu confé (:-þ).

Pour passer d'une fenêtre à une autre c'est avec g puis vous choisissez le numéro que vous voulez (de 1 à 4). Et vous pouvez re-faire ce que vous avez fait pour la première fenêtre mais pour les trois autres.

Une fois tout aux ptits oignons, pensez à faire un W pour sauvegarder la configuration.

Htop

Bon après ce petit chapitre où on voit que top est pas si pourri qu'il en a l'air on va voir pourquoi htop est mieux.

Tweakons sa face

Bon déjà on va changer un peu son allure par défaut. Avec F2 on accède aux réglages.

Perso dans les Meters en Left column je mets :

  • CPU (1&2/4) [Bar]
  • Memory [Bar]
  • CPU [Graph]

et en Right column

  • CPU (3&4/4) [Bar]
  • Task counter [Text]
  • CPU [LED]

Ensuite dans les Display options j'active :

  • Tree view
  • Shadow other users’ processes
  • Hide kernel threads
  • Hide userland process threads
  • Display threads in a different color
  • Show custom thread names
  • Show program path
  • Highlight program “basename”
  • Highlight large numbers in memory counters
  • Leave a margin around header

Et ensuite dans Colors choisissez ce qui vous flatte le plus la rétine.

Le dernier onglet concerne les Columns là c'est à votre convenance, la mienne ?

  • PID
  • User
  • State
  • Percent CPU
  • Percent MEM
  • Time
  • Command

Et pour finir un ptit F10.

La configuration se sauvegarde dans le fichier ~/.config/htop/htoprc .

Voilà jusque-là pas tellement d'avantage face à top, mais du coup pourquoi qu'il est mieux lui ?

Les atouts

Contrairement à top on peut lui faire des trucs en plus sur les processus mais souvent il va falloir rajouter d'autres logiciels.

Un premier truc c'est strace qui permet d'observer ce que fait un processus qui tourne (les syscalls qu'il lance permet de savoir s'il dort où s'il attend les io ou autre). Pour ça une fois que vous êtes sur le processus incriminé, appuyez sur s. À noter que vous ne pouvez stracer que les processus lancés par votre utilisateur à moins d'être root.

Les descripteurs de fichiers utilisés par un processus peuvent être vu avec l.Ça vous lancera donc un lsof sur le processus. Tout comme pour strace, pour des raisons de droits, vous ne pouvez le faire que sur vos processus à moins d'être root.

Un ptit L vous affichera tous les appels aux libs que fait un processus. Pour ça il faut que vous ayez ltrace d'installé.

Et le ptit dernier c'est e qui permet de voir toutes les variables d'environnement d'un processus.

Voilà pour moi le gros avantage d'htop c'est d'avoir une config rapidement accessible, une interface beaucoup plus intuitive et de s'intégrer bien avec les outils d'audit.

htop une fois personnalisé

Le brave Htop

Les confs :

Pour les flemmards je vous mets ici les fichiers de configs de ces deux logiciels :

~/.config/htop/htoprc

# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
fields=0 48 2 46 47 49 1
sort_key=47
sort_direction=1
hide_threads=0
hide_kernel_threads=1
hide_userland_threads=1
shadow_other_users=1
show_thread_names=1
show_program_path=1
highlight_base_name=1
highlight_megabytes=1
highlight_threads=1
tree_view=1
header_margin=1
detailed_cpu_time=0
cpu_count_from_zero=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=5
delay=15
left_meters=LeftCPUs2 Memory CPU
left_meter_modes=1 1 3
right_meters=RightCPUs2 Tasks CPU
right_meter_modes=1 2 4

~/.config/procps/toprc

top's Config File (Linux processes with windows)
Id:i, Mode_altscr=1, Mode_irixps=1, Delay_time=1.0, Curwin=0
Def     fieldscur=<A5><A8>34;=@ķ<BA><B9><C5>&')*+,-./012568<>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
        winflags=195892, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=1
        summclr=6, msgsclr=1, headclr=3, taskclr=2
Job     fieldscur=<A5><A6><B9><B7><BA>(<B3><B4>Ļ<BD>@<<A7><C5>)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
        winflags=195892, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=0
        summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem     fieldscur=<A5><BA>;<<BD><BE><BF>@AMBNCD34<B7><C5>&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij
        winflags=1244470, sortindx=21, maxtasks=0, graph_cpus=0, graph_mems=1
        summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr     fieldscur=<A5><A6><A7><A8><AA><B0><B9><B7><BA><C4><C5>)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
        winflags=195892, sortindx=3, maxtasks=0, graph_cpus=0, graph_mems=0
        summclr=3, msgsclr=3, headclr=2, taskclr=4
Fixed_widest=0, Summ_mscale=1, Task_mscale=3, Zero_suppress=1

Messagease : un clavier android efficace

Une question qui revient souvent sur les réseaux sociaux : Quel clavier utiliser sur smartphone ?

Et cette question anodine n'a finalement pas de réponse universelle. Et si vous commencez à me connaître, vous vous doutez que j'ai un avis assez tranché sur la question. La grande majorité des claviers sont merdiques.

Un vrai clavier ISO d'ordinateur a 105 touches. C'est déjà beaucoup (trop) et on peut s'en sortir à peu près la moitié. Et en plus c'est mal foutu. Le design des claviers a été une simple transposition à la va-vite de ce qu'il se faisait sur machine à écrire. Ça a tellement été baclé sans être repensé qu'on a conservé des contraintes techniques qui n'ont plus lieu d'être.

Le placement des touches est fait de sorte à ce que les branches des marteaux ne s'entrecroisent pas. Et comment ils ont fait ça ? En rendant anti-ergonomique le clavier pour ralentir la frappe et éviter les touches consécutives proches. Si le sujet vous intéresse, renseignez-vous sur les claviers ortho-linéaire et sur le bépo.

Le plus drôle dans tout ça, c'est qu'avec l'arrivée des appareils tactiles, on a fait quoi ? On a conservé ce design.

RIDICULE

Bref, la majorité des claviers tactiles sont basés sur le principe de ralentir la frappe des machines à écrire juste pour éviter aux pauvres petits utilisateurs de réapprendre à faire autrement. Et si on arrêtait les conneries ?

Bon j'exagère un peu quand même, il y a eu des nouveautés sur les claviers tactiles comme le fait de simplement glisser sur les lettres sans les taper… Rien de bien transcendant.

L'auto-complétion est également une nouveauté. Personnellement j'ai horreur de ça. J'écris très souvent comme un sagouin en mélangeant de l'anglais, du français, des jeux de mots foireux… bref, calquer ce que j'écris sur des mots du dico ça foire très vite. Et puis mon orthographe c'est un peu ma signature.

Je ne parlerai même pas de l'autocomplétion qui se base sur du cloud et du machine learning… intimité numérique toussa toussa.

Il existe quand même quelques claviers qui sortent de ces sentiers battus et je vais vous parler de mon chouchou depuis 6 ans.

Messagease

Bon allons droit au but : voilà à quoi il ressemble !

Tous les marquages activés ça fait un peu fouilli

C'est esthétiquement particulier je le conçois.

Il est développé par une petite boîte californienne pour Android initialement et maintenant aussi pour iTrucs. Il est donc composé de 9 touches principales auxquelles on en rajoute 5 pour le reste.

Comment ça marche ?

  • Les lettres en jaune sont en accès direct : vous appuyez dessus et elles appraissent.
  • Les caractères sur les côtés de chacune des 9 cases principales s'obtiennent en glissant le doigt depuis le centre de cette case en direction du dit caractère. ex : Pour faire un c on appuie sur o en glissant vers u et en relâchant le doigt c'est pris en compte.
  • La touche en forme de main c'est pour déplacer/redimensionner le clavier.
  • En dessous c'est la touche de fonction avec entre autre le copier/coller et le passage aux chiffres.
  • Ensuite vient la touche backspace.
  • Encore après c'est la touche Entrée.
  • Et l’Espace est située sur la plus grande touche tout en bas.

Donc voilà, avec le principe du glissement on peut obtenir jusqu'à 9 caractères différents par touche.

Vous pouvez aussi basculer sur le clavier pour les chiffres.

Il s'agit d'un classique clavier à 10 touches.

Plus habituel

Sur celui-là aussi vous avez le même système ce qui permet d'ajouter encore plein de nouveaux caractères dont beaucoup sont identiques à ceux présents sur les lettres.

En pratique ça vaut quoi ?

Alors je ne vous cache pas qu'il va y avoir une phase d'apprentissage avant d'être efficace avec. J'en ai eu pour une bonne semaine avant de m'y sentir bien à l'aise et au bout de trois semaines j'écrivais déjà bien plus vite avec ce nouveau clavier.

L'utilisation est bien plus agréable en utilisation basique. Mais il se révele vraiment excellent avec l'habitude et quelques réglages supplémentaires.

J'utilise le téléphone uniquement à une main, même lorsqu'il m'arrive d'écrire des textes assez longs : le fait de pouvoir placer le clavier à la taille et à l'endroit qu'on veut permet de le faire arriver pile où se trouve le pouce quand on tient le téléphone.

Il m'arrive de discuter sur irc sans que les gens ne se rendent compte que je suis sur le téléphone tellement la vitesse de frappe est élevée (moins élevée que sur l'ordi tout de même mais franchement pas si loin).

Le clavier possède de très nombreux réglages. Et avoir tous pleins de réglages, j'adore ! On peut changer sa couleur, sa forme, le placement des lettres (par défaut il propose en accès direct les 9 lettres les plus utilisées en anglais mais propose des presets pour le français ou bien on peut le faire soi-même).

On peut régler ce qui est affiché, en le limitant, par exemple, aux caractères les plus courants.

Uniquement les lettres sont affichées, pas les caractères spéciaux

C'est plus aéré comme ça, pour débuter c'est plus recommandé.

Mais avec plus de pratique vous pouvez pousser le minimalisme en virant tout le marquage (c'est ce que je fais).

Le clavier tel que je l'utilise tous les jours, sans marquage.

Là, ça me plaît bien mieux.

Il n'y a que du bon ?

Et non. Le clavier n'est pas libre ni même opensource.

C'est le seul reproche que je peux lui faire.

Par contre il sauve les meubles : il ne demande pas de permission autre que clavier, il n'a pas de trackers selon Exodus Privacy, on peut le télécharger sur leur site sans passer par le store. L'entreprise derrière (exideas) annonce qu'elle ne revend pas de données perso toussa, on ne peut que tenter de les croire.

Des ptites astuces au passage ?

Allez vite fait :

  • Pour les Majuscules ce sont les deux flêches (vers le haut et le bas) sur la touche R, avec un Caps Lock si vous montez deux fois.
  • Vous pouvez le configurer pour ne plus avoir besoin d'aller sur le layout des chiffres : si vous faites un cercle dans le sens horaire vous aurez le chiffre correspondant à la case où vous le faite.
  • Pour taper une majuscule vous pouvez faire un cercle anti-horaire sur les caractères principaux ou bien un aller-retour sur les caractères des côtés.
  • Vous pouvez faire Ctrl avec la touche tout en haut à gauche.
  • Vous pouvez supprimer un mot complet en faisant un aller/retour sur backspace.
  • Vous pouvez faire Deleteen glissant vers la droite depuis backspace
  • Vous pouvez le configurer pour que deux Espace ajoutent un point (pratique en fin de phrase).
  • Vous pouvez faire un Sélectionner tout en faisant un cercle horaire sur la touche de fonction.
  • Vous avez des flêches cachées : gauche/droite se font en glissant depuis la touche Espace, haut/bas se font en glissant vers le haut et le bas respectivement sur I et S.
  • Pour faire apparaitre/disparaitre le marquage il faut glisser vers le haut (ou aller-retour) depuis Espace
  • Testez de réduire un peu la taille du clavier, c'est plus facile à utiliser quand il est petit.
  • Il existe plein de raccourcis planqués, pensez à aller voir les réglages et l'aide.

Voilà voilà.

une vue globale d'android avec le clavier pour avoir une idée de la taille

Voilà le clavier en action.

PS : Voici une petite démo vidéo en action :

Si vous voulez approfondir un peu le sujet, j'ai écrit une suite tournant autour de 7 vidéos pour découvrir un peu plus en profondeur ce clavier.

Mon TOC des processus

Je dois vous avouer que j'ai quelques obsessions. L'une d'elle est le nombre de processus qui tournent sur mes machines.

Franchement c'est con et je l'écris avec une touche d'humour mais ça me travaille réellement. Du coup quand je lance htop j'ai ça je suis content :

capture d'écran de htop montrant seulement 29 processus

Seuls 30 processus qui tournent et 5 en root

Mais dès lors que je tombe sur un Debian/RedHat … je pleure et j'ai peur :

le Htop d'ubuntu est interminable avec 247 tâches tournant.

Quand je vois ça j'étouffe. Merci Simon ;-)

Un programme contient forcément des bugs. Plus un programme est gros plus il en contient. Le code parfait n'existe pas.

Du coup plus il y a de programmes, plus il y a de bugs. Et plus un programme est complexe, plus il contient de failles de sécurité. Et ce, même si le logiciel est ancien et bien maintenu et très populaire… Il y aura toujours des failles et si ce n'est pas dans le logiciel en lui-même, ça sera son environnement (voir le cpu qui l'éxécute).

Et puis ça bouffe bien plus de ressources… Même si nos machines d'aujourd'hui peuvent surement encaisser, ça m'attriste toujours autant que ce qu'on faisait il y a dix ans sur l'ordi… bha on le fait pas spécialement plus vite aujourd'hui.

Bref, les machines que j'administre doivent être allégées. Au final je me retrouve dans un environnement où je sais ce que fait chacun des processus qui tourne et lorsqu'il se passe un truc louche je trouve rapidement le coupable.

Alpine s'inscrit parfaitement dans ce TOC car par défaut il n'y a quasiment pas de processus qui tournent et c'est un soulagement. Gentoo est également la candidate parfaite par sa modularité exemplaire.

Un autre truc que je recherche : diminuer le nombre de programme que fait tourner root. Root est tout puissant, donc moins il est sollicité mieux on se porte.

Petit tour du proprio

  • init : c'est le processus lancé par le kernel au boot. Dans mon cas c'est OpenRC. C'est lui qui va démarrer tout le reste et se charger de dégager les processus morts.
  • alacritty : ce sont tous les émulateurs de terminaux que je lance. Il peut y en avoir un comme cinquante. Ça dépend de ce que je fais.
  • zsh : Ce sont les shells lancés dans les terminaux.
  • XWayland : c'est le serveur X11 de Wayland pour faire tourner les applications non natives (mon navigateur entre autre).
  • qutebrowser : Il apparait en tant que python 3.6 et de multiples QtWebEngineProcess (un par fenêtre). Là aussi c'est légitime et je ne peux pas m'en passer.
  • ssh : Le client SSH pour se connecter à mon client IRC.
  • qingy : C'est mon gestionnaire de TTY. Je le préferre à getty car il permet deux trois trucs en plus en étant tout aussi léger. Il permet par exemple de sélectionner parmis plusieurs sessions différentes. Il vérouille le tty lorsque vous en partez (en demandant un mot de passe au retour). Bref je n'en lance que 3 car j'ai pas besoin de plus de sessions simultannées.
  • sway : c'est mon compositeur Wayland favoris. C'est lui qui gère les fenêtres et le rendu.
  • mpd : mon lecteur de musique. Pas d'interface graphique et se pilote essentiellement avec des raccourcis via sway. Très souvent je fais tourner tsmpcd en plus pour gérer la playlist.
  • udevd : le gestionnaire de périphérique. Lui se charge de gérer les appareils dynamiquement (ajout d'un appareil usb par exemple). On pourrait un peu s'en passer (après le boot) mais c'est quand même moins pratique.
  • slurp et grim : sont les logiciels pour prendre la capture d'écran. Slurp permet uniquement de sélectionner une zone de l'écran et grim lui prend une capture d'écran de cette sélection. Bref ils tournent sur le screenshot parceque… je prends le screenshot mais ils ne tournent pas en temps normal ;-)

C'est pareil pour les serveurs

Quand j'administre un serveur, j'enlève tout ce dont je n'ai pas besoin. Chaque service/processus en moins est une source de bugs et de failles en moins. La machine devient plus simple à administrer.

C'est d'ailleurs un peu pour la même raison que je n'apprécie pas systemd (ouai je sais c'est hasbeen de continuer à ressasser ça). Mais avoir des processus qui font des trucs un peu dans notre dos sans trop savoir pourquoi j'aime pas. Les gains apportés par systemd ne justifient pas à mes yeux tout le merdier que ça entraîne.

Avec la mouvance actuelle des containers, j'apprécie la philosophie, que Docker a pas mal popularisé, d’un container == un service. Du coup Alpine est une très bonne solution avec son userspace réduit au strict minimum

À cela si on rajoute les programmes compilés statiquement (ce qui est par défaut avec Go et Rust) on se retrouve avec des containers microscopiques et fonctionnels.

Gonib et ce qu'il y a autour

J'ai mis en service GoNib hier soir et il tourne désormais.

L'an dernier je vous parlais de Nib mon Nano Irc Bot. C'est mon assistant personnel qui même s'il ne parle pas, au moins ne m'espionne pas. Il me permet de faire des trucs plus ou moins utiles via IRC.

Ce script était au final tout un tas de logiciels mis bout-à-bout via du script shell. Ça marchait super bien mais je voulais un truc un peu plus propre et plus léger. J'ai donc entrepris de le refaire en Go durant ses dernières semaines.

Et BAM ! GoNib ! Bon pour l'instant il fait pas tout ce que faisait l'ancien mais suffisamment pour le remplacer dès aujourd'hui. Mais au delà du code que je vous ai déjà pas mal présenté dans les derniers articles, je vais vous montrer comment je l'ai mis en place.

Compilation du code

Je le dev sur ma machine qui est un ordi classique sous l'architecture amd64, mais je compte le faire tourner dans un container sur mon routeur qui lui n'est pas en amd64 mais en arm7. Pour crosscompiler du Go, rien de plus simple : GOARM=7 GOARCH=arm go build -ldflags=”-s -w” gonib.go.

Voilà, on spécifie, l'architecture et c'est bon. Pour le fun je rajoute les options -s et -w qui permet de générer un binaire plus petit. Ça sert pas à grand chose mais quand même, j'aime bien.

Création du container

Bon, je suis toujours dans ma période Alpine Linux, donc je créer un container en version 3.8. Ensuite une fois dedans j'y installe tmux.

Il faut créer un service pour démarrer automatiquement au boot ce qu'il faut avec par exemple /etc/init.d/tmux :

#!/sbin/openrc-run

name="Tmux Init"
command="/usr/bin/$SVCNAME"
command_user="nib"
pidfile="/var/run/$SVCNAME.pid"
command_args="new-session -d -n gonib '/home/nib/gonib -server=irc.geeknode.org'"

depend() {
        need localmount
}

On place ce service au boot avec rc-update add tmux et tant qu'à faire on peut virer tous les autres services du boot à l'exception de crond qui servira pour lancer certaines actions.

Il faut ensuite créer l'utilisateur nib avec adduser nib.

On place le binaire gonib dans /home/nib/gonib et on le rend éxécutable et c'est bon.

Lancer le container au boot

Sur OpenWRT pour lancer les containers au boot, il faut les indiquer dans /etc/config/lxc-auto tout bêtement.

Tester

Bon bha yapuka !

lxc-stop -n gonib

lxc-start -n gonib

Et là pouf dans la seconde qui suit votre gentil ptit nib va apparaitre sur votre salon favoris.

Conclusion

Ça fonctionne pour le moment \o/

Bon j'ai toujours l'autre que je peux redémarrer au cas où mais j'ai confiance.

L'ancien container à base de Debian et tout le toutim pèse 384Mo. Le nouveau container à base d'Alpine fait 21.1Mo. Ça bouffe 10Mo de RAM pour tout le container.

Moins de pièces mouvantes, moins d'espace disque, moins de ram. Une belle optimisation !

Il ne reste plus que l'épreuve du temps à surmonter.

Meta : récap 2018

Bon bha voilà le moment de faire un petit récap de l'année concernant le blog.

Ça a été une super année !

Je me suis éclaté à rédiger pas mal d'articles assez différents.

  • Des trucs moins techniques (même si c'est rare, je vais ptet en faire un peu plus)
  • la série de traduction des articles concernant le Librem 5
  • De nouvelles catégories avec des couleurs pour les distinguer
  • De légères adaptations de l'esthétique du site
  • Une série d'articles avortés radicalement différents mais ptet trop différents. Mais leur écriture m'a été bénéfique quand même.
  • Quelques articles sur le Fédiverse qui ont été pas mal retootés.
  • Pas mal d'upvote sur le Journal du Hacker.
  • J'adore les Shares où je liste des trucs que j'ai envie de partager depuis des années.

Bref l'année a été excellente pour mon blog. Le pinnacle c'est quand même l'ouverture des commentaires cet été.

J'adore lire vos commentaires et je tente d'y répondre le plus possible :-) Merci à vous pour les corrections, les ajouts d'infos, les réflexions! Merci à vous d'aider à faire vivre un web différent, loin des machines à fric et leurs travers. Grâce à vous j'ai l'impression qu'écrire sur ce blog n'est pas juste un plaisir solitaire mais à une utilité également pour d'autres ;-)

Voilà, j'espère pour vous que cette année vous aura été aussi bonne qu'à moi !

J'en profite un peu de ce mini récap pour vous partager quelques stats sur les visites du blog :

 Date   Total Requests   Unique Visitors   Bandwidth  Posts
12/17 67798 10425 2.74G 5
01/18 102020 18021 5.53G 7
02/18 131813 19894 7.55G 9
03/18 175153 24721 12.39G 16
04/18 266904 21869 6.82G 10
05/18 213906 25774 10.83G 6
06/18 238001 22720 6.48G 8
07/18 358872 30263 9.08G 14
08/18 369634 28150 10.27G 14
09/18 447794 33076 6.33G 8
10/18 410086 35789 25.26G 11
11/18 464233 44698 25.98G 10
12/18 417390 38664 7.73G 11

Voilà tout ce que j'avais à dire.

/me retourne mettre une pièce dans le Jukebox pour la nouvelle année !

Une semaine pour coder par soi même : Jour 6 et 7

Bon aujourd'hui je groupe le week-end dans un seul post. Hier ? J'ai … rien fait.

Voilà. Aujourd'hui ? J'ai … débloqué le tout petit truc qui me coinçait.

Bref je pense avoir surpassé tous les ptits trucs qui me faisaient chier et maintenant j'ai un code que je comprends de partout et qui marche comme je l'intuitais. Je suis super content.

En fait, le truc qui m'a complètement paralysé dans ma fonction connection.Interact() était tout bête : j'arrivais à récupérer le texte et donc à l'afficher, mais étrangement je ne parvenais pas à réagir à ce texte reçu. Du coup lorsque je recevais un PING, je le voyais, je créais le PONG qui va bien, mais il partait pas. Et j'ai buté sur ça depuis vendredi soir.

Et encore une fois cette nuit, l’illumination ! Dans ma fonction connection.Interact(), lorsque je recevais le PING, j'étais dans le case reader en train d'éxecuter la commande parseIrc, mais du coup, je n'étais plus en mesure d'écouter le chan entrant. Bon c'est dur à expliquer mais, le truc pour débloquer ça, a été tout simplement de foutre le parseIrc dans une routine en parallèle, comme ça, pendant que ça fait son boulot, la boucle se termine et elle est de nouveau disponible en écoute.

Voilà Samedi je n'y ai pas touché à cause de ça (bon j'ai été assez pris à côté faut dire, mais du coup je n'ai pas été très motivé). Une fois ce verrou enlevé j'ai eu envie de me refaire chier à faire des trucs tordus.

J'ai donc commencé un système antiflood, pour ralentir le texte sortant afin de ne pas se faire jarter comme un pleutre lorsqu'on balance trop de texte d'un coup. J'utilise donc une variable que j'incrémente à chaque fois que j'envoie du texte et qui se décrémente petit à petit chaque seconde. Bon j'ai pas encore fait tourner le truc comme il faut mais c'est une première étape.

Avant de rajouter des commandes à proprement parlé au bot, j'ai envie de gérer le texte sortant comme une FIFO et donc gérer ça avec un fichier comme j'ai fait dans le bot en bash. Je vais donc m'attarder à regarder un peu la doc de Go pour voir comment gérer les fichiers mais ça ne devrait pas être bien compliqué.

Bon et même si à la base je ne voulais que dédier une semaine à ce projet, il est suffisamment avancé pour que je le finisse maintenant. Vais pouvoir foutre au rencard mon Frankenscript et remplacer par ce ptit programme.

Le code

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
package main

import (
	"bufio"
	"fmt"
	"io"
	"net"
	"os"
	"strings"
	"time"
)

var server string = "localhost"
var port string = "6667"
var channel string = "#lms"
var nick string = "bab"
var onchan bool
var rouge string = "\033[1;31m"
var vert string = "\033[1;32m"
var jaune string = "\033[1;33m"
var cyan string = "\033[1;36m"
var normal string = "\033[0m"
var me string
var debug bool = false

type Ircconnection struct {
	Server   string
	Port     string
	Nick     string
	Channel  string
	Bidule   bool
	Conn     net.Conn
	Receiver chan string
	Emitter  chan string
	RawEmitter	chan string
	counter	 int
}

func (connection *Ircconnection) Connect() {
	var err error
	connection.Conn, err = net.Dial("tcp", server+":"+port)
//	defer connection.Conn.Close()
	fmt.Println(rouge + "Connection to " + server + ":" + port + normal)
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
	connection.Receiver = make(chan string)
	connection.Emitter = make(chan string)
	connection.RawEmitter = make(chan string)
	fmt.Println(rouge + ">> NICK " + nick + normal)
	io.WriteString(connection.Conn, "NICK "+nick+"\n")
	fmt.Println(rouge + ">> USER " + nick + " 0.0.0.0 " + nick + " :" + nick + " bot" + normal)
	io.WriteString(connection.Conn, "USER "+nick+" 0.0.0.0 "+nick+" :"+nick+" bot\n")
	go io.Copy(connection.Conn, os.Stdin)
	go connection.handleIncoming()
//	go connection.handleCounter()
	go connection.Join(channel)
	go connection.Interact()
}
func (connection *Ircconnection) Disconnect() {
	connection.Conn.Close()
}
func (connection Ircconnection) Join(channel string) {
	time.Sleep(1000 * time.Millisecond)
	fmt.Println(rouge + ">> JOIN " + channel + normal)
	io.WriteString(connection.Conn, "JOIN "+channel+"\n")
}
func (connection Ircconnection) SendMsg(msg string) {
	fmt.Println(rouge + ">> PRIVMSG " + connection.Channel + " :" + msg + normal)
	//io.WriteString(connection.Conn,"PRIVMSG "+connection.Channel+" :"+msg+"\n")
	connection.Emitter <- msg
}
func NewIrcconnection() Ircconnection {
	return Ircconnection{Server: server, Port: port, Nick: nick, Channel: channel}
}
func (connection *Ircconnection) SetNick(newnick string) {
	connection.Nick = newnick
	fmt.Println(rouge + "Changement de pseudo pour : " + vert + newnick + normal)
	io.WriteString(connection.Conn, "NICK :"+newnick+"\n")
}
func (connection *Ircconnection) handleIncoming() {
	scanner := bufio.NewScanner(connection.Conn)
	go func() {
		for scanner.Scan() {
			ln := scanner.Text()
			fmt.Println(jaune + "<< " + ln + normal)
			connection.Receiver <- ln
		}
	}()
}

func (connection *Ircconnection) Interact() {
	for {
		select {
			case writer := <-connection.Emitter:
    				connection.counter+= 200
    				if debug {
					fmt.Println(cyan + writer +" "+jaune+"[",connection.counter,"]"+ normal)
    				}
				go io.WriteString(connection.Conn,"PRIVMSG "+channel+" :"+writer+"\n")
			case writer := <-connection.RawEmitter:
				fmt.Println(cyan + writer + normal)
				go io.WriteString(connection.Conn,writer+"\n")
			case reader := <-connection.Receiver:
				//fmt.Println(cyan+reader+normal)
				go parseIrc(connection, reader)

		}
	}
}

// Futur système anti-flood. tout pourri pour le moment.
func (connection *Ircconnection) handleCounter(){
	for {
    		fmt.Println("On boucle : ",connection.counter)
		time.Sleep(time.Duration(connection.counter+500) * time.Millisecond)
		if (connection.counter > 0) {
			connection.counter -= 10
		} else {
    			
			connection.counter = 0
		}
	}
}

/////////////////// MAIN //////////////////////////////////////
func main() {
	if len(os.Args) > 1 {
		server = os.Args[1]
	}

	connection := NewIrcconnection()
	connection.Connect()

	in, err := net.Listen("tcp", ":4321")
	defer in.Close()
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	for {
		inconn, err := in.Accept()
		if err != nil {
			fmt.Println(err)
			continue
		}
		go handleIncoming(inconn, connection)
	}
	
}

// ------------------
// Côté IRC
// ------------------

func parseIrc(connection *Ircconnection, msg string) {
	var elements []string = strings.Fields(msg)
	if debug {
		for i, element := range elements {
			fmt.Print(cyan+"[", i, "|"+normal+element+cyan+"] "+normal)
		}
	}
	if len(elements) < 2 {
    		fmt.Println("Syntax IRC ERROR !!!!")
		return
	}

	if elements[0] == "PING" {
		connection.RawEmitter <- "PONG :"+strings.TrimPrefix(msg, "PING :")
	}

	switch elements[1] {
	case "421":
		fmt.Println("!! Commande non reconnue par le serveur !!")
	case "433":
		fmt.Println("le pseudo déconne")
		nick = nick + "_"
		io.WriteString(connection.Conn, "NICK "+nick+"\n")
	case "JOIN":
		if ":"+nick == stringCut(elements[0], "!") {
			me = strings.TrimPrefix(elements[0], ":")
			fmt.Println(me + " a rejoin le salon " + strings.Trim(elements[2], ":"))
			onchan = true
			connection.Emitter<- "Salut "+channel+" !"
		}
	case "PART":
		fmt.Println("On est parti de " + strings.Trim(elements[2], ":"))
		onchan = false
	case "KICK":
		if elements[3] == nick {
			fmt.Println("Ptain on s'est fait kicker de " + elements[2] + " par " + elements[4] + " !")
			io.WriteString(connection.Conn, "JOIN "+channel+"\n")
		}
	case ":Closing":
    		fmt.Println("\n\n\nHa et merde on est déconnecté !\n\n\n")
		// Déconnecté
		time.Sleep(10000 * time.Millisecond)
		connection.Connect()
	}
	if len(elements) > 3 {
		switch elements[3] {
    			case ":cycle" :
				connection.Disconnect()
				connection.Connect()
			case ":heure" :
    				connection.Emitter<-"Paies-toi une montre vaut rien!"+msg
		}
	}
}

// ------------------
// Serveur en écoute
// ------------------

func incoming(connection Ircconnection) {
	in, err := net.Listen("tcp", ":4321")
	defer in.Close()
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	for {
		inconn, err := in.Accept()
		if err != nil {
			fmt.Println(err)
			continue
		}
		go handleIncoming(inconn, connection)
	}
}

func handleIncoming(in net.Conn, connection Ircconnection) {
	fmt.Println(vert+"Incoming from ", in.RemoteAddr(), normal)
	inbuf := bufio.NewReader(in)
	for {
		inmsg, err := inbuf.ReadString('\n')
		if err != nil || !onchan || inmsg == "\n" {
			break
		}
		fmt.Print(vert + "<<]] " + inmsg + normal)
		connection.SendMsg(inmsg)
		time.Sleep(500 * time.Millisecond)
	}
}

// ------------
//  Génériques
// ------------

func stringCut(incoming string, pattern string) string {
	var results = strings.Split(incoming, pattern)
	if len(results) < 1 {
		return incoming
	} else {
		return results[0]
	}
}

Bon bha voilà que s'achève cette semaine de blogposts chiants. Je vous referai ptet un article une fois terminé mais c'est tout.

Une semaine pour coder par soi même : Jour 5

J'ai cogité toute la nuit à cette histoire. Je pense que mon subconscient est allé puiser au fin fond de souvenirs anciens et il m'a resorti deux trucs : les pointeurs, les getters/setters.

Et du coup au réveil : Bon sang mais c'est bien sûr !

Allez hop ni une ni deux, j'enfourche mon fidèle kakoune et je crée une méthode bidon changeant juste une variable de ma Ircconnection struct, je parsème de fmt.Println et comme prévu, avant et après la dite méthode la modif n'est pas prise en compte. J'appelle ce coup-ci le pointeur dans la méthode : bingo daze !

Bref j'ai à vue de nez la solution à tous mes problèmes, vais pouvoir me démerder.

Après avoir bidouillé deux heures je me rends vite compte qu'il me faut un moyen de “parler” aux go routines. Et visiblement ce moyen ce sont les channels.

Ça complexifie pas mal le merdier mais d'un autre côté pour avoir des trucs asynchrones ça a l'air d'être LA façon de faire. Du coup pour tester je me suis fait un ptit serveur netcat basique avec ce système. Ça fonctionne mais ça commence à être un poil complexe pour moi, je n'ai pas encore le niveau requis. Adapter mon client IRC avec ça représente pas mal de boulot.

Toujours est-il que ce serveur netcat fait maison pourra me servir un peu pendant les tests. Et du coup je m'en inspire pour bidouiller petite à petit mon client IRC. J'ai réussi à adapter suffisamment pour arriver plus ou moins au même niveau de fonctionnement donc la théorie marche. J'ai pas encore tout adapté à ce modèle mais après une bonne nuit de réflexion les pièces du puzzle devraient s'emboiter plus facilement. Au bout de ces quelques jours seulement j'ai le sentiment d'avoir bien progressé et lire des bouts de codes qui me paraissaient abscons m'est déjà beaucoup plus aisé.

Le code

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"io"
	"strings"
	"time"
    )

var server string = "localhost"
var port string = "6667"
var channel string = "#lms"
var nick string = "bab"
var commander string = ":Lord!Lord@geeknode.fuckyeah"
var onchan bool
var rouge string = "\033[1;31m"
var vert string = "\033[1;32m"
var jaune string = "\033[1;33m"
var cyan string = "\033[1;36m"
var normal string = "\033[0m"
var me string
var debug bool

type Ircconnection struct {
	Server		string
	Port		string
	Nick		string
	Channel		string
	Bidule		bool
	Conn		net.Conn
	Receiver	chan string
	Emitter		chan string
}

func (connection *Ircconnection) Connect(){
	var err error
	connection.Conn,err = net.Dial("tcp",server+":"+port)
	fmt.Println(rouge+"Connection to "+server+":"+port+normal)
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
	connection.Receiver = make(chan string)
	connection.Emitter  = make(chan string)
	fmt.Println(rouge+">> NICK "+nick+normal)
	io.WriteString(connection.Conn,"NICK "+nick+"\n")
	fmt.Println(rouge+">> USER "+nick+" 0.0.0.0 "+nick+" :"+nick+" bot"+normal)
	io.WriteString(connection.Conn,"USER "+nick+" 0.0.0.0 "+nick+" :"+nick+" bot\n")
	go io.Copy(connection.Conn, os.Stdin)
	go connection.handleIncoming()
}
func (connection *Ircconnection) Disconnect(){
	connection.Conn.Close()
}
func (connection Ircconnection) Join(channel string){
	time.Sleep(1000 * time.Millisecond)
	fmt.Println(rouge+">> JOIN "+channel+normal)
	io.WriteString(connection.Conn,"JOIN "+channel+"\n")
}
func (connection Ircconnection) SendMsg(msg string){
	fmt.Println(rouge+">> PRIVMSG "+connection.Channel+" :"+msg+normal)
	io.WriteString(connection.Conn,"PRIVMSG "+connection.Channel+" :"+msg+"\n")
}
func NewIrcconnection() Ircconnection{
	return Ircconnection{Server:server,Port:port,Nick:nick,Channel:channel}
}
func (connection *Ircconnection) SetNick(newnick string){
	connection.Nick = newnick
	fmt.Println(rouge+"Changement de pseudo pour : "+vert+newnick+normal)
	io.WriteString(connection.Conn,"NICK :"+newnick+"\n")
}
func (connection *Ircconnection) handleIncoming(){
	fmt.Println("Entrée dans handleIncoming()")
	scanner := bufio.NewScanner(connection.Conn)
	go func(){
		for scanner.Scan(){
			ln := scanner.Text()
			fmt.Println(jaune+"<< "+ln+normal)
			connection.Receiver <- ln
		}
	}()
	fmt.Println("Sortie de handleIncoming()")
}

func (connection *Ircconnection) Interact(){
	fmt.Println("Entrée dans Parse()")
	for {
		select {
			case reader := <- connection.Receiver :
//    				fmt.Println(cyan+reader+normal)
				parseIrc(*connection,reader)
			case writer := <- connection.Emitter :
    				fmt.Println(cyan+writer+normal)

		}
	}
	fmt.Println("Sortie de Parse()")
}

/////////////////// MAIN //////////////////////////////////////
func main() {
	if len(os.Args) > 1 {
		server = os.Args[1]
	}

	connection := NewIrcconnection()
	go incoming(connection)
	connection.Connect()
	go connection.Join(channel)
	connection.Interact()
	//time.Sleep(5000 * time.Millisecond)


}

// ------------------
// Côté IRC
// ------------------

func parseIrc(connection Ircconnection, msg string){
	var elements []string = strings.Fields(msg)
	if debug {
		for i, element := range elements {
			fmt.Print(cyan+"[",i,"|"+normal+element+cyan+"] "+normal )
		}
	}
	if len(elements)<2{
		return 
	}
	fmt.Println("")
	

	if elements[0] == "PING" {
//		connection.Emitter <- "Envoyer un PONG serait judicieux !"
		fmt.Println(rouge+">> PONG "+strings.TrimPrefix(msg, "PING :")+normal)
		io.WriteString(connection.Conn,"PONG "+strings.TrimPrefix(msg, "PING :")+"\n")
	}

	switch elements[1] {
        	case "421" :
        		fmt.Println("!! Commande non reconnue par le serveur !!")
        	case "433" :
        		nick = nick+"_"
        		io.WriteString(connection.Conn,"NICK "+nick+"\n")
        	case "JOIN" :
        		if ":"+nick == stringCut(elements[0],"!"){
				me = strings.TrimPrefix(elements[0],":")
        			fmt.Println(me+" a rejoin le salon "+strings.Trim(elements[2],":"))
        			onchan = true
        			connection.SendMsg("c'est moi que vla!")
        		}
        	case "PART" :
        		fmt.Println("On est parti de "+strings.Trim(elements[2],":"))
        		onchan = false
        	case "KICK" :
        		if elements[3] == nick {
        			fmt.Println("Ptain on s'est fait kicker de "+elements[2]+" par "+elements[4]+" !")
        			io.WriteString(connection.Conn,"JOIN "+channel+"\n")
        		}
        	case ":Closing" :
        		// Déconnecté
        		time.Sleep (5000 * time.Millisecond)
        		connection.Connect()
	}
	if len(elements) > 3 {
		if elements[3] == ":cycle" {
        		connection.Disconnect()
        		connection.Connect()
        	}
	}
}

// ------------------
// Serveur en écoute
// ------------------

func incoming(connection Ircconnection){
	in, err :=net.Listen("tcp",":4321")
	defer in.Close()
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	for {
		inconn, err :=in.Accept()
		if err != nil {
			fmt.Println(err)
			continue
		}
		go handleIncoming(inconn,connection)
	}
}

func handleIncoming(in net.Conn,connection Ircconnection){
	fmt.Println(vert+"Incoming from ",in.RemoteAddr(),normal)
	inbuf := bufio.NewReader(in)
	for {
    		inmsg, err := inbuf.ReadString('\n')
    		if err != nil || !onchan || inmsg == "\n" {
			break
    		}
    		fmt.Print(vert+"<<]] "+inmsg+normal)
    		connection.SendMsg(inmsg)
		time.Sleep(500 * time.Millisecond)
	}
}

// ------------
//  Génériques
// ------------

func stringCut(incoming string, pattern string) string{
	var results = strings.Split(incoming, pattern)
	if len(results) < 1 {
		return incoming
	} else {
		return results[0]
	}
}

Bon le channel Receiver fonctionne bien contrairement au Emitter qui ne se laisse pas dompter encore mais là je sature pour aujourd'hui ;-)

Le code a pas mal grossi aujourd'hui et il faudrait que j'en profite pour virer les morceaux obsolètes avant que ça ne s'accumule trop et que ça se disperse dans ma mémoire.

Une semaine pour coder par soi même : Jour 4

Allez je vais être franc, j'y ai pas trop trop touché aujourd'hui, j'étais occupé par ailleurs. J'ai presque pas lurker sur le Fédiverse et à peine sur les IRC.

J'ai quand même un peu discuté avec Cacatoès qui m'a soufflé que ça serait très probablement un peu mieux en utilisant de la programmation orientée objet. Et après discussion et lecture à droite à gauche, ça pourrait être pas mal plus simple.

Ça m'a également fait remonter quelques vieux souvenirs de Java. Je fais quelques tests sur une version copiée et effectivement ça a l'air jouable.

Du coup, allez hop, je reprends le code d'hier et je commence à y créer une structure pour la gestion de l'IRC. Je commence à faire une première méthode, ça marche, une seconde ça marche. Et là attention, je tente le tout pour le tout et BAM ça marche plus. Le scope des variables de mon objet me pose soucis.

J'ai l'impression que si je modifie une variable de ma structure dans l'une des méthodes (typiquement le net.Conn) dans une autre méthode ça n'a pas été modifié :-( J'ai naïvement pensé que les méthodes d'un struct pouvaient modifier les variables du struct globalement mais visiblement non. Du coup je suis pas spécialement plus avancé. Je voulais créer une méthode qui se connecte au lieu de le mettre dans le New mais du coup je ne peux pas…

J'imagine qu'il y a probablement une subtilité qui m'échappe.

Encore une fois je précise que je débute à 100% et que je compte pas en faire mon métier ni rien, c'est plus pour (re)découvrir et tenter de faire un ptit projet fonctionnel.

Bon et pour avoir l'impression d'avoir un truc un peu mieux qu'hier, j'ai mis le switch.

Voilà rien de transcendant aujourd'hui :-/

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"io"
	"strings"
	"time"
    )

var server string = "localhost"
var port string = "6667"
var channel string = "#lms"
var nick string = "bab"
var commander string = ":Lord!Lord@geeknode.fuckyeah"
var onchan bool
var rouge string = "\033[1;31m"
var vert string = "\033[1;32m"
var jaune string = "\033[1;33m"
var cyan string = "\033[1;36m"
var normal string = "\033[0m"
var me string
var ircconn net.Conn
var debug bool


func main() {

	if len(os.Args) > 1 {
		server = os.Args[1]
	}
	ircconn = initIrc(server, port, nick, channel)

	go incoming()
	ircconnbuf := bufio.NewReader(ircconn)
	go io.Copy(ircconn, os.Stdin)

	for {
		msg, err := ircconnbuf.ReadString('\n')
		if err != nil {
    			fmt.Println(err)
			break
		}
		fmt.Print(jaune+"<< "+msg+normal)
		parseIrc(msg)
	}
	
	defer ircconn.Close()
}

// ------------------
// Côté IRC
// ------------------

func initIrc(server string, port string, nick string, channel string) net.Conn{
	conn, err := net.Dial("tcp",server+":"+port)
	fmt.Println(rouge+server+":"+port+normal)
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
	fmt.Println(rouge+">> NICK "+nick+normal)
	io.WriteString(conn,"NICK "+nick+"\n")
	fmt.Println(rouge+">> USER "+nick+" 0.0.0.0 "+nick+" :"+nick+" bot"+normal)
	io.WriteString(conn,"USER "+nick+" 0.0.0.0 "+nick+" :"+nick+" bot\n")
	go joinChan(conn,channel)
	return conn
}

func joinChan(conn net.Conn,channel string){
	time.Sleep(1000 * time.Millisecond)
	fmt.Println(rouge+">> JOIN "+channel+normal)
	io.WriteString(conn,"JOIN "+channel+"\n")
}

func parseIrc(msg string){
	var elements []string = strings.Fields(msg)
	for i, element := range elements {
		fmt.Print(cyan+"[",i,"|"+normal+element+cyan+"] "+normal )
	}
	fmt.Println("")

		if elements[0] == "PING" {
			fmt.Print(rouge+">> PONG "+strings.TrimPrefix(msg, "PING :")+normal)
			io.WriteString(ircconn,"PONG "+strings.TrimPrefix(msg, "PING :")+"\n")
		}

		switch elements[1] {
        		case "421" :
        			fmt.Println("!! Commande non reconnue par le serveur !!")
        		case "433" :
        			nick = nick+"_"
        			io.WriteString(ircconn,