Mobile Design: Sequential Presentation

Nokia phones , back to the old days, were always better than other phones in term of usability. They had very strong usability and design culture  which was described in the book Mobile Usability: How Nokia Changed the Face of the Mobile Phone. I have that book in my bookshelf, and sometimes re-read it. One of the important point was mentioned first in the book is a diagram looks like following:

Portability -> Small Size -> Small Screen -> Sequential Presentation -> Prioritization -> User Understanding

In order for the mobile phones get carried around, the size must be compact. Hence, with the small  surface area, and the amount of data can be presented on the screen at a given time is very limited.  So information in general must be presented to the users sequentially (opposed to desktop UIs where we can present plenty of options simultaneously on a sizable screen). The high density of the current Retina display technology slightly improves display quality, but we still stuck with the small-physical-size screen; there are only that much stuffs you can pack into a single screen.

I am working on the next version of our leading product BaoMoi iPhone, and this important point has totally changed our approach to the design, we have no longer tried to present too many items on the same screen.

Volume Control

HP has showed off at CES 2012 their latest laptop HP Envy 14 Spectre.

It seems (from the picture) the laptop has a real physical volume wheel. I am so happy to see people use dials/wheels for the volume control in laptops again. To control the sound volume, nothing beats physical dials/wheels. My first ever laptop, a Toshiba Satellite (year 1999), has a real volume wheel on the left side. The wheel is intuitive and easy to use. Even it has been more than 10 years, I think I can now reach that volume wheel blindfold. However, all computer makers (including Apple) since then switched to use the up/down button design.

To control sound volume, the volume dial/wheel is superior to any kind of up/down buttons. It all comes down to the muscle memory; with a knob/dial/wheel you can “feel” how much loud or quiet you want, and you can do it as quick or as slow as you want. I hoped that some companies such as Apple would pay attention to this detail, but HP Envy 14 Spectre has been the only laptop with a physical volume wheel I have seen after my Toshiba Satellite.

Worse, most of volume buttons nowadays are software-controlled. It means the feedback is slow; also it means the volume levels are discrete, in some laptops you have only five or six volume levels. It is unnatural to map a continuous concept (sound volume) to a discrete domain. Software-controlled also means you only can affect the volume after the laptop fully boots up. Even worse, the volume buttons are usually combined with function keys (F1-F12), for example, on my current laptop I have to press Fn+F8 and Fn+F9 to control volume.

Imagine that in a meeting, you open the laptop and Windows starts playing the infamous windows startup sound (it is very annoying when you left the volume maximum), you just want to quickly turn off the sound. With volume buttons you have to press the Fn key then looking for the volume down button among F1-F12 keys, you have to do all these things in dim light. I hope computer makers would pay more attention to usability and ergonomics as it seems laptop design is getting prettier but not better.






“Pinax”: is a interesting platform to build websites rapidly. Look like a promising strong competitor for “Drupal”:

E50 to E71

I have just bought a new E71 to replace my old E50.

h2. Form

Both phones are well built. E71 is really beautiful; the QWERTY keyboard is easy to use after a day or two. E50 has anti-glare screen which E71 does not have (or it does not have the same effect). The font in E50 is too small while E71 has much bigger screen hence it is easier for my eyes. I managed to configure the E71 to use bigger font than the default. Somehow I did not find the same option in E50.

E71 use USB for connecting to PC which is an improvement. However, both still use non-standard headset connection, therefore I cannot use my B&O headphone. Why don’t people just use standard format? Also E71 does not charge itself via USB; weird! Most of the devices can be charged via USB; it helps to loose the charging adapter.

h2. Sound

Nokia sound quality is good.

h2. Battery

I have not used E71 long enough, but E50 can last 2 days when I travel.

h2. Software

Both phones use the same Symbian OS, the call and messaging function are good. E71 runs much fast than E50, most likely due to the faster processor. However, the whole Symbian platform used in E series is still not very friendly. Installing a new software is really hard. Here is what I did:
* Connect phone to the PC
* Go to some sites to download an install package, you need to choose different files for different phone models.
* Load the install package to phone by Nokia software, continue necessary actions in the phone itself.

After installing a new software, sometimes it is hard to find where the new application goes into the phone.

Configuring the phone is messy. The E series phones can do many things, however it has a very messy hierarchy menu system in which there are multiple paths to the same menu. Basically, beside the calling and messaging functions, the rest of the phone functionality is not well designed. To give a very concrete example: The Nokia PC suite software can allow you to load city maps to the phone (E71 has GPS and map functionality, however there is no way for the user to find out which maps have been previously loaded. As a product designer I find it very strange.

There are also some weird limitations, such as, radio can only be listened via headset. I did not understand why.

h2. GPS

It takes forever to lock your position; I never able to do so. Users complained about the same issue in the Nokia forum; people said E71 took them 40 minutes to lock position.

h2. Conclusion

I am happy that E71 is a good replacement of my E50. It runs faster and has better keyboard. Most of the time I only use calling and messaging features. E71 has many more functions like GPS, maps, radio but because of the poor design software I did not find convenient to utilize them.

Design trade-off

My friend “Martin”: told me that designing a programming language is more like engineering nowadays. The time that someone can come up with a new programming paradigm is over. To design a language is to combine existing known concepts in a interesting way, surely with a lot of tradeoffs. One of such tradeoff, I seen frequently is how pure v.s. how familiar/practical. For example, Haskell is a pure functional language, while Python has some limited functional language features. I think Python has a good tradeoff in that aspect.

In his latest book, “Joe Armstrong”: wrote:

As we have seen, when we use higher-order functions, we can create our own new control abstractions, we can pass functions as arguments, and we can write functions that return funs. In practice, not all these techniques get used often:

* Virtually all the modules that I write use functions like lists:map/2—this is so common that I almost consider map to be part of the Erlang language. Calling functions such as map and filter and partition in themodule lists is extremely common.

* I sometimes create my own control abstractions. This is far less common than calling the higher-order functions in the standard library modules. This might happen a few times in a large module.

* Writing functions that return funs is something I do very infrequently. If I were to write a hundred modules, perhaps only one or two modules might use this programming technique. Programs with functions that return funs can be difficult to debug; on the other hand, we can use functions that return funs to implement things such as lazy evaluation, and we can easily write reentrant parsers and
parser combinators that are functions that return parsers.

Python supports the first point pretty well which is important feature to have. For other rarely-used features, an sensible approach is to provide some open doors for superusers to _hack_.


I’ve just had a new laptop, and the following are the essential software needed to make the machine “functional”. It is in no way all the software I needed.

* Firefox: You cannot live without a good browser.
* Launchy: How one should launch a program.
* Switch Caps Lock and Control: I am an Emacs user, so this is essential as well.
* VLC: It plays whatever music/video files
* Yahoo Messenger: to stay connected, is the backup plan.
* Skype: teleconference with European friends.
* Foxit: Adobe PDF Reader sucks!
* Itunes: for my Ipod.
* Picasa: the only thing you need to mange your pictures.
* WINRAR: total solution for zip/unzip.
* Nokia PC Suite: to sync the contact list from Outlook to my phone.
* ooVoo: to talk to US friends.
* Spybot – Search & Destroy: to clean up the machine.
* uTorrent: to download stuff.
* MagicDisc: to burn my old CDs.
* Snagit: for my design work.
* Camtasia: for my design work.
* Adobe Web Premium: for my design work.
* InDesign: for my design work.
* AutoCAD P&ID: the software I am working on.
* VPN software: company VPN.

Various of Firefox plugins are essential too:
* Adoble Flash player
* PDF Download
* NoScript
* Web Developer
* FireBug
* Adblock Plus
* Adblock Filterset.G.Updater
* Greasemonkey
* IETab
* Menu Editor

The laptop already had Office installed.

It seems we need a lot software nowadays; this list is just the starting point. There must be a better way to handle software installation. I hope there is some kind of scripting thingy like in Unix which I can run to install all the software at once.

*Notes:* this post was written few months ago when I first got the new laptop.

Internet problem

Paul “suggested a way”: to cure the Internet problem by having a separate computer for Internet and a dedicated computer for work which (almost )doesn’t have Internet access. The solution does not seem apply to me because I need constant Internet for my work.


I used to had a white one, and sold it to wait for the second generation. There are few things the product needs to improve to become a useful portable device:

* Bigger screen, probably 9″ which the second generation will have. It is just too hard to read any website with a screen smaller than that.
* Touch-screen: for a truly portable device I don’t want to carry an extra mouse.
* Better keyboard: the keyboard is really small, but that is not the point. I really like the current form. Bigger will mean less portable. However, the current keyboard is not well-built, you have to press hard and direct. The keyboard needs to be much more sensitive.
* Bigger hard disk, but not necessary much bigger. At least users need couple of GB to store some musics and couple of movies. 8 or 10G is good enough.

For software, they did a good job. The machine is really fast at booting up, general performance is satisfactory. The UI is really easy to use, but they did not make the improvement consistent across all the main software. With all these improvements, a increment about 150$ is reasonable.