Friday, March 30, 2007

April Fools comes early?

Of course, the title is a joke, but I've read a couple of threads over at TheServerSide.com today and yesterday that made me check the calendar to make sure April 1st had not yet arrived.

First, we have Pure servlets: Designing Web UIs for Simplicity, a discussion about an article posted at IBM developerWorks which attempts to argue that generating the HTML to be displayed directly within the servlet. The sample code in the article contains snippets such as:

if ("true".equals(request.getAttribute(P_SUCCESS)))
out.printDIV("smallHeading", "Team picks were saved successfully.");
out.printDIV("reminder", "(Reminder: \"Pick 20\" represents the team you"
+ " think likeliest to win. \"Pick 1\" is the least likely.)");
The author, Jason Van Cleve, says that JSP is too complex for web designers and Java developers apparently can't properly write HTML, so we might as well go back in time and re-invent the wheel. Of course, I'm paraphrasing here. What he actually says is:
For Web pages with dynamic content, Java™Server Pages (JSP) technology is touted as a means of separating the developer's concerns from those of the UI designer. Unfortunately, JSP is too complex for many designers, so Java developers tend to handle the JSP code themselves, often with unsatisfactory results.
This pure-servlet approach is touted by Van Cleve as a means to simplicity! Uh, what? What we're essentially doing is taking presentation logic and business logic, pouring them into the blender together and hitting PUREE. Good luck separating them again!

Next, there is an announcement of a new build tool called Schmant. Most of us use Ant, but OK - some people need more than Ant can do alone. That's what we have Maven for. If you don't like either of those, there's already Rant, Invicta, JMK, Centipede, or CPMake! But that isn't enough. Now there is Schmant. Its notable feature is that it uses the JDK 6 scripting engine for its build scripts. Of course, Ant already has scripting support, with the added benefit of not requiring Java 6, but why use something that's tried and tested and solid when we can start from scratch?

(Photo: isriya)

Wednesday, March 28, 2007

Goodbye to VirtueDesktops


It's always sad when a great piece of software reaches the end of its life. Tony Arnold has announced that he is ceasing development of VirtueDesktops. This is a real shame, as VirtueDesktops is one of my favorite free Mac OS X applications.

For those who aren't familiar, VirtueDesktops allows you to have multiple virtual desktops in Mac OS X like the various Unix window environments offer. It's a huge benefit for anyone doing development work; all the Mac users at my office all use it.

The main reason, he says, is that the upcoming Mac OS X 10.5 "Leopard" has a virtual desktop capability, called Spaces, built right in. I only hope that Spaces has as strong of a feature set as VirtueDesktops.

I can totally understand Tony's reasoning here. I myself have abandoned a software project, although it wasn't nearly as popular as VirtueDesktops, when Microsoft aquired Sysinternals and guaranteed that my humble Windows Process Tools would never measure up to what is now a Microsoft tool, Sysinternals PsTools. Of course, this message post should have told me that this was coming.

Anyway, I'm rambling off point. My failed projects are a whole different subject. Best of luck to Tony in his future projects, and thanks for a great piece of software!

Monday, March 26, 2007

Call for Feature Requests

Recently, I decided to resurrect my long-time pet project, Log File Watcher, and get it under active development again. The previously released version, named FileWatch, was a mess. It was buggy, had too many features crammed in, and was just poorly executed.

I've decided to start over from scratch, and rename it Log File Watcher. The name change is mostly to match the project's URL over at SourceForge: http://logfilewatcher.sourceforge.net/.

About Log File Watcher


Log File Watcher is basically a cross-platform GUI version of the tail utility. You open a file with it, and it watches the file for changes. When new lines of text get added to the file, they will appear in the GUI window as well.

Feature Requests Wanted!


When I first started working on it, I thought of a few general features - the only real notable one was coloring lines from the log that matched user-defined patterns.

So, the main purpose of this blog post is to ask any readers out there: What sorts of features would you like to see in a utility like this?

You can send me ideas in one of three ways:

  1. Visit the project page at http://www.sourceforge.net/projects/logfilewatcher and add it to the Feature Requests tracker. (This is the preferred method.)

  2. Leave a comment on this post.

  3. Email it to jattardi+logfilewatcher@gmail.com.

Monday, March 12, 2007

Always give your user the choice

I hate to pick on individual applications for examples of bad UI practices. I especially hate to pick on an application that I really like. But, sometimes these things can't be avoided.

If you have a Mac, and use Google Reader, then there is a great little application called Google Reader Notifier. It works with Growl, a notification system for Mac OS X, to notify you when there are new unread items in your reading list.

I love this program, except for one thing. It periodically checks for an updated version, and when there is an update available, it lets you know via a message dialog. Unfortunately, it makes the assumption that you want to download the new version right now, and the only available button in this message dialog is "Thanks". So polite.
This is not usually a good idea. It's always good to download the latest version of an application, but it might not be convenient for the user at this moment. Most applications that perform update checking give the option of installing it now or waiting until another time. Later on, you would get another reminder of the new version.

Let me reiterate - my intention is not to rip on Google Reader Notifier. As I said, I love it and use it daily. But every application can use some polishing here and there. This is one such area for this app.

So, when developing your applications, please remember - always give your user the choice!