Archive for December, 2007

Usability Blunder: Really, Really Remember Me?

Watching non-experts perform tasks often exposes hidden weaknesses in software. Experts are often blind to obvious usability blunders. Yet watching someone else fumble through our beloved software makes the flaws immediately evident.

Case in point. A few weeks ago I was sitting with a non-geek as she navigated a web site. When prompted for a username/password, she dutifully clicked the “Remember Me” checkbox:

Remember Me

Her reward for clicking the checkbox? A completely redundant prompt from the browser:

Confirm Remember Me

To which she blurted out…something like…

WHAT’S WRONG WITH THIS !!#*($! THING??? I JUST TOLD IT TO REMEMBER ME!

And I thought…that’s such a piece of crap, yet I never even noticed it until now. In my mind, I recognize the checkbox as a feature of the web site, while the dialog box is a completely separate application - the browser.

Yet to a normal person, it’s all one thing. In this case, a redundant, stupid, annoying user interface. It’s no wonder people struggle with computers.

Final Thought

Do usability testing. Nothing fancy, just sit back and watch people use your software. Don’t tell them what to click on or how to do things. Instead, ask them to do certain tasks.

You will be surprised, I guarantee it.

GWT First Thoughts

With a sick child at home, I had some time this afternoon to play with Google Web Toolkit (GWT). Learning GWT has been on my “technologies to investigate” list for far too long; today I finally dove in. First impressions:

  • GWT is quite a bit simpler than I thought it would be. I guess all that procrastination was for nothing.
  • Having two monitors really helps the learning process. There are a huge number of getting started articles and tutorials, so having a web browser open on one display to read examples while coding in an IDE on another display is almost essential.
  • Just dive in and start coding. I’ve attended GWT presentations, watched online videos, read (some) docs…but nothing compares to writing code.
  • One of the first things I created was a TabPanel. I was someone surprised by the complete lack of a default style. Until you start messing with CSS, it looks nothing like a tabbed pane. I got completely sidetracked hacking CSS, which took vastly more time than writing the Java code to create the tabbed pane in the first place! :-)
  • It seems like there is an opportunity for talented CSS designers to put together GWT Theme Packs, consisting of ready-to-use CSS and images that give your GWT app a particular look.
  • The biggest surprise (for me) was the fact that GWT still uses Java 1.4 syntax. I guess I just assumed it would be Java 5 based on experience with other Google Java APIs.
  • Other than the CSS, writing a GWT app feels nothing like writing a web app. (this is a very, very good thing…)
  • They’ve done a great job providing a usable development environment out of the box. Far too many other tools leave IDE and app server configuration completely up to the developer. Thus, when starting with most technologies, you spend a great deal of time tracking down JAR files, configuring Tomcat, coming up with a custom development “flow” to compile, deploy, bounce Tomcat, etc. GWT comes with tools to setup the initial project, hot deploy, and test.
  • A bit more on the previous bullet…they’ve also managed to do that without locking you into a particular IDE like Eclipse or NetBeans. I find it disturbing when vendors try to lock me in to a particular IDE by writing tutorials and plugins that assume I only use one specific IDE and app server combination. So far, GWT works great in IDEA. I’m sure I could easily switch to Eclipse and everything would work there as well.
  • I plan to continue this journey.

No More Crash, Boom!

Last week, I wrote about “too many open files” exceptions we saw in our build agents shortly following large Subversion checkouts with the wonderful SVNKit library. At the time, I could not confirm if it was my code or SVNKit causing the issue.

After patching all of my code as described in the earlier post, I checked the SVNKit 1.1.x branch, and discovered they had applied the exact same fix to their own code just a few weeks ago.

Awesome Service

I contacted the people at SVNKit and heard back after a day. They let me know that the 1.1.x branch is continuously tested and is considered stable enough for use, so I went ahead and installed in.

I am happy to report our problem is now gone, the number of open files is consistently low. Before this fix, numbers would shoot up in to the hundreds, and would eventually cause the dreaded “Too many open files” exception.

+1 for SVNKit!

Why I Don’t Read JDJ

Remember the good ol’ days when Java Developer’s Journal was an actual printed magazine? Wow, have things ever changed at “The World’s Leading Java Resource”:

JDJ

Although not shown here, when you first visit the page, a giant Flash advertisement obscures most of the screen. Then, after you close that ad, the video on the right starts playing — with sound. It’s like a horrible MySpace page. And I thought blogs were bad.

I’m probably being too generous by saying there are “only” 8 ads…those three links above Ad #3 are probably paid links, as two of the three take you to sites that require registration before you can view the content. Making paid ads look like legitimate content is a dirty trick.

The question is…do all of these advertisements work? Am I stupid for limiting my blog to a single ad? Could I double…triple…quadruple my money?