Tourmentine

To content | To menu | To search


Tuesday 27 August 2019

Scrobleubleu

Il y a quelques jours le scrobbling de mon last.fm perso c’est arrêté pour cause d’erreur SQL bien foireuse. Ayant un peu la flemme de débugguer du code legacy-de-chez-legacy, je me suis dit que c’était l’occasion du passé de faire table rase, et de passer de MySQL à un vrai SGBD.

Je relance donc une installation de gnukebox, afin de créer la structure de la base, puis je crée un utilisateur. Reste à exporter les données de last.fm...

Et c’est là que ça se corse: le script d’export n’est visiblement pas capable de ramener plus d’une page, soit cinquante scrobbles par défaut. Et si on augmente le nombre de scrobbles au dela de mille, on se prends une erreur fatale du serveur. Bref, je suis pas arrivé avec mes 128 000+ scrobbles moi !

J’ai fini par trouver un script corrigé en python3 qui lui ramène tout, même si c’est très lent (une page par seconde, limité par l’API). Un autre script était beaucoup plus rapide mais ne générait pas un dump formaté pareil, donc je n’ai pas tenté.

J’ai un peu déchanté durant l’import dans la base de donnée, car le fichier n’est pas trié par date, et surtout que ladite date...est une date: et comme ce n’est pas un timestamp, c’est bien galère à trier (bienvenue au XXIème siècle). Effet de bord , la reprise du scrobbling à généré une cinquantaine de doublons (une page, si vous avez suivi...) car il semble comparer la page de résultat aux derniers enregistrements en base,qui, manque de bol, ne sont pas à la fin.

Bref ça sera bien suffisant, après tout les doublons sont une plaie pas si rare chez last.fm, on va donc pas se pleindre.

Reste encore à corriger les panneaux Grafana, ça va me faire pratiquer le SQL tiens (joie...)

Billets connexes

Wednesday 14 August 2019

Cookie Tapper

ccm.jpg, août 2019
"It begins." -grandma

Bah voila, je soignais péniblement mon addiction aux cookies quand patatra, la version mobile a débarqué il y a quelques jours à peine.

Et là c’est le drame, un jeu toujours aussi bien foutu, avec des règles légèrement adaptées pour s’adapter au mobile (le jeu produit 100% de cookies même fermé, car les auteurs "se soucient de la batterie" <3 ).

Bref, même si il s’agit d’une beta (attention aux nombreux clones qui pullulent sur le Play Store...) et qu’il manque encore pas mal de fonctionnalités (dont certaines ne seront pas portées, comme les minigames), c’est un putain de bon jeu, si vous aimez les idle-games bien sûr.

Billets connexes

Saturday 22 June 2019

1000 jours (2)

cookie_clicker_cc2019-06-22_10-12.png
J’ai cru que j’y arriverais jamais

 

Ce fut long et (pas vraiment) chiant: j’ai finalement atteint les 100% d’achievements sur Cookie Clicker. Et même si le jeu n’a pas vraiment de fin (il est toujours possible qu’Orteil en ajoute de nouveaux, même si il est pas mal pris par la version mobile), il m’aura fallu un peu moins de 1228 jours, tout de même, pour y arriver. C’est donc en quelque sorte un point final à une grande aventure 🙂

Quelques regrets néanmoins:

  • "Seulement" 9 shadow achievements sur 14: il manque Speed baking III (trop dur), Endless cycle (trop long), All-natural cane sugar (trop pas de chance), When the cookies ascend just right (trop tard je gagne trop), ainsi que Four-leaf cookie (faisable mais trop la flemme là)
  • Je n’ai pas passé le cap du nonillion de cookies en banque (septendecillion en échelle longue, soit 1054). J’aurais peut être pu y arriver en cumulant deux Building Specials de suite (que j’avais vu venir avec le FtHoF Planner) avec un autre Building Special ainsi qu’un Frenzy, mais comme un con je n’ai pas eu le réflexe de sacrifier un Sugar lump pour en profiter 🙁

Reste à savoir ce que je vais faire de tout ce temps libre maintenant !

Billets connexes

Thursday 13 June 2019

Le graph c'est la vie (4)

InfluxDB c’est formidable mais dans l’euphorie du moment, je n’ai pas vraiment limité la fréquence des données stockées dedans.

Résultat en trois petits mois, une base de 15 Go. Plus 15 Go de backups.

La solution proposée par la doc d’InfluxDB est d’avoir plusieurs niveaux de rétention (un jour, une semaine, un mois...) et une fréquence adaptée à la période, avec des requêtes continues qui font la conversion à la fin de chaque cycle de fréquence.

Problème, ces requêtes changent le nom de la valeur pour indiquer qu’il s’agit d’une moyenne (value devient mean_value), et il faut changer toutes les requêtes de Grafana. Celui-ci permet tout de même de paramétrer une période histoire de pas modifier les requêtes à chaque fois, mais malheureusement la seule solution que j’ai trouvé pour que ça fonctionne un peu proprement nécessite des paramètres spécifiques à Grafana 6.

Pas la peine de vous dire qu’actuellement la dernière version disponible sous FreeBSD, et celle que j’utilise, est la 5 😞

Plus qu’à attendre que le nouveau port soit intégré à l’arbre pour finaliser tout ça donc.

Billets connexes

Friday 31 May 2019

Archéologie numérique

J’ai retrouvé des feuilles contenant le code source d’un programme C daté de février 2000, autant dire que ça ne nous rajeunis pas.

Un truc que j’aurais pu récupérer directement sur mon tout premier site (dont j’ai malencontreusement perdu les clés...) si l’archive était fonctionnelle. Sans doute une sordide histoire de mode binaire lors de l’upload en FTP. Au passage, numérique 0 - papier analogique 1, qui reste quand même un putain de support de sauvegarde 🙏

Ce programme servait à calculer l’espace pris par un dossier ou une arborescence. Les plus perspicaces me feront remarquer que c’est ce que l’utilitaire du(1) fait, oui mais j’étais jeune et je venais de Windows à l’époque, et je ne savais pas qu’une telle perle pouvait exister. Tout le monde peux faire des erreurs.

BREF j’ai scanné et OCRisé le tout, d’ailleurs sous Linux cette dernière opération est toujours aussi merdique, même le premier site venu fait mieux que tesseract-ocr, pourtant la Rolls du genre, à l’heure ou la numérisation et la reconnaissance optique commence à s’industrialiser chez d’autres.

Une fois le tout réassemblé et corrigé, en enlevant les warnings (que je codais salement à l’époque...), ça compile. Malheureusement le résultat est foireux, je ne sais pas si c’est parce que le code est tordu ou parce que l’OCR a introduit des bugs.

Au final je l’ai inclus dans mon dépôt fourre-tout de scripts, pour la postérité, pas sûr que ça serve à autre chose 🙂

Monday 20 May 2019

Le graph c'est la vie (3)

J’aime pas trop faire du sport, mais il faut admettre que je marche pas mal. Du coup il y a une paire d’années j’ai installé un podomètre sur mon téléphone: Pacer.

Et puis je suis tombé amoureux de Grafana, je veux tout faire avec elle, graffer les choses les plus improbables jusqu’au bout de la nuit.

Malheureusement aucune possibilité d’exporter les données de l’appli Pacer... après avoir tenté sans succès de synchroniser les données avec le site puis d’y accéder via leur API, de synchroniser le compte avec Fitbit et de faire de même, j’ai fini par bidouiller un truc un peu sale mais qui, au moins, marche.

Et comme je suis trop sympa les sources sont fournies. C’est un début, il y a encore pas mal de taf pour rendre ça vraiment confort. C’est sans doute Android-only, je ne sais pas comment marche l’appli iOS, si elle utilise sqlite il y a de bonnes chances que ça fonctionne (retours bienvenus)

Côté implémentation un serveur openssh tourne sur le téléphone avec Termux (je vous cache pas que je flippe un peu pour la batterie...), et la machine hébergeant le script s’occupe de le lancer régulièrement après avoir fait un rsync bien sale de la base sqlite de Pacer. On va dire que c’est du work-in-progress en attendant mieux 🙂

Au final ça donne ça:

marche_ou_creve.png
ça marche 😏

 

Billets connexes

Sunday 12 May 2019

Les maîtres du fédivers

Oui je suis un enfant des années 80. Oui je suis VIEUX.

 

Je viens d’installer une instance Pleroma pour pouvoir rejoindre en toute indépendance la grande famille du fédivers. Un grand merci au passage à Jacques Foucry pour son tuto qui déchire 👍

Bon il faut quand même reconnaître que c’est quand même un peu le bordayl par rapport à Twitter, ne serait-ce que pour suivre des gens, il faut jongler entre les deux sites, c’est un peu pénible...

Autre point gênant, sous Linux il n’y a toujours pas de client unifié Twitter/Mastodon, il faut s’en cogner deux séparés, en l’occurrence Atomic-TweetDeck (un peu le seul potable en même temps) pour Twitter et Whalebird (un peu le seul...tout court) pour le fédivers. Heureusement sous Android il y a Twidere qui gère à la fois Twitter et Mastodon  mon compte Pleroma étant, magie de l’ActivityPub, pleinement compatible avec ce dernier.

Pas moyen non plus de désactiver les boosts, équivalent des retweets, au niveau d’un compte. J’aurais au contraire bien voulu les désactiver au niveau serveur une bonne fois pour toutes, dommage.

Mon nick est donc @n@social.tourmentine.com, passez donc quand vous voulez faire un toot !

Saturday 4 May 2019

Et Paf le certificat

Ça c’est un peu vu ce matin, chez Mozilla ils se sont vautrés sur un certificat intermédiaire, ayant pour conséquence directe la désactivation de la quasi-totalité des extensions de Firefox. Joli.

J’ai donc serré les fesses très fort en espérant que je n’aurais pas à redémarrer mon brouteur favori, malheureusement la vérification ne se fait visiblement pas toujours qu’au démarrage 🙄

Direction le blog de Mozilla qui indique que le seul hotfix disponible consiste à activer la collecte de données (!) pour pouvoir activer les "studies", studies qui récupéreront le fix...dans les 6 heures (!!):

It may take up to six hours for the Study to be applied to Firefox.

Se planter ça arrive, mais proposer un fix qui arrivera un jour peut être, là j’ai pas les mots.

Heureusement magie du net, quelqu’un dans les commentaires cite un article de Hacker News ainsi que le .xpi qui va bien à télécharger. Installé, réparé, en 10 secondes chrono. Qu’il en soit remercié. Pas vraiment merci Mozilla sur ce coup-là, par contre.

On notera aussi que Firefox ne respecte même pas son propre paramètre xpinstall.signatures.required que j’avais explicitement mis à false.

Home sweet Home

 

Sous Debian, un partitionnement très utilisé (et un des choix par défaut de l’installeur) est de choisir des valeurs arbitraires pour certaines partitions, et de garder tout le reste de l’espace disque pour le /home. C’est très pratique pour une station de travail. Sur la Tourmentine j’utilise FreeBSD mais j’ai gardé le même principe, toutes les "données" sont dans /home, ça permet de ne pas se poser de question sur quoi surveiller et quoi sauvegarder.

L’autre jour on me contacte pour un restore sur un MariaDB qui ne fonctionne plus, et pour cause, le disque était plein (merci innodb_file_per_table qui est à Off par défaut, ce qui provoque la création d’un fichier ibdata1 dont on ne peut jamais réduire la taille...)

Le / faisait 20 Go, dont 80% pris par les bases, et il y avait un /home de 1 To (c’est une Debian...). j’ai donc tout déplacé dans /home, et ajusté le my.cnf en conséquence.

Sauf que MariaDB refusait catégoriquement de redémarrer, avec le fort peu diplomatique message suivant dans le status du service:

ExecStart=/usr/sbin/mysqld --skip-grant-tables (code=exited, status=1/FAILURE)

Le plus étrange étant qu’en lançant manuellement avec "mysqld", MariaDB fonctionnait parfaitement. Et évidemment, tout se passait bien dans les logs.

Le truc qui a fini par me mettre la puce à l’oreille est un des messages dans le status de systemd mon amour:

[Warning] Can’t create test file /home/mysql/hostname.lower-test

Un Warning, normalement, c’est pas bloquant... sauf là.

En googlant le truc je fini par apprendre que par défaut le service systemd de MariaDB interdit l’accès aux données situées entre autres...dans /home.

Clap clap clap.

La solution consiste donc à copier le fichier /lib/systemd/system/mariadb.service dans /etc/systemd/system/ (pour qu’il ne soit pas écrasé par les éventuelles mises à jour suivantes), puis l’éditer pour mettre la variable en question à false:

# Prevent accessing /home, /root and /run/user
ProtectHome=false

Ne pas oublier le "systemctl daemon-reload" qui va bien ainsi qu’un redémarrage du service pour rendre le changement effectif.

Saturday 16 March 2019

Big Brother is not watching you anymore

La longue histoire des compteurs de visites vient de se terminer: j’ai retiré les tags de tracking de Les visiteurs phpMyVisites Piwik Matomo de tous les sites hébergés par la Tourmentine.

Exit donc également le vénérable compteur affiché sur le site du TMA depuis 2004 (il utilisait Matomo), une page de tourne...

Parce que la vie privée c’est important, et que c’était important aussi de commencer par balayer devant sa porte 😎

Billets connexes

- page 2 of 27 -