Author: Zach Wilson

Yay, Error Page Found

We don’t see them very often, but a creatively designed 404 page can really bring a smile to your face. In the case of our redesign, since most of you will never see our 404 page, we thought we should share it publicly. Why not make it whimsical? Wikipedia tell us,

The 404 or Not Found error message is a HTTP standard response code indicating that the client was able to communicate with a given server, but the server could not find what was requested.

The web site hosting server will typically generate a “404 Not Found” web page when a user attempts to follow a broken or dead link; hence the 404 error is one of the most recognizable errors users can find on the web.

However, modern times calls for more modern practices. Put some thought and creativity into your 404 page and maybe you’ll be lucky enough to get some social mo-jo from it.

Chicago EL Crashing at O’Hare

Chicago EL Crashing at O'hare

Russian Workers Dancing

Russian Weirdness

Dumb and Dumber

Dumb and Dumber

A little privacy for the sheep, please.

A little sheep privacy

The Lego man unplugged everything

Lego man unplugs the power

Creative artwork and phrase

Flown the coop

Sneak peek of CSS code

Code App 404

Where’s the Princess?

Thank you Mario!

I Love Research That Re-enforces My Intuition

jakob-nielsen_cropped.jpg.400x400_q95_crop_upscaleYou know when you do something that feels right and then feel nobody listens to your advice? Yet, you’re the “expert” and really everyone else should listen to you and follow your lead?

Today we still have clients specifically ask to make sure certain links “open in new window/tab”, or target=”_blank” a href, when adding specific hyperlinks. We try and tell them, we don’t love that behavior, as it’s best to let users decide how they want a window to open and behave. In general this is bad practice and poor usability and ultimately confuses users. Jakob Nielsen comes to the rescue with “Opening New Browser Windows”:

Opening up new browser windows is like a vacuum cleaner sales person who starts a visit by emptying an ash tray on the customer’s carpet. Don’t pollute my screen with any more windows, thanks (particularly since current operating systems have miserable window management). If I want a new window, I will open it myself!

Designers open new browser windows on the theory that it keeps users on their site. But even disregarding the user-hostile message implied in taking over the user’s machine, the strategy is self-defeating since it disables the Back button which is the normal way users return to previous sites. Users often don’t notice that a new window has opened, especially if they are using a small monitor where the windows are maximized to fill up the screen. So a user who tries to return to the origin will be confused by a grayed out Back button.

(See also special guidelines for opening PDF files in new windows.)

Jakob said that in 1999! He continues to have to reassert himself 25 years later:

Opening new browser windows is highly confusing for most users. Although many users can cope with extra windows that they’ve opened themselves, few understand why the Back button suddenly stops working in a new window that the computer initiated. Opening new windows was #2 on my list of “Alertbox: The Top Ten Web Design Mistakes of 1999” top-10 Web design mistakes of 1999; that this design approach continues to hurt users exemplifies both the longevity of usability guidelines and the limited improvement in user skills.

Thanks Jakob, I feel much more vindicated in my advice now!

Learn something new everyday…

Today it was with PDO and memory usage.
When doing large data inserts with transactions, you should
always do your query preparation outside of your loop.
For example:

$datasource->open();

$datasource->beginTransaction();

$p = $datasource->prepare(‘INSERT a SET b = :c’);

while(!feof($line)) {

$p->bindValue(‘:c’, $line);

$p->execute();

}

$datasource->commit();

If the query prepare is moved into the loop, an exorbitant
amount of memory and time is consumed parsing the query every
iteration. For a million inserts, this can result in
exceeding allowed memory usage.