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!
- Monitoring File Changes and Getting Notified via Growl (February 14th, 2010)
- How to use Google Calendar and Rufus-Google for Basic Time Tracking (November 27th, 2009)
- Using JRuby to prototype VST plugins (November 17th, 2009)
- How to create small, unique tokens in Ruby (July 2nd, 2009)
- Detecting Which Ruby Interpreter is Running (JRuby, IronRuby) (March 4th, 2009)
- How to create an empty Rails Edge application (January 28th, 2009)
- How to Freeze Gems with Rails >= 2.1 (December 23rd, 2008)
- Thoughts on IronRuby and .Net Testing (December 1st, 2008)
- How to Retrieve Delicious Tags and Number of Bookmarks for a Given Url (November 30th, 2008)
- Fixing Symbol not found _rl_filename_completion_function (November 6th, 2008)
- How to Generate a Gradient for your CSS using RMagick (October 21st, 2008)
- Analyzing Your GMail History (September 18th, 2008)
- Data Visualization with Ruby and RMagick - Where Are Those Bikes ? (March 31st, 2008)
- All-Time Classics: a Selection of Recommended Books for Software Developers (February 23rd, 2008)


