<?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>Gustavo on Information Technology &#187; booleano</title>
	<atom:link href="http://gustavonarea.net/blog/tags/booleano/feed/" rel="self" type="application/rss+xml" />
	<link>http://gustavonarea.net</link>
	<description>Just a social techie</description>
	<lastBuildDate>Tue, 20 Jul 2010 20:47:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Koren&#8217;s SVD++ Python Implementation</title>
		<link>http://gustavonarea.net/blog/posts/korens-svd-python-implementation/</link>
		<comments>http://gustavonarea.net/blog/posts/korens-svd-python-implementation/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 12:01:30 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[booleano]]></category>
		<category><![CDATA[Netflix Prize]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Recommender System]]></category>

		<guid isPermaLink="false">http://gustavonarea.net/?p=274</guid>
		<description><![CDATA[I recently had to implement a recommender system for the Netflix Prize. Out of the best known models, I chose Yehuda Koren&#8217;s SVD++ model as published on the paper entitled &#8220;Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model&#8221; (the version that doesn&#8217;t take into account temporal effects; I&#8217;d have implemented the complete model, but [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had to implement a recommender system for the <a href="http://www.netflixprize.com/">Netflix Prize</a>. Out of the best known models, I chose Yehuda Koren&#8217;s SVD++ model as published on the paper entitled &#8220;<a href="http://public.research.att.com/~volinsky/netflix/kdd08koren.pdf">Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model</a>&#8221; (the version that doesn&#8217;t take into account temporal effects; I&#8217;d have implemented the complete model, but couldn&#8217;t due to time constraints).</p>
<p>I named this Python-based project &#8220;wooflix&#8221; and you can download it from <a href="http://code.gustavonarea.net/wooflix.tar.bz">code.gustavonarea.net</a>. It ships with a command-line interface and basic documentation, including the <a href="http://en.wikipedia.org/wiki/Software_design_document">design document</a>.</p>
<p>It&#8217;s the first project, as far as I know, that uses <a href="/blog/posts/announcing-booleano/">Booleano</a>. With it, you can get random movie recommendations and filter them, like this:</p>
<p><code># Get 5 movie recommendations for user #7, at least those published after 2001<br />
wooflix recommendations 7 --max="5" --filter="movie:year > 2001"</code></p>
<p>Keep in mind that I won&#8217;t offer support for it; I&#8217;m publishing because I thought it might be useful for some people, but I have no intentions to work on it in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://gustavonarea.net/blog/posts/korens-svd-python-implementation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Announcing Booleano</title>
		<link>http://gustavonarea.net/blog/posts/announcing-booleano/</link>
		<comments>http://gustavonarea.net/blog/posts/announcing-booleano/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 21:26:27 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[boolean]]></category>
		<category><![CDATA[booleano]]></category>
		<category><![CDATA[natural language processing]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://gustavonarea.net/?p=264</guid>
		<description><![CDATA[I am proud to announce the first alpha release of Booleano, a Python-based interpreter of boolean expressions:

Booleano is an interpreter of boolean expressions, a library to define and run filters available as text (e.g., in a natural language) or in Python code.
In order to handle text-based filters, Booleano ships with a fully-featured parser whose grammar [...]]]></description>
			<content:encoded><![CDATA[<p>I am proud to announce the first alpha release of <a href="http://code.gustavonarea.net/booleano/">Booleano</a>, a Python-based interpreter of boolean expressions:</p>
<blockquote><p>
Booleano is an interpreter of boolean expressions, a library to <strong>define and run filters</strong> available as text (e.g., in a natural language) or in Python code.</p>
<p>In order to handle text-based filters, Booleano ships with a fully-featured parser whose grammar is adaptive: Its properties can be overridden using simple configuration directives.</p>
<p>On the other hand, the library exposes a pythonic API for filters written in pure Python. These filters are particularly useful to build reusable conditions from objects provided by a third party library.
</p></blockquote>
<p>It&#8217;s been designed to address the following use cases:</p>
<ol>
<li>Convert text-based conditions: When you need to turn a condition available as plain text into something else (i.e., another filter).</li>
<li>Evaluate text-based conditions: When you have a condition available as plain text and need to iterate over items in order to filter out those for which the evaluation of the condition is not successful.</li>
<li>Evaluate Python-based conditions: When you have a condition represented by a Python object (nothing to be parsed) and need to iterate over items in order to filter out those for which the evaluation of the condition is not successful.</li>
</ol>
<p>It is a project I found necessary while working on <a href="http://what.repoze.org/">repoze.what 2</a>, which I&#8217;ve been developing for the last few months in my spare time. This release is absolutely usable, but lacks documentation because I needed this release out for a (small) project I need to work on ASAP (it will depend on Booleano). The next release will ship with a nice documentation, I promise.</p>
]]></content:encoded>
			<wfw:commentRss>http://gustavonarea.net/blog/posts/announcing-booleano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
