Putting Hobo through its paces

Posted by Tom on 2007-01-05

To many balls in the air at once, that’s my problem. There’s Hobo the open source project – keeping updates flowing, responding to problems you folks are hitting, documentation, and on and on and on. Then there’s paying the rent, and right now that means working on a least two, maybe three or four commercial web-sites. The good news is that all of these projects are being built using Hobo, so I’m getting to put Hobo through its paces and I’m really enjoying what I’m seeing.

Yesterday, for example, I was working on one app and noticed that a particular class of user was able to edit something that should have been read-only. I made a quick change to the updateable_by? method on the model in question, and refreshed the browser. All the in-place-editors changed to read-only text. On every page in the site. I made a similar change to deleteable_by?, and a whole bunch of “Remove” buttons vanished. Unless I logged in as an administrator – then they all came back again.

In another story, I was editing a view of a person. People in this app have many discussions. There is a preview of some recent discussions on the person’s home page, but I realised I needed a place where they could see all of their ongoing discussions. I added a quick <object_link attr="discussions"/> and then, er, refreshed the browser. Job done - the page in question was built entirely automatically by Hobo. OK to be honest I’ll probably have to customise that page a little, but that will be a quick and painless task.

All in all it’s kind of a jaw-dropping experience. Right now things are still at the stage where I frequently find myself dipping into the Hobo source to add a small feature or to tweak something to be a bit more flexible, or implement some corner case. But the need to do that is diminishing rapidly. Once Hobo really matures, I really think it’s going to set a new bar for how much work it takes to build a web app.

The app I’ve talked about is a fairly sophisticated group collaboration application, with discussions, events and calendaring, classified adverts and a bunch of other stuff. At some point I’ll host it for the public as a demo of the capabilities of Hobo. For one thing that should help dispel the misconception I’ve seen in some places that Hobo is only for building prototypes. Hobo is for that, and for real applications too.