Running Android on the HTC HD2 Leo

HD2 running Darkstone Froyo 2.1

After spending the last few weeks on the HD2 Android Development forums at XDA I learned how to coerce my T-Mobile HTC HD2 into running Android. As of today I’ve got Android Froyo running with few issues and reasonable battery life. In this post I’ll explain how how you can run Android on your HD2 Leo.

Continue reading ‘Running Android on the HTC HD2 Leo’

MSIE 4095 Selector Limit

Web applications concatenate CSS files to improve performance, which can result in large numbers of style rules in a single file. Enter the 4095 selector limitation for IE browsers. An IE bug whereby the browser will only apply style for the first 4095 selectors declared per file. Impacted browsers include IE6, IE7, IE8 and IE9.

Continue reading ‘MSIE 4095 Selector Limit’

Anatomy of a Google 302 Redirect Hijack

Recently while Googling “Olla de Carne” (Costa Rican beef stew) my browser was hijacked after taking a search results link. Rather than receiving a list of ingredients, the link redirected the browser to a bogus antivirus site that mimicked Windows and faked an integrated Explorer virus scan (see screenshot below or watch the video).

Continue reading ‘Anatomy of a Google 302 Redirect Hijack’

Analyzing User Agent Strings

The user agent string, a piece of data transmitted in the HTTP header during a web request, contains information valuable in determining browser type and often basic system information.

Example user agent string sent from a web browser during an HTTP request:
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5

The above example, for instance, provides information such as browser and browser version, user locale (language), OS, system architecture and the layout engine used. When authoring documents for the Web, information from the user agent string can be valuable in determining how best to mark-up documents.

Getting the information is easy.

Continue reading ‘Analyzing User Agent Strings’

Building a Better Lightbox

Screenshot of a Lightview modal dialog

Screenshot of a Lightview modal dialog

Though modal dialogs are not a new concept in UI design, the number of homegrown Lightbox clones appearing on the Web since major JavaScript libraries like Prototype and jQuery hit the scene has been staggering. Unfortunately, many of the clones developed leave some key usability considerations unaddressed, and struggle with common problems in accessibility. Some key usability features that should be considered during creation of a Web-based modal dialog include (1) manage focus and allow tab navigation (2) disable elements outside the modal dialog (3) give users an out and (4) provide graceful error recovery.

Continue reading ‘Building a Better Lightbox’

Web Development and Debugging Tools

Following is a  list of cross-browser/platform web development and debugging tools useful for client-side developers. Depending on the application, one or all of these tools can be valuable in completing work on a website front-end.

Continue reading ‘Web Development and Debugging Tools’

Password Protection with PassKeeper

After recently losing a USB flash drive with all my passwords, I was grateful for the precaution I took by storing all my password data using Brad Greenlee’s PassKeeper password manager.

PassKeeper is a Windows utility that allows you to keep a list of accounts with usernames, passwords, and notes. This list is stored encrypted.

The utility is freeware and has been available for public download since the mid-90’s. Data are encrypted using the 56-bit DES cipher and stored in an DAT file in the application’s root directory. The size of the application (189 kilobytes) and the data file (~400 bytes/entry) are lightweight and can easily be carried around on any USB flash drive.

Continue reading ‘Password Protection with PassKeeper’

Relocate Missing Files in iTunes

iTunes users opting not to allow the program to automatically keep their folders organized (the default setting) may be well aware that iTunes does not respond well after changing locations of or renaming files. In fact, any change in the file name or path renders the item inaccessible from within iTunes. To make matters worse, there’s no easy way to have iTunes relocate files moved. iTunes prompts the user to relocate missing files but only one at a time with a dialog that says:

The song|movie “name” could not be used because the original file could not be found. Would you like to locate it?

Not so useful when a lot of files are moved at once. But if a directory containing hundreds of files needs to be moved, to a larger hard drive for example, locating files individually becomes too much work.

Continue reading ‘Relocate Missing Files in iTunes’