Saturday, January 16, 2010

Reviewing the Google Chrome

Google has invested a huge quantity of money and marketing for its Chrome browser. Sometimes people install it then use it without knowing that they changed their browser, by having only followed the link in the top right.

People install Chrome by clicking the link in Google page.

Many computer engineers know that this navigator has many advantages and technological power as being the fastest browser (for its Javascript interpreter/PseudoCompiler, and also from a usability PoV), the use of the best html/CSS engine (webkit), the SKIA library for showing graphics (few people know about this library now being called/integrated as chromium, firefox itself use cairo for rendering).

So, after all of this, is it only a bunch of technology assembled in disorder ?
From my point of view, and after having some human computer interaction courses, I started to view things in a different ways. And I have detected these points :


  • The application of Fitts Law

Tabs are placed in the top of the screen, so the virtual growth of buttons are bigger, and we can switch tabs a lot easier than the traditional way.
(Apple use the same law from ages having always the menu in the top of the screen)

  • Reducing human errors

People can make errors easily when trying to switch from one tab to another, when the width of the tab is too small, the probability of making the mistake of closing the tab rather than switching to it.
Google removes the close button when the tabs width is too small.

  • Better feedback

I really enjoyed the search function, when I search Google tries to indicate the word positions inside the document but also in the right and exactly in the sliding bar. Every small yellow line indicates the word position.

  • Better use of the screen

In Chrome, all the screen is used, no status bars, when there is a need to show something, it is shown using the needed place.

  • Better interaction :


When closing a tab, the next close button comes to the current mouse cursor to facilitate closing others. (closing tab is contagious ?)
The tabs are redrawn only when you move your mouse outside the tabs.



Being different form Firefox, Chrome have only one place to enter urls, text search and every things.
The browser is intelligent enough to know what the user wants.

  • Better usability :

In Chrome, every text input is resizable. When it is not wide as you need, just make it bigger.



Many other details exist (I speak about "Chrome only" features) and needs to be cited here, but these are the most important one.
This doesn't mean that Chrome is perfect. It has some problems dealing with RTL texts like Arabic sites that aren't shown correctly.
And the recovering of a crashed/closed browser (it exists but I feel it very bad). Some times I can't see the recovering button but in Firefox it is always present after a crash.



Labels: , , , , ,

Visualization of Algorithms, how should it be ?

Last days, while I was teaching a student some sorting algorithms. I asked myself how can I explain it the easiest way. The evident solution was to use some visualization tips.
OK OK, I say some "InfoViz", but then, the big question would stay the same : HOW ?

According to the human-computer interaction course I have got, Humans don't react like machine, they should have "Mental Models" to manipulate information and resolve problems. We don't have one Human mental model but we are sure about some reactions.
According to (Philip Johnson-Laird, 1983), humans need examples to how a mathematical functions work (hmmm, we don't speak about math nerds here...), so when we see a formula, we need to play it on some examples in order to construct our mental model.



Visualization of BubbleSort algorithm on a sample data.

So, to understand an algorithm, we should see it running on a sample data step by step, and then we should select the best data to not fall in a trivial example and this is another problem...

But, why we don't add a step in between ?
We have the algorithm coded in some language in one side, and the algorithm running in the other side.
Maybe adding the visualization of the algorithm itself can help the reader constructing quickly his mental model and reducing the time needed to see the algorithm running on data.

Some people tried to visualize algorithms by translating loops directly using schematics like these :


Explaining the multiplication µAlgorithm inside the µProcessor and introducing the Booth Algorithm.




Another almost useless technique for visualization I have seen in a site


But can we mix the algorithm itself and the data manipulation in the same place ? I have produced this figure from my own thoughts but really, we should think in a new way than everybody is following.

Searching for a new and better figures to help construct quickly the mental model.


In the last figure, arrows explain movement, the limits are nicely seen and understood, and it is clear that the second variable start its position from i and not from zero.
Can we ameliorate this figure and prove this way of representation scientifically ?
Maybe it can be a good point to start from.
:)

Labels: , , , , ,

Saturday, December 26, 2009

Fitts' Law, a small presentation

One of the most known and applied laws of Human-Computer Interaction is the Fitts' law. A good interface should optimize and reduce the time presented by this formula :


"a" and "b" are only two constants, defined by the used hardware properties like a mouse. D is the distance from the object and W is the object width.
I want only to say that this is only the first formula, many other derviate ones exist.

The most important is how to design interfaces to optimize the time to select an object. I want to present the openSUSE menu where the developers have applied this :

 

When I've clicked in Developpement option, all the menu has changed.
Being different from a "standard" menu, the user haven't to move his mouse by width, but only up and down and no new menu windows are created. So less mouse movement.

In this precise example, not only the Fitts' law is applied, but also the Steering Law (Accot-Zhai).


This is just an introduction, and presentation for a small example, but I will to show interface features in other projects.

Labels: , , , , , , , ,

Saturday, November 14, 2009

Linux Graphics, Part one

In this small post, I will speak about the Linux Graphic Stack and changes being addressed to it.


It is very clear, that the most thing that should change in Unix systems are the graphics. Most Unix systems use Xorg to handle all their graphics. I really think that is a very bad and old solution that should be changed.



  • The Past

To make things looking clear, lets compare the architecture of the current implementations :

In almost any Unix-like system, if we use Xorg it will be the layer responsible from low level graphics to some more advanced features. So it is doing a job which only the kernel should be responsible for.
Even graphics card drivers, they are made for every Xorg release and not for a Linux release.


If we add to this that X releases are not as frequent as the two other layers, we can conclude that the Linux graphics mechanism is the Achilles' heel of all the system.





  • Future

The future may be a lot better. With the include of the Kernel Mode Setting [1] in last Linux kernels (from 2.6.29) and specially in the 2.6.31, the kernel start getting his real role of the only thing accessing low level hardware.
The KMS allow less flicker, quicker terminal switching (with Ctrl-Alt-F1 to F7) and more.
Another feature is the ability to run Xserver itself as a normal application without root privileges. And allowing more security.





This start to let the Kernel do his job, is only the start. The Linux kernel 2.6.33 will include more work done to provide more low level handling : a KMS page-flipping ioctl [2] to optimize more and more time, and simplify management for other systems.


The page-flipping is a necessary thing for other projects like the Wayland Server, which is a lightweight replacement of X (and not a rewrite of it).
Xorg has become very old, new models of graphics and inputs come and its becoming more and more complex to make X supports them all.
Multi-touch input is a main area where X can't provide a good solution for that. Even Multi-pointer-X still doesn't answer all questions.


Wayland can become a solution if we design it having all new today problems in mind. It should be lightweight and easy to develop. After that, libraries like Nokia Qt could be easily ported to it.
The thing that everybody should know is that when a project becomes very old, with code that can't be understood, and huge, then it should be rewritten from scratch.
KDE developers faced many critics when they started rewriting KDE to release KDE4. But in the end, we now after releasing a "clean" desktop environment, we start seeing differences.


The design of Wayland, shouldn't be addressed without proposing a model being a skeleton of all manners of view surfaces and abstraction behind that. A recent paper [3] collected most of problems and it need to be applied on a real world implementation like Wayland.




To be continued...


  • Links :

Labels: , , , , ,

Saturday, June 13, 2009

Google, THE monopole

The main goal of Google is to hold the maximum of viewed adverts on the net, and gain huge amount of money. Till now, ads are only shown as small links with some text. And the context intelligently matches user interests.

But, will google in the future, only rely on such type of incoming ?
My answer is simply : NO !

First step after acquiring Youtube is to play video ads before launching mostly viewed sequences, also put some intelligent context matching text ads somewhere. There is dailymotion and he already doing that.

But if we rethink another service that only google holds its sources, the GoogleStreetView !
Google Street View is a very helpful service provided by Google for free and for everybody.
Google can simply use some algorithms to detect the ad places in a street view, the orientation the deformation, and replace these zones with Google related stuff.

Goole StreetView, the next...

As explained in the photo, it won't be a difficult thing to be coded by the Mountain View team, and it will be a "Google only" stuff difficult to be reproduced in resonable time by other competitors. And of course, it will be a colossal source of money.

I really wish you "Don't be evil" Google !

Labels: , , , ,

Sunday, November 9, 2008

Intel et son ex-employé

Je suis vraiment choqué par cet article !!!
Article anglais
Article français

En résumé, Intel a accusé un employé d'avoir volé des documents secrets qui coutent 1 milliards de USD $ !!
En lisant bien l'article je pose des questions sur les vrais raisons !
Est-ce c'est parce qu'il veux aller vers le concurrent historique AMD ?

Le nombre total des documents "volés" sont 12 !! Oui 12 documents seulement. J'ai crû que ce sont des milliers.
Dans l'article anglais il indique "more than a dozen during 4 days" c'est à dire 12/4=~3 documents par jour ce qui est tout à fait normal !

De plus comment il a eu accès ? Les documents sont disponible depuis le réseau local donc il est absurde de les laisser à la disponibilité du staff puis les accuser comme ça !

C'est mon point de vue !
Apparemment, il n'est pas facile de changer d'une société vers une autre ces jours !!

Labels: , ,

Sunday, March 16, 2008

Nanotechnologies & Nanostructured Materials workshop

From yesterday (15 March) and until 21~22 I will be in Hammamet.

I am proud to be member of the technical staff of a workshop that speaks about nanostructred materials and nanotechnology.

This is the first time in Tunisia and it is with collaboration with many US universities.


I will attach photos later ! Please wait !!! ;-)