new Angular app: employee directory

All programming is a learning experience. Case in point: I recently spent about three weeks working independently on updating an insurance client’s web app from PHP to AngularJS, only to be told after that time that the client wasn’t interested in using AngularJS. At all.

Frustrating, to be sure, but it turned out those three weeks of work were excellent practice in using this new-to-me framework. When I saw an opportunity to use it on a different, internal project, I was able to dive right in and get it done in three days.

impact directory mobile app

Continue reading new Angular app: employee directory

Mobile Chrome removing 300ms click delay

300ms tap delay, gone away — and speculation about when and if this will spread to other browsers.

This may or may not affect some mobile JavaScript I’ve written. For instance, I’m currently putting the finishing touches on a tablet app that’s designed for private use, and therefore only will be used on a tablet, wherein I’ve hijacked the “touchstart” event like so:

$('selector').on('touchstart', function(e) {

…which works fine, as long as I’m trying to trigger JavaScript code and not a hyperlink click (which can’t be triggered by code due to browser security restrictions). I didn’t like doing so, but performance was of the essence. It’d be nice to do things the “correct” way and still get the maximum performance.

Mobile web development: links of the week

Not that I’m posting these weekly, but….

Google to punish bad mobile redirects, retire Chrome Frame

Good news (unless you’re a website being penalized): Google’s announced changes in rankings of smartphone search results. In general, this addresses those annoying “Hi, I’m a server!” sites that see you’re on a smartphone and bounce you to the site’s mobile homepage instead of the mobile version of the deep link you were actually looking for. If nothing else, this is a testament to how important the mobile web has become and why every web developer needs to build with smartphones in mind.

I suppose, in light of that fact, that Google’s other recent announcement that Chrome Frame will be retired in January 2014 shouldn’t surprise me. This is actually a bit of a blow for those of us developers (i.e., almost everyone) who still need to keep old Windows XP computers which rely on IE7 and 8 in mind. Chrome Frame has been an integral part of HTML5 Boilerplate for exactly that reason, and with it gone, we’ll have to resort to either conditional comments or just outright telling them to install a modern browser instead. (If you have to ask why we don’t just standardize on IE8-compatible HTML and CSS, it’s the same reason professional basketball players don’t standardize on Converse All-Stars.)

Allowing mobile users to toggle between desktop and mobile versions

While responsive site stylesheets that give mobile users an alternate small-screen version of your site are a good idea, not every mobile user wants the small-screen version. Fortunately, it’s possible to give them a choice in the matter using only a little bit of JavaScript.

Here’s one approach that takes advantage of mobile browsers’ use of the <meta name="viewport" content="width=device-width"> tag. Continue reading Allowing mobile users to toggle between desktop and mobile versions

Village of Riverwoods, Illinois


Every now and then, when things get slow at work, I look for an existing site on the server that needs its code updated and rebuild it. Same design, with a few minor or largely hidden changes, but using minimal HTML5 and lots of CSS. Last week, the Village of Riverwoods, Illinois got picked out for an under-the-hood makeover.

Continue reading Village of Riverwoods, Illinois

HDMS 2012 Agenda

HDMS 2012 Agenda mobile site

A (very) small mobile site I built for an upcoming business conference. They just wanted something small, easy to browse, and easy to update. The site is actually a single page, with sections hidden by CSS and revealed with JavaScript using the hashchange event.

An alternate version of the site was also built when we realized that Blackberry phones don’t support the hashchange event, and at least one of the client contacts used a Blackberry on a regular basis. Both versions obtain their content from the same source using server-side includes, making them maintenance-free and easier for the client to update as needed.