<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Jblanche.fr blog</title>
 <link href="http://jblanche.fr/atom.xml" rel="self"/>
 <link href="http://jblanche.fr/"/>
 <updated>2012-04-04T01:12:23+02:00</updated>
 <id>http://jblanche.fr/</id>
 <author>
   <name>Jonathan Blanchet</name>
   <email>contact@jblanche.fr</email>
 </author>

 
 <entry>
   <title>Javascript Inheritance and Mixins</title>
   <link href="http://jblanche.fr/2012/03/08/inheritance_and_mixins.html"/>
   <updated>2012-03-08T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2012/03/08/inheritance_and_mixins</id>
   <content type="html">&lt;p&gt;After my &lt;a href=&quot;/2012/02/28/inheritance_or_composition.html&quot;&gt;last blogpost&lt;/a&gt; about inheritance vs composition/mixins, I was wondering about the best way to implement this in Javascript.&lt;br /&gt;
I&amp;#8217;m used to the Ruby way, and I really do love to work with both Inheritance and Mixins in Ruby, but I was unable to find anything simple in JS.&lt;/p&gt;
&lt;p&gt;You should read again my &lt;a href=&quot;/2012/02/28/inheritance_or_composition.html&quot;&gt;last blogpost&lt;/a&gt; if you don&amp;#8217;t know when to use which, but, to sum it up :&lt;/p&gt;
&lt;p&gt;Inheritance should be used when A is a kind of B (e.g. an Employee is a kind of Person).&lt;br /&gt;
Mixins should be used when C acts like a D-able (e.g. People are comparable to each others).&lt;/p&gt;
&lt;p&gt;Moreover, since a few days I had to read plenty of awesome JS articles in my Twitter feed about how to use JS in a good way and how JS Harmony and &amp;#8220;Object.create&amp;#8221; will make this easier in the future&amp;#8230; (e.g. &lt;a href=&quot;http://www.adobe.com/devnet/html5/articles/javascript-object-creation.html&quot;&gt;http://www.adobe.com/devnet/html5/articles/javascript-object-creation.html&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;So I took the first day available in my schedule (that is today) and wrote some code.&lt;br /&gt;
The result is a fork of the Proto.js tiny library that will make it really easy to use Mixins and &amp;#8220;Class&amp;#8221; like objects in Javascript.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s look at some code :&lt;/p&gt;
&lt;script src='https://gist.github.com/2001982.js?file=fiddle.js'&gt;&lt;/script&gt;&lt;div&gt;&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;/*
    This is a test aiming at creating a simple inheritance + mixin capable JS library
    using Object.create awesome possibilities.
    It's using a single library (https://raw.github.com/jblanche/proto-js/master/Proto.js) that is only 609 characters minified, and 310b gzipped.
    It is heavily based on the original Proto.JS library (https://github.com/rauschma/proto-js).
    Simply adding to it an easy way to add mixins to our &amp;amp;quot;Classes&amp;amp;quot;.
*/

// This is a Mixin / Module, it can be included by any &amp;amp;quot;Class&amp;amp;quot;, whatever the class role.
// It's a plain and simple JS litteral object.
var Comparable = {
    // The Only thing this mixin needs is a &amp;amp;quot;compare&amp;amp;quot; method in the Class that includes it.
    isGreaterThan : function(other){
       return this.compare(other) === 1;
    },
    isEqualTo : function(other){
       return this.compare(other) === 0;
    },
    isLowerThan : function(other){
       return this.compare(other) === -1;
    },
    isLowerOrEqualTo : function(other){
       return this.compare(other) &amp;amp;lt;= 0;
    },
    isGreaterOrEqualTo : function(other){
       return this.compare(other) &amp;amp;gt;= 0;
    },    
    between: function(min, max){
        if(this.compare(min) &amp;amp;lt; 0 || this.compare(max) &amp;amp;gt;0){
            return false;
        }
        return true ;
    }
};

// This is a Simple Particle class with position (x,y) and a radius.
// Proto.Extend takes a simple litteral object as its only parameter
// Every propertie or method defined in this object will be available on object instances.
var Particle = Proto.extend({
    // The constructor method is the initializer, it is called automatically when creating an instance
    constructor: function(options){
      //Defining main properties
      this.x = options.x || 0 ;
      this.y = options.y || 0 ;
      this.radius = options.radius || 1 ;
    },
    // this is the Compare method our Comparable mixin will use.
    // We are defining that particles are compared based on their radius.
    compare: function(other){
        if(this.radius &amp;amp;gt; other.radius) return 1 ;
        else if(this.radius === other.radius) return 0 ;
        else return -1 ;
    },
    describe: function(){
        return &amp;amp;quot;I'm in &amp;amp;quot;+this.x+ &amp;amp;quot; : &amp;amp;quot; + this.y+&amp;amp;quot; , radius: &amp;amp;quot;+this.radius;
    }
});
// extend Comparable mixin
extend(Particle, Comparable);

// The ColorParticle is a &amp;amp;quot;SubClass&amp;amp;quot; of Particle &amp;amp;quot;Particle.extend({})&amp;amp;quot;
// No need to redefined &amp;amp;quot;compare&amp;amp;quot; here, if compare is called on a ColorParticle &amp;amp;quot;instance&amp;amp;quot;
// the Particle &amp;amp;quot;compare&amp;amp;quot; method is in the prototype chain and will be called.
var ColorParticle = Particle.extend({
    constructor: function(options){
      ColorParticle.super.constructor.call(this, options);
      this.color = options.color || &amp;amp;quot;#FFF&amp;amp;quot; ;
    },
    describe: function(){
        return ColorParticle.super.describe.call(this) + &amp;amp;quot; and I'm &amp;amp;quot;+this.color;
    }
});

// This is a Person class, not a lot to share with particles...
// But I want People to be comparable too, so lets include comparable there too.
var Person = Proto.extend({
    constructor: function (name, height) {
        this.name = name;
        this.height = height ;
    },
    // Persons are compared based on their height (Yes I know, this is dumb).
    compare: function(other){
        if(this.height &amp;amp;gt; other.height) return 1 ;
        else if(this.height === other.height) return 0 ;
        else return -1 ;
    },
    describe: function() {
        return &amp;amp;quot;Person called &amp;amp;quot;+this.name;
    }
});
// extend Comparable mixin
extend(Person, Comparable);


// This is the Employee class, SubClass of the Person one.
// Employee redefines the Person compare method to use salary instead of height.
var Employee = Person.extend({
    constructor: function (name, height, salary) {
        Employee.super.constructor.call(this, name, height);
        this.salary = salary || 0;
    },
    // Employees are compared based on their salary (Yes I know, this is dumber).
    compare: function(other){
        if(this.salary &amp;amp;gt; other.salary) return 1 ;
        else if(this.salary === other.salary) return 0 ;
        else return -1 ;
    },
    describe: function () {
        return Employee.super.describe.call(this)+&amp;amp;quot; (earns $&amp;amp;quot;+this.salary+&amp;amp;quot; a month)&amp;amp;quot;;
    }
});

// Let's create a few particles and compare them
var particule1 = Particle.new({x:2, y:4, radius:5});
var particule2 = ColorParticle.new({x:5, y:8, radius:10, color: '#CCC'});
var particule3 = ColorParticle.new({x:12, y:4, radius:7, color: '#F0F'});

console.log(&amp;amp;quot;particule2.isEqualTo(particule1) : &amp;amp;quot;, particule2.isEqualTo(particule1)); // false
console.log(&amp;amp;quot;particule2.describe()  : &amp;amp;quot;, particule2.describe()); // I'm in 5 : 8 , radius: 10 and I'm #CCC
console.log(&amp;amp;quot;ColorParticle.isPrototypeOf(particule2) : &amp;amp;quot;, ColorParticle.isPrototypeOf(particule2)); // true
console.log(&amp;amp;quot;ColorParticle.isPrototypeOf(particule1) : &amp;amp;quot;, ColorParticle.isPrototypeOf(particule1)); // false
console.log(&amp;amp;quot;particule3.between(particule1, particule2) : &amp;amp;quot;, particule3.between(particule1, particule2)); // true

// What about persons
var person1 = Person.new('Alice', 164);
var person2 = Person.new('Bob', 180);

console.log(&amp;amp;quot;person2.isLowerOrEqualTo(person1)&amp;amp;quot;, person2.isLowerOrEqualTo(person1)); // false
console.log(&amp;amp;quot;person2.describe()&amp;amp;quot;, person2.describe()); //Person called Bob

// Or employees
var employee1 = Employee.new('John', 174, 2000);
var employee2 = Employee.new('Jane', 168, 3000);
var employee3 = Employee.new('Jill', 170, 4000);

console.log(&amp;amp;quot;employee2.isGreaterThan(employee1) : &amp;amp;quot;, employee2.isGreaterThan(employee1)); // true
console.log(&amp;amp;quot;employee2.describe() : &amp;amp;quot;, employee2.describe()); // Person called Jane (earns $3000 a month)
console.log(&amp;amp;quot;employee3.between(employee1, employee2) : &amp;amp;quot;, employee3.between(employee1, employee2)); // false

// I can even apply some behavior to a single instance
var Teenable = {
    describe: function(){return 'LOL XPTDR';}
}
extend(employee3, Teenable);
console.log(&amp;amp;quot;employee3.describe() : &amp;amp;quot;, employee3.describe()); // LOL XPTDR
// other instances are steal clean 
console.log(&amp;amp;quot;employee2.describe() : &amp;amp;quot;, employee2.describe()); // Person called Jane (earns $3000 a month)


// I can augment classes instances after the creation, this will even affect previously created instances !  
var Serializable = {
    serializeToJSON: function(){
        return JSON.stringify(this);
    }
}
extend(Person, Serializable);
console.log(&amp;amp;quot;employee3.serializeToJSON() : &amp;amp;quot;, employee3.serializeToJSON()); // {&amp;amp;quot;name&amp;amp;quot;:&amp;amp;quot;Jill&amp;amp;quot;,&amp;amp;quot;height&amp;amp;quot;:170,&amp;amp;quot;salary&amp;amp;quot;:4000}​​​​​&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;
&lt;p&gt;As you can see, you don&amp;#8217;t have to deal with prototypes anymore, setting an objet prototype to another prototype&amp;#8230; the library handles just that for you.&lt;/p&gt;
&lt;p&gt;With a few line you can have simple inheritance between Particle and ColorParticle.&lt;br /&gt;
Between Person and Employee, plus a few mixins that can be applied to any &amp;#8220;Class&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Please do yourself a favor and &lt;a href=&quot;http://jsfiddle.net/gh/gist/mootools/1.2/2001982/&quot;&gt;hack with it&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The possibilities are endless !&lt;br /&gt;
You can add as many behaviors (mixins) as needed to every class or instance.&lt;br /&gt;
You can augment classes behavior on execution.&lt;br /&gt;
You can add custom behavior to specific instances (something like traits).&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s no compatibility problems that I know of, since the library relies on &amp;#8220;Object.create&amp;#8221; that is in every recent browser and &lt;a href=&quot;https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js#L574&quot;&gt;a shim&lt;/a&gt; is available for the old ones.&lt;/p&gt;
&lt;p&gt;I hope you&amp;#8217;ll find it as useful as I think it is.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Inheritance vs Composition</title>
   <link href="http://jblanche.fr/2012/02/28/inheritance_or_composition.html"/>
   <updated>2012-02-28T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2012/02/28/inheritance_or_composition</id>
   <content type="html">&lt;p&gt;This afternoon, &lt;a href=&quot;https://twitter.com/#!/MonsieurKurt&quot;&gt;@MonsieurKurt&lt;/a&gt; started a &amp;#8220;debate&amp;#8221; on Twitter about Inheritance vs Composition in object oriented programming.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m not used with the term composition but I guess he wanted to talk about some kind of modularization of the behaviors.&lt;/p&gt;
&lt;p&gt;140 characters are not a lot to give an answer so I summed up with &amp;#8220;Composition #&lt;span class=&quot;caps&quot;&gt;FTW&lt;/span&gt;&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I realised after that it was a little too much opinionated and I wanted to talk a little bit more about this here so here we go.&lt;/p&gt;
&lt;p&gt;Lets imagine we&amp;#8217;re dealing with football players and their coaches (oh by the way, when I say football I mean the one that you play with your foots and a ball, like in football, not the strange american one&amp;#8230;).&lt;br /&gt;
We want a small app to make some statistics about our players and coaches (did you saw Moneyball ? ) for the last few years and the ones to come.&lt;/p&gt;
&lt;p&gt;Both players and coaches are some kind of Person. In this case Inheritance shines, you can put stuff like dob, sexe, adress, city&amp;#8230; in a Person class extended by the Player one and the Coach one.&lt;/p&gt;
&lt;p&gt;Ok perfect now, we need to compare our players and coaches.&lt;br /&gt;
But the criteria are different, let&amp;#8217;s say we want to compare our players by the time spent on the field and our coaches by the number of points earned divided by the time spent on the bench.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ll have a few methods that can be shared, like &amp;#8220;is_better_than&amp;#8221; or &amp;#8220;is_worst_than&amp;#8221; to compare our &amp;#8220;objects&amp;#8221;.&lt;/p&gt;
&lt;p&gt;So if we don&amp;#8217;t want to duplicate code, we may throw them in the Person class.&lt;/p&gt;
&lt;p&gt;But what if we&amp;#8217;re not confortable with this standing in a Person class (what about player agents, we may need them in our soft later, and we definitely won&amp;#8217;t need to compare them, do we ?), then we could create a Comparable class standing between Person and, Players and Coaches.&lt;/p&gt;
&lt;p&gt;Something like :&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.skitch.com/20120228-8a36bjwbkxiqfb42tfbr7mdg4g.jpg&quot; title=&quot;class diagram&quot; alt=&quot;class diagram&quot; /&gt;&lt;/p&gt;
&lt;p&gt;But then we&amp;#8217;ll need to do something quite ugly like (that&amp;#8217;s pseudo language) in our Comparable class :&lt;/p&gt;
&lt;script src='https://gist.github.com/1935304.js?file=ugly.rb'&gt;&lt;/script&gt;&lt;div&gt;&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;def is_better_than(otherPerson)
    if(this.kind == &amp;amp;quot;Player&amp;amp;quot;)
        # use criteria 1
    else if (this.kind == &amp;amp;quot;Coach&amp;amp;quot;)
        # use criteria 2
    end
end
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;
&lt;p&gt;And suddenly &amp;#8220;&lt;span class=&quot;caps&quot;&gt;BOOM&lt;/span&gt;&amp;#8221;, our superclass needs to know about its subclasses&amp;#8230; Believe me, that&amp;#8217;s no good !&lt;br /&gt;
What if we want a whole new class for the Goalkeeper ? We&amp;#8217;ll need to change the superclass&amp;#8230; (puke).&lt;/p&gt;
&lt;p&gt;We could put this code in each class, but that means we will need to rewrite almost identical methods in both classes&amp;#8230; (puke again)&lt;/p&gt;
&lt;p&gt;Why so ? Well let&amp;#8217;s think again about what we just did ?&lt;br /&gt;
Let&amp;#8217;s say it out load :&lt;br /&gt;
Player and Coaches are some kind of Comparable ?&lt;br /&gt;
Does it sounds good ? surely not ?&lt;/p&gt;
&lt;p&gt;Imagine this story :&lt;br /&gt;
- Hey kiddo what do you want to be when you&amp;#8217;ll be 20 ? a coach, a player, a goalkeeper ?&lt;br /&gt;
- No sir, I want to be a Comparable ?&lt;/p&gt;
&lt;p&gt;So what do we do know ? We need to save this kid !&lt;/p&gt;
&lt;p&gt;Well, composition to the rescue !&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s keep our simple inheritance, without the comparable class and add one simple thing to our classes(again pseudolanguage, inspired by Ruby)&lt;/p&gt;
&lt;script src='https://gist.github.com/1935304.js?file=modularization.rb'&gt;&lt;/script&gt;&lt;div&gt;&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;class Player
    is_capable_of &amp;amp;quot;comparison&amp;amp;quot;

    def compare(otherPlayer)
        if this.time_spent_on_field &amp;amp;gt; otherPlayer.time_spent_on_field { return 1 }
        else if this.time_spent_on_field == otherPlayer.time_spent_on_field { return 0 }
        else { return -1 }
    end
end


class Coach
    is_capable_of &amp;amp;quot;comparison&amp;amp;quot;

    def average
        this.points_earned / this.time_spent_on_field
    end

    def compare(otherCoach)
        if this.average &amp;amp;gt; otherPlayer.average {return 1}
        else if this.average == otherPlayer.average {return 0}
        else {return -1}
    end
end

module Comparison
    def is_better_than(other)
        return this.compare(other) == 1
    end

    def is_worst_than(other)
        return this.compare(other) == -1
    end

    def is_equal_to(other)
        return this.compare(other) == 0
    end

    def is_at_least_as_good_as(other)
        return this.compare(other) &amp;amp;gt;= 0
    end
end
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;
&lt;p&gt;Now we can do tests like :&lt;/p&gt;
&lt;script src='https://gist.github.com/1935304.js?file=examples.rb'&gt;&lt;/script&gt;&lt;div&gt;&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;player1.is_better_than(player2)
# or
coach1.is_at_least_as_good_as(coach2)
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;
&lt;p&gt;without duplicating or bullshitting our code :)&lt;br /&gt;
No code duplication, no strange inheritance, we&amp;#8217;re all good. Every modularized method will call the compare method on the correct class depending on the caller.&lt;/p&gt;
&lt;p&gt;Our agents, well, they can inherit from the Person class and not include the Comparison module&amp;#8230;&lt;/p&gt;
&lt;p&gt;If we add one more method to our Player and Coach classes, explaining how to iterate other the objects in this class, we could even have methods like first, last, all, any, min, max &amp;#8230; shared in another module that we could call Enumerable for example.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s exactly what Ruby does with its &lt;a href=&quot;http://www.ruby-doc.org/core-1.9.3/Comparable.html&quot;&gt;Comparable&lt;/a&gt; and &lt;a href=&quot;http://www.ruby-doc.org/core-1.9.3/Enumerable.html&quot;&gt;Enumerable&lt;/a&gt; modules, and believe me, once you tried it, there&amp;#8217;s no coming back !&lt;/p&gt;
&lt;p&gt;In conclusion, I would say that, in my opinion, we need to say &amp;#8220;X&amp;#8221; is capable of &amp;#8220;Y&amp;#8221; way more often than &amp;#8220;X&amp;#8221; is some kind of &amp;#8220;Z&amp;#8221; in our code and that&amp;#8217;s why I answered &amp;#8220;Composition #&lt;span class=&quot;caps&quot;&gt;FTW&lt;/span&gt;&amp;#8221; but maybe I should have said &amp;#8220;Mixins #&lt;span class=&quot;caps&quot;&gt;FTW&lt;/span&gt;&amp;#8221; !&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Retweet counter</title>
   <link href="http://jblanche.fr/2012/01/20/retweet-counter.html"/>
   <updated>2012-01-20T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2012/01/20/retweet-counter</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://retweets.heroku.com/&quot;&gt;Retweet Counter&lt;/a&gt; is a little website I made in order to know the visibility a tweet can acquire through its retweets (using the &lt;a href=&quot;https://dev.twitter.com/docs/api&quot;&gt;Twitter &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The Back-end is a &lt;a href=&quot;http://www.sinatrarb.com/&quot;&gt;Sinatra&lt;/a&gt; (Ruby) app, and the front-end is simple HTML5 + CSS3.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://retweets.heroku.com/162529646548746241&quot;&gt;&lt;img src=&quot;/images/labs/retweets.png&quot; title=&quot;Screenshot&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Lemonde cleaner</title>
   <link href="http://jblanche.fr/2012/01/03/lemonde-reader.html"/>
   <updated>2012-01-03T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2012/01/03/lemonde-reader</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/bkhodhnbdcndkfgllonpcnaoadcjpjnf/related?hl=fr&quot;&gt;LeMonde Cleaner&lt;/a&gt; is a small experiment (3 lines of Code ! ) I made in order to try the chrome web store addon development.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s goal is to remove annoying grammatical conjugation links on lemonde.fr&lt;/p&gt;
&lt;p&gt;The smaller, the better :)&lt;/p&gt;
&lt;script src='https://gist.github.com/1554598.js?file=lemonde-cleaner.js'&gt;&lt;/script&gt;&lt;div&gt;&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;jQuery('.listLink').replaceWith(function(){
  return jQuery(this).text();
});&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;</content>
 </entry>
 
 <entry>
   <title>Compagnie Alec Barthus</title>
   <link href="http://jblanche.fr/2011/12/02/compagnie-alec-barthus.html"/>
   <updated>2011-12-02T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2011/12/02/compagnie-alec-barthus</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m currently doing this little website for a theatre company.&lt;br /&gt;
On this particular project, I did both the conception, the design and the development.&lt;/p&gt;
&lt;p&gt;I used the &lt;a href=&quot;http://foundation.zurb.com/&quot;&gt;Foundation framework&lt;/a&gt; to ensure a good experience for mobile users and the Rails &lt;a href=&quot;http://www.locomotivecms.com/&quot;&gt;LocomotiveCMS&lt;/a&gt; for the back-office.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Eyeka HTML5 player</title>
   <link href="http://jblanche.fr/2011/11/15/eyeka-player.html"/>
   <updated>2011-11-15T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2011/11/15/eyeka-player</id>
   <content type="html">&lt;p&gt;I had to develop a custom HTML5 player for Eyeka.&lt;br /&gt;
The player needed to be able to &amp;#8220;play&amp;#8221; three kind of mediums : pictures, videos, and documents (considered as being a list of pictures), to work on tablets and to go fullscreen.&lt;/p&gt;
&lt;p&gt;This was a heavy Javascript project and the first professional one (and probably not the last one) where I used CoffeeScript.&lt;/p&gt;
&lt;p&gt;The project is only viewable by eyeka customers.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Canvas + SVG</title>
   <link href="http://jblanche.fr/2011/11/05/canvas-svg-future.html"/>
   <updated>2011-11-05T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2011/11/05/canvas-svg-future</id>
   <content type="html">&lt;p&gt;Small experiment with Canvas, &lt;span class=&quot;caps&quot;&gt;SVG&lt;/span&gt;, &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; animations, music and nodeJS &lt;br /&gt;
I made it as an exercice for my students at Gobelins l&amp;#8217;&amp;eacute;cole de l&amp;#8217;image.&lt;/p&gt;
&lt;p&gt;Live tweets containing the &amp;#8220;future&amp;#8221; word appears as particles on the screen and some statistics are updated in live on the right.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/labs/future-1.png&quot; title=&quot;Screenshot&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/labs/future-2.png&quot; title=&quot;Screenshot&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Node snakes game</title>
   <link href="http://jblanche.fr/2011/10/10/node-snakes.html"/>
   <updated>2011-10-10T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2011/10/10/node-snakes</id>
   <content type="html">&lt;p&gt;Snakes experiment made with NodeJS.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s a multiplayer game where you have a snake, and you need to grab &amp;#8220;apples&amp;#8221; without crashing into other snakes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/labs/node-snakes.png&quot; title=&quot;Screenshot&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Stootie</title>
   <link href="http://jblanche.fr/2011/07/07/stootie.html"/>
   <updated>2011-07-07T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2011/07/07/stootie</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://stootie.com/&quot;&gt;Stootie.com&lt;/a&gt; development.&lt;/p&gt;
&lt;p&gt;My main mission was to develop the website structure and layout with &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; / &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; / JS.&lt;/p&gt;
&lt;p&gt;I had to respect the iPhone app principles and to deal with the rails Back-end.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>EnjoyReading</title>
   <link href="http://jblanche.fr/2011/04/10/enjoy-reading.html"/>
   <updated>2011-04-10T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2011/04/10/enjoy-reading</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/enjoy-reading/?src=search&quot;&gt;Enjoy Reading&lt;/a&gt; development.&lt;/p&gt;
&lt;p&gt;EnjoyReading was a side project I did for fun. &lt;br /&gt;
My goal was to discover how to build a browser add on.&lt;br /&gt;
It&amp;#8217;s goal is to improve the readability of your favorites websites.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Css Text Animation</title>
   <link href="http://jblanche.fr/2011/01/05/css-text.html"/>
   <updated>2011-01-05T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2011/01/05/css-text</id>
   <content type="html">&lt;section id=&quot;css-text&quot; class=&quot;lab&quot;&gt;
  &lt;p&gt;
    &lt;span class=&quot;typo&quot; id=&quot;site-name&quot;&gt;Jblanche.fr&lt;/span&gt; is the website&lt;br /&gt; 
    of a passionated &lt;span class=&quot;typo&quot; id=&quot;work&quot;&gt;web-developer.&lt;/span&gt;&lt;br /&gt;
    From the back-end development to the front-end device optimisation.&lt;br /&gt;
    &lt;span class=&quot;typo&quot; id=&quot;passionate&quot;&gt;I love my job.&lt;/span&gt;
    &lt;span class=&quot;typo&quot; id=&quot;welcome&quot;&gt;Welcome !&lt;/span&gt;
  &lt;/p&gt;
&lt;/section&gt;

&lt;style&gt;
.lab#css-text {
  font-family: &quot;QuicksandBook&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;
  font-size: 2.2em; }
  .lab#css-text p {
    line-height: 1.4em;
    margin-left: 20px;
    opacity: 0;
    color: #555;
    -webkit-font-smoothing: antialiased;
    -webkit-animation: openingTextIntro 1s ease-out 1s 1 normal forwards; }
    .lab#css-text p span.typo {
      color: #cccccc;
      text-decoration: none;
      opacity: 0;
      position: relative; }
    .lab#css-text p #site-name {
      top: -1000px;
      -webkit-animation: showLink1 1s ease-out 3s 1 normal forwards; }
    .lab#css-text p #work {
      right: -1000px;
      -webkit-animation: showLink2 1s ease-out 4s 1 normal forwards; }
    .lab#css-text p #passionate {
      -webkit-animation: showLink3 1s ease-out 5s 1 normal forwards; }
    .lab#css-text p #welcome {
      bottom: -1000px;
      -webkit-animation: showLink4 1s ease-out 6s 1 normal forwards; }

/* Texte */
@-webkit-keyframes openingTextIntro {
  0% {
    opacity: 0;
    -webkit-transform: scale(10); }

  100% {
    opacity: 1; } }

/* Links */
@-webkit-keyframes showLink1 {
  0% {
    opacity: 0; }

  100% {
    color: #2fc2ef;
    opacity: 1;
    top: 0; } }

@-webkit-keyframes showLink2 {
  0% {
    opacity: 0; }

  100% {
    color: #2fc2ef;
    opacity: 1;
    right: 0; } }

@-webkit-keyframes showLink3 {
  0% {
    opacity: 0; }

  100% {
    color: #2fc2ef;
    opacity: 1; } }

@-webkit-keyframes showLink4 {
  0% {
    opacity: 0; }

  100% {
    color: #2fc2ef;
    opacity: 1;
    bottom: 0; } }
&lt;/style&gt;

&lt;script src='https://gist.github.com/1507672.js?file=css-text.html'&gt;&lt;/script&gt;&lt;div&gt;&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;section id=&amp;quot;css-text&amp;quot; class=&amp;quot;lab&amp;quot;&amp;gt;
  &amp;lt;p&amp;gt;
    &amp;lt;span class=&amp;quot;typo&amp;quot; id=&amp;quot;site-name&amp;quot;&amp;gt;Jblanche.fr&amp;lt;/span&amp;gt; is the website&amp;lt;br /&amp;gt; 
    of a passionated &amp;lt;span class=&amp;quot;typo&amp;quot; id=&amp;quot;work&amp;quot;&amp;gt;web-developer.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;
    From the back-end development to the front-end device optimisation.&amp;lt;br /&amp;gt;
    &amp;lt;span class=&amp;quot;typo&amp;quot; id=&amp;quot;passionate&amp;quot;&amp;gt;I love my job.&amp;lt;/span&amp;gt;
    &amp;lt;span class=&amp;quot;typo&amp;quot; id=&amp;quot;welcome&amp;quot;&amp;gt;Welcome !&amp;lt;/span&amp;gt;
  &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;
&lt;script src='https://gist.github.com/1507672.js?file=css-text.css'&gt;&lt;/script&gt;&lt;div&gt;&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;.lab#css-text {
  font-family: &amp;quot;QuicksandBook&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif;
  font-size: 2.2em; }
  .lab#css-text p {
    line-height: 1.4em;
    margin-left: 20px;
    opacity: 0;
    color: #555;
    -webkit-font-smoothing: subpixel-antialiased;
    -webkit-animation: openingTextIntro 1s ease-out 1s 1 normal forwards; }
    .lab#css-text p span.typo {
      color: #cccccc;
      text-decoration: none;
      opacity: 0;
      position: relative; }
    .lab#css-text p #site-name {
      top: -1000px;
      -webkit-animation: showLink1 1s ease-out 3s 1 normal forwards; }
    .lab#css-text p #work {
      right: -1000px;
      -webkit-animation: showLink2 1s ease-out 4s 1 normal forwards; }
    .lab#css-text p #passionate {
      -webkit-animation: showLink3 1s ease-out 5s 1 normal forwards; }
    .lab#css-text p #welcome {
      bottom: -1000px;
      -webkit-animation: showLink4 1s ease-out 6s 1 normal forwards; }

/* Texte */
@-webkit-keyframes openingTextIntro {
  0% {
    opacity: 0;
    -webkit-transform: scale(10); }

  100% {
    opacity: 1; } }

/* Links */
@-webkit-keyframes showLink1 {
  0% {
    opacity: 0; }

  100% {
    color: #2fc2ef;
    opacity: 1;
    top: 0; } }

@-webkit-keyframes showLink2 {
  0% {
    opacity: 0; }

  100% {
    color: #2fc2ef;
    opacity: 1;
    right: 0; } }

@-webkit-keyframes showLink3 {
  0% {
    opacity: 0; }

  100% {
    color: #2fc2ef;
    opacity: 1; } }

@-webkit-keyframes showLink4 {
  0% {
    opacity: 0; }

  100% {
    color: #2fc2ef;
    opacity: 1;
    bottom: 0; } }&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;</content>
 </entry>
 
 <entry>
   <title>Fanfan2</title>
   <link href="http://jblanche.fr/2010/12/10/fanfan2.html"/>
   <updated>2010-12-10T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/12/10/fanfan2</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://fanfan2.fr/&quot;&gt;fanfan2.fr&lt;/a&gt; development and integration.&lt;/p&gt;
&lt;p&gt;My main mission was to develop the website structure and layout with &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; / &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; / JS.&lt;/p&gt;
&lt;p&gt;I had to use and modify the rails Back-end to fit my needs.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Floweroscope</title>
   <link href="http://jblanche.fr/2010/10/10/floweroscope.html"/>
   <updated>2010-10-10T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2010/10/10/floweroscope</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.thefwa.com/site/floweroscope&quot;&gt;Floweroscope&lt;/a&gt; was a project made for &lt;br /&gt;
&lt;a href=&quot;http://la-surprise.com/&quot;&gt;La Surprise&lt;/a&gt; and &lt;a href=&quot;http://www.microsoft.com&quot;&gt;Microsoft&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I worked with &lt;a href=&quot;http://kikko.fr/home&quot;&gt;Kikko&lt;/a&gt; and we had to develop a fun project with a heavy use of canvas to show how powerfull Microsoft Internet Explorer 9 hardware graphics acceleration was at this moment.&lt;/p&gt;
&lt;p&gt;Unfortunately, this project is no longer online.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Paris Web 2010</title>
   <link href="http://jblanche.fr/2010/07/15/paris_web_2010.html"/>
   <updated>2010-07-15T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2010/07/15/paris_web_2010</id>
   <content type="html">&lt;p&gt;I love when a day starts with a good news.&lt;br /&gt;
This morning, for example, my favorite twitter client (Twitterrific for iPad if you want to know) announced me that the &lt;a href=&quot;http://www.paris-web.fr/2010/orateurs/&quot;&gt;ParisWeb 2010 speakers list&lt;/a&gt; was announced.&lt;/p&gt;
&lt;p&gt;And even if I knew I will be part of it for a few days, I must admit seeing &lt;a href=&quot;http://www.paris-web.fr/2010/orateurs/#jonathan_blanchet&quot;&gt;my name&lt;/a&gt; next to &lt;a href=&quot;http://www.paris-web.fr/2010/orateurs/#christian_heilmann&quot;&gt;Christian Heilmann&lt;/a&gt;, &lt;a href=&quot;http://www.paris-web.fr/2010/orateurs/#dave_shea&quot;&gt;Dave Shea&lt;/a&gt;, &lt;a href=&quot;http://www.paris-web.fr/2010/orateurs/#christophe_porteneuve&quot;&gt;Christophe Porteneuve&lt;/a&gt;, &lt;a href=&quot;http://www.paris-web.fr/2010/orateurs/#eric_daspet&quot;&gt;Eric Daspet&lt;/a&gt;, makes be quite proud of myself.&lt;/p&gt;
&lt;p&gt;So that I&amp;#8217;ve been a jerk for a day but I&amp;#8217;ll promise I&amp;#8217;ll stop tomorow.&lt;/p&gt;
&lt;p&gt;Finally, I&amp;#8217;ll be giving a workshop the satuday on the &amp;#8220;real time web&amp;#8221;.&lt;br /&gt;
To know more, please read the description in the official &lt;a href=&quot;http://www.paris-web.fr/2010/orateurs/le-web-temps-reel.php&quot;&gt;website page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Before this, I&amp;#8217;ll have 2 months to prepare this workshop (an hour and a half) while you just have to &lt;a href=&quot;http://inscriptions.paris-web.fr/&quot;&gt;buy to tickets&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>One month</title>
   <link href="http://jblanche.fr/2010/07/12/conferences_et_formations.html"/>
   <updated>2010-07-12T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2010/07/12/conferences_et_formations</id>
   <content type="html">&lt;p&gt;It&amp;#8217;s already been a month that I&amp;#8217;m a freelancer now and there are way more pros than cons (if only there were no adminstrative forms&amp;#8230;)&lt;/p&gt;
&lt;p&gt;Being a Freelancer, I find it easier to attend conferences and stuff like that. So I tried a few in the last week.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://drumbeatparis.eventbrite.com/&quot;&gt;Drumbeat Paris&lt;/a&gt; by Mozilla &lt;br /&gt;
was a great event where the goal is to lower the level needed to participate in mozilla projects.&lt;br /&gt;
A good way to talk about the future of the web,current Mozilla projects and discover fun stuff like &lt;a href=&quot;http://www.drumbeat.org/project/graffiti-analysis-graffiti-markup-language-gml-000000book&quot;&gt;Graffiti Analysis&lt;/a&gt; or &lt;a href=&quot;http://www.drumbeat.org/project/tatoeba-project&quot;&gt;Tatoeba&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Two days later, I went to the &lt;a href=&quot;http://barcamp.org/WebWorkersCamp&quot;&gt;WebWorkersCamp&lt;/a&gt;, still at &lt;a href=&quot;http://lacantine.org/&quot;&gt;la Cantine&lt;/a&gt;.&lt;br /&gt;
NodeJS, NoSQL, Message queue, asynchronous languages, WebSockets&amp;#8230; There were a lot to discover.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://twitter.com/ryah&quot;&gt;Ryan Dahl&lt;/a&gt; from &lt;a href=&quot;http://www.joyent.com/&quot;&gt;Joyent&lt;/a&gt;, author of &lt;a href=&quot;http://nodejs.org/&quot;&gt;Node.js&lt;/a&gt;, one of the greatest project of the moment was there.&lt;br /&gt;
Richard Kreuter from &lt;a href=&quot;http://www.10gen.com/&quot;&gt;10gen&lt;/a&gt;, creators of &lt;a href=&quot;http://www.mongodb.org/&quot;&gt;MongoDB&lt;/a&gt; were there too to talk about NoSQL and MongoDB.&lt;br /&gt;
&lt;a href=&quot;http://twitter.com/paulrouget&quot;&gt;Paul Rouget&lt;/a&gt; made a talk on the newest features of Firefox like Canvas, &lt;span class=&quot;caps&quot;&gt;SVG&lt;/span&gt;, WebGL&amp;#8230;&lt;/p&gt;
&lt;p&gt;Finaly, I went on saterday to a course on Git organised by &lt;a href=&quot;http://twitter.com/porteneuve&quot;&gt;Christophe Porteneuve&lt;/a&gt;.&lt;br /&gt;
The only paid event in those three.&lt;br /&gt;
But 75 euros for this kind of course will make you save a lot more latter on ! &lt;br /&gt;
A really heavy program and a lot of stuff to memorize but I know Git&amp;quot;:http://git-scm.com/ a lot better now.&lt;/p&gt;
&lt;p&gt;If you want to know more about &lt;span class=&quot;caps&quot;&gt;DVCS&lt;/span&gt;, you should attend the next event and follow &lt;a href=&quot;http://blog.git-attitude.fr/&quot;&gt;the blog git-attitude&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here it is for the recent events I attend. &lt;br /&gt;
During this time, I&amp;#8217;m still enjoying my new professional life and everything is going well.&lt;/p&gt;
&lt;p&gt;P.S. : I&amp;#8217;ll have another good news soon but I need to tease a little bit more before telling you!&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#14</title>
   <link href="http://jblanche.fr/2010/05/27/dailynews_14.html"/>
   <updated>2010-05-27T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2010/05/27/dailynews_14</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=u6XAPnuFjJc&quot;&gt;The surprising truth about what motivates us&lt;/a&gt; &amp;#8211; Great demo about what motivates us&lt;br /&gt;
&lt;a href=&quot;http://railsdispatch.com/&quot;&gt;Rails Dispatch&lt;/a&gt; &amp;#8211; Great website with resources for an easy Rails3 migration&lt;br /&gt;
&lt;a href=&quot;http://weblog.rubyonrails.org/2010/5/25/ruby-on-rails-2-3-8-released&quot;&gt;Rails 2.3.8&lt;/a&gt; before Rails3&amp;#8230;&lt;br /&gt;
&lt;a href=&quot;http://www.alistapart.com/articles/responsive-web-design/&quot;&gt;Media Queries&lt;/a&gt; &amp;#8211; Great &amp;#8220;A list appart&amp;#8221; article on media queries&lt;br /&gt;
&lt;a href=&quot;http://code.google.com/webfonts&quot;&gt;Google Webfonts&lt;/a&gt; &amp;#8211; Google makes @font-face usage easier.&lt;br /&gt;
&lt;a href=&quot;http://www.smashingmagazine.com/2010/05/20/web-design-trends-2010-real-life-metaphors-and-css3-adaptation/&quot;&gt;Real-Life Metaphors and CSS3 Adaptation&lt;/a&gt; &amp;#8211; Cools CSS3 usage examples&lt;br /&gt;
&lt;a href=&quot;http://www.smashingmagazine.com/2010/05/27/css-three-connecting-the-dots/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; 3 &amp;#8211; Connecting The Dots&lt;/a&gt; &amp;#8211; Discover newest CSS3 features&lt;br /&gt;
&lt;a href=&quot;http://videojs.com/&quot;&gt;Video JS&lt;/a&gt; &amp;#8211; A new player in the land of HTML5 video player.&lt;br /&gt;
&lt;a href=&quot;http://vocamus.net/dave/?p=1092&quot;&gt;Audio Experiments&lt;/a&gt; &amp;#8211; New experiments with Firefox Audio &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt;.&lt;br /&gt;
&lt;a href=&quot;http://mugtug.com/darkroom/&quot;&gt;Darkroom&lt;/a&gt; &amp;#8211; A photoshop lite with HTML5+JS&lt;br /&gt;
&lt;a href=&quot;http://diveintohtml5.org/everything.html&quot;&gt;Detect Everything&lt;/a&gt; &amp;#8211; How to know if your browser supports an HTML5 feature&lt;br /&gt;
&lt;a href=&quot;http://diveintohtml5.org/extensibility.html&quot;&gt;Microdata&lt;/a&gt; &amp;#8211; A new actor in the semantic world&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>The lab</title>
   <link href="http://jblanche.fr/2010/05/21/lab.html"/>
   <updated>2010-05-21T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2010/05/21/lab</id>
   <content type="html">&lt;p&gt;A new &lt;a href=&quot;http://jblanche.fr/lab.html&quot;&gt;Lab&lt;/a&gt; category appears in the blog where I will make some funny experimentations :&lt;/p&gt;
&lt;p&gt;Two experimentations to start :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/lab/css_text.html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; animations&lt;/a&gt; : The firsts use the newest Webkit &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; animations features.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/lab/websockets.html&quot;&gt;Websockets&lt;/a&gt; : The second uses another HTML5 feature called &lt;a href=&quot;http://www.websockets.org/&quot;&gt;websockets&lt;/a&gt; to display live tweets about ruby, html5, css3&amp;#8230;&lt;/p&gt;
&lt;p&gt;Both of these experimentations require a recent browser, but &lt;a href=&quot;http://www.css3.info/graceful-degradation/&quot;&gt;Graceful Degradation&lt;/a&gt; should produce readable pages for older browsers.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>DailyNews_#13</title>
   <link href="http://jblanche.fr/2010/04/30/dailynews_13.html"/>
   <updated>2010-04-30T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2010/04/30/dailynews_13</id>
   <content type="html">&lt;p&gt;Ruby / Rails news:&lt;br /&gt;
&lt;a href=&quot;http://weblog.rubyonrails.org/2010/4/13/rails-3-0-third-beta-release&quot;&gt;Rails3 Beta 3&lt;/a&gt; &amp;#8211; Last beta before the first Rails3 RC ? &lt;br /&gt;
&lt;a href=&quot;http://www.jruby.org/2010/04/28/jruby-1-5-0-RC2.html&quot;&gt;Jruby 1.5.0 RC2&lt;/a&gt; &amp;#8211; JRuby 1.5 is in Release Candidate &lt;br /&gt;
&lt;a href=&quot;http://ironruby.codeplex.com/releases/view/25901&quot;&gt;IronRuby 1.0&lt;/a&gt; &amp;#8211; Iron Ruby (.Net) is stable ! &lt;br /&gt;
&lt;a href=&quot;http://www.igvita.com/2010/04/15/non-blocking-activerecord-rails&quot;&gt;Non Blocking Active Record&lt;/a&gt; &amp;#8211; Why we are waiting for Rails3 + Ruby1.9 ! &lt;br /&gt;
&lt;a href=&quot;http://grease-your-suite.heroku.com/&quot;&gt;Grease your test suite&lt;/a&gt; &amp;#8211; Accelerate your tests.&lt;/p&gt;
&lt;p&gt;Sass is changing: &lt;br /&gt;
&lt;a href=&quot;http://nex-3.com/posts/99-selector-inheritance-the-easy-way-introducing-extend&quot;&gt;Selector inheritance in &lt;span class=&quot;caps&quot;&gt;SASS&lt;/span&gt;&lt;/a&gt; &amp;#8211; Sass is getting better and better.&lt;br /&gt;
&lt;a href=&quot;http://nex-3.com/posts/98-haml-sass-3-release-candidate-1-released&quot;&gt;Sass RC1&lt;/a&gt; &amp;#8211; And version 3 is in Release Candidate.&lt;/p&gt;
&lt;p&gt;Some talks on Facebook Open Graph Protocol: &lt;br /&gt;
&lt;a href=&quot;http://intridea.com/posts/facebook-is-the-private-beta-of-the-semantic-web&quot;&gt;Facebook is the private beta of semantic Web&lt;/a&gt; &amp;#8211; A positive advice on the Open Graph Protocol&lt;br /&gt;
&lt;a href=&quot;http://radar.oreilly.com/2010/04/why-f8-was-good-for-the-open-w.html&quot;&gt;Why F8 was good for the open web&lt;/a&gt; &amp;#8211; Another one &lt;br /&gt;
&lt;a href=&quot;http://www.25hoursaday.com/weblog/2010/04/24/FacebooksOpenGraphProtocolFromAWebDevelopersPerspective.aspx&quot;&gt;Facebook Open Graph Protocol from a developper perspective&lt;/a&gt; &amp;#8211; and a last one.&lt;/p&gt;
&lt;p&gt;A lot of pros but there are cons too. But the articles I read were not convincing.&lt;/p&gt;
&lt;p&gt;The Web future : &lt;br /&gt;
&lt;a href=&quot;http://www.youtube.com/watch?v=Ol3qQ4CEUTo&quot;&gt;Aves Engine&lt;/a&gt; &amp;#8211; Full platform game made with the open web stack (CANVAS+JS+HTML+CSS). &lt;br /&gt;
&lt;a href=&quot;http://twitter.com/paulrouget/status/12103971673&quot;&gt;WebGL demo&lt;/a&gt; &amp;#8211; Promising ! &lt;br /&gt;
&lt;a href=&quot;http://hacks.mozilla.org/2010/04/the-css-3-flexible-box-model/&quot;&gt;Mozilla Flexible box model&lt;/a&gt; &amp;#8211; Here is how we will use &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; positionning in a few years.&lt;br /&gt;
&lt;a href=&quot;http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb&quot;&gt;Understanding Node.js&lt;/a&gt; Great Node.js introduction.&lt;br /&gt;
&lt;a href=&quot;http://www.apple.com/hotnews/thoughts-on-flash/&quot;&gt;Steve Jobs thoughts on Flash&lt;/a&gt; &amp;#8211; Good arguments but clearly not enought to forbid Flash on iOS devices.&lt;/p&gt;
&lt;p&gt;And :&lt;br /&gt;
&lt;a href=&quot;http://www.lukew.com/ff/entry.asp?991&quot;&gt;Ipad multitouch interactions&lt;/a&gt; &amp;#8211; Ipad surface allows for a lot of new multitouch interactions.&lt;br /&gt;
&lt;a href=&quot;http://www.ubuntu.com/&quot;&gt;Ubuntu Lucid Linx&lt;/a&gt; &amp;#8211; The latest Ubuntu is out.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#12</title>
   <link href="http://jblanche.fr/2010/04/15/dailynews_12.html"/>
   <updated>2010-04-15T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2010/04/15/dailynews_12</id>
   <content type="html">&lt;p&gt;Rails users are having fun before Rails3 :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.railsdispatch.com/&quot;&gt;Rails Dispatch&lt;/a&gt; &amp;#8211; How to use Bundler with Rails3&lt;br /&gt;
&lt;a href=&quot;http://github.com/michaeldv/awesome_print&quot;&gt;awesome_print&lt;/a&gt; &amp;#8211; Clean your &lt;span class=&quot;caps&quot;&gt;IRB&lt;/span&gt;.&lt;br /&gt;
&lt;a href=&quot;http://www.exceptionhub.com/&quot;&gt;ExceptionHub | JavaScript Error Tracking&lt;/a&gt; &amp;#8211; Maybe a professional solution for JS testing.&lt;br /&gt;
&lt;a href=&quot;http://blog.cookiestack.com/post/498473476/some-handy-rack-rewrite-rules&quot;&gt;cookiestack: some handy rack-rewrite rules&lt;/a&gt; &amp;#8211; rack-rewrite usage examples&lt;br /&gt;
&lt;a href=&quot;http://blog.josephwilk.net/ruby/cucumber-tags-and-continuous-integration-oh-my.html&quot;&gt;Cucumber, Tags and Continuous Integration&lt;/a&gt; &amp;#8211; Cool Cucumber tags usage&lt;br /&gt;
&lt;a href=&quot;http://openmonkey.com/articles/2010/04/javascript-testing-with-cucumber-capybara&quot;&gt;JavaScript Testing with Cucumber and Capybara&lt;/a&gt; &amp;#8211; How to test your pages Javascript&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s play with HTML5 :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.chiptune.com/starfield/starfield.html&quot;&gt;Starfield&lt;/a&gt; &amp;#8211; a HTML5 cool demo&lt;br /&gt;
&lt;a href=&quot;http://mrdoob.com/projects/chromeexperiments/ball_pool/&quot;&gt;Ball Pool&lt;/a&gt; &amp;#8211; and another one (Say bye bye to Flash&amp;#8230;)&lt;/p&gt;
&lt;p&gt;Or with WebGL : &lt;br /&gt;
&lt;a href=&quot;http://twitter.com/paulrouget/status/12103971673&quot;&gt;WebGL &amp;#8211; Collada Animation and Skinning&lt;/a&gt; &amp;#8211; Just incredible !&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s talk about design :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.azarask.in/blog/post/know_when_to_stop_designing_quantitatively/&quot;&gt;Know When to Stop Designing&lt;/a&gt; &amp;#8211; Interesting design techniques&lt;br /&gt;
&lt;a href=&quot;http://dev.opera.com/articles/view/css-generated-content-techniques/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; generated content techniques&lt;/a&gt; &amp;#8211; How and when to use the css : &amp;#8216;content&amp;#8217; property&lt;br /&gt;
&lt;a href=&quot;http://nivo.dev7studios.com/&quot;&gt;Nivo Slider&lt;/a&gt; &amp;#8211; Cool Jquery gallery&lt;br /&gt;
&lt;a href=&quot;http://www.mightymeta.co.uk/introducing-the-web-safe-font-cheat-sheet/&quot;&gt;Web Safe Font Cheat Sheet&lt;/a&gt; &amp;#8211; &lt;br /&gt;
Which font and which usage for the web&lt;/p&gt;
&lt;p&gt;or development :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://netcetera.org/cgi-bin/tmbundles.cgi&quot;&gt;TextMate Bundle Browser&lt;/a&gt; &amp;#8211; a textmate bundles list&lt;br /&gt;
&lt;a href=&quot;http://prototypejs.org/2010/4/5/prototype-1-7-rc1-sizzle-layout-dimensions-api-event-delegation-and-more&quot;&gt;Prototype 1.7 RC1&lt;/a&gt; &amp;#8211; New Prototype version incoming but who is still using it ? &lt;br /&gt;
&lt;a href=&quot;http://almost.done21.com/2010/04/adlib-apples-secret-ipad-web-framework/&quot;&gt;Apple&amp;#8217;s secret iPad web framework?&lt;/a&gt; &amp;#8211; What if native Ipad app were build with web technologies&amp;#8230;&lt;br /&gt;
&lt;a href=&quot;http://github.com/guides/git-cheat-sheet&quot;&gt;Git Cheat Sheet&lt;/a&gt; &amp;#8211; Keep this at your disposal.&lt;br /&gt;
&lt;a href=&quot;http://webkit.org/blog/1091/more-web-inspector-updates/&quot;&gt;More Web Inspector Updates&lt;/a&gt; &amp;#8211; Webkit Web &lt;br /&gt;
Inspector is getting better and better&amp;#8230;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#11</title>
   <link href="http://jblanche.fr/2010/04/01/dailynews_11.html"/>
   <updated>2010-04-01T00:00:00+02:00</updated>
   <id>http://jblanche.fr/2010/04/01/dailynews_11</id>
   <content type="html">&lt;p&gt;A lot of Ruby related stuff today : &lt;br /&gt;
&lt;a href=&quot;http://lindsaar.net/2010/3/31/bundle_me_some_sanity&quot;&gt;Another Bundler tutorial&lt;/a&gt; &amp;#8211; How to use Bundler and &lt;span class=&quot;caps&quot;&gt;RVM&lt;/span&gt; for more efficiency.&lt;br /&gt;
&lt;a href=&quot;http://gembundler.com/&quot;&gt;Bundler: best way to manage Ruby applications&lt;/a&gt; &amp;#8211; Some doc you should read if you&amp;#8217;re having issues with Bundler&lt;br /&gt;
&lt;a href=&quot;http://caiustheory.com/ruby-shortcuts&quot;&gt;Ruby Shortcuts&lt;/a&gt; &amp;#8211; Usefull shortcuts I always forgot.&lt;br /&gt;
&lt;a href=&quot;http://rubysoc.org/&quot;&gt;Ruby Summer of Code&lt;/a&gt; &amp;#8211; A GSoC for Ruby !&lt;br /&gt;
&lt;a href=&quot;http://blog.new-bamboo.co.uk/2010/1/2/dragonfly&quot;&gt;On-the-fly image handling&lt;/a&gt; &amp;#8211; Another way to generate thumbnails in your rails app.&lt;br /&gt;
&lt;a href=&quot;http://www.igvita.com/2010/03/22/untangling-evented-code-with-ruby-fibers&quot;&gt;Evented Code with Ruby Fibers&lt;/a&gt; &amp;#8211; Evented Code made easy thanks to Ruby1.9&lt;br /&gt;
&lt;a href=&quot;http://www.ubiquo.me/&quot;&gt;ubiquo&lt;/a&gt; &amp;#8211; Another Rails &lt;span class=&quot;caps&quot;&gt;CMS&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/&quot;&gt;The Lowdown on Routes in Rails 3&lt;/a&gt; &amp;#8211; Great blogpost about rails3 routing &lt;span class=&quot;caps&quot;&gt;DSL&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;HAML&lt;/span&gt;/&lt;span class=&quot;caps&quot;&gt;SASS&lt;/span&gt; 3 are coming : &lt;br /&gt;
&lt;a href=&quot;http://nex-3.com/posts/92-firesass-bridges-the-gap-between-sass-and-firebug&quot;&gt;FireSass Bridges the Gap Between Sass and Firebug&lt;/a&gt; &amp;#8211; That&amp;#8217;s really good news !&lt;br /&gt;
&lt;a href=&quot;http://nex-3.com/posts/94-haml-sass-3-beta-released&quot;&gt;Haml/Sass 3 Beta Released&lt;/a&gt; &amp;#8211; Writing &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; an the &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; the easy way, is easier than ever&amp;#8230;&lt;/p&gt;
&lt;p&gt;Everything else : &lt;br /&gt;
&lt;a href=&quot;http://csswizardry.com/type-tips/&quot;&gt;Typography quick tips&lt;/a&gt; &amp;#8211; Some good things to know about web typography !&lt;br /&gt;
&lt;a href=&quot;http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html&quot;&gt;High Scalability &amp;#8211; Justin.tv&lt;/a&gt; &amp;#8211; Yes Rails can scale, but you need the right tools next to it !&lt;br /&gt;
&lt;a href=&quot;http://github.com/nateware/redis-objects&quot;&gt;nateware&amp;#8217;s redis-objects&lt;/a&gt; &amp;#8211; Something that could ease the transition to Redis&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#10</title>
   <link href="http://jblanche.fr/2010/03/18/dailynews_10.html"/>
   <updated>2010-03-18T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/03/18/dailynews_10</id>
   <content type="html">&lt;p&gt;It&amp;#8217;s been a few days without post, but believe me, they were interesting days. &lt;br /&gt;
A lot of things came thought, I&amp;#8217;ll have to talk about this in a while!&lt;/p&gt;
&lt;p&gt;Before that let&amp;#8217;s see what happened during those days:&lt;/p&gt;
&lt;p&gt;I tried to learn about Redis :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/redis/wiki/IntroductionToRedisDataTypes&quot;&gt;IntroductionToRedisDataTypes&lt;/a&gt; &amp;#8211; More stuff about Redis&lt;br /&gt;
&lt;a href=&quot;http://robots.thoughtbot.com/post/443934722/redis-data-cheeseburgers&quot;&gt;Redis: Data Cheeseburgers&lt;/a&gt; &amp;#8211; Redis made easy by the thoughtbot guys&lt;/p&gt;
&lt;p&gt;I read a few ruby related blog posts:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.plataformatec.com.br/2010/03/show-your-objects-baby/&quot;&gt;Show your objects baby!&lt;/a&gt; &amp;#8211; Plataformatec guys strike again with a library to easily display every attribute of an object.&lt;br /&gt;
&lt;a href=&quot;http://www.skorks.com/2010/03/timing-ruby-code-it-is-easy-with-benchmark/&quot;&gt;Timing Ruby Code&lt;/a&gt; &amp;#8211; Benchmark ruby code&lt;br /&gt;
&lt;a href=&quot;http://blog.rubybestpractices.com/posts/gregory/022-rbp-now-open.html&quot;&gt;Ruby Best Practices&lt;/a&gt; &amp;#8211; A free ebook for better ruby code&lt;/p&gt;
&lt;p&gt;A few Javascript related ones:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://iamneato.com/2010/01/03/speks-for-node&quot;&gt;Speks for Node.js&lt;/a&gt; &amp;#8211; Rspec derivative for Node.js&lt;br /&gt;
&lt;a href=&quot;http://www.humblesoftware.com/finance/index&quot;&gt;humbleFinance&lt;/a&gt; &amp;#8211; Another data visualization Javascript plugin&lt;br /&gt;
&lt;a href=&quot;http://desandro.com/resources/jquery-masonry/&quot;&gt;jQuery Masonry&lt;/a&gt; &amp;#8211; Great Jquery library for hacking &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; floating model&lt;br /&gt;
&lt;a href=&quot;http://github.com/mynyml/harmony&quot;&gt;harmony at master &amp;#8211; GitHub&lt;/a&gt; &amp;#8211; Javascript testing made easy&lt;/p&gt;
&lt;p&gt;And a few others:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://carsonified.com/blog/design/setting-rather-than-resetting-default-styling/&quot;&gt;Setting rather than Resetting Default Styling&lt;/a&gt; &amp;#8211; Another good start for your stylesheets, I should give it a try!&lt;br /&gt;
&lt;a href=&quot;https://mozillalabs.com/blog/2010/03/online-identity-concept-series/&quot;&gt;Online Identity Concept Series&lt;/a&gt; &amp;#8211; Mozilla enters the online identity discussions.&lt;br /&gt;
&lt;a href=&quot;http://designingfortheweb.co.uk/book/index.php&quot;&gt;Designing for the Web&lt;/a&gt; &amp;#8211; Web Design has its own set of rules, here they are&amp;#8230;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#9</title>
   <link href="http://jblanche.fr/2010/03/03/dailynews_9.html"/>
   <updated>2010-03-03T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/03/03/dailynews_9</id>
   <content type="html">&lt;p&gt;Ruby / Rails&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://amerine.net/2010/02/24/rvm-rails3-ruby-1-9-2-setup.html&quot;&gt;Rails 3.0 Setup using rvm &lt;span class=&quot;ampersand&quot;&gt;&amp;amp;&lt;/span&gt; Ruby 1.9.2&lt;/a&gt; &amp;#8211; A good way to start working with Rails3 and Ruby 1.9.2&lt;br /&gt;
&lt;a href=&quot;http://github.com/jnunemaker/canable/&quot;&gt;jnunemaker&amp;#8217;s canable&lt;/a&gt; &amp;#8211; Simple permissions solution for rails&lt;br /&gt;
&lt;a href=&quot;http://weblog.jamisbuck.org/2010/3/2/unobtrusive-yet-explicit&quot;&gt;Unobtrusive JS in Rails3&lt;/a&gt; &amp;#8211; Interesting way to handle unobtrusive javascript&lt;br /&gt;
&lt;a href=&quot;http://github.com/bebanjo/delorean&quot;&gt;delorean&lt;/a&gt; &amp;#8211; Delorean lets you travel in time with Ruby by mocking Time.now&lt;br /&gt;
&lt;a href=&quot;http://jgn.heroku.com/2010/02/28/rapid-prototyping-with-haml-sass-and-ruby/&quot;&gt;Rapid prototyping with &lt;span class=&quot;caps&quot;&gt;HAML&lt;/span&gt;, &lt;span class=&quot;caps&quot;&gt;SASS&lt;/span&gt; and Ruby&lt;/a&gt; &amp;#8211; Some thoughts about &lt;span class=&quot;caps&quot;&gt;HAML&lt;/span&gt; and &lt;span class=&quot;caps&quot;&gt;SASS&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Javascript&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://howtonode.org/&quot;&gt;How To Node&lt;/a&gt; &amp;#8211; Latest news from node.js&lt;br /&gt;
&lt;a href=&quot;http://rfw.posterous.com/how-nodejs-saved-my-web-application&quot;&gt;How NodeJS saved my web application&lt;/a&gt; &amp;#8211; Why you should learn NodeJs&lt;br /&gt;
&lt;a href=&quot;http://github.com/subtleGradient/javascript-tools.tmbundle&quot;&gt;subtleGradient&amp;#8217;s&lt;/a&gt; &amp;#8211; Essential Tools for developing Javascript in TextMate &amp;#8211; Read more&lt;/p&gt;
&lt;p&gt;Other stuff&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.fsf.org/blogs/community/google-free-on2-vp8-for-youtube&quot;&gt;Open letter to Google about video&lt;/a&gt; &amp;#8211; Free VP8, and use it on YouTube, come on guys, don&amp;#8217;t be evil ! Let&amp;#8217;s do that !&lt;br /&gt;
&lt;a href=&quot;http://iampaddy.com/lifebelow600/&quot;&gt;Life Below 600px&lt;/a&gt; &amp;#8211; Repeat after me : Don&amp;#8217;t mind the fold !&lt;br /&gt;
&lt;a href=&quot;http://www.lukew.com/ff/entry.asp?1007&quot;&gt;Mad Libs Style Form Increases Conversion&lt;/a&gt; &amp;#8211; A new way to style your forms&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#8</title>
   <link href="http://jblanche.fr/2010/02/19/dailynews_8.html"/>
   <updated>2010-02-19T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/02/19/dailynews_8</id>
   <content type="html">&lt;p&gt;Rails : &lt;br /&gt;
&lt;a href=&quot;http://www.viget.com/extend/rails-3-generators-the-old-faithful/&quot;&gt;Rails 3 Generators&lt;/a&gt; &amp;#8211; How they work&lt;br /&gt;
&lt;a href=&quot;http://blog.plataformatec.com.br/2010/02/happy-birthday-devise/&quot;&gt;Happy Birthday Devise&lt;/a&gt; &amp;#8211; The best authentication solution for rails gets new features.&lt;br /&gt;
&lt;a href=&quot;http://blog.plataformatec.com.br/2010/02/rails-metrics-know-what-is-happening-inside-your-rails-3-application/&quot;&gt;Rails Metrics&lt;/a&gt; &amp;#8211; Know what is happening inside your Rails 3 application&lt;/p&gt;
&lt;p&gt;And everything else : &lt;br /&gt;
&lt;a href=&quot;http://shiftcommathree.com/articles/how-to-install-mongodb-on-os-x&quot;&gt;How to install MongoDB on OS X&lt;/a&gt; &amp;#8211; A quick and well done tutorial.&lt;br /&gt;
&lt;a href=&quot;http://www.bbc.co.uk/blogs/bbcinternet/2010/02/a_new_global_visual_language_f.html&quot;&gt;BBC&amp;#8217;s redesign&lt;/a&gt; &amp;#8211; A great story about the new global visual language for the BBC&amp;#8217;s digital services&lt;br /&gt;
&lt;a href=&quot;http://mongotips.com/&quot;&gt;MongoTips&lt;/a&gt; &amp;#8211; A great place to follow things about Mongo&lt;br /&gt;
&lt;a href=&quot;http://mir.aculo.us/2010/02/19/i-cant-believe-its-not-flash&quot;&gt;I Can&amp;#8217;t Believe It&amp;#8217;s Not Flash!&lt;/a&gt; &amp;#8211; Slides from Thomas Fuchs presentation at Webstock 2010. I want to see the video.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#7</title>
   <link href="http://jblanche.fr/2010/02/15/dailynews_7.html"/>
   <updated>2010-02-15T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/02/15/dailynews_7</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.switchonthecode.com/tutorials/javascript-objects-a-useful-example&quot;&gt;Javascript Objects&lt;/a&gt; &amp;#8211; An interesting Object Oriented Javascript example.&lt;br /&gt;
&lt;a href=&quot;http://www.idiotsabound.com/did-i-mention-mongodb-is-fast-way-to-go-mongo&quot;&gt;MongoDb is fast&lt;/a&gt; &amp;#8211; I realy should try one of these NoSql in a project.&lt;br /&gt;
&lt;a href=&quot;http://antoniocangiano.com/2009/11/20/setup-ruby-enterprise-edition-nginx-and-passenger-aka-mod_rails-on-ubuntu/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;REE&lt;/span&gt;, nginx and Passenger&lt;/a&gt; &amp;#8211; Setup Ruby Enterprise Edition, Nginx and Passenger on a server.&lt;br /&gt;
&lt;a href=&quot;http://blog.jilion.com/2010/02/11/sublimevideo-supports-firefox#comments&quot;&gt;SublimeVideo&lt;/a&gt; &amp;#8211; A cool video player using HTML5 video support&lt;br /&gt;
&lt;a href=&quot;http://pixelmatrixdesign.com/uniform/&quot;&gt;Uniform&lt;/a&gt; &amp;#8211; Sexy forms with jQuery, not sure I really need this but I&amp;#8217;ll give it a try.&lt;br /&gt;
&lt;a href=&quot;http://github.com/cardmagic/contacts&quot;&gt;Cardmagic&lt;/a&gt; &amp;#8211; A good interface to import email contacts from various providers&lt;br /&gt;
&lt;a href=&quot;http://gist.github.com/296055&quot;&gt;Clean rails3 environment&lt;/a&gt; &amp;#8211; How to set up a clean Rails3 environment on your mac&lt;br /&gt;
&lt;a href=&quot;http://razorjack.net/quicksand/&quot;&gt;jQuery Quicksand&lt;/a&gt; &amp;#8211; Reorder and filter items with a nice shuffling animation.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#6</title>
   <link href="http://jblanche.fr/2010/02/09/dailynews_6.html"/>
   <updated>2010-02-09T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/02/09/dailynews_6</id>
   <content type="html">&lt;p&gt;Some Rails3 links :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://railsplugins.org/&quot;&gt;Rails Plugins&lt;/a&gt; &amp;#8211; Find out if your plugin is compatible with Rails3&lt;br /&gt;
&lt;a href=&quot;http://blog.peepcode.com/tutorials/2010/live-coding-rails-3-upgrade&quot;&gt;Rails 3 Upgrade&lt;/a&gt; &amp;#8211; A free PeepCode screencast to upgrade your app to Rails3&lt;br /&gt;
&lt;a href=&quot;http://ryanbigg.com/guides/initialization.html&quot;&gt;The Rails Initialization Process&lt;/a&gt; &amp;#8211; This guide explains how the initialization process in Rails works as of Rails 3.&lt;/p&gt;
&lt;p&gt;And some othe stuff :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.allfacebook.com/2009/02/facebook-privacy/&quot;&gt;10 Privacy Settings Every Facebook User Should Know&lt;/a&gt; &amp;#8211; Protect your privacy on Facebook&lt;br /&gt;
&lt;a href=&quot;http://www.quirksmode.org/blog/archives/2010/02/the_iphone_obse.html&quot;&gt;The iPhone obsession&lt;/a&gt; &amp;#8211; Why Iphone-only websites is an insane idea.&lt;br /&gt;
&lt;a href=&quot;http://chriseppstein.github.com/blog/2010/02/08/haml-sucks-for-content/&quot;&gt;Haml Sucks for Content&lt;/a&gt; &amp;#8211; When not to use Haml&lt;br /&gt;
&lt;a href=&quot;http://jmesnil.net/stomp-websocket/doc/&quot;&gt;Stomp on Web Sockets&lt;/a&gt; &amp;#8211; Interesting way to combine stomp and websockets.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#5</title>
   <link href="http://jblanche.fr/2010/02/01/dailynews_5.html"/>
   <updated>2010-02-01T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/02/01/dailynews_5</id>
   <content type="html">&lt;p&gt;A lot of stuff after a short holiday week :&lt;/p&gt;
&lt;p&gt;About Rails 3 :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.peepcode.com/tutorials/2010/live-coding-rails-3-upgrade&quot;&gt;Rails 3 Upgrade&lt;/a&gt; &amp;#8211; A free PeepCode screencast to upgrade tour app to Rails3&lt;br /&gt;
&lt;a href=&quot;http://yehudakatz.com/2010/02/01/safebuffers-and-rails-3-0/&quot;&gt;SafeBuffers&lt;/a&gt; &amp;#8211; Rails3 will add &lt;span class=&quot;caps&quot;&gt;XSS&lt;/span&gt; protection by default, here is how.&lt;br /&gt;
&lt;a href=&quot;http://yehudakatz.com/2010/02/01/bundler-0-9-heading-toward-1-0/&quot;&gt;Bundler 0.9&lt;/a&gt; &amp;#8211; How Bundler will make dependency resolution so much easier.&lt;br /&gt;
&lt;a href=&quot;http://omgbloglol.com/post/364624593/rails-upgrade-is-now-an-official-plugin&quot;&gt;rails_upgrade&lt;/a&gt; &amp;#8211; A plugin that adds a few rake tasks to make the switch to rails3 a lot easier.&lt;/p&gt;
&lt;p&gt;About the Ipad / Adobe / Google :&lt;/p&gt;
&lt;p&gt;I really don&amp;#8217;t know what to think about the IPad, I can imagine a lot of people using it (my parents, my sister&amp;#8230;), but I hate the store system, and it lacks a Webcam and &lt;span class=&quot;caps&quot;&gt;USB&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.guardian.co.uk/technology/2010/jan/31/ipad-review-comments-naughton&quot;&gt;Apple + iPad + Huxley = Orwellian nightmare&lt;/a&gt; &amp;#8211; Another story about the Ipad and how apple will try to &amp;#8220;trap&amp;#8221; us.&lt;br /&gt;
&lt;a href=&quot;http://daringfireball.net/2010/01/various_ipad_thoughts&quot;&gt;Thoughts and Observations Regarding the iPad&lt;/a&gt; &amp;#8211; A interesting review of the Ipad&lt;br /&gt;
&lt;a href=&quot;http://www.bynkii.com/archives/2010/01/stop_crashing_my_browser.html&quot;&gt;Stop crashing my Browser&lt;/a&gt; &amp;#8211; Another complain about the flash plugin. Again, and again, and again&amp;#8230;&lt;br /&gt;
&lt;a href=&quot;http://www.wired.com/epicenter/2010/01/googles-dont-be-evil-mantra-is-bullshit-adobe-is-lazy-apples-steve-jobs/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+wired%2Findex+%28Wired%3A+Index+3+%28Top+Stories+2%29%29&amp;amp;utm_content=Google+Reader&quot;&gt;Jobs about Google and Adobe&lt;/a&gt; &amp;#8211; The world is moving to HTML5 ! If Jobs says so&amp;#8230;&lt;/p&gt;
&lt;p&gt;About browsers :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.mozilla.com/blog/2010/01/29/firefox-for-maemo-now-available/&quot;&gt;Firefox for Mobile Now Available&lt;/a&gt; &amp;#8211; Firefox mobile is ready for the N900 (Maemo). Give it a try !&lt;br /&gt;
&lt;a href=&quot;http://benjamin.smedbergs.us/blog/2010-01-27/multi-process-plugins-on-by-default/&quot;&gt;Multi-Process Plugins for Firefox&lt;/a&gt; &amp;#8211; Firefox newest nightly builds puts plugins in a separate process. Flash should no longer crash Firefox !&lt;br /&gt;
&lt;a href=&quot;http://googleenterprise.blogspot.com/2010/01/modern-browsers-for-modern-applications.html&quot;&gt;Modern browsers for modern applications&lt;/a&gt; &amp;#8211; Google shoot one more bullet in the IE6 chest&lt;/p&gt;
&lt;p&gt;The everything else :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://nosql.mypopescu.com/post/363599078/nosql-week-in-review-9&quot;&gt;NoSQL Week in Review 9&lt;/a&gt; &amp;#8211; A good catch up of the NoSQL movement&lt;br /&gt;
&lt;a href=&quot;http://snook.ca/archives/html_and_css/multiple-bg-css-gradients&quot;&gt;Multiple Backgrounds and &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; Gradients&lt;/a&gt; &amp;#8211; Combine CSS3 features&amp;#8230;&lt;br /&gt;
&lt;a href=&quot;http://www.softwarebyrob.com/2006/10/31/nine-things-developers-want-more-than-money/&quot;&gt;Nine Things Developers Want More Than Money&lt;/a&gt; &amp;#8211; Here is how to make a developer happy !&lt;br /&gt;
&lt;a href=&quot;http://scrunchup.com/issue-4/building-accessible-sites-part-1/&quot;&gt;Steps towards building an accessible site&lt;/a&gt; &amp;#8211; Learn the basics of building accessible websites&lt;br /&gt;
&lt;a href=&quot;http://www.sdtimes.com/blog/post/2010/01/30/Facebook-rewrites-PHP-runtime.aspx&quot;&gt;Facebook rewrites &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; runtime&lt;/a&gt; &amp;#8211; Facebook will release a new OpenSource &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; runtime.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#4</title>
   <link href="http://jblanche.fr/2010/01/26/dailynews_4.html"/>
   <updated>2010-01-26T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/01/26/dailynews_4</id>
   <content type="html">&lt;p&gt;Rails 3 first beta is approching :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://lindsaar.net/2010/1/26/new-actionmailer-api-in-rails-3&quot;&gt;New ActionMailer &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt;&lt;/a&gt; &amp;#8211; Why sending email will be painless with Rails3&lt;br /&gt;
&lt;a href=&quot;http://blog.davidchelimsky.net/2010/01/25/rspec-20-in-the-works/&quot;&gt;Rspec 2.0&lt;/a&gt; &amp;#8211; What to expects about Rspec 2.0&lt;/p&gt;
&lt;p&gt;The future of the browsers :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mozillalabs.com/jetpack/2010/01/25/elevating-javascript-performance-through-gpu-power/&quot;&gt;Elevating JavaScript Performance Through &lt;span class=&quot;caps&quot;&gt;GPU&lt;/span&gt; Power&lt;/a&gt; &amp;#8211; The future of Javascript on Firefox&lt;br /&gt;
&lt;a href=&quot;http://www.neurofuzzy.net/2010/01/25/the-flash-players-uncertain-future/&quot;&gt;The Flash Player&amp;#8217;s Uncertain Future&lt;/a&gt; &amp;#8211; Is Flash dead ?&lt;br /&gt;
&lt;a href=&quot;http://www.0xdeadbeef.com/weblog/2010/01/html5-video-and-h-264-what-history-tells-us-and-why-were-standing-with-the-web/&quot;&gt;HTML5 video and H.264&lt;/a&gt; &amp;#8211; Why Mozilla is right about not implementing H.264 for videos.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#3</title>
   <link href="http://jblanche.fr/2010/01/21/dailynews_3.html"/>
   <updated>2010-01-21T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/01/21/dailynews_3</id>
   <content type="html">&lt;p&gt;Small day today, but the 2 first links are realy great news :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/En/Firefox_3.6_for_developers&quot;&gt;Firefox 3.6 is out&lt;/a&gt; &amp;#8211; Check out the cool new stuff you should use (&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; gradients, Woff, JavaScript file APIs&amp;#8230;)&lt;br /&gt;
&lt;a href=&quot;http://blog.phusion.nl/2010/01/20/ruby-enterprise-edition-1-8-7-2010-01-released/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;REE&lt;/span&gt; 1.8.7-2010.01&lt;/a&gt; &amp;#8211; Phusion guys just release the new version of their Ruby interpreter&lt;br /&gt;
&lt;a href=&quot;http://bumptop.com/mac/&quot;&gt;BumpTop Mac&lt;/a&gt; &amp;#8211; You might want to try this, It&amp;#8217;s kinda fun.&lt;br /&gt;
&lt;a href=&quot;http://robots.thoughtbot.com/post/344833329/mygem-configure-block&quot;&gt;configure block&lt;/a&gt; &amp;#8211; Another great use of Ruby blocks&lt;br /&gt;
&lt;a href=&quot;http://rails3.community-tracker.com/permalinks/5/notes-from-the-field-upgrading-to-rails-3&quot;&gt;Rails 3 Migration&lt;/a&gt; &amp;#8211; Some stuff you should know if you plan to migrate some of your Rails app&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>The Rails ecosystem and community</title>
   <link href="http://jblanche.fr/2010/01/21/a-rails-ecosystem.html"/>
   <updated>2010-01-21T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/01/21/a-rails-ecosystem</id>
   <content type="html">&lt;p&gt;I love the &lt;a href=&quot;http://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; framework, I immediately liked it the first time I tried to build a small app, with the good old Rails 1.1.1 (if my memory don&amp;#8217;t betrays me on this one).&lt;/p&gt;
&lt;p&gt;But 5 years later, I have to admit that more than Rails itself, I love working with Rails because of the rails Ecosystem.&lt;/p&gt;
&lt;p&gt;Learning Rails, I learned about so much thing about the Web itself, server administration and all a lot of other web related stuff.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s make a quick tour of that :&lt;/p&gt;
&lt;p&gt;The first thing I discovered with Rails was the &lt;a href=&quot;http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MVC&lt;/span&gt; architectural pattern&lt;/a&gt;, like many (if not all) things I gonna talk about in this blog post, I could have learn it in another way, and I can use it outside of Rails (and believe me, I will), but the fact is I needed Rails at this moment to discover the &lt;span class=&quot;caps&quot;&gt;MVC&lt;/span&gt; pattern. &lt;strong id=&quot;anchor1&quot;&gt;&lt;a href=&quot;#result1&quot;&gt;1&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well since &lt;span class=&quot;caps&quot;&gt;MVC&lt;/span&gt; is good for writing web applications, let&amp;#8217;s take it part by part and see what I learnt for each one.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/rails-ecosystem/model.png&quot; title=&quot;The model&quot; alt=&quot;The model&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Mapping_objet-relationnel&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ORM&lt;/span&gt;&lt;/a&gt; was a great discovery, when I finally realized I could write plain old ruby code instead of writing ugly sql, dealing with &lt;a href=&quot;http://en.wikipedia.org/wiki/SQL_injection&quot;&gt;&lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; injections&lt;/a&gt; &amp;#8230;&lt;br /&gt;
Of course you have to know what&amp;#8217;s gonna happen behind this ruby code, but your studying years should have told you that, and believe me, you&amp;#8217;ll be happy not to write this stuff anymore ! &lt;br /&gt;
After a few years (3 I guess), of ActiveRecord happiness, I discovered &lt;a href=&quot;http://datamapper.org/&quot;&gt;Datamapper&lt;/a&gt;, and again, the Ruby/Rails community make me dig into this brand new and shinny stuff with interest.&lt;/p&gt;
&lt;p&gt;And since a few month, the new hype are &lt;a href=&quot;http://en.wikipedia.org/wiki/NoSQL&quot;&gt;NoSQL &lt;span class=&quot;caps&quot;&gt;DBMS&lt;/span&gt;&lt;/a&gt; (&lt;a href=&quot;http://www.mongodb.org/display/DOCS/Home&quot;&gt;MongoDB&lt;/a&gt;, &lt;a href=&quot;http://couchdb.apache.org/&quot;&gt;CouchDB&lt;/a&gt;&amp;#8230;), again, this can be used outside of Rails, but it&amp;#8217;s really good to see a lot of ruby/rails related resources talking about this stuff &lt;strong id=&quot;anchor2&quot;&gt;&lt;a href=&quot;#result2&quot;&gt;2&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/rails-ecosystem/controller.png&quot; title=&quot;The controller&quot; alt=&quot;The controller&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Well, in fact &lt;span class=&quot;caps&quot;&gt;ORM&lt;/span&gt; where for a long time the first reason I gave to the guys asking me about why I did the &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt;/Rails switch.&lt;br /&gt;
Is there anything interesting aside from the DB related stuff in rails ?&lt;/p&gt;
&lt;p&gt;The answer is &lt;span class=&quot;caps&quot;&gt;YES&lt;/span&gt; ! For sure :&lt;/p&gt;
&lt;p&gt;Rails made me a &lt;a href=&quot;http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol&quot;&gt;&lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt;&lt;/a&gt; fan. What but wait, &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; is just a protocol, in &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; you get &lt;code&gt;$_GET&lt;/code&gt; an &lt;code&gt;$_POST&lt;/code&gt;, what would you like more ? &lt;br /&gt;
Well, with Rails, I discovered the &lt;a href=&quot;http://fr.wikipedia.org/wiki/Representational_State_Transfer&quot;&gt;&lt;span class=&quot;caps&quot;&gt;REST&lt;/span&gt; software architecture&lt;/a&gt;.&lt;br /&gt;
I discovered there was not 2 &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; actions but 8 ! Yes 8 ! &lt;br /&gt;
OK Rails may not use all of them, but the RESTful hype made me understand a lot of thing about the &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; protocol itself, and made my code a lot cleaner than before.&lt;/p&gt;
&lt;p&gt;Learning Rails, I also discovered a lot about &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; caching (expire header, etag) &amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/rails-ecosystem/view.png&quot; title=&quot;The view&quot; alt=&quot;The view&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Hey, that looks interesting but at the very end, you still have to write plain old &lt;a href=&quot;http://en.wikipedia.org/wiki/Html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;&lt;/a&gt; / &lt;a href=&quot;http://en.wikipedia.org/wiki/Cascading_Style_Sheets&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;&lt;/a&gt; / &lt;a href=&quot;http://en.wikipedia.org/wiki/JavaScript&quot;&gt;Javascript&lt;/a&gt; stuff, and that&amp;#8217;s the most time consuming part of my web developer job.&lt;/p&gt;
&lt;p&gt;Know what, you don&amp;#8217;t :&lt;/p&gt;
&lt;p&gt;Of course you can write plain old &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;, &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; stuff, but if you don&amp;#8217;t like it, you can use the &lt;a href=&quot;http://haml-lang.com/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;HAML&lt;/span&gt;&lt;/a&gt; / &lt;a href=&quot;http://sass-lang.com/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;SASS&lt;/span&gt;&lt;/a&gt; couple and makes it a lot easier to write.&lt;br /&gt;
Not enough ? Go on, use &lt;a href=&quot;http://compass-style.org/&quot;&gt;Compass&lt;/a&gt;, you&amp;#8217;ll be able to use all the goodness of &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; frameworks without polluting your &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; code with design related class names everywhere.&lt;br /&gt;
Still not enough, &lt;a href=&quot;http://www.slideshare.net/AaronGustafson/learning-to-love-forms-web-directions-south-07&quot;&gt;learn to love forms&lt;/a&gt;, use &lt;a href=&quot;http://compass-style.org/&quot;&gt;formtastic&lt;/a&gt;, your forms have never been this easy to write and style !&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s all for &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;/&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;, but the Rails community also had great debates about Javascript. &lt;br /&gt;
&lt;a href=&quot;http://github.com/danwrong/low-pro-for-jquery&quot;&gt;LowPro&lt;/a&gt; , one of the first Behavioral Javascript Library was &amp;#8220;Rails related&amp;#8221;.&lt;br /&gt;
Rails 3 will be javascript framework agnostic and will allow you to write great pieces of software without polluting your &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; code with behavioral related JS (using &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; &amp;#8220;data-&amp;#8221; attributes &lt;strong id=&quot;anchor3&quot;&gt;&lt;a href=&quot;#result3&quot;&gt;3&lt;/a&gt;&lt;/strong&gt; )&lt;/p&gt;
&lt;p&gt;You get the idea, learning Rails, you&amp;#8217;ll learn about a lot of Web related stuff you can reuse in any other project, in &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt;, with &lt;a href=&quot;http://www.symfony-project.org/&quot;&gt;Symfony&lt;/a&gt; for example, in Python, with &lt;a href=&quot;http://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt; &amp;#8230;&lt;br /&gt;
And that&amp;#8217;s why, after 5 years coding Rails applications, including 2 as a job, I&amp;#8217;m still not pissed off about my job, and wake up every working day knowing I&amp;#8217;m going to learn some new stuff during the day !&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/rails-ecosystem/server.png&quot; title=&quot;The server&quot; alt=&quot;The server&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Even outside of the Web related stuff, I became a better network administrator during these years, learning stuff about caching mechanism (&lt;a href=&quot;http://memcached.org/&quot;&gt;memcache&lt;/a&gt; ), &lt;br /&gt;
Message Queuing servers (&lt;a href=&quot;http://github.com/defunkt/starling&quot;&gt;Starling&lt;/a&gt; and then &lt;a href=&quot;http://github.com/robey/kestrel&quot;&gt;Kestrel&lt;/a&gt; with all the &amp;#8220;Twitter and Rails&amp;#8221; love or hate story), or background jobs handling(&lt;a href=&quot;http://github.com/defunkt/resque&quot;&gt;Resque&lt;/a&gt; ) with the recent &lt;a href=&quot;http://github.com/&quot;&gt;Github&lt;/a&gt; migration. &lt;br /&gt;
Oh Speaking of Github, &lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt; is again something else I discovered thanks to the rails community !&lt;/p&gt;
&lt;p&gt;Whoa, that&amp;#8217;s king of a lot of thing ! &lt;br /&gt;
If there is something to remeber of this blogpost it would be &amp;#8220;Don&amp;#8217;t be a Rails-Django-Symfony-Spring developer&amp;#8221;, just code with the language you like, the one that makes you look at your code and say &amp;#8220;Cool, that&amp;#8217;s a good looking piece of code&amp;#8221; , but even more important, be &lt;span class=&quot;caps&quot;&gt;AWARE&lt;/span&gt; (like JC Van Damme would say &lt;strong id=&quot;anchor4&quot;&gt;&lt;a href=&quot;#result4&quot;&gt;4&lt;/a&gt;&lt;/strong&gt; ) of the community and ecosystem of your favorite language, you&amp;#8217;ll learn a lot !&lt;/p&gt;
&lt;p class=&quot;anchors&quot;&gt;&lt;strong id=&quot;result1&quot;&gt;&lt;a href=&quot;#anchor1&quot;&gt;1&lt;/a&gt;&lt;/strong&gt; Note to the &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; guys, I know I could write pretty stuff with &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt;, with good &lt;span class=&quot;caps&quot;&gt;ORM&lt;/span&gt;&amp;#8230; I just didn&amp;#8217;t know at that time !   &lt;br /&gt;
&lt;strong id=&quot;result2&quot;&gt;&lt;a href=&quot;#anchor2&quot;&gt;2&lt;/a&gt;&lt;/strong&gt; Like &lt;a href=&quot;http://railscasts.com/episodes/194-mongodb-and-mongomapper&quot;&gt;there&lt;/a&gt; and &lt;a href=&quot;http://railstips.org/2009/6/27/mongomapper-the-rad-mongo-wrapper&quot;&gt;there&lt;/a&gt; and &lt;a href=&quot;http://wiki.rubyonrails.org/database-support/couchdb&quot;&gt;there&lt;/a&gt;.   &lt;br /&gt;
&lt;strong id=&quot;result3&quot;&gt;&lt;a href=&quot;#anchor3&quot;&gt;3&lt;/a&gt;&lt;/strong&gt; Like &lt;a href=&quot;Unobtrusive&quot;&gt;here&lt;/a&gt; JavaScript in Rails 3.   &lt;br /&gt;
&lt;strong id=&quot;result4&quot;&gt;&lt;a href=&quot;#anchor4&quot;&gt;4&lt;/a&gt;&lt;/strong&gt; This is for my french readers.&lt;/p&gt;
&lt;p class=&quot;photo-credits&quot;&gt;Photo Credits :    &lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/bukutgirl/206733063/&quot;&gt;Model&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/thisisbossi/3908526414/&quot;&gt;Controller&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/cmbellman/2431552939/&quot;&gt;View&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/ronniegarcia/89655720/&quot;&gt;Server&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#2</title>
   <link href="http://jblanche.fr/2010/01/20/dailynews_2.html"/>
   <updated>2010-01-20T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/01/20/dailynews_2</id>
   <content type="html">&lt;p&gt;Some Git related stuff :&lt;br /&gt;
&lt;a href=&quot;http://robey.lag.net/2008/07/13/git-for-the-real-world.html&quot;&gt;Git for the real world&lt;/a&gt; &amp;#8211; Some useful tips for a better use of Git&lt;br /&gt;
&lt;a href=&quot;http://robey.lag.net/2009/11/29/more-git.html&quot;&gt;More real-world git&lt;/a&gt; &amp;#8211; Even more tips for a perfect use of Git&lt;br /&gt;
&lt;a href=&quot;http://nvie.com/archives/323&quot;&gt;Successful Git branching&lt;/a&gt; &amp;#8211; Description of a successful development model using Git&lt;/p&gt;
&lt;p&gt;Some Browsers and Javascript :&lt;br /&gt;
&lt;a href=&quot;http://blog.mozilla.com/metrics/2010/01/19/people-in-germany-are-switching-browsers/&quot;&gt;Germany is switching browsers&lt;/a&gt; &amp;#8211; The warning issued by a German security agency convince people to switch&lt;br /&gt;
&lt;a href=&quot;http://blog.getfirebug.com/2010/01/15/firebug-1-5-0/&quot;&gt;Firebug is 1.5.0&lt;/a&gt; &amp;#8211; Get the brand new version of Firebug with a ton of improvements&lt;br /&gt;
&lt;a href=&quot;http://roberto.open-lab.com/2010/01/18/javascript-grid-editor-i-want-to-be-excel/&quot;&gt;JavaScript grid editor&lt;/a&gt; &amp;#8211; Great review of &amp;#8216;want to be&amp;#8217; Excel plugins for &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; tables.&lt;br /&gt;
&lt;a href=&quot;http://james.padolsey.com/javascript/jquery-lint/&quot;&gt;jQuery Lint&lt;/a&gt; &amp;#8211; A library to get rid of incorrect usage of Jquery, this will make your JS code even prettier !&lt;/p&gt;
&lt;p&gt;And a small bag of links :&lt;br /&gt;
&lt;a href=&quot;http://andrewchenblog.com/2009/09/15/why-every-consumer-internet-startup-should-do-more-low-fidelity-prototyping/&quot;&gt;low-fidelity prototyping&lt;/a&gt; &amp;#8211; Why low-fidelity prototyping kicks butt for customer-driven design&lt;br /&gt;
&lt;a href=&quot;http://blog.rubybestpractices.com/posts/gregory/009-beautiful-blocks.html&quot;&gt;Code Blocks&lt;/a&gt; &amp;#8211; Great Review of blocks usage in Ruby&lt;br /&gt;
&lt;a href=&quot;http://github.com/rock-n-code/sinatra-pages&quot;&gt;rock-n-code&lt;/a&gt; &amp;#8211; Easily render static pages with Sinatra&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>DailyNews_#1</title>
   <link href="http://jblanche.fr/2010/01/19/dailynews_1.html"/>
   <updated>2010-01-19T00:00:00+01:00</updated>
   <id>http://jblanche.fr/2010/01/19/dailynews_1</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://modelix.net/2009/09/facebook-connect-working-with-offline-users-data-access/&quot;&gt;Facebook offline&lt;/a&gt; &amp;#8211; Use facebook offline_access with facebooker&lt;br /&gt;
&lt;a href=&quot;http://github.com/justinfrench/lovely-layouts&quot;&gt;lovely-layouts&lt;/a&gt; &amp;#8211; Some usefull helper for your rails layouts&lt;br /&gt;
&lt;a href=&quot;https://gist.github.com/280196/5c075f4a3d3a4118d1d706fce07e40572a3873c7&quot;&gt;Rails 3 Templates&lt;/a&gt; &amp;#8211; A great set of templates for Rails3&lt;br /&gt;
&lt;a href=&quot;http://gsgd.co.uk/sandbox/jquery/easing/&quot;&gt;jQuery Easing Plugin&lt;/a&gt; &amp;#8211; Looks like a very cool Jquery easing plugin !&lt;br /&gt;
&lt;a href=&quot;http://blog.plataformatec.com.br/2010/01/discovering-rails-3-generators/&quot;&gt;Rails 3 generators&lt;/a&gt; &amp;#8211; Great blogpost about the new rails generators to come in Rails3. This is awesome !&lt;br /&gt;
&lt;a href=&quot;http://wiseheartdesign.com/articles/2010/01/18/the-demise-of-css-why-sass-and-languages-like-it-will-triumph/&quot;&gt;Dynamic &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;&lt;/a&gt; &amp;#8211; Good article explaining the benefits of using tools like &lt;span class=&quot;caps&quot;&gt;SASS&lt;/span&gt; in place of plain &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; in your projects.&lt;br /&gt;
&lt;a href=&quot;http://code-fu.pl/2010/01/17/rails-mongodb-resources.html&quot;&gt;MondoDB ressources&lt;/a&gt; &amp;#8211; How to use MongoDB, one of the new NoSQL hype technology, with Rails.&lt;br /&gt;
&lt;a href=&quot;http://openmonkey.com/articles/2010/01/making-your-capistrano-recipe-book&quot;&gt;Capistrano Recipe Book&lt;/a&gt; &amp;#8211; make your own gem to standardize Capistrano deployments&lt;/p&gt;</content>
 </entry>
 
 
</feed>
