dimanche 30 octobre 2011

Retour aux sources.list

Dans ma jeunesse, il y a maintenant des années de cela, j'aimais bien tester différents systèmes d'exploitation, différentes distributions, c'était fun de passer des heures à configurer un système pour qu'il fonctionne un minimum, puis tout jeter et recommencer avec un autre. Et puis un jour, je me suis dit que ça devait aussi être sympa d'utiliser quelque chose plutôt que de seulement installer, du coup j'ai installé une bonne fois pour toute ce que je considérais comme le système parfait : Debian instable.

Après six mois d'utilisation et la troisième fois que le son cessait de fonctionner suite à une mise à jour, j'ai de nouveau décidé de changer pour une nouvelle distribution qui commençait à faire parler d'elle : Ubuntu. Et pendant les 5 (enfin, au moins 5, ma mémoire n'est plus ce qu'elle était...) années qui ont suivi, j'ai mangé de la Ubuntu à toutes les sauces : Ubuntu sur mes machines persos, Kutuntu au boulot, voir même des Ubuntu sur des serveurs et dans l'ensemble l'expérience était plutôt satisfaisante.

Et puis avec le temps et les nouvelles versions tout les 6 mois, j'ai découvert quelque chose de nouveau : les releases sortant avec des bugs critiques connus, identifiés et surtout non résolus. Après m'être fait mal au moins deux fois, j'ai décidé de retarder les mises à jour de mon système, de mettre une marge de sécurité après la sortie d'une nouvelle version ; espérant que les problèmes les plus gênants seraient corrigés pendant cette période.
Cette technique fonctionnait plutôt pas mal et Ubuntu a donc décidé de changer de stratégie pour me frustrer à nouveau : la nouvelle version allait inclure un nouveau gestionnaire de fenêtre spécial Ubuntu et spécialement mauvais aussi, Unity.
Sauf que moi, je suis un vieux con réactionnaire, je veux mon Gnome 2 ! Et donc, j'ai décidé de ne plus changer de version... sauf que bien sur, ce n'est pas une position tenable, même si il y a toujours des mises à jour, elles sont sur de vieilles versions des logiciels et peu à peu, je voyais mon système prendre la poussière.
À côté de ça, Ubuntu a aussi développé des nouvelles fonctionnalités intéressantes comme le système incapable de s'arrêter tout seul (oui, d'autres distributions utilisent un système complètement dépassé qui tue les processus récalcitrants... chez Ubuntu, ou tout est parfait, ils font confiance aux démons pour mettre fin à leur existence seuls...) et qui m'obligeait donc à faire quelques kill à la main avant l'arrêt de ma machine.

L'arrivée récente d'une nouvelle machine dans ma vie a fini de me convaincre qu'il fallait que je me sépare d'Ubuntu et je suis donc retourné à mon amour d'enfance : Debian. Et j'avoue que depuis je vis une union heureuse, stable (ouais, et pourtant j'utilise la version "testing") et pleine de mises à jour réussies.
En plus, cette fameuse nouvelle machine (encore un portable, c'est plus pratique pour prendre le train) a un énorme avantage par rapport à la précédente : pas de pavé numérique ! De la à dire que cela fausse mon jugement...

dimanche 11 septembre 2011

spacef

Some time ago, I started working on a gopher server (gopher is the protocol behind the gopherspace, an important part of Internet) and I choose to write it in a modern, efficient language: C. The gopher protocol is mostly about sending tab-separated data from the server to the client in response to the requested path. So, most of the parsing work is done on the client side and the server just have to generate this data.

But recent implementations of gopher serves introduced a new concept: Gophermaps: those are server side files that describe what should be displayed to the client. That also means the server has some parsing work to do. But it should be ok, C comes with maybe one the best string manipulation library ever made with short, descriptive function names (for instance, strpbrk or strrchr) and a sane way to store string length (I really wonder why would anyone use an alternate implementation such as bstring).

So, the problem was quite simple: I wanted to read several pieces of non-tab data separated by tabs and wrote something like that:
sscanf(buffer, "%s\t%s", &first, &second);
I expected it would read some non-space data (yes, there's already a problem here if there's space before the tab), then a tab, then some other non-space data. It doesn't.

After reading the man page and doing some tests, I understood a few things about my expression:
  • %s first skips leading spaces, before reading non-space data;
  • \t match any number of spaces, in fact any space in a pattern match any number of spaces.
So my scanf call was the same as this one:
sscanf(buffer, "%s%s", &first, &second);
and is equivalent to this regular expresssion:
"[:space:]*([^:space:]+)[:space:]*([^:space:]+)"
not really what I wanted to read...

First I needed to figure how to read non-tab data only, and it happens that this part was simple enough. The square brackets in scanf patterns work somehow the same than in regular expression. So %[^\t] will read a sequence of non-tab characters (ho yeah... a \t between square brackets only match a tab).

Next I have to read the "only one tab" part and this part was a lot more fun. %[\t] would match a sequence of tabs. To match only a specified number of tabs, you have to use a decimal between the % and the square bracket. The pattern is now %1[\t] but there still a problem: each conversion specification (those %... things) needs to be stored in some output variable and that would be stupid to store a tab each time I need to read one. Scanf provides the * modifier that tells to discard output of the conversion specification. The final pattern for reading a that is then %*1[\t].

And the correct version  of my scanf is:
sscanf(buffer, "%[^\t]%*1[\t]%[^\t]", &first, &second);
For those curious about my gopher server, the mercurial repository is here: http://hg.tuxfamily.org/mercurialroot/gophrier/gophrier/ and there's a mirror here: https://bitbucket.org/guillaume/gophrier

samedi 3 septembre 2011

Freeplug le dauphin

Je suis abonné Free depuis maintenant de nombreuses années et j'ai, à ce titre, eu le plaisir d'utiliser plusieurs versions de leur fameuse Freebox, et surtout la joie sans cesse renouvelée de migrer de la version précédente à la nouvelle.
Ayant sorti une nouvelle box récemment (enfin, heu... ouais, décembre 2010, pas si récemment en fait...) et tout le monde autour de moi m'expliquant qu'elle allait complètement changer ma vie (d'où le nom « révolution »), je me suis décidé à sauter le pas de nouveau et faire la mise à jour.

Donc, je vous passe les détails, mais je fais l'échange, j'installe et tout se passe à peu près bien... tout étant dans le « à peu près ». En fait, c'est un peu ma faute aussi, je cherche un peu les ennuis ; récemment j'avais souscrit à l'option Multi TV qui permet d'avoir deux gros boitiers moches au lieu d'un seul et donc, de regarder la télé Free sur plusieurs postes.
Ce truc absolument génial permet, par exemple, de regarder « Sauvez Willy » en même temps que vous épluchez des patates, ce qui du coup rend le film vachement plus intéressant.

C'est à ce moment là que j'ai découvert les Freeplug : des boitiers CPL en plus gros et devant être associés (ça ne sert à rien, mais Orange le fait sur ses Livebox, donc ça doit être bien). Avec ma nouvelle Freebox, j'ai reçu de nouveaux Freeplugs, une nouvelle version, plus petits, plus simples d'utilisation, tout ça. Sauf que voilà, pour pouvoir brancher mon boitier supplémentaires il fallait que j'associe un ancien Freeplug à mon couple de nouveaux et, a priori, ils semblaient assez réfractaires pour le plan à 3.

Après avoir cherché un peu sur les forums et trouvé des solutions innovantes telles que danser autour des boitiers en invoquant un dieu sumérien, je me suis décidé à appeler le support Free. Là au niveau 1, je suis tombé sur une demoiselle (sûrement à l'autre bout du monde vu la qualité de la transmission) qui m'a fait refaire (lentement) la plupart des manipulations que j'avais trouvées sur les forums (bon, pas la danse autour des boitiers) ; mais non, toujours pas d'association. Au bout d'un moment, elle décide de me faire passer en niveau 2.

Là, clairement, j'ai affaire à un technicien (en France, en plus) qui rapidement m'explique la bonne procédure pour associer des Freeplug, quels que soient les Freeplug et quelle que soit la situation. Et donc, pour vous faire économisez plus d'une heure de hotline, je vous fournis gratis cette procédure :

Association des Freeplug
  1. Faire table rase sur les Freeplug : chaque Freeplug doit être réinitialisé, surement pour couper une éventuelle association précédente. Pour les nouveaux Freeplug, il faut appuyer 15 secondes sur le bouton lumineux, vous devriez le voir passer à l'orange, puis relâcher. Pour les anciens Freeplug, il faut appuyer sur le minuscule bouton noir pendant 10 secondes, les diodes devraient clignoter, puis repasser au vert.
  2. Une fois que tous les Freeplug (anciens ou nouveaux) ont été réinitialisés, il faut les associer deux par deux. Dans mon cas, j'ai d'abord associé les nouveaux, puis un nouveau avec un ancien. Sur un nouveau Freeplug le passage en « mode association » se fait en appuyant deux secondes sur le bouton lumineux puis en relâchant. Le voyant devrait clignoter jusqu'à ce qu'il trouve un copain. Sur les anciens Freeplug, il faut appuyer au moins une seconde sur le petit bouton noir. Pareil, il devrait clignoter jusqu'à ce qu'il trouve un copain.
Clairement, l'étape cruciale, c'est cette fameuse réinitialisation. Sans ça, pas d'association.

À partir de ce moment, les choses se sont simplifiées. Mon boitier supplémentaire avait accès au réseau mais ne voyait pas le serveur. Ah mais oui, forcément, il faut faire un « hard reboot » : retirer l'alimentation du boitier, appuyer sur un bouton de la façade, rebrancher l'alimentation. On y est presque, le boitier tente de s'installer mais le téléchargement loupe (la fameuse erreur 3), donc nouveau hard reboot... encore et encore, au moins 10 fois en tout. Mais au bout d'un moment, il y arrive et la télé est de nouveau là et je vais de nouveau pouvoir regarder les aventures de mon dauphin préféré dans ma cuisine ! Cool !

Voilà, c'était surement la pire migration de Freebox que j'ai eu à faire, mais bon rien de vraiment terrible non plus. Surtout si vous n'avez pas de boitier supplémentaire. À part ça, ma vie n'a pas changé, mon débit est toujours aussi pourri ;  certaines chaines on l'air de mieux passer sans que je ne comprenne vraiment pourquoi. Par contre, je peux appeler des portables depuis mon fixe, c'est cool parce que je ne consommais déjà pas tout mon forfait portable.

lundi 29 août 2011

Khaos à Rouen

Le 16 décembre sera une journée exceptionnelle : Arch Enemy en concert à Rouen ! Mais pour moi le véritable événement est que j'ai réservé une place... ouais, parce que les concerts, c'est pas trop mon truc : plein de gens, de la chaleur et la sueur qui va avec, un son et un confort souvent approximatif ; mais bon, je ne pouvais pas laisser Angela passer à Rouen sans aller la voir.

Donc voila, je commande mon billet et là, me saute à la figure un autre détail des concerts que je n'aime pas : la première partie. Mon problème est que j'ai généralement beaucoup de mal à appréhender la musique, il me faut beaucoup d'écoutes avant de "rentrer dedans" ; pour donner une idée, pour moi écouter un groupe inconnu en live est aussi agréable qu'une après midi à découper du bois avec une tronçonneuse mal accordée.

Ma seule solution est donc d'écouter un maximum d'album des trois groupes de la première partie avant le 16 décembre.

Le premier des trois, Chtonic, est un groupe de Black Metal originaire de Taïwan. Leur dernier album, Takasago Army, est disponible sur musicme et ça sonne plutôt bien. J'aime surtout le côté "musique traditionnelle taïwanaise" qu'ils introduisent dans leur musique.
Plutot sympa, surement un truc que je vais écouter facilement dans les temps qui viennent :) Je vous ai aussi trouvé une vidéo sur youtube (de l'album précédent) :



Le second groupe, Arkan, est aussi une bonne surprise. Eux, ce sont les "locaux" de l'étape : ils sont français et font les quatre dates de Arch Enemy en France. Leur truc, c'est de faire du métal oriental et j'aime beaucoup aussi. Leur deux albums sont dispos sur deezer. Par contre, pas de vidéo et pas (encore) de page Wikipédia non plus, je vous donne le lien vers leur site pour vous consoler : http://www.arkan.fr/ (a priori, il y a moyen d'écouter un titre).

Pour finir, Warbringer, un groupe Thrash metal originaire des États unis. Et quand je dis Thrash metal, c'est vraiment du Thrash metal ; en écoutant, j'ai eu comme l'impression de faire un bond d'une trentaine d'années en arrière ; sauf que le groupe s'est formé en 2004. Musicalement, c'est pas mon truc, c'est pas vraiment mauvais, juste chiant à mourir... et puis si je veux écouter ce genre de choses, il y a toujours les vieux Metallica, Megadeth ou Slayer.
Ils ont deux albums (mais pas le dernier) disponibles sur deezer et quelques clips sur youtube, dont celui la (choisi au hasard, j'aime pas) :



Enfin, pour ceux qui vivent dans une caverne, je vous met une vidéo d'Arch Enemy, mais bon... j'espère que vous écoutez tous ça pour vous endormir le soir et faire de beaux rêves.


dimanche 24 octobre 2010

1993, 15 ans plus tard

Rappelez vous 1993, le Death Metal est à son apogée et une foultitude de bons groupes sortaient un paquet de bons albums. Parmi ces albums, figuraient notamment Elements d'Atheist, Focus de Cynic et Spheres de Pestilence. Ces trois albums sont remarquables par leur qualité, leur originalité et aussi parce qu'ils sont chacun les derniers albums des groupes concernés avant une séparation qui semblait, jusqu'à lors, définitive.

Seulement voila, 15 ans plus tard, ils sont tous de retour ...

Avec leur Traced in Air sorti en 2008, Cynic furent les premiers à revenir dans la course. (J'en avais déjà un peu parlé). Musicalement, l'album est dans la lignée du précédent : arrangements complexes, effet sur la voix et mélodies très "aériennes". L'ensemble n'a plus grand chose à voir avec du Death Metal mais peu importe c'est très très bon, un peu court, mais très bon. (Je me demande même à quel point je ne le préfère pas au premier album... mais heu... chut, ce serait sacrilège de dire une chose pareille). Sinon, ils travaillent déjà sur l'album suivant ; je suis assez impatient ! :)

Ensuite ce fut au tour de Pestilence de revenir avec Resurrection Macabre et là j'avoue être un poil déçu, c'est du Death Metal, du vrai, pas vraiment original. Après l'excellentissime Spheres, je ne m'attendais pas à ça, mais bon... ce n'est peut être qu'une mauvaise première impression... Contrairement à Cynic, ils ont produit un clip pour un de leur morceau, le v'la donc... c'est... heu... je vous laisse juger :



Par contre, en cherchant un peu, il s'avère que leur bassiste n'avait pas attendu la réunification pour se remettre au tech-Death et a rejoint depuis 2007 le groupe Obscura où il joue de la fretless avec un certain bonheur, comme le montre cette vidéo :



La suite est, du coup, sans surprise : c'est maintenant Atheist qui se remet en selle et devrait sortir son Jupiter dans les jours qui viennent. Je n'ai pas pu en entendre grand chose pour l'instant (juste un de leur titre, Second to Sun qui traine sur youtube) mais ça semble prometteur.

Dans un style un tantinet différent, un de mes groupes préférés, Carcass, s'est aussi remis sur les rails récemment. Pour l'instant, ils ne font qu'une tournée de réunification et ne prévoient pas de ré-enregistrer un album ; mais rien n'empêche d'espérer. Je ne résiste pas au plaisir de vous mettre une ch'tite vidéo (bon ok, le clip est naze et la qualité pas géniale, mais le morceau est tellement bon...) de Heartwork, sorti en... 1993 :)



jeudi 24 juin 2010

ExpériMetal

Vu par les béotiens, le Metal est une terre aride peuplée de légions de trolls velus hurlant leur haine de tout ce qui existe avec l'originalité d'un rouleau compresseur aplatissant du bitume. Les initiés, eux, savent bien qu'au contraire, le Metal est une musique variée, raffinée même, qui sait innover, incorporer des éléments venant d'autres horizons musicaux et régulièrement repousser les limites du genre dans un sens ou dans un autre.

Cette innovation constante a conduit a une diversité musicale importante et le seul terme "Metal" est incapable de rendre compte a lui seul de cette étendue artistique qui englobe des groupes aussi différents que Primus, Deicide ou Dragonforce. Les métalleux sont donc devenu des experts dans la classification des divers courants musicaux animant la planète Metal ; seulement à la frontière, la ou les pionniers tracent les sillons de ce qui sera peut être le futur de la musique, tout le monde est regroupé dans un seul genre fourre-tout : le Metal d'Avant-garde.

C'est de quelques un de ces groupes un peu marginaux dont j'ai décidé de vous parler aujourd'hui ; au passage, et même si ça n'a rien à voir, je vais en profiter pour présenter quelques plate-formes d'écoute que j'ai découvert récemment.

Pour commencer, Diablo Swing Orchestra (DSO) est un groupe suédois avec notamment une chanteuse et un violoncelle et qui produit un Metal assez indéfinissable, enfin j'avoue avoir un peu de mal à définir... mais en tous cas, c'est très bon. Leur avant-dernier album The Butcher's Ballroom, sous licence (non libre) CC-BY-NC-ND, est disponible au téléchargement sur Jamendo. Jamendo est un site fournissant de la musique gratuite au téléchargement ; le contenu du site est dans l'ensemble peu intéressant, l'album de DSO est d'ailleurs la premier contre exemple que je trouve :)

Ensuite un album que je cherchais à écouter depuis longtemps : Supervillain Outcast de Dødheimsgard (DHG) ; le groupe était un groupe de Black Metal qui, comme beaucoup d'autres, a évolué vers des terrains plus expérimentaux avec l'âge. J'ai donc réussi à trouver cet album sur Grooveshark qui est plutôt une bonne plate-forme d'écoute : pas de pubs, pas de restrictions stupides. Par contre, un gros défaut pour moi : beaucoup d'albums n'ont pas leurs titres dans le bon ordre, ou ont des titres en double, etc. le genre de choses qui me frustrent... mais bon... tout le monde n'est pas forcément psychorigide comme moi :)

Je vais finir par le plus brutal, le plus "à la mode" et sûrement le moins écoutable des trois : Iwrestledabearonce a une forte base de Metalcore avec une nana qui chante ou braille suivant les moments et, a priori, une grosse dose de second degré. Leur album It's all happening est disponible sur musicme qui semble être une des plus vieilles plate-forme d'écoute. Leur site a le bon goût d'être plus léger que ceux des concurrents et moins truffé de flash, le choix d'albums semble aussi être assez important, par contre l'écoute est restreinte : au bout d'un "moment", ils placent un délai de 30 secondes avant l'écoute de chaque morceau... ce qui rend l'utilisation relativement pénible... dommage.

Étant à la mode, Iwrestledabearonce a même des clips et tout, en voila un exemple ; si vous choisissez de l'écouter, attendez au moins 20 secondes pour comprendre l'univers du groupe. Et bon... le break a 2:30 il tue aussi :p

mercredi 9 juin 2010

C'est le bazaar dans la TuxFamily

La bataille des systèmes de contrôle de versions est terminée et le gagnant est SVN, sans discussion possible. La victoire fut relativement facile d'ailleurs, les adversaires potentiels étant tous parti mener un autre combat : celui des systèmes de contrôle de versions distribués.

Sur ce terrain là, par contre, ça se frite dur et les candidats (et leurs supporters) sont encore nombreux : Git (Linux), Mercurial (Mozilla), Bazaar (Ubuntu) pour les plus connus ; mais aussi d'autres tels que Darcs, Monotone ou encore Fossil (qui semble super cool, soit dit en passant).

Parmi les supporters de chacun de ces différents systèmes, les forges logicielles occupent une place à part : en se basant sur tel ou tel système, elles lient leur destinée à celle du système choisi, du succès de l'un dépend le succès de l'autre.

Du coup, certaines forges préfèrent jouer la carte de la multiplicité : offrir à leur utilisateurs le choix entre plusieurs systèmes et à ce jeu la, la question se résume rapidement à « Qui a la plus grosse ? » ; quelle forge sera capable de fournir le plus de systèmes différents et donc d'attirer le plus d'utilisateurs potentiels ?

TuxFamily (tf.o) n'est pas à proprement parler une forge, mais un hébergeur ; hébergeur proposant des dépôts pour les projets libres, des mailing lists aussi et d'autres choses encore (notamment de l'hébergement Web). La nuance avec une forge est donc relativement faible et donc, pourquoi ne pas jouer aussi ?

La plateforme d'hébergement de tf.o est basée sur VHFFS, un logiciel développé par les admins de tf.o eux mêmes, avec leurs petits bras musclés. VHFFS est écrit en Perl (voui... faut pas oublier que ce sont des admins, Perl est aux admins ce que Fortran est aux physiciens ou Cobol aux banquiers ; une sorte d'objet transitionnel, un langage-doudou) et est pensé de manière modulaire pour faciliter l'ajout de nouvelles fonctionnalités, comme par exemple l'ajout d'un nouveau système de contrôle de version.

Étant moi même un hébergé heureux de tf.o et ne sachant pas forcément comment remercier les bénévoles qui rendent ce projet possible, lorsqu'un admin m'a demandé (à moitié en rigolant, je pense) si je pouvais contribuer à VHFFS, j'ai tout de suite accepté.

J'ai donc commis quelques petits patches avant de me tourner vers un premier « gros » truc : ajouter Mercurial à VHFFS (ouais, j'aime bien Mercurial). Ce qui s'avéra plus long que difficile, le support Git ayant été ajouté précédemment je n'ai eu, plus ou moins, qu'à copier ce qui avait été fait.

Fort de cette première expérience, je me suis alors tourné vers Bazaar (ouais, le truc des fanboys Ubuntu) qui n'a pas posé beaucoup plus de problèmes. Bon ok, ce n'est sûrement pas 100% fonctionnel, prêt à envoyer en prod', tout ça, mais ça viendra...

Donc voila, je suis heureux d'avoir contribué à maintenir tf.o en bonne position dans la course à l'armement des différentes forges (et assimilés) et pour finir, si vous ne connaissiez pas tf.o et que vous cherchiez ou héberger votre projet libre, vous pouvez y aller, c'est plein de gens sympas ; si vous connaissiez déja tf.o, mais vouliez tester un autre VCS c'est maintenant possible.