<?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>The Nameless One</title>
	<atom:link href="http://tnlessone.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tnlessone.wordpress.com</link>
	<description></description>
	<pubDate>Mon, 28 Apr 2008 22:04:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>JRuby still kicking some ass</title>
		<link>http://tnlessone.wordpress.com/2008/04/28/jruby-still-kicking-some-ass/</link>
		<comments>http://tnlessone.wordpress.com/2008/04/28/jruby-still-kicking-some-ass/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 22:04:29 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/?p=98</guid>
		<description><![CDATA[Ruby&#8217;s future is looking bright, in no small part due to the many implementations. How&#8217;s your favorite language looking?
That&#8217;s always such a pleasure to read Charles views and stories.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://headius.blogspot.com/2008/04/promise-and-peril-for-alternative-ruby.html" target="_blank">Ruby&#8217;s future is looking bright, in no small part due to the many implementations. <strong>How&#8217;s your favorite language looking?</strong></a></p>
<p>That&#8217;s always such a pleasure to read Charles views and stories.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/98/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/98/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=98&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2008/04/28/jruby-still-kicking-some-ass/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What&#8217;s wrong with *J*Groovy?</title>
		<link>http://tnlessone.wordpress.com/2008/02/23/whats-wrong-about-jgroovy/</link>
		<comments>http://tnlessone.wordpress.com/2008/02/23/whats-wrong-about-jgroovy/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 20:37:32 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[groovy]]></category>

		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/?p=96</guid>
		<description><![CDATA[
Every new year comes up with its JRuby vs (J)Groovy battle. Obviously (J)Groovy users/community are good at promotion, you&#8217;ll hardly ever see posts about JRuby without (J)Groovy marketing propaganda posted in comments.
I am definitely in favor of JRuby but I can understand some of the (J)Groovy arguments. I have nothing against JGroovy, it surely integrates [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://tnlessone.files.wordpress.com/2008/02/378889380_e367efd48d_m.jpg?w=158&h=123" alt="Patch" align="right" height="123" width="158" /></p>
<p>Every new year comes up with its JRuby vs (J)Groovy battle. Obviously (J)Groovy users/community are good at promotion, you&#8217;ll hardly ever see posts about JRuby without (J)Groovy marketing propaganda posted in comments.</p>
<p>I am definitely in favor of JRuby but I can understand some of the (J)Groovy arguments. I have nothing against JGroovy, it surely integrates pretty well with Java World and I think the mix of Java with Groovy will be easily adopted by the fearful Managers (fearing Ruby).</p>
<p>So what&#8217;s wrong with *J*Groovy ?&#8230;</p>
<p>Groovy!</p>
<p>JRuby and Jython were developped on top of 2 popular languages (Ruby and Python) which have been existing for more than 15 years, with their own community. Today Ruby and Python are heavily used running their own vms on nearly all os possible. Ruby has no less than 4 vm implementations. JGroovy is based on Groovy language which is 5 years old and only cloned what it found cool from its neighboors to patch Java dinosaur. Would you invest in such language? At least Sun, Microsoft, IBM, Thoughtworks, Oracle made their choice&#8230;</p>
<p>Fact is Groovy language has no mean of existence on its own without Java.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/96/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/96/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=96&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2008/02/23/whats-wrong-about-jgroovy/feed/</wfw:commentRss>
	
		<media:content url="http://tnlessone.files.wordpress.com/2008/02/378889380_e367efd48d_m.jpg" medium="image">
			<media:title type="html">Patch</media:title>
		</media:content>
	</item>
		<item>
		<title>Total Google searches: 5346</title>
		<link>http://tnlessone.wordpress.com/2008/01/01/total-google-searches-5346/</link>
		<comments>http://tnlessone.wordpress.com/2008/01/01/total-google-searches-5346/#comments</comments>
		<pubDate>Tue, 01 Jan 2008 17:46:43 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[google]]></category>

		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/2008/01/01/total-google-searches-5346/</guid>
		<description><![CDATA[That&#8217;s the number of search I did using Google in last 6 months (since they set up their web history around June). Do you imagine that ? More than 10000 searches/year, 27/day, 1/hour&#8230;
Now you have an idea of Google success. Google&#8217;s search engine is the thing I use the more together with&#8230; Gmail, GoogleReader&#8230;
Of course [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>That&#8217;s the number of search I did using Google in last 6 months (since they set up their <a href="http://googleblog.blogspot.com/2007/04/your-slice-of-web.html" target="_blank">web history</a> around June). Do you imagine that ? More than 10000 searches/year, 27/day, 1/hour&#8230;</p>
<p>Now you have an idea of Google success. Google&#8217;s search engine is the thing I use the more together with&#8230; Gmail, GoogleReader&#8230;</p>
<p>Of course I am not a typical web user as 1) I work in IT 2) I am damn curious and need to <i>find</i> what I am looking for.</p>
<p>Now this raises several questions :</p>
<ul>
<li>Is this number (5346) accurate ? Didn&#8217;t I search more&#8230; or less ?</li>
</ul>
<p>The counter must not have missed many queries (ie when I am not logged in) as I nearly always have a living opened Google session with Gmail in some other tab while I am on inet. Though this number could actually be cut by a half because many semantical searches out of all this needed several refinements, each incrementing the counter (ie &#8220;m17n windows&#8221;, &#8220;notepad m17n compliant&#8221;, &#8220;m17n editor&#8221;, &#8230;)</p>
<ul>
<li>Is this web history useful ? For me ? For Google ?</li>
</ul>
<p>For me, not really&#8230; All searches lead to Rome anyway so why would I need a very specific search I did 5 months ago ? The only time it was useful for me was now to realize how much I was using Google.</p>
<p>For Google,&#8230; it&#8217;s a damn mine of information (one more).</p>
<p>Oh, by the way, I only clicked on 4 sponsors in 6 months, which gives a 0.0007% click ratio. But maybe this is because I block Ads, Fuck Ads! Too bad such useful services as Google live on ads only&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/95/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/95/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=95&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2008/01/01/total-google-searches-5346/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I will not violate Demeter&#8217;s Law!</title>
		<link>http://tnlessone.wordpress.com/2007/10/28/i-will-not-violate-demeters-law/</link>
		<comments>http://tnlessone.wordpress.com/2007/10/28/i-will-not-violate-demeters-law/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 14:05:01 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/2007/10/28/i-will-not-violate-demeters-law/</guid>
		<description><![CDATA[I find &#8220;laws&#8221; when applied to software design a wrong term. I prefer the term &#8220;best practice&#8221;.
Anyway&#8230;

       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I find &#8220;laws&#8221; when applied to software design a wrong term. I prefer the term &#8220;best practice&#8221;.<br />
Anyway&#8230;</p>
<p><a href="http://www.infoq.com/news/2007/10/demeters-law-revenge" target="_blank" title="I will not violate Demeter’s Law!"><img src="http://tnlessone.files.wordpress.com/2007/10/simpson_demeterslaw.png" alt="I will not violate Demeter’s Law!" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/89/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/89/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=89&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2007/10/28/i-will-not-violate-demeters-law/feed/</wfw:commentRss>
	
		<media:content url="http://tnlessone.files.wordpress.com/2007/10/simpson_demeterslaw.png" medium="image">
			<media:title type="html">I will not violate Demeter’s Law!</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails Wanted Dead or Alive $2.500.000!</title>
		<link>http://tnlessone.wordpress.com/2007/07/10/rails-wanted-dead-or-alive-2500000/</link>
		<comments>http://tnlessone.wordpress.com/2007/07/10/rails-wanted-dead-or-alive-2500000/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 22:14:52 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[Rails]]></category>

		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/2007/07/10/rails-wanted-dead-or-alive-2500000/</guid>
		<description><![CDATA[

Rails success is not debatable. But this was not an easy battle (and still isn&#8217;t) and some projects are trying to keep the ewes into the JEE garden.


This represents the SLOC (Source Lines Of Code) of Rails since it was born 3 years ago.
What to say about this? Basically you can&#8217;t say much about SLOC [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://tnlessone.files.wordpress.com/2007/07/wanted_rails_s.png" title="Wanted Rails"></a></p>
<p style="text-align:center;"><a href="http://tnlessone.files.wordpress.com/2007/07/wanted_rails_s.png" title="Wanted Rails"><img src="http://tnlessone.files.wordpress.com/2007/07/wanted_rails_s.png" alt="Wanted Rails" /></a></p>
<p>Rails success is not debatable. But this was not an easy battle (and still isn&#8217;t) and some <a href="http://grails.codehaus.org/">projects</a> are trying to keep the ewes into the JEE garden.</p>
<p><a href="http://tnlessone.files.wordpress.com/2007/07/_rails_sloc_15day_400.png" title="Rails SLOC 2004-2007"></a></p>
<p style="text-align:center;"><a href="http://tnlessone.files.wordpress.com/2007/07/_rails_sloc_15day_400.png" title="Rails SLOC 2004-2007"><img src="http://tnlessone.files.wordpress.com/2007/07/_rails_sloc_15day_400.png" alt="Rails SLOC 2004-2007" /></a></p>
<p>This represents the <a href="http://en.wikipedia.org/wiki/Source_lines_of_code">SLOC</a> (Source Lines Of Code) of Rails since it was born 3 years ago.<br />
What to say about this? Basically you can&#8217;t say much about SLOC (see the SLOC part of a <a href="http://tnlessone.wordpress.com/2007/01/21/about-floss-phenomena-and-the-rest/">previous post</a>)&#8230; Except that the progress is regular (which can be explained by the fact that it is maintained by a company in contrast to open source projects which might have an important growing community of commiters)<br />
Now <a href="http://www.dwheeler.com/sloccount/">sloccount</a> gives us a summary:</p>
<blockquote><p> <strong>Total Physical Source Lines of Code (SLOC)                = 74,385 (100% Ruby)</strong><br />
Development Effort Estimate, Person-Years (Person-Months) = 18.45 (221.45)<br />
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))<br />
Schedule Estimate, Years (Months)                         = 1.62 (19.46)<br />
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))<br />
Estimated Average Number of Developers (Effort/Schedule)  = 11.38<br />
<strong>Total Estimated Cost to Develop                           = $ 2,492,879</strong><br />
(average salary = $56,286/year, overhead = 2.40)</p></blockquote>
<p>So the reward for Rails is $2,492,879!<br />
This is based on 2004 salary&#8230;</p>
<p>Now if you want to have some fun and get some stats from your favourite svn repository, go get <a href="http://www.ruby-lang.org/en/">Ruby</a>, go get <a href="http://nubyonrails.com/pages/gruff">Gruff</a>, go get <a href="http://www.dwheeler.com/sloccount/">sloccount</a>, go get a Beer, and relax!<br />
Sorry for the format but WordPress really doesn&#8217;t help me&#8230;<br />
<code><em><font color="#b22222"># railssloccount.rb<br />
</font></em><em><font color="#b22222"># July 10, 2007<br />
</font></em><br />
<strong><font color="#5f9ea0">require</font></strong> <strong><font color="#bc8f8f">&#8216;date&#8217;</font></strong><br />
<strong><font color="#5f9ea0">require</font></strong> <strong><font color="#bc8f8f">&#8216;rubygems&#8217;</font></strong><br />
<strong><font color="#5f9ea0">require</font></strong> <strong><font color="#bc8f8f">&#8216;gruff&#8217;</font></strong><br />
<br />
DIR_DOWNLOAD = <strong><font color="#bc8f8f">&#8216;/home/username/railssloccount/&#8217;</font></strong><br />
STEP = 15<br />
FIRST_DATE = <strong><font color="#bc8f8f">&#8216;2004-11-29&#8242;</font></strong><br />
GRAPH_SIZE = 400<br />
GRAPH_HORIZONTAL_AXIS_SPACE = 16<br />
axis = {}<br />
datas = []<br />
index = 0<br />
<br />
puts <strong><font color="#bc8f8f">&#8220;svn checkout &#8211;revision {#{FIRST_DATE}} \<br />
\&#8221;hxxp://dev.rubyonrails.org/svn/rails/trunk\&#8221; \<br />
#{DIR_DOWNLOAD}trunk&#8221;</font></strong><br />
<br />
<strong><font color="#bc8f8f">`svn checkout &#8211;revision {#{FIRST_DATE}} \<br />
\&#8221;hxxp://dev.rubyonrails.org/svn/rails/trunk\&#8221; \<br />
#{DIR_DOWNLOAD}trunk`</font></strong><br />
<br />
(Date.parse(FIRST_DATE)..Date.today).step(STEP) <strong><font color="#a020f0">do</font></strong> |date|<br />
axis[index] = date.to_s <strong><font color="#a020f0">\<br />
if</font></strong> index % GRAPH_HORIZONTAL_AXIS_SPACE == 0<br />
index += 1<br />
puts <strong><font color="#bc8f8f">&#8220;svn update &#8211;revision {#{date}} \<br />
\&#8221;hxxp://dev.rubyonrails.org/svn/rails/trunk\&#8221; \<br />
#{DIR_DOWNLOAD}trunk&#8221;</font></strong><br />
<strong><font color="#bc8f8f">`svn update &#8211;revision {#{date}} \<br />
\&#8221;hxxp://dev.rubyonrails.org/svn/rails/trunk\&#8221; \<br />
#{DIR_DOWNLOAD}trunk`</font></strong><br />
puts <strong><font color="#bc8f8f">&#8220;sloccount #{DIR_DOWNLOAD}trunk&#8221;</font></strong><br />
result_cmd = <strong><font color="#bc8f8f">`sloccount #{DIR_DOWNLOAD}trunk`</font></strong><br />
File.open(<strong><font color="#bc8f8f">&#8220;#{DIR_DOWNLOAD}sloccount_#{date}.txt&#8221;</font></strong>, <strong><font color="#bc8f8f">&#8220;w&#8221;</font></strong>) { |f|<br />
f &lt;&lt; result_cmd<br />
}<br />
result = result_cmd[/ruby:\s*(\d+)/].gsub(/ruby:\s*/, <strong><font color="#bc8f8f">&#8221;</font></strong>).to_i<br />
puts <strong><font color="#bc8f8f">&#8220;Date: #{date} - SLOC: #{result}&#8221;</font></strong><br />
datas &lt;&lt; result<br />
<strong><font color="#a020f0">end</font></strong><br />
<br />
axis[index-1] = last_date.to_s<br />
<br />
g = Gruff::Line.new(GRAPH_SIZE)<br />
g.data(<strong><font color="#bc8f8f">&#8216;Rails SLOC&#8217;</font></strong>, datas)<br />
g.labels = axis<br />
g.minimum_value = 0<br />
g.title = <strong><font color="#bc8f8f">&#8216;Rails SLOC&#8217;</font></strong><br />
g.write(<strong><font color="#bc8f8f">&#8220;rails_sloc_#{STEP.to_s}day_#{GRAPH_SIZE.to_s}.png&#8221;</font></strong>)</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/85/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/85/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=85&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2007/07/10/rails-wanted-dead-or-alive-2500000/feed/</wfw:commentRss>
	
		<media:content url="http://tnlessone.files.wordpress.com/2007/07/wanted_rails_s.png" medium="image">
			<media:title type="html">Wanted Rails</media:title>
		</media:content>

		<media:content url="http://tnlessone.files.wordpress.com/2007/07/_rails_sloc_15day_400.png" medium="image">
			<media:title type="html">Rails SLOC 2004-2007</media:title>
		</media:content>
	</item>
		<item>
		<title>A Controller DSL to Complement MVC</title>
		<link>http://tnlessone.wordpress.com/2007/07/03/a-controller-dsl-to-complement-mvc/</link>
		<comments>http://tnlessone.wordpress.com/2007/07/03/a-controller-dsl-to-complement-mvc/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 22:09:54 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/2007/07/03/a-controller-dsl-to-complement-mvc/</guid>
		<description><![CDATA[Bruce Williams has been working on the view pattern over the past years; Notably the problems it raises: heaviness, conciseness, complexity, depending on the solution you choose. The presentation he gave at RailsConf, When &#8220;V&#8221; is for &#8220;Vexing&#8221;, introduced a Controller DSL: folder_for. Bruce gave an exhaustive use case of it on his blog.
Starting from [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Bruce Williams has been working on the view pattern over the past years; Notably the problems it raises: heaviness, conciseness, complexity, depending on the solution you choose. The presentation he gave at RailsConf, <a href="http://codefluency.com/assets/2007/5/18/VisForVexing.pdf" target="_blank">When &#8220;V&#8221; is for &#8220;Vexing&#8221;</a>, introduced a Controller DSL: <span style="font-style:italic;">folder_for</span>. Bruce gave an <a href="http://codefluency.com/2007/6/2/folder_for-a-controller-dsl" target="_blank">exhaustive use case of it</a> on his blog.<br />
Starting from a simple example that will need <span style="font-style:italic;">Folder </span>interfaces, he naturally chose to use a DSL: <span style="font-style:italic;">folder_for</span>.</p>
<pre><code> class CarsController &lt; ApplicationController

    # ...
    folder_for :show do
      tab "General Information" do
        @score = current_user.score_for_car(@car)
      end
      tab "History"
      tab "Photos"
    end
    # ...

 end</code></pre>
<p>Bruce uses convention over the use of one view template to render each selected tab partial (<span style="font-style:italic;">cars/show.html.erb</span>). His views will be structured this way then:</p>
<pre><code> cars/
    show.html.erb
    show/
      _general_information.html.erb
      _history.html.erb
      _photos.html.erb</code></pre>
<p>Bruce doesn&#8217;t only bring a new plugin which is more like a sample code; But he showed that a hundred lines of code was enough to accomplish his task demonstrating that a DSL can be deployed effectively with Ruby. The code is cleaner even if breaking some rules:</p>
<blockquote><p>There are likely several of you reading this that are disturbed to see a <em>folder</em> reference within a <em>controller</em>, as this amounts to some level of <span class="caps">MVC</span> “separation of concerns” blasphemy in your very strict, very well-worn code rulebook.</p>
<p>I’m here to tell you it’s okay, and you’ll recover in time.</p>
<p>Let’s keep in mind here that the <span class="caps">MVC</span> separation of concerns, while a great rule of thumb, is just that … it is not an ivory tower to be left unassailed in times of dire need. At times, it makes sense to allow abstractions to cross these boundaries for the sake of reducing our own overhead, and in the cause of developing your own app-wide domain specific language—something, that in my book, is the principal sign of a good Rails developer (for what it’s worth).</p></blockquote>
<p><span class="url"></span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/84/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/84/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=84&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2007/07/03/a-controller-dsl-to-complement-mvc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>When visionaries are too much in advance.</title>
		<link>http://tnlessone.wordpress.com/2007/05/15/when-visionaries-are-too-much-in-advance/</link>
		<comments>http://tnlessone.wordpress.com/2007/05/15/when-visionaries-are-too-much-in-advance/#comments</comments>
		<pubDate>Tue, 15 May 2007 21:17:02 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[IDE]]></category>

		<category><![CDATA[languages]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/2007/05/15/when-visionaries-are-too-much-in-advance/</guid>
		<description><![CDATA[There&#8217;s a company out there that always surprised me for always being in advance next to its competitors. This company is JetBrains (and no I do not work for JetBrains nor do I have stock options in it). But sometimes seeing in the future doesn&#8217;t always pay (in term of $!). Indeed maybe you remember [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>There&#8217;s a company out there that always surprised me for always being in advance next to its competitors. This company is <a href="http://www.jetbrains.com/" target="_blank">JetBrains</a> (and no I do not work for JetBrains nor do I have stock options in it). But sometimes seeing in the future doesn&#8217;t always pay (in term of $!). Indeed maybe you remember back in 2004 Sergey Dmitriev, the cofounder and CEO of JetBrains Inc., published a paper about <a href="http://www.onboard.jetbrains.com/is1/articles/04/10/lop/index.html" target="_blank">Language Oriented Programming: The Next Programming Paradigm</a>.</p>
<blockquote><p> Rather than solving problems in <a href="http://en.wikipedia.org/wiki/General-purpose_programming_language" title="General-purpose programming language" target="_blank">general-purpose programming languages</a>, the programmer creates one or more <a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language" title="Domain-specific programming language" target="_blank">domain-specific programming languages</a> for the problem first, and solves the problem in those languages.</p></blockquote>
<p>I remember reading that paper when it came out and finding it really promising and avantgardist, I thought it would be the future. Soon after I gave a try to MPS EAP version. Martin Fowler found it <a href="http://www.martinfowler.com/articles/languageWorkbench.html#Meta-programmingSystem" target="_blank">promising</a> as well in 2005:</p>
<blockquote><p> Although I&#8217;m not enough of a prognosticator to say whether they will succeed in their ambition, I do think that these tools are some of the most interesting things on the horizon of software development.</p></blockquote>
<p>The old debates were already starting&#8230; Unfortunately, years passed and MPS became a commercial failure, and has been like discontinued since then. Nowadays everybody and his dog talk about DSL, maybe that&#8217;s the reason why it appears again on <a href="http://www.jetbrains.com/mps/">JetBrains website</a>. Sergey had only 2 years in advance with his <em>development software solution. </em>People always complain about late delivery of their software, JetBrains is the only company delivering your software and features before you ever needed it!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/80/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/80/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=80&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2007/05/15/when-visionaries-are-too-much-in-advance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to detect which language a text is written in? Or when science meets human!</title>
		<link>http://tnlessone.wordpress.com/2007/05/13/how-to-detect-which-language-a-text-is-written-in-or-when-science-meets-human/</link>
		<comments>http://tnlessone.wordpress.com/2007/05/13/how-to-detect-which-language-a-text-is-written-in-or-when-science-meets-human/#comments</comments>
		<pubDate>Sun, 13 May 2007 18:31:38 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[computer science]]></category>

		<category><![CDATA[languages]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/2007/05/13/how-to-detect-which-language-a-text-is-written-in-or-when-science-meets-human/</guid>
		<description><![CDATA[As I mentioned earlier in my spam attack analysis, I wanted to know which language spams I receive are written in. My first bruteforce-like idea was to take each word one by one, and search in english/french/german/&#8230; dictionaries whether the words were in. But with this approach I would miss all the conjugated verbs (until [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As I mentioned earlier in my <a href="http://tnlessone.wordpress.com/2007/05/13/spam-attacks-when-how-what-in-ruby/">spam attack analysis</a>, I wanted to know which language spams I receive are written in. My first bruteforce-like idea was to take each word one by one, and search in english/french/german/&#8230; dictionaries whether the words were in. But with this approach I would miss all the conjugated verbs (until I had a really nice dictionary like the one I have now in firefox plugin). Then I remember that languages could differ in the distribution of their alphabetical letters, but well I had no statistics about that&#8230;<br />
That was it for my own brainstorming, I decided to have a look at what google thinks about this problem. I firstly landed on some online language detector&#8230; The easy solution would have been to abuse this service which must have some cool algorithms, but well I needed to know what kind of algorithms it could be, and I didn&#8217;t want to rely on any thirdparty web service. Finally I read about <a href="http://www.sfs.uni-tuebingen.de/iscl/Theses/kranig.pdf" target="_blank">Evaluation of Language Identification Methods,</a> of which the abstract seemed perfect:</p>
<blockquote><p> Language identification plays a major role in several Natural Language Processing applications. It is mostly used as an important preprocessing step. Various approaches have been made to master the task. Recognition rates have tremendously increased. Today identification rates of up to 99 % can be reached even for small input. The following paper will give an overview about the approaches, explain how they work, and comment on their accuracy. In the remainder of the paper, three freely available language identification programs are tested and evaluated.</p></blockquote>
<p>I found the N-gram approach on page 8 (chapter 4) rather interesting. The principle is to cut into defined pieces <em>m</em> long texts written in their respective language (english, french&#8230;), that we will call training texts, and count how much time each piece appeared; Do the same on the text you want to identify, and check the training text matching your text the best; This training text is most likely written in the same language as your text.<br />
The pieces are the N-grams, ie for the word GARDEN the bi-grams (N=2) are: G, GA, AR, RD, DE, EN, N.<br />
Now there are various way of finding the best <em>matching</em> text playing with the N-grams, distances, score&#8230;</p>
<p><a href="http://tnlessone.files.wordpress.com/2007/05/ngram_matching.png" title="N-gram comparison"><img src="http://tnlessone.files.wordpress.com/2007/05/ngram_matching.png" alt="N-gram comparison" /></a><br />
I found an implementation from 1996 in C, <a href="http://www.dougb.com/ident.html" target="_blank">here</a> with <a href="http://www.dougb.com/src/li/li96.tar.gz" target="_blank">sources</a>. So I followed same algorithm and implemented it in Ruby. Those C sources reminded me of my C days where you had to implement your lists, hashes. Those sources are optimized for memory usage (10 years ago&#8230;)&#8230; At the end the Ruby code is a hundred line while the C was four times more, and the Ruby code is easier to read. Don&#8217;t take that as a demonstration, it is not!! I admit the C binary is maybe a bit faster (but not that much ;)). I&#8217;ll try to commit it on rubyforge when I have some time.</p>
<p>The results are excellent as shown in the paper:</p>
<p><a href="http://tnlessone.files.wordpress.com/2007/05/ngram_results.png" title="N-gram results"><img src="http://tnlessone.files.wordpress.com/2007/05/ngram_results.png" alt="N-gram results" height="326" width="435" /></a></p>
<p>Anyway actually in this story the most interesting was not the implementation but the method: It is funny that you can identify languages (so human population as well) by without requiring linguistic knowledge: ignoring grammar, senses of words (dictionary)&#8230; But by only analyzing letters and blocks of letters from Shakespeare or Baudelaire. N-grams can also be used in other areas, for example in music to predict which note is likely to follow.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/81/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/81/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=81&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2007/05/13/how-to-detect-which-language-a-text-is-written-in-or-when-science-meets-human/feed/</wfw:commentRss>
	
		<media:content url="http://tnlessone.files.wordpress.com/2007/05/ngram_matching.png" medium="image">
			<media:title type="html">N-gram comparison</media:title>
		</media:content>

		<media:content url="http://tnlessone.files.wordpress.com/2007/05/ngram_results.png" medium="image">
			<media:title type="html">N-gram results</media:title>
		</media:content>
	</item>
		<item>
		<title>Spam attacks! When? How? What? &#8230; in Ruby</title>
		<link>http://tnlessone.wordpress.com/2007/05/13/spam-attacks-when-how-what-in-ruby/</link>
		<comments>http://tnlessone.wordpress.com/2007/05/13/spam-attacks-when-how-what-in-ruby/#comments</comments>
		<pubDate>Sun, 13 May 2007 18:31:23 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/2007/05/13/spam-attacks-when-how-what-in-ruby/</guid>
		<description><![CDATA[Today I was wondering about those spams I receive daily. GMail is doing a great work at detecting them, reason why I decided to forward several of my polluted personal mails to my GMail addie. I wanted to know more about those spams and additionally wanted to do that quickly and with fun. So I [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Today I was wondering about those spams I receive daily. <a href="https://mail.google.com">GMail</a> is doing a great work at detecting them, reason why I decided to forward several of my polluted personal mails to my GMail addie. I wanted to know more about those spams and additionally wanted to do that quickly and <em>with fun</em>. So I took my <a href="http://deadlock.nbextras.org/hudson/job/ruby/">favorite Ruby IDE</a>, I installed some ruby gems: <a href="http://rubyforge.org/projects/gmailutils">gmailer</a>, <a href="http://rubyforge.org/projects/activerecord/">activerecord</a>, <a href="http://gruff.rubyforge.org/">gruff</a> (together with <a href="http://mouraf.org/blog/show/14">Mouraf&#8217;s patch</a> to extend legend as it was cut when too long on Gruff::Pie).<br />
You should note that to make GMailUtils gem run, you should also have &#8216;net/https&#8217; library installed on your pc, else you&#8217;ll end with a mysterious:<br />
<code>irb(main):001:0&gt; require 'gmailer'<br />
LoadError: no such file to load &#8212; gmailer<br />
from (irb):1:in `require&#8217;<br />
from (irb):1<br />
</code><br />
Solution :<br />
<code>sudo apt-get install libopenssl-ruby</code><br />
Why I decided to use an api to get my mails while GMail allow pop3? Firstly I wanted to play with this gem, then you can&#8217;t get directly your spam through gmail pop3 (you&#8217;ll need some label tricks to finally put them in your &#8216;Inbox&#8217;, something that you could do in a first pass with GMailUtils), also the api goes through https thus bypassing usual firewalls that block pop3 port.<br />
I wanted to know which language those f****** spams were in&#8230; So I decided to code (translate in Ruby even!) <a href="http://tnlessone.wordpress.com/2007/05/13/how-to-detect-which-language-a-text-is-written-in-or-when-science-meets-human/">a language detector</a> (am blogging about it here).<br />
So some lines of code later I had what I wanted to know (at least for the last month as GMail has a Spam buffer):</p>
<p><a href="http://tnlessone.files.wordpress.com/2007/05/pie_lang_400.png" title="Pie Language"><img src="http://tnlessone.files.wordpress.com/2007/05/pie_lang_400.png" alt="Pie Language" /></a><a href="http://tnlessone.files.wordpress.com/2007/05/chart_hour_400.png" title="Chart Hour"><img src="http://tnlessone.files.wordpress.com/2007/05/chart_hour_400.png" alt="Chart Hour" /></a></p>
<p><a href="http://tnlessone.files.wordpress.com/2007/05/pie_semantics_400.png" title="Pie Semantic"><img src="http://tnlessone.files.wordpress.com/2007/05/pie_semantics_400.png" alt="Pie Semantic" /></a><a href="http://tnlessone.files.wordpress.com/2007/05/chart_spam_day_400.png" title="Monthly Spam"><img src="http://tnlessone.files.wordpress.com/2007/05/chart_spam_day_400.png" alt="Monthly Spam" /></a></p>
<p><a href="http://tnlessone.files.wordpress.com/2007/05/chart_weekday_400.png" title="Bars WeekDay Spam"><img src="http://tnlessone.files.wordpress.com/2007/05/chart_weekday_400.png" alt="Bars WeekDay Spam" /></a></p>
<p>What to conclude from this? Well actually nothing much&#8230; Except that 91% of spam is in english (followed by 7% of which are french but that is normal as I am french and I have french email addie forwarded to my gmail). 34% of the pollution is concerning viagra, sex&#8230; 16% about watch. Concerning the distribution of spam in time I thought I would find more observable period; It only seems as if I receive more spam on Thursday.</p>
<p><a href="http://tnlessone.files.wordpress.com/2007/05/my_pie_test_lang.png" title="Spam By Language"><br />
</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/72/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/72/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=72&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2007/05/13/spam-attacks-when-how-what-in-ruby/feed/</wfw:commentRss>
	
		<media:content url="http://tnlessone.files.wordpress.com/2007/05/pie_lang_400.png" medium="image">
			<media:title type="html">Pie Language</media:title>
		</media:content>

		<media:content url="http://tnlessone.files.wordpress.com/2007/05/chart_hour_400.png" medium="image">
			<media:title type="html">Chart Hour</media:title>
		</media:content>

		<media:content url="http://tnlessone.files.wordpress.com/2007/05/pie_semantics_400.png" medium="image">
			<media:title type="html">Pie Semantic</media:title>
		</media:content>

		<media:content url="http://tnlessone.files.wordpress.com/2007/05/chart_spam_day_400.png" medium="image">
			<media:title type="html">Monthly Spam</media:title>
		</media:content>

		<media:content url="http://tnlessone.files.wordpress.com/2007/05/chart_weekday_400.png" medium="image">
			<media:title type="html">Bars WeekDay Spam</media:title>
		</media:content>
	</item>
		<item>
		<title>Back!</title>
		<link>http://tnlessone.wordpress.com/2007/05/13/back/</link>
		<comments>http://tnlessone.wordpress.com/2007/05/13/back/#comments</comments>
		<pubDate>Sun, 13 May 2007 18:30:51 +0000</pubDate>
		<dc:creator>tnlessone</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tnlessone.wordpress.com/2007/05/13/back/</guid>
		<description><![CDATA[Hi folks!
Sorry for being away that long. Actually I have been quite busy with work, Ruby, and commiting news for InfoQ Ruby community, writing about a Ruby IDE article for a french magazin (to be published when finished&#8230;) and now I should get involved in a Rails project.
But keep in touch, more to come about [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hi folks!<br />
Sorry for being away that long. Actually I have been quite busy with work, <a href="http://www.ruby-lang.org/">Ruby</a>, and commiting news for <a href="http://www.infoq.com/">InfoQ</a> Ruby community, writing about a Ruby IDE article for a <a href="http://www.programmez.com/">french magazin</a> (to be published when finished&#8230;) and now I should get involved in a Rails project.<br />
But keep in touch, more to come about <a href="http://tnlessone.wordpress.com/2007/05/13/spam-attacks-when-how-what-in-ruby/">Spam analysis with Ruby</a>, <a href="http://tnlessone.wordpress.com/2007/05/13/how-to-detect-which-language-a-text-is-written-in-or-when-science-meets-human/">coding a text language detector</a>, Ruby IDE comparison update&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tnlessone.wordpress.com/73/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tnlessone.wordpress.com/73/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tnlessone.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tnlessone.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tnlessone.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tnlessone.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tnlessone.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tnlessone.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tnlessone.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tnlessone.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tnlessone.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tnlessone.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tnlessone.wordpress.com&blog=363673&post=73&subd=tnlessone&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tnlessone.wordpress.com/2007/05/13/back/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>