<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Claudio Cherubino&#039;s blog &#187; Software Development</title>
	<atom:link href="http://www.claudiocherubino.it/category/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.claudiocherubino.it</link>
	<description>Life of a Googler</description>
	<lastBuildDate>Sat, 29 May 2010 18:44:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Spell checking with F#</title>
		<link>http://www.claudiocherubino.it/2010/01/25/spell-checking-with-f/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=spell-checking-with-f</link>
		<comments>http://www.claudiocherubino.it/2010/01/25/spell-checking-with-f/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 19:00:52 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[Lavoro]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[f#]]></category>
		<category><![CDATA[fsharp]]></category>
		<category><![CDATA[ioprogrammo]]></category>
		<category><![CDATA[jaro-winkler]]></category>
		<category><![CDATA[programming magazine]]></category>
		<category><![CDATA[similarity]]></category>
		<category><![CDATA[spell checker]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://www.claudiocherubino.it/?p=681</guid>
		<description><![CDATA[Some months ago I have written an introductory article on F# for the &#8220;IoProgrammo&#8221; magazine (sorry, Italian only!) and now I have published a second article on the latest issue of the same magazine. This new article covers more advanced topics and is focused on writing a basic spell checker that mixes together the functional [...]]]></description>
			<content:encoded><![CDATA[<p>Some months ago I have written an <a href="http://www.claudiocherubino.it/2009/07/21/f-introductory-article-on-ioprogrammo-magazine/">introductory article</a> on F# for the &#8220;<a href="http://www.ioprogrammo.it/">IoProgrammo</a>&#8221; magazine (sorry, Italian only!) and now I have published a second article on the latest issue of the same magazine.</p>
<p>This new article covers more advanced topics and is focused on writing a basic spell checker that mixes together the functional and object-oriented programming paradigms. </p>
<p>The spell checking algorithm is implemented in functional F# and is based on the <a href="http://en.wikipedia.org/wiki/Jaro-Winkler_distance">Jaro-Winkler similarity distance</a> while the UI is WPF-based and written with OO code.</p>
<p>I hope you will appreciate the article and I&#8217;ll be very happy to get any feedback from the readers.</p>
<p><center><div id="attachment_682" class="wp-caption aligncenter" style="width: 229px"><a href="http://www.claudiocherubino.it/wp-content/uploads/2010/01/ioprogrammo_february2010.jpg"><img src="http://www.claudiocherubino.it/wp-content/uploads/2010/01/ioprogrammo_february2010-219x300.jpg" alt="IoProgrammo - February 2010" title="ioprogrammo_february2010" width="219" height="300" class="size-medium wp-image-682" /></a><p class="wp-caption-text">IoProgrammo - February 2010</p></div></center></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.claudiocherubino.it/2009/07/21/f-introductory-article-on-ioprogrammo-magazine/" title="F# introductory article on IoProgrammo magazine (21 July 2009)">F# introductory article on IoProgrammo magazine</a> (3)</li>
	<li><a href="http://www.claudiocherubino.it/2008/07/01/the-missing-number/" title="The missing number (1 July 2008)">The missing number</a> (13)</li>
	<li><a href="http://www.claudiocherubino.it/2008/02/20/the-2008-winter-scripting-games-pairing-off/" title="The 2008 Winter Scripting Games: Pairing Off (20 February 2008)">The 2008 Winter Scripting Games: Pairing Off</a> (2)</li>
	<li><a href="http://www.claudiocherubino.it/2008/01/22/sorting-odd-and-even-numbers-in-f/" title="Sorting odd and even numbers in F# (22 January 2008)">Sorting odd and even numbers in F#</a> (5)</li>
	<li><a href="http://www.claudiocherubino.it/2008/03/07/run-length-encoding-in-f/" title="Run-Length Encoding in F# (7 March 2008)">Run-Length Encoding in F#</a> (2)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.claudiocherubino.it/2010/01/25/spell-checking-with-f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby outperforms Python with Project Voldemort</title>
		<link>http://www.claudiocherubino.it/2009/12/04/ruby-outperforms-python-with-project-voldemort/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ruby-outperforms-python-with-project-voldemort</link>
		<comments>http://www.claudiocherubino.it/2009/12/04/ruby-outperforms-python-with-project-voldemort/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 15:24:27 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[google code]]></category>
		<category><![CDATA[google protocol buffers]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[project voldemort]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.claudiocherubino.it/?p=675</guid>
		<description><![CDATA[If you are performing some statistical analysis on a huge amount of data (try thinking about Twitter data) then the database can become a real bottleneck and that&#8217;s the reason why the interest on the NoSQL movement is quickly growing. One of the most popular distributed key-value store that tries to overcome this problem is [...]]]></description>
			<content:encoded><![CDATA[<p>If you are performing some statistical analysis on a huge amount of data (try thinking about Twitter data) then the database can become a real bottleneck and that&#8217;s the reason why the interest on the <a href="http://en.wikipedia.org/wiki/NoSQL">NoSQL</a> movement is quickly growing.</p>
<p>One of the most popular distributed key-value store that tries to overcome this problem is <a href="http://project-voldemort.com/">Project Voldemort</a>, an open-source project based on Amazon Dynamo and sponsored by LinkedIn that uses it for some high-scalability storage problems.</p>
<p>Project Voldemort is written in Java and also provides the developers with C++ and Python client libraries to access the store. One thing that (strangely) was missing is the support for the Ruby language, mainly because of the lack of a stable Google Prototocol Buffers implementation for this language.</p>
<p>There is however a gem called <a href="http://code.google.com/p/ruby-protobuf/">ruby_protobuf</a>, that besides being in alpha release, turned out to be reliable enough for my purpose of porting Project Voldemort Python client library to Ruby.</p>
<p>The library I wrote is called <a href="http://code.google.com/p/voldemort-ruby-client/">voldemort-ruby-client</a> and is now released under the Apache 2.0 License on Google Code, so it is absolutely free for you to experiment with it.</p>
<p>While writing the library I also ported the Python test cases to Ruby and I found the latter to be <strong>3000 times faster</strong> than the former!<br />
Does anybody have a suggestion for the reason of this outstanding improvement?</p>
<p>In my machine the Ruby client performs about 2 millions PUT (or GET) requests per second against the 6 hundreds of the Python client.<br />
Is there anybody else willing to repeat the <a href="http://code.google.com/p/voldemort-ruby-client/source/browse/trunk/test.rb">benchmark</a> on his machine and publish the results?</p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.claudiocherubino.it/2009/12/01/a-new-beginning-and-a-new-wordpress-plugin/" title="A new beginning (and a new WordPress plugin) (1 December 2009)">A new beginning (and a new WordPress plugin)</a> (0)</li>
	<li><a href="http://www.claudiocherubino.it/2009/02/21/sbarco-su-twitter/" title="Sbarco su Twitter (21 February 2009)">Sbarco su Twitter</a> (0)</li>
	<li><a href="http://www.claudiocherubino.it/2007/02/13/i-social-network/" title="I social network (13 February 2007)">I social network</a> (10)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.claudiocherubino.it/2009/12/04/ruby-outperforms-python-with-project-voldemort/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
