Gate gas stations, at least in the Concord, NC area, insist on using the bank billing zip code for a debit card transaction at the pump, rather than the card holder’s PIN number. I do not see how this is beneficial to card holders, as it seems to be a much less secure number to require for gas purchases. If a card is lost at a gas station, a person should just swipe it at the pump and use the gas station’s zip code, or a few surrounding zip codes until he/she guesses the right number. I don’t know the statistics, but I would guess that the majority of people filling up at gas stations are local, meaning the requirement of billing zip codes, rather than requiring a PIN number, is ludicrous.
February 16, 2010 by Michael Head in
Development
I recently purchased The Maw and Splosion Man and have to say that I thoroughly respect the development team at Twisted Pixel. I had never heard of this company before stumbling upon these two games and I am very impressed with the level of quality — unique gameplay, very responsive controls, and just a level of polish that I was not expecting for Xbox Live Arcade games. Also, multiplayer on Splosion Man = lots of fun.
I have run into at least one instance of glitchy behavior in each game — I wasn’t able to complete one level on The Maw due to a button being non-responsive at one point, and I got stuck at one spot in Splosion Man, which was easily remedied via self-splosion. Also, I feel like there should be a higher amount of contrast between the character of Splosion Man and the background of the level at some points in the game, especially when the camera zooms out. I’ll post an example image if I can find the part of the game I am referring to; mainly the issue is the umber-orangish background diminishing the character’s outline and making it more difficult to track him visually.
Nevertheless, despite the above issues, I would highly recommend both games to anyone looking for fun, friendly platformers.
February 8, 2010 by Michael Head in
Development
Allow me to ruffle some web designers’ feathers. Helvetica Neue is bad for web usability. On Windows, in Firefox and Internet Explorer, it is painfully illegible. Here is a sample of Helvetica Neue text rendered in Firefox on Windows 7, compared to Arial:

When designers felt that Arial was overused, they flocked to Helvetica, until they overused it as well, and now they currently flock to Helvetica Neue. Unfortunately, on Windows machines with the Helvetica Neue font installed, it renders very poorly in Firefox and Internet Explorer. Below are some popular brands’ websites as viewed in Firefox on Windows 7 (click a thumbnail to see the screenshot):
Compare the above screenshots to the ones below, where each site has had its font changed to Arial via Firebug:
Some possible solutions for this usability issue:
- Designers stop using Helvetica Neue, until modern browsers on all major OSes render it legibly.
- Developers implement cross-OS and cross-browser stylesheets for setting a different font, depending on the OS/browser combination. (I realize this would be ridiculous, but it’s still a possible solution)
- Firefox and Internet Explorer start smoothing fonts, similar to Safari
- Windows fixes its font rendering issues (probably the best solution, in order to prevent this from happening in other interfaces, but also the least likely to happen)
Well, that’s my 2 cents on the topic of Helvetica Neue. Carry on.
Driving along I-85 in Charlotte a few days ago, I saw this billboard for the first time:


(image courtesy of Chris Devers from flickr.com)
And I had the same thought that Jed Hartman had on his blog: “a bare-knuckled bucket of…deer?” So I felt I had to quickly sketch what came to mind:

Maybe next I should sketch some robotic female deer…you know, “Droid does”.
December 10, 2009 by Michael Head in
Development
Using CSS2′s :after notation, we can preload images without unnecessary markup or JavaScript. Example:
#wrapper:after {
content:url(/images/black-dropdown-bottom.png);
display:none;
}
This will preload the image set as the “content” after the element, and using display:none we don’t have to worry about it being rendered. Just a nifty trick to preload images without JavaScript or duplicating image tags inside a div that is not displayed. Of course, this only works on those browsers that support :after, so poor IE6 & IE7 will have to deal without preloaded images.
September 21, 2009 by Michael Head in
Development
I should have posted this right after Firefox 3.5 was released, but I guess it’s better late than never. I am posting so people will have one more resource for solving a UI issue that I considered a problem: in FF 3.5, the last tab no longer shows the close button, so you can no longer close all tabs in the browser without closing the browser itself. I assume they made this change because of the new “add a tab” button that appears to the right of the right-most tab (see image following this paragraph for visual aid). Of course, on a non-last tab, the “add new tab” button is next to the close button, so my hypothesis is not very solid.

Close button next to "add a new tab" button
To restore the close button on the last tab, do these two things:
- Open a new tab and type “about:config” in the address bar. Type “closeWindow” to filter the list and you should see browser.tabs.closeWindowWithLastTab as the only option listed. If it is set to “false,” double click the option to change it to “true.” This will prevent the browser from closing when you close the last tab. This is technically optional, but most likely something you will want set when you restore the close button on the last tab.
- Locate the Firefox userChrome-example.css file on your hard drive — for Windows Vista, it is located in <User Name>/AppData/Roaming/Mozilla/Firefox/Profiles/<alphanumeric>.default/chrome. Substitute “User Name” for the logged-in user name, and “alphanumeric” will be an alphanumeric combination with the word “.default” attached to the folder name. Copy and paste the userChrome-example.css
file and rename it to userChrome.css. Open the file and add the following code to it, under the line that starts @namespace (line 15):
.tabbrowser-tabs[closebuttons="alltabs"] > .tabbrowser-tab > .tab-close-button { display: -moz-box !important; } .tabbrowser-tabs:not([closebuttons="noclose"]):not([closebuttons="closeatend"]) > .tabbrowser-tab[selected="true"] > .tab-close-button { display: -moz-box !important; }
Restart Firefox and you should now have a close button on the last tab, and this last tab can be closed without closing the browser. Enjoy Firefox 3.5!
So, after the announcement that the XHTML 2 working group will not be renewed, and more resources will be put into HTML 5 development, I have tried to do some research into HTML 5 in consideration of jumping on the bandwagon. I was not very familiar with the HTML 5 spec, as most of my work is done in XHTML 1, usually with the Transitional doctype. The research I have done so far, though, reveals several advantages of the HTML 5 specification:
- the “target” attribute is no longer deprecated for links, therefore target=”_blank” is completely valid on an anchor (useful for web developers without time to use JavaScript to force links to open in external windows/tabs)
- there is only one doctype, and it is extremely simple (at least for the HTML 5 spec used as HTML, rather than as XML): <!doctype html>
- this doctype is recognized by IE6 and will not trigger quirks mode (found this out through some personal testing)
- HTML 5 brings Web Forms 2, which have some awesome capabilities
I wanted to discuss the Web Forms 2 a little further. Web Forms 2 are only
currently supported fully by Opera, but their potential for alleviating developer headaches is very great. You can use attributes on your inputs such as “required” (e.g.
required=”required”), and this forces form validation on the client side, handled completely by the browser. Other input goodness includes such extra types as “email” or “date” which validates an input element for an “email” or a “date,” with the “date” input type providing a date picker dropdown, provided completely by the browser! Here is some example HTML 5 code that will validate and provides an email input that is required and requires a valid email address before the browser will submit the form to the server. This code will work best in Opera, until Firefox, Safari, and Internet Explorer catch up with the Web Forms 2 support:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>HTML 5!</title>
</head>
<body>
<fieldset>
<legend>Testing Web 2 forms in Opera</legend>
<form method="post" action="">
<label>Email: <input type="email" required="required" name="email"/></label>
<input type="submit" />
</form>
</fieldset>
</body>
</html>
I love that simple doctype! I am still not completely sure if I will be a convert for my next project, but I am definitely going to continue to research the HTML 5 specification as a more reasonable (and possibly “future-proof”) solution for coding my projects in the future.
I wanted to write a short tutorial on how to utilize jQuery to create an animated AJAX page load. I hope to show off a few modern web development trends:
- Unobtrusive JavaScript
- JavaScript that fails gracefully
- AJAX
A quick note: what I’m about to write would make a lot more sense inside a web framework, where whole pages aren’t loaded, but rather views (in an MVC framework). This way your AJAX call is only loading a view, or small part of HTML, rather than an entire page with a new doctype and so on.
Continue Reading »
As search engines are usually the doors through which users enter the world wide web, it would be prudent of these sites to promote good web development practices — supporting web standards, accessibility, and so forth. It is really disappointing to see the search engine pages of Google, Yahoo, and Microsoft not validate:
W3 Markup Validation results:
The most surprising results are that Microsoft’s search engine page, bing.com, has the least markup validation errors. Hopefully this indicates Microsoft is making further attempts to embrace the standards (as IE8 would somewhat indicate, as well). Nevertheless, these stewards of the internet should really be promoting web standards in order to alleviate the headaches that plague developers and worsen the user experience.
I just had to post something to comment on the Mac OS X Leopard Time Machine user interface. I mostly use Windows, or Linux some times, but a coworker has a Mac laptop on which I was able to see the Time Machine program running. My first reaction was “Wow” and the reason being is that I believe it is a great user interface. Its spatial organization of the windows overlapping matches our mental conception of things going “back in time.” It isn’t cluttered with dialog boxes or a calendar (here’s looking at you, Windows), and it just works as expected. I think that’s exactly what a user interface should do. And it’s not bad to look at, either, which helps uphold the aesthetic-usability effect.