<?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: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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>accolade.ch</title>
	
	<link>http://www.accolade.ch</link>
	<description>Internet et nouvelles technologies</description>
	<lastBuildDate>Mon, 22 Jun 2009 17:35:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/BlogDeKilgore" type="application/rss+xml" /><feedburner:emailServiceId>BlogDeKilgore</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>iPhone OS 3, mode modem (tethering) chez Swisscom et de nombreux autres opérateurs</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/ZIbHQ6nFwQU/</link>
		<comments>http://www.accolade.ch/2009/06/22/iphone-os-3-mode-modem-tethering-chez-swisscom-et-de-nombreux-autres-operateurs/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 17:35:18 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[équipement]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[mobilité]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/?p=523</guid>
		<description><![CDATA[La version 3 de l&#8217;iPhone OS apporte son lot de nouveautés, toutes plus incroyables les unes que les autres&#8230; copier/coller&#8230; recherche dans les emails&#8230; mais accessoirement, elle permet d&#8217;utiliser l&#8217;appareil comme un modem.
Cette fonctionnalité peut être utilisée une fois l&#8217;appareil connecté via le câble USB ou via Bluetooth mais nécessite que l&#8217;opérateur de téléphonie la [...]]]></description>
			<content:encoded><![CDATA[<p>La version 3 de l&#8217;iPhone OS apporte son lot de nouveautés, toutes plus incroyables les unes que les autres&#8230; copier/coller&#8230; recherche dans les emails&#8230; mais accessoirement, elle permet d&#8217;utiliser l&#8217;appareil comme un modem.</p>
<p>Cette fonctionnalité peut être utilisée une fois l&#8217;appareil connecté via le câble USB ou via Bluetooth mais nécessite que l&#8217;opérateur de téléphonie la supporte (je dirai plutôt accepte qu&#8217;on l&#8217;utilise car techniquement ça ne change rien pour eux).</p>
<p>Lors de la Keynote d&#8217;introduction de la WWDC ou cette nouveauté a été présentée, seule une vingtaine d&#8217;opérateurs étaient cités comme proposant la fonction modem data. Avec un si petit nombre il y a de fortes chances pour que votre opérateur ne soit pas dans la liste. Etant moi même client de Swisscom, celui-ci, contrairement à Orange par exemple, ne propose pas cette option. Pourtant dès les versions bêta d&#8217;iPhone OS 3 certains utilisateurs avaient réussi à faire fonctionner le mode modem chez Swisscom.</p>
<p>On trouve désormais les profils Interne de nombreux opérateurs mondiaux. L&#8217;installation de ces profils se fait très simplement et ne demande pas de jailbreak ou autre manipulations douteuses, il s&#8217;agit simplement de récupérer un fichier qui va activer les paramètres data en fonction de votre opérateur.</p>
<p><a href="http://www.benm.at/HELP">Rendez vous ici</a> pour récupérer le fichier correspondant à votre opérateur (la liste actuelle est longue, Swisscom, Sunrise, Orange &#8230;) directement <b>depuis Safari Mobile sur l&#8217;iPhone</b>. Une fois installé vous pouvez profiter du mode modem sans aucune manipulation autre que la procédure standard !</p>
<p>J&#8217;utilise le profil Swisscom qui fonctionne très bien, rien n&#8217;est facturé hors de mon forfait iPhone. J&#8217;ai testé avec une connexion USB et Bluetooth de l&#8217;iPhone. Les deux fonctionnent parfaitement. Je pense que cette fonctionnalité risque toutefois de m&#8217;obliger à passer du forfait 250 Mo mensuels à 1 Go <img src='http://www.accolade.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Note : cette manipulation pour activer le modem data est également valable entre autre pour Sunrise (Suisse), Orange (Suisse et France), Bouygues (Suisse), Mobistar (Belgique), Proximus (Belgique), LuxGSM (Luxembourg), Tango (Luxembourg, VOXmobile (Luxembourg)&#8230;</p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/ZIbHQ6nFwQU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/06/22/iphone-os-3-mode-modem-tethering-chez-swisscom-et-de-nombreux-autres-operateurs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/06/22/iphone-os-3-mode-modem-tethering-chez-swisscom-et-de-nombreux-autres-operateurs/</feedburner:origLink></item>
		<item>
		<title>Sauvegarde et stockage, trois semaines avec le NetGear ReadyNAS Duo</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/Wqjrw_SUe50/</link>
		<comments>http://www.accolade.ch/2009/05/28/sauvegarde-et-stockage-trois-semaines-avec-le-netgear-readynas-duo/#comments</comments>
		<pubDate>Thu, 28 May 2009 13:23:44 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[matériel]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/?p=521</guid>
		<description><![CDATA[Suite à mon billet d&#8217;analyse des solutions de stockage idéales pour mes besoins j&#8217;ai fait l&#8217;acquisition d&#8217;un NAS NetGear ReadyNAS Duo il y a un peu plus de trois semaines. Je l&#8217;ai équipé d&#8217;un disque dur 1 To Western Digital Caviar GP pour le moment.
Le déballage est &#171;&#160;surprenant&#187;&#160; si l&#8217;on a pas pris soin de [...]]]></description>
			<content:encoded><![CDATA[<p>Suite à <a href="http://www.accolade.ch/2009/04/25/quel-materiel-choisir-pour-des-sauvegardes-timemachine-et-du-partage-windows/" target="_blank">mon billet d&#8217;analyse des solutions de stockage idéales pour mes besoins</a> j&#8217;ai fait l&#8217;acquisition d&#8217;un NAS <a href="http://www.netgear.com/Products/Storage/ReadyNASDuo.aspx" target="_blank">NetGear ReadyNAS Duo</a> il y a un peu plus de trois semaines. Je l&#8217;ai équipé d&#8217;un disque dur 1 To Western Digital Caviar GP pour le moment.</p>
<p>Le déballage est &laquo;&nbsp;surprenant&raquo;&nbsp; si l&#8217;on a pas pris soin de lire les spécifications de dimensions, en effet le produit est relativement petit, loin de ce que pourrait laisser présager les photos. L&#8217;installation du disque dur est très facile, il suffit de sortir un des casiers du boitier (qui en possède deux &#8211; Duo), d&#8217;y visser le disque dur puis de le réinsérer dans le NAS. A noter que ce produit supporte le &laquo;&nbsp;hot swap&raquo;&nbsp; des disques, il est possible d&#8217;ajouter un deuxième disque ou de remplacer un des disques sans l&#8217;éteindre.</p>
<p>Mauvais point pour NetGear (ou Digitec, le revendeur), le seul câble d&#8217;alimentation fourni est un câble au format européen (français, allemand), malheureusement ce n&#8217;est pas le format suisse ! Une fois branché et mis sous tension le NAS effectue une montée en puissance max des ventilateurs (comme le font tous les serveurs par exemple). Malheureusement une fois cette phase terminée, le gros ventilateur arrière continue de tourner entre 1500 et 2000 tr/min quelque soit l&#8217;utilisation. A ce rythme le volume sonore du ventilateur est relativement élevé, suffisamment pour qu&#8217;il soit remarqué dans une pièce habituellement silencieuse.</p>
<p>Ce NAS supportant nativement AFP et CIFS, il apparaît directement dans mes serveurs du Finder et je peux ainsi en monter les partages. Un petit tour par l&#8217;interface d&#8217;administration web (relativement bien réalisée) permet de configurer les partages et les utilisateurs. Je n&#8217;ai eu aucun problème à accéder au NAS aussi bien sous Mac que sous Windows. A noter que NetGear propose un widget Dashboard pour superviser le NAS. Ce widget est très complet, il permet de voir l&#8217;état des disques dur et la vitesse de rotation des ventilateurs. </p>
<p>Mon objectif principal avec ce NAS est de sauvegarder deux Mac avec TimeMachine. NetGear propose une option &laquo;&nbsp;TimeMachine&raquo;&nbsp; qu&#8217;il suffit d&#8217;activer pour qu&#8217;une partie du NAS soit reconnue comme un disque TimeMachine. Malgré mes efforts, je n&#8217;ai pas réussi à utiliser cette fonctionnalité. Soit la sauvegarde ne se faisait pas soit les Mac ne retrouvaient pas le disque etc&#8230; J&#8217;ai donc initialisé TimeMachine à la main (ce qui m&#8217;a permis de limiter à 250 Go l&#8217;espace alloué à TimeMachine pour chaque Mac). Malgré mes réticences je n&#8217;ai eu aucun problème de sauvegarde en 3 semaines sur nos 2 Mac tous les deux connectés en wifi.</p>
<p>NetGear fourni une version spécifique de NTI Shadow pour sauvegarder les postes (sous Mac et Windows), je l&#8217;ai utilisé pour sauvegarder quelques documents d&#8217;une partition Bootcamp. Le produit est très simple à mettre en place et fonctionne parfaitement.</p>
<p>Je ne vais pas parler des performances de ce NAS puisque je l&#8217;utilise exclusivement en Wifi, le goulet d&#8217;étranglement se situe avant le NAS lui-même <img src='http://www.accolade.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Afin de minimiser la consommation électrique j&#8217;ai choisi de ne pas laisser ce NAS en fonction 24h/24. Il est possible dans l&#8217;interface web de configurer des heures de démarrage et d&#8217;arrêt pour chaque jour de la semaine. J&#8217;ai configuré un démarrage à 7h le matin et une extinction à minuit les jours ou nous sommes là et un démarrage à partir de 20h le soir lorsque je vais au bureau. Ce système me satisfsait pleinement, le NAS est toujours disponible quand j&#8217;en ai besoin et ne consomme presque rien quand je suis pas là !</p>
<p>Cet investissement est un demi échec : mon but était d&#8217;acquérir un produit &laquo;&nbsp;plug&#8217;n'play&raquo;&nbsp; totalement compatible avec TimeMachine. J&#8217;ai fait des concessions pour cela (sur le bruit, le prix&#8230;)  et ce produit ne répond finalement pas à mes critères initiaux. Un modèle bien moins cher &laquo;&nbsp;fanless&raquo;&nbsp; du type QNap ou Synology m&#8217;aurait fourni les mêmes fonctionnalités. Malgré tout mes besoins de sauvegarde sont assurés et c&#8217;était l&#8217;objectif principal. Adopté !</p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/Wqjrw_SUe50" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/05/28/sauvegarde-et-stockage-trois-semaines-avec-le-netgear-readynas-duo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/05/28/sauvegarde-et-stockage-trois-semaines-avec-le-netgear-readynas-duo/</feedburner:origLink></item>
		<item>
		<title>Migration sur un serveur dédié virtuel</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/Wjghlu5tP5M/</link>
		<comments>http://www.accolade.ch/2009/05/17/migration-sur-un-serveur-dedie-virtuel/#comments</comments>
		<pubDate>Sun, 17 May 2009 12:41:53 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[hébergement]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/?p=514</guid>
		<description><![CDATA[Lassé de la lenteur terrible de ce blog hébergé par Dreamhost, je l&#8217;ai migré sur un dédié virtuel en Europe. Les performances sont incomparables et les temps d&#8217;accès sont bien meileurs (le serveur dédié virtuel est hébergé en Hollande, ping à 50ms environ depuis toute l&#8217;europe).
Premier problème, mon fournisseur de serveur dédié virtuel ne propose [...]]]></description>
			<content:encoded><![CDATA[<p>Lassé de la lenteur terrible de ce blog hébergé par Dreamhost, je l&#8217;ai migré sur un dédié virtuel en Europe. Les performances sont incomparables et les temps d&#8217;accès sont bien meileurs (le serveur dédié virtuel est hébergé en Hollande, ping à 50ms environ depuis toute l&#8217;europe).</p>
<p>Premier problème, mon fournisseur de serveur dédié virtuel ne propose pas de serveurs DNS. Switch (l&#8217;équivalent de l&#8217;AFNIC pour les .fr) chez qui j&#8217;ai acheté mon nom de domaine ne propose pas non plus ce service (contrairement à OVH par exemple), j&#8217;utilise donc <a href="http://www.editdns.net/" target="_blank">editdns.net</a> qui propose un service gratuit d&#8217;hébergement DNS. Leur site un peu austère cache pourtant un système de gestion très simple et performant, bien plus agréable à utiliser que le manager d&#8217;OVH !</p>
<p>J&#8217;ai fait pointer mon nom de domaine vers les serveurs DNS d&#8217;editdns.net et je gère ma zone DNS manuellement chez eux. Celle-ci n&#8217;est pas très complexe puisque je n&#8217;ai pas de serveur de mail pour accolade.ch :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">accolade.ch.		NS	 1	86400	ns1.eu.editdns.net.
accolade.ch.		NS	 1	86400	ns2.eu.editdns.net.
accolade.ch.		A	 1	86400	94.75.216.98
*.accolade.ch.	        A	 1	86400	94.75.216.98</pre></div></div>

<p>Second problème, après avoir migré ma base de données et mes fichiers, adapté mon fichier wp-config.php pour refléter mes nouveaux paramètres de base de données, mon blog affiche une page blanche, idem pour l&#8217;admin de Wordpress <img src='http://www.accolade.ch/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Après avoir activé l&#8217;affichage des erreurs de PHP et passé quelques temps à faire des recherches Google, je découvre qu&#8217;il suffit de CHMODer en 644 le fichier wp-config.php</p>
<p>Désormais mon blog n&#8217;affiche plus une page blanche, ni un message d&#8217;erreur concernant wp-load.php mais un message d&#8217;erreur &laquo;&nbsp;unexpected T_ENDWHILE&raquo;&nbsp; dans mon fichier de principal de mon thème ! Surtout ne pas se décourager, oui c&#8217;est très étonnant que mon thème ne fonctionne plus alors qu&#8217;il fonctionnait chez Dreamhost et que le fichier est identique, non ce n&#8217;est pas grave, c&#8217;est de l&#8217;informatique !</p>
<p>Il s&#8217;avère que ma configuration de PHP (5.2.6) fait qu&#8217;il ne supporte pas un mélange entre deux styles d&#8217;écritures des boucles/conditions :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
  <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;test&quot;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
  <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Après voir pris soin de nettoyer mon index.php de ce doux mélange, mon blog va mieux ! Enfin presque &#8230;</p>
<p>J&#8217;utilise NGinx avec PHP en fastcgi au lieu d&#8217;Apache. J&#8217;avais mis en place NGinx pour l&#8217;utiliser avec Thin sur un projet Ruby On Rails et je le trouve vraiment plus léger, plus sympa à configurer et plus performant qu&#8217;Apache. Seulement NGinx ne supporte pas les .htaccess donc toutes mes URL autres que index.php ne fonctionnent pas !</p>
<p>J&#8217;ai supprimé le .htaccess à la racine de mon blog et je l&#8217;ai remplacé par la règle équivalente directement dans le fichier de configuration de mon virtualhost NGinx :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">	if (!-e $request_filename) {
		rewrite ^(.+)$ /index.php?q=$1 last;
     }</pre></div></div>

<p>Tout est désormais en place et je n&#8217;ai plus de problème. J&#8217;ai profité d&#8217;être dans la configuration de NGinx pour ajouter la règle suivante :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">	if (-f $request_filename) {
		break;
	}</pre></div></div>

<p>qui dit à NGinx d&#8217;arrêter de parcourir les règles si c&#8217;est un fichier statique qui est demandé.</p>
<p><b>Mise à jour du 18.05.09 :</b> j&#8217;ai retiré la directive &laquo;&nbsp;expires 30d;&raquo;&nbsp; pour les fichiers statiques afin de ne pas forcer une mise en cache de 30 jours.</p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/Wjghlu5tP5M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/05/17/migration-sur-un-serveur-dedie-virtuel/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/05/17/migration-sur-un-serveur-dedie-virtuel/</feedburner:origLink></item>
		<item>
		<title>Afficher des éléments d’un tableau uniquement au survol de la ligne</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/UHB-wgxoYdU/</link>
		<comments>http://www.accolade.ch/2009/05/04/afficher-des-elements-dun-tableau-uniquement-au-survol-de-la-ligne/#comments</comments>
		<pubDate>Mon, 04 May 2009 17:44:14 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[ergonomie]]></category>
		<category><![CDATA[interface utilisateur]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/?p=493</guid>
		<description><![CDATA[L&#8217;affichage d&#8217;éléments actionnables uniquement au survol d&#8217;une ligne d&#8217;une liste est une pratique de plus en plus répandue car elle permet de proposer par défaut une interface sobre et de ne &#171;&#160;surcharger&#187;&#160; que la ligne sur laquelle on travaille.
C&#8217;est notamment l&#8217;effet utilisé dans l&#8217;admin de Wordpress pour la gestion des commentaires.
Contrairement à ce que certains [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;affichage d&#8217;éléments actionnables uniquement au survol d&#8217;une ligne d&#8217;une liste est une pratique de plus en plus répandue car elle permet de proposer par défaut une interface sobre et de ne &laquo;&nbsp;surcharger&raquo;&nbsp; que la ligne sur laquelle on travaille.</p>
<div style="text-align:center;"><img src="http://www.accolade.ch/wp-content/uploads/2009/05/image-11.png" alt="image-1.png" border="0" width="480" height="205" /><br /><i>C&#8217;est notamment l&#8217;effet utilisé dans l&#8217;admin de Wordpress pour la gestion des commentaires.</i></div>
<p>Contrairement à ce que certains pourraient penser, pas besoin de javascript pour arriver à produire ce résultat, CSS fait très bien l&#8217;affaire !</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;Nom&lt;/td&gt;
    &lt;td&gt;Prénom&lt;/td&gt;
    &lt;td&gt;&lt;div class=&quot;actions&quot;&gt;Editer&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.actions</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">visibility</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
tr<span style="color: #3333ff;">:hover </span><span style="color: #6666ff;">.actions</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">visibility</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">visible</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Pour ceux qui se demandent pourquoi j&#8217;ai mis mon action dans un div plutôt que de simplement utiliser la class actions sur le td, je vous avouerai que je n&#8217;ai pas creusé le pourquoi du comment mais en utilisant la class directement sur le td, le survol du td seul ne permet pas d&#8217;afficher les actions ce qui rend le principe caduc.</p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/UHB-wgxoYdU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/05/04/afficher-des-elements-dun-tableau-uniquement-au-survol-de-la-ligne/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/05/04/afficher-des-elements-dun-tableau-uniquement-au-survol-de-la-ligne/</feedburner:origLink></item>
		<item>
		<title>Haml, pour des templates Rails encore plus simples et propres</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/SeVjd5Po_tw/</link>
		<comments>http://www.accolade.ch/2009/05/01/haml-pour-des-templates-rails-encore-plus-simples-et-propres/#comments</comments>
		<pubDate>Fri, 01 May 2009 09:49:13 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/?p=483</guid>
		<description><![CDATA[Si vous travaillez avec Rails depuis quelques temps vous aurez rapidement remarqué que les vues deviennent vite très peu lisibles, malgré l&#8217;utilisation de helper. En effet, le mélange de Ruby avec du HTML donne des blocs pas toujours très facile à déchiffrer, surtout sur des pages assez complexes.
C&#8217;est là que Haml entre en jeu en [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous travaillez avec Rails depuis quelques temps vous aurez rapidement remarqué que les vues deviennent vite très peu lisibles, malgré l&#8217;utilisation de helper. En effet, le mélange de Ruby avec du HTML donne des blocs pas toujours très facile à déchiffrer, surtout sur des pages assez complexes.</p>
<p>C&#8217;est là que <a href="http://haml.hamptoncatlin.com/" target="_blank">Haml</a> entre en jeu en proposant d&#8217;écrire des templates avec une syntaxe beaucoup plus agréable. Trêve d&#8217;explications : exemple !</p>
<p>RHTML :</p>

<div class="wp_syntax"><div class="code"><pre class="xhtml" style="font-family:monospace;">&lt;div id=&quot;main&quot;&gt;
  &lt;div class=&quot;left&quot;&gt;
    &lt;div id=&quot;utilisateur&quot;&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</pre></div></div>

<p>Haml :</p>

<div class="wp_syntax"><div class="code"><pre class="haml" style="font-family:monospace;">#main
  .left
    #utilisateur= current_user.login</pre></div></div>

<p>Je crois que cet exemple parle de lui même, le code est plus précis, plus concis et surtout plus lisible. Autre exemple, le cas d&#8217;une liste à puce en Haml :</p>

<div class="wp_syntax"><div class="code"><pre class="haml" style="font-family:monospace;">%ul
  %li Ruby
  %li PHP
  %li Java</pre></div></div>

<p>Et enfin le meilleur pour la fin, le cas d&#8217;un tableau de contact en Haml :</p>

<div class="wp_syntax"><div class="code"><pre class="haml" style="font-family:monospace;">%table= render(@contacts)</pre></div></div>

<p>et le partial correspondant :</p>

<div class="wp_syntax"><div class="code"><pre class="haml" style="font-family:monospace;">%tr[contact]
  %td= contact.prenom
  %td= contact.nom</pre></div></div>

<p>Vous noterez la syntaxe %tr[contact] qui va donner en HTML : tr id=&raquo;&nbsp;contact_(id_du_contact)&raquo;&nbsp;. Convaincu ?</p>
<p>L&#8217;installation de Haml est décrite sur <a href="http://haml.hamptoncatlin.com/download/">cette page</a> et est très simple, il s&#8217;agit d&#8217;installer un gem et un petit plugin qui fait le lien entre le gem et votre application Rails.</p>
<p>Une fois Haml mis en place, je vous conseille vivement de parcourir le tutorial d&#8217;introduction et de convertir manuellement quelques une de vos vues (rien ne vous oblige à utiliser Haml dans toutes les vues, RHTML est toujours utilisable). Personnellement je n&#8217;ai pas utilisé le convertisseur RHTML -&gt; Haml donc je ne sais pas si le résultat est bon.</p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/SeVjd5Po_tw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/05/01/haml-pour-des-templates-rails-encore-plus-simples-et-propres/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/05/01/haml-pour-des-templates-rails-encore-plus-simples-et-propres/</feedburner:origLink></item>
		<item>
		<title>Quel matériel choisir pour des sauvegardes TimeMachine et du partage Windows ?</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/kw1kDA0-wtE/</link>
		<comments>http://www.accolade.ch/2009/04/25/quel-materiel-choisir-pour-des-sauvegardes-timemachine-et-du-partage-windows/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 11:06:04 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[équipement]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[matériel]]></category>
		<category><![CDATA[télétravail]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/?p=481</guid>
		<description><![CDATA[Alors que l&#8217;on stock de plus en plus de données personnelles et professionnelles sur nos ordinateurs, trop peu de personnes pensent à faire des sauvegardes régulières. Apple avec TimeMachine permet à tout à chacun d&#8217;accéder à une solution de sauvegarde très simple et très efficace.
Avec deux Macbook dont un utilisant Bootcamp, je cherche une solution [...]]]></description>
			<content:encoded><![CDATA[<p>Alors que l&#8217;on stock de plus en plus de données personnelles et professionnelles sur nos ordinateurs, trop peu de personnes pensent à faire des sauvegardes régulières. Apple avec TimeMachine permet à tout à chacun d&#8217;accéder à une solution de sauvegarde très simple et très efficace.</p>
<p>Avec deux Macbook dont un utilisant Bootcamp, je cherche une solution de sauvegarde/stockage me permettant de sauvegarder les deux macs avec TimeMachine, la partition Bootcamp avec un logiciel à définir et pouvant également faire office de disque réseau pour le partage de fichier. Idéallement cette solution doit avoir une consommation électrique raisonnable.</p>
<p>Malheureusement TimeCapsule ne répond pas à ses critères car elle ne permet pas de créer nativement des partitions afin de séparer les données des sauvegardes.</p>
<p></p>
<div style="text-align:center;width:100%"><img src="http://www.accolade.ch/wp-content/uploads/2009/04/apple-time-capsule-1-300x224.jpg" border="0" width="300" height="224" alt="TimeCapsule"/>
<div style="font-style:italic;">Apple TimeCapsule &#8211; 1&#215;1To &#8211; 629.- (environ 430€)</div>
</div>
<p>Mon choix s&#8217;oriente tout d&#8217;abord vers des NAS &laquo;&nbsp;all-in-one&raquo;&nbsp; de marque QNap ou Synology. Très séduisants par le nombre de fonctionnalités proposées (support uPnp, client bittorent, serveur MySQL et Apache avec PHP&#8230;) pour un prix raisonnable, ils ne supportent malheureusement pas nativement TimeMachine. Dès lors j&#8217;ai orienté mes recherches vers des produits supportants TimeCapsule nativement ou avec un minimum d&#8217;adaptations. Non pas que je ne sois pas un habitué de la ligne de commande et autre geekerie mais la sauvegarde doit être un truc &laquo;&nbsp;que l&#8217;on configure et que l&#8217;on oubli&raquo;&nbsp; pour moi. J&#8217;ai assez d&#8217;autres choses à faire <img src='http://www.accolade.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div style="text-align:center;width:100%"><img src="http://www.accolade.ch/wp-content/uploads/2009/04/synology-ds-207x-150x150.jpg" border="0" width="150" height="150" alt="Synology Ds207" />
<div style="font-style:italic;">Synology DS108j &#8211; nu 179.- (environ 120€)</div>
</div>
<p>Les recherches deviennent beaucoup plus compliqués dès qu&#8217;on se limite à des solutions supportant TimeMachine. Je pourrai par exemple investir dans un Mac Mini que j&#8217;équiperai d&#8217;un disque dur externe 1To. C&#8217;est certainement une très bonne solution avec beaucoup de possibilités d&#8217;évolutions mais ce serait vraiment sous utiliser les capacités du Mac Mini et la consommation électrique est élevée pour du simple stockage !</p>
<div style="text-align:center;width:100%"><img src="http://www.accolade.ch/wp-content/uploads/2009/04/macmini-disc-300x225.jpg" border="0" width="300" height="225" alt="Mac Mini" />
<div style="font-style:italic;">MacMini Intel Core 2 Duo &#8211; 1&#215;120 Go 799.- (environ 530€)</div>
</div>
<p>HP propose une gamme de Home Server qui ont l&#8217;air très sympas mais on est à nouveau dans un système proche du Mac Mini, qui plus est sous Windows <img src='http://www.accolade.ch/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<div style="text-align:center;width:100%"><img src="http://www.accolade.ch/wp-content/uploads/2009/04/hp-mediasmart-258x300.jpg" border="0" width="258" height=300" alt="HP MediaSmart"/>
<div style="font-style:italic;">HP MediaSmart &#8211; 1&#215;500Go 660.- (environ 530€)</div>
</div>
<p>Pour finir j&#8217;ai découvert ce qui me semble être la solution adaptée à mes besoins. NetGear propose en effet sur sa gamme ReadyNAS un firmware qui supporte nativement des partitions TimeMachine. Le ReadyNAS dispose également de fonctionnalités assez proches des produits Synology et QNap (en un peu moins évolué mais ce n&#8217;est pas un critère décisif pour moi). Les produits ReadyNAS permettent d&#8217;accueillir un ou deux disques dur 3.5&#8243; en SATA suivant les modèles. Le modèle Duo ne supporte que le RAID1 lorsqu&#8217;il est utilisé avec deux disques (ce qui est très pertinent pour un système de stockage). On ne trouve malheureusement pas de chiffres officiels pour la consommation électrique mais <a href="http://blogs.sun.com/watt/entry/readynas_power_consumption" target="_blank">ce blog</a> parle d&#8217;environ 50W avec 4 disques. Avec deux disques, la consommation doit donc être plus proche de 35/40W.</p>
<div style="text-align:center;width:100%"><img src="http://www.accolade.ch/wp-content/uploads/2009/04/netgear-ready-nas-duo-20-480.jpg" alt="Netgear-Ready-Nas-Duo-20-480-300x183.jpg" border="0" width="300" height="183" alt="NetGear ReadyNAS"/>
<div style="font-style:italic;">NetGear ReadyNAS RND2000 &#8211; nu 399.- (environ 265€)</div>
</div>
<p>Je pense donc acquérir rapidement ce produit ReadyNAS et je ne manquerai pas d&#8217;en reparler ici pour vous donner mes impressions.</p>
<p>PS : c&#8217;est aussi mon premier billet depuis MarsEdit qui remplacement définitivement Ecto</p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/kw1kDA0-wtE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/04/25/quel-materiel-choisir-pour-des-sauvegardes-timemachine-et-du-partage-windows/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/04/25/quel-materiel-choisir-pour-des-sauvegardes-timemachine-et-du-partage-windows/</feedburner:origLink></item>
		<item>
		<title>Comment partager du code entre différents contrôleurs dans un projet Ruby On Rails</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/PBAxqv2STQs/</link>
		<comments>http://www.accolade.ch/2009/04/22/comment-partager-du-code-entre-differents-controleurs-dans-un-projet-ruby-on-rails/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 11:24:45 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/2009/04/22/comment-partager-du-code-entre-differents-controleurs-dans-un-projet-ruby-on-rails/</guid>
		<description><![CDATA[Même si les contrôleurs doivent contenir le minimum de code, il est courant de devoir réutiliser du code dans plusieurs contrôleurs. Un exemple tout simple est le cas d&#8217;une déconnexion et d&#8217;une suppression de compte, dans les deux cas on souhaite supprimer la session de l&#8217;utilisateur courant etc&#8230;
Il faut donc trouver une solution propre pour [...]]]></description>
			<content:encoded><![CDATA[<p>Même si les contrôleurs doivent contenir le minimum de code, il est courant de devoir réutiliser du code dans plusieurs contrôleurs. Un exemple tout simple est le cas d&#8217;une déconnexion et d&#8217;une suppression de compte, dans les deux cas on souhaite supprimer la session de l&#8217;utilisateur courant etc&#8230;</p>
<p>Il faut donc trouver une solution propre pour ne pas se répéter (DRY) et pouvoir utiliser un code commun à ces deux emplacements. Suivant les cas il existe différentes manière de partager du code entre différents contrôleurs :</p>
<p><strong>Si le code est un ensemble de fonctions qui n&#8217;a pas besoin d&#8217;accéder à l&#8217;état du contrôleur, placer ce dernier dans un module qui sera appelé séparemment.</strong></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">module</span> GMapsAPI
  <span style="color:#9966CC; font-weight:bold;">def</span> get_geolocation<span style="color:#006600; font-weight:bold;">&#40;</span>emplacement<span style="color:#006600; font-weight:bold;">&#41;</span>
    ...
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> ContactController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
  <span style="color:#9966CC; font-weight:bold;">def</span> index
    position = GMapsAPI::get_geolocation<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'Lausanne'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><strong>Si le code a besoin d&#8217;accéder à l&#8217;état du contrôleur et qu&#8217;il peut être utilisé dans tous les contrôleurs, placer ce dernier dans ApplicationController.</strong></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> ApplicationController <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActionController::Base</span>
  before_filter <span style="color:#ff3333; font-weight:bold;">:set_application_name</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> set_application_name
    <span style="color:#0066ff; font-weight:bold;">@application_name</span> = <span style="color:#996600;">'Mon application'</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> ContactController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
  <span style="color:#9966CC; font-weight:bold;">def</span> index
    <span style="color:#008000; font-style:italic;"># @application_name est accessible ici</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><strong>Si le code a besoin d&#8217;accéder à l&#8217;état du contrôleur et qu&#8217;il peut être utilisé par plusieurs contrôleurs partageant des fonctionnalités similaires (plusieurs contrôleur demandant une authentification par exemple),</strong> <strong>utiliser une classe de base.</strong></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> PrivateController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
  require_role <span style="color:#ff3333; font-weight:bold;">:admin</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> ContactController <span style="color:#006600; font-weight:bold;">&lt;</span> PrivateController
  <span style="color:#9966CC; font-weight:bold;">def</span> index
    <span style="color:#008000; font-style:italic;"># cette action n'est accessible qu'aux admins</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">def</span> AddressController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
  <span style="color:#9966CC; font-weight:bold;">def</span> index
    <span style="color:#008000; font-style:italic;"># cette action est accessible à tout le monde</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><strong>Si le code a besoin d&#8217;accéder à l&#8217;état du contrôleur et qu&#8217;il peut être utilisé par une partie des contrôleurs qui ne sont pas forcémment liés, placer le code dans un module et inclure ce module dans tous les contrôleurs nécessaires.</strong></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">module</span> GMapsAPI
  <span style="color:#9966CC; font-weight:bold;">def</span> get_geolocation<span style="color:#006600; font-weight:bold;">&#40;</span>emplacement<span style="color:#006600; font-weight:bold;">&#41;</span>
    ...
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> ContactController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
  <span style="color:#9966CC; font-weight:bold;">include</span> GMapsAPI
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> index
    position = get_geolocation<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'Lausanne'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/PBAxqv2STQs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/04/22/comment-partager-du-code-entre-differents-controleurs-dans-un-projet-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/04/22/comment-partager-du-code-entre-differents-controleurs-dans-un-projet-ruby-on-rails/</feedburner:origLink></item>
		<item>
		<title>Parler d’un problème pour en trouver la solution</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/iy2RLDPxKs0/</link>
		<comments>http://www.accolade.ch/2009/04/13/parler-dun-probleme-pour-en-trouver-la-solution/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 20:46:07 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[développement]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/2009/04/13/parler-dun-probleme-pour-en-trouver-la-solution/</guid>
		<description><![CDATA[Qui n&#8217;a jamais rencontré cette situation bien connue des développeurs ou l&#8217;on bute sur un problème puis, par le simple fait d&#8217;en parler à un collègue, un ami ou un membre de sa famille, on découvre la solution qui nous semble évidente ?
Cette méthode est très efficace mais elle nécessite d&#8217;avoir quelqu&#8217;un à qui parler [...]]]></description>
			<content:encoded><![CDATA[<p>Qui n&#8217;a jamais rencontré cette situation bien connue des développeurs ou l&#8217;on bute sur un problème puis, par le simple fait d&#8217;en parler à un collègue, un ami ou un membre de sa famille, on découvre la solution qui nous semble évidente ?</p>
<p>Cette méthode est très efficace mais elle nécessite d&#8217;avoir quelqu&#8217;un à qui parler de ses problèmes ce qui n&#8217;est pas toujours facile. Je vous propose donc ici une alternative très simple à mettre en place :</p>
<ol>
<li>Acheter, fabriquer ou voler un canard en plastique</li>
<li>Placer le canard en papier sur le bureau et l&#8217;informer que l&#8217;on va parcourir ensemble quelques lignes de code (il n&#8217;a aucune raison de refuser)</li>
<li>Expliquer au canard ce que le code est sensé faire puis passer en revue le code, ligne par ligne</li>
<li>A un moment donné, en expliquant ce que la ligne suivante doit faire on s&#8217;apercevra que ce n&#8217;est en réalité pas ce qu&#8217;elle fait</li>
</ol>
<p align="center"><img src="http://www.accolade.ch/wp-content/uploads/2009/04/images.jpg" width="128" height="150" alt="images.jpeg" /></p>
<p>Pendant que vous sautez de joie d&#8217;avoir réglé ce problème, le canard restera assis paisiblement, heureux de vous avoir rendu un grand service !</p>
<p>Crédit photo : <a href="http://commons.wikimedia.org/wiki/Main_Page">wikimedia.org</a></p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/iy2RLDPxKs0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/04/13/parler-dun-probleme-pour-en-trouver-la-solution/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/04/13/parler-dun-probleme-pour-en-trouver-la-solution/</feedburner:origLink></item>
		<item>
		<title>Livre : Ergonomie web d’Amélie Boucher</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/Co6l9jOty3o/</link>
		<comments>http://www.accolade.ch/2009/04/06/livre-ergonomie-web-damelie-boucher/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 15:46:12 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[ergonomie]]></category>
		<category><![CDATA[interface utilisateur]]></category>
		<category><![CDATA[Livre]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/2009/04/06/livre-ergonomie-web-damelie-boucher/</guid>
		<description><![CDATA[Bien que n&#8217;ayant pas eu le temps d&#8217;en terminer la lecture, je vous livre ici mes premières impressions concernant &#171;&#160;Ergonomie web&#187;&#160;, un livre d&#8217;Amélie Boucher dont la deuxième édition est sortie le 19 mars.

En feuilletant rapidement l&#8217;ouvrage, on découvre d&#8217;entrée qu&#8217;il contient de nombreuses captures d&#8217;écran. Tous les propos de l&#8217;auteur sont étayés d&#8217;exemples concrets [...]]]></description>
			<content:encoded><![CDATA[<p>Bien que n&#8217;ayant pas eu le temps d&#8217;en terminer la lecture, je vous livre ici mes premières impressions concernant &laquo;&nbsp;Ergonomie web&raquo;&nbsp;, un livre d&#8217;Amélie Boucher dont <a href="http://www.amazon.fr/Ergonomie-Web-Pour-sites-efficaces/dp/221212158X">la deuxième édition</a> est sortie le 19 mars.</p>
<p style="text-align: center;"><img src="http://www.accolade.ch/wp-content/uploads/2009/04/200904061730.jpg" width="200" height="233" alt="200904061730.jpg" /></p>
<p>En feuilletant rapidement l&#8217;ouvrage, on découvre d&#8217;entrée qu&#8217;il contient de nombreuses captures d&#8217;écran. Tous les propos de l&#8217;auteur sont étayés d&#8217;exemples concrets pris sur des sites connus.</p>
<p>Le livre ne demande pas de pré-requis particulier, il est accessible à tout à chacun mais les personnes qui travaillent déjà depuis quelques temps à l&#8217;amélioration de l&#8217;ergonomie d&#8217;un site Internet y trouveront peut être quelques longueurs. Ce livre n&#8217;est ni un ouvrage de vulgarisation ergonomique ni un ouvre scientifique, il apporte des clés pour comprendre et pratiquer concrètement l&#8217;ergonomie.</p>
<p>Je conseille donc vivement ce livre en particulier aux personnes qui ne se sont jamais intéressées à l&#8217;ergonomie de leurs applications Internet. C&#8217;est un ouvrage à mettre en toutes les mains et surtout entre celles et ceux qui construisent les interfaces web de demain !</p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/Co6l9jOty3o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/04/06/livre-ergonomie-web-damelie-boucher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/04/06/livre-ergonomie-web-damelie-boucher/</feedburner:origLink></item>
		<item>
		<title>Notifications Growl avec Rails autotest</title>
		<link>http://feedproxy.google.com/~r/BlogDeKilgore/~3/P1bcWBASh3k/</link>
		<comments>http://www.accolade.ch/2009/03/26/notifications-growl-avec-rails-autotest/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 19:07:46 +0000</pubDate>
		<dc:creator>Raphaël</dc:creator>
				<category><![CDATA[Standard]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[productivité]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[tests]]></category>

		<guid isPermaLink="false">http://www.accolade.ch/2009/03/26/notifications-growl-avec-rails-autotest/</guid>
		<description><![CDATA[Lorsque vous effectuez du TDD (avec Test::Unit) ou du BDD (Behaviour Driven Development &#8211; avec RSpec), il devient rapidement fastidieux de tout le temps exécuter ses tests ou ses spécifications (même avec des raccourcis très rapide comme dans Textmate !).
Zen autotest permet d&#8217;exécuter en permanence dans une console les tests impactés par vos modifications récentes. [...]]]></description>
			<content:encoded><![CDATA[<p>Lorsque vous effectuez du <a href="http://fr.wikipedia.org/wiki/TDD">TDD</a> (avec Test::Unit) ou du BDD (Behaviour Driven Development &#8211; avec RSpec), il devient rapidement fastidieux de tout le temps exécuter ses tests ou ses spécifications (même avec des raccourcis très rapide comme dans Textmate !).</p>
<p>Zen autotest permet d&#8217;exécuter en permanence dans une console les tests impactés par vos modifications récentes. C&#8217;est très pratique mais ça implique de passer d&#8217;une fenêtre à l&#8217;autre pour voir ce qu&#8217;il se passe. Pourquoi ne pas utiliser <a href="http://fr.wikipedia.org/wiki/Growl_(logiciel)">Growl</a> pour avoir directement sous les yeux l&#8217;état des tests ou des spécifications sur lesquelles on travaille ?</p>
<p align="center"><img src="http://www.accolade.ch/wp-content/uploads/2009/03/image-3-modified.png" width="224" height="89" alt="Image 3_modified.png" /></p>
<p>Il était jusqu&#8217;alors assez hasardeux d&#8217;intégrer les notifications Growl avec Zen autotest mais le gem Growl Blue facilite désormais grandement les choses.</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">sudo gem install ZenTest
sudo gem install growl_blue</pre></div></div>

<p>Il faut ensuite ajouter les lignes suivantes dans le fichier .autotest à la racine de votre compte (ou le créer si nécessaire) :</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'growl_glue'</span>
<span style="color:#6666ff; font-weight:bold;">GrowlGlue::Autotest</span>.<span style="color:#9900CC;">initialize</span></pre></div></div>

<p>et c&#8217;est tout ! Growl Blue gère nativement l&#8217;affichage des messages pour RSpec et Test::Unit avec de jolies icônes et il dispose de plusieurs paramètres permettants de modifier la notification Growl. Tout est expliqué dans la <a href="http://growl-glue.rubyforge.org/">documentation disponible ici</a>. Il ne reste plus qu&#8217;à lancer :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">autotest -rails</pre></div></div>

<p>à la racine de votre projet Rails et le tour est joué !</p>
<img src="http://feeds.feedburner.com/~r/BlogDeKilgore/~4/P1bcWBASh3k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.accolade.ch/2009/03/26/notifications-growl-avec-rails-autotest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.accolade.ch/2009/03/26/notifications-growl-avec-rails-autotest/</feedburner:origLink></item>
	</channel>
</rss>
