The Source for Java Technology Collaboration
User: Password:



Amy Fowler

Amy Fowler's Blog

Itty Bitty Things

Posted by aim on November 18, 2003 at 10:49 PM | Comments (17)

True confession: I love my Mozilla mail filter panel.(For non-mozilla users, this is the ever-present textfield that filters my message headers as I type, making it so very easy to find messages quickly). I'm also wildly fond of browser smart-fields that use auto-complete to recall my userid/password at the umpteen different websites where my memory always shorts. Auto-complete in general has changed my life.

Itty bitty things make such a difference - nuggets of gold that seem so obvious in hindsight that we wonder how UIs ever existed without them. These are examples of usability features that help reduce what I call the "fuss-factor" in software, which is that intangible time spent around the edges of tasks, quietly accumulating, hard to measure, but adding up in the long run.

System admin, virus warfare, and lengthy install wizards are a few examples of the fuss that remains in software. But also fitting this bill are the more subtle quirks that cause an unnecessary context switch or pause in the natural flow, like having to bring up a heavy search dialog to find something, or using HTML applications that refresh the page on every mouse click. (Please - give me real-time sort, search, and filter of my rottentomatoes movie lists!). You'd think software could make smarter use of the 2.3GHz sitting in our laps.

Just imagine if corporations accounted for this fuss-factor in their "total cost of ownership" assessment of software. It just might change the purchasing habits of IT departments everywhere, now wouldn't it? Why is it that extreme degrees of usability are often relegated to the "consumer" market? No human being from my mother-in-law to James Gosling wants to waste time fussing at anything but the definitive task at hand, be it viewing grandchild photos or a little friendly mudslinging. Being technical or not has nothing to do with it.

I recently googled "usability" and was delivered straight into the hands of Dr. Jakob Nielsen at useit.com. This turns out to be a rare source of information (some for free, some for fee) on how usability impacts return on investment. He focuses largely on the web, but his meta-message applies to user-experience in general and, unbeknownst to many, once upon a time he worked at Sun. So if common sense (wastedTime == lostMoney) isn't enough, the data is there for those willing to confront it.

Our challenge in the Java platform group is to make it radically easier to build usable (less-fussy) client applications. And here is where I weave a tie-in to my current project...

Java Desktop Network Components (JDNC) is all about simplifying the task of building and deploying rich Java desktop clients that deliver an exceptional end-user experience. We do this by providing high-level UI components with built-in networking smarts, great visuals, and usability features (like a filtering and other itty bitty things). On top of these Java components is an XML configuration layer for easy construction.

We introduced JDNC at JavaOne 03 and have been working steadily since to produce a bag of useful bits worthy of evolution in the open source community. We hired ourselves a 3-year XML veteran to ensure we do the XML part justice (thankfully the schema has evolved since I wrote the original JDNC whitepaper). We've been quiet because we've been busy.

I just remembered another usability diamond of mine: Alt-tab (for navigating active windows) - the single feature that transformed me into a laptop-only woman, having kissed the mouse goodbye.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • JNDC
    I saw the JNDC session during JavaONE, and it definitely looked interesting. However, I've seen scant details, a design doc, UML, etc.

    It would be nice to be able to review these things, if not the EA version of it, in order to give the team feedback.

    It would be good if the List and TableModels were capable of using RowSets.

    Would it be possible to have an XFormsReader that would use XForms as the configuration file, but render the form in Swing? I could imagine the need for different types of readers to support JAXB, XForms, SwingML or other types of configuration files.

    It would also be useful if the configuration file could support scripting languages. This would allow people to quickly develop very usable interfaces without having to write a lot of Java code. I realise that last statement is anathema to most Java developers, but it makes sense if you're trying to attract developers with VB, or Web Development skill sets. This seems to be the approach that MacroMedia is taking with its Java offering.

    Posted by: phidias on November 19, 2003 at 07:43 AM

  • Web page reloading
    Don't have any web usability jem to offer here. Sorry. Just like to say something about web page reloading.

    I think the web page reloading problem is the greatest challenge facing usability in dynamic web pages. I think many arguments such as thin client and thick client stem from this problem.

    Part of the problem is the current lack of a cross platform (and cross browser) method of solving this problem. Another problem is determining what logic should reside at client side and what logic constitute server side.

    I just read the white paper on JDNC and it sounds like it will address the web page reloading problem in a consistent and cross platform manner. I think XForm support would be great.

    Posted by: honhwang on November 19, 2003 at 05:29 PM

  • Sorting HTML tables
    Just yesterday I saw this link that explains how to make HTML tables sort on any field in real time at the browser.

    http://www.kryogenix.org/code/browser/sorttable/

    Posted by: joelhockey on November 19, 2003 at 06:01 PM

  • Jakob's only partly right, JNDC
    Two things: Jakob should not be considered the definitive source for web usability. He's got a lot of good ideas, but he's got a number that many folks don't agree with.

    Regarding JNDC, have you investigated http://jdx.sourceforge.net/ and http://jnlp.sourceforge.net/netx/index.html ? I was intrigued by the two and had hoped they would join forces. I've also seen some moves with the Eclipse platform and heard of some experimental takes on JDX (above) using a modified Eclipse platform as the basis (the developers wanted to use native widgets).

    I know that many attempts have been made at a mainstream JavaOS, but so far everything is specialized. I think there's definintely room for a layered approach. There's a lot to learn from the Linux/UNIX kernel to X to window-manager layers and from the kernel to app-server to application layers.

    I would love to see some sort of hybrid window-manager/app-server desktop GUI application management system, especially one that could run as the primary GUI shell on Windows, Mac, and Linux/UNIX, could natively integrate HTML-based applications, or could simply run as an application on the mentioned OSes.

    And I think it's doable. But there's a lot of work ahead in order to do it, and as far as I can tell no clear vision or direction by anyone so that it can be done. I personally think it's almost critical to Java's future to take on something like this and make it work, though, as it would be the proof in the pudding, so to speak, that Java can be "real" to the average computer user and respected by the average computer programmer.

    I certainly hope that JNDC can be one piece of that puzzle, and wish you much luck with the project. I can't wait to see what happens with it.

    Posted by: gerryg on November 19, 2003 at 09:07 PM

  • Jakob's only partly right, JNDC
    Just a quick follow-up after I re-read my post -- if it wasn't clear the "hybrid" system I proposed would be primarily to launch/manage JVMs and java applications, but capable of launching/managing native applications as well. Also, a simplified API for buidling/writing "shell" scripts in Java for this system would certainly be a requirement as well (note I am not suggesting JavaScript, but pure Java or a convertible-to-pure-Java solution).

    Posted by: gerryg on November 19, 2003 at 09:13 PM

  • http://www.jdistro.com/
    Just found http://www.jdistro.com/ over at "Swing Sightings" and it's a great start on just the type of thing I'm looking for, though I think it has a ways to go for true robustness.

    Posted by: gerryg on November 19, 2003 at 09:32 PM

  • two things...
    First... usabililty stuff that makes me mad enough to blog. OUTLOOK. Gawd. I have this strange love-hate relationship with Outlook. For laughs, count how many clicks it takes you to find the right place to change the "check for new email every X minutes". No fair asking Clippy. And count all the WRONG clicks you made, too.

    Second, another source for usability, which is not web-centric, is http://www.foruse.com. I took a course from Larry (Constantine) last year, and it was *great*.

    Posted by: javalori on November 20, 2003 at 09:55 AM

  • JDistro/Konfabulator
    One of the previous posters mentioned JDistro which is a very interesting Java desktop. You can run any existing Java application within it. Think of it as a Java-based window manager that can give you the same look and feel regardless of whether you're running on Windows, Linux or Mac OS X. Something quite useful if you're switching desktop environments frequently.

    I recently came across Konfabulator (it was demo'd on TechTV) which totally blew me away. Using XML, PNGs and some JavaScript you can create applications (called "Widgets") that will run on your desktop. There's an RSS aggregator, a weather widget, and a whole host of other neat apps (the site currently lists 449 widgets.

    It would be great if we could run Konfabulator like widgets within JDistro (or other desktops). We could create sophisticated user interfaces without a lot of work.

    Macromedia has similar aspirations with their Flex toolkit. It would be great if this were built into Swing, complete with pluggable scripting language support. I wish someone at Sun would start incorporating the BSF framework within Java so that scripting as an integral part of the J2SE, not just tacked onto J2EE as they're doing with JSR-223 .

    OK. I think I've ranted enough for one day. ;-)

    Posted by: phidias on November 20, 2003 at 01:01 PM

  • two things...
    Check out "Joel on Software". Joel Spolsky is also fairly well-known as a usability guru (he wrote a popular book and some chapters are available at http://joelonsoftware.com/navLinks/fog0000000247.html), but he happens to actually run a software development company full-time, so he's not going to go out and do studies and the like. Most of his advice is spot-on, though.

    His regular blog is at http://joelonsoftware.com/

    Another great resource (which I found through Joel) is http://www.mezzoblue.com/, the creator of which is responsible for the famous (you haven't heard of it ?!?) CSS Zen Garden (http://www.csszengarden.com/). A bit more into the technicals, but still great stuff.

    Posted by: gerryg on November 20, 2003 at 03:02 PM

  • Glazed Lists - one itty, bitty thing
    Glazed Lists is a new Java.net project that serves one itty-bitty purpose - helping users find what they're looking for faster.

    Currently this covers table sorting, filtering, updates and display. It doesn't use XML like JDNC, instead, access is more programatic. You manipulate lists Like you would an ArrayList, and it fires events to handle filtering and updates.

    Check out https://glazedlists.dev.java.net/

    Posted by: jessewilson on November 20, 2003 at 03:30 PM

  • Jakob's only partly right, JNDC
    Have you looked at Portable Object Desktop (POD) by Xito? It's built using netx (which you mentioned earlier). I know the developers of both of those products, as they used to be co-workers of mine. POD and netx have a common history.

    http://xito.sourceforge.net/projects/pod/

    Posted by: ccerberus on November 20, 2003 at 03:59 PM

  • JDNC
    In the referenced article about JDNC, you say "The timely arrival of the new community Web site, javadesktop.org, provides just the place to host the evolution of this project under an Open Source development model."

    Does "open source development model" equal "released under an open source license"?

    I would hope that it means that you plan to accept patches from the community rather than just accepting bug reports as the rest of Sun does.

    Lastly, one of the keys of open source is "release early and often". In that spirit, where do we find the source for JDNC? ;-)

    Posted by: mbowler on November 21, 2003 at 04:41 AM

  • Not exactly usability but....
    I need something to help me do whatever I want. I like to work on some feature or config setting and figure out how to do it and then set it up for my own use. But whenever I need to do it again or change something about it I can never do it easily. I end up going through the whole process over again. You'd think that I would write it down somewhere. Well I did, but I can't find that either! Once I find how to do some application config OR desktop setting OR system setting OR web config OR like was mentioned about outlook "check for new mail X minutes", I would like to be able to do it again easily. If it would ask me "Do you want to remember how to do this?" I would say "Yes, of course" and the whole procedure would be saved in my "Remember This". Months later, I could then click on my Remembered Item and BAM! There I am right where I left off. Or at least very close to it with hints on what to do next.

    By the way it took me more than 10 clicks in Outlook. I'm too embarrassed to say how many exactly.

    Posted by: mikeh on December 05, 2003 at 07:38 AM

  • Sorting HTML tables
    Another way to sort html tables is with the TVC framework described at http://www.thewebtier.com. Try out the sample application and do a view source to see how simple they have made it.

    Posted by: jlogsdon on December 06, 2003 at 09:05 AM

  • JNDC
    It's nice seeing people mention XForms down here. I never understood why the open-source-community has never dared XForms in Swing...

    The only thing that's sort of similar (i.e. that really has an XML-model) is XWing (http://xwing.sourceforge.net/). The layout language is Apache Jelly...

    The last comment about scriptability is a general dream many people (around the XUL approach) have been taking (e.g. Luxor). It's very dangerous: you either end-up with a well-running cross-platform scriptable environment which is hard to extend or with a powerfully-extendible framework but with much less "VBscript-developer-accessibility".

    Posted by: polx on December 25, 2003 at 12:23 PM

  • IBM System Journal issue on User Centered Design (UCD)
    For those who are interested in a bit of reading, here is a URL to IBM's System Journal issue on usability, specifically User Centered Design (UCD) and IBM's customised version User Engineering (UE):

    http://www.research.ibm.com/journal/sj42-4.html

    Enjoy.

    Posted by: honhwang on January 04, 2004 at 03:05 PM

  • 网络营销软件
    网络营销软件
    网络营销软件
    群发软件
    群发软件
    ---
    群发软件
    网络营销软件
    论坛群发软件
    网站排名软件
    群发软件
    推广小助手破解版
    论坛群发软件
    网站排名软件
    群发软件
    推荐给你很好的群发软件和信息群发软件和供求群发软件
    推荐给你很好的群发软件和信息群发软件和供求群发软件博客群发软件网络营销软件网络营销软件
    网站排名软件网站排名软件网站优化软件信息群发软件信息群发软件信息群发软件论坛群发软件网站推广软件网站推广软件博客群发软件博客群发软件

    群发软件群发软件博客群发软件论坛群发软件网络营销软件论坛群发软件
    信息群发软件推广软件网站推广软件网络营销软件网站推广软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件
    网站排名软件
    博客群发软件
    网站排名软件
    网站推广软件
    群发软件信息群发软件
    免费论坛群发软件
    论坛群发软件
    网站排名软件
    免费博客群发软件
    网站推广软件

    群发软件
    博客群发软件
    网站排名软件
    网站推广软件
    群发软件信息群发软件
    免费论坛群发软件
    论坛群发软件
    网站排名软件
    免费博客群发软件
    博客群发软件
    信息群发软件
    论坛群发软件
    信息群发软件
    博客群发软件
    qq群发软件
    邮件群发软件
    博客群建软件
    企业名录搜索软件
    信息群发软件
    邮件群发软件
    论坛群发软件
    博客群发软件
    网站推广软件
    网络营销软件
    全能营销破解版
    网络营销软件
    论坛群发软件
    论坛群发软件
    论坛群发软件
    网络营销软件
    信息群发软件
    信息群发软件
    信息群发软件
    群发软件
    论坛群发软件
    网络营销软件
    网络营销软件
    网络营销软件
    群发软件
    群发软件
    ---网络营销软件
    网站推广软件
    群发软件

    Posted by: info0089099 on December 25, 2007 at 04:52 PM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds