I have forked Charbot Green

About a year ago Libby Miller wrote Charbot Green, a BBC Radio 4 announcement bot for Twitter. It’s written in JRuby, uses the H2 database and the source code is in SVN here.

A screenshot of CharbotGreen on Twitter

It’s a really great app and I thought I’d have a play, but half-way through the install I realised that setting up an H2 DB server was a step too far, so instead I rewrote it to be a pure Ruby app using the SQLite3 database. Using SQLite3 keeps it a self-contained app in a single directory without the need to run a database server.

You can get the code from GitHub here.

My small changelist looks like this:

  • H2 replaced by SQLite3
  • links to iPlayer use the short form of the URL
  • if available, the subtitle, such as episode number is displayed
  • now a pure ruby app!

I haven’t tested it very hard, just run it up a couple of times, so please do let me know of bugs or feel free to go fork it yourself!

Published by

5 thoughts on “I have forked Charbot Green”

  1. H2 is no different to SQLite. Both are little embedded SQL engines, no server requred. And neither are pure ruby (unless someone has ported SQLite to ruby, which is more likely than I care to admit 🙂

  2. I don’t think that’s quite true about H2. I see that it has both a server mode and embedded mode whereas SQLite is embedded only I think.

    I’ve never used H2 before and both Libby’s instructions and the H2 installer start it in server mode, so I didn’t even realise it had an embedded mode until your comment 🙂

    Obviously the bit about pure ruby is just the fact that there are native ruby bindings for sqlite rather than going via jruby.

  3. Hello Phil. Your greasemonkey script “Show link destination on hover” seems not working in Google Reader. Can you fix it? Thanks a lot.

  4. After a brief look, I suspect the problem is that the Greasemonkey script only runs when the page is first loaded, but of course when you click on feeds an folders in Google Reader it loads new content via javascript, so the greasemonkey rules don’t get applied.

    I might be possible to add an event listener to pick this up, but it will probably be some time before I can get around to it I’m afraid.

Leave a Reply

Your email address will not be published. Required fields are marked *