Control: AirInstallerButton

April 5th, 2008

Author: Michael Krotscheck

Category: Libraries

Tags: , , ,

One of the nicest features of AIR is the seamless install provided by the installer badge available from Adobe. Unfortunately, it takes a little digging to pull out exactly how it works, and I’m not someone who wants to rewrite things on a regular basis. Additionally, the seamless installer badge is build in Flash, something us hard-boiled Flex developers find hard to swallow.

The goal of this particular package is to provide a simple reusable component that handles all the seamless install features, and gives the developer skinning control over the entire component.

IMPORTANT NOTE: This control requires Adobe Flash Player 9.0.115 or later.

No Comments | Read More »

Package: cairngormDesktop

April 4th, 2008

Author: Michael Krotscheck

Category: Libraries

The cairngormDesktop controller is the core controller for a Cairngorm/AIR application. It contains application specific commands, but should contain nothing above and beyond window and app control. In essence, it is an effective way of applying cairngorm style events and commands to simple application interface interactions: Opening windows, closing windows, dragging windows and the like.

Given how much AIR work I’m doing these days I needed a very rapid way of handling application and windowing commands without having to rewrite a lot of code. Encapsulating this functionality allowed me to easily include this library externally for anything I needed to do. Future functionality will likely include application manipulation events such as drag/drop, copy/paste, and file access, though whether I can properly generalize and/or encapsulate them remains to be seen.

No Comments | Read More »

Using the Metrics Package to record Flash Application Analytics

February 14th, 2008

Author: Michael Krotscheck

Category: Articles, Tutorials

Tags: , , , , , ,

Web analytics is a way in which individual visitor action can be easily tracked within a site, and the aggregate statistical data derived from this can often lend remarkable insights into the effectiveness of your design, how ’sticky’ your content is, and what your users are actually looking for. Unfortunately, extending this paradigm into flash has always been tricky, because it doesn’t adhere to the page-based paradigm on which most Analytics packages are built. Once a flash application or widget is loaded, the server loses most knowledge about what the user is actually doing within it.

Usually this isn’t really a problem- flash applications have not been too complex and not many people care where on the banner you clicked, just that you left the site as a result. Yet now with the strong growth of Flex and Ajax our web applications are becoming more and more complex, and marketers and usability experts are now demanding this tracking data in spite of the paradigm limitations.

If you really think about it, what we really are interested in tracking is a user action, rather than the page loads we are collecting right now, which means that the largest part of an analysts job is turning these page events into meaningful user actions, rather than interpreting those users. There’s been some attempt to set metrics to individual places within a page flow, yet nobody has yet thought to rethink the paradigm. But I digress…

Most Metrics providers have since opened their API’s enough to allow a developer to pretend like a new page refresh has occurred. While this is hardly optimal, it does allow us to track user events from inside of flash, but the fact that each provider has implemented their API a different way means that implementing metrics for each is still a string of unique problems to solve.

To that end I’ve written the Metrics package, which is intended to provide a common metrics proxy that any developer may use, which relies on a common library of connectors that can be swapped out as needed. In this article I go over the details of how to use it, and touch on how individual connectors might be written.

No Comments | Read More »

Package: Metrics

February 14th, 2008

Author: Michael Krotscheck

Category: Libraries

Tags: , , , , , ,

The Metrics package was designed to provide a simple, reusable, extensible and flexible interface to any web metrics package, including Google Analytics, Urchin, Omniture, WebTrends and more. It supports multiple connector management, instantiating only those registered connecters that are successful at autodetecting their environment. If a developer does not know in advance which metrics package his client is using (or whether his client might change his mind at a later time), he may safely add several connectors secure in the knowledge that the package will do the heavy lifting. Additional functionality allows you to “hot-swap” connectors should that become necessary, though I myself don’t exactly know why you’d want to do that.

At this point in time, the only connector published with this library is the UrchinConnector. Google Analytics and WebTrends will follow shortly, however due to my employers’ client agreements I find it prudent to not release connectors for API’s that are considered proprietary (such as Omniture) unless I have a formal letter granting me legal permission to do so.

No Comments | Read More »

Singletasking

January 27th, 2008

Author: Michael Krotscheck

Category: Articles

Tags: , , ,

The most telling thing about this article is that not five words into my first introduction, my Gmail reminder popup came up demanding attention, and my automated reflexes immediately clicked on the little window to see what the hopeful mailer wanted. The side effect? It completely derailed my train of thought I had to work myself back into it. QED.

I have had no small number of conversations with my boss about the nature of Work-Life balance. Today’s everyday wisdom says that you have to keep both your personal and professional life properly segregated if you want to lead a happy life, and yet work continues to raise it’s ugly head once I leave the office. Case and point: I’ve been in the office most of the weekend trying to complete some tasks that I was unable to complete during the week, and even now I’m having a hard time even thinking about them in such a way that I can complete them and finally go home. Frustrated, I flipped back over to my browser and read my RSS feeds to clear my head, an came across an article on multitasking that allowed me to frame the problem in a way that made some sense: It’s not the work-life balance that I need to deal with, it’s the work-work balance.

1 Comment | Read More »