Le weblog entièrement nu

Roland, entièrement nu... de temps en temps.

Dernières nouvelles

RSS
37

C'est l'heure d'un marronnier de ce blog : la petite chronique numérologique du 11 avril. Celle-ci sera consacrée au nombre 37.

Nombre premier, premier irrégulier, premier cubain, cousin avec 41, hexagonal centré et étoilé, c'est aussi le numéro atomique du rubidium et ça nous fait une belle jambe.

Et c'est un nombre qui colle particulièrement bien à la journée d'aujourd'hui (qui, si jamais les générations futures s'y intéressent, s'annonce pour être belle et douce, avec peut-être un petit voile nuageux).

Tags:
Posted ven. 11 avril 2014 10:06:19 CEST
Une page de publicité

Allez, c'est vendredi, c'est permis, je vais m'autoriser deux petites annonces.

Premièrement : rappelez-vous Minami Taiko, ce groupe de tambours japonais du sud de la France. Bon, nous on est des amateurs, mais il se trouve qu'on fait venir, pour le festival Escale à Sète, un vrai groupe de taikos du Japon et tout. Ils s'appellent SEN, et ils vont faire quelques animations musicales dans Sète du 18 au 21 avril. Et avant de repartir dans leur lointain Cipango, ils feront un vrai concert à Montpellier, le mardi 22 avril au soir, sur le campus de l'INRA/Supagro. Et devinez qui fait la première partie ? Minami Taiko, voilà qui ! Donc si vous voulez découvrir le taiko ou voir quelques amateurs suivis d'un vrai groupe, faites donc un tour sur le site de Minami Taiko. À noter qu'il y a aussi un atelier d'initiation le même jour si ça vous intéresse.

Deuxièmement : je suis fier de vous présenter un petit site web que c'est moi qui l'ai fait avec mes petits doigts délicats. Ça s'appelle Chacun sa part, et ça sert à faire des comptes entre amis, genre quand on part en vacances ensemble, ou qu'on fait régulièrement des dépenses partagées dans un groupe de gens. Pour éviter des comptes d'apothicaire à chaque restau, chaque tournée au bar, chaque passage en caisse, on saisit la dépense sur le site, on dit qui a payé et qui a participé, et le site calcule automatiquement les soldes de chacun et propose des suggestions de remboursements pour rééquilibrer les comptes. Y'a un système d'invitations pour que chacun puisse consulter l'état du groupe et saisir des dépenses, des QR-codes pour faciliter la vie aux utilisateurs de smartphone, et même si ça n'a pas encore été testé à grande échelle ça a été validé par une poignée de testeurs dans différentes configurations. Allez-y, c'est cadeau. Chacun sa part. Point com.

Tags:
Posted ven. 11 avril 2014 10:06:19 CEST
Rsyncing a BackupPC storage pool, efficiently

BackupPC is a pretty good backup system. Its configuration is rather flexible, it has nice expiry policies, and it can store duplicated file contents only once (for files that are shared across hosts or don't change in time) within a compressed pool of data. However, it doesn't do much to help pushing the data to off-site storage, or at least not very efficiently. So if you have a BackupPC instance running on a Raspberry Pi or a plug computer at home, it's a bit tricky to protect your data against loss due to burglary or home fire.

The obvious solution would be to rsync the storage pool to a remote site. However, the current pooling system relies heavily on hardlinks, and rsync is notoriously inefficient with those. In the home backup server scenario, this means that even if the computer is more powerful than a Pi and can handle the memory requirements of rsync, you'll often end up transferring way too much data.

So, since the obvious solution doesn't work straight away, what do we do? Why, we fix it, of course. With a little look into the storage pool, we notice that the bulk of the data is stored in files with an “abstract“ name (related to the contents) within a $prefix/pool directory; the files with concrete names looking much like their original are stored within $prefix/pc, and they're actually the same files because they're hardlinks. Knowing this (that rsync doesn't), we can make a smarter replication tool, by

  1. pushing only the pool with standard rsync;
  2. storing locally, and recreating remotely, the structure of hardlinks;
  3. pushing everything again with standard rsync.

Steps 1 and 3 are simple invocations of rsync -aH; step 2 can be implemented using the following two scripts. Run store-hardlinks.pl locally, push the links file, then run restore-hardlinks.pl on the remote server. This will ensure that files already present in the pool are also hardlinked in their natural location.

store-hardlinks.pl:

#! /usr/bin/perl -w

use strict;
use Storable qw(nstore);
use File::Find;

use vars qw/$prefix $poolpath $pcpath %i2cpool %todo $store/;

$prefix = '/var/lib/backuppc';

$poolpath = '$prefix/cpool';
$pcpath = '$prefix/pc';
$store = '$prefix/links';

# for the convenience of &wanted calls, including -eval statements:
use vars qw/*name *dir *prune/;
*name   = *File::Find::name;
*dir    = *File::Find::dir;
*prune  = *File::Find::prune;

# Scan pool
File::Find::find({wanted => \&wanted_pool}, $poolpath);

# Scan PC dirs
File::Find::find({wanted => \&wanted_pc}, $pcpath);

nstore \%todo, $store;
exit;

sub wanted_pc {
    my ($dev,$ino,$mode,$nlink,$uid,$gid);

    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
      -f _ &&
      ($nlink > 1) &&
      do {
      $name =~ s,$pcpath/,,;
      if (defined $i2cpool{$ino}) {
      $todo{$name} = $i2cpool{$ino};
      }
    }
}

sub wanted_pool {
    my ($dev,$ino,$mode,$nlink,$uid,$gid);

    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
      -f _ &&
      ($nlink > 1) &&
      do {
      $name =~ s,$poolpath/,,;
      $i2cpool{$ino} = $name;
    }
}

restore-hardlinks.pl:

#! /usr/bin/perl -w

use strict;
use Storable;
use File::Path qw/make_path/;

use vars qw/$prefix $poolpath $pcpath %todo $store/;

$prefix = '/srv/backuppc-mirror';

$poolpath = "$prefix/cpool";
$pcpath = "$prefix/pc";
$store = "$prefix/links";

%todo = %{retrieve ($store)};

my ($dev,$ino,$mode,$nlink,$uid,$gid);

foreach my $src (keys %todo) {
    my $inode;
    my $dest = $todo{$src};
    my $dpath = "$poolpath/$dest";
    my $spath = "$pcpath/$src";
    my $sdir = $spath;
    $sdir =~ s,/[^/]*?$,,;
    make_path ($sdir);
    next unless -e $dpath;
    if (! -e $spath) {
      link $dpath, $spath;
      next;
    }
    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($spath));
    $inode = $ino;
    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($dpath));
    if ($ino != $inode) {
      unlink $spath;
      link $dpath, $spath;
    }
}

The initial transfer can still take forever if the pool is large (and if you're pushing it through the small end of an ADSL link…), but at least the files are only transferred once.

Note: This is only useful for current versions of BackupPC. Apparently BackupPC 4 will have a different pooling system without hardlinks, and the following hack will no longer be required. For now, though, here it is.

Tags:
Posted lun. 02 déc. 2013 11:25:31 CET
10 ans !

Eh ben dites-donc mes aïeux, le temps passe. Le 15 novembre 2003, j'émettais ma première facture en tant que consultant indépendant.

Eh ben dix ans plus tard, y'a eu des hauts et des bas, mais globalement tout va bien, et je continue à faire des factures de temps en temps, et ça me plaît toujours autant.

Touchons du bois pour que ça continue, et on en reparle dans dix ans !

Tags:
Posted ven. 15 nov. 2013 15:45:02 CET
Les rumeurs de la mort de ce blog…

…sont un peu exagérées. Mais c'est sûr, c'est calme, et apparemment une partie de mon lectorat s'en inquiète. Donc voici un lot de nouvelles pour ceux que ma vie passionne et qui n'ont plus accès au 3615 Roland.

Alors bon, suite à ce que je vous disais sur Eleven en mai, je me suis mis en quête d'un autre groupe de rock. J'avais cru en trouver un, mais j'ai l'impression que la motivation n'était pas universellement partagée, à tel point qu'on a dû faire moins d'une répétition par mois en moyenne. C'est pas des bonnes conditions, donc je suis de nouveau en recherche. Si vous cherchez un batteur pour jouer du rock aux environs de Montpellier, faites-moi signe.

Cela dit, je ne suis pas resté oisif pour autant : le taiko continue, l'association a été reprise en main, on répète, et hop hop hop on est même invités à jouer en public pas plus tard que ce week-end ! Ça va se passer au parc Borély à Marseille, à l'occasion du festival d'automne organisé par le consulat général du Japon. Plus de détails sur le site de Minami Taiko, vu que c'est comme ça qu'on s'appelle. Le site est neuf aussi, mais on y mettra des photos et peut-être des vidéos.

Sur les autres fronts : côté FusionForge c'est calme, mais la prochaine édition du Debian Administrator's Handbook / Cahier de l'Admin Debian avance petit à petit. On commence non pas à en voir le bout, mais à voir ce qu'il reste à faire avant d'en voir le bout. Mes autres récents petits bricolages de geek feront peut-être l'objet d'un billet dédié si je suis motivé.

Voilà voilà.

Tags:
Posted jeu. 10 oct. 2013 17:15:01 CEST
FusionForge news, June 2013

Once again, it's been some time since the last FusionForge update in here. The main explanation is that news is slow on that front. Debian Wheezy was released without FusionForge packages, as previously announced, and even Sid hadn't seen any update on the package for way too long. The latter has just been fixed though: the freshly-released 5.2.2 upstream version is on its way to Sid (via NEW, since it adds a new plugin to allow authenticating against a CAS server). If and when it reaches Debian Jessie (the current “testing”), I'll work on backporting it for Wheezy.

At some point I'll also start uploading snapshots of the upstream master branch to “experimental”, to give adventurous users a glimpse of what is to come in the future releases, although I'll stick to only uploading when the automated tests all pass.

Tags:
Posted ven. 28 juin 2013 00:00:00 CEST
Le joli mois de mai

Comme d'habitude quand je n'ai rien de vraiment fracassant à annoncer au monde ébahi, ce billet mensuel sera sous forme de trucs-en-vrac.

Premièrement : Raphaël et moi avons obtenu l'accord des éditions Eyrolles pour une libération (conditionnelle) du Cahier de l'Admin Debian dans sa version française. La version anglaise a déjà été libérée l'an dernier, mais le texte original reste pour l'instant sous copyright d'Eyrolles. Mais suite à d'âpres négociations, nous avons obtenu une rétrocession des droits, sous condition de l'assurance d'un certain nombre de ventes du livre. Donc nous avons lancé une campagne de financement, qui nous permettra de fournir cette assurance à Eyrolles, qui pourra en toute confiance lancer une nouvelle édition. Le livre sera bien entendu en librairies, mais les « préventes » par Ulule proposent des contreparties supplémentaires, et surtout elles contribuent à la libération du livre, ce qui permettra son évolution et sa maintenance collaborative. Nous vous encourageons donc chaleureusement à participer à cette campagne.

Deuxièmement : je note une fois de plus que la fin du monde-tel-qu'on-le-connaît, qui était annoncée pour hier, n'a pas eu lieu : au moins dans mon village, ce matin, les rues n'étaient pas à feu et à sang, ni envahies d'ogres mangeurs d'enfants. Ça fait deux fins du monde annoncées puis ratées en moins de six mois. Nous sommes tous des survivors.

Troisièmement : ça n'a rien à voir, mais il y a quand même quelque chose qui s'est fini. C'était il y a quelques semaines et je n'ai pas eu l'occasion d'en parler, mais des divergences sur l'orientation du groupe ont fait que les chemins d'Eleven et de votre serviteur se séparent. Donc je me retrouve en recherche d'un groupe de rock, et Eleven se trouve en recherche d'un batteur. Comme on n'est pas des stars capricieuses, les « divergences » ne sont pas un euphémisme pour des portes qui claquent et des rancunes inextinguibles, désolé de vous décevoir, on s'est juste arrêtés de jouer ensemble. Je vous tiens au courant si (et quand) je trouve un nouveau groupe.

Je crois que c'est tout pour ce mois-ci. La suite… un autre jour.

Tags:
Posted jeu. 30 mai 2013 00:00:00 CEST
36

Trente-six chandelles. Trente-six vues du mont Fuji (ou de la Tour Eiffel). Y'a pas trente-six manières de faire. Mais y'a trente-six pouces dans un yard. Numéro atomique du krypton (rien à voir avec Superman).

Trente-six ans !

Tags:
Posted jeu. 11 avril 2013 00:00:00 CEST
Dernières nouvelles avant la fin du mois

Bon alors bon. Y'a bien longtemps que je n'ai rien écrit en français ici, ça manque. Mes geekeries sont à peu près bien documentées en anglais, mais contrairement aux rumeurs je fais aussi autre chose à côté.

Je fais du monoski, par exemple. Et cette année, j'ai bien l'impression d'être le dernier… j'ai beau entendre parler de gens qui en font, pour la première saison depuis que je fais du mono, je n'ai pas croisé un seul collègue en une semaine sur un grand domaine skiable, malgré la neige abondante et le soleil radieux (surtout en début de semaine).

En parlant de soleil radieux : la tradition veut que les saisons du ski et du barbecue s'enchaînent avec un délai de carence de quelques jours au plus, mais là après la redescente en plaine ça traîne, et ça reste bien humide. Donc je prends les devants, et je décide & décrète que je vais pas me laisser faire. Les saucisses et côtelettes seront peut-être cuites à la vapeur, mais ce sera de la vapeur au feu de bois. Les invités seront les bienvenus.

Sur le front de la musique : côté rock chez Eleven, on continue à répéter, ajouter des chansons à notre répertoire, et faire des petites apparitions publiques à gauche et à droite. On a temporairement égaré un guitariste (mais il va revenir un jour), et on continue de chercher mollement un chanteur (ou une chanteuse). Si jamais vous êtes dans la région de Montpellier/Nîmes et que vous voulez vous lancer…

Deuxième front musical : je me suis laissé embarquer dans un autre groupe, mais cette fois c'est pour faire du tambour japonais (on dit taiko pour faire bien). On est encore en phase de mise en place, mais c'est déjà marrant.

Bref, on s'occupe, quoi.

Tags:
Posted ven. 29 mars 2013 00:00:00 CET
A challenge for whoever feels they have too much free time

Open question to enthusiasts, theoretical computing scientists and mathematicians of all sorts: is it possible to construct a valid QR-code that leads to interesting results when used as an initial configuration for the Game of Life?

The rules:

  • QR-code or DataMatrix or whatever, I'm not picky;
  • valid code as in maybe not exactly what would be produced from the text, but which the error-correction can reconstruct;
  • interesting results, as in not decaying to a stable state (or not too soon, at least);
  • for bonus points, it would lead to at least one glider;
  • for extra bonus points, a glider gun or a breeder of such;
  • for awesomeness, the QR-code should encode an URL pointing at the demonstration of its own evolution in Life.

For Science!

Update: The answer seems to be yes. Jurij Smakov assembled a QR-code generator and a Life engine and plugged them together for easy experimenting. And Stefano Zacchiroli noticed that using "free software" (no quotes) as the input leads to a couple of gliders endlessly traveling a field with a few still lifes. This is way beyond awesome.

Tags:
Posted mar. 19 févr. 2013 00:00:00 CET
Creative Commons License Sauf indication contraire, le contenu de ce site est mis à disposition sous un contrat Creative Commons.