Skip to content

Instantly share code, notes, and snippets.

@darkhelmet
Created September 16, 2012 02:54
Show Gist options
  • Save darkhelmet/3730848 to your computer and use it in GitHub Desktop.
Save darkhelmet/3730848 to your computer and use it in GitHub Desktop.
A history of Tinderizer

Genesis

I wanted to use the Readability script to turn web pages into nice readable things and dump them on my Kindle. This was in November 2010.

I figured with jsdom and other things on node.js it would be pretty easy. Lo and behold, somebody had ported the script to run on node.js already, so I just plugged in the parts and made it work.

Upgrades

Who writes plain Javascript anymore? Right? Right? Anyway, rewrote in coffeescript because the original code was hacked together as a proof of concept almost, so I used some other libs to clean things up along the way. This is Version 2

Pain

You know what sucks? Callbacks. I got sick of the CS codebase. I just didn't like it. Started to investigate other options, and found Java based libraries that did the same kind of thing, pulling out the important parts of a page. So I decided to try Scala for something different. Way too much Java ecosystem for my liking, so it didn't get completed. Let's call this Version 2.5

JRuby

JRuby gave me the JVM but with ruby, so why not. I was using the Readability API by this time, so I didn't have to worry about doing the extraction locally. I was leaning towards an Actor type API so I was using girl_friday to handle processing a link, farming it through the different stages. I had to run this on my own server, and that got old fast. Version 3

Go

When I figured out I could run Go on Heroku, that was the end of it. Rewrote in Go, using goroutines to do what they do best, and channels to pass things around. It was just the way it was meant to be written. Plus it's super fast, super stable, and hosing is free (except now the SSL costs $20/month).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment