<?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"
	>

<channel>
	<title>musc@> $daniele.rant &#124; Out-Blog &#187; Ruby</title>
	<atom:link href="http://www.muscetta.com/category/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muscetta.com</link>
	<description>Superior Dedication - Specialization is bullshit.</description>
	<pubDate>Tue, 26 Aug 2008 16:55:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Backup or Store stuff to GMail via IMAP in Ruby</title>
		<link>http://www.muscetta.com/2008/06/10/backup-or-store-stuff-to-gmail-via-imap-in-ruby/</link>
		<comments>http://www.muscetta.com/2008/06/10/backup-or-store-stuff-to-gmail-via-imap-in-ruby/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 18:49:44 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

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

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

		<category><![CDATA[Cross Post]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.muscetta.com/?p=279</guid>
		<description><![CDATA[Once upon a time, I used to store some automated small backups into GMail just by having the scheduled backup send an email to my GMail account. At one stage they blocked me from doing so, marking those repeated email as SPAM.
After that, I took a different approach: I kept sending the mail on the [...]]]></description>
			<content:encoded><![CDATA[<p>Once upon a time, I used to store some automated <b>small</b> backups into GMail just by having the scheduled backup send an email to my GMail account. <a href="http://www.muscetta.com/2006/10/07/google-has-pissed-me-off-this-week/">At one stage they blocked me from doing so, marking those repeated email as SPAM</a>.</p>
<p>After that, I took a different approach: I kept sending the mail on the SAME server as the backup, and using IMAP I could DRAG-and-DROP the backup attachment from the mailbox on one server to the mailbox on another server (=GMail). They did not mark me as a spammer that way, of course.<br />
So that worked for a while, but then I got tired of doing this manually.</p>
<p>So the following ruby script is the way I automated the &#034;move offsite&#034; part of that backup.<br />
For completeness, I will give the due credits about who set me on the right track: I started off by <a href="http://wonko.com/post/ruby_script_to_sync_email_from_any_imap_server_to_gmail">this example by Ryan</a>.</p>
<pre><span class="comment">#!/usr/bin/env ruby</span>
<span class="ident">begin_</span> <span class="punct">=</span> <span class="constant">Time</span><span class="punct">.</span><span class="ident">now</span>

<span class="comment">#includes</span>
<span class="ident">require</span> <span class="punct">'</span><span class="string">net/imap</span><span class="punct">'</span>

<span class="comment">##Source Info</span>
<span class="global">$SRCSERVER</span><span class="punct">="</span><span class="string">mail.muscetta.com</span><span class="punct">"</span>
<span class="global">$SRCPORT</span><span class="punct">=</span><span class="number">143</span>
<span class="global">$SRCSSL</span><span class="punct">=</span><span class="constant">false</span>
<span class="global">$SRCUSERNAME</span><span class="punct">="</span><span class="string">daniele</span><span class="punct">"</span>
<span class="global">$SRCPASSWORD</span><span class="punct">="</span><span class="punct">"</span>
<span class="global">$SRCFOLDER</span><span class="punct">="</span><span class="string">INBOX.Backups</span><span class="punct">"</span>

<span class="comment">##Destination Info</span>
<span class="global">$DSTSERVER</span><span class="punct">="</span><span class="string">imap.gmail.com</span><span class="punct">"</span>
<span class="global">$DSTPORT</span><span class="punct">=</span><span class="number">993</span>
<span class="global">$DSTSSL</span><span class="punct">=</span><span class="constant">true</span>
<span class="global">$DSTUSERNAME</span><span class="punct">="</span><span class="string">muscetta@gmail.com</span><span class="punct">"</span>
<span class="global">$DSTPASSWORD</span><span class="punct">="</span><span class="punct">"</span>
<span class="global">$DSTFOLDER</span><span class="punct">="</span><span class="string">Backup</span><span class="punct">"</span>

<span class="comment">#connect to source</span>
<span class="ident">puts</span> <span class="punct">"</span><span class="string">connecting to source server <span class="expr">#{$SRCSERVER}</span>... <span class="escape">\n\n</span></span><span class="punct">"</span>
<span class="ident">srcimap</span> <span class="punct">=</span> <span class="constant">Net</span><span class="punct">::</span><span class="constant">IMAP</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="global">$SRCSERVER</span><span class="punct">,</span><span class="global">$SRCPORT</span><span class="punct">,</span><span class="global">$SRCSSL</span><span class="punct">)</span>
<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">login</span><span class="punct">(</span><span class="global">$SRCUSERNAME</span><span class="punct">,</span> <span class="global">$SRCPASSWORD</span><span class="punct">)</span>
<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">select</span><span class="punct">(</span><span class="global">$SRCFOLDER</span><span class="punct">)</span>

<span class="comment">#connect to destination</span>
<span class="ident">puts</span> <span class="punct">"</span><span class="string">connecting to destination server <span class="expr">#{$DSTSERVER}</span>... <span class="escape">\n\n</span></span><span class="punct">"</span>
<span class="ident">dstimap</span> <span class="punct">=</span> <span class="constant">Net</span><span class="punct">::</span><span class="constant">IMAP</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="global">$DSTSERVER</span><span class="punct">,</span><span class="global">$DSTPORT</span><span class="punct">,</span><span class="global">$DSTSSL</span><span class="punct">)</span>
<span class="ident">dstimap</span><span class="punct">.</span><span class="ident">login</span><span class="punct">(</span><span class="global">$DSTUSERNAME</span><span class="punct">,</span> <span class="global">$DSTPASSWORD</span><span class="punct">)</span>
<span class="ident">dstimap</span><span class="punct">.</span><span class="ident">select</span><span class="punct">(</span><span class="global">$DSTFOLDER</span><span class="punct">)</span>

<span class="comment"># Loop through all messages in the source folder.</span>
<span class="ident">uids</span> <span class="punct">=</span> <span class="ident">srcimap</span><span class="punct">.</span><span class="ident">uid_search</span><span class="punct">(['</span><span class="string">ALL</span><span class="punct">'])</span>
<span class="keyword">if</span> <span class="ident">uids</span><span class="punct">.</span><span class="ident">length</span> <span class="punct">&gt;</span> <span class="number">0</span>
	<span class="global">$count</span> <span class="punct">=</span> <span class="ident">uids</span><span class="punct">.</span><span class="ident">length</span>
	<span class="ident">puts</span> <span class="punct">"</span><span class="string">found <span class="expr">#{$count}</span> messages to move... <span class="escape">\n\n</span></span><span class="punct">"</span>

	<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">uid_fetch</span><span class="punct">(</span><span class="ident">uids</span><span class="punct">,</span> <span class="punct">['</span><span class="string">ENVELOPE</span><span class="punct">']).</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">data</span><span class="punct">|</span>
		<span class="ident">mid</span> <span class="punct">=</span> <span class="ident">data</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">ENVELOPE</span><span class="punct">'].</span><span class="ident">message_id</span>

		<span class="comment"># Download the full message body from the source folder.</span>
		<span class="ident">puts</span> <span class="punct">"</span><span class="string">reading message... <span class="expr">#{mid}</span></span><span class="punct">"</span>
		<span class="ident">msg</span> <span class="punct">=</span> <span class="ident">srcimap</span><span class="punct">.</span><span class="ident">uid_fetch</span><span class="punct">(</span><span class="ident">data</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">UID</span><span class="punct">'],</span> <span class="punct">['</span><span class="string">RFC822</span><span class="punct">',</span> <span class="punct">'</span><span class="string">FLAGS</span><span class="punct">',</span> <span class="punct">'</span><span class="string">INTERNALDATE</span><span class="punct">']).</span><span class="ident">first</span>

		<span class="comment"># Append the message to the destination folder, preserving flags and internal timestamp.</span>
		<span class="ident">puts</span> <span class="punct">"</span><span class="string">copying message <span class="expr">#{mid}</span> to destination...</span><span class="punct">"</span>
		<span class="ident">dstimap</span><span class="punct">.</span><span class="ident">append</span><span class="punct">(</span><span class="global">$DSTFOLDER</span><span class="punct">,</span> <span class="ident">msg</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">RFC822</span><span class="punct">'],</span> <span class="ident">msg</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">FLAGS</span><span class="punct">'],</span> <span class="ident">msg</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">INTERNALDATE</span><span class="punct">'])</span>

		<span class="comment">#delete the msg</span>
		<span class="ident">puts</span> <span class="punct">"</span><span class="string">deleting messsage <span class="expr">#{mid}</span>...</span><span class="punct">"</span>
		<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">uid_store</span><span class="punct">(</span><span class="ident">data</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">UID</span><span class="punct">'],</span> <span class="punct">'</span><span class="string">+FLAGS</span><span class="punct">',</span> <span class="punct">[</span><span class="symbol">:Deleted</span><span class="punct">])</span>
		<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">expunge</span>

	<span class="keyword">end</span>

	<span class="comment">#disconnect</span>
	<span class="ident">dstimap</span><span class="punct">.</span><span class="ident">close</span>
	<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">close</span>
<span class="keyword">end</span>

<span class="ident">total_time</span> <span class="punct">=</span> <span class="constant">Time</span><span class="punct">.</span><span class="ident">now</span> <span class="punct">-</span> <span class="ident">begin_</span>
<span class="ident">puts</span> <span class="punct">"</span><span class="string">Done. RunTime: <span class="expr">#{total_time}</span> sec. <span class="escape">\n\n</span></span><span class="punct">"</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/06/10/backup-or-store-stuff-to-gmail-via-imap-in-ruby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows Live ID Web Authentication 1.0 SDK !</title>
		<link>http://www.muscetta.com/2007/08/16/windows-live-id-web-authentication-10-sdk/</link>
		<comments>http://www.muscetta.com/2007/08/16/windows-live-id-web-authentication-10-sdk/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 14:28:50 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

		<category><![CDATA[C#]]></category>

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

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

		<category><![CDATA[Cross Platform]]></category>

		<category><![CDATA[Cross Post]]></category>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/16/windows-live-id-web-authentication-10-sdk/</guid>
		<description><![CDATA[Check this out:
Windows Live ID Team has published on the web the SDK that lets you liveID (or &#034;passport&#034;)-enable your applications!
http://msdn2.microsoft.com/en-us/library/bb676633.aspx
There are even code samples in six different languages: C#, Java, PHP, Python, Ruby e Perl! You can download them from http://go.microsoft.com/fwlink/?LinkId=91761
Wow! Having time, it would be cool to write a Wordpress plugin using Passport [...]]]></description>
			<content:encoded><![CDATA[<p>Check this out:</p>
<p>Windows Live ID Team has published on the web the SDK that lets you liveID (or &#034;passport&#034;)-enable your applications!</p>
<p><a href="http://msdn2.microsoft.com/en-us/library/bb676633.aspx">http://msdn2.microsoft.com/en-us/library/bb676633.aspx</a></p>
<p>There are even code samples in six different languages: C#, Java, PHP, Python, Ruby e Perl! You can download them from <a href="http://go.microsoft.com/fwlink/?LinkId=91761">http://go.microsoft.com/fwlink/?LinkId=91761</a></p>
<p>Wow! Having time, it would be cool to write a Wordpress plugin using Passport authentication to authenticate/identify users that want to comment&#8230; mumble mumble&#8230;.. <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Interoperability. Wow.</p>
<p>More info at the Live ID starting Page: <a href="http://dev.live.com/blogs/liveid/archive/2006/05/18/8.aspx">http://dev.live.com/blogs/liveid/archive/2006/05/18/8.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/16/windows-live-id-web-authentication-10-sdk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Thoughts, Blogs, and Ruby with .Net</title>
		<link>http://www.muscetta.com/2006/06/09/thoughts-blogs-and-ruby-with-net/</link>
		<comments>http://www.muscetta.com/2006/06/09/thoughts-blogs-and-ruby-with-net/#comments</comments>
		<pubDate>Fri, 09 Jun 2006 11:14:29 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

		<category><![CDATA[C#]]></category>

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

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

		<category><![CDATA[Cross Platform]]></category>

		<category><![CDATA[Cross Post]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.muscetta.com/?p=115</guid>
		<description><![CDATA[For those who have not seen it yet, Mischa Kroon has a nice blog post about interoperability between Ruby and the .Net framework.
It provides several links and things to think about. If you are into .Net, or Ruby, or both, or simply interested about how things can interoperate, give it a read.
]]></description>
			<content:encoded><![CDATA[<p>For those who have not seen it yet, <a href="http://bloggingabout.net/blogs/mischa/archive/2006/05/14/12184.aspx">Mischa Kroon has a nice blog post about interoperability between Ruby and the .Net framework</a>.</p>
<p>It provides several links and things to think about. If you are into .Net, or Ruby, or both, or simply interested about how things can interoperate, give it a read.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/06/09/thoughts-blogs-and-ruby-with-net/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More on Ruby and IMAP</title>
		<link>http://www.muscetta.com/2006/01/05/more-on-ruby-and-imap/</link>
		<comments>http://www.muscetta.com/2006/01/05/more-on-ruby-and-imap/#comments</comments>
		<pubDate>Thu, 05 Jan 2006 12:03:52 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.muscetta.com/2006/01/05/more-on-ruby-and-imap/</guid>
		<description><![CDATA[I&#039;ve written here of a Ruby IMAP Script.
The script is INCREDIBLY simple (but it had to do a simple thing nonethless):

#!/usr/bin/env ruby
begin_ = Time.now
require 'net/imap'
if !ARGV[4]
        puts &#034;USAGE: ruby imapcheck.rb [server] [username] [password] [folder] [flag]&#034;
        exit
end
##### Variable Section
## your imap mail [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve written <a href="http://www.muscetta.com/2006/01/02/java-oh-java-aka-high-vs-low-level-languages-rant/trackback/">here</a> of a Ruby IMAP Script.</p>
<p>The script is INCREDIBLY simple (but it had to do a simple thing nonethless):</p>
<p><code><br />
#!/usr/bin/env ruby<br />
begin_ = Time.now</p>
<p>require 'net/imap'</p>
<p>if !ARGV[4]<br />
        puts &#034;USAGE: ruby imapcheck.rb [server] [username] [password] [folder] [flag]&#034;<br />
        exit<br />
end</p>
<p>##### Variable Section<br />
## your imap mail server<br />
$SERVER=ARGV[0]<br />
## your imap/smtp mail username<br />
$USERNAME=ARGV[1]<br />
## your imap/smtp mail password<br />
$PASSWORD=ARGV[2]<br />
## your mail folder (for example, INBOX)<br />
$FOLDER=ARGV[3]<br />
## flag to use (as per RFC 2060)<br />
$FLAG=ARGV[4]<br />
##### End Variable Section</p>
<p>imap = Net::IMAP.new($SERVER)<br />
imap.login($USERNAME, $PASSWORD)<br />
imap.select($FOLDER)<br />
count = imap.status($FOLDER,[$FLAG])[$FLAG]</p>
<p>puts &#034;#{count} messages with flag #{$FLAG} \n\n&#034;<br />
total_time = Time.now - begin_<br />
puts &#034;RUNTIME: #{total_time}&#034;<br />
</code></p>
<p>There is another interesting example about this at <a href="http://willj.net/blog/2005/09/19/net-imap-hairy/trackback/">Will&#039;s Blog</a>. It&#039;s funny how people try to do the same things at similar times <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Of course official doc for this is <a href="http://www.ruby-doc.org/core-1.9/classes/Net/IMAP.html">here</a>.<br />
But If you want to snoop at a more complex webmail application using IMAP from <a href="http://www.ruby-lang.org/en/">Ruby</a>/<a href="http://www.rubyonrails.org/">Rails</a> you should seriously check out <a href="http://mailr.org/">Mailr</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/01/05/more-on-ruby-and-imap/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java&#8230; oh Java&#8230; (aka &#8220;High vs. Low level languages rant&#8221;)</title>
		<link>http://www.muscetta.com/2006/01/02/java-oh-java-aka-high-vs-low-level-languages-rant/</link>
		<comments>http://www.muscetta.com/2006/01/02/java-oh-java-aka-high-vs-low-level-languages-rant/#comments</comments>
		<pubDate>Mon, 02 Jan 2006 16:14:38 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

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

		<category><![CDATA[Cross Post]]></category>

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

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.muscetta.com/?p=85</guid>
		<description><![CDATA[I said here (and someone else said that too) that &#034;Java is the new cobol&#034;.
When  saying so, I mentioned that En3pY hates Java, here it is another post by him written after I forwarded him this Joel Article (which I read from Scoble, in turn).
All in all, in this case, I tend to partially [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.muscetta.com/2005/12/24/java-is-the-new-cobol-i-confirm/">I said here (and someone else said that too) that &#034;Java is the new cobol&#034;.</a><br />
When  saying so, I mentioned that <a href="http://www.en3py.net">En3pY</a> hates Java, <a href="http://spaces.msn.com/members/en3py/blog/cns!1pLSb3mam2gtAX9zlkiTgjnA!141.entry">here it is another post by him</a> written after I forwarded him <a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html">this Joel Article</a> (which I read from <a href="http://scobleizer.wordpress.com/2005/12/29/joel-says-teaching-java-is-bad-for-cs-students/trackback/">Scoble</a>, in turn).</p>
<p>All in all, in this case, I tend to partially agree on some points but slightly disagree on others with Joel.</p>
<p>In fact, while I do acknowledge the need of  &#034;hardcore&#034; developers to fix and build lower level things and mantain current code (and know WHAT they are doing), there are also many cases where coding in a high level language which abstracts complexity IS actually more efficient and cost effective, not having to reinvent the wheel every time.<br />
So there are a lot of useful and nice programs written by people who DO KNOW what happens under the hood (as good in C as in Assembler), that for simplicity and flexibility run in sandboxes, high level languages, even interpreted ones! <a href="http://www.immunitysec.com/products-canvas.shtml">An example is Dave Aitel&#039;s CANVAS, written in Python.</a> But that&#039;s just an example.</p>
<p>But I do agree with En3pY that I don&#039;t like Java myself, and I consider it being too &#034;heavy&#034;, in general.<br />
Solution on my side, tough, is that you don&#039;t need C or assembler to get cleaner, smaller, more efficient code, you just need better languages. An example of this is a situation I have been involved in some time ago: in that case a colleague (that works with a very large customer who has a very large exchange deployment) needed to do some performance testing of this Exchange system. He had done the testing from some Windows IMAP clients, but the customer also wanted to see the same performance values measured from a Linux box accessing the same exchange via the very same IMAP protocol.<br />
So I wrote a nice and sweet <a href="http://www.ruby-lang.org/en/">Ruby</a> script - and at the same time another colleague developer a similar application (in Java).<br />
Result: 45 kilobytes of .JAR to do the same things I did in 20 lines of <a href="http://www.ruby-lang.org/en/">Ruby</a> (20 lines - including comments!).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/01/02/java-oh-java-aka-high-vs-low-level-languages-rant/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
