Monday, January 23, 2012

Usability fail: similar dialogs, different actions

Since Flash 10, the upgrade experience is fairly streamlined, but the dialogs that appear have tripped me up on multiple occasions.  And yes, I stress multiple, because they have a point release every week it seems, and with my 3 virtual machines plus main machine I went through a stretch a few months ago that I felt like I was completing the upgrade wizard every day.  Finally I decided to save the steps and write about it because I feel it is so obviously confusing, and yet if you only go through the process once or maybe twice every few months you probably think nothing of it.

Here is the first dialog that pops after booting up Windows:


Now after clicking "Install" you get a loading progress bar as the new version downloads.  Then you get this dialog:

Notice anything similar?  For one, there's that same "Install" button in the lower right.. didn't I just click that? Why aren't you installed yet?  That's the first problem.  How about just do the install when I said so the first time.  But wait, there's more.  On the first dialog, the single checkbox was to stop reminding me about this update.  But when I proceed now I'm seeing a similar dialog, with similar calls to action, so my brain instinctively ignores the checkbox.  Try to click Install this time and you get a warning message that you didn't agree to the terms. Doh!

This is what I end up seeing for both dialogs:


Sunday, January 22, 2012

Website fail: invalid data

It's no secret that I do not like Cox Communications.  I am not a fan of monopolies in any industry (don't get me started about text message "packages" and voice plans by cell phone companies), and I hate how Cox can get away with anything because they are the only cable broadband provider in the area.

When I moved accounts with them they screwed up my online access pretty bad and had horrible error handling on their site.  But after the dust was settled and I could log in and view my bill, I was happy to see that my bill was in fact due 2011 years ago (also, this screenshot was taken in November, it wasn't even January).

Clearly a billing date was missing somewhere and the UI just rendered what it could (perhaps their DB default for billing date is 01-01-0001 if they have no bills on record). I wonder if Cox uses MySQL and has NO_ZERO_DATE set (gets set when in traditional mode).. otherwise why not use 0000-00-00 or null for the default, unset billing date?

While this isn't a great example... I find it interesting that the errors and data validation bugs that show up on sites can sometimes shed light into the technologies or development practices that are used by said company.  And often it's not pretty.

Tuesday, August 2, 2011

IE9 Flash not rendering when wmode is set to opaque or transparent

I have a Windows 7 64-bit installation, with IE9 and the latest version of Flash (10.3.181.34) installed.  I was not able to view most flash in webpages, even the "about flash" page on Adobe's site.

There is a long thread with various workarounds and solutions (which all were promised to be unnecessary once 10.3.181.16 was released), but it was not until the 3rd page that I found a hint which allowed me to fix the issue.

My solution:
  1. Go to IE9 > Tools > Internet Options > Advanced.
  2. Check the "Do not save encrypted pages to disk" option
  3. Restart IE9
  4. View http://www.adobe.com/software/flash/about/ and shake head at Adobe and Microsoft



This seems like the more secure option, so not sure why it wasn't set...hopefully this doesn't break something else in IE! I did not do further research on this specific option or why it was at all related to Flash rendering (and only flash that had wmode=opaque or wmode=transparent).  Sigh.

Wednesday, June 15, 2011

Detect a click outside a DOM element

It's too bad that Javascript / DOM events do not give you a hook for detecting when there is a click outside of an element. One way you can do this is to listen for clicks on the entire page, then check whether the target was on your element or not. Without the help of jQuery it is hard to get the DOM element that was clicked across all browsers, and still you then have to account for when your control has multiple layers and any one of those elements could have been clicked.

The following approach is much simpler. Listen for clicks on the entire page (using 'html' instead of 'body' since the body may not extend all the way down the page if the content is short). Then, also listen for clicks on your control, and stop the event from bubbling up to the 'html' handler:
$('html').click(function()
{
  // Run the code, such as hide a menu or close a custom control
});

$('#custom_control').click(function(event)
{
   event.stopPropagation();
});

Source: http://stackoverflow.com/questions/152975/how-to-detect-a-click-outside-an-element/153047#153047

Saturday, June 4, 2011

Quickly set a timer on your computer

This is mostly for my own reference, but others may find it useful:

If you have QuickSilver on your Mac, you can set a timer that will put large text on your screen after a set amount of time..  good for easy reminders that don't involve a calendar event. Like if you need to move your car in 90 minutes to avoid a ticket for instance.
  • Use shortcut to open quicksilver: (Command + Space, or whatever you have it set to)
  • Type "." to enter text mode
  • Enter the text you want displayed
  • Hit tab, select "Large text", hit CTRL + ENTER
  • Now type "after" to get "run after.." (or choose run at, etc)
  • Then select it, and then input a time interval (10m, 1h, etc)