26/10/2012

Quelques nouvelles en vrac

Ça fait un petit temps que je n'ai pas publié quoi que ce soit ici donc ce serait bien de corriger le tir par un petit post de nouvelles en vrac. Donc, depuis la dernière fois, en vrac…

J'ai mis à jour ce matin ma traduction de "How To Become A Hacker" pour qu'elle colle de nouveau à la dernière version de l'original et confirme son statut d'unique traduction française à jour de ce texte depuis maintenant quatre ans. Olé ! Pour ceux que ça intéresse : Comment devenir un hacker.

J'ai bricolé un intérprèteur brainfuck en JavaScript, et comme c'est quelque chose de totalement trivial j'ai ajouté la possibilité de mettre des breakpoints pour interrompre le programme et obtenier un dump de mémoire. Ça s'appelle Brainfunk et c'est sur GitHub.

Aussi en JavaScript j'ai pondu un remake de The Colour Clock. C'est simple, c'est libre, et ça aussi c'est sur GitHub.

Ceux qui s'ennuient ce weekend du côté de Huy peuvent aller jeter une oreille au festival caritatif qui s'organise à l'Atelier Rock et dont l'affiche comporte des noms bien sympas. J'annonce mais je n'y serai pas, faisant partie du staff technique de Getyoo sur le salon Interieur 2012 (où on croise décidément de bien beaux objets).


...la suite par ici...

01/06/2012

Werchter "boutique", indeed.

Lundi c'était le fetival Werchter Boutique (cherche pas, j'ai pas non plus pigé le nom), auquel je ne serais pas allé si une bonne tête que je ne vois pas assez souvent ne m'avait pas dit avoir une place de trop. Ghost, Gojira, Channel Zero, Mastodon, Soundgarden, Metallica ? OK d'accord, allons affronter la plaine de Werchter après 8 ans sans y avoir foutu les pieds.

C'est marrant ces gros festivals, le temps passe mais pas l'ambiance ; même le prix des bières n'augmente pas. À Werchter ce qui frappe quand on arrive c'est l'herbe encore verte et l'absence d'ombre. Bien sûr y'a deux-trois arbres et quelques tables ombragées, mais tu sens bien qu'on a optimisé la surface devant la scène pour y caler un maximum de monde.

On entre sur fond de Ghost qui a déjà commencé et ne lève pas vraiment les foules, les files aux tickets ou aux bars ne sont pas encore trop suantes, on pose son cul, ça va c'est bon c'est festival. Niveau son ils n'ont pas forcé sur la dose, des tours suppémentaires l'amènent à ceux qui sont vraiment loin de la scène. Sympa, ça évite de se flinguer les esgourdes en s'approchant assez pour voir un bout de scène (toi je ne sais pas, mais moi payer un entrée de fest pour le passer à regarder des écrans c'est pas mon kif). Bonne intention, mais aucun gain de clarté sonore pour autant. Allez, dans dix ans peut-être qu'on cessera de compresser à outrance et en attendant ferme ta gueule et va acheter un peu de merch'.

Gojira est en forme, même s'ils jouent devant un public à la frange de l'hostilité et en tout cas assez imperméable à leurs rythmiques de rhinocéros en charge. Les t-shirts à logo et les cheveux gris le confirment : les gens sont là pour Metallica avant tout. D'ailleurs le festival est formaté pour eux aussi, y compris dans le retour du snake pit pour ceux qui veulent être tout devant mais pas dans un vrai pit. Marrant.

Arrive Channel Zero, en terrain théoriquement conquis et avec un disque d'or à fêter. Le set est sympa tout plein, surtout pour son effet madeleine. Channel Zero pour moi c'est l'adolescence des headbangs sur les percus de "Black Fuel", et un peu la frustration de les avoir découvert après leur split ; cela dit vu le phénix ils ont bien fait de se mettre au vert au lieu de s'enliser dans de mauvais disques. Par contre le son un peu miteux ne les aide pas, pas plus qu'il n'aide à profiter des subtilités de la musique de Mastodon, au point que je m'accorde la sieste au soleil (mauvaise idée, faites pas ça).

Le désastre de la journée c'est Soundgarden. Soundgarden, ceux qui ont fait "Black Hole Sun", même toi tu connais. Ben ça c'était il y a vingt ans, c'était grunge, créatif, puissant. Depuis il y a eu Audioslave et les albums solo de Cornell, tout est devenu plus plat et plus lisse. Imagine un instant le gugusse, cheveux au vent, t-shirt blanc moulant, entouré d'un Ben Sheperd et un Kim Thayil qui ont l'air de se faire solidement chier de la première à la dernière minute. C'est propre et bien exécuté mais sans aucune âme, tout l'inverse de ce qu'on attend d'un concert de Soundgarden donc. C'est l'heure de manger gras.

Metallica. Metallica quoi. C'est grand, c'est suréquipé, y'a des flammes et des feux d'artifices et des… des lasers ? Ouais moi non plus j'ai pas trop pigé le délire mais ça va c'était bref et ça m'aura permi de rire à autre chose qu'aux blagues de biker d'Hetfield. À chaque fois que je vois Metallica le constat est le même : ces gars savent ce qu'est une scène, comment la remplir et comment tenir un public en haleine pendant deux heures. C'est formaté à souhait hein (j'entends encore ce "mais ouais les gars faites semblant de quitter la scène sans jouer Seek And Destroy, on va vous croire" dans le public) mais on aime ça. En plus ce soir c'est un set spécial, le Black Album en entier mais pas dans l'ordre (ça non plus j'ai pas trop pigé le concept), tout bonheur.

Après deux heures de scène ce bon Lars se sent obligé de sortir son laïus devant un public qui pourtant va déjà cramer ses derniers tickets boissons en tenant fermement un gros ballon noir, un onglet qui n'aura pas servi, une baguette anonyme, qu'importe le butin. Allez c'est l'heure, sortez tous, marchez en silence retrouver vos bagnoles, soyez pas trop pressés sur la sortie du parking et ne klaxonnez pas, les flamands n'aiment pas le bruit après 22h.

La prochaine fois j'irai à un festival moins cher et avec camping, les ados bourrés et leur enthousiasme débordant manquaient au paysage.


...la suite par ici...

11/02/2012

Chemins foncés

Vous je ne sais pas, mais moi ce que je retiens de toutes les déclarations de 2011 c'est :


"Des gosses ? Pourquoi on aurait des gosses alors qu'à la place on peut acheter des vinyls ?"

C'est de @purdey2000, relativement bourrée (et relativement à poil mais là n'est pas le propos). En vrai elle a un nom, Jessica Daubertes, et un vrai métier, graphiste. Graphiste comme "je sais dessiner et j'ai un vrai sens esthétique", pas "j'ai piraté Photoshop et Illustrator et là je suis un tuto LOL". Sérieusement, jetez un oeil à son travail, ça vaut la peine.


Si j'en parle maintenant, c'est surtout parce qu'elle et son cher et tendre directeur artistique pédant (mais talentueux donc il peut) exposent leurs dessins à côté de sérigraphies dès la semaine prochaine. Ça s'appelle Chemins Foncés, ça se passe à La Boutik à Reims et ça dure jusqu'au 20 avril. Tout est dit chez Førtifem.



...la suite par ici...

14/07/2011

Le Sonisphère à la française, c'est chaud mais c'est bon

Quand on m'a dit "y'a un Sonisphere en France cette année et le Big Four y vient et c'est dans le nord" j'ai du pousser un cri de l'ordre de "WHOUPUTAINONYVAONYVAONYVA" et, avec trois vikings de mes amis, j'y vais.

Nous étions quelques centaines à ne pas avoir été mis au courant assez tôt de la nécessité de réserver le camping, du coup on se retrouve devant le parc Walygator, à quelques kilomètres du site du festival, dans une plaine dure et sans la moindre ombre mais dotée quand même de douches et toilettes. Des navettes sont organisées pour nous mener au site et nous en ramener ; si l'attente est longue à l'aller, au retour c'est peine perdue et presque tous se tapent le trajet à pied dans la nuit noire Lorraine.

Le site est étonnant, c'est... un parking ? En tout cas c'est en trois niveaux et couvert de béton, de bitume, et de gravier bitumé qui laisse des chouettes traces noires sur le pantalon à force de s'y asseoir. Le niveau supérieur accueille les deux scènes du festival, l'une face à l'autre, ça surprend mais comme les concerts se font en alternance c'est cohérent. Au niveau intermédiaire une grande surface de restauration est couverte de bancs entourés par des stands à bouffe et un bar à Guinness et Grimbergen qui est le bienvenu (sérieusement amis Français, faut faire quelque chose parce que votre Kronenbourg là ça ne peut pas durer). Au niveau inférieur se trouve l'entrée du site, une petite scène pour les concerts off, un shop, et une autre série de bancs mais couverts donc ombragé. Profitez-en, c'est la seule zone d'ombre de tout le site ; entre le soleil de plomb et le sol en goudron, faites le calcul.

Les concerts s'enchaînent bien, un peu trop bien même, on n'a pas le temps de bien se placer d'un concert à un autre, surtout quand c'est un set court. L'avantage c'est que comme les deux scènes sont proches l'une de l'autre on a quand même un peu de vue et du son dès le départ.

Le son. Parlons-en. Je ne sais pas qui est ingénieur son pour ce festival, mais il devrait sérieusement songer à changer de métier. Les façades sont peu fournies mais distribuent des basses à ne plus savoir qu'en faire, ce qui fait que dès que ça devient enthousiaste sur la double pédale ou sur la basse (autant dire "tout le temps sauf pendant les solos") on se fait violer les oreilles par une grosse pâte de laquelle les guitares ont bien du mal à se dégager. Moi qui porte des earplugs qui atténuent moins les basses que le reste, vous imaginez ma joie de découvrir cette particularité de l'acoustique locale.

Malgré cela les groupes nous offrent des superbes shows. Une mention toute particulière à Bukowski qui est pour moi la belle découverte du festival, surprise pour Bring Me The Horizon dont les fans ont du adorer la prestation puisque je suisscotché par leur présence de scène sans aimer leur musique. Ma grosse claque du samedi est sans hésiter Gojira, les basses abusives collent quand même bien à leur musique, ou alors c'est qu'ils ont un putain de talent, je ne sais pas trop. Slipknot dans une formation amputée et en couleurs des débuts nous sert un set qui tire vers ses origines et doit avoir un effet "madeleine de Proust" sur bien d'autres que moi, puissant mais teinté d'émotion.

Les Big Four, fidèles à leur réputation, savent faire honneur à leur rang : Slayer sert une belle déferlante de puissance pure sans la moindre pause, la foule vibre au groove d'Anthrax, Megadeth est d'une perfection virtuose presque froide mais impressionnante de précision ; quant à Metallica... METALLICA quoi, deux heures de thrash bien trempé dans les gencives, old-school puissant et rapide devant une foule nombreuse qui apprécie à sa juste valeur l'écran géant (tout le fond de scène en fait) et la juste dose de pyrotechnie.

Des bons souvenirs, des pieds douloureux, un fameux coup de soleil, mais l'envie certaine qu'il y ait un Sonisphere France en 2012, voilà ce que j'en ramène. Il faut souffrir pour avoir des beaux concerts, semble-t-il.

(cet article a été rédigé pour Le Plus, blog du Nouvel Observateur ; ceci est la version que je leur ai soumis, sans édition de leur part)

...la suite par ici...

11/07/2011

PHP : for() mieux que foreach(), un mythe ?

Dans mon boulot je dois fournir pas mal de PHP, qui sera parfois mis à mal et donc doit être un peu performant. Un jour au détour d'un backlog IRC je vois passer un argument du type "il faut remplacer les foreach() par des for() sinon ça consomme trop de mémoire".

Ah bon ?

Deux coups de googlage et voilà d'autres commentaires du même ordre, mais aucun n'est soutenu par des mesures, du coup faut que j'essaie.

Pour tester, j'ai le petit script suivant :


<?php
$largearray = array();
for ($i = 0, $max = 1000; $i < $max; $i++) {
for ($j = 0, $max = 100; $j < $max; $j++) {
$largearray[$i][$j] = rand(0, 100000);
}
}

$base = memory_get_usage();
foreach ($largearray as $value) {
$foo = $value; // oui, ca ne sert a rien
}
print "foreach : ".(memory_get_peak_usage() - $base)."\n";

$base = memory_get_usage();
for ($i = 0, $max = count($largearray); $i < $max; $i++) {
$foo = $largearray[$i];
}
print "for : ".(memory_get_peak_usage() - $base)."\n";
?>


C'est d'une simplicité criminelle : d'abord on se remplit un array bidimensionnel avec des valeurs aléatoires, ensuite on va boucler dessus et bêtement copier chaque sous-tableau dans une variable qui ne sert à rien. Avant de boucler on obtient l'usage mémoire, pour mieux distinguer ce que génère le parcours.

Seulement voilà, moi on me parlait de "deux fois moins de mémoire" et j'obtiens ceci à l'exécution (valeurs en octets) :

foreach : 1540
for : 1496

Quelqu'un a pu observer un grand écart de consommation mémoire entre un for() et un foreach() sur les mêmes données ?

...la suite par ici...

03/07/2011

Du pouvoir de la ponctuation

Parce que j'aime enfoncer le clou :

In his house at R'lyeh, dead Cthulhu waits dreaming.

(The Call of Cthulhu, Howard Philips Lovercraft)

Dans sa demeure de R'lyeh la morte, Cthulhu attend en rêvant.

(L'appel de Cthulhu, traduction française de Jacques Papy et Simone Lamblin)

Selon la transcription, il y a une virgule ou pas avant "dead Cthulhu", mais dans les deux cas l'outrage est le même, "dead" se rapporte évidemment à "Cthulhu", pas à "R'lyeh".

...la suite par ici...

12/05/2011

De la déchéance de l'enseignement

Avant-hier, ce cher Mallox twittait une question piège :

6÷2(1+2)= ?

C'est fourbe, hein ?

Ce qui est un peu amer, c'est les réponses qu'il a reçu. Pour une raison qui m'échappe, des francophones qui admettent le sens de lecture de gauche à droite l'oublient quand il s'agit d'évaluer des opérations de même niveau. Chouette.

Si vous voulez vous faire encore plus mal, il y a un fil Yahoo!Answers sur le sujet, où certaines justifications deviennent hilarantes tellement elles partent dans le "ça dépend" teinté de mysticisme. Sérieusement, WTF ?

Ça remonte à si loin que ça "PEMDAS" ? C'est si incompréhensible ? Loin de moi l'envie de cracher sur les joyeux hippies qui voudraient que nos têtes blondes ne travaillent plus, n'apprennent plus rien par coeur, ne soient jamais évalués... enfin si, en fait j'ai envie de leur cracher dessus avec force et véhémence. Tu vois ce qui arrive, quand on cesse de driller sur des choses élémentaires ? Hein ? HEIN ? HEIN LARRY, TU VOIS CE QUI ARRIVE ? Z'êtes mignons tout plein, mais là on se retrouve cernés de bras cassés qui doivent sortir une calculatrice pour diviser par 10, elle est belle la civilisation.

Putain de branquignolles.

...la suite par ici...

07/05/2011

Afficher les albums par ordre chronologique sur un iPod

J'utilise iTunes pour la gestion de ma librairie musicale, et Ecoute pour la lecture. Ecoute a une interface légère, disponible de partout, et a la chouette possibilité d'afficher les albums d'un même artiste par ordre chronologique. Par contre, sur mon iPod, les albums d'un même artiste sont affichés dans l'ordre alphabétique, ce qui franchement n'a aucun sens.

Aucune option de présentation sur l'iPod ne permet de changer cela, par contre en sachant que l'iPod trie ses morceaux comme iTunes, je peux utiliser les champs "sort machin" pour forcer un critère de tri qui soit différent du champs affiché. Si dans le champs "sort album" je mets l'année de sortie suivie du nom de l'album, j'arrive à un tri d'abord par année de sortie, ensuite par ordre alphabétique au sein d'une même année. Exactement ce qu'il me faut.

Par contre c'est fastidieux, donc j'ai écrit un petit AppleScript, à placer dans ~/Library/iTunes/Scripts pour pouvoir l'appeler depuis le menu Script d'iTunes quand on a sélectionné les morceaux d'un même album :


-- Fix albums display order
-- Changes the "sort album" field, to ensure that albums get displayed in chronological order on iPods.
-- CC-BY-NC 2011, Jean-Karim Bockstael,
tell application "iTunes"
-- input checking
if selection is {} then
display dialog "You must select at least a track"
return
else
set selected_tracks to selection
repeat with a_track in selected_tracks
if a_track's album = "" then
display dialog "All tracks must have their Album field filled"
return
end if
if a_track's year = "" then
display dialog "All tracks must have their Year field filled"
return
end if
end repeat
if length of selected_tracks > 1 then
set cur_album to album of item 1 of selected_tracks
set cur_year to year of item 1 of selected_tracks
repeat with a_track in selected_tracks
if a_track's album is not equal to cur_album then
display dialog "All tracks must share the same album name"
return
end if
if a_track's year is not equal to cur_year then
display dialog "All tracks must share the same release year"
return
end if
set cur_album to a_track's album
set cur_year to a_track's year
end repeat
end if
-- actual work
repeat with a_track in selected_tracks
set a_track's sort album to (a_track's year as string) & " " & (a_track's album as string)
end repeat
end if
end tell



Hope this helps :-)

...la suite par ici...

17/04/2011

PHP : Déterminer la langue d'un visiteur

C'est dimanche, il fait beau, et je me dis que je publierais bien un truc que j'avais codé pour le boulot vendredi : la détermination, parmi des possibilités de langue, de la langue la plus appropriée au visiteur. Ça casse rien, mais c'est un problème courant donc une solution peut faire gagner du temps à pas mal de monde ;-)

Niveau implémentation, on se base sur le header HTTP Accept-Language et une liste de langues possibles fournies par l'appelant :


<?php
// get_prefered_language : renvoie la langue que le visiteur prefere
// en fonction de ce qu'il renseigne via sa requete HTTP
// et de ce qu'on indique comme disponible, ou null si rien ne va
// $available_langs est un array, par exemple array('it','fr', 'en')
function get_preferred_language($available_langs) {
// Parse du header HTTP Accept-Language
$langs = array();
// Cet en-tete HTTP est de la forme en-US,en;q=0.8,fr;q=0.6
foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $httplang) {
$rawlang = explode(';q=', $httplang);
if (strpos($rawlang[0], '-') !== FALSE) {
// On ne garde que la partie "langue" de la locale, si jamais
$rawlang[0] = substr($rawlang[0], 0, strpos($rawlang[0], '-'));
}
if (count($rawlang) == 1) {
$rawlang[1] = 1.0; // Si aucun poids n'est precise, c'est que le poids vaut 1
}
$langs[$rawlang[1]] = $rawlang[0]; // Z'avez qu'a mettre des poids distincts :p
}
krsort($langs, SORT_NUMERIC);
// Choix de la meilleure langue disponible
foreach($langs as $weight => $code) {
if (in_array($code, $available_langs)) {
return $code;
}
}
// Ah ben zut alors, pas de bol
return null;
}
?>



...la suite par ici...

14/04/2011

"Comment devenir un hacker" en version 1.03

Il y a de cela déjà "un certain temps", j'avais traduit le "How to become a Hacker" d'Eric Raymond en français, déçu par la piètre qualité ou l'obsolescence des traductions existantes (en passant ça m'a valu une menace de poursuite judiciaire, mais ça m'a permis de découvrir Jean-Marc Manach donc j'y gagne au change). L'original a évolué, la traduction évolue aussi.

En fait j'avais loupé deux versions de l'original, la 1.42 et la 1.43, donc il y a eu un peu plus de boulot que simplement retirer la mention selon laquelle Perl est plus populaire que Python. Voilà ce qui arrive quand on n'est pas assez attentif à ce qui est publié. Enfin bon, c'est en ligne, et ça constitue donc la version française du hacker-howto la plus à jour qui soit, même si ESR doit avoir quelque chose contre le français, ça fait trois ans qu'il ignore mes mails et refuse de mentionner l'existence de la moindre traductions française dans l'original. Ah, les égos enflés...

Voilà, "Comment devenir un Hacker" est plus à jour que jamais. Enjoy :)

...la suite par ici...