Introducing Learnivore.com

Learnivore.com is a side-project I’ve been working on during the past few months. It aggregates screencasts from a variety of Ruby/Rails publishers, like PragProgs, RailsCast or PeepCode for instance.

It’s possible to filter between free and paid items, search in full-text, filter by tag or publisher (and later on by freshness). It has a RSS feed and pushes updates (manually so far) on @learnivore.

I hope you’ll find this side-project useful! (suggestions welcome).

Looking back

Working on this project on the side has been an amazingly rewarding learning experience. It also brought me money – indirectly, that is, by giving me ideas of solutions or code I’ve been then able to reuse for my customers.

I went through Merb first, then switched to Ramaze, with the idea to save RAM on my servers. Last year I didn’t like Ramaze that much, but updating a couple of months ago really changed the deal. I deployed using thin (I would use passenger today).

I learned to use ThinkingSphinx for indexing (a powerful tool, if you ask me).

Before that, I deployed CouchDB on Solaris for nothing, because I thought it would be useful to check if deployment would work prior to investing too much development time. It didn’t work out so easily :) I stopped using it (for that project) but it gave me a whole new perspective on data processing, and ideas that basically bring me interesting gigs and fun customers right now.

Data processing was also interesting: I wrote a lightweight ETL called TinyTL in the process, which got reused in a couple of systems I built for customers. I used a mix of XML and HTML parsing that feed TinyTL. I implemented a quick tag conforming system to ensure the presented tags would be mostly clean.

RSS was a bit tricky to implement as I wanted to ensure the freshest items would stay on top. I had to grab the update dates on each screencast (either using xml or scrapped html) to then be able to sort by update date.

Anyway – I really encourage other rubyists to start side-projects (this one wasn’t the first and isn’t the last either) because it’s possible to achieve rewarding things with some hours now and then!

The comments system is brand new - don't be afraid to comment!