One of the courses that I took back in college was on usability ("HCI" or "human-computer interaction"). Honestly, I took it because I needed a relaxing no-brainer class between vector calculus and denotational semantics (if you know one computer language, you know them all). I liked that the HCI course valued creativity rather that rote memorization.
For example, one of the homework assignments was to create a new metaphor for a music player. We're all used to a triangle meaning "play", a square meaning "stop", and a circle for "record". The assignment forced us to come up with something completely different -- where the user could just look at the icon and intuitively know what it does. My metaphor was based on a dog. "Play" was a dog wagging his tail. "Stop" was the dog sitting. "Pause" was him holding his paw out to shake hands. "Seek" was the dog sniffing the ground, and "rewind" was the dog running in the other direction. (I'm sure I still have the icons somewhere...) A user could just look at the picture and tell what the function did.
I took the course back when the Web
From One Mistake to Another
Over at FotoForensics, the volume of traffic has nearly doubled in the last week. Until the last few days of July, a typical load had 800-1,000 unique image uploads per day. But then something happened... the load shot up. On July 29th, the load went to nearly 2,000 unique uploads. July 30th was 3,141. July 31st was 2,586. In fact, July was lining up to be the 4th busiest month, but those last few days shot it to the busiest month on record.
I'm used to periodic, short spikes. That's usually when a new forum learns that the site exists, or maybe a front-page posting on Reddit mentions FotoForensics in the comments. Spikes usually peak after 2 days and last 3-4 total. Right now, the load hasn't dropped. It's been a week and I'm seeing the site level off at 1,500 to 2,000 unique uploads per day.
When there's a spike, I can usually look at the web logs and identify the source from the HTTP "referers" (the links that pointed to FotoForensics). Reddit, Facebook, UFO forums, conspiracy sites... they stand out as a large number of references from the same few web pages. However, this time there is no single source.
I was trying to find the cause... and then I realized... I did this to myself.
Web Page Uploads
FotoForensics permits people to upload content two different ways. You can either upload a file directly from your
I don't blame the users for uploading HTML instead of images in the URL field -- that's a design flaw. My initial solution was to identify the most common sites and just grab the picture that I thought they wanted. For example, Imgur pages typically have one main image, but then a ton of little pictures. I assumed that the user wanted the big main image. This was a good first-effort, but it wasn't ideal.
There's a common programming library called "magic" that identifies files based on some simple rules. For example, every PDF document begins with "%PDF" and GIF images begin with "GIF". Magic has hundreds of rules for matching different file formats. My second parser used magic to identify the file type. If it looks like "text/html", then I would parse it for images. This solution listed all of the pictures found on the page and prompted the user to select the image to upload.
My second solution worked really well, but it occasionally failed to parse HTML files. Last month, I took a closer look at this problem. It turns out, sometimes magic is wrong. Specifically, the rules to match source code (C and C++) come before the rules for identifying HTML. If the HTML began with JavaScript (a language similar to C and C++), then magic would report "text/x-c" or "text/x-c++" (or sometimes text/x-php, text/x-ada, or other text format).
For my third revision to this problem, I rewrote the parser and am no longer dependent on magic. Now the HTML images are extracted every time. I released this solution on July 28th -- and that afternoon the system load began to increase.
As far as I can tell, fixing that small bug enabled a small percentage of people. Those people, in turn, told their friends. And their friends told friends. This created the significant rise in volume without any single forum referring users. It just goes to show: a little usability goes a long way.