<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Matthieu Segret</title>
	<atom:link href="http://matthieusegret.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://matthieusegret.com</link>
	<description>Co-fondateur des Human Coders</description>
	<lastBuildDate>Wed, 15 Feb 2012 13:23:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Les avantages de Ruby on Rails (6/10) : le déploiement sur le cloud</title>
		<link>http://matthieusegret.com/les-avantages-ruby-on-rails-deploiement-sur-le-cloud/</link>
		<comments>http://matthieusegret.com/les-avantages-ruby-on-rails-deploiement-sur-le-cloud/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 11:51:49 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=600</guid>
		<description><![CDATA[Une chose qui a changé ma vie de développeur lorsque je suis entré dans le monde Ruby c&#8217;est la possibilité de déléguer l’administration de son application sur le cloud avec Heroku, Engin Yard ou Cloud Foundry. L’administration système n’a jamais été une passion pour moi. Donc pouvoir déployer mes applications en un «git push» sur [...]]]></description>
			<content:encoded><![CDATA[<p>Une chose qui a changé ma vie de développeur lorsque je suis entré dans le monde Ruby c&#8217;est <strong>la possibilité de déléguer l’administration de son application sur le cloud avec <a href="http://www.heroku.com/" target="_blank"><strong>Heroku</strong></a>, <a href="http://www.engineyard.com/" target="_blank"><strong>Engin Yard</strong> </a>ou <a href="http://www.cloudfoundry.com/" target="_blank"><strong>Cloud Foundry</strong></a>.</strong></p>
<p><img class="alignright size-medium wp-image-396" title="ey_logo_rgb" src="http://matthieusegret.com/wp-content/uploads/2011/11/ey_logo_rgb-183x300.png" alt="" width="65" height="106" /></p>
<p>L’administration système n’a jamais été une passion pour moi. Donc pouvoir déployer mes applications en un «git push» sur <strong>Heroku</strong> est un gain de temps considérables.</p>
<p>Si on ajoute à cela les services proposés sur le cloud (<a href="http://addons.heroku.com/pgbackups" target="_blank"><strong>backup journalier de la base de données</strong></a>, mise en place de <a href="http://addons.heroku.com/scheduler" target="_blank"><strong>cron</strong></a>, monitoring des instances de production avec <a href="http://newrelic.com/" target="_blank"><strong>New Relic</strong></a>, gestion des erreurs avec <a href="http://airbrakeapp.com/pages/home" target="_blank"><strong>Airbrake</strong></a>, mise en place de cache : <a href="http://redis.io/" target="_blank"><strong>Redis</strong></a> ou <a href="http://memcached.org/" target="_blank"><strong>MemCache</strong></a>, <a href="http://addons.heroku.com/ssl" target="_blank"><strong>création de certificats SSL</strong></a> ..) Tous ces services ne sont pas une exclusivité <strong>Ruby on Rails</strong>, mais avec <strong>Rails</strong> c’est souvent <strong>plug &amp; play</strong> !</p>
<p>Je vous invite à lire les autres avantages de la série : <a href="http://matthieusegret.com/les-avantages-de-ruby-on-rails/"><strong>les avantages de Ruby on Rails</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/les-avantages-ruby-on-rails-deploiement-sur-le-cloud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Les avantages de Ruby on Rails (5/10) : Rake, le lanceur de tâches</title>
		<link>http://matthieusegret.com/avantages-ruby-on-rails-rake/</link>
		<comments>http://matthieusegret.com/avantages-ruby-on-rails-rake/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 12:29:53 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=591</guid>
		<description><![CDATA[Pour avoir pas mal utilisé Ant lorsque je faisais du Java, je me souviens du temps perdu pour débogguer mes scripts. Je me disais alors, pourquoi coder des scripts en XML ? Avec Rake, je peux écrire mes tâches en Ruby. Comme Ant, je peux gérer une dépendance de tâche si nécessaire. Il est très [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-401" title="RubyWx" src="http://matthieusegret.com/wp-content/uploads/2011/11/RubyWx.png" alt="" width="128" height="128" /></p>
<p>Pour avoir pas mal utilisé <a href="http://ant.apache.org/" target="_blank"><strong>Ant</strong></a> lorsque je faisais du Java, je me souviens du temps perdu pour débogguer mes scripts. Je me disais alors, pourquoi coder des scripts en XML ?</p>
<p>Avec <a href="http://www.stuartellis.eu/articles/rake/" target="_blank"><strong>Rake</strong></a>, je peux écrire mes tâches en <strong>Ruby</strong>. Comme <strong>Ant</strong>, je peux gérer une dépendance de tâche si nécessaire.</p>
<p>Il est très simple de charger tout le contexte d&#8217;un projet <strong>Rails</strong> dans une tâche <strong>Rake</strong> afin par exemple de manipuler la partie métier d&#8217;une application.</p>
<p>On peut aussi très facilement utiliser un système de Cron avec des tâches <strong>Rake</strong> pour les lancer périodiquement.</p>
<p>Je vous invite à lire les autres avantages de la série : <a href="http://matthieusegret.com/les-avantages-de-ruby-on-rails/"><strong>les avantages de Ruby on Rails</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/avantages-ruby-on-rails-rake/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les avantages de Ruby on Rails (4/10) : Rack</title>
		<link>http://matthieusegret.com/avantages-ruby-on-rails-rack/</link>
		<comments>http://matthieusegret.com/avantages-ruby-on-rails-rack/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 10:56:08 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=580</guid>
		<description><![CDATA[Rack est une couche d’abstraction entre le serveur web et votre code Ruby. Pour les pythonistes, Rack est l&#8217;équivalant de WSGI. Les autres me diront : &#171;&#160;A quoi ça sert ?&#160;&#187;. Le premier intérêt de Rack, c&#8217;est de servir &#171;&#160;d&#8217;adapteur universel&#160;&#187; entre la plupart des serveurs web et du code Ruby. L&#8217;interface est très simple [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rack.rubyforge.org/" target="_blank"><strong>Rack</strong></a> est une couche d’abstraction entre le serveur web et votre code <strong>Ruby</strong>. Pour les pythonistes, <strong>Rack</strong> est l&#8217;équivalant de <a href="http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface" target="_blank"><strong>WSGI</strong></a>.</p>
<p>Les autres me diront : &laquo;&nbsp;A quoi ça sert ?&nbsp;&raquo;.</p>
<p>Le premier intérêt de <strong>Rack</strong>, c&#8217;est de servir &laquo;&nbsp;d&#8217;adapteur universel&nbsp;&raquo; entre la plupart des serveurs web et du code <strong>Ruby</strong>. L&#8217;interface est très simple : une méthode qui prend la requête en entrée et retourne la réponse en sortie. Vous trouverez un exemple d&#8217;utilisation sur le blog de Damien Mathieu : <a href="http://dmathieu.com/fr/ruby/creer-un-rack-middleware" target="_blank"><strong>créer un Rack middleware</strong></a>.</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-413" title="rack-logo" src="http://matthieusegret.com/wp-content/uploads/2011/11/rack-logo-300x150.png" alt="" width="300" height="150" /></p>
<p>Il n&#8217;y a pas besoin de rentrer dans la technique pour voir d&#8217;autres avantages. Les &laquo;&nbsp;tranches&nbsp;&raquo; <strong>Rack</strong> peuvent se superposer, la réponse en sortie d&#8217;un <strong>Rack</strong> peut être branchée à l&#8217;entrée d&#8217;un autre <strong>Rack</strong>. Ces <strong>Racks</strong> que l&#8217;ont appellent <strong>middlewares</strong> ont différentes utilités : mise en place de cache avec <a href="https://github.com/rtomayko/rack-cache" target="_blank"><strong>Rack::Cache</strong></a>, <a href="https://github.com/datagraph/rack-throttle" target="_blank"><strong>Rack::Throttle</strong></a> pour limiter le nombre et la fréquence des requêtes HTTP provenant d&#8217;un client, <a href="https://github.com/sunlightlabs/rack-honeypot" target="_blank"><strong>Rack::Honeypot</strong></a> pour filtrer les spams, etc. Vous trouverez d&#8217;autres exemples <a href="https://github.com/rack/rack/wiki/list-of-middleware" target="_blank"><strong>ici</strong></a>.</p>
<p>Enfin dernier grand avantage : <strong>Rack</strong> peut rendre vos applications web modulaire ! En effet vous pouvez créer des applications <strong>Ruby on Rails</strong> entières avec modèles, vues et contrôleurs et les réutiliser comme un module d&#8217;une autre application <strong>Rails</strong>. C&#8217;est comme cela que fonctionne par exemple <a href="http://activeadmin.info/" target="_blank"><strong>ActiveAdmin</strong></a> et <a href="https://github.com/plataformatec/devise/wiki" target="_blank"><strong>Devise</strong></a>. A noter que <strong>Ruby on Rails</strong> n&#8217;est qu&#8217;un ensemble modulaire de &laquo;&nbsp;tranches&nbsp;&raquo; <strong>Rack</strong>.</p>
<p>Je vous invite à lire les autres avantages de la série : <a href="http://matthieusegret.com/les-avantages-de-ruby-on-rails/"><strong>les avantages de Ruby on Rails</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/avantages-ruby-on-rails-rack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les avantages de Ruby on Rails (3/10) : la gestion des bibliothèques</title>
		<link>http://matthieusegret.com/avantages-ruby-on-rails-gestion-des-bibliotheques/</link>
		<comments>http://matthieusegret.com/avantages-ruby-on-rails-gestion-des-bibliotheques/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 09:47:15 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=565</guid>
		<description><![CDATA[En 2 ans de Java, je n&#8217;ai jamais rien compris à Maven, pourtant avec Nexus, la gestion des bibliothèques durant le déploiement devait être plus simple&#8230; J&#8217;ai fini par me dire que l&#8217;installation automatisée des bibliothèques et la résolution de leurs dépendances devait être un métier à part ! Ici c&#8217;est Rubygems et Bundler qui [...]]]></description>
			<content:encoded><![CDATA[<p>En 2 ans de Java, je n&#8217;ai jamais rien compris à <a href="http://maven.apache.org/" target="_blank"><strong>Maven</strong></a>, pourtant avec <a href="http://nexus.sonatype.org/" target="_blank"><strong>Nexus</strong></a>, la gestion des bibliothèques durant le déploiement devait être plus simple&#8230; J&#8217;ai fini par me dire que l&#8217;installation automatisée des bibliothèques et la résolution de leurs dépendances devait être un métier à part !<br />
Ici c&#8217;est <a href="http://rubygems.org/" target="_blank"><strong>Rubygems</strong></a> et <a href="http://gembundler.com/" target="_blank"><strong>Bundler</strong></a> qui m&#8217;ont fait changer d&#8217;avis (tous deux sont inclus par défaut dans <strong>Rails</strong>).</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-379" title="gembundler" src="http://matthieusegret.com/wp-content/uploads/2011/11/gembundler-300x103.png" alt="" width="300" height="103" /></p>
<p><strong>Rubygems</strong> permet de facilement publier, installer et mettre à jour des bibliothèques Ruby (que l&#8217;on appelle &laquo;&nbsp;gems&nbsp;&raquo;). </p>
<p>Grâce à <strong>Bundler</strong>, vous pouvez dans un seul fichier déclarer la liste des gems utilisés par votre projet. Si vous ajoutez ou enlevez la déclaration d&#8217;une gem, Bundler le détecte et installe ou supprime automatiquement la gem en question. Bundler résout les dépendances, les doublons, les différences entre les environnements (développement, tests, staging, production.. ). Cela redevient humain de gérer les bibliothèques dont dépend votre projet !</p>
<p>Je vous invite à lire les autres avantages de la série : <a href="http://matthieusegret.com/les-avantages-de-ruby-on-rails/"><strong>les avantages de Ruby on Rails</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/avantages-ruby-on-rails-gestion-des-bibliotheques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les avantages de Ruby on Rails (2/10) : SASS et CoffeeScript</title>
		<link>http://matthieusegret.com/avantages-ruby-on-rails-sass-coffeescript/</link>
		<comments>http://matthieusegret.com/avantages-ruby-on-rails-sass-coffeescript/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 12:55:08 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=537</guid>
		<description><![CDATA[Certains me diront : &#171;&#160;SASS et CoffeeScript, ce ne sont pas des exclusivités de Ruby on Rails ?&#160;&#187;. Et ils auront raison ! Seulement je n&#8217;aurais pas utilisé ces langages s&#8217;ils n&#8217;étaient pas par défaut dans Rails. CoffeeScript est une manière alternative d’écrire du Javascript. Il s’agit d’un langage destiné à être compilé en javascript. [...]]]></description>
			<content:encoded><![CDATA[<p>Certains me diront : &laquo;&nbsp;<strong>SASS</strong> et <strong>CoffeeScript</strong>, ce ne sont pas des exclusivités de <strong>Ruby on Rails</strong> ?&nbsp;&raquo;. Et ils auront raison ! Seulement je n&#8217;aurais pas utilisé ces langages s&#8217;ils n&#8217;étaient pas par défaut dans <strong>Rails</strong>.</p>
<p style="text-align: center">
<img src="http://matthieusegret.com/wp-content/uploads/2011/11/coffeescript.png" alt="" title="coffeescript" width="225" height="50" class="aligncenter size-full wp-image-553" />
</p>
<p><a href="http://jashkenas.github.com/coffee-script/" target="_blank"><strong>CoffeeScript</strong></a> est une manière alternative d’écrire du Javascript. Il s’agit d’un langage destiné à être compilé en javascript. Mon code est plus lisible, plus facile à maintenir, il m’évite les pièges basiques. <strong>CoffeeScript</strong> a été pour moi un grand changement dans ma façon de faire du JavaScript, du même ordre que la découverte de mon premier framework Javascript (<a href="http://www.prototypejs.org/" target="_blank"><strong>Prototype</strong></a>). De plus la combinaison <strong>CoffeeScript</strong> / <a href="http://jquery.com/" target="_blank"><strong>JQuery</strong></a> est un réel plaisir ! </p>
<p><img class="alignright size-full wp-image-369" title="sass" src="http://matthieusegret.com/wp-content/uploads/2011/11/sass.gif" alt="" width="128" height="140" /></p>
<p>Si vous voulez en savoir un peu plus sur <strong>CoffeeScript</strong>, je vous conseille <a href="http://rubylive.fr/items/94-presentation-introduction-a-coffeescript" target="_blank"><strong>les slides de Jean-Hadrien Chabran</strong></a>.</p>
<p>Il y aussi son homologue pour CSS : <a href="http://sass-lang.com/" target="_blank"><strong>SASS</strong></a>. <strong>SASS</strong> est compilé en CSS et ajoute ces fonctionnalités que j’attendais désespérément : les variables, les fonctions, l’imbrication des sélecteurs..</p>
<p>Et si l&#8217;on ajoute <a href="http://compass-style.org/" target="_blank"><strong>Compass</strong></a>, un framework CSS codé en <strong>SASS</strong>, faire du CSS devient enfin supportable !</p>
<p>Je vous invite à lire les autres avantages de la série : <a href="http://matthieusegret.com/les-avantages-de-ruby-on-rails/"><strong>les avantages de Ruby on Rails</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/avantages-ruby-on-rails-sass-coffeescript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les avantages de Ruby on Rails (1/10) : les bibliothèques</title>
		<link>http://matthieusegret.com/avantages-ruby-on-rails-bibliotheques/</link>
		<comments>http://matthieusegret.com/avantages-ruby-on-rails-bibliotheques/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 09:10:54 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=506</guid>
		<description><![CDATA[- Besoin d’une interface d’administration ? Je mets en place ActiveAdmin en moins d’une journée ! - Besoin d’un système d’authentification complet (validation de l’email, gestion de la perte du mot de passe, chiffrement du mots de passe etc..) ? En moins d’une heure j’ai tout cela avec Devise. Et une heure plus tard j’ai [...]]]></description>
			<content:encoded><![CDATA[<p>- Besoin d’une interface d’administration ? Je mets en place <a href="http://activeadmin.info/" target="_blank"><strong>ActiveAdmin</strong></a> en moins d’une journée !</p>
<p>- Besoin d’un système d’authentification complet (validation de l’email, gestion de la perte du mot de passe, chiffrement du mots de passe etc..) ? En moins d’une heure j’ai tout cela avec <a href="https://github.com/plataformatec/devise" target="_blank"><strong>Devise</strong></a>. Et une heure plus tard j’ai aussi la connexion Facebook, Twitter, LinkedIn avec <a href="https://github.com/intridea/omniauth/wiki" target="_blank"><strong>OmniAuth</strong></a>.</p>
<p>- Besoin de mettre en place un moteur d’indexation de documents avec le célèbre <a href="http://fr.wikipedia.org/wiki/Apache_Solr" target="_blank"><strong>Solr</strong></a> (basé sur <a href="http://fr.wikipedia.org/wiki/Lucene" target="_blank"><strong>Lucene</strong></a>)? Il me suffit d’une demi-journée pour écrire mes règles d’indexation avec <a href="http://outoftime.github.com/sunspot/" target="_blank"><strong>Sunspot</strong></a> et moins d’une heure pour mettre en place <strong>Solr</strong> avec <a href="http://websolr.com/" target="_blank"><strong>WebSolr</strong></a>.</p>
<p><img class="alignleft size-full wp-image-362" title="RubyGems" src="http://matthieusegret.com/wp-content/uploads/2011/11/RubyGems.png" alt="" width="128" height="128" /></p>
<p>Je n’ai jamais autant aimé écrire des formulaires depuis que j’ai découvert <a href="https://github.com/plataformatec/simple_form" target="_blank"><strong>SimpleForm</strong></a>. J’écris mes formulaires en Ruby, et <strong>SimpleForm</strong> génère à partir d’un objet de mon modèle un formulaire avec label, annotations, affichage des erreurs, validation html5 pour chaque attribut spécifié.</p>
<p><strong>Ruby on Rails</strong> foisonne de <strong>gems</strong> (bibliothèques) me permettant de mettre en place des fonctionnalités complexes avec une grande simplicité. </p>
<p>Vous semblez sceptiques ? Je vous invite à aller voir le site de <a href="http://twitter.com/#!/rbates" target="_blank"><strong>Ryan Bates</strong></a> : <a href="http://railscasts.com/" target="_blank"><strong>RailsCasts</strong></a> qui vous donnera quelques échantillons.</p>
<p>Je vous invite à lire les autres avantages de la série : <a href="http://matthieusegret.com/les-avantages-de-ruby-on-rails/"><strong>les avantages de Ruby on Rails</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/avantages-ruby-on-rails-bibliotheques/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quels sont les avantages de Ruby on Rails ?</title>
		<link>http://matthieusegret.com/les-avantages-de-ruby-on-rails/</link>
		<comments>http://matthieusegret.com/les-avantages-de-ruby-on-rails/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 09:10:36 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=499</guid>
		<description><![CDATA[&#160; Voici ce que je lis et j&#8217;entends quotidiennement : &#171;&#160;Je suis développeur PHP, je dois me former à Ruby on Rails pour un projet, je suis curieux de pouvoir comparer avec Symfony.&#160;&#187; &#171;&#160;J&#8217;ai beaucoup entendu parler de Ruby on Rails, que fait-il de plus que les autres frameworks ?&#160;&#187; &#171;&#160;Je suis venu à cet [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Voici ce que je lis et j&#8217;entends quotidiennement :</p>
<blockquote><p>&laquo;&nbsp;Je suis développeur PHP, je dois me former à Ruby on Rails pour un projet, je suis curieux de pouvoir comparer avec Symfony.&nbsp;&raquo;</p></blockquote>
<blockquote><p>&laquo;&nbsp;J&#8217;ai beaucoup entendu parler de Ruby on Rails, que fait-il de plus que les autres frameworks ?&nbsp;&raquo;</p></blockquote>
<blockquote><p>&laquo;&nbsp;Je suis venu à cet apéro Ruby car je voudrais en savoir plus sur Ruby on Rails..&nbsp;&raquo;</p></blockquote>
<p style="margin: 20px 0 20px 0;">Manifestement, il y a un grand besoin de comprendre pourquoi ce framework web fait autant parler de lui.</p>
<p>En retour j&#8217;entends :</p>
<blockquote style="height: 20px; padding-top: 15px;"><p>&laquo;&nbsp;Ce que j&#8217;aime le plus dans Ruby c&#8217;est sa syntaxe élégante !&nbsp;&raquo;</p></blockquote>
<p style="margin-bottom: 20px;"><strong style="padding-left: 45px;">Question de goût donc ?</strong></p>
<blockquote><p>&laquo;&nbsp;Pour moi la force d&#8217;un programme écrit en Ruby, c&#8217;est sa capacité de s&#8217;écrire lui même&nbsp;&raquo;</p></blockquote>
<p style="margin-top: 8px;"><strong style="padding-left: 45px;">Ça me fait une belle jambe !</strong></p>
<blockquote style="height: 20px; padding-top: 15px;"><p>&laquo;&nbsp;Ruby on Rails est très bien conçu : MVC, Migrations, Tests etc..&nbsp;&raquo;</p></blockquote>
<p><strong style="padding-left: 45px;">Les autres frameworks ne font pas la même chose ?</strong></p>
<p><br/></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-355" title="RubyOnRails" src="http://matthieusegret.com/wp-content/uploads/2011/11/RubyOnRails.png" alt="" width="128" height="128" /></p>
<p>Depuis 5 ans les frameworks web se sont nourris les uns les autres. Lorsque l’un d’entre eux met en avant une bonne idée, celle-ci est souvent reprise et digérée par les autres.</p>
<p>C’est ainsi que beaucoup d’entre eux possèdent maintenant un environnement dit &laquo;&nbsp;full-stack&nbsp;&raquo;,  une architecture MVC (ou proche), un <a href="http://fr.wikipedia.org/wiki/Mapping_objet-relationnel" target="_blank"><strong>ORM</strong></a>, un language de templating, un gestionnaire de librairies, un système de tests, des migrations, etc. C’est le cas par exemple pour <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a>, <a href="http://www.symfony-project.org/" target="_blank">Symfony</a>, <a href="http://framework.zend.com/" target="_blank">Zend Framework</a>, <a href="http://cakephp.org/" target="_blank">CakePHP</a>, <a href="https://www.djangoproject.com/" target="_blank">Django</a>, <a href="http://www.playframework.org/" target="_blank">Play!</a>.</p>
<p>De plus les principes <a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself" target="_blank"><strong>Don&#8217;t repeat yourself</strong></a> et <a href="http://en.wikipedia.org/wiki/Convention_over_configuration" target="_blank"><strong>Convention Over Configuration</strong></a> ont commencé à faire leurs bout de chemin chez tous ces frameworks.</p>
<p>Pourtant <strong>Ruby on Rails</strong> garde pour moi des atouts qui expliquent sa popularité croissante. J’ai donc décidé d’écrire une série d’articles sur ces avantages qui me servent au quotidien :</p>
<ul>
<li><a href="http://matthieusegret.com/avantages-ruby-on-rails-bibliotheques"><strong>Les avantages de Ruby on Rails (1/10) : les bibliothèques</strong></a></li>
<li><a href="http://matthieusegret.com/avantages-ruby-on-rails-sass-coffeescript"><strong>Les avantages de Ruby on Rails (2/10) : SASS et CoffeeScript</strong></a></li>
<li><a href="http://matthieusegret.com/avantages-ruby-on-rails-gestion-des-bibliotheques/"><strong>Les avantages de Ruby on Rails (3/10) : la gestion des bibliothèques</strong></a></li>
<li><a href="http://matthieusegret.com/avantages-ruby-on-rails-rack/"><strong>Les avantages de Ruby on Rails (4/10) : Rack</strong></a></li>
<li><a href="http://matthieusegret.com/avantages-ruby-on-rails-rake/"><strong>Les avantages de Ruby on Rails (5/10) : Rake, le lanceur de tâches</strong></a></li>
<li><a href="http://matthieusegret.com/les-avantages-ruby-on-rails-deploiement-sur-le-cloud/"><strong>Les avantages de Ruby on Rails (6/10) : le déploiement sur le cloud</strong></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/les-avantages-de-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Apprenez Ruby on Rails en 3 jours</title>
		<link>http://matthieusegret.com/formation-ruby-rails/</link>
		<comments>http://matthieusegret.com/formation-ruby-rails/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 13:58:52 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Formation]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=246</guid>
		<description><![CDATA[Une fois freelance, j’ai rapidement eu de la demande pour des formations. Comme j’aime beaucoup faire partager mes connaissances, j’ai passé une bonne partie de l’été à préparer une formation de trois jours. J’ai rédigé une présentation et des exercices pratiques en m’inspirant de nombreux livres (Agile Web Development with Rails), présentations, cours (Code School)&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://matthieusegret.com/wp-content/uploads/2011/11/slide.png"><img src="http://matthieusegret.com/wp-content/uploads/2011/11/slide-300x187.png" alt="slide formation Ruby on Rails" title="slide formation Ruby on Rails" width="150" height="94" class="alignleft size-medium wp-image-211" /></a></p>
<p>Une fois freelance, j’ai rapidement eu de la demande pour des formations. Comme j’aime beaucoup faire partager mes connaissances, j’ai passé une bonne partie de l’été à préparer une formation de trois jours.</p>
<p>J’ai rédigé une présentation et des exercices pratiques en m’inspirant de nombreux livres (Agile Web Development with Rails), présentations, cours (Code School)&#8230; qui correspondent à la façon dont j’ai envie d’enseigner.</p>
<p>Une fois prêt, j’ai donné mes premières formations. Les retours ont été très bons. J’ai fait évoluer la formation pour supprimer les défauts de jeunesse. Maintenant que ma formation a été rodée, j’ai décidé de la packager dans une offre claire.</p>
<p>Vous pouvez voir l’offre sur <a href="http://matthieusegret.com/formation/" title="Formation Ruby on Rails">ma page Formation</a>. N’hésitez pas à <a href="http://matthieusegret.com/formation/#more_info" title="Formation Ruby on Rails">me laisser votre email</a> ou à <a href="http://matthieusegret.com/contact/" title="Contact">me contacter</a> pour que je vous donne plus d’information.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/formation-ruby-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RubyLive &#124; Toute l&#8217;actualité Ruby francophone</title>
		<link>http://matthieusegret.com/rubylive-toute-lactualite-ruby-francophone/</link>
		<comments>http://matthieusegret.com/rubylive-toute-lactualite-ruby-francophone/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 08:27:26 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Projets]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=158</guid>
		<description><![CDATA[Voilà maintenant 1 mois que je travaille avec Camille Roux sur un moyen de partager l&#8217;actualité Ruby dans le monde francophone. En effet, le langage Ruby est en plein boom en France depuis quelques mois. Les offres d&#8217;emplois se multiplient, les initiatives individuelles et collectives ne manquent pas : Apéro Ruby partout en France, évènements [...]]]></description>
			<content:encoded><![CDATA[<p><a title="RubyLive.fr" href="http://rubylive.fr" target="_blank"><img class="size-full wp-image-160 alignleft" style="margin-right: 15px; margin-bottom: 5px;" title="RubyLive_logo" src="http://matthieusegret.com/wp-content/uploads/2011/10/RubyLive_logo.png" alt="RubyLive logo" width="150" height="150" /></a>Voilà maintenant 1 mois que je travaille avec <a title="Camille Roux" href="http://www.camilleroux.com" target="_blank">Camille Roux</a> sur un moyen de partager l&#8217;actualité Ruby dans le monde francophone.</p>
<p>En effet, le langage Ruby est en plein boom en France depuis quelques mois. Les offres d&#8217;emplois se multiplient, les initiatives individuelles et collectives ne manquent pas : Apéro Ruby partout en France, évènements (<a title="RailsCamp" href="http://railscampparis3.heroku.com/" target="_blank">Railscamp</a>, <a title="Rulu" href="http://rulu.eu/" target="_blank">RULU</a>, <a title="Rendez-vous freelances" href="http://www.meetup.com/parisrb/events/32865952/" target="_blank">Rendez-vous freelances</a>, <a title="conférences" href="http://www.meetup.com/parisrb/events/38333772/" target="_blank">conférences</a>..), futur site RailsFrance, screencasts, nouveaux blogs..</p>
<p>Cependant, ces différents contenus restent difficiles à trouver, souvent peu mis en avant. Il manquait un outil pour tous les rassembler et les rendre visibles à la communauté. <strong>RubyLive</strong> voit le jour pour pour combler ce manque.</p>
<p><strong>RubyLive</strong> est un flux d’actualités collaboratif. Chacun, une fois inscrit, peut soumettre un article. Une fois modéré, l’article devient visible à tous, il apparaît sur le flux RSS du site et est publié sur Facebook et Twitter.</p>
<p><strong>Je suis heureux de vous annoncer que RubyLive est maintenant en ligne !</strong></p>
<p>Vous pouvez dès maintenant lire l’actualité Ruby et proposer vos dernières news sur <a title="RubyLive.fr" href="http://rubylive.fr" target="_blank">RubyLive.fr</a>.<br />
Je tiens à remercier nos partenaires pour leur soutient : <a title="Entropic Synergies" href="http://www.es-services-agency.com" target="_blank">Entropic Synergies</a>, <a title="Novelys" href="http://www.novelys.com/" target="_blank">Novelys</a>, <a title="Belighted" href="http://belighted.com" target="_blank">Belighted</a>, <a title="RemixJobs" href="http://remixjobs.com" target="_blank">RemixJobs</a> et <a title="OVH" href="http://www.ovh.com" target="_blank">OVH</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/rubylive-toute-lactualite-ruby-francophone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metaprogramming Ruby</title>
		<link>http://matthieusegret.com/metaprogramming-ruby/</link>
		<comments>http://matthieusegret.com/metaprogramming-ruby/#comments</comments>
		<pubDate>Mon, 09 May 2011 13:51:36 +0000</pubDate>
		<dc:creator>Matthieu Segret</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://matthieusegret.com/?p=146</guid>
		<description><![CDATA[&#160; Un ami m’a conseillé il y a quelques mois le livre : Metaprogramming Ruby de Paolo Perrotta. Un livre très intéressant donnant quelques bonnes pratiques pour faire de la métaprogrammation avec Ruby. &#160; &#160; Qu’est-ce que la métaprogrammation ? Il y a plusieurs définitions, mais celle qui nous intéresse est la suivante : &#171;&#160;Metaprogramming [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft alignnone size-thumbnail" style="float: left;" title="pont-du-gard" src="http://matthieusegret.com/wp-content/uploads/2011/05/metaprogramming_ruby.jpg" alt="Metaprogramming Ruby de Paolo Perrotta" width="150" height="150" /></p>
<p>&nbsp;</p>
<p>Un ami m’a conseillé il y a quelques mois le livre : <a href="http://pragprog.com/titles/ppmetr/metaprogramming-ruby">Metaprogramming Ruby de Paolo Perrotta</a>.</p>
<p>Un livre très intéressant donnant quelques bonnes pratiques pour faire de la métaprogrammation avec Ruby.</p>
<p>&nbsp;<br />
&nbsp;</p>
<p><strong>Qu’est-ce que la métaprogrammation ?</strong></p>
<p>Il y a plusieurs définitions, mais celle qui nous intéresse est la suivante :</p>
<blockquote><p>&laquo;&nbsp;Metaprogramming is writing code that writes code&nbsp;&raquo;</p></blockquote>
<p>Vous pouvez trouvez ici une définition plus complète : <a href="http://en.wikipedia.org/wiki/Metaprogramming">http://en.wikipedia.org/wiki/Metaprogramming</a>.</p>
<p>&nbsp;</p>
<p><strong>A quoi cela sert-il ?</strong></p>
<p>Redéfinir, ajouter des méthodes et des classes, exécuter du code à la volée, cela permet de créer des frameworks comme <strong>Rails</strong> et <strong>Sinatra</strong>, mais aussi des bibliothèques comme <strong>devise</strong> ou <strong>haml</strong>.</p>
<p>Tous utilisent la métaprogrammation. Les raisons sont diverses : rendre une bibliothèque plus intuitive à utiliser, éviter la duplication de code, s’interfacer avec un code existant, implémenter un <a href="http://en.wikipedia.org/wiki/Domain-specific_language">domain specific language</a>&#8230;</p>
<p>Voici un exemple concret dans Rails : la génération des accesseurs d’un modèle à partir de l’introspection des champs de la base de données. Le développeur qui crée un nouveau modèle n’a ainsi pas besoin de maintenir ces accesseurs dans le monde objet.</p>
<p>Un autre exemple toujours dans Rails : les méthodes <a href="http://guides.rubyonrails.org/active_record_querying.html#dynamic-finders">find_by</a> de ActiveRecord.</p>
<p>&nbsp;</p>
<p><strong>Pourquoi donc se priver de faire de la métaprogrammation ?</strong></p>
<p>La métaprogrammation permet de faire des choses fantastiques. Cependant elle requiert de la discipline. Si on ne suit pas certaines bonnes pratiques, on peut aboutir à un code confus et difficile à débogguer.</p>
<p>Si vous souhaitez vous investir de manière plus approfondi dans la métaprogrammation avec Ruby, n’hésitez pas à lire le livre de Paolo Perrotta <a href="http://pragprog.com/titles/ppmetr/metaprogramming-ruby">Metaprogramming Ruby</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthieusegret.com/metaprogramming-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

