Constraints, friend or foe?

I’ve seen several places that sing the praises of building something under some kind of constraint, including this article at the always excellent Creaating Passionate Users blog. Checking out everyone’s projects in the “lab” session of my class reminded me of this.

The assignment was to build two version of a weather forecast reading tool for a hypothetical phone – one really basic, the other with some better automation features. One just had to be able to enter a zip code and click through seven days of weather. There weren’t many details given, and no requirement on the type of implementation (this is an engineering psychology class so there are lots of non-programmers).

I looked at the assignment and saw the requirement to type in a zip code and immediately discarded the idea of using powerpoint, reasoning that powerpoint faking of entering text via phone button pushes would require hundreds of slides. So I moved to flash; which was good practice, and I got to test out an open source framework in the process (ASAP Framework). The majority of the class turned in perfectly adequate workflow prototypes in powerpoint. How did they do that?

They embraced constraints.

Key constraint: entering an arbitrary zip code isn’t the point because we’re not really finding the weather. This simplifies things tremendously, and I can’t believe that didn’t occur to me. The power point projects only allowed one zip code to be entered (ie the “3” button was the only link active on one slide which would link to the next slide that would show a three entered) which was fine because the usability test task could be given as “find the weather for zipcode 12345”.

Embracing that constraint reduces the complexity tremendously and allowed people to concentrate on the work flow (and in some cases beauty) of their apps, while I was futzing around with flash. I’m able to (and indeed prefer) to prototype in tools more powerful than Powerpoint, so I immediately brought the big guns to bear, never having paused to think about the tradeoffs one might make at little cost to make it possible to do a reasonable fidelity prototype in powerpoint.

I do find building these prototypes in powerpoint incredibly tedious because of the drudgery involved in creating hyperlinks between all the frames as compared to writing some scripts. Good programmers are “lazy” in that they’d rather take time to automate something than do a task manually, but there’s obviously got to be a repetition threshold under which it would actually be faster to do the work manually than invest more time in building a more robust, automated solution. This project probably fell on the keep it manual side of that line.

At least my on screen cursor eased in and out of position. Can’t do that in powerpoint! (or can you?)

Can you tell a company by its website?

I’ve been looking for a new job of late, so I’ve been looking at a lot of company websites to get a feel for the company. I know the saying is you can’t tell a book by its cover (even though a cover can catch your eye and make you buy it anyway), but can you tell much about a company by its website?

I like to think you can.

The following factors tend to weigh heavily against a company in my mind (especially if they create web applications):

  • Site looks ugly or broken under firefox (I know most people use IE still, but come on. This also indicates they may be writing IE-only webapps)
  • Messy javascript
  • Poor HTML- no css, lots of inline css
  • Bad information design

I understand that a lot of these companies probably outsource their web presence, but I would think that if there were some talented designers at a company, one of them would raise some concerns about or fix the issues above, particularly poor information design.

Here’s a case study. One of my recruiters told me to take a look at Outstart which appears to be in the business of information delivery (e-learning etc) via the web. So it was especially alarming that they didn’t seem to be able to deliver information about their product line very effectively. Take a look at the screenshot below (taken from here). I’m willing to bet that a large percentage of visitors to the page try to click on the product names (in blue, bolded) next to the short descriptions before figuring out that doesn’t work and using the menu at left. Talk about misleading information scent. (Click the image for a larger version)

Lame info design

Other strikes here (besides the different order of the products in the page and in the menu):

  • Parts of the site don’t render well in Firefox. (like the country drop down box) I don’t want to work on an IE-only app again. Ever.
  • The url is ugly and complex. It contains at least 100 characters, many of which are in hexadecimal. They break down into three coordinates on the menu to decide which page to show. Only each id is a 32 hex characters, which means there are 10^24 possible menus, and the same number of possible items per menu, and the same number of base menus. I guess they’re thinking about growth, or adding the entire internet to their menu structure. At 10^72 combinations, they might be able to have a page for every atom in the universe. Way to plan ahead for growth.
  • The HTML is broken. There’s a chunk of CSS before the html tag. No Doctype.

I’d expect more from a company that builds web apps to deliver e-learning, wouldn’t you?

Shifty serving sizes

Shifty serving sizes

General Mills (secretly? sneakily?) altered the serving size of the multi bran chex I eat for breakfast. Instead of 190 calories per serving now its 160 calories. It just seems disengenuous that any food should be made to appear better for you by altering its serving size. Then again, does anyone actually eat just one serving of cereal? More mysterious is that the requisite 1/2 cup of skim milk factored in didn’t change. Do people suddenly like a higher milk to cereal ratio?

I see the benefit (to not eating too much, not so much the environment) of smaller individually packed serving sizes because there’s a certain mental barrier to opening another bag, but not the benefit of arbitrarily reducing the serving size.

Time for a new phone.

Phone going south

My trusty Sony Ericcson T637 is in the process of shuffling off this mortal coil as you can probably tell from the picture at right. I’m looking around for a new phone but not seeing anything I really like. Cingular seems to be overrun by Motorola phones, and I’ve never liked their interface design. Their cell phone selection seems to be influenced by some echo of Henry Ford. You can have any phone you like as long as its a Razr. In four colors!

I want something that’s not really a smart phone, but rather a “smarter” phone. I don’t want a whole computer to carry around, but it would be nice if it had a basic HTML browser so I could use it with Backpack or some other online organizer. Perhaps some basic calendaring and organizer capabilities. It has to play nice with isync. Music playing and picture taking aren’t priorities because I already have those covered. Hopefully it’s not huge either.

I tend to overconstrain problems so that they can’t be solved, so maybe I’m already there with the above needs.

The Nokia Nseries looks like it could be a winner for me, but I don’t know if or when cingular would offer one of their phones, plus only the top of the line appears to support GSM850. They do offer the 6682 which appears to meet my needs, but they’re not doing me any favors; at $250 its only 50 bucks cheaper than getting it directly from Nokia, unlocked.

I like sony ericcson as well but I can’t decipher their current phone line and cingular only offers one of their phones right now, the Z525a, which doesn’t meet my needs. The k790 and w810
look like they could meet my requirements as well, but they’re not on Cingular yet either, although they are rumored to be showing up soon.

I guess there’s always ebay, but that’s complicated slightly because I have an AT&T; sim card rather than Cingular, so all the Cingular locked phones there will probably not work.

Suggestions anyone?

“Unimaginable” overused?

Lately in the news I’ve been struck by an overuse of the word “unimaginable”. Lets take a look at some examples. The first time I noticed this trend was in coverage surrounded the foiled not-even-close-to-execution plot to take down planes with liquid bombs. Here’s a quote from Deputy Commissioner Paul Stephenson of the Metropolitan Police:

… It is a very, very serious plot… Put simply, this was a plot to commit mass murder on an unimaginable scale.”

Next I saw an article in the metro (I can’t find the original quote) talking about how the returning student population was stressing the road system on top of the problems with the big dig tunnels, that one flat tire or accident could cause “unimaginable gridlock”. Searching for this article in google found this quote from a fiction excerpt instead:

The camera switched to an aerial view recorded earlier showing a scene of unimaginable gridlock stretching to the horizon in all directions.

Which is ironic, because given an aerial view, one doesn’t even have to use imagination! Another example of this use is about the evacuation preceeding hurricane Rita:

The evacuation triggers unimaginable gridlock, which in turn sparks anger, exhaustion and confusion

My final example comes from the public editor’s column in todays New York Times. The article is on the accuracy of polling data, and this quote is at the end of a paragraph on false precision.

The survey would have to interview unimaginably many thousands for that zero point eight to be useful.

I wonder whether these seemingly incorrect uses of the word unimaginable are a failure of vocabulary or of imagination?

Let’s revisit those quotes:

“mass murder on an unimaginable scale”: I can certainly imagine mass murder. In fact I don’t have too, because I could read about Hitler or Stalin. Blowing up ten airliners would kill three thousand people give or take. The death toll at the world trade center was 2,752.

“unimaginable gridlock”: I’m pretty sure I can imagine lots of cars waiting to go someplace, slowly.

“unimaginably many thousands”: I can imagine lots of thousands. How’s a million thousands. In fact in a survey, one could actually calculate (imagine that!) how many thousands it would take to have precision down to the tenth of a percentage point. Got math?

Time for some imagination.

Does everyone use Java still?

I was talking to a recruiter the other day, and mentioned that I’d like an environment where people don’t use Java as the default implementation language. I feel that a company full of “Java programmers” are more likely to be less intelligent and proficient programmers and designers compared to a developers at a company that makes use of Python or Ruby or any other scripting languages (as well as more mainstream tech) would be more likely full of intelligent, intellectually curious people, because those people took the time to go and learn those new languages on their own.

While computer languages really are just a way to tell a machine what to do, making the “what to do” the most important piece of the design, I think learning several different languages makes one look at problems from different angles and come up with more elegant (and perhaps robust?) solutions. Perhaps the same way learning eskimo with its twenty something words for different types of snow would change how one would look at the weather?

Anyways having split my time recently between javascript and java, I’m frequently annoyed by the lack of first class functions and closures in Java. On the other hand Java provides a lot more API, so you win some and you lose some.

To wrap up the recruiter story, she said she doesn’t think she ever hears about jobs with python or ruby etc. There’s got to be some people out there using this stuff, but how to find them?

Self Checkout

Either I’ve been really unlucky or society just arrived at some plateau on the technology adoption curve for grocery self checkout. It seems to me that it used to be only once in a while that the line for self checkout was held up by some poor soul that couldn’t figure the thing out, but the last few times I’ve been in Shaws, i’ve been held up as people take forever to checkout their handful of items.

Its just not that hard! Scan items, scan shaws card, hit finish. Hit Ok at the annoying “check under your cart” prompt. Click the picture of the mechanism with which you’re going to pay. Swipe card. Done.

As someone with some interest in usability, I wonder what it is that leaves these people gaping open mouthed at the screen, struggling to comprehend the current prompt or messsage, but I feel like it would be rude to mosey up behind someone to see what is going on. I hope Shaws is doing something to capture the state where input to the machine is paused for some period of time(along with video tape of the user) to figure out what the stumbling block is.

I wish the self checkout wrangler would be more proactive about helping people who appear stuck – like at the airport where airline employees try to hold your hand through self check in.

As I’m not a patient person, while I’m fuming in line behind these slowpokes, I’m imagining some device where the self-checkout community can vote inept people back to the regular checkout lines. Can we make that happen?

Another thought – why can’t we all wait in one line for the cluster of self checkout machines? It seems to me that would be the most fair approach because now one has to not only judge how much stuff a person has, but also profile for computer aptitude when getting in line. Perhaps that’s un-American? I remember a couple of years ago waiting in line to use the ticket machines in Union Station (New Haven) trying to straddle a couple machines so that I could get the next one and having some lady ask me “Are you in this line?” to which I replied “We’re all going the same place lady”. She wasn’t amused.

My Itunes Library: many unplayed songs.

I’m interested by data and information visualization, but unfortunately know next to nothing about statistics or data analysis. I’m trying to learn some stats on my own, so I’ve been casting about for some “interesting” data to mine.

While using iTunes one day, I noticed that there were quite a few of the ~2900 songs in my library that had never been played even once. I was curious about the distribution of play counts, and while I was at it wondered how strong the correlation between the length of time a song had been in the library and the number of times it was played. I exported the Library and wrote some python scripts to extract data (using this helpful library to parse the plist-in-XML file that itunes exports).

It turns out I have 208 unplayed songs in my library, and additionally lots of low single digit playcount songs. Here’s an (ugly excel generated) histogram:

It doesn’t really hold to the power law well because of the way it seems to level off for a while, and the dip at zero playcounts.

While I was delving around, I figured I would see if theres any correlation between the length of time a song has been in my library, and the number of times it’s been played. The dot plot turned out interesting. agevsplay.png

Looks like there’s a weak positive correlation between age and playcount, which is to be expected. What intrigued me more is the vertical lines of dots that seem to indicate music being added in significant bunches which at least on first glance seem to be bigger than one album.

One of these days I’ll have to slap together something interactive so I can see what songs those clusters actually are.

Crossing Ladies and Cheese Curds

A couple of quick comments from the last few days…

Crossing Ladies Conversation

The times I leave the house by 8:30 in the morning, there are always a couple of crossing guards working the rotary near my house. They seem to help many more adults cross the street than school children, but that’s neither here nor there.

I was waiting for my bus this morning and since it was a little late, I got to see the crossing lady interact with quite a few people. Every conversation seemed to cover what a beautiful day it was at long last – after it rained for five days straight. I’m not sure how anyone can take part in so many practically identical conversations (as eve 6 sang “talk so small I can’t remember every single word) over and over again. Or maybe she’s providing a valuable pick me up in the morning, especially in a place where one probably otherwise wouldn’t talk until showing up at work.

Cheese Curds

I love cheese, so one of the things I was looking forward to about my weekend trip to Wisconsin with Kristi was tasting my first cheese curds. And hearing them squeak. I was disappointed on both fronts. I like my cheddar cheese as sharp as I can find it. Only cheese curds are rather mild so that was disappointing. As it was pretty cold during the weekend they never warmed up enough to squeak upon ingestion either. 🙁

Jury, Have You Reached a Verdict

I don’t know if Judges really say to the jury what they do on TV when a verdict is to be rendered, but it always irks me. Usually the judge reads a piece of paper that presumably has the verdict on it, then hands it back to the bailiff who gives it back to the head juror. The judge then says “Ladies and gentlement of the jury have you reached a verdict?” – doesn’t the judge already know the answer to that question?

Gmail notifier stops checking when you’re idle

I’m not sure why this amazed me so much this morning. I got to work, unlocked my computer and suddenly my gmail notifier tells me I have mail – only that mail was some spam I didn’t bother reading this morning on the way out the door. It didn’t just arrive, so what must have happened is that it detected one of: screensaver turning off, machine being unlocked, or keyboard/mouse activity and then resumed checking.

It seems obvious thinking about it now that its pointless to tax an infrastructure by checking for updates that the user won’t even see – I guess I just never thought about it all that hard before.

I know based on what I’ve read about the effects of interruptions on productivity that its counter productive to for me (or anyone) to run any sort of mail notifier; indeed I’ve hated the way my organization has tended to use email as a lame substitute for IM. Problem is I’ve gotten into the bad habit of compulsive mail checking anyway – which puts me in the browser and then there I am checking my feeds and digg. Trouble. So I think for me, right now it turns out to be better this way.