<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Boldr</title><link>http://boldr.fr/</link><language>en</language><managingEditor>nicolas@yeastymobs.com (Nicolas Mérouze)</managingEditor><lastBuildDate>Thu, 07 May 2009 17:19:40 PDT</lastBuildDate><description>Ruby, Rails, Mac et Web 2.0</description><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/fr/boldr" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Jour 4 : The Russian Doll Pattern, Mountable Apps In Rails 3</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/iIEmTaMiPds/russian-doll-pattern-mountable-apps-in-rails3.html</link><pubDate>Thu, 07 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/russian-doll-pattern-mountable-apps-in-rails3</guid><description>&lt;h1&gt;Jour 4 : The Russian Doll Pattern, Mountable Apps In Rails 3&lt;/h1&gt;
&lt;p&gt;Voici mes notes pour cette présentation :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Fatigué de faire des pages de login ? (oui un peu).&lt;/li&gt;
	&lt;li&gt;Un calendrier est juste un calendrier. Faut arrêter de se répéter.&lt;/li&gt;
	&lt;li&gt;Plusieurs applications, un groupe.&lt;/li&gt;
	&lt;li&gt;Mon app : Login, Facturation, &lt;span class="caps"&gt;CMS&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;Quel est le coeur de mon business (qu&amp;#8217;est-ce qui est commun, qu&amp;#8217;est-ce qui ne l&amp;#8217;est pas) ?&lt;/li&gt;
	&lt;li&gt;Les engines c&amp;#8217;est productif mais pas très flexible, Rails est moins productif mais plus flexible&amp;#8230; Aucune solution n&amp;#8217;est très productive et très flexible.&lt;/li&gt;
	&lt;li&gt;Django a déjà du multi app et c&amp;#8217;est assez évolué.&lt;/li&gt;
	&lt;li&gt;La syntaxe qui permet d&amp;#8217;avoir une application montable est montrée (ce n&amp;#8217;est pas encore fait dans le core de Rails, mais ils sont en très de finaliser la forme de l&amp;#8217;API). C&amp;#8217;est juste un module, rien d&amp;#8217;autre.&lt;/li&gt;
	&lt;li&gt;La génération d&amp;#8217;URL cross-application. Là encore un exemple de code qui semble alléchant mais rien n&amp;#8217;est codé pour (d&amp;#8217;où la licorne juste avant). C&amp;#8217;est plutôt simple, pas grand chose à ajouter pour la génération d&amp;#8217;URL dans une autre application, c&amp;#8217;est plutôt cool !&lt;/li&gt;
	&lt;li&gt;Pour une startup Web 2.0 générique, un petit exemple de multi-app. On sélectionne le layout qui sera utilisé, ensuite on définit les applications utilisées et l&amp;#8217;imbrication des différentes applications entre elles.&lt;/li&gt;
	&lt;li&gt;On peut aussi faire des overrides de morceaux d&amp;#8217;une application.&lt;/li&gt;
	&lt;li&gt;Pour customiser les templates, il faut plus de helpers (c&amp;#8217;est là que erector peut être super utile). Tout ce qui est dit ici peut très bien s&amp;#8217;appliquer dans vos applications actuelles.&lt;/li&gt;
	&lt;li&gt;Utiliser les parts (existe déjà avec Merb, en Rails il y a le plugin Cells mais qui doit être cassé dans Rails Edge).&lt;/li&gt;
	&lt;li&gt;Les migrations (même question que la présentation sur les engines de Mardi). Réponse : Ne faites pas de down ^^&lt;/li&gt;
	&lt;li&gt;Coopération cross-framework (et là Django est à la rue).&lt;/li&gt;
	&lt;li&gt;Maintenant qu&amp;#8217;on va avoir des applications montables, il faut un système d&amp;#8217;administration.&lt;/li&gt;
	&lt;li&gt;Et puis aussi créer un écosystème autour de ça, avec un dépôt de sources.&lt;/li&gt;
	&lt;li&gt;Mais tout ça n&amp;#8217;est pas pour tout le monde. On peut ne pas avoir le contrôle de tout et ça peut être contrariant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Maintenant je vais avoir du mal à attendre que ce soit intégré à Rails, j&amp;#8217;attends cette fonctionnalité depuis bien longtemps et de voir à quel point ça va être génial ne me fait que plus saliver.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=iIEmTaMiPds:a3qaS1gCl6U:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=iIEmTaMiPds:a3qaS1gCl6U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/iIEmTaMiPds" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/russian-doll-pattern-mountable-apps-in-rails3.html</feedburner:origLink></item><item><title>Jour 3 : Keynote Chris Wanstrath (GitHub)</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/VsdBwjbG-YY/keynote-chris-github.html</link><pubDate>Wed, 06 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/keynote-chris-github</guid><description>&lt;h1&gt;Jour 3 : Keynote Chris Wanstrath (GitHub)&lt;/h1&gt;
&lt;p&gt;Mes notes sur la keynote de Chris Wanstrath aka Defunkt (GitHub) :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Chris parle de comment faire un blog qui va devenir populaire (très marrant).&lt;/li&gt;
	&lt;li&gt;Pour devenir populaire, il faut aussi un Twitter qui claque.&lt;/li&gt;
	&lt;li&gt;On crée des plugins ou des gems en un soir, on publie et on attend la gloire.&lt;/li&gt;
	&lt;li&gt;Et là c&amp;#8217;est bon on arrive à devenir un people et à parler à RailsConf.&lt;/li&gt;
	&lt;li&gt;Mais être populaire ce n&amp;#8217;est pas être bon.&lt;/li&gt;
	&lt;li&gt;Quelques conseils pour coder comme on aime.&lt;/li&gt;
	&lt;li&gt;Trainer à la RailsConf c&amp;#8217;est cool pour rencontrer toutes les stars, les grosses sociétés et essayer de trouver un job ou créer sa boite.&lt;/li&gt;
	&lt;li&gt;Quelques sarcasmes (bon argumentaire cependant) sur Sourceforge :)&lt;/li&gt;
	&lt;li&gt;Arrêtons toutes les critiques, et investir plus de temps à coder.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En résumé faut arrêter de se la jouer, et commencer à coder et à aider la communauté à évoluer.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=VsdBwjbG-YY:DzVQErN6t-s:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=VsdBwjbG-YY:DzVQErN6t-s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/VsdBwjbG-YY" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/keynote-chris-github.html</feedburner:origLink></item><item><title>Utiliser un autre ORM</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/gNxc9fa_fUg/utiliser-un-autre-orm.html</link><pubDate>Wed, 06 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/ruby/utiliser-un-autre-orm</guid><description>&lt;h1&gt;Utiliser un autre &lt;span class="caps"&gt;ORM&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;CouchDB m&amp;#8217;attire beaucoup et encore plus avec la magnifique librairie qu&amp;#8217;est &lt;a href="http://github.com/jchris/couchrest"&gt;CouchRest&lt;/a&gt;. Mais forcément si on n&amp;#8217;utilise pas ActiveRecord, il faut aussi dire au revoir à certains plugins comme authlogic et paperclip. Est-ce que ça en vaut vraiment la peine ?&lt;/p&gt;
&lt;p&gt;Comme Matt le disait dans sa &lt;a href="http://nmerouze.github.com/railsconf09/rails3-step-off-of-the-golden-path.html"&gt;présentation de Rails 3&lt;/a&gt;, si on ne veut pas des éléments par défaut il faut se poser cette question et bien sûr trouver une réponse. Evaluons donc si ça en vaut la peine.&lt;/p&gt;
&lt;p&gt;Déjà il y a plusieurs raisons pour que je veuille utiliser CouchDB : ce n&amp;#8217;est pas relationnel, le scaling horizontal est simple, c&amp;#8217;est un projet bourré d&amp;#8217;espoir, les vues c&amp;#8217;est bien et enfin CouchRest est super cool. Et même si je suis loin d&amp;#8217;en être sûr je pense que ça me permettrait d&amp;#8217;être plus productif qu&amp;#8217;avec un &lt;span class="caps"&gt;SGBDR&lt;/span&gt; classique.&lt;/p&gt;
&lt;p&gt;Mais est-ce que toutes ces raisons pèsent plus dans la balance que la non compatibilité de ce que j&amp;#8217;utilise avec ActiveRecord ?&lt;/p&gt;
&lt;p&gt;Commençons par authlogic (ou un autre plugin pour l&amp;#8217;authentification), le code est facilement extractable pour tout ce qui est sécurité et tokens, ensuite &lt;a href="http://github.com/hassox/warden"&gt;Warden&lt;/a&gt; est un super middleware Rack qui s&amp;#8217;occupera de toute le reste.&lt;/p&gt;
&lt;p&gt;Pour paperclip, on a &lt;a href="http://github.com/akdubya/rack-thumb"&gt;rack-thumb&lt;/a&gt; que je trouve plutôt bien foutu. Pour le stockage d&amp;#8217;informations dans la DB, c&amp;#8217;est l&amp;#8217;histoire de quelques lignes de code.&lt;/p&gt;
&lt;p&gt;Jusque là on va dire qu&amp;#8217;on a passé une grosse journée pour convertir les outils actuellement utilisés vers les nouveaux. Ce n&amp;#8217;est pas grand chose et ça peut aider la communauté.&lt;/p&gt;
&lt;p&gt;Enfin utiliser CouchRest avec Rails c&amp;#8217;est se passer de beaucoup de helpers, ce qui n&amp;#8217;est pas l&amp;#8217;idéal. Bien sûr Rails 3 réglera le problème mais ne devrait pas sortir avant quelques mois. Sinon il est facile d&amp;#8217;utiliser Merb 1.1 (bientôt disponible) ou Sinatra. Mais là encore il faudra se passer de certains plugins.&lt;/p&gt;
&lt;p&gt;N&amp;#8217;ayant pas le problème de me fixer à une version d&amp;#8217;un framework ni d&amp;#8217;avoir une multitude de plugins, je peux très bien utiliser CouchRest avec Merb 1.1 dans mon cas. Je n&amp;#8217;aurais pas beaucoup plus de développement à faire et je pourrais utiliser CouchDB.&lt;/p&gt;
&lt;p&gt;Ce que je voulais faire avec cet article c&amp;#8217;est vous montrer ce que peut impliquer le choix d&amp;#8217;un élément par rapport à un autre et la réflexion qui en découlait. Cette réflexion se fait avec tous les &lt;span class="caps"&gt;ORM&lt;/span&gt; existants actuellement, d&amp;#8217;où le titre du billet, et se fera quand viendra Rails 3. Et on peut aussi étendre ça à n&amp;#8217;importe quoi.&lt;/p&gt;
&lt;p&gt;Ayez donc toujours en tête que le changement d&amp;#8217;un seul élément dans votre boite à outils peut entraîner des modifications que vous ne pourrez peut-être pas assumer et si vous n&amp;#8217;y réfléchissez vous foncez directement dans le mur.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=gNxc9fa_fUg:HE6DxTXrHHM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=gNxc9fa_fUg:HE6DxTXrHHM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/gNxc9fa_fUg" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/ruby/utiliser-un-autre-orm.html</feedburner:origLink></item><item><title>Jour 3 : Interfaces Are Dumb</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/lZ41zD4NQfg/interfaces-are-dumb.html</link><pubDate>Wed, 06 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/interfaces-are-dumb</guid><description>&lt;h1&gt;Jour 3 : Interfaces Are Dumb&lt;/h1&gt;
&lt;p&gt;Voici mes notes sur la présentation sur les interfaces :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Petite analogie entre les interfaces en programmation et l&amp;#8217;électricité (les prises et autres).&lt;/li&gt;
	&lt;li&gt;Rack c&amp;#8217;est génial (pas faux). Super interface, très (très) simple.&lt;/li&gt;
	&lt;li&gt;Phusion peut disparaitre, Rails peut disparaitre, Rack est là pour venir à notre rescousse.&lt;/li&gt;
	&lt;li&gt;&amp;#8220;APIs are awesome&amp;#8221;, exemple avec flickr.com, twitter.com (avec les différentes applications, c&amp;#8217;est vrai qu&amp;#8217;on voit à quel point les APIs sont cool grâce à ces applications).&lt;/li&gt;
	&lt;li&gt;&lt;span class="caps"&gt;YQL&lt;/span&gt; un langage unifié pour les APIs (mais je ne suis toujours pas convaincu par &lt;span class="caps"&gt;YQL&lt;/span&gt;).&lt;/li&gt;
	&lt;li&gt;Webhooks, exemple de GitHub (c&amp;#8217;est vrai qu&amp;#8217;avec on peut faire n&amp;#8217;importe quoi), de &lt;a href="http://github.com/entp/astrotrain"&gt;astrotrain&lt;/a&gt; et de Paypal &lt;span class="caps"&gt;IPN&lt;/span&gt;.&lt;/li&gt;
	&lt;li&gt;PubSubHubBub (trouvez des infos par vous-même).&lt;/li&gt;
	&lt;li&gt;Faire une carte pour designer l&amp;#8217;interface pour que n&amp;#8217;importe qui puisse la comprendre.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Une vue d&amp;#8217;ensemble des interfaces dans le web plutôt intéressante et marrante.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=lZ41zD4NQfg:CSgDPVQrS88:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=lZ41zD4NQfg:CSgDPVQrS88:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/lZ41zD4NQfg" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/interfaces-are-dumb.html</feedburner:origLink></item><item><title>Jour 3 : Rails 3, Step Off Of The Golden Path</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/GiGpssKz8kA/rails3-step-off-of-the-golden-path.html</link><pubDate>Wed, 06 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/rails3-step-off-of-the-golden-path</guid><description>&lt;h1&gt;Jour 3 : Rails 3, Step Off Of The Golden Path&lt;/h1&gt;
&lt;p&gt;Mes notes sur la présentation de &lt;a href="http://merbist.com"&gt;Matt&lt;/a&gt; sur Rails 3 :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Petit historique de Ruby et de Rails et on arrive au schisme.&lt;/li&gt;
	&lt;li&gt;Merb c&amp;#8217;est un peu comme Rails avec performance et agnosticisme en plus.&lt;/li&gt;
	&lt;li&gt;Le problème du schisme c&amp;#8217;est que ça a entraîné des tensions. Et c&amp;#8217;est là que le merge arrive.&lt;/li&gt;
	&lt;li&gt;Rails 3 c&amp;#8217;est quoi actuellement ? Du vent, c&amp;#8217;est un vaporware (l&amp;#8217;alpha sortira cette semaine apparemment quand même).&lt;/li&gt;
	&lt;li&gt;Rails 3 c&amp;#8217;est de meilleures performances, une meilleure modularité, une &lt;span class="caps"&gt;API&lt;/span&gt; publique (houra pour les plugins !) et des applications montables.&lt;/li&gt;
	&lt;li&gt;Avec Rails 3 il y aura plusieurs voies, ce ne sera plus que &lt;span class="caps"&gt;ERB&lt;/span&gt;/Prototype/ActiveRecord/Test::Unit.&lt;/li&gt;
	&lt;li&gt;Plus de flexibilité, moins obstiné (pas envie de traduire opinionated mieux que ça).&lt;/li&gt;
	&lt;li&gt;Ne pas utiliser la stack par défaut, c&amp;#8217;est avoir moins de documentation, moins de plugins&amp;#8230; Est-ce que ça vaut le coup d&amp;#8217;avoir une stack customisé ? C&amp;#8217;est la question qu&amp;#8217;il faudra se poser.&lt;/li&gt;
	&lt;li&gt;Petite présentation de Datamapper (ça rocks bien sûr).&lt;/li&gt;
	&lt;li&gt;Quelques bouts de code pour customiser Rails à l&amp;#8217;extrême.&lt;/li&gt;
	&lt;li&gt;Le futur c&amp;#8217;est d&amp;#8217;utiliser Rails dans des endroits où on aurait jamais pu penser l&amp;#8217;utiliser.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Très bonne présentation qui résume bien l&amp;#8217;esprit de Rails 3 et surtout ce que ça va apporter dans la pratique. Bref complémentaire de la keynote de &lt;span class="caps"&gt;DHH&lt;/span&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=GiGpssKz8kA:9aGkHIw41MM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=GiGpssKz8kA:9aGkHIw41MM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/GiGpssKz8kA" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/rails3-step-off-of-the-golden-path.html</feedburner:origLink></item><item><title>Jour 2 : Scaling Rails</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/91yzovzvb6w/scaling-rails.html</link><pubDate>Tue, 05 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/scaling-rails</guid><description>&lt;h1&gt;Jour 2 : Scaling Rails&lt;/h1&gt;
&lt;p&gt;Voici mes notes pour cette présentation :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;scaling != requests/sec&lt;/li&gt;
	&lt;li&gt;Plusieurs solutions pour le scaling : Vertical scaling, Horizontal scaling.&lt;/li&gt;
	&lt;li&gt;Scaler les serveurs d&amp;#8217;app c&amp;#8217;est trivial, la &lt;span class="caps"&gt;BDD&lt;/span&gt; l&amp;#8217;est moins.&lt;/li&gt;
	&lt;li&gt;Scaling vertical : en plus de la puissance peut être de passer d&amp;#8217;Apache à Nginx.&lt;/li&gt;
	&lt;li&gt;Pour scaler la &lt;span class="caps"&gt;BDD&lt;/span&gt; : Plusieurs serveurs pour la redondance, Master-Slave replication ou multi master replication.&lt;/li&gt;
	&lt;li&gt;Mais il y a des limites à la réplication.&lt;/li&gt;
	&lt;li&gt;Sharding (découpage de la &lt;span class="caps"&gt;BDD&lt;/span&gt;). Mais quelques points faibles. DataFabric pour ActiveRecord.&lt;/li&gt;
	&lt;li&gt;Pour scaler on a aussi les optimisations (de l&amp;#8217;application et des requêtes).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et la présentation se termine par un Wolf3D écrit en Ruby avec Zed Shaw en boss. Hilarious !&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=91yzovzvb6w:W4yVouNEvCU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=91yzovzvb6w:W4yVouNEvCU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/91yzovzvb6w" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/scaling-rails.html</feedburner:origLink></item><item><title>Jour 2 : Keynote de DHH</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/Wi9RnJ3usZg/keynote-dhh.html</link><pubDate>Tue, 05 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/keynote-dhh</guid><description>&lt;h1&gt;Jour 2 : Keynote de &lt;span class="caps"&gt;DHH&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Voici mes notes pour la keynote de &lt;span class="caps"&gt;DHH&lt;/span&gt; :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;5 ans de Rails, ça commence à être pas mal.&lt;/li&gt;
	&lt;li&gt;&amp;#8220;Pas prêt pour l&amp;#8217;entreprise&amp;#8221; &amp;#8594; ça prend du temps à être accepté.&lt;/li&gt;
	&lt;li&gt;&amp;#8220;Rails n&amp;#8217;est pas pertinent si on crée un clone sur un autre langage&amp;#8221;, &amp;#8220;Java n&amp;#8217;est plus chiant avec les scaffold&amp;#8221; &amp;#8594; Mais ce n&amp;#8217;est pas vrai. Rails n&amp;#8217;est pas juste scaffold, c&amp;#8217;est bourré de détails qui font que c&amp;#8217;est unique.&lt;/li&gt;
	&lt;li&gt;&amp;#8220;Je reviens à &lt;span class="caps"&gt;PHP&lt;/span&gt; après 2 ans de Rails&amp;#8221; &amp;#8594; Il préférait &lt;span class="caps"&gt;PHP&lt;/span&gt;, il n&amp;#8217;avait aucun besoin de Rails. Et ce n&amp;#8217;est pas la peine de le lapider.&lt;/li&gt;
	&lt;li&gt;&amp;#8220;Twitter à des problèmes à cause de Rails&amp;#8221; &amp;#8594; Il y a des incidents, la communauté les résolvent. Même chose pour des ajouts dans Rails (comme les second, third&amp;#8230; pour un tableau dans ActiveSupport).&lt;/li&gt;
	&lt;li&gt;&amp;#8220;Merb meilleure alternative à Rails en Ruby&amp;#8221; &amp;#8594; C&amp;#8217;était plus les différences de philosophie que le scaffolding ou les trucs hype de Rails.&lt;/li&gt;
	&lt;li&gt;Après 5 ans, Rails est toujours là.&lt;/li&gt;
	&lt;li&gt;La philosophie de Rails 3 : Pas un rewrite complet ni résoudre tous les problèmes de tout le monde. Mais ça n&amp;#8217;empêche pas de revoir des choses existantes et de se remettre en question (comme alias_method_chain, il y a mieux). &amp;#8220;Have it your way&amp;#8221; &amp;#8594; on peut tous aimer Rails même s&amp;#8217;il y a des choses qu&amp;#8217;on aime pas dedans (et si on les aime pas on les enlève).&lt;/li&gt;
	&lt;li&gt;Nouveau routeur (mountable apps, plus rapide, rack&amp;#8230;). Pour des exemples, allez voir &lt;a href="http://github.com/josh/rack-mount"&gt;rack-mount&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;&lt;span class="caps"&gt;XSS&lt;/span&gt; protection, &lt;code&gt;h&lt;/code&gt; sera le défaut mais on pourra faire l&amp;#8217;inverse (avec &lt;code&gt;raw&lt;/code&gt;).&lt;/li&gt;
	&lt;li&gt;Javascript unobstrusive &amp;amp; agnostic, pas de Javascript dans le code avec les helpers, des attributs à la place (plus &lt;span class="caps"&gt;DRY&lt;/span&gt;, mais pas compatible IE6).&lt;/li&gt;
	&lt;li&gt;Plus d&amp;#8217;agnostic (orm, générateurs).&lt;/li&gt;
	&lt;li&gt;Enfin le gros refactoring (ActionController, ActionDispatch, Action Relation, Cherry picking pour ActiveSupport, callbacks plus rapide).&lt;/li&gt;
	&lt;li&gt;Le vrai secret pour une haute productivité : &amp;#8220;Renegotiate requirements&amp;#8221;. Le programmeur n&amp;#8217;est pas juste un petit chiot mignon qui obéit (exemple avec un système de permissions, ça part d&amp;#8217;un truc super customisable et tout et au final c&amp;#8217;est tellement dur que le résultat est nul, il faut renégocier les exigeances pour avoir un système de permissions qui n&amp;#8217;est pas ce qui était prévu mais qui est totalement satisfaisant). &lt;span class="caps"&gt;DHH&lt;/span&gt; parle ici de son expérience des permissions avec Highrise.&lt;/li&gt;
	&lt;li&gt;On n&amp;#8217;est pas des programmeurs, on est des partenaires.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=Wi9RnJ3usZg:jJ-0zfrAlyQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=Wi9RnJ3usZg:jJ-0zfrAlyQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/Wi9RnJ3usZg" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/keynote-dhh.html</feedburner:origLink></item><item><title>Jour 2 : Bilan</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/yQO40_kG3cE/bilan-jour-2.html</link><pubDate>Tue, 05 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/bilan-jour-2</guid><description>&lt;h1&gt;Jour 2 : Bilan&lt;/h1&gt;
&lt;p&gt;Bonne journée dans l&amp;#8217;ensemble. Même si les différentes présentations ne m&amp;#8217;ont pas appris grand chose, elles ont permis de me mettre les idées au clair et c&amp;#8217;est au final ce que je cherchais. Et en plus de ces présentations, j&amp;#8217;ai pu parlé avec Matt Aimonetti de CouchDB, de MacRuby et de Rails 3, avec Carl Lerche de rack-router et poser quelques questions à plein d&amp;#8217;autres personnes, encore une fois tout ça pour avoir les idées claires sur les choses que je cherche à utiliser actuellement.&lt;/p&gt;
&lt;p&gt;Vu la connexion merdique que j&amp;#8217;ai à l&amp;#8217;hôtel, je vais arrêter mon bilan ici, j&amp;#8217;en aurais de toute façon un à la fin de la RailsConf qui résumera tout ce que j&amp;#8217;ai vu.&lt;/p&gt;
&lt;p&gt;Vous pouvez récupérer les &lt;a href="http://en.oreilly.com/rails2009/public/schedule/proceedings"&gt;présentations sur le site de la railsconf&lt;/a&gt; (page mise à jour régulièrement).&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=yQO40_kG3cE:RvVVlRgeLYk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=yQO40_kG3cE:RvVVlRgeLYk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/yQO40_kG3cE" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/bilan-jour-2.html</feedburner:origLink></item><item><title>Jour 2 : UI Fundamentals for Programmers</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/2Ry2I6O1BvA/ui-fundamentals-for-programmers.html</link><pubDate>Tue, 05 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/ui-fundamentals-for-programmers</guid><description>&lt;h1&gt;Jour 2 : UI Fundamentals for Programmers&lt;/h1&gt;
&lt;p&gt;Mes notes sur cette présentation :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;l&amp;#8217;UI n&amp;#8217;est pas indépendante du software.&lt;/li&gt;
	&lt;li&gt;Pour le client, l&amp;#8217;UI est toute l&amp;#8217;application (justement j&amp;#8217;en parlais il y a quelques jours avec des amis).&lt;/li&gt;
	&lt;li&gt;Il vaut mieux donc commencer par l&amp;#8217;interface avant l&amp;#8217;implémentation.&lt;/li&gt;
	&lt;li&gt;Avoir un modèle en tête permet de faire une UI qui sera plus adaptée et plus ergonomique.&lt;/li&gt;
	&lt;li&gt;Livre &amp;#8220;Domain-Driven Design&amp;#8221; : &amp;#8220;Model-driven design&amp;#8221; et &amp;#8220;Ubiquitous language&amp;#8221;.&lt;/li&gt;
	&lt;li&gt;Penser avec &lt;span class="caps"&gt;REST&lt;/span&gt; permet de diviser les écrans très simplement.&lt;/li&gt;
	&lt;li&gt;Avoir un design efficace, centrer l&amp;#8217;attention sur ce qui est important. Un petit rien peut changer la donne.&lt;/li&gt;
	&lt;li&gt;Le contraste permet d&amp;#8217;attirer l&amp;#8217;attention.&lt;/li&gt;
	&lt;li&gt;Ce n&amp;#8217;est pas parce qu&amp;#8217;il y a des codes connus qu&amp;#8217;il faut les utiliser. Certaines fois il sera plus adapté de ne pas reprendre certains codes.&lt;/li&gt;
	&lt;li&gt;Toute action a un début, un milieu et une fin. Il faut penser à tout le processus pour créer l&amp;#8217;UI.&lt;/li&gt;
	&lt;li&gt;Pas de &lt;span class="caps"&gt;HTML&lt;/span&gt; dans les helpers.&lt;/li&gt;
	&lt;li&gt;Ne pas tout extraire dans tous les sens, ne pas être trop intelligent. Il ne faut pas y aller trop vite sur ce genre de choses.&lt;/li&gt;
	&lt;li&gt;Des &lt;span class="caps"&gt;CSS&lt;/span&gt; et des JS pour chaque action de chaque contrôleur.&lt;/li&gt;
	&lt;li&gt;Garder les vues claires.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour le coup des &lt;span class="caps"&gt;CSS&lt;/span&gt; et des JS pour chaque action, je suis assez sceptique. Si c&amp;#8217;est bien pensé, ça peut être bien mais il faut penser à la production et écrire les choses en y pensant. Plein de bons conseils pour les développeurs devant faire de l&amp;#8217;UI, mais aussi pour des designers.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=2Ry2I6O1BvA:pvSixQsVHRY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=2Ry2I6O1BvA:pvSixQsVHRY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/2Ry2I6O1BvA" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/ui-fundamentals-for-programmers.html</feedburner:origLink></item><item><title>Jour 2 : The Even-Darker Art of Rails Engines</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/7TRCr3xuoUs/even-darker-art-of-rails-engine.html</link><pubDate>Tue, 05 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/railsconf09/even-darker-art-of-rails-engine</guid><description>&lt;h1&gt;Jour 2 : The Even-Darker Art of Rails Engines&lt;/h1&gt;
&lt;p&gt;Mes notes sur la présentation des Engines de Rails :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;appable_plugins, le premier qui a existé.&lt;/li&gt;
	&lt;li&gt;Ensuite il y a eu desert de pivotal labs (qui est en fait un fork de appable_plugins).&lt;/li&gt;
	&lt;li&gt;Merb slices qui est &amp;#8220;rails engines that doesn&amp;#8217;t suck&amp;#8221;.&lt;/li&gt;
	&lt;li&gt;Une engine à un répertoire app/ (avec des contrôleurs, des helpers, des modèles, des vues et des metals).&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;helper :all&lt;/code&gt; n&amp;#8217;inclura pas les helpers inclus dans les plugins (ticket #1905)&lt;/li&gt;
	&lt;li&gt;Une engine à des routes dans config/routes.rb. C&amp;#8217;est exactement la même chose que le routeur dans l&amp;#8217;application principale.&lt;/li&gt;
	&lt;li&gt;Mais il manque des choses dans les engines de Rails 2.3 : fichiers publiques (css, js&amp;#8230;) mais il suffit de quelques lignes pour les copier dans public/ (attention aux conflits), migrations (normal si on a des modèles).&lt;/li&gt;
	&lt;li&gt;Mais des migrations dans les plugins posent énormément de problèmes (ticket #2058, &lt;a href="http://interblah.net/plugin-migrations"&gt;interblah.net/plugin-migrations&lt;/a&gt;).&lt;/li&gt;
	&lt;li&gt;Les contrôleurs on a le choix pour écraser des fonctionnalités : modules, écraser la classe, namespaces (puis héritage)&lt;/li&gt;
	&lt;li&gt;Problèmes avec le cache, mais simplement modifiable. &lt;code&gt;config.reload_plugins = true&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;config.to_prepare { ... }&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Tester les engines c&amp;#8217;est compliqué, il faut avoir un environnement Rails dans le plugin pour pouvoir les écrire.&lt;/li&gt;
	&lt;li&gt;Eviter l&amp;#8217;échec, l&amp;#8217;utilisation d&amp;#8217;une engine est simple par l&amp;#8217;auteur, possible par un développeur mais plus compliqué.&lt;/li&gt;
	&lt;li&gt;Il y a des choses qu&amp;#8217;on ne pourra pas mettre dans des engines.&lt;/li&gt;
	&lt;li&gt;Il y a des engines qu&amp;#8217;on ne pourra pas utiliser (même si l&amp;#8217;engine est bien faite, elle ne sera pas en adéquation avec le projet).&lt;/li&gt;
	&lt;li&gt;Extraire des fonctionnalités spécifique.&lt;/li&gt;
	&lt;li&gt;On est le premier client pour le code (et donc les engines) qu&amp;#8217;on écrit. C&amp;#8217;est donc nous qui décidons quoi extraire et quoi ne pas extraire.&lt;/li&gt;
	&lt;li&gt;Lire le code d&amp;#8217;une engine est très important pour l&amp;#8217;utiliser.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bon je voulais aller à cette présentation voir si mes idées étaient claires sur les limites des engines, et malheureusement ça a confirmé ce que je pensais. Il y a des limites, elles sont surmontables, mais pour certains points c&amp;#8217;est un peu lourd.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=7TRCr3xuoUs:VgLN60cM8a4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=7TRCr3xuoUs:VgLN60cM8a4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/7TRCr3xuoUs" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/railsconf09/even-darker-art-of-rails-engine.html</feedburner:origLink></item><item><title>I'm back!</title><link>http://feedproxy.google.com/~r/fr/boldr/~3/V8rRRqVI4W0/i-m-back.html</link><pubDate>Mon, 04 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://boldr.fr/blog/i-m-back</guid><description>&lt;h1&gt;I&amp;#8217;m back!&lt;/h1&gt;
&lt;p&gt;Un titre à double sens. Pour ceux qui l&amp;#8217;ont remarqué, Boldr a été down une bonne semaine dû à un gros problème de serveur. Et comme j&amp;#8217;étais en vacances, je n&amp;#8217;ai rien fait pour remettre Boldr sur pied. La 2eme chose c&amp;#8217;est que je n&amp;#8217;ai pas bloggué depuis plusieurs mois dû à un emploi du temps plutôt chargé, parce que Twitter c&amp;#8217;est bien pour blogguer aussi (Vous pouvez me suivre &lt;a href="http://twitter.com/nicolasmerouze"&gt;@nicolasmerouze&lt;/a&gt;) et parce que j&amp;#8217;en ai marre d&amp;#8217;utiliser Mephisto (ou Typo ou Wordpress).&lt;/p&gt;
&lt;p&gt;Alors le serveur qui tombe m&amp;#8217;a poussé à passer à autre chose et je me suis dit que j&amp;#8217;allais me passer de serveur et mettre Boldr sur Github (avec &lt;a href="http://github.com/mojombo/jekyll/tree/master"&gt;Jekyll&lt;/a&gt;). Pour l&amp;#8217;instant c&amp;#8217;est raw, aucun design, rien. La raison est simple, je suis à Las Vegas et mon logo et mon design sont chez moi :(&lt;/p&gt;
&lt;p&gt;Las Vegas = RailsConf, je vais donc essayer de blogguer ici et sur Twitter au maximum cette semaine sur la RailsConf. So stay tuned!&lt;/p&gt;
&lt;p&gt;PS : L&amp;#8217;URL est pour l&amp;#8217;instant boldr.fr (une fois les &lt;span class="caps"&gt;DNS&lt;/span&gt; actualisés) mais elle pourrait repasser à blog.boldr.fr, ça dépend de comment je récupère mes billets.&lt;/p&gt;
&lt;p&gt;Edit : J&amp;#8217;ai retrouvé mon logo sur Google (en mauvaise qualité), j&amp;#8217;en ai donc profité pour faire un design rapide.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=V8rRRqVI4W0:aYZdCclXT8A:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/fr/boldr?a=V8rRRqVI4W0:aYZdCclXT8A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/fr/boldr?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fr/boldr/~4/V8rRRqVI4W0" height="1" width="1"/&gt;</description><feedburner:origLink>http://boldr.fr/blog/i-m-back.html</feedburner:origLink></item></channel></rss>
