My Stuff

On a parfois des choses à raconter, on a parfois l’envie d’être écouté.

_____ _ | | | ___ ___ ___ _ _ ___ |_| ___ ___ | | || | |_ -|| . || | || _|| || _|| -_| |_____||_|_| |___||___||___||_| |_||_| |___|

Samedi, novembre 12th, 2011

Garlone, en temps de crise je reviens au problème initial.
J’ai toujours été la montagne, la béquille hivernale.
Une réponse contient un absolu, un mensonge qui rassure,
Donc je distille à qui veut l’entendre des histoires bleu azur.

Garlone, par méprise je me suis enfermé dans une vie diététique.
Je manque d’empathie, j’apréhende la vie comme un problème mathématique.
Pour trouver la vérité, je dois clarifier les prémisces,
Je range dans des cases le méritant, le dérisoire, la bonté et le vice.

Garlone en temps de brise partons ensemble à l’aventure.
A mettre la vie en équation j’ai fait quelques ratures.
Tes mots ont gommé ce qui chez moi allait de travers.
Je n’ai plus rien d’amer au coté de cette fille particulière.

Garlone nous ne sommes pas la reprise d’une histoire antérieure.
Nous sommes la promesse de quelque chose de beau et de meilleur.
A portée de main réside une boule de bonheur, je te la dois,
Voila pourquoi je souris lorsque mes yeux se posent sur toi.

_ _ _ _ _____ _ ___ _ _| |_ _ _ _| |_ _ _ _ _ _ _ _ _ _ _____ _____ _____ _____ _____ _____ _____ _| |_ _ _ _| |_ _ _ _ _ _ _ _ _ _ _ _ | | | ___ _ _ _ | |_ ___ | _||_| _ _ | __|| | ___ ___ _ _ ___ |_|| __| ___ | |_ ___ ___ |_||_| ___ _ _ ___ | ||_| _| | | |_ _ _ | |_ ___ ___ ___ ___ _ _ ___ ___ ___ ___ |_| ___ | | || __| ___ | _ || __|| || || || __| ___ | |_ ___ ___ |_|| __| ___ ___ ___ _ _ ___ |_| |_| ___ | |_ _ _ ___ _| || | ___ ___ |_| ___ ___ | |_ ___ | || | ___ | |_ |_| ___ ___ | || . || | | | | _|| . | | _|| ||_'_| | __|| || .'|| . || | || . | _ | __|| || . ||_ -|| . | _ | || || | || .'|| || || . | | . || | || _|| -_| |_ -|| -_|| . || | || -_|| || _|| -_| | || | | | ||__ ||___|| ||__ || --||- -||- -|| __|| || . ||_ -|| . | _ | __|| _|| .'|| . || | || . | _ | || | | . || | || || . || || -_|| _| | || ||_ -|| _|| .'|| || || .'|| _|| || . || | |__|__||___||_____| |_| |___| |_| |_||_,_| |_ _||_||__,||_ ||___||___|| ||_ _||_|_||___||___|| _|| ||_||_|_| \_/ |__,||_||_||___| |___||_ ||_| |___| |___||___||_ ||___||___||_|_||___||___| |_||_|_| |_____||_____| |__|__||_____||_____||_____||_____||_ _||_|_||___||___|| _|| ||_ _||_| |__,||_ ||___||___|| | |_||_|_| |___||___||_|_||___||_||___||_| |_||_|_||___||_| |__,||_||_||__,||_| |_||___||_|_| |_| |_| |_| |_| |_| |_| |___| |_| |_| |_| |_| |_| |_| |_|

Samedi, octobre 1st, 2011

When trying to push to Heroku I came accross this nasty bug :

   /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/specification.rb:519:in `normalize_yaml_input': invalid byte sequence in US-ASCII (ArgumentError)
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/specification.rb:479:in `from_yaml'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:183:in `load_gemspec'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:51:in `block in initialize'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:64:in `block in each'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:55:in `loop'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:55:in `each'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:32:in `initialize'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:17:in `new'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:17:in `open'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package.rb:58:in `open'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:63:in `from_io'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:51:in `block in from_file_by_path'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/open-uri.rb:35:in `open'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/open-uri.rb:35:in `open'
    from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:50:in `from_file_by_path'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/source.rb:72:in `fetch'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:45:in `block in run'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `block in each'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:44:in `run'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:8:in `install'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/cli.rb:225:in `install'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/bin/bundle:13:in `<top (required)>'
    from /usr/ruby1.9.2/bin/bundle:19:in `load'
    from /usr/ruby1.9.2/bin/bundle:19:in `<main>'

Basically it is saying that one of the Gemspec of one of my gems in containing UTF8 characters and so the slug compilation can’t go forward. Even by adding LANG = « en_US.UTF-8″ to the heroku config vars.

What did the trick was to add these two lines to the Gemfile :

LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

I didn’t know that a Gemfile could contain ruby code and get evaluated, there you go.

_____ _ _ _ _ _ _ _ _ _ _ _ _ _ | __| ___ ___ |_| ___ | ||_| ___ ___ ___ | |_ | | ___ _ _ _ |_|| |_ | |_ ___ ___ |_|| | ___ ___ ___ ___ | | _ _ _ ___ ___ | | _| | _ _ ___ ___ |__ || -_|| _|| || .'|| || ||- _|| -_|| .'|| . || || -_| | | | || || _|| | | _|| .'|| || ||_ -| _ | _|| -_|| .'|| | | | | || . || _|| || . | | | ||_ -|| -_| _ |_____||___||_| |_||__,||_||_||___||___||__,||___||_||___| |_____||_||_| |_|_| |_| |__,||_||_||___|| | |_| |___||__,||_| |_____||___||_| |_||___| |___||___||___||_| |_|

Dimanche, septembre 11th, 2011

I’ve been using the serialize extension from greg moreno for a few weeks now. But I’ve always been thrown of by the way the initialization of values is done.

Let’s say I create a User model with a :settings hash, containing :notify_mail => true as a default value. All the new created users are going to have the notify_mail value set. Now if I had another attr say :invites_count => 10. All users created afterwards are going to inherit from the two attributes, but what about all the previously created users ? They are still stuck with the only one attribute.

Since I didn’t want to have to refresh all the values for everyone every time I added another attribute to the :settings Hash, I modified the AttributeSerializer to make the setter return the default value if nothing is set.

Here is the gist :

_____ _ _ _ _____ _ | __|| |_ ___ ___ | |_ |_| ___ ___ | __| ___ ___ ___ | |_ |__ || || . || . || _|| || || . | |__ || .'|| _|| .'|| | |_____||_|_||___||___||_| |_||_|_||_ | |_____||__,||_| |__,||_|_| |___|

Dimanche, août 21st, 2011
IMG_1749IMG_1533IMG_1546IMG_1555IMG_1578IMG_1583
IMG_1587IMG_1668IMG_1672 copieIMG_1678IMG_1765 copieIMG_1858
IMG_1864IMG_1907IMG_1952IMG_1973IMG_2013IMG_2021
IMG_2025IMG_2028IMG_2031IMG_2036IMG_2042IMG_2046

Shooting Sarah, a set on Flickr.

Un samedi aprem avec Sarah.

_____ _ _ _ _____ _ _ _____ _ _____ _____ _ _ _ _____ _ _ _ | _ | ___ _| | ___ ___ |_| _| | | __| ___ |_| _| || | ||_| ___ _ _ _ | | _ _ ___ ___ ___ ___ | _ | _| | ___ ___ | |_ ___ ___ ___ ___ _| | | | _____ ___ ___ ___ _ _ |_| ___ _ _ _ ___ |_| ___ |_| ___ ___ | || || . || _|| . || || . | | | || _|| || . || | || || -_|| | | | _ | --|| | || _||_ -|| . || _|| || . || .'|| . || _|| -_|| _| | .'|| || . | |- -|| || .'|| . || -_|| | || || -_|| | | | |_ -|| ||- _|| || || . | _ |__|__||_|_||___||_| |___||_||___| |_____||_| |_||___| \___/ |_||___||_____|| | |_____||___||_| |___||___||_| |__|__||___||__,|| _||_| |___||_| |__,||_|_||___| |_____||_|_|_||__,||_ ||___| \_/ |_||___||_____| |___||_||___||_||_|_||_ ||_| |_| |_| |___| |___|

Dimanche, mai 8th, 2011

Alright, a geeky post for today, and in English so it might be useful to someone, maybe.

I had a problem with my GridView content jumping around, and here is how I fixed it :

public class PhotosGridAdapter extends CursorAdapter {

	public PhotosGridAdapter(Context context, Cursor c) {
		super(context, c);
	}

	@Override
	public void bindView(View view, Context context, Cursor cursor) {

		ImageView photo = (ImageView) view;
        String url_medium = cursor.getString(cursor.getColumnIndex(KarmaDbAdapter.PHOTO_URL_MEDIUM));
        ImageCache.download(url_medium, photo);

	}

	@Override
	public View newView(Context context, Cursor cursor, ViewGroup parent) {
		ImageView v = new ImageView(context);
		v.setLayoutParams(new GridView.LayoutParams(100, 100));
		v.setScaleType(ImageView.ScaleType.FIT_CENTER);
		bindView(v, context, cursor);
		return v;
	}
}

Basically you need to set the layout params in the newView, and not in the bindView, otherwise the previous content get shrank down.

There you go, I’m going back to my nexus.

____ _ _ _ | \ _ _ ___ ___ _____ |_| ___ | | ___ _ _ ___ _ _ | |_ | | || | || || .'|| || || _| | || .'|| | || . || | || _| |____/ |_ ||_|_||__,||_|_|_||_||___| |_||__,||_ ||___||___||_| |___| |___|

Samedi, janvier 1st, 2011

Un petit essai de layout différent pour mon blog : http://a.rnaud.net/projects/dynamic/

Interface avec un scrolling au clavier, sorte de damier qui s’étend à l’infini, compatible avec Chrome seulement (pour le scale des divs et les animations automatiques). Le design est vraiment vraiment minimaliste, un petit PoC pour me détendre.

_____ ___ _ | __| ___ | _| ___ ___ _| | ___ | __|| | | _|| .'|| .'|| . || -_| |_____||_|_| |_| |__,||__,||___||___|

Mercredi, décembre 22nd, 2010

Le monde n’est qu’un amas de règles, tout du moins c’est ce que raconte M. Albert pendant ses déjeuner d’affaires. Certaines sont dictées par notre société, d’autres par notre nature humaine. Comment se tenir, comment convaincre, comment aimer, il sait que tout a déjà été essayé, tout est devenu réglementé par deux mille années d’histoire et d’histoires. Comme un personnage kafkaïen, il a compris qu’il ne servait à rien de discuter ces règles, que pour arriver à ses fins il était plus important de naviguer habilement entre ces grands principes implicites mais pressentis de tous. Il ne l’a pas su tout de suite bien sûr, il a lu Machiavel et Sun-Tzu, mais ce sont les grandes claques bruyantes et douloureuses de la vie qu’ils l’ont finalement convaincu.

A force de le marteler, ce visage est devenu un masque de plomb, sévère et froid. En façade il est présentable, ce qu’il faut de défauts pour ne pas sembler inhumain, ce qu’il faut de prétention pour l’être tout à fait. M. Albert se nourrit de ces règles, il en abuse, il les fait danser au gré de ses besoins, de ses envies. Le libre arbitre est une blague, il est devenu une réaction, le second rôle stéréotypée d’une mauvaise fiction. M. Albert est devenu ce masque, un pantin empaillé, le sang s’est arrêté de tourner et tout est égal. Ses pensées ne font qu’un tour, en boucle, encore et à nouveau. Dans un monde sans folie les jours se ressemblent, les gens aussi. Il n’y a rien de pire que d’être d’accord avec soi-même. Alors derrière ce masque de papier il se questionne, pour la première fois depuis bien longtemps.

_ _ _ _ _ _| | ___ ___ _ _ |_|| ||_|| |_ ___ ___ | . ||_ -|| . || | || || || || . || _|| -_| |___||___||_ ||___||_||_||_||___||_| |___| |_|

Samedi, décembre 18th, 2010

Une histoire est une vision parcellaire, un instantané. Tout comme la carte n’est pas le territoire, l’histoire ne touche qu’une partie du sens, un regard forcément biaisé puisqu’il n’est pas omniscient. Même lorsque l’essence d’un moment est capturé, elle est dénaturée. C’est un gros mensonge que de voir dans ces histoires la promesse d’un instant futur, elles ne sont que des témoignages, de souvenirs parfois, de rêves bien souvent.

Le réel ne rattrapera jamais l’icône dans la course pour le beau, car les lignes fixes d’une image, d’une icône ont un attrait divin, quelque chose d’inamovible. On regarde ces lignes, ces images et l’on tombe en pâmoison devant la promesse d’une émotion éternelle, à jamais réalisée. On cherche à se souvenir de ces histoires, mais elles ne sont que les pales copies d’une vie, les enfants pauvres, une icône qu’on met en exergue pour espérer.

Le tour de force n’est pas de se plier à l’inaccessible objectif d’une histoire pré-écrite, mais de savoir danser sur les lignes mouvantes d’une vie qui réagit à la moindre de nos actions. L’icône veut devenir humaine, imparfaite. Elle cherche désespérément à faire vivre ses contours, à obtenir une chance de faire ses preuves. Pendant que des milliers d’yeux se tournent et se retournent dans l’espoir de gommer leurs failles, l’icône creuse ses pores, elle trébuche de force pour imiter l’homme.

_____ _ _ _ _ | _ || || |_ ___ ___ ___ | |_ |_| ___ ___ | || || . || -_|| _|| .'|| _|| || . || | |__|__||_||___||___||_| |__,||_| |_||___||_|_|

Mercredi, décembre 1st, 2010

M. Albert remplit sa tête comme il remplit son estomac, entre deux obligations. Un casque sur les oreilles quand il se déplace, un casque sur les oreilles quand il travaille. Il ne lit pas, il parcourt des résumés pré-mâchés et ces quelques gros titres feront office d’actualité. Ce texte n’a pas d’autre but que de le distraire, de faire passer ce temps qu’il a pourtant tant de mal à trouver. Il mange trop salé, trop sucré et ses cinq sens vomissent ce trop plein de matière et leurs saveurs exagérées. Fier de son hyper-activité il est parvenu à remplacer l’Orange Mécanique sur sa chaise de cinéma. Un lobotomisé volontaire, un imbécile heureux.

M. Albert a 30 ans et déjà tout son dictionnaire a déraillé, il confond jouissance et plaisir, sommeil et repos. Peu à peu son vocabulaire a passé l’arme à droite, il croit prendre des nouvelles de ses amis, il croit être au courant, il croit partager des idées. Il sent pourtant un vide, une nostalgie sinistre, une pitié dangereuse, mais quelle autre réponse qu’un surplus dans cette vie d’hyperboles sans frustration et sans patience. Il met ça sur le compte des écrans, il sait bien qu’il n’est pas nécessaire d’avoir vécu pour manquer, lui qui regarde le temps qu’il fait dehors sur son écran de téléphone, lui qui passe ses concerts les yeux rivés sur l’écran géant. Alors ce doit être un fantôme de vie, le halo sans forme de l’autre personne qu’il aurait pu être, plus heureux peut-être.

M. Albert a oublié qu’un jour il a passé ses mains dans la chevelure d’une femme et qu’il fut sublimé. Il ne se souvient plus de la texture de cette main étrangère. Il a effacé les quelques instants précieux qui le définissaient, qui faisaient de lui une personne à part entière. Il s’est vissé dans le crane une nouvelle vérité et elle est devenue tant bien que mal, universelle. La vie aplanit les élans avec le temps, pour qu’il n’en reste qu’un poinçon sur le cœur, une marque de passage. M. Albert est resté chez lui avec ses écrans, il a tout allumé, il a tout regardé, mais il n’a rien percé. Il n’a rien trouvé, rien cerné, il est resté là, assis à consommer sans suffoquer. M. Albert s’est éteint la nuit dernière pendant une coupure de courant.

_ _ _ | | ___ ___ | |_ _ _ ___ ___ ___ ___ _ _ | | ___ | || -_|| _|| _|| | || _|| -_| |_ -|| -_|| | || || -_| |_||___||___||_| |___||_| |___| |___||___||___||_||___|

Vendredi, novembre 5th, 2010

L’impression de me complaire dans une consommation idiote me fait froid dans le dos. Je suis témoin de ma propre décrépitude, sans saveur, sans forme, sans essence.
A force d’absorber en hâte des images acidulées, d’exploser mes tympans par des bruits sourds, mes yeux sont devenus vitreux, un voile sur le coeur, affalé sur mon siège.
Quelque chose de malsain se trame, je me sens m’enfoncer, devenir spectateur d’une vie sans asperités. J’en trépigne, je remue les jambes en pensant avancer, je bouge les lèvres espérant parler.

Donc je me débat en surface, j’accumule, je multiplie, et je déçois. Je suis devenu une ombre, l’excuse de moi-même, un alibi. Épuisé par une équation à trop d’inconnues, je me suis laissé éloigner des grands sujets, des belles choses. Impacter, troubler, acter, j’ai oublié la valeur de ces mots importants, préférant me déguiser en clown aux bords ronds. Quelle triste transition, quel réveil pesant dans un monde en noir et blanc. La mélancolie ne change pas, elle se complait et se meurt. Elle n’offre pas de rédemption, pas de solution, elle abruti jusqu’à ce qu’il ne reste que le souvenir d’une volonté. C’est donc à moi de chercher le tournant, quelque part dans ce dédale de pensées monotones, saisir la graine d’impulsion et la conserver au plus près.
Je suis prévenu.