Tourmentine

To content | To menu | To search


Tuesday 6 December 2016

C'est en forgeant qu'on fait des trucs (2)

Comme j’aime bien faire cinquante mille trucs en même temps, j’ai profité du bordel ambiant pour remplacer Coding Team, le soft qui faisait - pas très bien, il faut le dire - tourner la forge, par Gogs.

Ça reste une appli non-php à lancer et gérer en plus, c’est encore du Google-qui-n’est-pas-le-diable-mais-un-peu-quand-même, mais au moins il n’a pas les dépendances d’un GitLab. Et puis c’est pas du ruby tout moisi :p

On gagne en intuitivité avec un passage à une interface du XXIème siècle, réactive qui plus est.

Les plus curieux remarqueront que le propriétaire des dépôts est "n" (c’est à dire , moi), contrairement à avant où il fallait préfixer par "/git/"...pas de panique, il y a une redirection, pas besoin de changer vos éventuelles remotes :)

Billets connexes

Muet comme une CARP

J’attendais le premier plantage de la nouvelle plateforme, ça n’aura pas été long: hier en fin d’après-midi le serveur a commencé à ramer comme une grosse merde, impossible de trouver pourquoi. Ça avait l’air mieux en fin de soirée, donc je me suis pas inquiété plus que ça. Erreur, en fait ça n’allait pas mieux.

J’ai fini par me rendre compte que le problème venait de l’IP failover (en contactant le serveur via son IP native ça allait tout de suite mieux), et plus précisément de CARP utilisé pour la redondance.

J’aurai peut être du me méfier quand il m’annonçait que chaque nœud était master...c’est ça d’être un tanche en réseau (tanche, carpe, humour)

Le plus étrange étant qu’il a tourné sans sourciller depuis la migration de vendredi dernier, et qu’il se décide, là maintenant, à ne plus fonctionner, même avec un reboot dans la gueule...bon.

Du coup ça marche mieux avec un simple alias, je sent que je vais devoir revenir à cette merde de heartbeat, faute de mieux.

Voila, je reste pas longtemps parce que c’est particulièrement une journée de merde aujourd’hui, j’ai pas que ça à réparer.

Sunday 4 December 2016

It's easy as 1-2-3

Bon ça faisait longtemps alors pour se détendre je vous propose une petite recette de cuisine. Aujourd’hui, le "One pot Chili", croisement improbable, bien que tout à fait mangeable, de deux recettes: une pour un riz Jambalaya (?!), et celle du Chili version Barack Obama himself (y-a-t-il une seule chose que cet homme ne réussit pas ?). C’est un plat qui se fait en gros en trois étapes, c’est facile comme 1-2-3 comme disait Michael quand il était jeune.

C’est parti.

 

INGRÉDIENTS

400g de tomates concassées 3 cuillères à soupe d’huile d’olive
250g de haricots rouges 1/2 verre de riz
140g de maïs en grains 1 verre d’eau
1 piment vert 1 cuillère à café de cumin
1 oignon jaune 1 pincée de sel
1 poivron vert 1 pincée de curcuma
3 gousses d’ail 1 (grosse) pincée d’origan
basilic frais (8-10 feuilles) 3 cuillères à soupe de vin rouge

 

PRÉPARATION

1. On part sur une base classique ail+oignon+huile d’olive, j’ai indiqué 3 cuillères à soupe mais faites-vous plaisir, on en met jamais trop. Écrasez puis hachez l’ail, coupez l’oignon en dés. Personnalisez ensuite cette base avec le poivron coupé également en dés accompagné du piment coupé en demi-rondelles (pourquoi pas...). Faites cuire à feu vif environ 5 minutes, en remuant de temps en temps. Les rondelles vont se faire tendres, ça va devenir chaud et humide. Mmmmh.

Première couche
A B C

 

2. Ajoutez les tomates, le cumin, le curcuma, l’origan, le sel, le riz, un verre d’eau et les trois cuillères de vin rouge. Buvez le reste. Mélangez bien, portez à ébullition puis réduisez à feu doux et laissez mijoter à couvert pendant 20 minutes en surveillant (pas comme moi, ça a collé, aïe)

 

step2.jpg
1 2 3

 

3. Ajoutez les haricots rouges, le maïs et les feuilles de basilic en morceaux qui parfumeront ainsi délicatement vos doigts, poursuivez la cuisson durant 10 minutes.

 

Troisième couche

Baby you and me, girl.

 

Servir avec du cheddar rappé et de la crème sure, enfin si vous en trouvez, en tout cas ici en France rien n’est moins sure (lol)

 

Friday 2 December 2016

I like to move it, move it (2)

Bon alors ça aura mis le temps mais c’est fait, les services de la Tourmentine ont été déplacés sur des nouveaux serveurs tous beaux tous chauds.

Plus de 6 (Six!) mois depuis la première location de ces serveurs, faites-moi penser à changer de métier (ou à avoir une vie moins merdique). Et encore, je vous parle pas des millions investis en R&D et l’armée de prestas embauchée pour finir dans les temps :)

Vous noterez au passage qu’en bon admin, j’ai bien choisi mon jour pour migrer.

PS: Pour l’instant Piwik & Owncloud sont encore en rideau, mais on verra demain.

PS2: Et spéciale dédicace à Reel 2 Real sans qui tout cela n’aurait pas été possible.

Billets connexes

Friday 21 October 2016

I like to move it, move it

Je suis en train de préparer la prochaine grosse migration de la Tourmentine: nouvel hébergeur (adios OVH, tu auras été cool), nouveaux serveurs (bonjour SSD et octo-core <3), et nouvelle version de FreeBSD, aka 11.0-RELEASE-p1 tout-neuf-de-la-semaine-dernière.

Et à propos de FreeBSD 11, la partie des Release Notes qui fait plaisir:

The GENERIC kernel configuration has been updated to include the IPSEC option by default. [r285142] (Sponsored by Netgate)

Ce qui signifie en clair que je n’ai plus besoin d’un noyau personnalisé pour faire communiquer mes deux serveurs en toute intimité, et surtout que je n’aurai plus à passer DEUX PUTAINS DE PLOMBES à recompiler le noyau à chaque faille de sécurité \o/

Pour en revenir à la migration, l’installation des serveurs étant quasi terminée (ça n’aura été ni rapide ni simple, et inversement, bref) elle devrait se produire dans les prochaines semaines. Avec un peu de chance, le prochain post sera servi de là-bas :-)

Billets connexes

Wednesday 21 September 2016

Kiss my NAS (2)

Cette été la chaleur a eu raison de mon NAS, ça a été l’occasion de passer à ça:

599257.jpg
 

Outre l’ajout de tiroirs qui permettent de faire comme les vrais et de changer les disques à chaud sans éteindre la bête, c’est tout bénef: vrai processeur intel (adieu poubelle ARM toute moisie), de la RAM à revendre (j’ai d’ailleurs celle d’origine de 1 Go, elle n’aura pas été facile à extraire et remplacer), ainsi qu’une vraie plateforme de virtualisation et conteneurs (j’ai pu avantageusement remplacer mon chroot debian de bricolo par un conteneur LXC tout propre).

Bref même si il a fallu y passer du temps et que tout n’est pas parfait (j’allais parler d’IPv6 mais ça va encore m’énerver, je vais donc m’abstenir), je ne regrette absolument pas cet achat. Si vous avez 200€ à mettre (disques non compris...), allez-y les yeux fermés !

Billets connexes

Wednesday 14 September 2016

Farewell

Mon fidèle compagnon, mon fils, mon frère, mon ami, n’est plus.

Mon cœur est en miettes, la sordide date du 12 septembre est maudite à jamais.

Friday 26 August 2016

proso-dis-moi-tout ! (2)

...dis-moi-tout, mais dis-moi surtout de lire ta doc, ça m’évitera de me rendre compte que recharger la conf ne recharge pas le certificat SSL, et me retrouver au bout de trois mois avec un certificat périmé.

Car si je l’avais lu, j’aurais su que recharger la configuration n’était pas suffisant, et qu’il fallait le faire également pour le module TLS.

Il existe bien un plugin pour ça, mais impossible de le faire fonctionner :(

J’ai donc fini par mettre un petit script en place qui utilise l’interface d’admin telnet:

nc localhost 5582 << EOF
module:reload("tls")
config:reload()
quit
EOF

Au moins, ça m’évitera de faire un restart tout crado et de couper les connexions des utilisateurs :)

En bonus la commande pour voir la date d’expiration d’un certificat Jabber (merci openssl et sa syntaxe simple toujours aussi facile à retenir):

openssl s_client -connect talk.tourmentine.com:5269 </dev/null -starttls xmpp | openssl x509 -noout -text | grep Not

Bien évidemment remplacez le nom du serveur par le votre.

Billets connexes

Thursday 26 May 2016

Faut pas prendre des v6 pour des lanternes (2)

ll y avait longtemps que ça n’était pas arrivé: ma connectivité ipv6 résidentielle est en vrac depuis ce matin. Ce qui veut dire en pratique, plus de Youtube, plus de Wikipedia, entre autres.

Du coup ça fait un peu mal au c*l mais bon:

# echo '1' > /proc/sys/net/ipv6/conf/all/disable_ipv6

Et tout rendre dans l’ordre.

Et dire que c’est au moment où je me bat pour faire fonctionner l’ipv6 sur ma prochaine infra... je dois quand même être un peu maso pour continuer de m’infliger cette vieille technologie du futur.

Billets connexes

Sunday 20 December 2015

still got my bloody french accent (2)

Le vénérable site du TMA a fait hier-soir son entrée dans le XXIème siècle, en parlant enfin UTF-8 \o/

J’en ai profité pour faire un peu de nettoyage et réparer également le compteur de visites, qui lui était entré en hibernation lors du passage à Piwik (et ça date pas d’hier...)

Billets connexes

Monday 14 December 2015

Trop vieux pour ces conneries

Le passage en PHP 7 c’est globalement bien passé, et seules quelques vieilles applis résistent encore, principalement à cause de leur utilisation de l’ante-dilluvien module mysql.

Je vais donc pour l’instant garder une instance PHP 5.4 (merci FPM) qui fait tourner:

  • nconf pour la configuration d’icinga, autant dire que je suis pas prêt d’arréter de m’en servir
  • librefm, mais last.fm à l’air de redevenir utilisable, alors...pour l’instant on laisse comme c’est
  • indefero utilisé sur la forge, le projet est mort (même le domaine n’existe plus), je cherche donc un remplaçant (sans doute GitList même si il ne gère pas les tickets)
  • l’interface DMARC fraîchement installée, mais il n’y a pas beaucoup de code à corriger, ça ne devrait pas être long.

Thursday 10 December 2015

Let's encrypt everything!

Pour la première fois de son histoire, la tourmentine se dote d’un certificat TLS valide, multi-domaine et surtout GRATOS, merci Let’s Encrypt.

Bon pour l’instant c’est un peu relou à déployer, mais ça a l’avantage de marcher presque partout, sans Autorité de Certification custom. Joie.

Ça sent la fin du racket ;)

Pour l’instant pas de https-par-défaut (sauf là où il y en avait déjà), on y va cool.

Tuesday 8 December 2015

Un p'tit cinq à sept ?

Passage en php-7.0.0 tout brillant pour (presque) l’ensemble des sites de la tourmentine. Le plugin miniseo de Dotclear n’a pas survécu à la migration pour cause de ereg_replace(). Pour l’instant il ne manque pas.

Mention spéciale au passage à portmaster qui m’a bien aidé pour la mise à jour de gd (le paquet ayant changé de nom entre temps, impossible de le mettre à jour via les ports)

Reste quelques récalcitrants, dont le vénérable site du TMA, qui seront migrés dans les prochains jours.

Pendant ce temps, même pas mort mais un peu jaloux quand même, perl6 pointe également le bout de son nez :)

Sunday 29 November 2015

Va te faire encURLer

Petite note pour les gens qui voudraient se lancer dans la difficile migration de wget vers cURL, il suffit de retrouver le comportement de faignasse de wget, a.k.a "sauve-moi ça là, nan je veux pas voir ce qu’il y a dedans", en mettant l’option -O dans le fichier ~/.curlrc. Oui, directement comme ça dedans. C’est pour ça que je fais une note, c’est pas forcément évident :)

Du coup on peut aussi ajouter -L pour que cURL suive sagement les redirects, comportement qu’il n’est pas illogique d’avoir par défaut.

Wednesday 11 November 2015

DMARC et Sophie

J’ai mis en place DMARC sur ma messagerie il y a quelques mois, et depuis je reçois des rapports journaliers dans ma boite mail. Malheureusement la manipulation de ces rapports est un poil fastidieuse: ouvrir le mail, décompresser la pièce jointe, et ouvrir puis lire le fichier XML de rapport. Et cela plusieurs fois par jour...

Heureusement, je ne suis pas le seul à trouver ça lourdingue: John Levine a écrit quelques scripts pour gérer les rapports DMARC, qui remplissent une base de donnée exploitée par une petite interface web de chez techsneeze.com. Je n’ai pas pu installer le plugin pour MariaDB pour cause de "Can’t find symbol ’_mysql_plugin_interface_version_’ in library", mais ça n’a pas l’air trop grave. Je n’ai pas cherché plus loin.

C’est pas parfait, mais ça mâche quand même pas mal de boulot. Reste à tester Lafayette qui a l’air plus complet...mais aussi plus usine à gaz. À voir.

Tuesday 25 August 2015

Il est libre, FM

Y’en a même qui disent qu’ils l’ont vu voler...

Amateur de musique, j’utilise le service last.fm pour indexer les morceaux que j’écoute, faire des stats et découvrir des trucs proches de ce que j’aime bien. J’étais même tout content de fêter mes 10 ans de présence en Février dernier (certains l’ont fêté presque un an avant). Pas mal pour un réseau social, un des derniers représentants de la préhistoire du mouvement (à l’époque les références étaient Myspace et copains d’avant, Facebook étant arrivé "sérieusement" plus d’un an plus tard en France).

Malheureusement, les gens de chez last.fm ont du se dire qu’il fallait fêter ça aussi, et on lancé une nouvelle interface du site. D’abord en beta optionnelle, que j’ai testé deux secondes et demi il y a quelques semaines, me disant que c’était pas prêt...en effet la plupart des fonctionnalités avaient disparu.

La semaine dernière, surprise: Le site beta, tel quel, était poussé à tous les utilisateurs. Dire que ceux-ci ont été moyennement content est un euphémisme, on peut même dire que si l’équipe du site voulait faire fuir tout le monde, elle ne s’y serait pas pris autrement: la plupart des stats sont manquantes, les pochettes d’album de la playlist on disparues, même le bandeau latéral si pratique pour afficher les logos des groupes n’est plus là, remplacé par des pubs (tiens tiens, serait-ce la raison de la refonte ?). Pire, last.fm ne semble pas prêt de revenir en arrière et de rétablir ce qui manque.

J’aurai bien refait les quelques pages du site, mais il semble impossible de se créer un compte pour accéder à l’API (le site dédié était par terre était down les premiers jours, et depuis les liens pour créer un compte...redirigent sur la home du site)... me voila donc désemparé...

Je me suis alors tourné vers son équivalent libre, libre.fm, ou plutôt GNU FM, dans sa version à-héberger-soi-même; alors en théorie plein de clients peuvent scrobbler vers libre.fm et certains permettent même de choisir une instance GNU FM, mais dans la pratique le support pour libre.fm est famélique (un seul client android, et pas de support pour mon lecteur audio préféré) et je n’ai trouvé jusqu’ici aucun client supportant GNU FM.

Cela c’est donc terminé - comme souvent - par l’écriture d’un script custom bricolé à partir de celui qui a servi à la migration, qui surveille les changements sur last.fm et les réplique sur libre.fm et mon instance perso. Cela m’empêche de couper dès maintenant le cordon avec last.fm, mais il paraitrait que la plupart des fonctionnalités reviendrons dans les prochains mois... ça se trouve je n’aurais peut être pas à fermer mon compte.

En attendant, il me reste à customiser un peu GNU FM pour le rendre aussi confortable que presque-feu last-fm.

Wednesday 17 June 2015

Les os du panda roux

Dans la série "j’ai testé pour vous", aujourd’hui: b2gdroid, alias Gaia, l’interface de FirefoxOS, pour Android.

Il faut d’abord être patient pour télécharger les 152 Mo de l’apk. Ensuite, ne pas avoir peur à la vue de la liste longue comme le bras des autorisations demandées (je le soupçonne de tout ouvrir par défaut, histoire d’être peinard après). Enfin, on peut basculer entre l’interface Android par défaut et celle de Gaia via le bouton home du téléphone. À noter que le bouton "retour" de mon Galaxy S4 Active fait systématiquement planter l’interface.

Coté ressenti, c’est pas trop mal, les appli sont simples et élégantes, mais à la longue, ces icônes énormes...ça lasse. Sans parler de cet arrière-goût désagréable d’Unity et son fameux look "playschool"

Il y a sur la partie haute de l’écran les appli les plus courantes, qui restent en permanence à l’écran, et sur la partie basse toutes les autres, un peu comme...le panneau des appli Android, scrolling compris. Le tout avec un fond d’écran assez laid qui rend le tout plutôt fouillis.

Bref, si vous voulez vous faire une idée allez-y, pour une version alpha c’est plutôt stable. Pour ma part je ne suis pas vraiment convaincu.

Attention tout de même: comme il désactive le verrouillage de l’écran, si vous lancez une appli Android et que vous éteignez l’écran, il ne sera pas locké au réveil :)

Thursday 2 April 2015

tu veux voir ma beet ?

cuys.jpg

Le truc un peu galère avec les mp3, c’est la gestion des pochettes. Pendant longtemps j’ai utilisé ce bout de script, mais il fallait aller à la pèche aux pochettes sur amazon ou google images et c’était galère.

Depuis je me contente de demander à mon lecteur de musique (Clementine sur PC) d’aller chercher la pochette qui va bien. Problème, ce n’est pas "portable", du coup sur android je dois utiliser (feu) Cover Art Downloader, et passer une plombe à corriger les pochettes manquantes. De plus, c’est à refaire après chaque mise à jour ou nettoyage du cache...

Alors qu’il y a truc fait pour, et supportée partout (même sur les iPod, c’est dire): insérer la pochette dans le mp3, sous forme de tag !

Malheureusement, les outils pour le faire sont assez peu nombreux sous Linux. Clementine le fera peut être un jour, ou pas. Mais en cherchant j’ai fini par tomber sur le couteau suisse du tag: beets.

Il faut commencer par activer les plugins fetchart et embedart, puis indexer l’ensemble des fichiers à tagger (une journée et demi pour environ 25 000 fichiers), les pochettes trouvées dans chaque répertoire (dans cover.jpg) seront automatiquements ajoutées aux mp3 associés. Pour les autres...une revue complète s’impose :/

L’essentiel se fait en ligne de commandes, via la commande "beet" (les gars, c’est pas avec des commandes genre "pip install beets" que vous allez faire venir des gonzesses dans votre projet), qui permet également de lancer un serveur web minimaliste (via flask) afin de prévisualiser les pochettes.

Dans l’ensemble il a bien fait le job, les seuls pochettes foireuses l’étaient à cause d’un bug dans l’interface chaise/clavier (c’est à dire, moi), dans ce cas il est très facile de supprimer ou de remplacer la pochette fautive.

Je vous laisse, j’ai mes 25 000 fichiers à inspecter moi :)

Saturday 7 March 2015

Halte au feu !

Sur mon joli NAS j’ai finalement sauté le pas et installé alt-f, le firmware alternatif pour les appareils D-Link; je me demande pourquoi je ne l’ai pas fait plutôt: par rapport au firmware d’origine c’est le jour et la nuit.

On a tout d’abord une interface web nettement plus propre, et surtout plus configurable (les ports de l’admin web et du serveur ssh le sont, par exemple, contrairement au firmware d’origine, qui lui ne propose même pas ssh nativement). Coté système on passe enfin la barre du noyau v3, avec un 3.10.32, largement suffisant pour faire tourner une debian wheezy, ainsi que, comble du luxe, un openvpn fonctionnel. En parlant de debian, alt-f permet d’en installer une, mais on ne peut pas trop choisir son emplacement (limité à la racine des disques vus par le firmware), et je n’ai pas trouvé comment la lancer, le bouton étant mystérieusement grisé... En attendant j’ai récupéré celle que j’utilisais en chroot sur le firmware d’origine, que je lance pour l’instant manuellement.

Hormis donc la peur de briquer son boitier, aucune raison de ne pas installer ce firmware. D-Link ne mettra sans doute jamais à jour celui d’un modèle de NAS qui a des années, la dernière en date est restée en béta, alors qu’alt-f est continuellement mis à jour par la communauté.

Et au passage, la règle qui veut que les fabricants de hardware soient des brêles en software se vérifie une fois de plus; bye-bye interface moisie !

 

still got my bloody french accent

De tous les problèmes qu’on peut rencontrer en informatique, ceux d’encodage ont quand même le plus gros potentiel de cassage-de-bonbons; la preuve, des années après le raz-de-marrée utf-8, on rencontre encore des sites codés en iso, et pire, on a encore parfois des putains de problèmes d’accents.

En l’occurence cela concernait l’ancienne version du blog ainsi que le site du TMA, qui étaient en vrac depuis un temps indéterminé...le tout étant servi par nginx & php-fpm, j’ai été obligé de créer un nouveau pool dont l’encodage a été forcé en iso, car visiblement il n’y a pas moyen de forcer via fastcgi_params l’encodage d’un pool existant. Si vous avez une solution je suis preneur.

Billets connexes

- page 1 of 18