October 22, 2014

At work we usually run an IRC bot on most of our channels: it tells us about stupid facts, the weather, quotes our most shameful bits ruthlessly, fetches tweets, or reacts to other things like Trac ticket numbers, or Trello cards, etc.

To be honest, I have been maintaining the thing for too long, and a complete overhaul is long overdue: the code is based on Cinch (which is an awesome project), but has been grafted too many intertwined features that would be better released as separate open-source gems (ACLs, simple storage, operating hours, etc.). Well, maybe this is material for another occasion.

Making Mondays suck a little less

Yet, one of the most useful feature is a simple link logger: every now and then, someone mentions that totally original cat picture, and we log that. Better, when a developer is slacking (a little slack is good, shut up) on Reddit or Slacker News, they may post some bits on IRC too. It can look like that:

SlackerKid: folks! Stop what you’re doing now! Check that new node.js module https://github.com/mafintosh/peerflix #node #bittorrent

Or even:

TrollerMan: I can’t believe they released #golang without proper generics http://golang.org #lulz.

Yes, on some IRC channels, trolling is also common. All those links, and their tags, end up on a Delicious1 account. However we can not be monitoring IRC all day long (some of us are a little busy, right?), so things can easily get lost. And this is how DeliciousLetter was born: a few lines of Ruby in a cronjob, that grabs all those links, masticates them for a while, and spits out an HTML summary of our week.

Hand-curated contents, without pushy algorithms, delivered to a nearby inbox on Monday mornings: we think it goes nicely with a coffee.

Pepito Rumble

Rails Rumble is a nice competition, and promotion operation, for the Ruby on Rails web framework. As I happen to use it almost daily, and had nothing better planned, I enrolled (again!), and was soon joined by shakaman: I convinced him that rebuilding our clunky DeliciousLetter as a service would be nice, and we would probably get Internet billionaires2 in a few weeks after that.

Hence we exchanged a few ideas, napkin-ed a wireframe or two, and met online on Friday evening to bootstrap our little idea. Truth be told, we probably are terrible hackathon runners: we took breaks, beers, slept 6-7 hours nights, we even showered, what a shame! Well, we were not aiming for gold, but rather an excuse to collaborate on a little project, out of our current paid-for work. It turned out great.

HTML mails looked like this at some point… Lots of TODOs :p

As my partner is living in New-York, and I in Oaxaca, we setup a quick Trello board to share a backlog, and chatted our way through the rest: no need for more. New-York and Mexico’s timezones are one hour apart, so this worked really well.

At the end of the first day, we had a modest “MVP” which would connect with Delicious or Pocket, and generate responsive HTML newsletters from these. Shakaman came up with a really nice design in no time, and did not complain about the overall user experience, which is a little miracle considering we are not exactly close to what we want (yet).

Then, I discovered that the Heroku plan for Rails-Rumble only allowed us only one measly process to run all our application (seriously?). This “feature” had me rewrite a few things to avoid background workers, so we could run in “heroku-mode” with dumb cronjobs. I think I enjoy git push heroku master as much as the next geek, but this was quite annoying at the time: I’m used to being root, and did not see that one coming. My bad!

So what’s next?

Next? Well, we need to write tests to kill those many many bugs. We’d like to add more services, real subscriptions, more mail templates, an on-boarding process for new users, and a few other things before we consider showing more that our little Rails Rumble demo.

However this is probably wishful thinking for now, as time is not really on our side. Depending on how things are going, we may release an open-source version (not before cleaning things up to avoid scaring our fellow Rubyists), or just offer the service to a few friends.

Anyway, watch this space if you’re interested in collaborative free software.

Moar screenshot

  1. Delicious’ only merit is probably its cost, because we are a very very poor company and we can not afford Pinboard.↩︎

  2. I’m still working on funding, I heard that I need to speak to some Paul Graham, or something. This sounds a little boring TBH. :)↩︎