Saturday, November 29, 2014

Fitt's Law: for designing Applications with better User Experience

Citation
S. MacKenzi, “Fitt’s Law as a Research and Design Tool in Human-Computer Interaction.” 1992.
Link: http://dl.acm.org/citation.cfm?id=1461857

With this world becoming more tech-savvy day-by-day, there is even more need of having applications/devices that caters well to a great user experience. No matter what how good or complex a problem an application can solve, it cannot succeed until and unless it has a captivating and intuitive user interface. So, if provided a metric that can judge how well an application scores on user interface, the UI can be improved by leaps and bounds. Fitt's Law is one such metric that is being widely used in the field of Human-Computer Interaction.

Fitt's Law is being used to model the movement time from a point to a target. It is given by:

T = a + b log2(2A/W)

where T = Movement time from a point to the target point
           A = Distance from that point to the target point
          W = Width/Area of the target
           a,b  are the model parameters

As is clear from the formula, the more is the distance, more is the movement time. More is the width of the target, lesser is the movement time.

Thoughts:
Though the idea presented by Fitt's is pretty old (1954) but it still holds relevance in today's world and is being widely used as a research and designing tool in the field of HCI.

Applications and Ideas:
This can be used to judge the age of a person as movement time is one of the major distinguishing factor for people with different ages.

Tahuti: Recognize UML Diagrams

Citation
T. Hammond and R. Davis, “Tahuti : A Sketch Recognition System for UML Class Diagrams,” pp. 1–2, 1998.
Link: http://rationale.csail.mit.edu/pubs/hammond/hammondsketchsymp2001.pdf

This paper presents a simple yet a very excellent idea of how to recognize the components of a UML diagram. This paper uses a set of intuitive Geometric rules to recognize things like Arrows (Simple and Diamond Arrow Heads). e.g. It performs recognition of a Diamond Arrow (shown in the diagram below) in the following manner:


Fig: Diamond Arrow (used in UML Diagrams)
(Source: https://docs.google.com/document/d/1wg0goMTn22zs82zkjo-khW0arM02X2FXp2hkfpw9HT0/edit)

  1. It first looks for two furthest points in the diagram (A & B in this case) and label them as end-points of Arrow Shaft,
  2. It, then, looks for two furthest points on the either side of the arrow (in this case C and D) originating from one of the points A or B,
  3. It, then, finds a point of intersection for a line going from C to D on AB (let's say F),
  4. If it finds any point E that is at a distance in the range equal to distance between F and B and is on the other side of F, it labels it the whole arrow as Diamond Arrow. Else it labels it as a simple arrow.
My thoughts:
As explained above, this idea is pretty intuitive and very simple to implement as well. Since this system is based on Geometric rules, it is free from the errors/complexities of a Gesture based recognition system. The components can be drawn in any manner.

Future Work:
Going on the lines of this idea, I would like to design such a recognition in domains that are based on Action-plans (e.g. Military attack planning, for Strategies in games like Hockey, Football).

Saturday, November 22, 2014

Distinguish between Shapes and Texts

The branch of Information Theory employs a concept called Entropy to compute the randomness/variation in the Signals. This paper directly uses that idea of Entropy to distinguish between Shapes and Texts. This paper is pretty intuitive, at the same time, very innovative in the sense that it makes use of the information that there exists a lot of randomness in texts as compared to Shapes.

Approach:
This paper exploits the fact that generally there is lot more randomness in the shapes than in the text. In order to capture that randomness in any given figure, the authors find out the angle between two consecutive points from a given point. Based on the angle value, they then classify it into one of the pre-defined categories which are given below:

A [0, pi/6)
B [ pi/6, 2*pi/6)
C [2*pi/6, 3*pi/6)
D [3*pi/6, 4*pi/6)
E [4*pi/6, 5*pi/6)
F [5*pi/6, pi)
X End points


For all the points, a sequence of such categories/labels is created and by using a Classifier, it is being determined whether the stroke is a shape or a text or unclassified. For unclassified strokes, the Entropy value is always between the value for a Shape or a Text. Also, this representation of the stroke can be used for Compression and the author also compared that with the GZIP compression.

However, for very Complex Shapes or random strokes, this approach can classify them as texts. For those kinds, the author states that this can be used an one of the features and with other additional features, they can be properly labelled as Shape or Text.

Thoughts:
This is one of the very simple approaches and very intelligently exploits the idea of randomness presence in the texts to distinguish them from Shapes. Moreover, it runs pretty fast.

Future Ideas and Research:
I think the idea of Entropy can be applied to distinguish between various different domains of stroke having different Entropy values. It can even be used to distinguish between characters from two different languages where one has very less Entropy and other has a lot.