AIR app – user idle detection

Wednesday, March 14th, 2012

Found out that it is super easy to deal with timeouts…i.e. when you create kiosk applications, you generally want the activity to timeout and go to some sort of attract screen or activity reset when no one has touched the screen, move the mouse or press the keyboard.

There’s the NativeApplication class for AIR to the rescue:


/* this is in seconds */
NativeApplication.nativeApplication.idleThreshold = 60;
NativeApplication.nativeApplication.addEventListener(Event.USER_IDLE, handleUserIdle);
NativeApplication.nativeApplication.addEventListener(Event.USER_PRESENT, handleUserPresent);

private function handleUserIdle (e:Event) : void
{
  trace("Idling...");
  //reset activity
  //show attract screen
}

private function handleUserPresent (e:Event) : void
{
  trace("There's a user!");
  //hide attract screen
}

‘Making’ again

Monday, November 14th, 2011

Just started playing around with Cinder. It’s along the lines of Processing and openFrameworks. These platforms, if you will, really helps with the creation of graphic and event-based applications. I’ve worked with Processing (taught a class), dabbled in openFrameworks (created a music exploration/visualization environment) and am now trying Cinder.

For Spring 2003, I created a class called Dynamic Bodies at ITP. The class helped students to create algorithmically controlled/animated objects using vector math and physics. It was a class I created out of a labor of love and inspired by folks coming out of the, then John Maeda led, Aesthetic Computing Group. Some of the things that I’ve taught in that class have now been made easier with the introduction of libraries for vector math, physics engine and algorithmic behaviors (such as for boids). Many of these libraries are available for the three platforms above; one of the more notable is the feature rich toxilibs by Karsten “toxi” Schmidt for the Processing platform.

I missed those days of making things so I’m taking this opportunity to get back on it! One other reason for this step towards ‘making’ is that both openFrameworks and Cinder can be used to build iOS apps. I have an iOS project ‘in the works’ with a friend.

Designer as problem solver

Saturday, December 5th, 2009

I came across this in Don Koberg & Jim Bagnall’s book “The Universal Traveller”…

A creative problem-solver is a “designer”; a person intending to improve what exists or to find clear paths through dilemmas or challenging situations and arrive at satisfying solutions

I think this is one of the best descriptions of a designer that I’ve seen. This can be applied to any field, whether it’s industrial design, interface design, experience design, etc.

Keep this in mind when you try to explain what you, a designer, do at the next holiday cocktail party!