Deleting my Blog

It is done.

I deleted my blog. From java.blogs. Don’t get me wrong, I appreciate all of the traffic they provide, but by actively pushing my blog to their service, I give up a little bit of freedom.

Specifically, I lose the freedom to say:

If you don’t like what I say, feel free to go away.

And I can follow up with a little smiley, which makes everything all better:


See? You feel better already!

Plus, I’m writing less and less about Java, which makes me feel guilty for posting to java.blogs. Here is some Ruby code Mark and I worked on yesterday:

require 'rexml/document'  # This returns a normalized version of a given XML string. def normalize(xml_str)   # Convert the XML string to a Document object and back to a string   # to normalize it. This changes single quotes around attribute values   # to double quotes and sorts the attributes within each element.   normalized_str =    # Remove ignorable whitespace and carriage returns   # from each line in the XML string.   s = ""   normalized_str.split("\n").each { |line| s << line.strip }   s end

I used this in some unit tests to compare some expected XML to the actual XML produced by a Ruby class, ignoring insignificant whitespace.

Blog On…

And there you have it. I am not forcing you to read this. These are just my opinions, and you are free to subscribe or unsubscribe at will. (unless you live in North Korea, where you probably don’t have the freedom to subscribe…sorry!)

And unless you drop the F bomb or are a blatant spammer, I’ll let you leave comments all day long. You don’t even have to give your real name.

Best. Comment. Ever.

I would like to draw your attention to this comment from Matt. Well done!

I’ll do my best to bring the fun back.

*** UPDATE: that’s weird…Firefox isn’t scrolling to his comment when I click that link. Probably a mistake in my theme. Oh well, just scroll down and look for Matt’s comment.

*** UPDATE 2: It is fixed. See my explanation here.

Greatest Hits

Here are some of the more popular comics from my blog…or maybe not so popular, but some of my favorites:

All of my comics are tagged, also. You’ll have to keep clicking the Previous Entries link to see everything.

Least Successful Shirt Design

Shadenvista Shirt

I Disagree

This comment from ApplesAndOranges misses the point:

What your companies app wants: full tax details as required by the government so we tax you the correct amount.

If your app wanted something as simple as google (a none specific set of words) you’d only have one input box and a button too.

To which I reply…that’s not really what this comic is about. A comic is not a literal statement of fact. Did you really think I was claiming — or even remotely implying — that a data-entry application can be written with a single field and button?

Using the specific example of tax forms, there are many competing tax software packages. Although all must collect the same data, their usability and efficiency varies widely. There is much more to this puzzle than a 1-to-1 mapping from data entry fields to database fields.

And using Apple as another example, contrast their MP3 player user interfaces with competing products. Again, all of these devices perform the same tasks and have the same data behind the scenes. Yet the Apple product is simpler and more efficient. We can apply many of the same design principles to tax software.

If you need to collect ten pieces of data, that is an essential complexity. But most GUIs are littered with accidental complexity. That is what the comic is about.

By and large, companies do NOT create good user interfaces. These apps do not need:

  • Cluttered, sloppy GUIs.
  • Poor keyboard navigation.
  • Modal dialog after modal dialog. Modality is a cheap and lazy programming fix and is frequently abused. This locks users out when they need to browse to some other screen for research while in the middle of a data entry task.
  • Bad scrolling, forcing users to reach for the mouse to see essential data.
  • Weird data entry fields that interfere with “normal” typing. Avoid weird custom components that attempt to do auto-completion for things like dates and decimals unless they are PERFECT. Anything less interrupts the flow.
  • Sluggish performance, such as making long server calls on the EDT.
  • COBOL-like presentation that converts EVERYTHING TO ALL CAPS. (ick…ok, that’s just a pet peeve)
  • 12 “extra” fields to capture unrelated data that some committee decided was important. (The truth is, there probably isn’t a committee. Instead, features creep in one-by-one from various interests throughout the company)

It is easy to tack on features. It takes focus and discipline to create exactly what you need, and no more. Sure, if your tax form needs N pieces of data, you’ll need N fields. But few corporate apps are that efficient.

And another comment from Steve Bennett:

(by the way, thank you for using your real name — I use mine)

Your company’s app is probably industry specific and will be used by a smallish number of people for hundreds or thousands of hours to do their job. Power, flexibility and efficiency become far more important than intuitiveness, beauty and user-friendliness.

I don’t think most custom apps are flexible, efficient, or powerful. :-) How many times have you ordered something at a fast food restaurant and watched as the poor cashier struggled with a horrible GUI? I fail to understand how it requires 37 keystrokes to order a taco without lettuce.

Ease of use is a competitive advantage! If thousands of stock brokers spend thousands of hours using some proprietary tool, a quality GUI is damn important. I’ll even argue that fade-ins, animations, drag-and-drop, and overlays are also important, effective ways to convey additional information without cluttering the GUI.

But that’s pie-in-the-sky stuff. For the most part, I think typical apps don’t even get the basics right.

Chet: I’m Sorry

My comic So Long, Chet crossed the line. In particular, I do not wish to make personal attacks. Although that was not my intent, it certainly gave that impression (how could it not?) and I am sorry.

Let’s Try it Again…

Here is another attempt, hopefully funny without being insulting:

Where is Chet?

Ouch…Malaysian Post

I just bought some electronics components and received the following confirmation email:

Comments : Your order was shipped by Malaysian Post. Normal shipping time is 1-2 weeks. We thank you for your patience.

Yikes. I’m used to Newegg, where I receive the package almost as fast as the email confirmation.

ZDNet: The Computer Experts

Someone just walked up and asked me to check out this web page:

Photos: OLPC, Classmate and Eee

He wanted to know if I could figure out how to view the remainder of the article. The summary page ends with this tease:

In the following pages we take a comparative pictorial look at the OLPC XO, Intel Classmate and ASUS Eee.

I can’t figure it out. The first comment on the article is great:

Am I retarded…or is there no way to get to the next page of the article? All I see is “In the following pages we take a comparative pictorial look at the OLPC XO, Intel Classmate and ASUS Eee” and then… nothing.

He then follows up with:

Nevermind. I see how it works.

Worst. Navigation system. Ever.

I must agree, although I still can’t figure it out.

What is Chumby?

I really like Google Reader’s shared items. This way other people (hopefully with similar interests) filter the good stuff for free. For instance, I’ve noticed Crazy Bob shared several Chumby links. Which made me think…wtf is Chumby?

Chumby is a little clock radio that gets crap off the Internet via wifi. So I guess you are supposed to put it on the nightstand by your bed. When you wake up, you roll over and look at your Chumby. It’s fun explaining this to your Mom:

No, Mom…I didn’t say I had a “Chumby in bed”…I can’t believe we’re having this conversation. My Chumby is on the nightstand next to my bed.

When you wake up, you stay in bed for an hour to listen to the latest JavaPosse episode. OK, that seems weird to me. I never lay in bed and listen to my clock radio. The alarm goes off, I hit snooze a few times, and get up. Then again…the prospect of browsing certain kinds of craigslist ads while in bed may appeal to some people…if you’re into that sort of thing.


But wait…this article says Chumby is for your desk. That’s nice and all, but my desk already has a computer on it. A real computer with two big monitors, good speakers, a huge hard drive, and a fast wired network connection.

Using Chumby as a digital photo frame makes the most sense to me. The price is fair and they don’t charge a monthly service fee. This might make a nice gift for someone to better keep up with extended family pictures.

I dunno…I guess I’m not really sold. If accessing the Internet from a non-PC-equipped room is your goal, perhaps an iPod Touch makes more sense? At $299, the iPod is more expensive, but offers vastly better mobility. I can definitely see myself sitting on the back patio this summer with an iPod. But dragging a Chumby outside and plugging it in? That’s not nearly as convenient.