Paper of the Month: Faster Cascading Menu Selections Using AAMUs and EMUs
October 11, 2009
Actually, this post deals with two papers that I want to briefly present here (since they are closely related to each other). Download links and a short introduction below:
The papers
Tanvir, E., Cullen, J., Irani, P., Cockburn, A. (2008) AAMU: Adaptive Activation Area Menus for Improving Selection in Cascading Pull-Down Menus. Proceedings of ACM CHI’2008 Conference on Human Factors in Computing Systems. Florence, Italy, 5th-10th April 2008, pp. 1381-1384.
and:
Cockburn, A., Gin, A. (2006) Faster Cascading Menu Selections with Enlarged Activation Areas. Proceedings of Graphics Interface. Quebec, Canada, 7th-9th June 2006, pp. 65-71.
Why you should read them
Very often, cascading menus are used to execute commands in desktop applications or RIAs (or to navigate between pages on normal websites). A known problem is that they can be hard to use, especially if they contain a large number of items and several submenus. For example, if you use the bookmark manager in Firefox to browse through a hierarchy of categories or if try to drag single bookmarks within the menu from one category to a more deeply nested one, it can happen easily to deviate from the optimal mouse path and unintentionally select the wrong target category – or even unpost the whole menu. A common way to reduce selection errors is to delay the posting and unposting of submenus (which is what most commercial applications do). However, there are several issues with this technique, such as slowing down menu interaction. Several researcher have tried to improve and accelerate selection in cascading menus, with two of the more recent variations being AAMUs (Adaptive Activation Area Menus) and EMUs (Enlarged Activation Area Menus).
Without going into any further detail about how they work, I believe that it might be valuable to experiment with an implementation for UI libraries like the Flex framework. For example, a property on the menu component could be used to switch between different methods, maybe something like:
menu.activationMethod = MenuActivationMethod.NONE | MenuActivationMethod.DELAY | MenuActivationMethod.AAMU | MenuActivationMethod.EMU...
Anyway, the papers are quite interesting to read and one gets a feeling for how much research is being carried out in terms of enhancing menu interaction.
Visit the permanent link to “Paper of the Month: Faster Cascading Menu Selections Using AAMUs and EMUs”.
“Flash Engineering” – A book about software engineering with the Flash Platform
September 14, 2009
Recently, the book “Flash Engineering” by Sven Busse (2009) has been published. While it is currently only available in German, English speakers might still want to read on, since it is quite unique compared to other books relating to that technology. I don’t know if an English version is being planned (if not, it would certainly be a good idea).
The title “Flash Engineering” is well-chosen as this is what the book is really about: Software engineering, targeted at the Flash Platform. There have been books about Flash in general, Flex, AIR, ActionScript Animation, Object-Oriented Programming and Design Patterns but – to the best of my knowledge – none that discuss Flash development from a real software engineering perspective. It could be argued that such a book couldn’t have come out much earlier since the technology is still in the process of maturing as a software development platform – the topic was previously just not most important and relevant. Further, it could only be written by a person that has both a solid background in software development and profound experience with the Flash Platform.
(more…)
Visit the permanent link to ““Flash Engineering” – A book about software engineering with the Flash Platform”.
What is your level in the “Programmer Competency Matrix”?
September 3, 2009
Somehow I’ve came across the “Programmer Competency Matrix”
– a table that shows the author’s expectations and requirements for different levels of skills in terms of computer science, software engineering, programming, experience and knowledge. The matrix is clearly geared towards “classic” software development and I believe a matrix for RIA developers, for example, would have to look quite different. However, still interesting to have a quick look at…
Visit the permanent link to “What is your level in the “Programmer Competency Matrix”?”.
Paper of the Month: Rethinking the Progress Bar
August 9, 2009
This is the second post in my series about worthwhile, freely available academic papers with practical relevance for application design.
Here you go:
The paper
Harrison, C., Amento, B., Kuznetsov, S., Bell, R. (2007) Rethinking the Progress Bar. Proceedings of the 20th Annual ACM Symposium on User interface Software and Technology. Newport, Rhode Island, USA, 7th-10th October 2007, New York, NY: ACM, pp. 115-118.
Why you should read it
Status indicators, such as progress bars, are frequently used to give users feedback about the time it takes for a process to finish. This could be something as simple as a standard preloader for Flash applications or a more complex progress bar to monitor backend and multi-stage processes in Rich Internet Applications. When displaying percentage completed, animation can provide meaningful information and in some situations cheating techniques can be used to convey the impression that progress bars appear faster. The paper tells you when it is appropriate to apply non-linear functions (for example “Fast Power” functions) to map progress to its visual representation more effectively and to be perceived faster by users. Interesting read (and only 4 pages).
Visit the permanent link to “Paper of the Month: Rethinking the Progress Bar”.
Efficient Gesture Recognition and Corner Finding in AS3
July 21, 2009
Gesture recognition and corner finding are two techniques that can be useful for all sorts of things. For example, gesture recognition can be used to recognise shapes in graphics applications, to control the user interface on a mobile device or to build creative games. In this context, I’m referring to shapes drawn with an input device that may or may not leave an ink trail on the screen, and not to physical gestures, such as waving a hand (however, most of the time a drawn shape also implies a physical gesture). Corner finding is a technique that finds all corner points of an arbitrary stroke and can be used for shape simplification, node finding or another exciting field, which I’m going to reveal later this year… ;)
(more…)
Visit the permanent link to “Efficient Gesture Recognition and Corner Finding in AS3”.
Academic Flash and Paper of the Month
July 6, 2009
After almost a year of silence on this blog, I’m starting a new series of blog posts that cover serious topics that have both academic and practical relevance in terms of RIA development, user interface design or software design – basically topics that might be of interest for people involved in the design and development of interactive products.
If you’d like to know more about »the year of silence«, my motivations for these kinds of posts and what this is all about, then just read on. If you’re in hurry, jump to the end of the article where I’m telling you about an academic paper that you shouldn’t miss…
(more…)
Visit the permanent link to “Academic Flash and Paper of the Month”.
Issues with utility windows in Adobe AIR
July 15, 2008
In Adobe AIR there are three different window types available to create a new NativeWindow. One of the types is the NativeWindowType.UTILITY type:
The flash help says: »Utility windows use a slimmer version of the system chrome and do not appear on the Windows task bar and the Mac OS-X window menu.«
Some issues you should bear in mind when working with them are:
(more…)
Visit the permanent link to “Issues with utility windows in Adobe AIR”.
Two convenient ways to update your AIR applications
June 25, 2008
Our recent AIR application MiniTask has built-in support for application updates via the web. In the first version we used Claus Wahler’s AIR Remote Updater which is a really smart solution for update handling as it “grabs the version number directly from the remote .AIR file without having to download the entire file” (using FZip). It’s a “data only” class so you have to implement all UI logic yourself by listening for events and calling methods on the class.
(more…)
Visit the permanent link to “Two convenient ways to update your AIR applications”.
MiniTask – free AIR application
June 24, 2008

After having developed one commercial and one internal Adobe AIR application MiniTask is our first free app. It has its own website at www.minitask.org with screenshots and further information. We developed it using the PureMVC framework for AS3 and it has turned out to work quite well! Give it a try…
Visit the permanent link to “MiniTask – free AIR application”.
Unloading AS3 content
April 8, 2008
Grant Skinner has posted a very informative article about the issues of unloading content in AS3.
Currently we’re facing the same problems (loading / unloading third-party content) in our main application. We handle unloading by providing some API events (“onRemove” etc.) and clearly stating in the API docs that it is the developer’s responsibility to clean up everything (basically that is the second option in his article under “Workarounds and strategies”).
Far from perfect – especially if content developers aren’t aware of those issues – but probably the best thing you can do for now.
Visit the permanent link to “Unloading AS3 content”.