Wednesday, November 16, 2005

Web Browser Interface

There is a noticable distaste from the older generation of software designers towards using the internet as a means to deliver an application to a user.

I would like to state, first of foremost, that I feel that this belief is neither well grounded, nor supported by the recent trends in the industry.

That is not to say I don't understand why older developers (and users) feel the way they do. Certainly, not all web interfaces are created equally. In fact, the tools for such developments are fairly new to the industry (the production of a Java suite of webdev applications is analogous to the development of the first C compiler). As time progresses, the state of the art steadily creeps upward - and at its current point is it becoming evident that web applications are here to stay.

Let's consider a simple example... finding directions from one address to another. There have been steady increases in this since the proliferation of the automobile (and thus, a means and a reason to go from address to address).

  • Paper maps. Unfold them. Find your address. Find the index for the target address by its row-and-column. Locate the target in the designated grid location. Plot a course from point A to B.

  • Map Software. Install it onto your computer (did you buy it... or did it come with your computer?). Type in the two addresses. Have it plot a course for you.

  • MapQuest. First generation web application. Type in two addresses, and get a map and directions. Advantage over the previous: could be updated with new roads!

  • GoogleMaps. Second generation web application. Satellite / Hybrid view. 'Nuf said.

    Let's consider something that probably isn't as accepted though, because I would bet that the number of paper-map-users who are also tech-savvy (no matter what the age) is dwindling.

    Google now has a word processor that supports auto-save (it is called Gmail - it has 2+ GB of available hard drive storage space). There is a web based CRM tool available from Salesforce.com. Many SCM Tools (this is the area that I work in) offer varying qualities of Web Based support (from CVS to ClearCase).

    That is just to mention a few. Now, the question begs... why a web application? Why.. desktop independance, of course. With a web mechanism I have automatic network support. I can get to my information from my cubicle, from my home (granted a firewall doesn't protect it), from a workstation across the country, or from the WiFi connection at the local coffee shop. [that said... from a coffee shop *without* a WiFi connection, I am SOL].

    So, they are here. Their quality is vastly improved over a few years ago. Get used to web apps.

  • Monday, November 14, 2005

    He Spelled HCI Wrong...

    ...was my first reaction to Prof Vesonder's CHI. Throughout the discussion, he used the phrase "Human Computer Interaction." Yet, in his slides the acronym was still CHI (which reminds me more of the chi-squared test that is useful in Artificial Intelligence).

    Anyway, during my undergrad, I took a course called Studio Design in HCI with Prof Bill Hart-Davidson at RPI. Our project was to develop an intelligent design to make sense of all the possible permutations possible in the art of Music Interpretation. We designed an online portal (just created the specs... didn't write the code) where music fans could login in take part in moderated discussions on their favorite song, album, or artist. We provided lyrics and other artifacts that a person would want to create an interpretation. We provide support for (a) users who only care about reading the interpretations of others, (b) interpretters who want to express their viewpoint, and (c) critics who want to comment and moderate interpretations of others.

    To create our design, we conducted interviews of some of our friends and fellow college students to understand what was desirable. We even directed some people to create an interpretation over the course of a week, and report back to us the artifacts they used, the circumstances of the interpretation, and the actual interpretation they had on a piece of music.

    You can read more about our final project here.

    Monday, November 07, 2005

    Murphy's Law

    So last week I was charged with the task of ensuring that the Training Room would be configured when a representative from Green Hills Software (www.ghs.com) came on-site to teach Integrity/Multi. I had to...

    1. Make sure developers could run Multi from the training room
    2. Make sure enough licenses were installed

    My Preparation:

    I had a license file generated last week for 50% more than the number of people who were in the class. I had tested a configuration which called for setting up a Remote Connection with a server which had the GHS software installed and configured. I judged that the remote server was powerful enough to handle the load of ~10 remote Gnome-supported connections + GHS over the network. The processor is a dual Xeon - so it stood to reason the it would have the power.

    What Went Wrong:

    I did not correctly install the training licenses. Even though the software gave me a "Success" message, it didn't write the new license file because the old one was still running a process and had a lock on certain files that needed to be modified.

    I did not know that the Training Room computers were networked WIRELESSLY. Yeah... that slowed things quite a bit. No Remote Connection.

    First Attempt to Solve Things:

    Figured out how to correctly install the training licenses. Passed around CDs so people could individually install local copies of Integrity/Multi.

    What went Wrong Next:

    The license GHS gave me last week was for an x86 processor target while we were compiling for a target Simulated PPC board.

    Second Attempt:

    After a series of telephone calls to our support rep in Virginia and waiting for the license guys in Santa Barbara to arrive in their offices (by this time it was after lunch on the east coast - halfway through the first day of training), we finally had a viable system.

    So, it is like the man said... Things will go wrong at the most critical times. Issues occur in bunches. Problems wait until large groups of users depend on their systems before occurring.

    Good 'ole Murphy!