<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Skunk Works</title>
	<atom:link href="http://mriou.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mriou.wordpress.com</link>
	<description>If I only knew what this is about...</description>
	<pubDate>Tue, 31 Jul 2007 16:44:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>Moving&#8230;</title>
		<link>http://mriou.wordpress.com/2007/07/31/moving/</link>
		<comments>http://mriou.wordpress.com/2007/07/31/moving/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 16:44:38 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/07/31/moving/</guid>
		<description><![CDATA[I can&#8217;t afford to buy a house here, that&#8217;s a fact. However internet space is much cheaper so I&#8217;ve decided to get my own domain, my own blog and possibly my own code. I&#8217;ve been hosting elsewhere for a while, always moving here and there instead of building my own place but that&#8217;s not a [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I can&#8217;t afford to buy a house <a href="http://maps.google.com/?ie=UTF8&amp;ll=37.80307,-122.416749&amp;spn=0.026143,0.042229&amp;t=k&amp;z=15&amp;om=1">here</a>, that&#8217;s a fact. However internet space is much cheaper so I&#8217;ve decided to get my own domain, my own blog and possibly my own code. I&#8217;ve been hosting elsewhere for a while, always moving here and there instead of building my own place but that&#8217;s not a good long term strategy. It&#8217;s time to settle down.</p>
<p>I&#8217;m begging you my dear readers: follow me! I promise I&#8217;ll write more, I&#8217;m actually cooking a few (hopefully) good stuff: more on Apache, ODE and some Javascript and XULRunner goodness.</p>
<p>New address: <a href="http://offthelip.org">http://offthelip.org</a><br />
New feed: <a href="http://offthelip.org/?feed=rss2">http://offthelip.org/?feed=rss2</a></p>
<p>Thanks and see you there!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/66/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/66/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=66&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/07/31/moving/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Streaming to an Airport Express in Ruby</title>
		<link>http://mriou.wordpress.com/2007/07/09/streaming-to-an-airport-express-in-ruby/</link>
		<comments>http://mriou.wordpress.com/2007/07/09/streaming-to-an-airport-express-in-ruby/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 16:18:40 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/07/09/streaming-to-an-airport-express-in-ruby/</guid>
		<description><![CDATA[In the current Apple frenzy, what&#8217;s better than a post about an old Apple product: the Airport Express. Small and versatile, this device can be used for several different applications but it&#8217;s most popular to send music over wi-fi (to your good ole&#8217; amplifier located on the other side of your apartment for example). It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In the current Apple frenzy, what&#8217;s better than a post about an old Apple product: the <a href="http://www.apple.com/airportexpress/">Airport Express</a>. Small and versatile, this device can be used for several different applications but it&#8217;s most popular to send music over wi-fi (to your good ole&#8217; amplifier located on the other side of your apartment for example). It&#8217;s also a <a href="http://search.ebay.com/search/search.dll?from=R40&amp;_trksid=m37&amp;satitle=airport+express&amp;category0=">pretty cheap</a> thing.</p>
<p>I mentioned in my last post that I was using my little last.fm reader script to feed an Airport Express and somebody <a href="http://mriou.wordpress.com/2007/07/03/streaming-lastfm-in-ruby/#comments">asked me how</a>. First, I have to say that there isn&#8217;t much to do, thanks to the nice <a href="http://rubyforge.org/projects/raop/">raop client</a> created by Aaron Patterson. So like many other Ruby hacks, it starts with a:</p>
<pre><code>gem install raop-client</code></pre>
<p>Playing an MP3 file to your Airport is now just a small script and a command away:</p>
<pre><code>require 'raop'
raop = Net::RAOP::Client.new("192.168.1.63")
raop.connect
# Closer to 0 is louder
raop.volume=5
raop.play $stdin</code></pre>
<p>What looks like an IP address above (192.168.1.63) really is an IP address. It&#8217;s the one of your Airport Express on your local network, I&#8217;m sure you now how to find it (hint: your router probably knows). Save this script in a file (aex.rb for example). It takes a stream of raw wav as input, so we&#8217;ll need to summon the power of LAME (Lame Ain&#8217;t an MP3 Encoder) to produce the stream:</p>
<pre><code>lame --decode "Joe Dassin - Les Champs-Élysées.mp3" - | ruby aex.rb</code></pre>
<p>Mind the dash after the file name, it&#8217;s important. If you&#8217;re not a Linux happy user &#8482;, you&#8217;ll need to <a href="http://spaghetticode.org/lame/">get LAME</a>. If you&#8217;re a Windows user, good luck with the pipe. Divide &amp; Conquer with Cygwin would probably work though.</p>
<p>Note that making open source software that uses MP3 files isn&#8217;t an easy task. The <a href="http://en.wikipedia.org/wiki/Fraunhofer_society">Fraunhofer Society</a> owns a patent on the MP3 format and has enforced it in several occasions (generating a good deal of revenue). Everything that encodes, decodes or reads MP3s have to pay and yes, that includes your iPod. I don&#8217;t think it ever went directly against open source developers but then it never said it wouldn&#8217;t either. A very reasonable move would be to authorize GPL licensed software to use their patent. I&#8217;m sure they use open source software as well, so they should really stop leaching.</p>
<p>Anyway you&#8217;re now happily playing songs to your Airport Express but you&#8217;re still missing the last.fm part. As I said, raop client accepts any wav stream so it&#8217;s just a matter of piping the last.fm stream (obtained <a href="http://mriou.wordpress.com/2007/07/03/streaming-lastfm-in-ruby/">in my last installment</a>) through LAME and redirecting that to raop client.</p>
<p><a href="http://mriou.files.wordpress.com/2007/07/raop.png" title="Airport Express piping"><img src="http://mriou.files.wordpress.com/2007/07/raop.png" alt="Airport Express piping" /></a></p>
<p>To glue this with the last.fm script I&#8217;ve shown you <a href="http://mriou.wordpress.com/2007/07/03/streaming-lastfm-in-ruby/">last time</a>, just do:</p>
<pre><code>lastfm = LastFM.login("mriou", "****")
lastfm.tune("lastfm://user/mriou/playlist")
aex = AirportListener.new("192.168.1.65")
lastfm.play(aex)</code></pre>
<p>If you want to see the whole script plus a few additional niceties, it&#8217;s available <a href="http://viewvc.rubyforge.mmmultiworks.com/cgi/viewvc.cgi/trunk/lib/dubya/in_n_out.rb?revision=10&amp;root=dubya&amp;view=markup">on Rubyforge</a>. You can checkout the whole thing and then run bin/lastfm.rb.</p>
<pre><code>svn co svn://rubyforge.org/var/svn/dubya/trunk dubya</code></pre>
<p>Happy listening!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/64/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/64/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=64&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/07/09/streaming-to-an-airport-express-in-ruby/feed/</wfw:commentRss>
	
		<media:content url="http://mriou.files.wordpress.com/2007/07/raop.png" medium="image">
			<media:title type="html">Airport Express piping</media:title>
		</media:content>
	</item>
		<item>
		<title>Streaming Last.fm in Ruby</title>
		<link>http://mriou.wordpress.com/2007/07/03/streaming-lastfm-in-ruby/</link>
		<comments>http://mriou.wordpress.com/2007/07/03/streaming-lastfm-in-ruby/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 14:00:41 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/07/03/streaming-lastfm-in-ruby/</guid>
		<description><![CDATA[Irecently have been unlucky enough to experience a hard drive crash. The unrecoverable type of crash. Being on the light side for backups, I&#8217;ve lost all my (legally obtained of course) collection of mp3. Tons and gigs of them. I&#8217;m not crying because I&#8217;m a man but I can tell you that my heart bleeds. [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Irecently have been unlucky enough to experience a <a href="http://flickr.com/photos/68001853@N00/364507430/" title="Boom">hard drive crash</a>. The unrecoverable type of crash. Being on the light side for backups, I&#8217;ve lost all my (legally obtained of course) collection of mp3. Tons and gigs of them. I&#8217;m not crying because I&#8217;m a man but I can tell you that my heart bleeds. So as a result, I pretty much rely on internet radios now, among which <a href="http://last.fm">last.fm</a>. The trick though, is that I run Linux so their default player (iTunes nastiness) doesn&#8217;t work for me. And I hate iTunes anyway. Amarok is much better but I own an Airport Express and I can&#8217;t easily stream to my Airport using <a href="http://amarok.kde.org/">Amarok</a>. Long story to say that I needed some more creativity.</p>
<p>Turns out that the last.fm protocol is pretty simple. A very nice person has <a href="http://gabistapler.de/blog/index.php?/archives/268-Play-last.fm-streams-without-the-player.html">retro-engineered</a> it in a pretty thorough manner. So I won&#8217;t repeat everything that has already been explained in detail, just sum up and add a couple more missing things:</p>
<ul>
<li>The last.fm stream is a plain old MP3 stream (more poms for the Maven fans out there). It doesn&#8217;t have any Shoutcast style meta data.</li>
<li>On the other hand, they insert a &#8220;SYNC&#8221; string in there signal anytime the song changes in there stream, to let you know what&#8217;s happening.</li>
<li>To get what&#8217;s currently playing they have a web service (the kind of RESTful type) that can be invoked anytime and returns all kind of information about the song. That with the previous point allow you to know what&#8217;s happening. There are also a few more services to skip, love, ban and let them know how you really feel right now.</li>
<li>To start the interaction, you only need to login by invoking a URL, sending you username and password. I can hear your knees jerking my security-aware friends, but don&#8217;t worry, the password is MD5 encoded. They reply to you with a session id that you pass in any subsequent calls.</li>
</ul>
<p>I told you it was simple. So I went ahead and implemented the whole thing in Ruby, which turned out to be equally simple, once all the aforementioned details were clear. And here is the thing:</p>
<p><a href="http://mriou.files.wordpress.com/2007/07/lastfm.png" title="LastFM script"><img src="http://mriou.files.wordpress.com/2007/07/lastfm.png" alt="LastFM script" /></a><a href="http://mriou.files.wordpress.com/2007/07/lastfm.png" title="LastFM script"> </a></p>
<p>Now what do you do with that little &#8220;out&#8221; variable? Pretty much everything you want. You really can&#8217;t pass a file, to stream everything to your disk and therefore get MP3s for everything you&#8217;re listening. That would be illegal. Plus the <a href="http://www.riaaradar.com/">RIAA</a> people don&#8217;t like it and we should really listen to them, they act for <a href="http://www.dixiechicks.com/">the</a> <a href="http://www.britneyspears.com/">good</a> <a href="http://www.r-kelly.com/">of</a> <a href="http://www.mcdonalds.com">music</a>.</p>
<p>Personally, as already mentioned, I stream it to my Airport Express using the <a href="http://rubyforge.org/projects/raop/">Ruby RAOP client</a> that <a href="http://tenderlovemaking.com/">Aaron Patterson</a> has developed. And I can finally enjoy the simplest form of Art ever made.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/61/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/61/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=61&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/07/03/streaming-lastfm-in-ruby/feed/</wfw:commentRss>
	
		<media:content url="http://mriou.files.wordpress.com/2007/07/lastfm.png" medium="image">
			<media:title type="html">LastFM script</media:title>
		</media:content>
	</item>
		<item>
		<title>A Diagram For Your Rails Records</title>
		<link>http://mriou.wordpress.com/2007/06/13/a-diagram-for-your-rails-records/</link>
		<comments>http://mriou.wordpress.com/2007/06/13/a-diagram-for-your-rails-records/#comments</comments>
		<pubDate>Thu, 14 Jun 2007 05:25:37 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/06/13/a-diagram-for-your-rails-records/</guid>
		<description><![CDATA[Sometimes, when it&#8217;s getting late, after a few beers and when you have more than a couple of Active Records in your project, things can get a bit blurry. What is linked to what? Did I make that a belong_to or a has_many? Clearly, the bigger picture can elude you.
Fortunately, I just discovered (thanks to [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sometimes, when it&#8217;s getting late, after a few beers and when you have more than a couple of Active Records in your project, things can get a bit blurry. What is linked to what? Did I make that a belong_to or a has_many? Clearly, the bigger picture can elude you.</p>
<p>Fortunately, I just discovered (thanks to <a href="http://www.hackdiary.com/archives/000093.html"><span class="posted">Matt Biddulph</span></a>) some way to generate a quick and easy diagram showing how your active records play with each other. But don&#8217;t start thinking I needed this because I had a beer. I did not. Or did I? Anyway, it&#8217;s fortunately pretty simple.</p>
<ol>
<li>First you&#8217;ll need <a href="http://www.graphviz.org">graphviz</a>. If you&#8217;re running the right O/S it&#8217;s as straightforward as &#8216;apt-get install graphviz&#8217;. The two of you running Fedora can replace apt-get by yum, I&#8217;m guessing it would work just as well. For Windows and Mac users, it&#8217;s just a <a href="http://www.graphviz.org/Download..php">download</a>.</li>
<li>Save the Ruby script reproduced below in a &#8216;graph.rb&#8217; file located at the root of your Rails project.</li>
<li>Run &#8216;ruby graph.rb | dot -Tpng -ograph.png&#8217;. It won&#8217;t work with the wrong O/S (understand Windows). You&#8217;ll have to save the output of the script in a file and then run the second part of the command on that file. Also if you&#8217;re dorky enough to have some &#8216;puts&#8217; in your ActiveRecord you&#8217;ll have to save the output in a file as well and clean that up.</li>
<li>Open graph.png.</li>
</ol>
<p>Here is the promised script (slight improvements from <a href="http://www.hackdiary.com/archives/000093.html">the original</a>).</p>
<pre><code>#!/usr/bin/env ruby

require "config/environment"

Dir.glob("app/models/*rb") { |f| require f }</code>puts &#8220;digraph x {&#8221;

Dir.glob(&#8221;app/models/*rb&#8221;) do |f|

classname = f.match(//([a-z_]+).rb/)[1].camelize

klass = Kernel.const_get classname

if ActiveRecord::Base &gt;= klass

puts classname

klass.reflect_on_all_associations.each do |a|

label = (a.macro.to_s =~ /many/) ? &#8220;*&#8221; : &#8220;1&#8243;

puts &#8220;#{classname} -&gt; #{a.name.to_s.camelize.singularize} [label=\"#{label}\"]&#8221;

end

end

end

puts &#8220;}&#8221;</pre>
<p>And here is an example of the result:</p>
<p><a href="http://mriou.files.wordpress.com/2007/06/graph.png" title="Direct link to file"></a><a href="http://mriou.files.wordpress.com/2007/06/graph.jpg" title="Direct link to file"></p>
<p style="text-align:center;"><img src="http://people.apache.org/~mriou/graph.png" /></p>
<p></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/58/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/58/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=58&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/06/13/a-diagram-for-your-rails-records/feed/</wfw:commentRss>
	
		<media:content url="http://people.apache.org/~mriou/graph.png" medium="image" />
	</item>
		<item>
		<title>Shooting Yourself in the Foot, Different ways</title>
		<link>http://mriou.wordpress.com/2007/06/06/shooting-yourself-in-the-foot-different-ways/</link>
		<comments>http://mriou.wordpress.com/2007/06/06/shooting-yourself-in-the-foot-different-ways/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 14:18:53 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/06/06/shooting-yourself-in-the-foot-different-ways/</guid>
		<description><![CDATA[There are basically two ways to shoot yourself in the foot these days:

RIAA style: sue your customers.
Microsoft style: sue the best developers on your platform.

Anybody willing to develop a peer-to-peer extension for Windows Media Player out there? I bet that would be a lot of fun.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://farm1.static.flickr.com/95/246307625_5e35243434_m.jpg" alt="Run Bunny" align="right" height="240" width="173" />There are basically two ways to shoot yourself in the foot these days:</p>
<ul>
<li>RIAA style: <a href="http://seattlepi.nwsource.com/local/315599_music14.html?source=mypi">sue your customers</a>.</li>
<li>Microsoft style: <a href="http://www.theregister.co.uk/2007/06/05/microsoft_mvp_threats/">sue the best developers</a> on your platform.</li>
</ul>
<p>Anybody willing to develop a peer-to-peer extension for Windows Media Player out there? I bet that would be a lot of fun.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=57&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/06/06/shooting-yourself-in-the-foot-different-ways/feed/</wfw:commentRss>
	
		<media:content url="http://farm1.static.flickr.com/95/246307625_5e35243434_m.jpg" medium="image">
			<media:title type="html">Run Bunny</media:title>
		</media:content>
	</item>
		<item>
		<title>Weather, Did You Say Weather?</title>
		<link>http://mriou.wordpress.com/2007/05/24/weather-did-you-say-weather/</link>
		<comments>http://mriou.wordpress.com/2007/05/24/weather-did-you-say-weather/#comments</comments>
		<pubDate>Thu, 24 May 2007 14:33:47 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/05/24/weather-did-you-say-weather/</guid>
		<description><![CDATA[The excellent scientific climate blog RealClimate has put up a small guide for beginners, with tons of links to good resources for those wanting to know a bit more. So the next time someone tells you &#8220;There ain&#8217;t no global warming, it&#8217;s just the sun heating up a bit more!&#8221; at a dinner, you&#8217;ll have [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The excellent <strong>scientific</strong> climate blog <a href="http://www.realclimate.org">RealClimate</a> has put up a <a href="http://www.realclimate.org/index.php/archives/2007/05/start-here/">small guide for beginners</a>, with tons of links to good resources for those wanting to know a bit more. So the next time someone tells you &#8220;There ain&#8217;t no global warming, it&#8217;s just the sun heating up a bit more!&#8221; at a dinner, you&#8217;ll have some understanding of the problem and arguments to fight back.</p>
<p>Spread the word and do your homework.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/56/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/56/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=56&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/05/24/weather-did-you-say-weather/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Slashing File.join in Ruby</title>
		<link>http://mriou.wordpress.com/2007/05/22/slashing-filejoin-in-ruby/</link>
		<comments>http://mriou.wordpress.com/2007/05/22/slashing-filejoin-in-ruby/#comments</comments>
		<pubDate>Tue, 22 May 2007 21:59:54 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/05/22/slashing-filejoin-in-ruby/</guid>
		<description><![CDATA[If you&#8217;re doing some file system manipulations in Ruby, moving and creating files around (which it does very well as it doesn&#8217;t try to ignore, like Java, that there is a file system) you have basically two choices: hard code a lot of &#8216;/&#8217; characters in your code, which isn&#8217;t pretty, or use File.join. After [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you&#8217;re doing some file system manipulations in Ruby, moving and creating files around (which it does very well as it doesn&#8217;t try to ignore, like Java, that there is a file system) you have basically two choices: hard code a lot of &#8216;/&#8217; characters in your code, which isn&#8217;t pretty, or use File.join. After a while you end up with many of these joins all over the place and it&#8217;s not so pretty (there&#8217;s actually a third possibility, you can directly use File::SEPARATOR, but it&#8217;s so ugly that I&#8217;m not counting it).</p>
<p>Yesterday, I had this really simple idea:</p>
<p><code><br />
class String<br />
def /(str_to_join)<br />
File.join(self, str_to_join)<br />
end<br />
end</code></p>
<p>It&#8217;s so sweet and easy that I can&#8217;t even figure why I&#8217;ve never thought of it before. Now I can do:</p>
<p><code><br />
&#8216;tmp&#8217;/'readme.txt&#8217;  # literals<br />
ROOT_DIR/file_path  # variables holding strings<br />
</code></p>
<p>Much easier on the eyes and the fingers.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/55/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/55/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=55&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/05/22/slashing-filejoin-in-ruby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>(Enlightenment)</title>
		<link>http://mriou.wordpress.com/2007/05/11/enlightenment/</link>
		<comments>http://mriou.wordpress.com/2007/05/11/enlightenment/#comments</comments>
		<pubDate>Fri, 11 May 2007 14:03:16 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/05/11/enlightenment/</guid>
		<description><![CDATA[Seen on the ruby-talk mailing list, in answer to a guy who is asking how Ruby can be 100% object oriented when primitives like &#8216;if&#8217; and &#8216;then&#8217; are not objects:
&#62; Seriously, what kind of object would an If object be? What is the
&#62; essence of If-ness? I think if anybody could answer that question they
&#62; [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Seen on the <a href="http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml">ruby-talk</a> mailing list, in answer to a guy who is asking how Ruby can be 100% object oriented when primitives like &#8216;if&#8217; and &#8216;then&#8217; are not objects:</p>
<blockquote><p>&gt; Seriously, what kind of object would an If object be? What is the<br />
&gt; essence of If-ness? I think if anybody could answer that question they<br />
&gt; would instantly achieve enlightment and then their head would explode.</p>
<p>That, my friends, is exactly how LISP programmers are created.</p></blockquote>
<p>Which reminds me of <a href="http://xkcd.com/c224.html">this xkcd comic</a>.</p>
<p>End of the Lisp bashing.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/54/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/54/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=54&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/05/11/enlightenment/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux Isn&#8217;t Quite There Yet</title>
		<link>http://mriou.wordpress.com/2007/04/09/linux-isnt-quite-there-yet/</link>
		<comments>http://mriou.wordpress.com/2007/04/09/linux-isnt-quite-there-yet/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 15:17:39 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/04/09/linux-isnt-quite-there-yet/</guid>
		<description><![CDATA[Just 3 snapshots. Tell me, which one still looks like in the eighties



Granted, you&#8217;ll see something much better if you check Ubuntu or Red Hat. But isn&#8217;t Linux, as an OS, supposed to go mainstream at some point?
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just 3 snapshots. Tell me, which one still looks like in the eighties</p>
<p><img src="http://mriou.files.wordpress.com/2007/04/osx.jpg" alt="osx" /></p>
<p><img src="http://mriou.files.wordpress.com/2007/04/windows.jpg" alt="W$" /></p>
<p><img src="http://mriou.files.wordpress.com/2007/04/linux.jpg" alt="Linux" /></p>
<p>Granted, you&#8217;ll see something much better if you check Ubuntu or Red Hat. But isn&#8217;t Linux, as an OS, supposed to go mainstream at some point?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=50&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/04/09/linux-isnt-quite-there-yet/feed/</wfw:commentRss>
	
		<media:content url="http://mriou.files.wordpress.com/2007/04/osx.jpg" medium="image">
			<media:title type="html">osx</media:title>
		</media:content>

		<media:content url="http://mriou.files.wordpress.com/2007/04/windows.jpg" medium="image">
			<media:title type="html">W$</media:title>
		</media:content>

		<media:content url="http://mriou.files.wordpress.com/2007/04/linux.jpg" medium="image">
			<media:title type="html">Linux</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Cover Your Ass&#8221; Security</title>
		<link>http://mriou.wordpress.com/2007/02/22/cover-your-ass-security/</link>
		<comments>http://mriou.wordpress.com/2007/02/22/cover-your-ass-security/#comments</comments>
		<pubDate>Thu, 22 Feb 2007 18:10:33 +0000</pubDate>
		<dc:creator>Matthieu Riou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mriou.wordpress.com/2007/02/22/cover-your-ass-security/</guid>
		<description><![CDATA[I usually don&#8217;t link much outside of my mains posts but Bruce Schneier, a security expert, wrote an interesting post about the &#8220;Cover Your Ass&#8221; security measures. Very effective to keep cops in shape. A pretty good blog by the way,
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I usually don&#8217;t link much outside of my mains posts but <a href="http://www.schneier.com">Bruce Schneier</a>, a security expert, wrote an <a href="http://www.schneier.com/blog/archives/2007/02/cya_security_1.html">interesting post</a> about the &#8220;Cover Your Ass&#8221; security measures. Very effective to keep cops in shape. A <a href="http://www.schneier.com/blog">pretty good blog</a> by the way,</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mriou.wordpress.com/49/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mriou.wordpress.com/49/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mriou.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mriou.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mriou.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mriou.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mriou.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mriou.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mriou.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mriou.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mriou.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mriou.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mriou.wordpress.com&blog=348038&post=49&subd=mriou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mriou.wordpress.com/2007/02/22/cover-your-ass-security/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>