Fluid Rails search

Having quick access to API documentation is one of the absolutely essential requirements during my development day. I have knowledge of so many different technologies, APIs, syntaxes, runtime behaviours, protocols, editing environment commands and shortcuts crammed into my head that I’m well beyond having perfect recall of every single detail of whatever I happen to be working with. At the start of my Ruby programming adventures, I was always trawling through the online Ruby and RoR documentation, either using Google to find references or Firefox’s inbuilt page search to find a method, module or class in the framed documentation lists. This was wholly unsatisfying, particularly with how web browsers search through frame-sets. I also seem to have a major personality defect in which I will persist in certain kinds of suboptimal practices for far too long; I’m often loath to steal time from a current task to thrash out a solution to something that is bothering me at the fringes. Eventually I snapped and asked my colleagues what they used to satisfy their API reference needs when working with Rails. I was dismayed when I was told they used the same strategy as mine. There had to be something a little less primitive.

Enter the Rails Searchable API Doc

A few weeks ago I was directed to the Rails Searchable API Doc beta by Vladimir Kolesnikov: a nicely bundled, offline, HTML Rails API reference with full search facilities. Simply download a bundle (Rails, Ruby and gem documentation bundles are available) and unpack in a convenient location. Open the index.html file and voila! You now have a nice and fast Rails API reference available offline. The only problem with this is that a web browser is a very ad-hoc environment. I often have scores of tabs open, browsing random resources around the web. This meant that I now had the problem of trying to find my current Rails documentation amidst all of the other random guff that builds up in my browser.

Enter Fluid

Fluid is a Mac OS X application that enables the configuration of site-specific browsers. An SSB can essentially make a web application appear much like a first-class desktop application via a dedicated web browser sandbox. An SSB is a great way to keep your Google Reader, Facebook or other web sessions completely separate from each other, hosted in separate processes complete with individual Dock icons. It also turns out to be a really handy way of keeping HTML based references close at hand.


  1. Grab Fluid and the Rails Searchable API.
  2. Snag a nice Ruby on Rails icon. This is to be used for the Dock.
  3. Unpack all of these bundles into appropriate places.
  4. Launch Fluid and set up a Rails API site-specific browser.
  5. Fluid configuration

  6. Consider dragging the generated SSB to the Dock.
  7. Enjoy!

Fluid uses WebKit as its rendering engine, and configuration of the browser is naturally very similar to Safari. By default it maximizes browsing area by eliminating the tool and status bars but these can be added via the menu. In the screen shot you can see I’ve added back, forward and font resizing buttons. For a documentation SSB, it also makes sense to set Fluid to only hide the window when the window is closed. Such a setting is available in the Behaviour tab of the application preferences.

For those with open source cravings, Mozilla Labs has an SSB project called Prism that offers similar functionality, although I find their offering a little more sparse.

The clock keeps ticking

Don’t blink, or you might just miss a significant fraction of a year. I’ve made that mistake.

Over three months ago now, I left my position as Technical Lead on Atlassian‘s Confluence team. It’s still an odd thing to state. I still believe that Atlassian is one of the best companies in Australia to work for as a software or technical support engineer, especially if Java development takes your fancy. Some of the most passionate and knowledgeable Java developers I have ever known work there. I’d like to thank everyone at Atlassian for their tremendous work and invaluable friendship. I had a truly memorable, enjoyable and productive three years there; they will always be a highlight and serve as a formidable benchmark.

But I’m a hopelessly restless person. I still feel like such an amateur in many respects. I’ve been developing software professionally for coming on a decade now plus many years tinkering with programming before my first paid position and I still feel I’ve much more to learn. I crave new experiences and problems. As such, I’ve taken a new position, working as a software engineer at Silverbrook Research. My first project is being built using Ruby on Rails, something I’ve wanted to learn but never managed to find the time along with everything else I want to do. My new position offers some unique opportunities, and I’m excited to be involved. I hope to blog more about my experiences using this platform.

The wheel keeps turning, and there appears to be never a shortage of interesting problems to solve, or interesting tools to help solve them. Even after all of this time, I still love doing what I do, and working with people who love what they do too.

Strange days

I walk down a narrow, high walled alley of some Mediterranean village. The sun beats down through the topless canyons, a harsh glow, warmth evaporated, an exuberant promise unkept.

Energy suddenly drains from me instantaneously, my legs sag and I flop against the blue wash wall, totally spent, the bag that I’m carrying falling limply to the ground. People stroll pass; some look at me, but through me, no recognition apparent, no friendly hand or aid. The remainder continue on oblivious. I’m not going any farther; this is where I’m going to stay, anchored to this ground, destination unknown and irresistibly unreachable.

Two young girls ride pass on bikes, they giggle as they pluck the sunglasses from my face. The sun flares in my eyes angrily, yet its heat still plays truant. Cute I think and wait for them to return them to me, but they don’t – they ride off, content with their spoils, unsympathetic to the fire in my mind. How could they? I ponder as if it really matters.

Time passes; an age; an instant. I return and I’m still affixed. I look down to my bag, the pound cake I was carrying is gone, no evidence of its existence, unless a bent clipboard and a crumpled piece of paper are a new confection.

I’ll go no farther I think, this is where I’ll stay.