<?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>Stereonaut! &#187; rfeed</title>
	<atom:link href="http://stereonaut.net/tag/rfeed/feed/" rel="self" type="application/rss+xml" />
	<link>http://stereonaut.net</link>
	<description>A weblog by David Moreno.</description>
	<lastBuildDate>Mon, 23 Aug 2010 00:45:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Quick feed aggregation with Vitacilina</title>
		<link>http://stereonaut.net/quick-feed-aggregation-with-vitacilina/</link>
		<comments>http://stereonaut.net/quick-feed-aggregation-with-vitacilina/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 02:36:06 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[feed]]></category>
		<category><![CDATA[in-english]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[rfeed]]></category>
		<category><![CDATA[vitacilina]]></category>
		<category><![CDATA[yaml]]></category>

		<guid isPermaLink="false">http://log.damog.net/?p=812</guid>
		<description><![CDATA[Vitacilina, ¡ah, qué buena medicina! A few months ago. Maybe more than a year, I started hacking on Vitacilina, which was meant to be the replacement for Planet on all countries Planeta Linux supports. I was doing well, I even hosted the code back then in Google Code. Later, I forgot about it, but I&#039;d [...]]]></description>
			<content:encoded><![CDATA[<p><em>Vitacilina, ¡ah, qué buena medicina!</em></p>
<p>A few months ago. Maybe more than a year, I started hacking on Vitacilina, which was meant to be the replacement for <a href="http://planetplanet.org">Planet</a> on all countries <a href="http://planetalinux.org">Planeta Linux</a> supports. I was doing well, I even hosted the code back then in <a href="http://code.google.com/p/vitacilina">Google Code</a>. Later, I forgot about it, but I&#039;d always been wanting to replace Planet with some homebrew solution for the Planeta Linux community. Anyway, that hasn&#039;t happened yet. However, I did start using Vitacilina for my own needs on a local sandbox for my employer and it used to work pretty well. I&#039;ve been hacking it to fit very specific requirements, though.</p>
<p>Anyway, I thought it was a good moment to release it publicly, just because it was all hidden there. So, I didn&#039;t implement the changes I did for my employer (because they were very specific for our products) but I did clean it up and wrote some documentation.</p>
<p>Now, what exactly is <em>Vitacilina</em>? Well, it&#039;s a feed aggregator. It&#039;s written in Perl (it&#039;s a Perl module) and it uses <a href="http://www.yaml.org/">YAML</a> to get its list of feeds and names and <a href="http://template-toolkit.org/">Template Toolkit</a> to format and dump the output, it was efficient for me because it was very easy for me to create dumps:</p>
<pre><code>use Vitacilina;

my $v = Vitacilina-&gt;new(
  config =&gt; "config.yml",
  template =&gt; "template.tt",
  output =&gt; "output.html",
);
$v-&gt;render;
</code></pre>
<p>And that&#039;s it. I used to create YAML files on the fly to create new <em>Vitacilina</em> objects and render them according to some data.</p>
<p>The  config file would look something like this:</p>
<pre><code>http://myserver.com/myfeed:
  name: Some Cool Feed

http://feeds.feedburner.com/InfinitePigTheorem:

  name: David Moreno
</code></pre>
<p>And the template file:</p>
<pre><code> [% FOREACH p IN data %]
  &lt;a href="[% p.permalink %]"&gt;[% p.title %]&lt;/a&gt;
   by &lt;a href="[% p.channelUrl %]"&gt;[% p.author %]&lt;/a&gt;

 [% END %]
</code></pre>
<p>In that way, it&#039;s very simple, quick and easy to do aggregations. I just love TT, why wouldn&#039;t I? <img src='http://stereonaut.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>So go grab <a href="http://search.cpan.org/~damog/Vitacilina-0.1/">Vitacilina at CPAN</a>. Also, the Git repo is at <a href="http://github.com/damog/vitacilina">github.com/damog/vitacilina</a>.</p>
<p>However&#8230; I started to hack on a similar more ambitious project called <a href="http://github.com/damog/rfeed">rFeed</a>, that it&#039;s more of a framework than a simple library, which is why I stopped further Vitacilina development. I&#039;ll talk about rFeed later when the time comes.</p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/quick-feed-aggregation-with-vitacilina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
