Skip to main content

A Great Thick Client

Posted by daniel on March 26, 2004 at 1:52 PM PST

The elevator kept stopping at the wrong floor. It was a combination of the UI and the user.

I was confronted with a UI issue yesterday and was relieved to find out I wasn't the only one stumped by it. I got on an elevator and pressed what I thought was the button for the ninth floor. To my surprise the elevator stopped at the eighth floor. I looked down and realized that the buttons in this elevator were layed out different from the elevator right next to it.

When you press the elevator call button in the lobby, there are two instances of an elevator that can be returned. One had the ninth floor button in the top right corner and the other had the eighth floor button in that position with an additional row added with one more button in the top left spot for the ninth floor. It had just happened that the same instance had returned from my previous three calls so I'd gotten used to pressing the top right button. To the people configuring the elevator panel, this wasn't a concern. People are only on one elevator at a time, so having clearly labeled buttons should be enough to enable people to select the desired floor.

Clearly I've been on the road too much lately, but this reminded me of the principle of least surprise. When programming an interface or set of APIs, your user should not be surprised by the behavior of a widget or a method call. A user should not ask "hey, how did I end up on the eighth floor".

Look at Joshua Marinacci's sample application in his featured article on titled Building a Better Brain, Part 2: A Great Thick Client. Joshua has created a GUI for his brainfeed application. He provides a search that works on each keystroke so that as you type "tent" you specialize from searching for terms with "t" to "te" and so on. Before returning to the view he adds the ability for his front end to sync and search through the database. He uses HTML with style sheets to begin to present the results of searches and selections to the user. By the end of the article Joshua has left you with a system you "can subscribe to and search through multiple feeds across a network. Its simple protocol allows us to create a wide variety of clients to make targeted searches and distribute lightweight information."

Also in Java Today
, many projects are switching from Ant to Maven for building their Java projects. Ant has been around long enough that a large set of tasks are available and plenty of resources exist for helping you create your own. Eric Pugh's article Extending Maven through plug-ins takes you through "the various aspects of Maven plugin development, starting with a simple 'Hello World' goal, introducing the use of Java code in goals, and finally generating a web report."

There is a discussion on the JavaRanch on the value of the SCJD . Of all of the Sun certifications, is this one worth the time, effort, and money. (Warning Language)

In today's Weblogs , Danese Cooper provides a link to the "early history of the language we now call Java" in The course of Java never did run smooth

In BPELJ - Good idea or bad dream? John Reynolds notes that "IBM and BEA have just released a joint white paper on BPELJ, a combination of BPEL and the Java programming language. This may be a really good idea, or it may be the worst mistake since JSP was introduced."

Eitan Suez answers Scott McNealy's question about open source Java expressed in his quote "We're trying to understand what problem does it solve." Eitan explores what is meant by an open Java and the benefits it might bring in The Value of an Open Java .

In today's Projects and Communities , the incubator project MyBeans explains that a JavaBean with "extended functionality like copy, merge, lock, diff, transactional support, becomes a MyBean."

Regular expressions are not just for Perl programmers. The JavaPedia page on Regular Expressions summarizes the Java implementations available to you and provides links to resources.

In today's News Headlines

Registered users can submit news items for the href=""> News Page using
our news submission
. All submissions go through an editorial review by news director
Steve Mallet before being posted to the site. You can also subscribe to
News RSS feed

Current and upcoming
Java Events

Registered users can submit event listings for the href=""> Events Page using our href=""> events submission
form. All submissions go through an editorial review before being
posted to the site.

Archives and Subscriptions: This blog is delivered weekdays as the
Today RSS feed
. All members can subscribe to the email
updates for the site at the href="">
java-net Mailing Lists page. You must be logged in to subscribe
the javanet_Daily and javanet_Weekly lists. Also, once this page
is no longer featured as the front page of
it will be archived along with other past issues in the href=""> Archive.