ActiveCouch - a CouchDB library in the spirit of ActiveResource and ActiveRecord

My fellow Rubyist at work, Arun Thampi, has released ActiveCouch, a Ruby library for CouchDB (if you don’t know what CouchDB is, read this). Check out the official blog announcement of ActiveCouch.

ActiveCouch tries to be an ActiveResource and ActiveRecord (yes, there is even an ActiveCouch::Migration class for creating CouchDB views) equivalent for representing CouchDB documents in Ruby. I wish I could write some coherent code examples here but I am not that up to date with the latest changes in ActiveCouch (despite my name being tagged as a committer to ActiveCouch, it is largely Arun’s awesome little baby).

Never fear though, since Arun and I are chowing down our own dog food - we’re currently porting several gigabytes worth of hotel data from our hacked together XML and Ferret-based library to use the ActiveCouch library. I’m sure we’ll get a more coherent API after this exercise, since we are no longer relying on specs and mocks, but working on a Real Application.

If you decide to try out ActiveCouch, do let us know of any feedback or bug reports at the ActiveCouch Google Code site. ActiveCouch is Open Source, so if you’ve patches that’s even better!

Frequent disconnects with your Linksys router? Try custom firmware

I have a rather old Linksys WRT54G (v2.2) wireless router that used to disconnect rather frequently for no apparent reason. It is almost guaranteed to get disconnected when I go crazy with using Axel to download files.

The worse part of the entire “router disconnected” thing is how it takes down my DSL connection (provided by my ISP, Singnet Broadband) with it - trying to reconnect the DSL modem takes upwards of 3 minutes (I imagine it takes awhile for the ISP’s network to realize that my DSL connection is really down).

A few months ago, I finally couldn’t stand it any longer and decided to install custom firmware on the router to see if it fixes the problem (which is quite prevalent). I was unwilling to go down this route considering my bad luck tinkering with firmware and drivers (having broken a cable modem and a near-functional Linux install before).

Linksys WRT54G


Anyway, long story short: I installed Tomato Firmware and am enjoying rock solid stability! I can run Axel (10 simultaneous connections) with 2 torrents running and still surf comfortably and even download more stuff through the plain old web browser interface.

Long story, er, long: I tried out DD-WRT first (since we use the same at work), didn’t like its bloated interface, and especially didn’t appreciate reading (old) allegations about how DD-WRT’s author tried to screw the Open Source community over. So I flashed the firmware to Tomato Firmware and ended up loving its minimalist interface and faster restart cycles (most of the time, since Tomato tries to restart as few services as it needs to when you make configuration changes, rather than reboot the entire router like DD-WRT does).

So, if you’re experiencing the same troubles with your Linksys router and haven’t had taken the leap of faith with custom firmware, I really recommend you do so. Big warning: Read the installation instructions! Not all WRT54G routers are compatible with Tomato Firmware.

More reading: Lifehacker has a walkthrough of Tomato Firmware’s features (and also one for DD-WRT).