Interaction 10 Writeup

February 16th, 2010

I’ve written up my experience at Interaction 10 the other week in Savannah, GA.

Coborns Delivers: A Great User Experience

November 24th, 2009

Last night we were ordering some food for the week and Thanksgiving weekend from Coborns Delivers as we usually do, and the site started to get really slow and unresponsive. I’m sure everyone was doing what we were: trying to get an order in before the holiday. Adding items to the cart was taking upwards of 15 seconds, and we were getting catastrophic server errors when we tried to check out.

What happened next was what every retailer doesn’t want to happen; my wife abandoned the cart and went to the Lunds & Byerlys site and placed an order for our groceries. Overloaded servers cost them our order, and I’m sure it cost them them more as well.

Today, a customer service rep from Coborns called and apologized about the server problems. I mentioned that I understood why the site was probably overloaded, and the representative offered to get our order out to us today. I explained we abandoned our cart and ordered from Lunds. The rep apologized again, and told us that we would have a credit to our account, and a free delivery as well.

Coborns understands that a positive user experience is more than just making shopping for food easy — they have metrics and logs that reveal when people don’t complete orders (or aren’t able to, in our case), know why, and offer to make it up to the customer after a bad experience.

Update: They’re also listening on Twitter: @cobornsdelivers. I found an account that might by Byerlys but it doesn’t appear to be in use.

Blog Maintenance

October 24th, 2009

I’ve been giving my much-ignored blog some love lately. I noticed my SEO-friendly permalinks broke a while back. I’m not sure when it happened, but I only really noticed it after Dreamhost moved my hosting to a different box. It could just be a coincidence, but at least it’s fixed now.

I’ve also implemented some fancy fonts using the awesome Kernest service, and I’ve also tweaked some of the other ugliness on the page. The bit of stuff between the page footer and the content has a proper background now, and I’ve made it a little wider. I’ve also fixed some of the padding and margins around the page headers. Hopefully the blog is easier to read.

Kill your admin interface

April 5th, 2009

It starts out simple enough. You’re building a webapp, and you want people with a certain role (read: Administrator) to have access to a separate “back-end” part of the system. They have to do different stuff, so it makes sense to make a separate administrator interface. A classic example of this is something like WordPress, where you have a totally different area of the website to sign into, and you have a myriad of different tasks you can perform.

At first, it seems to make sense — administrators have various goals they want to accomplish, like mass-approving comments or creating a draft of an article. The part of a blog that faces the reader is usually geared towards reading content, not making changes to it.

Lately, I’ve been thinking about something that I remember hearing a while back from Edward Tufte. The phrase is “administrative debris,” and Ryan Tomayko wrote about it a year ago.

Anyway, I’ve had the itch to finally write my own blogging app for personal use, and I’m following some of the ideas that Ryan writes about — things like using in-place editing, and making content look identical between reading/editing.

The nice thing about having your content be your interface is that it’s a lot quicker to make changes. Because it’s less painful, I’ll be more likely to write.

  • I don’t have to remember the secret admin URL.
  • When I’m logged in, I don’t have to parse a cluttered admin interface.

I’ll post more thoughts about design of the project when I get closer to actually having it live.

Be careful with ranges (Ruby)

April 3rd, 2009

I recently installed the wonderful test_benchmark plugin for Rails, and ran it against our code. I was surprised to find that we had a couple unit tests that were taking 4 seconds to complete.

Digging in, I found code that was doing the following on a time range:


range = # .. a time range 24 hours "wide"
start_time = range.min
end_time = range.max

I looked up the API for Range, and there are no .min and .max methods defined, but they live in enumerable. So what’s going on here?

A little more digging:


>> count = 0; r.max { |a,b| count +=1; a <=> b }
=> Fri Apr 03 20:07:29 UTC 2009
>> count
=> 88200

Oops. 88,200 comparisons for a time range. Switching the code in the test and the class under test to use .first() and .last() instead of .min() and .max(), and I shaved off a cool 8 seconds from rake test

Is TextMate Dead? (Update: nope!)

April 2nd, 2009

Is our beloved Mac text editor, TextMate, dead? The TM Blog hasn’t updated since the middle of August, 2008.

The latest cutting-edge version is 1.5.8, r1498, and it’s been a while since that’s updated, too.

Has TextMate died, or has it just reached a maturity level where it doesn’t need updates and new features as often? Whatever happened to the fabled TextMate 2.0? Last I read about 2.0 was back in 2006 when Alan mentioned 2.0 would require Leopard. Not even a peep about 2.0.

What’s going on?

Edit: I found a TextMate 2.0 FAQ, which indicates that TM2 was actively being developed, at least towards the end of November 2008. Hopefully we’ll see something in 2009.

Account Sign-In Patterns

January 10th, 2009

The Wheres and Whens of User Expectations is a good article by UIE that talks about user expectations for account sign-in links and fields:

As we watched users, it seemed they first looked for two text-entry boxes of equal size. Their eyes would scan the page (often with the mouse cursor in tow) searching for the two entry fields.

Sites that had two text-entry boxes, often contained in a larger box with a distinct background and border, would quickly acquire the user’s attention. They’d type their username into the first box and their password into the second.

This pattern is so strong that we see it work even on sites that don’t follow the pattern. Over at Etrade.com, the online trading and banking site, their design has two pairs of dual text-entry boxes. One pair is the standard login field, but a more prominent pair is for stock quotes and the site’s search functions.

Because of the strong drive of the user to react to this pattern, it’s common to see users type their username and password into the stock and search buttons, completely missing the proper sign-in fields. From this, we can see designers need be careful when placing pairs of text fields that users don’t confuse them for the sign-in boxes.

The Sign-In Link Pattern

If users don’t see two boxes, they then start scanning for a link called Sign-in or Log-in. (We haven’t seen anyone who uses a button for this, but it’s also an option. However, we’d wonder if a button would create cognitive dissonance if it appeared without corresponding fields.)

A pattern that worked well in our research was, once logged in, to replace the sign-in link with the user’s name, id, or email address, followed by a sign-out link. Users showed they understood the semantics and reassured them that the system had recognized their account information.

Blog in flux

December 29th, 2008

Just futzing with the layout of the site. Not that anybody reads this thing anymore :)

Whatup, blog readers

November 16th, 2008

Not a lot going on. I had a very busy spring. The house almost burned down. Summer was busy too, as well as fall. Hopefully I can relax this winter :)

Scope me on Twitter.

More later.

Fight the Smears

June 12th, 2008

I tend to not blog about political crap, but I need to link this:

Fight the Smears is a site (which actually redirects) run by the Barack Obama campaign designed to, well, Fight the Smears about Obama that commonly get passed around as viral e-mails. You know the crap, those messages that claim that Obama is a Muslim or that he was sworn in on the Koran.

The site is quite genius, to think about it. Not only do they take a Snopes-style method of debunking myths, they also make it extremely easy to plug in people’s email addresses with a short and to-the-point message regarding that particular issue.