Monday, September 30, 2013

A practical UI note on the order of input elements in a form

Input elements in a form are usually arranged in their natural ordered, that is: an item that seems to come naturally first would come before another one which seems more naturally to be second. This is of course subjective, but most people would agree that First Name should come first.

Recently I got a feedback on a form, sent by a heavy-user using the specific form many times a day. His request was simple, yet I've never thought about that before. He was asking if we could be kind and helpful to reorder some of the input input elements in the form, so items that require the keyboard would be in one group while items that need only the mouse, such as check boxes and radio buttons, would be separately grouped on their own. This would allow him easier and quicker fill of the form, he said.

(One can argue that the easiest and quickest way to fill a form is by using only the keyboard. But it appears that this user, as probably many others, is good with the TAB key to move between elements, but he is not aware or not keen of using the arrow keys for navigating between radio buttons and space bar for checking or unchecking a check box).

In order not to break the natural order of things (keeping first name first, and gender male/female reasonably up in the form) the grouping should be done in areas of the form, which comes to my new practical note to be phrased as:

Try to avoid too many switches of keyboard input elements to mouse input elements, if those can be naturally ordered into reasonable sub-groups to avoid the switch. This would allow a more rapid fill of the form.

Wednesday, August 28, 2013

Frenemies and All@1MC - I'm proud of you!

Two groups I was guiding in Software Product workshop at the Academic College of Tel-Aviv-Yaffo won places #1 ("Frenemies") and #4 (All@1MC) out of 70 projects (all in very high level).

Frenemies, created by Oron Perahia, Chen Saranga, Anat Oren and Shachar Witkovsky, is a fully fledged Laser Tag system, including all the goodies a company that wants to run a Laser Tag arena would need, from the web site for registering to a game (buying a game) to the management of the site and the fighting scene itself, hardware and software.
Won #1.



All@1MC, created by Yael Hof, is a Client-Agent Media Center application for your Android mobile phone to serve as a very smart remote control for the PC which serves as your media center. The application allows your mobile to view the list of movies and pictures you have on your PC, start playing them on your TV via selection on your mobile, sending instructions to the media center PC via the home WiFi network, with an agent running on the media center PC. You can also get more details on the mobile before or while watching the movie, download content from the web (again, the mobile serves as a smart remote control, all operations are done on the mobile device, the actual download is happening on the media center PC) and watching a slideshow of your pictures on the TV, controlling the slideshow from the mobile.
Won #4.




Tuesday, July 3, 2012

Back to Basics - Bitwise Flags


Recently I was using a question about managing a parking garage in an Object Oriented course I'm teaching and in job interviews for a position I was recruiting.

The question asks to manage a parking garage where each customer can submit requirements when getting in, for specific parking place attributes (such as "shaded", "not blocked", "tall vehicle" etc.) and for consuming services while parking (such as "car wash", "electric charging" etc.)

The garage has of course parking places which support these requirements or some of them and able to provide the required services in some of the parking places.

The question was to model and implement the management system for the garage, so customer requirements can be answered by pointing the car to the relevant free place or replying the customer that no free place satisfies the requirements.

Has one can understand from the title of this post, it is more than reasonable to think of bitwise flags here. However, the Object Oriented thinking might work here extra hours and lead to unnecessary classes, or even worse, horrible class hierarchies.

The beauty of bitwise flags is that matching can be done based on simple bitwise operations.

What do require some Object Oriented thinking is managing the price tariffs for the garage!