<?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>Pheromone Lab</title>
	<atom:link href="http://lab.pheromone.ca/feed/" rel="self" type="application/rss+xml" />
	<link>http://lab.pheromone.ca</link>
	<description>Inspiration, Experimentation, Innovation</description>
	<lastBuildDate>Thu, 29 Jul 2010 16:50:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Open Data in Canada. Montréal ?</title>
		<link>http://lab.pheromone.ca/2010/07/27/open-data-in-canada-montreal/</link>
		<comments>http://lab.pheromone.ca/2010/07/27/open-data-in-canada-montreal/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 16:14:59 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[UX – Experience Utilisateur]]></category>
		<category><![CDATA[canada]]></category>
		<category><![CDATA[license]]></category>
		<category><![CDATA[montréal]]></category>
		<category><![CDATA[opendata]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=576</guid>
		<description><![CDATA[There is an international trend requesting access to open data. That is good. Open data helps organizations, companies and governments to create an environment of trust. There is a guide for open government data which is written by W3C. Open Data and Licenses To really promote open data, it is necessary to use the appropriate [...]]]></description>
			<content:encoded><![CDATA[<p>There is an international trend requesting access to open data. <strong>That is good</strong>. Open data helps organizations, companies and governments to create an environment of trust. There is a <a href="http://www.w3.org/TR/gov-data/" title="Publishing Open Government Data">guide for open government  data</a> which is written by W3C.</p>
<h2 id="open_data_and_licenses">Open Data and Licenses</h2>
<p>To really promote open data, it is necessary to use the appropriate licence. Glen Newton looked at the licenses of different data sets published by canadian cities. The terms of the licenses are too restrictive. It is important to ensure that people will be able to use the data freely. There are many ways of achieving that. One of them is using <a href="http://creativecommons.org/" title="Creative Commons">creative commons licenses</a>. It enables people to reuse the data in many circumstances keeping the attribution credits.</p>
<h2 id="open_data_in_canada">Open Data in Canada</h2>
<p>What about Canada? Not that bad. Many initiatives push in the right direction. Governments (federal and local), cities as well as civic organizations are publishing data. Often the licenses are not the right ones, but that can be fixed.</p>
<ul>
<li><a href="http://infosource.gc.ca/index-fra.asp">Info Source Canada Gov</a></li>
<li><a href="http://data.edmonton.ca/">Open Data Edmonton</a></li>
<li><a href="http://www.nanaimo.ca/datafeeds/">Open Data Nanaimo</a></li>
<li><a href="http://www.ottawa.ca/online_services/opendata/index_en.html">Open Data Ottawa</a> See also <a href="http://www.opendataottawa.ca/">Ottawa Data</a> &#8211; <a href="http://blog.opendataottawa.ca/">open data ottawa blog</a> &#8211; <a href="http://opendataapps.org/">opendata apps directory</a></li>
<li><a href="http://www.toronto.ca/open">Open Data Toronto</a></li>
<li><a href="http://data.vancouver.ca/">Open Data Vancouver</a></li>
<li><a href="http://opendatalinks.ca/">Open Data Links Canada</a></li>
<li><a href="http://www.openottawa.org/">Open Ottawa</a> (Civic Organization)</li>
<li><a href="http://www.datadotgc.ca/">Canadian Gov data by citizens</a></li>
<li><a href="http://civicaccess.ca/" title="CivicAccess.ca / Acc&egrave;sCivique.ca">CivicAccess</a></li>
</ul>
<h2 id="montral_">Montréal ?</h2>
<p>And Montréal. There are whispers of interests. But I do not know of any concrete initiatives yet. Have you heard something? How do we encourage Montreal city to share the data?</p>
<p>Montréal has <a href="http://patrimoine.ville.montreal.qc.ca/inventaire/index.html">data</a>, a <a href="http://www11.ville.montreal.qc.ca/sherlock2/index.html">lot</a> of <a href="http://ville.montreal.qc.ca/pls/portal/url/PAGE/MTL_STATISTIQUES_FR/ACCUEIL">data</a>. The access could be improved (RESTful API, data format) and licenses clarified.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/07/27/open-data-in-canada-montreal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSSVerificator</title>
		<link>http://lab.pheromone.ca/2010/07/22/cssverificator/</link>
		<comments>http://lab.pheromone.ca/2010/07/22/cssverificator/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:48:31 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[validator]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=571</guid>
		<description><![CDATA[CssVerificator is a Rails application which checks 5 CSS items for performances. This prototype has been created by Benoit Goyette. The Story Nicole Sullivan (@stubbornella) recently outlined the Top 5 Mistakes of Massive CSS. After a survey, Nicolle Sullivan found out that 42% Don’t GZIP CSS 44% Have more than 2 CSS external files 56% [...]]]></description>
			<content:encoded><![CDATA[<p>CssVerificator is a Rails application which checks 5 CSS items for performances. This <strong>prototype</strong> has been created by <a href="http://twitter.com/benoitgoyette">Benoit Goyette</a>.</p>
<h2 id="the_story">The Story</h2>
<p><a href="http://www.stubbornella.org/">Nicole Sullivan</a> (<a href="http://twitter.com/stubbornella">@stubbornella</a>) recently outlined the <a href="http://www.stubbornella.org/content/2010/07/01/top-5-mistakes-of-massive-css/">Top 5 Mistakes of Massive CSS</a>. After a survey, Nicolle Sullivan found out that</p>
<ul>
<li>42% Don’t GZIP CSS</li>
<li>44% Have more than 2 CSS external files</li>
<li>56% Serve CSS with cookies (yummy to eat, bad for static content)</li>
<li>62% Don’t minify (check out the YUI Compressor!)</li>
<li>21% Have greater than 100K of CSS</li>
</ul>
<p>We then decided to create a service that would help Web developers fix these 5 items only. We believe in small steps.</p>
<h2 id="cssverificator">Service and Source Code</h2>
<p>The <a href="http://github.com/benoitgoyette/CssVerificator">code</a> is under MIT License. You are welcome to use, fork, improve, twist it. The <a href="http://css-verificator.heroku.com/">service</a> is online (bugs included). Any contributions to create a CSS and a design for it would be more than welcome. Do not shoot the messenger and make it better.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/07/22/cssverificator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>«I FELL IN LOVE» – les tribulations d&#8217;un flasheur au pays du Javascript</title>
		<link>http://lab.pheromone.ca/2010/07/22/i-fell-in-love-with-les-tribulations-dun-flasheur-au-pays-du-javascript/</link>
		<comments>http://lab.pheromone.ca/2010/07/22/i-fell-in-love-with-les-tribulations-dun-flasheur-au-pays-du-javascript/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 15:34:27 +0000</pubDate>
		<dc:creator>arnaud</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=519</guid>
		<description><![CDATA[Le module que vous pouvez découvrir à cette adresse : http://fellinlove.rd.pheromone.ca est une visualisation de données Twitter résultante de la requête : I fell in love with. Banal sur le principe, cet exercice trouve sa singularité si je vous avoue qu&#8217;il est pour moi une première en matière de développement Javascript. Fort d&#8217;une bonne demie [...]]]></description>
			<content:encoded><![CDATA[<p>Le module que vous pouvez découvrir à cette adresse : <a href="http://fellinlove.rd.pheromone.ca">http://fellinlove.rd.pheromone.ca</a> est une visualisation de données Twitter résultante de la requête : I fell in love with.</p>
<p>Banal sur le principe, cet exercice trouve sa singularité si je vous avoue qu&#8217;il est pour moi une première en matière de développement Javascript.</p>
<p>Fort d&#8217;une bonne demie douzaine d&#8217;années d&#8217;expertise dans le développement flash et l&#8217;utilisation de l&#8217;ActionScript, me voilà parachuté dans l&#8217;univers prototypale du JavaScript. Univers occulté par la puissance et fléxibilité de l&#8217;AS3, j&#8217;ai commencé par me procurer l&#8217;ouvrage, <a href="http://oreilly.com/catalog/9780596517748">JavasScript : The Good Parts</a> des éditions O&#8217;REILLY, puis décortiquer les scripts de la référence en matière de dhtml : <a href="http://www.dhteumeuleu.com/">www.dhteumeuleu.com</a>. Remise à niveau au combien salutaire.</p>
<p>Ma crainte majeure, dans l&#8217;optique de l&#8217;animation, fut de disposer de l&#8217;indépendance que l&#8217;on trouve avec les MovieClip et l&#8217;ActionScript pour les balises html. Crainte très vite estompée par l&#8217;application appropriée de css.</p>
<p>La logique est identique à celle d&#8217;un développement flash (requête Twitter, manipulation des données, routine propre à l&#8217;application, ect &#8230;), les animations utilisent <a href="http://jstween.blogspot.com/2007/01/javascript-motion-tween.html">Javascript Motion Tween</a> de <a href="http://jstween.blogspot.com/2007/01/javascript-motion-tween.html">Philippe Maegerman</a> ainsi que la librairie <a href="http://jquery.com/">JQuery</a>, les css font le reste.</p>
<p>Il est donc facile de conclure ce billet par une note favorable, dire que le développement Javascript est accessible aux  flasheurs semble un euphémisme.<a href="http://lab.pheromone.ca/wp-content/uploads/2010/07/fell.jpg"><br />
</a><a href="http://fellinlove.rd.pheromone.ca"><img class="alignleft size-full wp-image-560" title="fell" src="http://lab.pheromone.ca/wp-content/uploads/2010/07/fell1.jpg" alt="" width="600" height="400" /></a></p>
<p>Je prépare un prochain billet sur quelques travaux avec la librairie <a href="http://raphaeljs.com/">Raphael.js</a><br />
Au plaisir de vous lire .</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/07/22/i-fell-in-love-with-les-tribulations-dun-flasheur-au-pays-du-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How the Yahoo portal personalises User Experience</title>
		<link>http://lab.pheromone.ca/2010/07/19/yahoo-personalised-ux/</link>
		<comments>http://lab.pheromone.ca/2010/07/19/yahoo-personalised-ux/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 19:06:28 +0000</pubDate>
		<dc:creator>Olivier Théreaux</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[UX – Experience Utilisateur]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=497</guid>
		<description><![CDATA[In the course of a week-long benchmark study of portals around the world we ran recently for one of our clients, I stumbled upon the home page for the Yahoo! portal in spain. Notice anything unusual? What fascinates me is how the top third of the page mentioned locations in no less than three countries. [...]]]></description>
			<content:encoded><![CDATA[<p>In the course of a week-long benchmark study of portals around the world we ran recently for one of our clients, I stumbled upon the home page for the <a href="http://es.yahoo.com">Yahoo! portal in spain</a>.</p>
<p><a href="http://lab.pheromone.ca/wp-content/uploads/2010/07/Yahoo_es_2010-07-19.png"><img src="http://lab.pheromone.ca/wp-content/uploads/2010/07/Yahoo_es_2010-07-19.png" alt="Yahoo España - Screenshot" title="Yahoo España - Screenshot" width="600" class="aligncenter" /></a></p>
<p>Notice anything unusual? What fascinates me is how the top third of the page mentioned locations in no less than three countries. How? Why?</p>
<p><img src="http://lab.pheromone.ca/wp-content/uploads/2010/07/Yahoo_es_canada.png" alt="" title="Yahoo españa - Canada link" width="97" height="107" class="alignleft size-full wp-image-504" /> Near the top-left of the page, I can see an icon depicting a Canadian flag, along with a link to the Canada-specific Yahoo! portal. What this means is that the Yahoo! system knows that I am browsing from Canada (I have been, therefore, geolocated). If you view the site from another country, chances are you will be getting a different flag and a different link. And if you view it from Spain? I do not know. When I do follow the hyperlink to Yahoo! Canada, I get a similar link to Yahoo! Quebec, and when I go to Yahoo! Quebec, I get a link to Yahoo! Canada. </p>
<p>Interestingly enough, one of the most common elements of personalised user experience is missing here: language selection. There is no way I can read the news from Spain in English &#8211; or indeed, in Català or Gallego. Neither do I get a &laquo;&nbsp;Français&nbsp;&raquo; link on Yahoo! Canada, or &laquo;&nbsp;English&nbsp;&raquo; on Yahoo! Quebec. </p>
<p> Knowing where I am, the system could assume I necessarily want to view local content in my local language and therefore redirect me to the Canadian/English portal. Fortunately, it does not, and lets me browse news from Spain as much as I like, and limits the effect of geolocation to a subtle but clear hint that <em>local content is also available</em>.</p>
<p><em>How do they do it</em>? Most likely, the <a href="http://en.wikipedia.org/wiki/IP_address">IP address</a> of the machine I used to access the site was compared against a GeoIP database such as <a href="http://www.ip2location.com/">this one</a> or <a href="http://www.maxmind.com/app/geoip_country">that one</a>. Note that, unlike in many mobile applications, the IP-to-location translation is done automatically, without ever prompting the user for her agreement. </p>
<p>Next in our exploration of the personalisation elements is the page-wide bar of text links, calls for action and teaser questions serving a single purpose: convert the visitor into a user, either by registering, or by logging into an existing account.</p>
<p><a href="http://lab.pheromone.ca/wp-content/uploads/2010/07/Yahoo_es_login.png"><img src="http://lab.pheromone.ca/wp-content/uploads/2010/07/Yahoo_es_login.png" alt="" title="Login, register, tease" width="600" class="aligncenter size-full wp-image-510" /></a></p>
<p>Notice how the bar employs about about every trick know to web designers to entice us to log in: give regular users a quick link to their well-known personal space; showcase some of the added value gained through registration (preview of my inbox, directly in my news portal); comfort the potentially puzzled new visitor (New here?) and tease the social fiber (What are you doing? – obviously a go at copying the now-abandoned twitter tagline?).</p>
<p><img src="http://lab.pheromone.ca/wp-content/uploads/2010/07/Yahoo_es_weather.png" alt="" title="Yahoo weather" width="349" height="148" class="alignright size-full wp-image-511" /> The most surprising element comes last. How come, given that I am not logged into Yahoo!&#8217;s system, I am shown a weather widget for the city of Tokyo, Japan? I could have understood if it were Madrid (local to the portal, with an educated guess about which city I may be interested in) or Montréal (through geolocation) – but Why Tokyo? And how? </p>
<p><em>How do they do it</em>? I quickly validated my initial hunch: Yahoo achieved this through the use of cookies &#8211; although other client storage options such as the <a href="http://dev.w3.org/html5/webstorage/">localstorage in html5</a> would have been just as valid. My problem here, however, is that:</p>
<ul>
<li>The cookies are opaque &#8211; even with a cookie browser (most browsers with developer extension offers one) I would hardly be able to know which cookie was telling Yahoo! thay my preferred location was Tokyo. I had to delete cookies, one by one, until the weather widget changed to a geolocated default of Montreal.</li>
<li>I cannot tell how and when this cookie was set in my system. Sure, I could set my browser to have me validate any cookie sites want to store, but given how cookies are entirely opaque, how would I know the meaning and consequences of allowing Yahoo (of flickr, or any site in the Yahoo ecosystem) to store a cookie that sets key <code>T</code> to <code>…CAuNRMqKiCOsvekk…</code>.</li>
</ul>
<p><em>And there&#8217;s more…</em> All these modes of personalisation have been enabled without me even logging into the system. Imagine the many personalised features that can be implemented for recurrent, identified users: social filtering (content that my friends like, for instance), content adapted to my choices or patterns of use (recommendations for <em>you</em>), and much more. Has any content-heavy site ever tried to recommend their users items that they are unlikely to &laquo;&nbsp;like&nbsp;&raquo;, or at least that they are likely to be surprised or challenged by?</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/07/19/yahoo-personalised-ux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>So Last Week, Communication Tools Edition</title>
		<link>http://lab.pheromone.ca/2010/07/19/so-last-week-communication-tools-edition/</link>
		<comments>http://lab.pheromone.ca/2010/07/19/so-last-week-communication-tools-edition/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 15:26:56 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Organisation du travail]]></category>
		<category><![CDATA[So Last Week]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[mailing-list]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=493</guid>
		<description><![CDATA[Because I was traveling to London for a conference last week, this So Last Week is covering the two last weeks. Cookies in webkit For RDS, we had an issue with cookies on webkit. I went on a quest to understand why. Webkit has an issue with &#8220;,&#8221; character in cookies. It strips everything after [...]]]></description>
			<content:encoded><![CDATA[<p>Because I was traveling to London for a conference last week, this <a href="http://lab.pheromone.ca/category/so-last-week/">So Last Week</a> is covering the two last weeks.</p>
<h2 id="cookies_in_webkit">Cookies in webkit</h2>
<p>For RDS, we had an issue with cookies on webkit. I went on a quest to understand why. Webkit has an issue with &#8220;,&#8221; character in cookies. It strips everything after the comma in the value. There is a new specification in the process of redifining <a href="https://datatracker.ietf.org/doc/draft-ietf-httpstate-cookie/">cookies</a>. You can expect that some implementations to be fixed, and then creating interoperability issues.</p>
<h2 id="mailing_list">Mailing-list</h2>
<p>We are using mailing-list for projects archived on the Web. An interesting question has been raised on when creating a new list. So far, we tried to limit the creation of new list when we were getting new clients and not for each project. People participating can decided to subscribe or unsubscribe from each list. The person asking the question was afraid I guess of too many people involved around the project and having useless forks in the dicussions. This is indeed a possibility, but it is a reasonable risk to accept for the huge benefits:</p>
<ul>
<li>free archiving of the project</li>
<li>people who are not directly involved in the current project can act as expert or raise a flag on something they have experimented in the past</li>
<li>Searchability on one client. Some projects might have influence on other projects for the same client.</li>
</ul>
<p>People working in Web agencies are not permanent. They just pass, but the client has a longer duration and then focusing the archiving around the client is usually better than creating tens of small mailing-lists for short period of time.</p>
<h3 id="discussions_and_scope">Discussions and scope</h3>
<p>Some discussions, if not well managed by the person who initiated it, can wildly drift from their initial goal. We had an example this week on a simple idea which was posted and the threads had a few forks raising issues. The mail is a good place for discussing but not for building up the knowledge of this discussion. In this case a wiki is a lot more effective. </p>
<ol>
<li>Send a message on the list with your scope and expectations</li>
<li>Discuss it on the list (asynchronous wins here)</li>
<li>Compile step by step the results of the discussions on a wiki</li>
</ol>
<p><strong>Careful</strong>: The people on the list have to be aware of this practice. If not, you create a misunderstanding on how to handle it. This starts with the fact you should make it clear that people except if they are in the <code>To:</code> or <code>Cc:</code> have the freedom to not read the messages.</p>
<h2 id="wiki_refactoring_and_techno_manifesto">Wiki refactoring and Techno Manifesto</h2>
<p>One of our working tool inside Pheromone is a wiki. It helps us document certain things such as technologies, minutes of meetings, definition of employee roles, and sometimes draft client proposals. This week, I was writing the Technology Manifesto to give a reference for developers and the rest of the Team what are the main orientations of Pheromone.</p>
<blockquote>
<p>En coordination avec la mission de Pheromone, le manifeste technologique définit les grandes orientations de l&#8217;agence. Le porteur du Manifesto est le CTO de l&#8217;agence. Le directeur du développement</p>
<ul>
<li>Technologies OpenSource</li>
<li>Respect des normes Web et ouvertes</li>
<li>Promouvoir les données ouvertes tout en considérant les règles de vie privée des utilisateurs de nos services.</li>
<li>Respect de l&#8217;accès pour tous</li>
<li>Services et APIs respectant HTTP REST</li>
<li>Services multiplateformes (mobile, desktop, etc.)</li>
</ul>
</blockquote>
<h2 id="directeur_directrice_du_dveloppement">Directeur/Directrice du développement</h2>
<p>We have a job proposal for a development director at Pheromone. I encourage specifically women to apply. Note that the preference will be given to the best candidate, man or woman. But I found it quite hard to recruit women in the technological area. I would love for example to recruit a very good Web API (REST) woman developper. </p>
<h2 id="w3c_workshop_on_privacy_for_advanced_web_apis">W3C Workshop on Privacy for Advanced Web APIs</h2>
<p>Last week I was participating to the <a href="http://www.w3.org/2010/api-privacy-ws/">W3C Workshop on Privacy for Advanced Web APIs</a>. You can read the rough minutes of the Workshop for <a href="http://www.w3.org/2010/07/12-privacy-minutes">Monday 12 July</a> and <a href="http://www.w3.org/2010/07/13-privacy-minutes">Tuesday 13 July</a>. A report will be published in the future. I will probably write an article later on about some findings of the workshop.</p>
<h2 id="research_on_portals">Research on Portals</h2>
<p>In the last two weeks, we surveyed Web portals through the world across languages and cultures. It helped us to figure out very interesting findings and some very specific elements depending on culture, techniques, etc. Basically, they all look the same and give a strong feeling of &#8220;Déjà Vu&#8221;, but there exists a few of them with very interesting features. </p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/07/19/so-last-week-communication-tools-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Directeur du Développement chez Phéromone</title>
		<link>http://lab.pheromone.ca/2010/07/16/directeur-dev/</link>
		<comments>http://lab.pheromone.ca/2010/07/16/directeur-dev/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 16:10:39 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Organisation du travail]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=489</guid>
		<description><![CDATA[Hier, Pheromone a publié une annonce d&#8217;emploi pour le poste de directeur du développement. J&#8217;ai relancé l&#8217;annonce sur twitter : You love the Web? &#38; you want to take over my job. Be the Dev Director at @AgencePheromone http://bit.ly/dtl7Pd #job #montreal Juste après Jonathan Bélisle a réagi en posant une bonne question que l&#8217;annonce ne [...]]]></description>
			<content:encoded><![CDATA[<p>Hier, Pheromone a publié une <a href="http://www.pheromone.ca/propos/emploi/directeur-du-developpement-technologique?flash=non">annonce d&#8217;emploi</a> pour le <strong>poste de directeur du développement</strong>. J&#8217;ai relancé l&#8217;<a href="http://twitter.com/karlpro/status/18625310511">annonce</a> sur twitter :</p>
<blockquote cite="http://twitter.com/karlpro/status/18625310511"><p>You love the Web? &amp; you want to take over my job. Be the Dev Director at <a href="http://twitter.com/AgencePheromone">@AgencePheromone</a> <a href="http://bit.ly/dtl7Pd">http://bit.ly/dtl7Pd</a> <a href="http://search.twitter.com/search?q=%23job">#job</a> <a href="http://search.twitter.com/search?q=%23montreal">#montreal</a></p>
</blockquote>
<p>Juste après Jonathan Bélisle a réagi en posant une <a href="http://twitter.com/Wuxia/status/18625399397">bonne question</a> que l&#8217;annonce ne donne pas.</p>
<blockquote cite="http://twitter.com/Wuxia/status/18625399397"><p>What are the challenges / innovation opportunities ?</p>
</blockquote>
<p>Clarification : Je ne quitte pas Phéromone. Mon rôle évolue pour travailler en coopération avec <a href="http://www.pheromone.ca/propos/equipe/olivier-thereaux?flash=non">Olivier Théreaux</a> sur le pôle technologique des projets en amont de la réalisation.</p>
<p>J&#8217;ai commencé chez Pheromone en mars 2009 avec comme objectif de créer une dynamique d&#8217;équipe entre les développeurs. Comme toute agence riche en relations humaines, les interactions font évoluer la mission initiale. Gérer une équipe de 20/25 personnes est difficile à réaliser en même temps que de définir la vision technologique de l&#8217;entreprise. Je préfère me concentrer sur la seconde partie où j&#8217;ai plus de plaisir que la gestion. L&#8217;équipe de développement se structure en petits équipes, mais cela pourrait être appelé à évoluer en fonction de la personne recrutée. Les technologies qui sont utilisées chez Pheromone sont PHP, Ruby et C++. Le C++ fait partie de systèmes développés pour nos anciens projets. Nous ne faisons plus de nouveaux développements en C++, sauf pour améliorer les anciens programmes toujours utilisés dans le cadre des enjeux de performance.</p>
<p>Les performances sont un des enjeux majeurs pour deux de nos clients&nbsp;: <a href="http://viarail.ca/">ViaRail</a> et RDS (site <a href="http://rds.ca/">RDS</a> et <a href="http://legrandclub.rds.ca/" title="LE GRAND CLUB - Accueil">Grand Club</a>). Ces deux sites Web sont extrêmement populaires avec des pics de trafic immenses mettant à rude épreuve l&#8217;architecture technologique logicielle et Web. Parfois une décision UX peut avoir un impact énorme sur la performance du site. Comprendre les enjeux de développement pour être le relai des enjeux des développeurs est alors important. Une excellente connaissance de l&#8217;<a href="http://www.w3.org/TR/webarch/" title="Architecture of the World Wide Web, Volume One">architecture Web</a> permet d&#8217;orienter les développeurs à travers les enjeux de cache, de proxys, les défauts des implémentations.</p>
<p>L&#8217;<a href="http://www.w3.org/WAI/bcase/Overview" title="Developing a Web Accessibility Business Case for Your Organization: Overview">accessibilité Web</a> est une <a href="http://lab.pheromone.ca/2010/06/28/laccessibilite-agile-sur-openweb/" title="Le Lab / Pheromone &raquo; L&#8217;accessibilité agile sur OpenWeb">partie intégrante</a> de plus en plus de projets Web que nous réalisons. Elle est un requis pour certains clients. Elle est essentielle dans les stratégies d&#8217;accès multi-plateformes.</p>
<p><a href="http://www.pheromone.ca/propos/equipe/olivier-thereaux?flash=non">Olivier</a> en coopération avec le reste de l&#8217;équipe a initié un virage de l&#8217;agence vers le <a href="http://lab.pheromone.ca/2009/08/26/the-death-of-the-mobile-website/">mobile</a>. Cela ne veut pas dire que nous réalisons des applications seulement sur Mobile mais des applications qui sont utilisables sur Mobile en même temps que Desktop. Cela a des conséquences pour les types de technologies qu&#8217;un développeur doit posséder dans son bagage. HTML5 (toujours en cours de développement) et CSS deviennent des parties fondamentales de cette orientation.</p>
<p>L&#8217;open Source est une pierre angulaire des systèmes avec lesquels nous travaillons que ce soit Ruby On Rails pour le Grand Club, Elgg pour le Fil, PhoneGap pour les applications mobile, etc. Nous poussons aussi dans nos projet l&#8217;open data, mais j&#8217;en parlerai plus longuement prochainement.</p>
<p>Bien sûr s&#8217;il y a des questions plus précises, j&#8217;y répondrais.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/07/16/directeur-dev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So Last Week, the tentative edition</title>
		<link>http://lab.pheromone.ca/2010/07/05/so-last-week-the-tentative-edition/</link>
		<comments>http://lab.pheromone.ca/2010/07/05/so-last-week-the-tentative-edition/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 14:25:56 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[So Last Week]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[Phéromone]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[so last week]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=486</guid>
		<description><![CDATA[Some Design agencies are publishing a little summary of their activities during the last week. Among a few of them, there are Berg, Stamen (is trying). It is an interesting idea which requires a strong commitment and needs to be done quickly to not be a burden. The ideal way of doing it would be on [...]]]></description>
			<content:encoded><![CDATA[<p>Some Design agencies are publishing a little summary of their activities during the last week. Among a few of them, there are <a href="http://berglondon.com/blog/tag/weeknotes/">Berg</a>, <a href="http://content.stamen.com/hq2_week11">Stamen</a> (is trying). It is an interesting idea which requires a strong commitment and needs to be done quickly to not be a burden. The ideal way of doing it would be on Friday evenings. It might be difficult, Friday evenings are sometimes a run for closing some projects, or we might be tired with no energy left. </p>
<p>Another issue is that these agencies are small. It&#8217;s a lot easier to write a summary with a human touch. Pheromone has around 60 employees. This blog has been opened to talk about what matters to individual people in Pheromone, not a place for PR speak (which I have a tad difficulty with).  I encourage Pherotizens to write their own. So I&#8217;ll try to keep it close to what happened around me last week in the agency and being careful about things which are confidential. Let&#8217;s start with <strong>So Last Week</strong> in memory of <a href="http://www.celinecelines.com/">Celine</a> who&#8217;s doing cool UX stuff in Montreal.</p>
<ul>
<li><a href="http://lab.pheromone.ca/2010/07/02/data-love/">Sharing data</a> is a growing question in Pheromone. Pheromone is working for clients. Then the agency is not working with its own data. There is a fear of sharing data very similar to the fear of sharing information at the beginning of the Web. Having a good business case for sharing data is something, I start to think about.</li>
<li><a href="http://www.rds.ca/">RDS</a> has created <a href="http://legrandclub.rds.ca/">Le Grand Club</a>, a social network around sport (mostly hockey). Each member has a profile page which gives information about its community. RDS asked us to expose these data in a more machine processable way. <a href="http://www.foaf-project.org/">FOAF</a> is exactly the right way of doing that. Rounds of implementations and small fixes were done, but nothing is better than going through <a href="http://swig.xmlhack.com/">#swig</a> channel to test it. I received feedbacks from <a href="http://danbri.org/words/">Dan Brickley</a> and <a href="http://tobyinkster.co.uk/">Toby Inkster</a>.</li>
<li>Big coordination work on in-house mobile app for Montrealers which you should be getting news this week. Stay tuned.</li>
<li>The week was short because of Canada Day. Less people at the agency on Friday, and it was easier to work on some stuff.</li>
<li>My <a href="http://www.w3.org/2010/api-privacy-ws/papers/privacy-ws-3">paper on Opacity</a> has been accepted at the W3C Workshop on Privacy for Advanced Web APIs in London, UK. I have prepared my trip to go there. I still have to write a blog post about it to give more details. But in the meantime, I discovered a talk closely related to my own notion of opacity: <a href="http://www.slideshare.net/padday/the-real-life-social-network-v2">The Real Life Social Network</a> by <a href="http://www.thinkoutsidein.com/blog/">Paul Adams</a>. It is a must read.</li>
<li>I have been doing an accessibility review of one of our client sites and I relate strongly with what Elie Sloïm explained in his OpenWeb article about <a href="http://openweb.eu.org/articles/accessibilite_agile">l&#8217;accessibilité agile</a>. Accessibility reviews are usually too late and gives a lot of frustration to the project manager, the developers, and most of the time the client. It is a lot better to think with UX and designers accessibility upfront at the beginning of the project <strong>but</strong> this requires a full control of the project at the beginning <strong>or</strong> that the work being done on concepts and designs are &laquo;&nbsp;accessibility proofed&nbsp;&raquo;, in the case for example of work between agencies with a client.</li>
</ul>
<p>Ok, let&#8217;s call it a try. We will see what happens for this week if I continue the So Last Week.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/07/05/so-last-week-the-tentative-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data Love Step By Step</title>
		<link>http://lab.pheromone.ca/2010/07/02/data-love/</link>
		<comments>http://lab.pheromone.ca/2010/07/02/data-love/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 13:30:01 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Recherche]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[graphe]]></category>
		<category><![CDATA[linked data]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[rds]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[web semantique]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=479</guid>
		<description><![CDATA[We often forget about the very basic steps for creating a project. There are no small achievements, each step in a process is rewarding by itself and help to build trust in what you are doing. I was reading again the section on Linked Data from Tim Berners-Lee&#8216;s Design Issues. Linked Data is part of [...]]]></description>
			<content:encoded><![CDATA[<p>We often forget about the very basic steps for creating a project. There are no small achievements, each step in a process is rewarding by itself and help to build trust in what you are doing. I was reading again the section on <a href="http://www.w3.org/DesignIssues/LinkedData">Linked Data</a> from <a href="http://www.w3.org/People/Berners-Lee/">Tim Berners-Lee</a>&#8216;s <a href="http://www.w3.org/DesignIssues/">Design Issues</a>.</p>
<p>Linked Data is part of the process of publishing data in a way that it will be useful for anyone else. It is all about creating <a href="http://blogs.hbr.org/haque/2009/09/is_your_business_innovative_or.html" title="The Awesomeness Manifesto - Umair Haque - Harvard Business Review">awesome</a> stuff. Often, the task seems daunting for organizations or individuals, when it is just a question of baby steps. In the    <a href='http://www.w3.org/DesignIssues/LinkedData'>Linked Data</a> page, there are <a href="http://inkdroid.org/journal/2010/06/04/the-5-stars-of-open-linked-data/ ">5 steps for starting publishing</a> data in a way that would be useful for everyone else.</p>
<blockquote cite="http://inkdroid.org/journal/2010/06/04/the-5-stars-of-open-linked-data/ ">
<ul>
<li>★     make your stuff available on the web (whatever format)</li>
<li>★★    make it available as structured data (e.g. excel instead of image scan of a table)</li>
<li>★★★   non-proprietary format (e.g. csv instead of excel)</li>
<li>★★★★  use URLs to identify things, so that people can point at your stuff</li>
<li>★★★★★ link your data to other people’s data to provide context</li>
</ul>
</blockquote>
<p>One of the big benefits of digital assets is that the cost of putting online data and modifying them is lower than in the material world (an online phonebook can be updated in real time and then evolve). One of the big benefits of Linked Data is URIs for piece of data or concepts on this data. Extensibility comes for free because data are expressed with a <a href="http://legrandclub.rds.ca/api/profils/661780/friends.rdf">graph</a> (not like relational databases).</p>
<p>Small steps are cool and full of awesome. Sharing gives you plenty of love.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/07/02/data-love/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>L&#8217;accessibilité agile sur OpenWeb</title>
		<link>http://lab.pheromone.ca/2010/06/28/laccessibilite-agile-sur-openweb/</link>
		<comments>http://lab.pheromone.ca/2010/06/28/laccessibilite-agile-sur-openweb/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 19:08:12 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Affaires]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[accessibilité]]></category>
		<category><![CDATA[openweb]]></category>
		<category><![CDATA[Phéromone]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[wai]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=453</guid>
		<description><![CDATA[Elie Sloïm vient de publier un article sur OpenWeb à propos de L&#8217;accessibilité agile: L’audit approfondi est une étape fréquente dans la démarche d’amélioration de l’accessibilité d’un site. Une telle démarche débute fréquemment par la recherche d’un état des lieux. Hélas, la production d’un rapport d’audit approfondi de l’accessibilité prend du temps et coûte de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.temesis.com/a-propos/equipe-temesis/elie-sloim-directeur.html">Elie Sloïm</a> vient de publier un article sur <a href="http://openweb.eu.org/">OpenWeb</a> à propos de <a href='http://openweb.eu.org/articles/accessibilite_agile'>L&#8217;accessibilité agile</a>: </p>
<blockquote cite="http://openweb.eu.org/articles/accessibilite_agile"><p>L’audit approfondi est une étape fréquente dans la démarche d’amélioration de l’accessibilité d’un site. Une telle démarche débute fréquemment par la recherche d’un état des lieux. Hélas, la production d’un rapport d’audit approfondi de l’accessibilité prend du temps et coûte de l’argent. Dans certains cas, cette approche se justifie parfaitement, mais dans d’autres que nous aborderons dans cet article, ce n’est pas toujours la meilleure solution. Il est peut-être temps d’inventer de nouvelles méthodes pour améliorer l’accessibilité des sites Internet.</p>
</blockquote>
<p>L&#8217;accessibilité peut éventuellement se traiter en bout de chaîne du processus sur un site simple, mais malheureusement bien trop souvent c&#8217;est trop tard. Développer un site Web accessible peut demander des modifications du choix du CMS, définir des choix de design particulier et des expériences UX particulières. L&#8217;article de Elie s&#8217;inscrit dans le domaine plus large de la compréhension du Web. Il y a, au moins, deux enjeux principaux pour les agences Web à résoudre :</p>
<ul>
<li>L&#8217;éducation du client sur les enjeux du Web</li>
<li>L&#8217;éducation de l&#8217;équipe de conception/UX (création) du site.</li>
</ul>
<p>L&#8217;équipe de développement a rarement le contrôle sur cette partie du site, si ce n&#8217;est d&#8217;implémenter les choix des concepteurs du site. Si les concepts sont corrects du point de vue de l&#8217;architecture Web, de la stratégie de contenu, de l&#8217;accessibilité, de la diversité des plateformes, le développeur aura moins d&#8217;enjeux pour trouver les solutions adéquates. C&#8217;est trop rarement le cas.</p>
<p>Une de mes grandes réalisations cette année est que toute évangélisation à propos du Web est vaine si elle ne prend pas en considération les décideurs d&#8217;affaires ainsi que les départements créatifs.</p>
<h3>disclaimers</h3>
<p><strong>Note 1</strong> : je participe comme rédacteur à l&#8217;équipe de OpenWeb et j&#8217;ai publié un <a href="http://openweb.eu.org/articles/fructifions_donnees">article sur RDFa</a>.</p>
<p><strong>Note 2</strong> : Pheromone a commandé un rapport d&#8217;accessibilité pour un client à la société <a href="http://temesis.com/">Temesis</a> de Elie Sloïm.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/06/28/laccessibilite-agile-sur-openweb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agrégation créative</title>
		<link>http://lab.pheromone.ca/2010/06/10/agregation-creative/</link>
		<comments>http://lab.pheromone.ca/2010/06/10/agregation-creative/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 18:46:36 +0000</pubDate>
		<dc:creator>cguy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agence]]></category>
		<category><![CDATA[créativité]]></category>
		<category><![CDATA[équipe]]></category>
		<category><![CDATA[Phéromone]]></category>
		<category><![CDATA[projet]]></category>
		<category><![CDATA[twiki]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=439</guid>
		<description><![CDATA[À la suite de la présentation de Florin (CréaLunch &#8211; 2010-06-10) qui se voulait un appel à la créativité, je retiens deux axes: Le développement d&#8217;un projet créatif qui présentera les capacités créatives de Phéromone L&#8217;agrégation de la créativité des individus qui composent l&#8217;équipe Le premier point est une idée (I have an idea &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>À la suite de la présentation de Florin (CréaLunch &#8211; 2010-06-10) qui se voulait un appel à la créativité, je retiens deux axes:</p>
<ol>
<li>Le développement d&#8217;un projet créatif qui présentera les capacités créatives de Phéromone</li>
<li>L&#8217;agrégation de la créativité des individus qui composent l&#8217;équipe</li>
</ol>
<p>Le premier point est une idée (<em>I have an idea</em> &#8211; Florin) qui doit trouver son écho dans un projet (<em>I have a solution</em> &#8211; cguy) pour réellement voir le jour. Je me propose donc de structurer l&#8217;idée et en faire un projet. <strong>Levez la main!</strong></p>
<p>Le deuxième est un sentiment que je veux partager. Je trouve absolument désolant, triste, que la créativité des individus passe souvent inaperçue au sein de l&#8217;équipe. Tout le monde ici est créatif, à différents degrés.</p>
<p>Je partage personnellement une passion dilettante pour la photographie avec mes confrères Phil Essing et, jusqu&#8217;à récemment, Martin V. Je sais qu&#8217;Olivier et Karl font leurs propres expériences en photographie; Olivier, notamment, avec des équipements antiques et &#8211; hérésie moderne! &#8211; de la pellicule. Nous avons eu le bonheur de constater les talents de Florin à différentes occasions. Et les autres?</p>
<p>Mais saviez-vous que Tom (et Louis T.) fait des montages fantastiques avec des Lego et que ses animations en StopMotion rivalisent en qualité avec beaucoup de projets que j&#8217;ai vus sur le Net? Que Jon peut improviser un rap en moins de temps qu&#8217;il faut pour dire <em>give me the f*** mic</em>! Que nous avons une masse impressionnante de musiciens? Que j&#8217;ai lu des textes d&#8217;autres confrères qui m&#8217;ont arraché des larmes ou fait rire aux éclats, comme pour les talents de conteur d&#8217;Alexandre?</p>
<p>Nous avons tout ce qu&#8217;il faut pour être une véritable pépinière créative. Mais l&#8217;arbre sait-il qu&#8217;il est forêt avec le concours de ses voisins? Sait-il encore qu&#8217;il peut devenir violon ou charpente entre des mains habiles?</p>
<p>Moi, pour ma part, je fais comme Paul Piché:</p>
<blockquote><p>Moi je raconte des histoires<br />
Des histoires que vous m&#8217;avez contées<br />
Je les reconte à ma manière<br />
Mais tout seul, je ne peux pas les inventer.</p></blockquote>
<p>Alors, afin d&#8217;agréger les talents de tous, je propose un répertoire des créations personnelles de tous. Photos, textes, peintures, musique, idées, créations multimédia&#8230;</p>
<p>Si vous n&#8217;avez pas de support numérique pour vos créations, le Lab est un bon endroit pour commencer. Si vous n&#8217;avez pas votre accès au blog, Karl est la personne-ressource.</p>
<p>On trouve déjà dans le wiki de l&#8217;agence une page qui fait office de répertoire (dans la section &#8216;La plage&#8217;).</p>
<p>Si vous avez besoin d&#8217;aide avec le wiki, je suis la personne-ressource. Karl et Olivier peuvent prendre la relève en mon absence.</p>
<p>Si vous avez besoin d&#8217;aide dans un projet, la liste &#8216;équipe&#8217; peut servir à semer l&#8217;idée, mais le Lab demeure le meilleur endroit pour consigner tous les projets.</p>
<p>Au plaisir de vous redécouvrir.</p>
<p>cguy</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/06/10/agregation-creative/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIP Marc-Aurèle</title>
		<link>http://lab.pheromone.ca/2010/06/07/rip-marc-aurele/</link>
		<comments>http://lab.pheromone.ca/2010/06/07/rip-marc-aurele/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 21:29:18 +0000</pubDate>
		<dc:creator>desrosiers</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=420</guid>
		<description><![CDATA[Un collègue très chère à l&#8217;équipe Phéromone est décédé le 28 mai dernier.  Son nom était Marc-Aurèle Laquerre, il a été victime d&#8217;une tumeur au cerveau à l&#8217;age de 25 ans. J’ai eu la chance de travailler avec Marc-Aurèle depuis octobre 2008 en tant que son chef d’équipe. Mon premier entretien avec Marc-Aurèle s’agissait d’une [...]]]></description>
			<content:encoded><![CDATA[<p>Un collègue très chère à l&#8217;équipe Phéromone est décédé le 28 mai dernier.  Son nom était Marc-Aurèle Laquerre, il a été victime d&#8217;une tumeur au cerveau à l&#8217;age de 25 ans.</p>
<p>J’ai eu la chance de travailler avec Marc-Aurèle depuis octobre 2008 en tant que son chef d’équipe.</p>
<p>Mon premier entretien avec Marc-Aurèle s’agissait d’une entrevue pour le poste en administration des systèmes chez Phéromone.</p>
<p>Dès la première rencontre, j’ai noté que Marc-Aurèle apporterait beaucoup à notre équipe.  Il était très talentueux et les connaissances qu’il avait cumulées étaient fort impressionnantes pour un jeune de 24 ans.<br />
Marc-Aurèle était apprécié par tous les employé(e)s.  Dans son travail, il devait souvent interagir avec les autres pour leur apporter du support technique, mais aussi du support moral dans certains cas.  Il aimait son travail et le faisait bien.</p>
<p style="text-align: center;"><a href="http://lab.pheromone.ca/wp-content/uploads/2010/06/MAV2743.jpg"><img class="size-medium wp-image-422   alignleft" title="Échange de cadeau,  noël 2008" src="http://lab.pheromone.ca/wp-content/uploads/2010/06/MAV2743-300x200.jpg" alt="" width="300" height="200" /></a><a href="http://lab.pheromone.ca/wp-content/uploads/2010/06/Noel_2009_MA3.jpg"></a></p>
<p style="text-align: center;"><a href="http://lab.pheromone.ca/wp-content/uploads/2010/06/Noel_2009_MA3.jpg"><img class="size-medium wp-image-424 aligncenter" title="Yves et Marc-Aurèle  - noël 2009" src="http://lab.pheromone.ca/wp-content/uploads/2010/06/Noel_2009_MA3-300x200.jpg" alt="" width="300" height="200" /></a></p>
<p style="text-align: center;"><a href="http://lab.pheromone.ca/wp-content/uploads/2010/06/MAV2792.jpg"><img class="size-medium wp-image-423 aligncenter" title="Noël 2008" src="http://lab.pheromone.ca/wp-content/uploads/2010/06/MAV2792-200x300.jpg" alt="" width="200" height="300" /></a></p>
<p>Lorsque la maladie s’est accaparée de lui, Marc-Aurèle a fait rayonner des qualités supplémentaires fortes impressionnantes;  Après une longue et dure convalescence, il est revenu travailler avec nous et  nous avons tous témoigné sa persévérance son courage et son désir de vivre.  Il est resté positif tout au long de sa bataille.</p>
<p>Voici quelques anecdotes que nous voulons partager avec vous en mémoire de Marc-Aurèle :</p>
<ul>
<li>Lors la fête de Noël du bureau, nous avons effectué un gala Phérostar afin de remettre des prix amusant à certains employé(e)s.  Marc-Aurèle a reçu le prix du « Pirate de l’année » et je crois que ce soir là, il a vraiment senti l’appui et le support chaleureux que tous ses collègues avaient pour lui.  On peut percevoir Marc-Aurèle recevant le trophé sur la photo suivante:<a href="http://lab.pheromone.ca/wp-content/uploads/2010/06/Noel_2009_MA2.jpg"><img class="size-medium wp-image-421 alignnone" title="Pirate de l'année 2009" src="http://lab.pheromone.ca/wp-content/uploads/2010/06/Noel_2009_MA2-300x207.jpg" alt="" width="300" height="207" /></a></li>
</ul>
<ul>
<li>Yves m’a raconté que lorsque Marc-Aurèle faisait de la physiothérapie, il travaillait surtout à renfoncer son bras droit qui était plus fort étant donné que son côté gauche l’était moins.  Cela lui a servi un jour lorsqu’il a manqué d’équilibre dans la cuisine : Il a pu prévenir sa chute en s’agrippant sur le comptoir avec son bras droite.  Ça été fort impressionnant et c’est remarquable comment Marc-Aurèle se connaissait bien.</li>
</ul>
<ul>
<li>Lors d’un entretien avec un collègue (Chrystian), Marc-Aurèle lui a confié comment il était heureux; il a fait une steppette avec sa canne et a dit avec un sourire: &laquo;&nbsp;Check mon cguy, t&#8217;es pas capable d&#8217;en faire une pareille!&nbsp;&raquo; et mon collègue lui a répondu en boutade: &laquo;&nbsp;Non Marc-Aurèle, il y a bien des affaires que je ne suis pas capable de faire comme toi&#8230;&nbsp;&raquo;</li>
</ul>
<ul>
<li>Nous avons confié plusieurs projets à Marc-Aurèle pour lesquels il n’avait qu’une seule main et qu’un œil pour les exécuter.  L’un d’entre eux nécessitait de saisir plus de 500 courriels dans un système de liste de distributions.  Nous ne nous attendions pas à ce qu’il fasse la saisie des données, mais à notre grande surprise, il l’a fait sans même nous demander de l’aide.  Malgré sa maladie, Marc-Aurèle était très lucide et je sais qu’il faisait des efforts pour se surpasser quand il était parmi nous.</li>
</ul>
<p>Merci à ses parents, son frère Alexandre, sa conjointe Sophie et tous les autres qui l&#8217;ont accompagnés dans ses moments difficiles.  Marc-Aurèle est et sera à tout jamais une source d’inspiration pour nous tous.  Nous sommes reconnaissants d’avoir partagé une partie de sa vie avec lui.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/06/07/rip-marc-aurele/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A comparison of performance, UX and dev-friendliness of various webfonts services</title>
		<link>http://lab.pheromone.ca/2010/06/02/comparison-webfont-services/</link>
		<comments>http://lab.pheromone.ca/2010/06/02/comparison-webfont-services/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 21:04:45 +0000</pubDate>
		<dc:creator>Olivier Théreaux</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[UX – Experience Utilisateur]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[webfonts]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=393</guid>
		<description><![CDATA[Recent technological progress has made the life of designers a little less miserable: with @font-face in CSS, Web Typography is no longer limited to a handful of choices. The web is not print, however, and the embedding of nice typography seems to come with a few other issues: the first few site prototypes on which [...]]]></description>
			<content:encoded><![CDATA[<p>Recent technological progress has made the life of designers a little less miserable: with @font-face in CSS, Web Typography is no longer limited to a handful of choices. </p>
<p>The web is not print, however, and the embedding of nice typography seems to come with a few other issues: the first few site prototypes on which we worked with @font-face tended to be plagued with performance problems – a really big deal in our case, given that we manage high-traffic sites. The User experience of the pages we had tested was sub-par: slow loading times, blocks of text “jumping” after the actual font gets loaded, etc. </p>
<p>And yet, webfont services are popping like mushrooms and seem rather popular. I decided to give four of them a look, to see how good – and how fast – their service was. </p>
<p>My <a href="http://ot.zoy.org/2010/06/fontface">test page</a>, based on <a href="http://www.fontsquirrel.com/webfont_comparison/">fontsquirrel&#8217;s webfont comparison page</a> loads the fonts from the 4 providers (unfortunately, fontdeck does not seem to offer the Cantarell fount, a common denominator between all other three services, hence the difference). The rest of my testing consists mostly of analysis of speed, HTTP headers and other tinkering through <a href="http://getfirebug.com/">firebug</a>.</p>
<table>
<tr>
<th title="Name of the service">Service</th>
<th title="Number of fonts available">Fonts</th>
<th title="Does this service require registration?">Need Login</th>
<th title="How does it work?">Approach</th>
<th title="Does the service let you download the fonts and server them from your own server?">Download</th>
<th title="Does the service offer hosted, online webfonts?">Hosting</th>
</tr>
<tr class="odd">
<td><a href="http://code.google.com/webfonts">Google Font Directory</a></td>
<td>18 (plus variants)</td>
<td>No. Fonts are Open-Source, too!</td>
<td>CSS</td>
<td>No (Open source fonts could be downloaded, but no tool or instruction given)</td>
<td>Yes</td>
</tr>
<tr>
<td><a href="http://www.fontsquirrel.com/" title="Font Squirrel | Handpicked free fonts for graphic designers with commercial-use licenses.">Font Squirrel</a></td>
<td>635 (<em>including</em> variants)</td>
<td>No. Free for personal use, some are Open Source</td>
<td>CSS</td>
<td>Yes</td>
<td>No</td>
</tr>
<tr class="odd">
<td><a href="http://fontdeck.com/" title="Fontdeck: Real fonts for your website">Font Deck</a></td>
<td>81 (plus variants)</td>
<td>Yes. Includes a few free fonts.</td>
<td>CSS</td>
<td>No</td>
<td>Yes</td>
</tr>
<tr>
<td><a href="http://typekit.com/fonts" title="Font Libraries | Typekit">Typekit</a></td>
<td>153 (plus variants)</td>
<td>Yes. Includes a few free fonts.</td>
<td>Javascript</td>
<td>No</td>
<td>Yes</td>
</tr>
</table>
<h3>Google Font Directory</h3>
<p><a href="http://code.google.com/webfonts">Google&#8217;s webfont solution</a> is &laquo;&nbsp;view source&nbsp;&raquo; friendly: one can copy-paste from another site and get the fonts working immediately. Their offering is still rather limited, but their site is no-nonsense, immediately usable, and does not require any signup, payment – indeed all the fonts provided are Open Source (distributed under <a href="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&amp;id=OFL">Open Font License</a>).</p>
<p>Google&#8217;s service is also pretty good with caching – their servers appropriately respond with a 304 not modified open a request, and they send proper Expires: and Last-Modified: HTTP Headers.</p>
<h3>Font Deck </h3>
<p>Setup with <a href="http://fontdeck.com/">Fontdeck</a> is relatively easy: one needs to register on their site, choose a few fonts, and get a piece of HTML and CSS code to use. While I ran into a silly UX issue and couldn&#8217;t find the code samples at some points (a case of bad whitespace and beyond-the-fold design), using the font deck web site is rather pleasant. </p>
<p>However, after setting up my test page by following all their instructions, I never managed to get the fonts to appear: the URIs given to me in the sample systematically resulted in “403 forbidden” responses. I could not test the performance of this solution yet.</p>
<h3>Font squirrel</h3>
<p>Font Squirrel is clearly different from the rest. Similar to the many foundry catalogs available for designers, it includes a really simple <a href="http://www.fontsquirrel.com/fontface/generator">wizard to create a font-face kit</a> from any (downloaded) font. Very geek friendly. This is also the only service that caters to site admins who want to host their fonts themselves, and it does not provide a hosted font-face service.</p>
<h3>Typekit</h3>
<p>One of the first service of the genre, <a href="http://typekit.com/fonts">Typekit</a> also requires you to register yourself and your site. Javascript-based. Really similar to font-deck (which I believe it predates), Typekit will let you browse fonts for your site, and will provide a javascript snippet to add to pages to embed the fonts.</p>
<p>However, after setting up my test page by following all their instructions, I had trouble getting the fonts to appear: the URIs given to me in the sample systematically resulted in a “404 Not Found” response. It took me a while to understand (DOH!) that I had to choose fonts, add them to my site&#8217;s collection THEN publish in order for the system to work. My bad, their UX is really decent and I should really have understood this faster. </p>
<p>This solution is actually quite nice, as it allows me to choose which weight and style I want to include in my kit &#8211; which can be a big win for file weight, and thus performance.</p>
<p>Caching-wise, Typekit also behaves nicely, with the same combination of “304 Not Modified” response, Expires: and Cache-Control: HTTP Headers seen in Google&#8217;s service. </p>
<p>Their caching policy is much less aggressive than Google&#8217;s, however: while Google sends a cache directive for 14 days (Cache-Control: private, max-age=1209600), Typekit sends one for 300 seconds. I assume the reason for this difference is that with Google, you link to each individual font (which change very rarely), while with Typekit you link to your kit, which you may tinker with a lot. In any case, a cache policy of 300 seconds (5 minutes) is rather likely to cover the average visit, so this short timeout should hopefully not have too much of an impact on your visitor&#8217;s experience. </p>
<p><img alt="Typekit logo" src="http://use.typekit.com/badges/default.gif" title="Typekit logo" class="alignleft" width="62" height="25" /> One thing I&#8217;m not a big fan of: the script Typekit gives you doesn&#8217;t just lets you embed fonts, it also adds a little Typekit logo on all your pages. <em>Not cool</em>. I assume that <a href="https://typekit.com/plans">paid customers</a> don&#8217;t get the pesky logo, but regardless, if a service is going to advertise itself on my site, I&#8217;d like to know in advance&#8230;</p>
<h3>Anything Else?</h3>
<p>Any other service you would like to see tested here? Any other indicator of performance or cost-effectiveness you would like to see in the table? Tell us in the comments and we&#8217;ll try to keep this page up to date.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/06/02/comparison-webfont-services/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Astuce : Groupe intelligent avec l&#8217;addressbook (MacOSX)</title>
		<link>http://lab.pheromone.ca/2010/05/27/smart-group-addressbook/</link>
		<comments>http://lab.pheromone.ca/2010/05/27/smart-group-addressbook/#comments</comments>
		<pubDate>Thu, 27 May 2010 18:30:24 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[addressbook]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[quicktip]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=387</guid>
		<description><![CDATA[Il est très souvent pénible de se souvenir de toutes les personnes appartenant à un groupe particulier avant d&#8217;envoyer un message. Le carnet d&#8217;adresses du mac est souvent un outil sous-utilisé. Vous pouvez pourtant créer des groupes intelligents en fonction de catégories précises du carnet d&#8217;adresses (la société, le nom, les pays, etc.) Les fiches [...]]]></description>
			<content:encoded><![CDATA[<p>Il est très souvent pénible de se souvenir de toutes les personnes appartenant à un groupe particulier avant d&#8217;envoyer un message. Le carnet d&#8217;adresses du mac est souvent un outil sous-utilisé. </p>
<p>Vous pouvez pourtant créer des groupes intelligents en fonction de catégories précises du carnet d&#8217;adresses (la société, le nom, les pays, etc.) </p>
<p>Les fiches contiennent une section libre appelée Remarques. Dans cette section, vous pouvez entrer du texte. Imaginez que vous réserviez cette section pour des mots clés. Par exemple, nous avons Paul Dupont et John Smith, deux développeurs dans notre carnet d&#8217;adresses, l&#8217;un développe en ruby mais les deux développent en python.</p>
<p>Je crée un filtre qui sélectionne toutes les fiches dont le champs remarques contient le mot clé python.</p>
<a href="http://lab.pheromone.ca/wp-content/uploads/filtre-addressbook.png"><img src="http://lab.pheromone.ca/wp-content/uploads/filtre-addressbook.png" alt="Filtre addressbook" title="filtre-addressbook" /></a>
<p>Une fois le filtre créé un nouveau groupe intelligent « python » apparaît dans la colonne de gauche et permet de retrouver les personnes facilement.</p>
<a href="http://lab.pheromone.ca/wp-content/uploads/listegenerale-addressbook.png"><img src="http://lab.pheromone.ca/wp-content/uploads/listegenerale-addressbook.png" alt="fenêtre principale du carnet d&#039;adresse" title="listegenerale-addressbook"  /></a>
<p>Mieux que cela dans Mail.app, vous pouvez maintenant, taper python et vous obtiendrez automatiquement la liste des personnes qui font du python. Vous pouvez ainsi gérer de nombreux mots clés, le service commercial, les compétences technologiques, les clients sur lesquels les personnes travaillent, etc. Attention cependant à votre nomenclature pour être sûr d&#8217;avoir les bonnes personnes dans la liste d&#8217;envoi.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/05/27/smart-group-addressbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delaying cache clearing with Delayed Jobs</title>
		<link>http://lab.pheromone.ca/2010/05/26/delaying-cache-clearing-with-delayed-jobs-2/</link>
		<comments>http://lab.pheromone.ca/2010/05/26/delaying-cache-clearing-with-delayed-jobs-2/#comments</comments>
		<pubDate>Wed, 26 May 2010 15:06:00 +0000</pubDate>
		<dc:creator>Benoit</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=376</guid>
		<description><![CDATA[Le Grand Club de RDS.ca is a social networking site focussed on sports. it&#8217;s been up since August 30th 2008 and it&#8217;s built in Ruby on Rails. A member can have his own blog and belong to groups. I got a pickle of a problem the other day with group memberships, turns out, everytime a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://legrandclub.rds.ca" target="_blank">Le Grand Club de RDS.ca</a> is a social networking site focussed on sports. it&#8217;s been up since August 30th 2008 and it&#8217;s built in Ruby on Rails. A member can have his own blog and belong to groups.</p>
<p>I got a pickle of a problem the other day with group memberships, turns out, everytime a member was leaving a group, it would take several seconds for the action to complete. Good thing, we have a <a href="http://www.newrelic.com/" target="_blank">NewRelic</a> Gold membership, and with it&#8217;s transaction traces, we were able to pin it down to a specifc method.</p>
<p>Each user has a page that lists the groups the user belongs to, and each group entry displays the number of members in the group. Of course these pages are cached and in the act of leaving or joining the group, the cached pages where deleted. When there are a lot of members in a group, it can take several seconds to delete the cache of each member pages, which is overall a bad user experience.</p>
<p>To solve this problem, I had 2 options available. First, have all fragments cached with an expiry time of, say, 1 hour and delete only the acting user&#8217;s cache when he&#8217;s joining or leaving the group. That is the easy solution. but what&#8217;s the fun in that.</p>
<p>The second approach is to delete the acting user&#8217;s cache immediatly, but and have <a href="http://github.com/tobi/delayed_job" target="_blank">Delayed Jobs</a> handle the deletion of the other members&#8217; caches. This is the approach I&#8217;ll explain here.</p>
<p>First, I need to declare the sweeper in my controller class</p>
<pre class="code">class GroupsMembershipsController &lt; ApplicationController
   ...
   cache_sweeper :groups_memberships_sweeper, :only=&gt;[:create, :update, :destroy]
   ...
end</pre>
<p>Then I create the sweeper class which contains the delayed jobs code.</p>
<pre class="code">class GroupsMembershipsSweeper &lt; ActionController::Caching::Sweeper
  observe GroupMembership

  def after_update(model)
    expire model  unless self.controller.blank?
  end

  def after_destroy(model)
    expire(model) unless self.controller.blank?
  end

  def after_create(model)
    expire(model) unless self.controller.blank?
  end

  protected
  def expire(model)
    # queueing our cache clearing in delayed jobs
    Delayed::Job.enqueue(DelayedGroupMembersSweeper.new(model.group_id)) unless model.group_id.blank?
    expire_group_membership model
  end

  def expire_group_membership(model)
    #... other stuff  ...
  end

  # The class that will be invoked when Delayed jobs performs it's task
  class DelayedGroupMembersSweeper &lt; Struct.new(:group_id)
     include CacheKeys  # helper module that declares functions for creating caching keys
     def perform
       ac = ApplicationController.new
       members = GroupMembership.all(:conditions=&gt;["group_id = ? and status != 'invited'", group_id])
       members.each do |member|
          ac.expire_fragment get_profils_cache_key('modules_groupes',member.profile_id)
      end
    end
  end

end</pre>
<p>There are two important informations here.</p>
<ol>
<li>The queueing of the task we want to perform. When the enqueue function is called, delayed jobs will serialize the class in YAML and store the data in the database to be revived later by the jobs queue process later. I store the group&#8217;s ID, and I&#8217;ll fetch the members belonging to that group in the actual job.</li>
</ol>
<pre class="code">  def expire(model)
    ...
    Delayed::Job.enqueue(DelayedGroupMembersSweeper.new(model.group_id)) unless model.group_id.blank?
    ...
  end</pre>
<ol>
<li>Declaring the class that will perform the task. This class needs to be serializable. inheriting from Struct ensures that it is. Since the code is invoked from a different process, I needed to instantiate the ActionController class for the expire_fragment method to become available. after that, it&#8217;s only a question of iterating through all the members in the group and expiring each of their fragments.</li>
</ol>
<pre class="code">  class DelayedGroupMembersSweeper &lt; Struct.new(:group_id)
     include CacheKeys  # helper module that declares functions for creating caching keys
     def perform
       action_controller = ApplicationController.new
       members = GroupMembership.all(:conditions=&gt;["group_id = ? and status != 'invited'", group_id])
       members.each do |member|
          action_controller.expire_fragment get_profiles_cache_key('modules_groupes',member.profile_id)
      end
    end
  end</pre>
<p>And there it is, Delaying the clearing of the cache with Delayed Jobs.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/05/26/delaying-cache-clearing-with-delayed-jobs-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mise à jour d&#8217;une application Rails 2.2.2 vers Rails 3</title>
		<link>http://lab.pheromone.ca/2010/05/17/mise-a-jour-dune-application-rails-2-2-2-vers-rails-3/</link>
		<comments>http://lab.pheromone.ca/2010/05/17/mise-a-jour-dune-application-rails-2-2-2-vers-rails-3/#comments</comments>
		<pubDate>Mon, 17 May 2010 20:19:14 +0000</pubDate>
		<dc:creator>Rémy Giard</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails3]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=364</guid>
		<description><![CDATA[Dans le monde Ruby, nous attendons tous avec impatience le sortie du prochain et tout nouveau Rails version 3.  Il a déjà de nombreux sites qui discutent de ce sujet et des nouvelles fonctionnalités à venir.  Or, dans le but m&#8217;y faire les dents, j&#8217;ai décidé de mettre à jour une de nos application interne [...]]]></description>
			<content:encoded><![CDATA[<p>Dans le monde Ruby, nous attendons tous avec impatience le sortie du prochain et tout nouveau Rails version 3.  Il a déjà de nombreux sites qui discutent de ce sujet et des nouvelles fonctionnalités à venir.  Or, dans le but m&#8217;y faire les dents, j&#8217;ai décidé de mettre à jour une de nos application interne en version 2.2.2 vers la version 3.  Je décris ici le processus et les embûches que j&#8217;ai rencontrés.</p>
<p>Pour commencer, je devais savoir ce qui n&#8217;était plus supporté dans la nouvelle version.  L&#8217;équipe de développement de Rails a publié un plugin qui permet de détecter ce qui n&#8217;est plus supporté.  Toutefois, ils ont aussi construit un plugin pour faciliter la transition qui permet l&#8217;utilisation de certaines fonctions non-incluses dans la version 3.  J&#8217;ai installé le premier plugin pour connaitre les changements à faire et j&#8217;ai ensuite installé le deuxième plugin.  Voici un résumé des changements principaux :</p>
<ul>
<li>API de ActiveRecord : <a href="http://guides.rails.info/3_0_release_notes.html#active-record">http://guides.rails.info/3_0_release_notes.html#active-record</a></li>
<li>API de ActionMailer : <a href="http://guides.rails.info/3_0_release_notes.html#action-mailer">http://guides.rails.info/3_0_release_notes.html#action-mailer</a></li>
<li>API des routes : <a href="http://guides.rails.info/3_0_release_notes.html#action-dispatch">http://guides.rails.info/3_0_release_notes.html#action-dispatch</a></li>
<li>API des générateurs : <a href="http://guides.rails.info/3_0_release_notes.html#railties-restrung">http://guides.rails.info/3_0_release_notes.html#railties-restrung</a></li>
<li>Changements des constantes de Rails.  Exemple : RAILS_ROOT =&gt; Rails.root, RAILS_DEFAULT_LOGGER =&gt; Rails.logger</li>
<li>Utilisation de Bundler et d&#8217;un Gemfile au lieu de config.gem : <a href="http://guides.rails.info/3_0_release_notes.html#railties-restrung">http://guides.rails.info/3_0_release_notes.html#railties-restrung</a></li>
<li>Plusieurs appels aux helpers ne sont plus disponibles.  Plusieurs sont disponibles en ajouter le <a href="http://github.com/rails/prototype_legacy_helper" target="_blank">plugin prototype_legacy_helper</a> Exemple: link_to_remote : <a href="http://guides.rails.info/3_0_release_notes.html#action-view">http://guides.rails.info/3_0_release_notes.html#action-view</a></li>
</ul>
<p>Comme embûches, j&#8217;ai dû mettre à jour ma version installée de Ruby.  Un excellent outil sous Ubuntu facilite l&#8217;utilisation de plusieurs version en même temps et c&#8217;est &laquo;&nbsp;<a href="http://www.rubyinside.com/rvm-ruby-version-manager-2347.html" target="_blank">rvm</a>&laquo;&nbsp;.  Pour isoler mes tests à la transition vers Rails 3, j&#8217;ai préféré Ruby 1.8.7 à 1.9 pour ne pas avoir les problèmes d&#8217;encodage possibles dûs à l&#8217;utlisation de Ruby 1.9.  J&#8217;ai ensuite installé les gem nécessaire à l&#8217;application en plus de Rails 3.0.0.beta.  L&#8217;ajout de ces gem dans le fichier Gemfile est la nouvelle façon de faire.  J&#8217;étais maintenant prêt à migrer l&#8217;application.  Voici mes prochaines étapes :</p>
<ul>
<li>Construire une application Rails par-dessus l&#8217;application existante ce qui a eu pour effet de créer les nouveaux fichiers nécessaires qui n&#8217;existait pas encore.  Pour ce, il faut seulement appeler &laquo;&nbsp;rails &lt;app&gt;&nbsp;&raquo; comme auparavant.</li>
<li>Créer le fichier &laquo;&nbsp;app/controllers/application_controller.rb&nbsp;&raquo; qui remplace maintenant &laquo;&nbsp;app/controllers/application.rb&nbsp;&raquo;.</li>
<li>Modifier les fichiers d&#8217;environnement (environment.rb, development.rb, etc) pour répondre à la nouvelle structure</li>
<li>Ajuster les routes selon le nouvel API</li>
<li>Remplacer ou supprimer les plugins de l&#8217;application.  Pour will_paginate, j&#8217;ai utilisé la branche &laquo;&nbsp;<a href="http://github.com/mislav/will_paginate/tree/rails3" target="_blank">rails3</a>&nbsp;&raquo; du répertoire sur github.  J&#8217;ai dû enlevé &laquo;&nbsp;exception_logger&nbsp;&raquo; qui n&#8217;est plus supporté</li>
<li>Depuis la version Rails 2.3.4, il n&#8217;est plus possible d&#8217;avoir un clé primaire dans les tables de jointure des relations &laquo;&nbsp;has_and_belongs_to_many&nbsp;&raquo;.  J&#8217;ai donc enlevé ces clés pour ne garder que celles de la liaison.  Il suffisait d&#8217;ajouter &laquo;&nbsp;:id =&gt; false&nbsp;&raquo; comme option du &laquo;&nbsp;create table&nbsp;&raquo; de la migration</li>
</ul>
<p>Pour terminer, la migration d&#8217;une application Rails vers Rails 3 est une tâche faisable mais non sans embûche.  Il faut bien se renseigner sur les changements à Rails 3 pour bien identifer ce qui cause le problème.  Tout au long de la migration, j&#8217;ai dû effectuer des ajustements ici et là dans les controlleurs et les vues pour suivre les nouvelles façons de faire.  Or, la migration vers Rails 3 n&#8217;est pas isolé à seulement un niveau, mais presque partout (controlleurs, routes, vues, dépendances, configuration, etc).  De ce fait, il faut être vigilant et s&#8217;assurer de tester tous les chemins possibles.  Ici, si on a créé et maintenu nos tests unitaires et fonctionnels, nous sommes heureux de les avoir sous la main.  Voilà un excellent sujet pour une prochaine publication sur Le Lab &#8230;</p>
<p>Liens utiles:</p>
<ul>
<li><a href="http://guides.rails.info/3_0_release_notes.html" target="_blank">Ruby on Rails 3.0 Release Notes</a></li>
<li><a href="http://omgbloglol.com/post/353978923/the-path-to-rails-3-approaching-the-upgrade" target="_blank">The Path to Rails 3 : Approaching the upgrade</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/05/17/mise-a-jour-dune-application-rails-2-2-2-vers-rails-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La moribonde métaphore du site Web</title>
		<link>http://lab.pheromone.ca/2010/04/29/moribonde-metaphore-site-web/</link>
		<comments>http://lab.pheromone.ca/2010/04/29/moribonde-metaphore-site-web/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 16:06:59 +0000</pubDate>
		<dc:creator>Olivier Théreaux</dc:creator>
				<category><![CDATA[Affaires]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[stevejobs]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=360</guid>
		<description><![CDATA[Une discussion dans l&#8217;équipe de Pheromone sur les réflexions de Steve Jobs sur Flash a amené une intéressante question: est-ce que Jobs est en train de nous dire qu&#8217;il ne faut plus faire de sites web, mais uniquement des applis iPhone™? Oui, et non. Le web comme ecosystème d&#8217;information n&#8217;est pas en danger. Les technologies [...]]]></description>
			<content:encoded><![CDATA[<p>Une discussion dans l&#8217;équipe de Pheromone sur <a href="http://www.apple.com/hotnews/thoughts-on-flash/">les réflexions de Steve Jobs sur Flash</a> a amené une intéressante question: est-ce que Jobs est en train de nous dire qu&#8217;il ne faut plus faire de sites web, mais uniquement des applis iPhone™?</p>
<p>Oui, et non.</p>
<p>Le web comme ecosystème d&#8217;information n&#8217;est pas en danger.</p>
<p>Les technologies du web ne sont pas en danger (au contraire &#8211; le même Steve Jobs par exemple se gargarise des technologies ouvertes du W3C comme HTML5 ou CSS).</p>
<p>Par contre, le paradigme du &laquo;&nbsp;site&nbsp;&raquo; web, comme espace où l&#8217;on se déplace, lui, est je crois moribond. C&#8217;est un changement important qui voit son origine, entre autres, dans l&#8217;apparition des mobiles.</p>
<p><em>Note: an english version of this post is also available: <a href="http://olivier.thereaux.net/2010/04/29/web-site-moribund-metaphor/"> The Web Site: a moribund metaphor</a>.</em></p>
<p>Avant l&#8217;arrivée de l&#8217;internet mobile (laptops, smartphones, netbooks, tablettes), notre perception est que l&#8217;ordinateur nous transportait vers l&#8217;internet. D&#8217;ou la métaphore: site, navigateur, &laquo;&nbsp;aller sur yahoo&nbsp;&raquo;. Métaphore qui existait aussi avec les premiers systèmes de réalité virtuelle. Métaphore qui nous a donné geocities: souvenez vous! geocities etait plein de quartiers virtuels&#8230;</p>
<p>Avec l&#8217;arrivée du wi-fi, de la connectivité fiable sur les réseaux téléphoniques cellulaires, c&#8217;est tout le contraire. </p>
<p>Nous sommes tout le temps en déplacement, donc nous n&#8217;allons plus sur le web, c&#8217;est le web qui se déplace avec nous. Et comme le web et ses informations sont disponibles tout le temps, les personnes veulent des réponses immédiates (ici et maintenant) à leur besoin.</p>
<p>D&#8217;où l&#8217;émergence d&#8217;une nouvelle métaphore et une nouvelle économie autour:</p>
<p>Exit geocities et le &laquo;&nbsp;site&nbsp;&raquo; web. Entrent en scène les services ubiquitaires, adaptés à des besoins précis. Pour l&#8217;instant sous la forme d&#8217;applis et/ou de widgets, mais la forme n&#8217;est pas fixée. L&#8217;avenir nous dira si Apple réussira son pari de dominance, ou si la fragmentation du marché des &laquo;&nbsp;app stores&nbsp;&raquo; tuera ce modèle, <a href="http://www.quirksmode.org/blog/archives/2010/03/html5_apps.html">comme semble le croire des gens comme PPK</a>.  Mon pari, par contre, c&#8217;est que le &laquo;&nbsp;changement de paradigme&nbsp;&raquo; (buzzword alert!) du site Web au service web est durable.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/04/29/moribonde-metaphore-site-web/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adobe CS5 ( beta ) &amp; Iphone</title>
		<link>http://lab.pheromone.ca/2010/04/07/adobe-cs5-beta-iphone/</link>
		<comments>http://lab.pheromone.ca/2010/04/07/adobe-cs5-beta-iphone/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 14:27:04 +0000</pubDate>
		<dc:creator>arnaud</dc:creator>
				<category><![CDATA[Recherche]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[iphone flash adobe cs55 canadiens montréal]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=330</guid>
		<description><![CDATA[Membre &#8216; Adobe Prerelease community &#8216;, j&#8217;explore depuis quelques semaines le développement d&#8217;applications natives Ipod &#8211; Iphone, avec l&#8217;excitation d&#8217;un jeune premier. Le developpement d&#8217;applications natives via Adobe CS5 est simple, accèssible, et demande un temps d&#8217;apprentissage assez court. Une fois obtenue les incontournables certificats Apple, la routine de compilation s&#8217;acquiert facilement. Il suffit de [...]]]></description>
			<content:encoded><![CDATA[<p>Membre &#8216; Adobe Prerelease community &#8216;, j&#8217;explore depuis quelques semaines<br />
le développement d&#8217;applications natives Ipod &#8211; Iphone, avec l&#8217;excitation d&#8217;un jeune premier.</p>
<p>Le developpement d&#8217;applications natives via Adobe CS5 est simple, accèssible, et demande un temps d&#8217;apprentissage assez court. Une fois obtenue les incontournables certificats Apple, la routine de compilation s&#8217;acquiert facilement. Il suffit de suivre ensuite les recommandations dispensées par <a href="http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/">Adobe</a>, au sujet de l&#8217;optimisation de votre code pour produire des applications relativement fluides  .</p>
<p>Pour le reste, mon enthousiasme juvénile, s&#8217;est buté aux restrictions de la version actuelle ( beta ) qui ne permet pas de recevoir les alertes natives via le server de notifications Apple . Un lacune non négligeable qui exclue automatiquement un nombre considérable de scénario.</p>
<p>Vous trouverez ci-dessous une vidéo du prototype, simulation d&#8217;un match des Canadiens ( Montréal oblige ), avec affichage des buts et pénalités,<br />
un récapitulatif succinct du match précédent et celui à venir . Ma contrainte étant de ne pas avoir de limites, j&#8217;utilise l&#8217;alpha, ENTER_FRAME et l&#8217;image de fond sans scrupules. Appréciable .</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10729744&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=10729744&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object></p>
<p>Je prépare quelques billets au sujet de mes autres expérimentations, webcam, chat, red5.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/04/07/adobe-cs5-beta-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fétichisme de footer</title>
		<link>http://lab.pheromone.ca/2010/04/01/fetishisme-de-footer/</link>
		<comments>http://lab.pheromone.ca/2010/04/01/fetishisme-de-footer/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 19:24:24 +0000</pubDate>
		<dc:creator>celine</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[footer ux fétischisme design information architecture "bas de page"]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=322</guid>
		<description><![CDATA[Tout comme l&#8217;on peut avoir un fétishisme pour les chaussures, en design il est compréhensible d&#8217;en avoir un pour divers partie d&#8217;un site! Dans ce billet nous nous concentrons sur le fétichisme des footers, ou bas-de-page. Lorsqu&#8217;on parle de sexy design ux (oui cette phrase est en français), cela signifie que le design est si [...]]]></description>
			<content:encoded><![CDATA[<p>Tout comme l&#8217;on peut avoir un fétishisme pour les chaussures, en design il est compréhensible d&#8217;en avoir un pour divers partie d&#8217;un site! Dans ce billet nous nous concentrons sur le fétichisme des footers, ou bas-de-page.<br />
<br />
<a href="http://www.flickr.com/photos/clineclines/2064436961/" title="stand up straight by celinecelines, on Flickr"><img src="http://farm3.static.flickr.com/2140/2064436961_8ec4acd690_o.jpg" width="500" height="375" alt="stand up straight" /></a><br />
<br />
Lorsqu&#8217;on parle de sexy design ux (oui cette phrase est en français), cela signifie que le design est si séduisant, que l&#8217;humain peut être prit en flagrant déli de flirt avec le contenu designé. Les bas-de-pages sont pour moi, l&#8217;élément de page que je regarde en premier, et oui, je scroll tout en bas, pour voir comment le site se tient.<br />
<br />
Pourquoi blogger sur les footers? Ou bas-de-page?<br />
Parce que j&#8217;aimerais commencer un petit collage, collection de tous les footers que j&#8217;aime et qui nous inspire ici à l&#8217;interne pour faire de joli détails et bas de page dans nos site-webs.<br />
<br />
<a href="http://www.reuters.com/"><img src="http://www.celinecelines.com/wp-content/uploads/2010/04/Picture-22.png" alt="Reuters" title="Reuters" width="500" height="180" class="alignnone size-full wp-image-540" /></a><br />
<br />
<a href="http://global.nytimes.com/"><img src="http://www.celinecelines.com/wp-content/uploads/2010/04/Picture-23.png" alt="Nytimes" title="Nytimes" width="500" height="362" class="alignnone size-full wp-image-541" /></a><br />
<br />
<a href="http://www.wikihow.com"><img src="http://www.celinecelines.com/wp-content/uploads/2010/04/Picture-24.png" alt="How to Wiki" title="How to Wiki" width="500" height="138" class="alignnone size-full wp-image-542" /></a><br />
<br />
<a href="http://vimeo.com"><img src="http://www.celinecelines.com/wp-content/uploads/2010/04/Picture-27.png" alt="Vimeo" title="Vimeo" width="500" height="179" class="alignnone size-full wp-image-543" /></a><br />
<br />
<a href="http://futureofwebapps.com/"><img src="http://www.celinecelines.com/wp-content/uploads/2010/04/Picture-281.png" alt="http://futureofwebapps.com/" title="http://futureofwebapps.com/" width="500" height="191" class="alignnone size-full wp-image-545" /></a><br />
<br />
I love these guys. Very sweet design.<br />
<a href="http://carsonified.com/"><img src="http://www.celinecelines.com/wp-content/uploads/2010/04/Picture-29.png" alt="http://carsonified.com/" title="http://carsonified.com/" width="500" height="121" class="alignnone size-full wp-image-546" /></a><br />
<br />
This one could be a good footer. Not too sure if it&#8217;s a footer, as it lives in the middle of the page&#8230; But I love it.<br />
<a href="http://anti-mega.com/antimega/"><img src="http://www.celinecelines.com/wp-content/uploads/2010/04/Picture-30.png" alt="Anti-Mega" title="Anti-Mega" width="500" height="402" class="alignnone size-full wp-image-547" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/04/01/fetishisme-de-footer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon, Apple, Google markets</title>
		<link>http://lab.pheromone.ca/2010/03/27/amazon-apple-google-markets/</link>
		<comments>http://lab.pheromone.ca/2010/03/27/amazon-apple-google-markets/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 14:43:50 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Affaires]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[markets]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=320</guid>
		<description><![CDATA[Olivier pointed out an article on twitter this morning: Five lessons Apple can learn from Amazon. I have the feeling that the article is missing entirely the point, because Amazon and Apple are not playing in the same markets: Amazon is using a device to sell books. Apple is using books to sell a device. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/olivierthereaux/status/11144714696">Olivier</a> pointed out an article on twitter this morning: <a href="http://government.zdnet.com/?p=8271">Five lessons Apple can learn from Amazon</a>. I have the feeling that the article is missing entirely the point, because Amazon and Apple are not playing in the same markets:</p>
<ul>
<li>Amazon is using a device to sell books.</li>
<li>Apple is using books to sell a device.</li>
</ul>
<p>It&#8217;s two different markets.</p>
<p>The strategy of Apple has always been the same: <strong>What can I do to sell more devices?</strong></p>
<ol>
<li>create a device that will seduce people. </li>
<li>propose content on this device</li>
<li>seduce publishers by offering an ecosystem where they can sell <strong>copyrighted</strong> (DRM) content.</li>
<li>once they have a significant market share, twist the publishers arm to make the content without DRMs and satisfy consumers.
</li>
</ol>
<p>Apple did it with music: <strong>music / iPod / iTunes Store</strong>, they will do it again with books: <strong>books / Ipad / iBooks</strong>.</p>
<p>Amazon is using devices and software to sell more content. Apple has often an evil twist by selling products that consumers own. It is like a pet, a longterm relationship. Content is not. People loves book-object, not book-content. Book-content is something which is entertainment, a few days to a few weeks (except for dictionaries, references books which are services). </p>
<p>Google in another fashion wants the content free, and create an ecosystem without barriers for accessing content. So they push opensource, free content or more permissive licenses, etc. The more the content is open, the more they are able to index it for selling ads.</p>
<p>The summary is </p>
<ul>
<li>Content for Apple is a mere commodity for selling devices.</li>
<li>Content for Google is a mere commodity for selling ads.</li>
<li>Content for Amazon is their core business.</li>
</ul>
<p>ps: note that all of that do not please me in any ways.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/03/27/amazon-apple-google-markets/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>voice and data mobile traffic, but who?</title>
		<link>http://lab.pheromone.ca/2010/03/25/voice-and-data-mobile-traffic-but-who/</link>
		<comments>http://lab.pheromone.ca/2010/03/25/voice-and-data-mobile-traffic-but-who/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 13:07:28 +0000</pubDate>
		<dc:creator>karl</dc:creator>
				<category><![CDATA[Affaires]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[social network]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[voice]]></category>

		<guid isPermaLink="false">http://lab.pheromone.ca/?p=318</guid>
		<description><![CDATA[Ericsson has announced that during December 2009, the traffic of data has surpassed the traffic of voice. They also announce that 400 million mobile broadband subscriptions are now generating more data traffic than the voice traffic from the total 4.6 billion mobile subscriptions around the world. Passed the PR talk, what does it really tell [...]]]></description>
			<content:encoded><![CDATA[<p>Ericsson has <a href="http://www.ericsson.com/thecompany/press/releases/2010/03/1396928">announced</a> that during December 2009, the traffic of data has surpassed the traffic of voice. They also announce that 400 million mobile broadband subscriptions are now generating more data traffic than the voice traffic from the total 4.6 billion mobile  subscriptions around the world.  Passed the PR talk, what does it really tell us?</p>
<ol>
<li>People use the Web anywhere. It has nothing to do with mobile. It has to do with <strong>making actions on data… now</strong>. These actions need to be local when you need to do them, therefore mobile is a way of achieving it.</li>
<li>Data traffic is more important than data. But is it because the volume is a lot more important, because people use less phone calls, or because there is a new generation of mobile users. Maybe a bit of the 3. In Japan, many people have usb keys tied to an operator, so people can continue to work on their <strong>notebook</strong> anywhere.</li>
<li>The <a href="http://blogs.wsj.com/digits/2010/03/24/sprint-ceo-rate-plans-will-move-from-minutes-to-gigabytes/">price structure</a> will change. The companies will focus on plans which are taking into account data, moving away from minutes to data. It will then leverage for more local actions on data.</li>
</ol>
<p>Exciting time ahead.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.pheromone.ca/2010/03/25/voice-and-data-mobile-traffic-but-who/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
