<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>iMeuble - Home</title>
  <id>tag:imeuble.info,2009:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  <link href="http://imeuble.info/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://imeuble.info/" rel="alternate" type="text/html"/>
  <updated>2009-07-02T02:07:42Z</updated>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-07-02:101</id>
    <published>2009-07-02T02:05:00Z</published>
    <updated>2009-07-02T02:07:42Z</updated>
    <category term="geek"/>
    <category term="Partage"/>
    <category term="code"/>
    <category term="facebook"/>
    <category term="javascript"/>
    <category term="yaps"/>
    <link href="http://imeuble.info/2009/7/2/javascript-image-preloader-without-document-images-nor-image-class" rel="alternate" type="text/html"/>
    <title>Javascript image preloader, without document.images nor Image class</title>
<content type="html">
            &lt;p&gt;I've maid &lt;a href=&quot;http://twitter.com/meuble/status/2403667690&quot; title=&quot;Javascript image preloading without document.images nor Image class. Done !&quot;&gt;this twit&lt;/a&gt; saying that I built a &lt;a href=&quot;http://gist.github.com/139217&quot; title=&quot;The Facebook Javascript Image Preloader on Gist&quot;&gt;JavaScript image preloader&lt;/a&gt;. Since many wanted to see it. There it is. &lt;/p&gt;

&lt;p&gt;I wanted to preload image for a Facebook application displaying a JavaScript photo viewer widget. And when developing Facebook applications, you have deal with &lt;a href=&quot;http://wiki.developers.facebook.com/index.php/FBJS&quot; title=&quot;FBJS Documentation&quot;&gt;Facebook JavaScript rules&lt;/a&gt; and what they call &lt;a href=&quot;http://wiki.developers.facebook.com/index.php/FBJS&quot; title=&quot;FBJS Documentation&quot;&gt;FBJS&lt;/a&gt;. I already built a &lt;a href=&quot;http://github.com/meuble/yaps/tree/master&quot; title=&quot;YAPS on github&quot;&gt;FBJS framework, YAPS&lt;/a&gt;, helping me (and other developpers) to do simple javascript tasks.&lt;br /&gt;
But &lt;a href=&quot;http://github.com/meuble/yaps/tree/master&quot; title=&quot;YAPS on github&quot;&gt;YAPS&lt;/a&gt; can't replace the Image JavasScript class nor the document.images that Facebook prevent us tu use. So I built &lt;a href=&quot;http://gist.github.com/139217&quot; title=&quot;The Facebook Javascript Image Preloader on Gist&quot;&gt;this code&lt;/a&gt; to preload images in a Facebook environment.&lt;/p&gt;

&lt;h3&gt;Code :&lt;/h3&gt;

&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;// An image preloader without using Image class nor document.images
// Built for a Facebook environment where those two are forbiden. May not work in a regular web page.
// Just change 

function Preloader(options) {
  var defaultSettings = {
    preloaderID: &amp;quot;preloader_id&amp;quot;,
    container: document.body
  };

  this.settings = this.extend(defaultSettings, options || {});
  this.buildPreloader();
};

Preloader.prototype = {
  extend: function(destination, source) {
    for (var property in source)
      destination[property] = source[property];
    return destination;
  },

  // Prepare the preloader. Just a IMG html element hidden with css.
  buildPreloader: function(preloaderId) {
    var image = document.createElement('IMG')
      .setId(this.settings.preloaderId)
      .setStyle({display: 'none'});
    this.settings.container.appendChild(image);
  },

  // Update de src attribute of our hidden tag with the passing url.
  // Having the src updated will make the tag to load the image.
  preloadPic: function(imageUrl) {
    var preloader = document.getElementById(this.settings.preloaderId);
    if (preloader) {
      preloader.setSrc(imageUrl);
      // Don't know why, setting the src make the picture visible. 
      // Have to hide it again.
      preloader.setStyle({display: 'none'});
    }
  }

};&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Usage :&lt;/h3&gt;

&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;preloader = new Preloader({
  preloaderID: &amp;quot;my_image_preloader&amp;quot;,
  container: document.getElementById(&amp;quot;my_container&amp;quot;)
});
preloader.preloadPic(&amp;quot;http://imeuble.info/assets/2008/5/21/stéphane-akkaoui-maxime-guilbot-discussion_1.jpg&amp;quot;);&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Improvements :&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If I use the same Preloader instance multiple time in a row, I'm not sure the previous image is entirely preloaded before with change the src attribut with the new url.&lt;/li&gt;
&lt;li&gt;It would have been great if I could passe an Array of urls to the preloader and let him do the work.&lt;/li&gt;
&lt;li&gt;It must be many other possible improvments. This feat my needs for the moment. Please feel free to modify it. Post an updated code in the comments.&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-06-18:100</id>
    <published>2009-06-18T06:49:00Z</published>
    <updated>2009-06-18T06:50:22Z</updated>
    <category term="Delirious"/>
    <category term="librarians"/>
    <link href="http://imeuble.info/2009/6/18/pickup-lines-used-on-librarians" rel="alternate" type="text/html"/>
    <title>Pickup lines used on librarians</title>
<content type="html">
            &lt;p&gt;That's not the way Charlotte and I went out together. I used none of this sentences on here.&lt;br /&gt;
But if I knew them, I would have !&lt;/p&gt;

&lt;blockquote&gt;
    &lt;ul&gt;
    &lt;li&gt;You're a librarian? I need to visit the library more often.&lt;/li&gt;
    &lt;li&gt;I'm a bookworm. Can I get between your covers?&lt;/li&gt;
    &lt;li&gt;Knowing you're the librarian just increased my circulation.&lt;/li&gt;
    &lt;li&gt;Mind if I check you out?&lt;/li&gt;
    &lt;li&gt;Would you like to check me out?&lt;/li&gt;
    &lt;li&gt;Can I have your phone number so you can check me out later?&lt;/li&gt;
    &lt;li&gt;Come to my room and check me out so I can get checked in to you.&lt;/li&gt;
    &lt;li&gt;Meeting you made me realize I was long overdue.&lt;/li&gt;
    &lt;li&gt;Have you heard the one about the librarian with more stacks than she could handle?&lt;/li&gt;
    &lt;li&gt;You're stacked better than the public library.&lt;/li&gt;
    &lt;li&gt;I couldn't help noticing what a great book bag you have.&lt;/li&gt;
    &lt;li&gt;You have the tightest bun in the place.&lt;/li&gt;
    &lt;li&gt;Mind if I work with your stacks?&lt;/li&gt;
    &lt;li&gt;I'd like to use my &quot;Dewey&quot; on you.&lt;/li&gt;
    &lt;li&gt;Want to come back to my room and play cataloger? I brought my own Dewey.&lt;/li&gt;
    &lt;li&gt;Let's get Dewey!&lt;/li&gt;
    &lt;li&gt;I reshelve my own books and I bet I can find a place to fit you in.&lt;/li&gt;
    &lt;li&gt;Let's play shelf reading, you be the shelf and I'll jump in.&lt;/li&gt;
    &lt;li&gt;Care to slip between the covers with me?&lt;/li&gt;
    &lt;li&gt;Let's play closing time at the library. Stand by the door and I'll slam you!&lt;/li&gt;
    &lt;li&gt;As a public librarian aren't you supposed to let me in?&lt;/li&gt;
    &lt;li&gt;So is it true academic librarians only let scholars in?&lt;/li&gt;
    &lt;li&gt;Are you a librarian who believes in open access to your stacks?&lt;/li&gt;
    &lt;li&gt;So when's the last time you were &quot;on the desk&quot;?&lt;/li&gt;
    &lt;li&gt;What's your call number?&lt;/li&gt;
    &lt;li&gt;I'd love to be a page in your section.&lt;/li&gt;
    &lt;li&gt;I like your shelves. Can I get a closer look?&lt;/li&gt;
    &lt;li&gt;You can classify me in your fantasy collection.&lt;/li&gt;
    &lt;li&gt;When I'm through, you'll need to get your bun tightened.&lt;/li&gt;
    &lt;li&gt;Are you on interlibrary loan? Because, baby, you're outta this library!&lt;/li&gt;
    &lt;li&gt;&lt;p&gt;I'll deliver positive results to the right question.&lt;/p&gt;
    
    &lt;p&gt;Low, Kathleen. &lt;strong&gt;Casanova was a librarian: a light-hearted look at the profession.&lt;/strong&gt; Jefferson, NC: McFarland &amp;amp; Co, 2007.&lt;/p&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/blockquote&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-06-10:94</id>
    <published>2009-06-10T09:20:00Z</published>
    <updated>2009-06-10T09:21:32Z</updated>
    <category term="Delirious"/>
    <category term="geek"/>
    <category term="code"/>
    <category term="github"/>
    <category term="ruby"/>
    <category term="squarespace"/>
    <category term="twitter"/>
    <link href="http://imeuble.info/2009/6/10/how-to-win-an-iphone-maybe" rel="alternate" type="text/html"/>
    <title>How to win an iPhone (maybe)</title>
<content type="html">
            &lt;ol&gt;
&lt;li&gt;Find a contest : &lt;a href=&quot;http://www.squarespace.com/iphone&quot;&gt;http://www.squarespace.com/iphone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Read the official rules.&lt;/li&gt;
&lt;li&gt;Find out that you can do watever you want to win (No RulZ !!)&lt;/li&gt;
&lt;li&gt;Build a tiny ruby script : &lt;a href=&quot;http://github.com/meuble/SquareSpace-hack/tree/master&quot;&gt;http://github.com/meuble/SquareSpace-hack/tree/master&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Register as a new twitter account (or not, you can do it with your own personal account) : &lt;a href=&quot;http://twitter.com/fake_meuble&quot;&gt;http://twitter.com/fake_meuble&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Launch the script&lt;/li&gt;
&lt;li&gt;Spam, spam and spam again&lt;/li&gt;
&lt;li&gt;Wait&lt;/li&gt;
&lt;li&gt;And win ! (maybe)&lt;/li&gt;
&lt;/ol&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-04-23:92</id>
    <published>2009-04-23T20:36:00Z</published>
    <updated>2009-04-23T21:43:07Z</updated>
    <category term="Liens"/>
    <category term="Partage"/>
    <link href="http://imeuble.info/2009/4/23/suivez-le-guide" rel="alternate" type="text/html"/>
    <title>Suivez le guide</title>
<content type="html">
            &lt;p&gt;On m'a fait la remarque (à plusieurs reprise) que je ne faisais que des billets ciblé, parlant d'informatique au pire, aux sujets geek au mieux. &lt;/p&gt;

&lt;p&gt;Il paraît que j'ai une vie à côté. Et que je peux dire autre chose.&lt;br /&gt;
Alors j'aurai bien une idée d'un sujet sur lequel je voudrais écrire depuis un bout de temps, mais il va me falloir un peu de temps pour mettre en forme mes idées et peaufiner un peu mes théories avant de les étaler au grand jour. &lt;/p&gt;

&lt;p&gt;D'ici là, je vais combler avec ce que j'ai sous la main : des geekeries (n'en déplaise à certains) et des liens. Suivez le guide de l'interweb (© bbb).&lt;/p&gt;

&lt;h3&gt;RAF (Rien à faire)&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blanksheetmusic.net/&quot;&gt;Un générateur de partition de musique&lt;/a&gt;. Peut s'avérer utile en cas de besoin. Peut remplacer les couteaux suisse.&lt;/li&gt;
&lt;li&gt;Oui, c'est geek. Même très geek, puisque personne n'en a l'utilité. Qui veut savoir le temps de latence des serveurs de l'épine dorsale d'Internet ? Et tout cas c'est par &lt;a href=&quot;http://www.internetpulse.net/&quot;&gt;là&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Une license libre. Vraiment Libre. &lt;a href=&quot;http://sam.zoy.org/wtfpl/&quot;&gt;La WTFPL&lt;/a&gt;. Si elle n'existait pas, je mourrais d'envie de l'inventer.&lt;/li&gt;
&lt;li&gt;Si vous n'avez jamais vu le début d'un arc-en-ciel, &lt;a href=&quot;http://photography.nationalgeographic.com/staticfiles/NGS/Shared/StaticFiles/Photography/Images/Content/highway-rainbow-nicklen-696533-sw.jpg&quot;&gt;voilà, c'est fait&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rhettdashwood.com.au/media/16575/alpha-map670.jpg&quot;&gt;Un abécédaire en Google Map&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Que faire avec des légo ? &lt;a href=&quot;http://www.fenti.net/&quot;&gt;Shining ?&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Apprentissage&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Zed Shaw, c'est un peu mon maître à penser. Ou mon idole. Un peu. [Une de ses présentation], sur les hiérarchie d'autorisation contre productifs.&lt;/li&gt;
&lt;li&gt;En parlant de présentation, &lt;a href=&quot;http://www.cs.umd.edu/class/spring2002/cmsc434-0101/MUIseum/applications/presentationtips.html&quot;&gt;quelques conseils pour une keynote réussie&lt;/a&gt; par Edward R. Tufte.&lt;/li&gt;
&lt;li&gt;Tout le monde peut être étudiant de Yale, Harvard ou du MIT. Sans bouger de sa chaise. Grace au projet &lt;a href=&quot;http://academicearth.org/&quot;&gt;Academic Earth&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Les math c'est plus ce que c'était. Les &lt;a href=&quot;http://www.morenewmath.com/&quot;&gt;Nouvelles Matémathiques&lt;/a&gt; vous permet d'appréhender les problèmes du nouveau monde.&lt;/li&gt;
&lt;li&gt;Une série de t-shirt que si vous ne savez pas quoi m'offrir, maintenant vous savez. &lt;a href=&quot;http://www.isteamphone.com/&quot;&gt;iSteam&lt;/a&gt;, &lt;a href=&quot;http://www.explodedphone.com/&quot;&gt;Exploded iPhone&lt;/a&gt;, &lt;a&gt;MacGhosts&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mint.com/blog/finance-core/china-vs-united-states-a-visual-comparison/&quot;&gt;Une comparaison entre la Chine et les États Unis&lt;/a&gt; par le formidable gars de &lt;a href=&quot;http://wallstats.com/&quot;&gt;WallStats&lt;/a&gt;. Un site a parcourir avec plein d'idées cadeau ^_^&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Typographie&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Un très zoulie typographie sur &lt;a href=&quot;http://www.youtube.com/watch?v=tP5yA3RwzOk&quot;&gt;There is a War going on for your Mind&lt;/a&gt; des Flobots.&lt;/li&gt;
&lt;li&gt;Oui, d'accord, c'est une pub pour Jive Software. Mais quand même, j'aime bien ce qu'ils disent et la façon dont c'est présenté. &lt;a href=&quot;http://www.youtube.com/watch?v=0Y6aceiLzCI&quot;&gt;What if work was social again ?&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Vidéo&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sur EasyJet, ils n'ont pas les mêmes stewards. Chez SouthWest Airlines on &lt;a href=&quot;http://www.youtube.com/watch?v=fiVcnJ5iLqs&quot;&gt;rap&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Une oie, c'est têtue. &lt;a href=&quot;http://www.youtube.com/watch?v=6OStX_wrWGg&quot;&gt;Très têtue&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://vimeo.com/3514904&quot;&gt;Le petit chaperon rouge&lt;/a&gt; révisé par Thomas Nilson.&lt;/li&gt;
&lt;li&gt;Un &lt;a href=&quot;http://www.youtube.com/watch?v=iROYzrm5SBM&amp;amp;amp;feature=player_embedded&quot;&gt;guide des bonnes conduite sur Facebook&lt;/a&gt; très bien foutu. Zouli et marrant.&lt;/li&gt;
&lt;li&gt;Un zoulie vidéo d'un &lt;a href=&quot;http://vimeo.com/3365942&quot;&gt;créateur&lt;/a&gt;. Bon elle est vieille, tout le monde doit l'avoir vue maintenant.&lt;/li&gt;
&lt;li&gt;Une zoulie vidéo pour comprendre la crise des subprimes. &lt;a href=&quot;http://www.crisisofcredit.com/&quot;&gt;Crisis of Credits&lt;/a&gt; Avec même des t-shirt pour aider l'auteur a survivre aux difficultés financières. Et si vous n'avez pas compris, &lt;a href=&quot;http://vimeo.com/4240369&quot;&gt;un ratrapage&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Et pour finir une zoulie chanson pour le mariage de mon grand frère. &lt;a href=&quot;http://www.dailymotion.com/video/x901tv_benben-music_creation&quot;&gt;Ben&amp;amp;Ben&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-04-21:85</id>
    <published>2009-04-21T21:59:00Z</published>
    <updated>2009-04-21T22:00:38Z</updated>
    <category term="geek"/>
    <category term="Partage"/>
    <category term="&quot;best practices&quot;"/>
    <category term="ruby"/>
    <link href="http://imeuble.info/2009/4/21/cauchemars" rel="alternate" type="text/html"/>
    <title>Cauchemars</title>
<content type="html">
            &lt;p&gt;Je suis loin d'être un maître de la programmation. Je suis sûr que mon code comporte lui aussi des trucs un peu moche. Mais quand même, des fois faut pas pousser.&lt;/p&gt;

&lt;p&gt;Il y a des trucs qu'il ne faut pas faire.&lt;br /&gt;
Et il y a des gens pour les faire...&lt;/p&gt;

&lt;h4&gt;Redirection après login&lt;/h4&gt;

&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;if session[:return_to]
  redirect_to root_path
else
  redirect_to user_profile_url(@user_session.account.user)
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ca par exemple ça ne sert à rien. Pourquoi se préoccuper d'où vient l'utilisateur, pourquoi s'embêter à stocker ses volontés quand il se confronte à un accès restreint, si on n'en tiens pas compte ? Et si l'utilisateur ne voulait pas aller à l'accueil ? &lt;/p&gt;

&lt;h4&gt;Des boutons radio à valeurs variables&lt;/h4&gt;

&lt;pre&gt;&lt;code class=&quot;html&quot;&gt;&amp;lt;label&amp;gt;&amp;lt;%= t('title') %&amp;gt;&amp;lt;/label&amp;gt;
&amp;lt;span class=&amp;quot;radio&amp;quot;&amp;gt;
  &amp;lt;%= m.radio_button :title, t('mister') %&amp;gt;
  &amp;lt;%= m.label :title_mister, t('mister') %&amp;gt;
  &amp;lt;%= m.radio_button :title, t('madam') %&amp;gt;
  &amp;lt;%= m.label :title_madam, t('madam') %&amp;gt;
  &amp;lt;%= m.radio_button :title, t('miss') %&amp;gt;
  &amp;lt;%= m.label :title_miss, t('miss') %&amp;gt;
&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Vouloir internationaliser une application, c'est une bonne chose. Mais il y a des excès à ne pas atteindre. Si la valeur d'un bouton radio est internationalisé, la valeur sera différente en fonction de la langue de l'utilisateur. Déjà, seul comme ça ça peut être confusant.&lt;br /&gt;
Mais si en plus on enregistre le sex de l'utilisateur sans plus de contrôle, on aura en base dans le champs title : &quot;Monsieur&quot;, &quot;Madame&quot; ou &quot;Mademoiselle&quot; mais aussi &quot;Mister&quot;, &quot;Mrs&quot;, &quot;Miss&quot;, etc...&lt;/p&gt;

&lt;p&gt;Imaginez alors qu'on veuille chercher tout les messieurs de notre application ? &lt;code&gt;SELECT * FROM users WHERE title in (&quot;Monsieur&quot;, &quot;Mister&quot;)&lt;/code&gt;. Et si maintenant je rajoute une langue (au hasard, le russe), faut que je modifie toutes mes requêtes et que je rajoute &lt;code&gt;господи́н&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;Trop de normalisation, sans transaction&lt;/h4&gt;

&lt;p&gt;Sur une application, on a des membres. Ces membres sont de différents type, peuvent se connecter de différentes manières (classique, facebook connect, openId, ...), possèdent d'autres objets (articles, commentaires, projets) et ont une adresse et une image. &lt;/p&gt;

&lt;p&gt;Si on normalise, on a un membre, qui est composé d'un user et d'un compte. Il a aussi une adresse postal (avec vile, code postal et pays) et ses articles. Et pour créer une user ça devient : &lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;def create
  @account = Account.new(params[:account])
  @member = Member.new(params[:member])
  @visual = Visual.new(params[:visual])
  @address = Address.new(params[:address])
   if @account.valid? &amp;amp; @member.valid? &amp;amp; @visual.valid?
    @account.save
    @address.save(false)
    @member.create_user.account = @account
    @member.visual = @visual
    @member.address = @address
    @member.save

    flash[:success] = &amp;quot;Ok.&amp;quot;
    redirect_to root_path
  else
    render :action =&amp;gt; :new
  end
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;C'est long pour un contrôleur, non ? Admettons même que ce se soit dans un modèle, ça reste moche. Tout ces &lt;code&gt;save&lt;/code&gt; dont certains sans validation, peuvent entraîner plein de problèmes : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Levée d'exception SQL parce qu'il n'y a pas les bons type&lt;/li&gt;
&lt;li&gt;Il n'y a pas de transaction encadrant tout ça. Si ça ne marche pas à un endroit, on se retrouve avec une table bancale, voir corrompue.&lt;/li&gt;
&lt;li&gt;Comme dans l'exemple on pourrait oublier de vérifier certains modèles (ici &lt;code&gt;@adresse&lt;/code&gt; n'est pas validé et sauvé dans validation).&lt;/li&gt;
&lt;li&gt;La modification d'un tel code n'est pas aisée et devant la confusion, on ne sait pas trop quel serait l'impact d'une modification...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si au lieu de ça, on démoralisait un peu, on pourrait simplifier les choses. Un utilisateur n'a qu'une adresse postale, donc on peut ajouter les champs rue, ville pays et code postal au membre. De même, il n'a qu'un avatar, et même si d'autres modèle peuvent aussi avoir un avatar, il vaut mieux utiliser le &lt;em&gt;duck typing&lt;/em&gt; et les surcharges d'opérateurs que la composition. Enfin, plutôt que de démultiplier les dépendances, on pourrait gérer les types de membre par de l'héritage (spécialisation) plutôt que par de la composition. Cela permet une plus grande généralisation (il y aura une méthode &lt;code&gt;send_message&lt;/code&gt;pour tout le monde, dont le comportement sera différent pour tous).&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-03-27:76</id>
    <published>2009-03-27T01:20:00Z</published>
    <updated>2009-03-27T01:21:41Z</updated>
    <category term="geek"/>
    <category term="Partage"/>
    <category term="code"/>
    <category term="javascript"/>
    <link href="http://imeuble.info/2009/3/27/param-tres-optionnels-en-javascript" rel="alternate" type="text/html"/>
    <title>Param&#232;tres Optionnels en JavaScript</title>
<content type="html">
            &lt;p&gt;Dans bien des langages, il est possible de définir des paramètres optionnels dans la signature des méthodes. Ces paramètres prennent une valeure par défaut s'ils ne sont pas spécifiés à l'appel de la méthode.&lt;/p&gt;

&lt;p&gt;Par exemple, on pourrait être tenté d'écrire : &lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;var saySomething = function(value = &amp;quot;default value&amp;quot;) {
        alert(value);
     }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Seulement, en JavaScript, cela ne fonctionne pas.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Par contre, on peu utiliser une propriété de JavaScript pour arriver à nos fins : si un argument est attendu  dans la signature mais pas spécifié dans l'appel, il sera alors de tupe &lt;code&gt;&quot;undefined&quot;&lt;/code&gt;. On peut donc faire :&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;var saySomething = function(value) {
      if (typeof value == &amp;quot;undefined&amp;quot;) {
        value = &amp;quot;default value&amp;quot;;
      }
      alert(value);
    }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Seulement, ce n'est pas très élégant. Si nous avons plusieurs arguments optionnel, la succession de structures conditionnelles peut vite devenir ennuyeuse.&lt;/p&gt;

&lt;p&gt;Pour y remédier, on peut utiliser les &lt;a href=&quot;https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object&quot; title=&quot;les objets en JavaScript&quot;&gt;objets&lt;/a&gt;. En Javascript, les objets sont des ensembles de clé/valeur dont les premières sont des dénominations et les dernières des instances d'autres objets. Ils sont comparables aux hashes Ruby et on peut avoir des &lt;a href=&quot;https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for...in&quot; title=&quot;L'instruction for..in en JavaScript&quot;&gt;itérateurs&lt;/a&gt; dessus grace à l'instruction &lt;a href=&quot;https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/in_Operator&quot; title=&quot;L'instruction in en JavaScript&quot;&gt;in&lt;/a&gt; et à la structure de bouche &lt;a href=&quot;https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for&quot; title=&quot;L'instruction for en JavaScript&quot;&gt;for&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Du coup, on pourrait imaginer le code suivant :&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;var extend_instance = function(destination, source) {
      for (var property in source)
        destination[property] = source[property];
      return destination;
    }
    var saySomething = function(params) {
      params = extend_instance({
        value: 'default value', 
        from: 'Anonymous Caword'
      }, params);
      alert(params.from + &amp;quot;say :&amp;quot; + params.value);
    }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;L'appel de la méthode change un peu puisqu'il faut maintenant lui donner un objet, mais cela rend le code plus souple aux changement et n'impose aucun ordre aux arguments. &lt;/p&gt;

&lt;p&gt;Pour aller encore un peu plus loin et en gardant les avantages de cette méthode, on pourrait se servir de la variable local aux méthodes : &lt;a href=&quot;https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments&quot; title=&quot;L'instruction arguments en JavaScript&quot;&gt;arguments&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;var extend_instance = function(destination, source) {
      for (var property in source)
        destination[property] = source[property];
      return destination;
    }
    var saySomething = function() {
      params = extend_instance({
        value: 'default value', 
        from: 'Anonymous Caword'
      },arguments[0] || { });
      alert(params.from + &amp;quot;say :&amp;quot; + params.value);
    }&lt;/code&gt;&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-03-24:75</id>
    <published>2009-03-24T09:36:00Z</published>
    <updated>2009-03-24T09:42:21Z</updated>
    <category term="Delirious"/>
    <category term="geek"/>
    <category term="42"/>
    <category term="uptime"/>
    <link href="http://imeuble.info/2009/3/24/42-it-s-time" rel="alternate" type="text/html"/>
    <title>42, it's time !</title>
<content type="html">
            &lt;p&gt;Wouahou !&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; [20:53:21][sakkaoui@Sylar](~): uptime
 20:53  up 42 days, 42 mins, 7 users, load averages: 0.16 0.28 0.23
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;C'est bon, je peux l'éteindre et faire toutes les mises à jour. Il a atteint le chiffre parfait, la maturité.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-03-03:68</id>
    <published>2009-03-03T11:11:00Z</published>
    <updated>2009-03-03T11:20:25Z</updated>
    <category term="Delirious"/>
    <category term="geek"/>
    <category term="day"/>
    <category term="root"/>
    <category term="square"/>
    <link href="http://imeuble.info/2009/3/3/square-root-day" rel="alternate" type="text/html"/>
    <title>Square Root Day</title>
<content type="html">
            &lt;p&gt;Nous sommes aujourd'hui le 3 Mars 2009. &lt;/p&gt;

&lt;p&gt;Soit le 03/03/09, comme l'écriraient nos amis d'outre-atlantique. Et comme chacun le sait, 3 est la racine carrée de 9.&lt;br /&gt;
Ce jour est donc béni des dieux, un jour où tout peut arriver : la fin de la guerre dans le monde, la venue des extraterrestres sur terre, l'abolition des frontières, un noir à la présidence des États Unis d'Amérique (ha, non, ça c'est déjà fait), ...&lt;/p&gt;

&lt;p&gt;C'est quand même rare, les jours de racine carrée, non ? Imaginez vous que le précédent était le 2 février 2004. Et que le prochain sera le 4 Avril 2016 ! En fait, quand on compte, il ne peut y en avoir que 9 par siècle, tous pareil. &lt;/p&gt;

&lt;p&gt;Petit lien pour en savoir plus : &lt;a href=&quot;http://en.wikipedia.org/wiki/Square_root_day&quot;&gt;Wikipedia, The Square Root Day&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-02-25:66</id>
    <published>2009-02-25T12:14:00Z</published>
    <updated>2009-02-25T12:20:59Z</updated>
    <category term="geek"/>
    <category term="safari"/>
    <link href="http://imeuble.info/2009/2/25/jouer-avec-safari-4" rel="alternate" type="text/html"/>
    <title>Jouer avec Safari 4</title>
<content type="html">
            &lt;p&gt;Wouawou ! Apple a sorti &lt;a href=&quot;&quot; /&gt;une nouvelle version de Safari&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Parmi les nouvelles fonctionnalités, je retiens : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La barre d'onglet est passée au-dessus de la barre d'URL&lt;/li&gt;
&lt;li&gt;Le signal de chargement est passé d'une barre de progression bleue à un spinner&lt;/li&gt;
&lt;li&gt;La navigation dans l'historique se fait via coverflow&lt;/li&gt;
&lt;li&gt;Une jolie présentation des sites les plus visités en page d'accueil&lt;/li&gt;
&lt;li&gt;Un changement de l'autocomplétion dans la barre d'URL (pour une recherche à la Firefox)&lt;/li&gt;
&lt;li&gt;Un léger redesign de la page des signets&lt;/li&gt;
&lt;li&gt;Un Inspecteur Web bien plus performant et avec plus de fonctionnalité que l'ancien (un firebug-like, maintenant)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y a un truc que je n'aime pas : la barre d'onglet au dessus de la barre d'URL.&lt;/p&gt;

&lt;p&gt;En cherchant dans les préférences, il n'y a rien qui me permette de la redescendre. Alors il a fallu ruser.&lt;/p&gt;

&lt;h4&gt;Quelles sont les clés que Safari utilise ?&lt;/h4&gt;

&lt;p&gt;Bah oui, souvent dans les programmes Apple, on peut se détourner les comportements par défaut en jouant avec des clés, un peu comme les registres.&lt;/p&gt;

&lt;p&gt;Alors parsons le binaire pour voir ce qu'il a dans le ventre : &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sakkaoui@mcMeuble:~$ strings /Applications/Safari.app/Contents/MacOS/Safari | grep Safari4
DebugSafari4TabBarIsOnTop
DebugSafari4IncludeToolbarRedesign
DebugSafari4IncludeFancyURLCompletionList
DebugSafari4IncludeGoogleSuggest
DebugSafari4LoadProgressStyle
DebugSafari4IncludeFlowViewInBookmarksView
DebugSafari4TopSitesZoomToPageAnimationDimsSnapshot
DebugSafari4IncludeTopSites
BookmarksToolbarProxiesWereConvertedForSafari4
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Bah voilà ! Ce qu'on cherchait est en premier. On peut jouer avec ces options grâce à la commande defaults, qui nous permet d'ajouter/supprimer/modifier des clés dans les préférences de l'utilisateur. &lt;/p&gt;

&lt;p&gt;On écrit avec :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;defaults write domain { 'plist' | key 'value' }
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;On supprime avec :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;defaults delete [domain [key]]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Allez, on va faire les options dans l'ordre.&lt;/p&gt;

&lt;h4&gt;Déplacer la barre de signet&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;sakkaoui@mcMeuble:~$ defaults write com.apple.Safari DebugSafari4TabBarIsOnTop -bool NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ce qui aura pour effet de remettre la barre d'onglet au bon endroit : en dessous de la barre d'URL.&lt;/p&gt;

&lt;h4&gt;Jouer avec le signal de chargement&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;sakkaoui@mcMeuble:~$ defaults write com.apple.Safari DebugSafari4IncludeToolbarRedesign -bool NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;On remplace le spinner de la barre d'URL (placé à droite normalement) par un autre spinner, placé à gauche, en forme de camembert bleu clair se remplissant &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;defaults write com.apple.Safari DebugSafari4LoadProgressStyle -bool NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;On remet la barre de progression bleue comme avant (on enlève les spinner)&lt;/p&gt;

&lt;p&gt;À noter qu'aucune des deux options ne change le spinner sur les onglets qui ne sont pas au premier plan.&lt;/p&gt;

&lt;h4&gt;Gérer les autocomplétions&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;sakkaoui@mcMeuble:~$ defaults write com.apple.Safari DebugSafari4IncludeFancyURLCompletionList -bool NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Reviens à l'ancien autocompléteur de la barre d'URL, qui cherche uniquement dans les URL (et non dans les titres de page).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sakkaoui@mcMeuble:~$ defaults write com.apple.Safari DebugSafari4IncludeGoogleSuggest -bool NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Désactive l'autocomplétion de la recherche Google.&lt;/p&gt;

&lt;h4&gt;Désactiver le coverflow&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;sakkaoui@mcMeuble:~$ defaults write com.apple.Safari DebugSafari4IncludeFlowViewInBookmarksView -bool NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Enlève le coverflow dans la page des signets.&lt;/p&gt;

&lt;h4&gt;Jouer avec la nouvelle fonctionnalité des top pages&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;sakkaoui@mcMeuble:~$ defaults write com.apple.Safari DebugSafari4TopSitesZoomToPageAnimationDimsSnapshot -bool NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Enlève le masque transparent noir au chargement d'une des top page (après avoir cliqué dessus).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sakkaoui@mcMeuble:~$ defaults write com.apple.Safari DebugSafari4IncludeTopSites -bool NO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Désative complètement la fonctionnalité top page.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-01-28:63</id>
    <published>2009-01-28T09:29:00Z</published>
    <updated>2009-01-28T09:52:14Z</updated>
    <category term="Delirious"/>
    <category term="geek"/>
    <category term="irc"/>
    <link href="http://imeuble.info/2009/1/28/irc-accessible" rel="alternate" type="text/html"/>
    <title>IRC Accessible</title>
<content type="html">
            &lt;pre&gt;&lt;code&gt;  Day changed to 27 Jan 2009
  10:12 &amp;lt; meuble&amp;gt; _o/
  10:19 &amp;lt; al&amp;gt; \o_
  10:28 &amp;lt; _Nono&amp;gt; _o_
  18:11 &amp;lt; negat|f&amp;gt; \o/
  18:26 &amp;lt; fuse&amp;gt; \o\
  Day changed to 28 Jan 2009
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Voilà des geeks accessibles : ils parlent en langue des signes pour se mettre à la place de leurs amis handicapés et concevoir un moyen de communication numérique commun. &lt;/p&gt;

&lt;p&gt;Merci à eux.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2009-01-23:59</id>
    <published>2009-01-23T09:35:00Z</published>
    <updated>2009-01-23T09:36:59Z</updated>
    <category term="Delirious"/>
    <category term="geek"/>
    <category term="base de donn&#233;e"/>
    <category term="pologne"/>
    <link href="http://imeuble.info/2009/1/23/l-informatique-en-pologne" rel="alternate" type="text/html"/>
    <title>L'informatique en Pologne</title>
<content type="html">
            &lt;p&gt;Délocaliser les développements en Pologne, ça a ses avantages et ses inconvénients.&lt;/p&gt;

&lt;p&gt;Parmi les inconvénients, si je demande un schéma de base de données, j'obtiens ça :&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Polish Database sheet&quot; src=&quot;http://imeuble.info/assets/2009/1/23/Image_5.png&quot; alt=&quot;Polish database sheet&quot; /&gt;&lt;/p&gt;

&lt;p&gt;sic.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2008-12-01:55</id>
    <published>2008-12-01T06:44:00Z</published>
    <updated>2008-12-03T09:33:14Z</updated>
    <category term="geek"/>
    <category term="Partage"/>
    <category term="facebooker"/>
    <category term="pr&#233;sentation"/>
    <category term="rails"/>
    <category term="railsparty"/>
    <link href="http://imeuble.info/2008/12/1/facebooker-et-yaps-la-railsparty" rel="alternate" type="text/html"/>
    <title>Facebooker et Yaps &#224; la RailsParty</title>
<content type="html">
            &lt;p&gt;Voilà, c'est passé.&lt;/p&gt;

&lt;p&gt;Hier, s'est déroulée la RailsParty, le before_filter à ParisonRails 2008 d'aujourd'hui.&lt;/p&gt;

&lt;p&gt;En commençant à 16h, la soirée a été remplie de bonnes rencontres et de présentations intéressantes. Parmi les participants de cette première édition, j'ai notamment apprécié le retour d'expérience d'&lt;a href=&quot;http://people.no-distance.net/ol/index.fr.html&quot;&gt;Olivier Gutknecht&lt;/a&gt; sur un déploiement de Fotonauts et la présentation d'i18n par Renaud Morvan. &lt;a href=&quot;http://boldr.fr/&quot;&gt;Nicolas Mérouze&lt;/a&gt; ou &lt;a href=&quot;http://www.xilinus.com/&quot;&gt;Sébastien Gruhier&lt;/a&gt; étaient également de la partie pour nous faire partager leurs connaissances.&lt;/p&gt;

&lt;p&gt;En ce qui concerne ma présentation, malgré la difficulté de se faire entendre de tous, elle se sont bien passées. Pour ceux qui seraient interessés, je vous met à disposition les slides de présentation de cette intervention, ainsi que ceux de la présentation éclaire de YAPS.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://imeuble.info/assets/2008/12/1/RailsParty_Facebooker.pdf&quot;&gt;Développement sous Facebook en Rails : Facebooker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://imeuble.info/assets/2008/12/1/yaps.pdf&quot;&gt;YAPS : Javascript sous Facebook&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Merci à ceux qui sont venus et à Ruby France pour avoir organisé l'événement.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2008-11-24:54</id>
    <published>2008-11-24T17:58:00Z</published>
    <updated>2008-11-24T18:26:05Z</updated>
    <category term="geek"/>
    <category term="Partage"/>
    <category term="facebook"/>
    <category term="presentation"/>
    <category term="rails"/>
    <category term="ruby"/>
    <category term="sociabliz"/>
    <link href="http://imeuble.info/2008/11/24/une-rails-party-par-ruby-france" rel="alternate" type="text/html"/>
    <title>Une Rails Party par Ruby France !</title>
<content type="html">
            &lt;h3&gt;Quoi ?&lt;/h3&gt;

&lt;p&gt;Pour annoncer la série de conférence de &lt;a href=&quot;http://paris.onrails.info/&quot; title=&quot;Paris on Rails 2008&quot;&gt;Paris on Rails 2008&lt;/a&gt;, &lt;a href=&quot;http://www.rubyfrance.org/&quot; title=&quot;Ruby France&quot;&gt;l'association Ruby France&lt;/a&gt; organise une &lt;a href=&quot;http://www.rubyfrance.org/evenements/rails-party-2008&quot;&gt;Rails Party&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Décrite comme un &lt;strong&gt;Social Event&lt;/strong&gt;, la &lt;a href=&quot;http://www.rubyfrance.org/evenements/rails-party-2008&quot;&gt;Rails Party&lt;/a&gt; est une journée complémentaire à &lt;a href=&quot;http://paris.onrails.info/&quot; title=&quot;Paris on Rails 2008&quot;&gt;Paris on Rails&lt;/a&gt;, donc dédiée au framework Ruby on Rails et ce qui va avec (Prototype, plugins de test, applications, ...).&lt;/p&gt;

&lt;h3&gt;Où ? Quand ?&lt;/h3&gt;

&lt;p&gt;Elle aura lieu le &lt;em&gt;Dimanche 30 Novembre 2008&lt;/em&gt; au &lt;em&gt;Dune&lt;/em&gt;, 18 avenue Claude Vellefaux, 75010 Paris.&lt;/p&gt;

&lt;h3&gt;Comment venir ?&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metro 2,  Colonel Fabien&lt;/li&gt;
&lt;li&gt;Metro 11, Goncourt&lt;/li&gt;
&lt;li&gt;Vélib, station n°10032 (n°12-14, avenue Claude Vellefaux)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Programme&lt;/h3&gt;

&lt;p&gt;Je ne vais pas détailler ici le programme complet de la &lt;a href=&quot;http://www.rubyfrance.org/evenements/rails-party-2008&quot;&gt;Rails Party&lt;/a&gt;, celui ci pouvant changer à tout moment. Dirigez vous vers la page officiel de l'événement pour une version vraiment à jour. &lt;/p&gt;

&lt;p&gt;Je peux quand même vous dire que j'y donnerais 2 présentations au nom de &lt;a href=&quot;http://www.sociabliz.com&quot;&gt;Sociabliz&lt;/a&gt; : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Un atelier de 20 minutes sur Facebooker, un plugin permettant de développer des applications Facebook avec Ruby on Rails.&lt;/li&gt;
&lt;li&gt;Une présentation éclaire de 5 minutes sur &lt;a href=&quot;http://github.com/meuble/yaps/tree/master&quot;&gt;Yaps&lt;/a&gt;, une bibliothèque javascript pour Facebook visant à porter les foncionnalité de Prototype et de Scriptaculous sur la plateforme de développement Facebook.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;+ d'infos ?&lt;/h3&gt;

&lt;p&gt;Pour des infos complémentaires, vous pouvez aller :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sur la &lt;a href=&quot;http://www.rubyfrance.org/evenements/rails-party-2008&quot;&gt;page officielle de la Rails Party&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sur la &lt;a href=&quot;http://railsparty.ror.bearstech.com/&quot;&gt;page d'inscription de la Rails Party&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2008-11-12:53</id>
    <published>2008-11-12T08:57:00Z</published>
    <updated>2008-11-12T08:59:08Z</updated>
    <category term="Delirious"/>
    <category term="geek"/>
    <category term="facebook"/>
    <category term="google"/>
    <link href="http://imeuble.info/2008/11/12/facebook-icon" rel="alternate" type="text/html"/>
    <title>Facebook Icon</title>
<content type="html">
            &lt;p&gt;Gni ?&lt;/p&gt;

&lt;p&gt;Qu'ai-je  voire avec les icônes Facebook ? En suis-je une moi-même ? 
Bigre, j'ai du soucis à me faire...&lt;/p&gt;

&lt;p&gt;&lt;img title=&quot;Facebook Icon Google Result&quot; src=&quot;http://imeuble.info/assets/2008/11/12/facebook_icon.png&quot; alt=&quot;Facebook Icon Google result&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Si c'est encore vrai, vous pouvez aller voir le &lt;a href=&quot;http://www.google.com/search?q=facebook%2Bicon&quot; title=&quot;Recherche Google&quot;&gt;résultat de la recherche &quot;Facebook+Icon&quot;&lt;/a&gt; dans google.&lt;/p&gt;

&lt;p&gt;Promis, bientôt je vous ferais un vrai billet intéressant avec du javascript, des applis facebook et tout. Pas dans un mois. Juré.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://imeuble.info/">
    <author>
      <name>Meuble</name>
    </author>
    <id>tag:imeuble.info,2008-09-12:50</id>
    <published>2008-09-12T23:53:00Z</published>
    <updated>2008-09-13T00:00:35Z</updated>
    <category term="Partage"/>
    <category term="fac"/>
    <category term="rails"/>
    <category term="sociabliz"/>
    <link href="http://imeuble.info/2008/9/12/ping" rel="alternate" type="text/html"/>
    <title>Ping (uninteresting content inside)</title>
<content type="html">
            &lt;p&gt;Hey ! Ca fait 2 mois que je n'ai pas écrit ici !&lt;/p&gt;

&lt;p&gt;Pourtant des choses se sont passées...&lt;/p&gt;

&lt;h3&gt;Capri, c'est fini !&lt;/h3&gt;

&lt;p&gt;Heu, pardon. INSIA c'est fini. &lt;/p&gt;

&lt;p&gt;J'ai fini mon stage le 28 Août dernier, ceci clôturant définitivement mon parcours d'élève ingénieur de l'&lt;a href=&quot;http://www.insia.org&quot;&gt;INSIA&lt;/a&gt;. Il était temps, après 5 ans d'apprentissage dans cette école.&lt;/p&gt;

&lt;p&gt;Alors ayé, je suis ingénieur en informatique. Je peux me la péter grave et exiger des salaires mirobolants. Je ne sais pas ce que ça va m'apporter d'autre en fait, mais c'est déjà pas mal.&lt;/p&gt;

&lt;h3&gt;Capri, c'est fini ! (#2)&lt;/h3&gt;

&lt;p&gt;Heu, encore pardon. Dimelo c'est fini.&lt;/p&gt;

&lt;p&gt;Bah oui, j'ai fini mon stage et j'ai souhaité ne pas rester chez eux pour mon premier &quot;vrai travail&quot;, d'autres projets m'attendant au tournant.&lt;br /&gt;
N'empêche que ce fut un excellent stage, le meilleur que j'ai pu avoir sans doute. L'équipe de Dimelo a toute ma reconnaissance pour les bons moments passés et les enseignements que j'ai pu recevoir pendant ces 10 mois. &lt;/p&gt;

&lt;p&gt;J'espère qu'on se recroisera bientôt, hein...&lt;/p&gt;

&lt;h3&gt;Tenter l'aventure&lt;/h3&gt;

&lt;p&gt;Ca devrait faire l'objet d'un billet à part entière mais bon...
On n'est jamais trop jeune pour se lancer et essayer quelque chose de nouveau et d'ambitieux. C'est ce qu'on s'est dit avec Christophe Cholot et &lt;a href=&quot;http://jardinage20.blogspot.com/&quot;&gt;Patrice Bonfy&lt;/a&gt;. Alors autour d'une idée commune et la même envie d'entreprendre, nous avons monté &lt;a href=&quot;http://www.sociabliz.com&quot; title=&quot;Sociabliz, the social marketing web agency !&quot;&gt;Sociabliz&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Sociabliz est une Agence Web de &lt;strong&gt;social marketing&lt;/strong&gt;. Nous essayons d'intégrer les marques et les entreprises dans le graph social des internautes. En gros et pour faire vite, nous faisons des applications Facebook.&lt;/p&gt;

&lt;p&gt;Nous avons pour l'instant nos bureaux à Cergy, au sein de l'incubateur de l'ESSEC. Et pour tout dire, l'affaire fonctionne plutôt bien. Nous avons déjà 3 projets en cours, et quelques autres dans les tuyaux. Pour un début, ce n'est vraiment pas mal et nous avons presque la tête sous l'eau... Mais pas d'inquiétude, nous gérons cela en professionnels !&lt;/p&gt;

&lt;p&gt;Mon rôle dans l'histoire, c'est de faire le geek. Ca tombe bien, j'aime bien faire ça et il paraît que je le fais bien. Alors je gère l'hébergement, je fais de l'admin sys, je fais le conseil technique lorsque des questions pointues arrivent, je fais de la veille sur les dernières technos des réseaux sociaux et je code. En rails bien sûr ;-)&lt;/p&gt;

&lt;p&gt;Pour plus d'infos, &lt;a href=&quot;http://www.sociabliz.com&quot; title=&quot;Sociabliz, the social marketing web agency!&quot;&gt;visitez le site de sociabliz&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Étudier, encore ?!&lt;/h3&gt;

&lt;p&gt;Je me suis inscrit à la fac pour faire un master. Comme à Paris VI (Université Pierre et Marie Curie), ils ne prennent personne en deuxième année qui n'a pas fait la première année, me voilà en M1, parti pour 2 ans.&lt;/p&gt;

&lt;p&gt;Pour ce qui est de l'intitulé, c'est &quot;Intelligence Artificielle et Décision&quot;.&lt;/p&gt;

&lt;p&gt;J'ai pu arranger mon emploi du temps pour avoir 2 après-midi et le vendredi complet de libre pour les consacrer à Sociabliz. Je sais ce que tout le monde pense : je me disperse et ce n'est pas possible de faire plusieurs choses à la fois sérieusement. J'en suis conscient et si surcharge de travail il y a d'un côté ou de l'autre, c'est le master qui passe à la trappe. Je veux juste essayer.&lt;/p&gt;

&lt;h3&gt;Pas le temps pour autre chose ?&lt;/h3&gt;

&lt;p&gt;Bah nan. Enfin presque. Je suis allé faire de l'escalade en Allemagne pour le dernier week-end d'août. J'ai pu expérimenter mes premières grandes voies et c'est assez impressionnant. Ça fait peur, mais qu'est ce que c'est beau une fois en haut !&lt;br /&gt;
Je remercie Josselin, Emeline et Cécile pour tout ça !&lt;/p&gt;

&lt;p&gt;Et ce blog a subi un problème avec mod_rails ces dernier temps (depuis le 28 Août en fait). Je n'ai pas eu beaucoup de temps pour le réparer depuis et comme le cache statique fonctionnait bien, personne n'a rien remarqué (à par Manu, le coquin...).&lt;/p&gt;
          </content>  </entry>
</feed>
