A Great Thick Client
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 java.net 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 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 java.net News Headlines
- IBM Touts New 'Aspect' for Software Coding
- Early Review Draft: JSR 218 - Connected Device Configuration (CDC) 1.1
- Spring Framework 1.0 Final
- IBM and Sun Work on BEA Java Controls
- SableVM Developer Corner
- JBossCache 1.0
- Navy Selects Java for Top Command and Control Program
- Atlassian JIRA 2.6.1 and Confluence Wiki 1.0
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using
our news submission
form. 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
- March 22-26 Game Developers Conference, 2004
- March 30 Chat on what's new and cool in NetBeans
- April 16-18 Penguicon 2.0
- April 16-18 Wisconsin Java Software Symposium
- April 20-21 Sun Tech Days: Singapore
- April 23-25 New England Software Symposium
- April 30 - May 2 Twin Cities Software Symposium
- May 6-8 The ServerSide Java Symposium
- May 8 Kwarup do DFJUG
- May 10-14 JAX 2004
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e"> 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 java.net members can subscribe to the email
updates for the site at the href="https://java-net.dev.java.net/servlets/ProjectMailingListList">
java-net Mailing Lists page. You must be logged in to subscribe
to the javanet_Daily and javanet_Weekly lists. Also, once this page
is no longer featured as the front page of
java.net it will be archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.