UX gripe #237: politically correct ‘what country are you from’ dropdown menus

Installed Photoshop elements today. When I run it, I have to select my country/region.

Selecting “United States”, where — without question — a preponderance of users are from, requires scrolling (slowly) past about 200 other countries.

That might be politically correct to adhere to a rigid alphabetical listing but it’s pointless and lazy on the part of the developers. A million users x 30 seconds = 8,333 hours = 1041 workdays = half a human-work-year wasted.

The solution, as a few products or websites do, is to have the 5 or so most common choices at the top of the list, then an alphabetical list.

Like THIS:

Western Digital My Book Live beats Seagate GoFlex hands down

Was adding a networked 2 TB drive to the home setup, and never got past step 1 with the Seagate GoFlex. It simply would not let my Mac “see” the drive, claiming there was a firewall issue, even after I temporarily disabled the firewall on my Mac and my router. (Just an error message – did not offer any information for Mac users on how to remedy that.)

Returned it to Office Depot, got the Western Digital My Book Live, and it instantly connected just fine. Plus the browser-based management tools were far superior. Plus it started up in seconds, as opposed to several minutes for the Seagate.

Plus, Western Digital wisely invests in a very helpful call-in ‘concierge setup’ center — prominently advertised when you open the box — to help with potential problems. I called for the heck of it and yes, the support person was knowledgeable, friendly, and helpful. (Did not see any such invitation for phone support from Seagate.)

Seagate? SeeYa.

Side effect in simple_form can break phone number input on iphone

We use (and love) the simple_form 2.0 gem in rails 3 apps, but discovered one undesirable side effect of some of the automagic mapping they do.

Problem: If you have a field on your webpage named “phone” and your app is letting people input their phone number as a flexible string such as “Office (555) 555-5555 ext 123″ the user is screwed on an iphone because it will be a ‘phone-keys-only keyboard’ with NO way to type alpha chars.

Reason: The reason is that the simple_form DSL adds the class ‘tel’ to the input field if the field name is named ‘phone’, and on the iphone that prevents any alpha input.

Workaround: The fix is simple, add “:as => :string” to your “f.input :phone” statement and the simple_form gem will assign a class ‘string’ instead of ‘tel’.

ActiveAdmin breaks Twitter Bootcamp popovers (perhaps more)

We are building a new Rails 3.1.3 app based on Twitter Bootcamp and have discovered that, apparently, ActiveAdmin 0.3.4 conflicts with (breaks) Twitter Bootcamp javascripts (popover, at least).

When we deleted the line
//= require active_admin/base
from active_admin.js, the Twitter Bootcamp popovers work fine.

Presumably, modifying the asset pipeline so active_admin.js is loaded ONLY on our active_admin pages will solve that problem.

FPDF requires ZLib if images are not flattened

We discovered today that when Photoshop saves an apparently flattened image, sometimes you still have to select Layer > Flatten. In other words “1 layer” is not equal to “flattened”.

The issue was a PHP application that uses the remarkable FPDF libary (fpdf.org) to create PDF signs. The platform we’re running on (Heroku) does not support the ZLib compression library, so we were careful not to explicitly require compression.

Nonethless, signs using certain images were throwing an error that ZLib was not installed so FPDF could not access the alpha channel.

The culprit turned out to be images created with Photoshop that were a single layer, but it was an unlocked and named background layer. That, apparently, is not a completely flattened image (even though it is a single layer).

The fix was simple: select Layer > Flatten and re-save the image.

Hosting PHP apps at Heroku, with caveat

If you’re looking for a free place to host a PHP app with modest load demand, Heroku works with the important caveat that some commonly-available libraries (such as ZLib for compression) are not available to your app.

The process is simple enough. The only two ‘gotchas’ we ran into are

  1. When you create the app at Heroku, be sure to specify the cedar stack, thusly:

$ cd project_folder $ heroku apps:create my_desired_app_name –stack cedar

  1. If your root app filename is not index.php, you have to add a file named index.php or Heroku will reject the push when you ‘git push heroku’.

By the way, we were also exploring PHPfog.com for hosting PHP files. It looks like a great system, however PHPfog has a severe (imo) limitation for their free shared hosting, whcih is they do not permit an app to fopen a remote url… so an app cannot, for example, open an image created by Google API (such as a QR code) and embed that in a PDF.