Endless, Pageless

Friday, November 03

I’m lucky enough to work at Canada’s bestest Ruby on Rails consulting boutique, Unspace Interactive. One of the great things about getting to work at Unspace is that I’m constantly exposed to new and innovative ideas from some of the smartest, most creative people I know. Among those innovators is Pete Forde.

Pete recently published an article in which he describes an interesting user interface technique: endless scrolling. You can read it on the Unspace site: Endless, Pageless

As a long-time web developer, I know the term ‘pagination’ all too well. When I have a set of search results, a set of articles, or a series of comments that exceed more than, say, ten items, I paginate them. This usually involves the ubiquitous ‘Next’ and ‘Previous’ links, either at the top, or bottom of the resultset. Of course, this invariably raises the question of how many results to display on a single page, whether or not to hide the pagination area if there are no results, and whether or not to hide the ‘next’ link on the last page and the ‘previous’ link on the first page.

Not only is pagination a pain from a development perspective, Pete argues that it’s a pain from a user experience standpoint as well. I wholeheartedly agree. When I’m scrolling through a list of articles on a person’s blog, or photos in a Flickr photostream, I hate having to click for the next page. If I’m still scrolling, it means I want to see more. I want more results. I want more articles. I want more photos. In fact, I often leave the page once I’ve viewed the first page. Particularly when reading blogs. I wonder how many more articles I would read on someone’s blog if I could just keep scrolling, if the information just kept flowing?

This is clearly an idea that’s catching on. I’ve recently become a huge fan of the new Google Reader which employs this technique to great success. I can simply scroll through my list of articles without ever having to use the mouse. And as I approach the ‘bottom’ of the page, more articles are appended to the list automatically. (Incidentally, if you’ve not tried Google Reader recently, try it again; they’ve updated it and improved it significantly.) I can see this technique eventually making its way into Gmail, making the ‘number of messages to display on each page’ preference obsolete. I’m told that Yahoo! Mail is doing this now, though I have yet to see it for myself.

Hello, I'm back

Tuesday, September 05

So, yeah, I’ve been neglecting the blog. It happens from time to time. According to the date of my last post it’s been, like, almost two months since I last wrote here. What can I say. I’ve been lazy. And busy. This, then is the obligatory post where I recount the details of what went on during my absence.

I went to RailsConf in June. Me, Pete Forde (of Unspace and Rails Pubnite fame), and Cloves piled into my efficient four-door and made the ten-hour trek to Chicago. Cloves and I took turns driving; Pete doesn’t drive standard. Amazingly, I refrained from smoking for the entire car ride, out of respect for my non-smoking companions. This meant that we made frequent stops at convenience stores and gas stations, during which I would plough back a couple of smokes while Cloves and Pete bought beverages and candy. One of our stops found us at a ghetto roadside restaurant that Pete couldn’t resist. He has a penchant for these types of places. I ordered a coffee and a BLT sandwich because it seemed safe. The only remarkable thing about this meal was the fact that the coffee was served in the kind of promotional mugs that you get free from local car dealerships, or that teachers get for Christmas gifts. Mine read Dave Barron Chevrolet.

By the time we arrived at the hotel in Chicago we were worn and tired from the road, suffering from that affliction whereby everything seems funnier than it should be and is typical of long trips with little movement of legs. We had a few beers at the hotel bar, chatted with other Rubyists, and gawked at our favorite Rails celebrities.

What can I say about the conference that hasn’t been said already? Yes, _why was quite hilarious. A true showman. It’s also worth noting that the audience looked like a sea of silver. Seriously, I’ve never seen so many Power/MacBooks in my life. The cult of the Mac is strong in Rails culture; the guys with Dells hid them in embarrassment—unless of course they were running Linux. Such is the usual case when Macs abound: the people that have them bring them out, flaunting them dangerously (I even saw more than one person using their 17” MacBook as a cafeteria tray, loaded up with muffins and cookies); the ones that don’t, hide them.

Highlights of the conference included Hampton’s patch getting mentioned in Dave Thomas’s keynote, and Pete rounding everyone up (including a few members of Rails core) for some famed deep dish Chicago pizza and then realizing by the time we got to the restaurant that we wouldn’t have enough time to eat and make it back in time for Paul Graham’s Keynote. We conferred in the parking lot and drove back to the hotel with empty stomachs. We tried it again the next night, though, this time with success. It was good getting to chat with Obie Fernandez, Tobi, and Marcel about assorted Ruby-related topics. And the pizza was fucking delicious. We made it back just in time for DHH’s keynote, during which I drank a beer.

Almost immediately after RailsConf, Cloves and I had our workshop in Toronto with David Black. In fact, David flew straight from Chicago to Toronto. Having arrived home a day in advance, we spent some time getting our ducks in a row, renting the projector, making handouts. It worked out well that Mr. Black was at RailsConf as we were able to do most of the planning in person. David is a great guy. If you haven’t bought his book yet, you should be shamed into buying two.

The workshop went well, save for the fact that I showed up late (traffic is to blame, I swear), and the conference room was booked under the wrong name. We had a crowd of about twenty. Most attendees had very little knowledge of Ruby or Rails, and some were new to programming in general. Nothing wrong with newbs by any means, but for some reason I was expecting slightly more Rails literacy. Another surprise (though in hindsight, it shouldn’t have been) was that nearly everyone was using Windows. Seriously, I think only one person had a Mac. And no Linux in sight. David handled it well. He’s such an intelligent guy, and a greater command-line hero I’ve never seen. He did everything on the console and in vim. A true hacker. I hope that students came away with the notion that Rails is a powerful tool in the hands of a skilled programmer, not a magic robot that will write your applications for you. Of course, I also hope they learned the basics of constructing a Rails app from scratch.

After the workshop, we hung around for a while and picked David’s brain, and then went out for beers where we exchanged thoughts on the state of Rails, our musings about the conference in Chicago, and the joys of Ruby. I dropped David off at his hotel and then Cloves and I went back to his house where his wife made us dinner.

After all this I took a couple of days off.

When I finally got back to hacking, it was in Toronto at Unspace. That’s right, I’m now one of their famed non-employees (I think). Unspace is great. Working with really smart people makes all the difference. The only downside to this arrangement is that I have a fairly long commute. Actually, it’s about an hour and a half each way. Yeah. It’s ever so slowly killing me. The drive home is worse than the drive in. Once it took me four hours. Don’t ask.

This week I’m enjoying a brief break from the commute as I’m staying at Ryan’s condo here in Toronto (Ryan is a partner at Unspace and is effectively my boss). This is a good thing, since I have a lot of personal work to catch up on (more on that later).

Cloves moves to Dubai today; Amy and I stopped by and visited he and his wife, Jane, last night on our way to Toronto. Yeah, you read that correctly: Dubai. I’m quite happy for him actually; he’s been talking about moving ever since I met him last year, and now he’s finally doing it. Perhaps it goes without saying, but making a move to the middle east isn’t the easiest undertaking in the world. I wish him the best of luck.

I’ll be going there at Christmas to visit.