It is 10 years of Linux on ARM for me

It was somewhere between 7th and 11th February 2004 when I got package with my first Linux/ARM device. It was Sharp Zaurus SL-5500 (also named “collie”) and all started…

At that time I had Palm M105 (still own) and Sony CLIE SJ30 (both running PalmOS/m68k) but wanted hackable device. But I did not have idea what this device will do with my life.

Took me about three years to get to the point where I could abandon my daily work as PHP programmer and move to a bit risky business of embedded Linux consulting. But it was worth it. Not only from financial perspective (I paid more tax in first year then earned in previous) but also from my development. I met a lot of great hackers, people with knowledge which I did not have and I worked hard to be a part of that group.

I was a developer in multiple distributions: OpenZaurus, Poky Linux, Ångström, Debian, Maemo, Ubuntu. My patches landed also in many other embedded and “normal” ones. I patched uncountable amount of software packages to get them built and working. Sure, not all of those changes were sent upstream, some were just ugly hacks but this started to change one day.

Worked as distribution leader in OpenZaurus. My duties (still in free time only) were user support, maintaining repositories and images. I organized testing of pre-release images with over one hundred users — we had all supported devices covered. There was “updates” repository where we provided security fixes, kernel updates and other improvements. I also officially ended development of this distribution when we merged into Ångström.

I worked as one of main developers of Poky Linux which later became Yocto Linux. Learnt about build automation, QA control, build-after-commit workflow and many other things. During my work with OpenedHand I also spent some time on learning differences between British and American versions of English.

Worked with some companies based in USA. This allowed me to learn how to organize teamwork with people from quite far timezones (Vernier was based in Portland so 9 hours difference). It was useful then and still is as most of Red Hat ARM team is US based.

I remember moments when I had to explain what I am doing at work to some people (including my mom). For last 1.5 year I used to say “building software for computers which do not exist” but this is slowly changing as AArch64 hardware exists but is not on a mass market yet.

Now I got to a point when I am recognized at conferences by some random people when at FOSDEM 2007 I knew just few guys from OpenEmbedded (but connected many faces with names/nicknames there).

Played with more hardware then wanted. I still have some devices which I never booted (FRI2 for example). There are boards/devices which I would like to get rid of but most of them is so outdated that may go to electronic trash only.

But if I would have an option to move back that 10 years and think again about buying Sharp Zaurus SL-5500 I would not change it as it was one of the best things I did.

What interest me in ARM world

When I published my last post about ARM boards there were many questions and suggestions with interesting devices. Thank You all for it.

But there were also suggestions about ARM9 or ARM11 based devices. So I decided that it is good time to write what interest me now in ARM world.

But first some inventory. I had/used/have several devices with ARM cpu:

  • StrongARM (armv4) one:

    • Sharp Zaurus SL-5500 (which took me to ARM world)
  • ARM920 (armv4t) ones:

    • Openmoko GTA01 bv3, bv4 (s3c2410)
    • EDB9301 (EP9301 cpu)
    • Sim-One (EP9307)
  • ARM926 (armv5te) ones:

    • Sharp Zaurus sl-5600 (pxa250)
    • Sharp Zaurus c760/sl-6000 (pxa255)
    • Sharp Zaurus sl-c3000 (pxa272)
    • Sheevaplug (kirkwood)
    • Atmel devboards (at91sam9263, at91sam9m10)
    • ST-Microelectronics/ST-Ericsson NDK-15, NHK-15 (st88n15)
    • Nokia 770 (omap1710)
    • Linksys NSLU2 (ixp425 iirc)
  • ARM1136 (armv6) ones:

    • Nokia N810 (omap2430)
    • Bug r1.0, r1.2 (i.mx31)
  • Cortex-A8 (armv7a) ones:

    • Beagleboard B7, B7, C3 (omap3430)
    • Nokia N900 (omap3430)
    • Nexus S (exynos3)
    • Genesi Efika MX Smartbook (i.mx51)
    • Freescale Quickstart (i.mx53)
  • Cortex-A9 (armv7a) ones:

    • Pandaboard EA1, A1 (omap4430)
    • Archos G9 80 (omap4430)

All of that during last 8 years. Most of my ARM live so far was around ARM926 based devices (some of them still can not be listed here) and I do not want to go there again. Kirkwood core was fastest one with 1.2GHz clock and 512MB of RAM it was really fast machine. I only missed Serial ATA in my Sheevaplug (rev 1.0) but even with hard drive on USB it was nice improvement.

Then I played a bit with ARM11 processors. Ok, they were faster than most of ARM9 cpus but I already had experience with Sheevaplug. And after few months first Cortex-a8 board landed on my desk — I got Beagleboard B7 from Bug labs as test platform for their new device. This was improvement!

I still remember my reaction when connected it to normal LCD monitor and saw it used at 720p resolution (1680×1050 was a bit hard for omap3). Moved to Nokia N900 few months later and found that fast cpu means nothing when paired with slow storage and not enough memory for system.

So today I prefer to not look below Cortex-A9 (or comparable cores like ones from Qualcomm or Marvell). Hope to play one day with Cortex-A5 (which should replace ARM926 one day) just to see how low-end armv7a cpu behave.

And wait for ARMv8 to hit market.

Tizen: first impressions

During my stay in Oakland, CA (due to Ubuntu Developer Summit) I decided to attend also Tizen Developers Conference. Not that I have any relations with this platform — just wanted to meet some friends from Maemo times. And I did not had plans for Tuesday evening while Tizen visitors had social event planned in The California Academy of Sciences.

For those which do not know what Tizen is a bit of history. Years ago Nokia made few internet tablet devices (770, n800, n810) and phone (n900) which were running Linux distribution named Maemo. It was loosely based on Debian. In meantime Intel created Moblin which was their distribution for mobile devices. Few years passed and they joined forces and MeeGo was born. Nokia released N9 phone with it, ASUS had netbook running MeeGo and maybe few other devices appeared on market. Then history repeated: MeeGo merged with LiMo and they created Tizen project.

It is hard to tell was conference success or not because I did not attended any sessions there — just opening keynote by Jim Zemlin. On first day I also came for technical showcase and partner demos. But they were squeezed in very small room so it was hard to discuss with people showing their work. Maybe next time organizers will give at least 4m² per demo — this should be a minimum.

But today I got Tizen Developer Platform device and thumbdrive with SDK on it. So decided to play a bit with it. It was not enjoyable experience.

First ugly part was Tizen SDK “so-called” installer. 823MB shell script… I thought that those times passed long time ago. Anyway tried to run it. All I got was message that 64bits systems are not supported. Good to know that, but my x86-64 systems are able to run x86 binaries without problems. Ok, I made workaround and then got message about missing qemu, rpm, libsdl packages. No, I will not install rpm on my Ubuntu systems.

So I decided to cut that crappy shell script and take a look at tarball. Fast “tail -n+122 tizen-sdk-0423.bin >tizen-sdk.tar.gz” and I was able to extract SDK. Got 26 zip archives.

One of them contains rootfs created from packages based on Debian/Ubuntu packages. Some are from times when dinosaurs ruled the Earth (debianutils 2.17 was released in 2006), some are more fresh (like gcc-4.5 based on version from May 2011). In other words tradition started by Maemo is continued in Tizen and developers are given mix of fresh tools with long time forgotten ones. And Scratchbox 2.

To connect with device there is “sdb” tool. It introduces itself as “Smart Development Bridge” but in past it was named “Samsung Development Bridge” (run ‘strings’ on binary). And it’s father has a name “Android Development Bridge” and has some more options.

Anyway if you want to connect to device then few steps are required:

  1. On device go to settings and set USB to ‘USB debugging’ mode. This will switch it into cdc_ether gadget.
  2. On host do “sudo ifconfig usb0” to configure networking.
  3. Connect to device: “ssh root@”

And then you can enjoy system which is a mixture of few Debian/Ubuntu versions. And forget about updates — unless you know how to get to and know password of “” user there (taken from /etc/apt/sources.list file).

Device uses Linux 2.6.36 kernel with unknown patches on top including CMA and Android ones. Quite old one but works. Hope to get newer one from someone.

What I do not like is availability of sources. There is website with git repositories but I want to vomit when I see commits like “let’s add 2.6.36 kernel in one commit”. Lovely lack of ideas how to help developers.

What I will do with device? Not decided yet. Waiting for instructions how to get into bootloader to boot own kernels. Then who knows… replacing Tizen with Android or Ubuntu?


Another May, another Ubuntu Developers Summit. This time I am in Oakland, California, USA (even if my tweets shows Dallas, Texas as geolocation).

As usual with US trips this one took insane amount of time. But I was 3cm from not going here… Why? Because I got stuck in toilet at home. Hopefully with help from neighbour I was able to bash door out and get to the bus stop on time.

Then standard set of bus, plane, plane, train and finally arrived in hotel. As my room was not yet ready I got 30$ coupon to bar to not waste time on waiting. Free meal/beer 😉

My room is at 17th floor (which means 15th) and has a nice view in the evening:

IMG_20120505_224344.jpg IMG_20120505_224400.jpg IMG_20120505_224411.jpg

On Sunday I went to see San Francisco centre (I saw Golden Gate on earlier visit). Chinatown was interesting experience. Lot of people speaking language which I do not understand, shops full of food which I do not recognize.

Some random photos:

DSC09946.JPG IMG_20120506_092639.jpg IMG_20120506_114901.jpg

IMG_20120506_114920.jpg IMG_20120506_103517.jpg IMG_20120506_114851.jpg

After getting some souvenirs and refilling of my US T-Mobile sim card I decided to go to the cinema for ‘The Avengers’ movie. It was nice experience. Touchscreen operated ticket machines which allow to buy ticket in one minute (but people were standing in long queue to buy tickets in ‘normal way’) made it even better. As in Poland there was big amount of commercials before movie (including some in style “our Army/Navy is great, why not join us”) but what I liked was just-before-movie animation reminding about not talking/texting/tweeting during movie (made with characters from “Madagaskar” series). Have to admit that RealD 3D glasses were more comfortable than Dolby 3D ones used by Polish cinemas. Movie itself was great but I think that will have to see it in Poland due to my English ;D

During evening there was usual Canonical internal plenary and then dinner. I even managed to sleep 6 hours despite jet lag ;D

Monday started with interesting keynote and presentation of Calxeda ARM server using technology they were talking about at previous UDS. Photos:

IMG_20120507_095638.jpg IMG_20120507_095942.jpg

It is 2U case with 24 Serial-ATA discs and 12 nodes with 4 quad-core EnergyCore processors per node. The only cables inside are power ones as rest of connections is on pcb. Connection with world by four Ethernet connectors.

I went to “Create filesystems for embedded devices” session where we discussed how to make Ubuntu Core even smaller. People mentioned OpenEmbedded, OpenWRT, buildroot as usual, we got some strange use cases too. What will come from it? Time will show.

Plenaries were interesting. First Chris Kenyon told about cooperation with OEMs and ODMs and how it relates with Ubuntu. Laptop in a pizza box picture was nice — reminded developer boards. Then Bdale Garbee from HP shown us that there is no way to go though life without being served by HP technologies or hardware. Both talks were great and I hope that rest of plenaries will be like that.

After plenaries I went to San Francisco to register at Tizen conference and to meet some friends from Maemo times. Technical showcase and partner demos were boring and it was hard to feel that it is something innovative. But who knows… maybe Tizen will be yet another phone/tablet/ivi/etc OS even when Moblin, Maemo, MeeGo did not succeed.

During evening (back at UDS) there was ‘Meet & greet” social event. Our Linaro group (Amber, Ricardo, Paul, me) was showing member boards and replying to misc questions from audience.

What next? Sessions, social events, discussions about my patches with other developers, some sight-seeing.

Bought Archos 80 G9 Turbo tablet

During last Linaro Connect I bought myself an Android tablet. After checking what is on market decided to buy Archos 80 G9 Turbo. According to Amazon product page it had to have 1.5GHz OMAP4460 cpu and 1GB of memory. But it did not…

Marketing droids from Archos company should be … and … then … and again … — after that … or … and finally … (put any ways of doing deadly harm into … and repeat any amount of times). Why? There is no such thing as “Archos 80 G9 Turbo” — nevermind that I have one of them on my desk. So far there are at least three models with this name:

  • OMAP4430 1.2GHz 512MB ram
  • OMAP4460 1.5GHz 512MB ram
  • OMAP4460 1.5GHz 1GB ram

You can easily buy first model. Best Buy has it, Adorama has it, J&R has it, Amazon sells it. Second model was expected to land on shelves in December 2011. According to XDA developers forum few of them were even sold as people have them. Last model is listed on Amazon (but first one is what you get) and according to one sources it will be released in March 2012, other says that there will not be such thing. Marketing mess is lightest description which I can write without swearing.

So I got first one. First though was “WTF?!?!!?!?!?!!!” as I got slowest option. Even started returning procedure but as all US shops had only this version I gave up and decided that even with this technical specification it is better tablet then I had before (which was Hannspad SN10T1). Fast cpu, 4:3 screen with 1024×768 resolution, quite good build quality, video output.

Tablet runs Android 3.2 ‘honeycomb’ and does it nicely. Upgrade to 4.0 ‘ice cream sandwich’ was announced to be done in this month. So from software perspective it is done properly. I had some problems with rooting procedure from XDA developers but once you do it in order (and take files from other thread to get 3.2.80 firmware) device will work just fine. Have to admit that system layout on device looks overcomplicated (175MB squashfs as / for example) but it works. Anyway I am waiting for developer firmware (I was told that they will be available ‘soon’ (for any definition of ‘soon’)).

During first days of using I noticed that some applications refuse to work properly on XGA screen, some are resized/rescaled but problems usually are with games or poorly written apps (like Facebook one). But it is visible that keeping Honeycomb under stone (aka ‘closed source’) resulted in many applications not ready to be used on tablets. Even Google+ looks like it does on a phone…

I am slowly moving to use Archos as a morning news device (Twitter, Facebook, Google+ and Google Reader) — it is perfect for it. Reading webpages in landscape or portrait modes is pleasure as device is easy to hold and screen is wide enough in any of them (which was my main complain with Hannspad).

Had to order miniHDMI -> HDMI adapter (normal size connector would even fit but it is too big for this form factor) cause they do not add it in a box. When it will arrive I will check how good movies are played after connecting to 42″ plasma capable of 1080p. OMAP4 cpu should decode any video at this resolution without problems but I wonder how device deals with 4:3 internal screen and 16:9 external one. Would be nice to watch Youtube videos fullscreen.

Playing games is fun. Fieldrunners finally does not need scrolling, Great Little War Game is also better than on my Nexus S. From “racing” games so far I tried Asphalt6 (available at XDA developers forum), Shine Runner and Reckless Getaway — all run and look cute but accelerometr based steering is not comfortable with tablet size. Also games like Mahjongg or Solitaire are possible (I consider such games unplayable on phone).

Battery life is better than on my Nexus S. Partially because lack of GSM and bigger battery, but I think that due to power management done better.

I will not tell how good it is when it comes to read e-books because I have Kindle for it already.

Back to hardware. There is USB socket for optional 3G stick. Plugged dongle from wireless keyboard/trackball combo there — not recognized due to not be USB 2.0 device. Plugged thumbdrive and got it recognized (first time I got some kernel oops and no access to storage, had to reboot tablet). Did not tried other devices.

There is just one speaker at back of device. Definitelly too small and lonely. Nokia N800 which was released 5 years ago had stereo speakers… So for gaming I strongly suggest headphones.

Ugly thing is that when you push back of case with left hand fingers screen will react to it — looks like something is pushing screen. It does not look professional…

Ending summary: so far I am satisfied. Maybe one day will try one of those crazy builds like Ubuntu ;D

Month with Nexus S

During Linaro/Ubuntu platform rally in Dallas I went to Best Buy and bought Nexus S as a phone which has to replace Nokia N900 which I used for over year. It was first time when I paid full price for such device — previously I took phones from operators or had some kind of discount (like DDP one for N900 year ago).

Switching from Nokia N900 to Nexus S was not easy task. First I lost calendar entries when tried to sync contacts to Google account using Mail for Exchange functionality of Maemo. Good that I had a backup… Copying of data from internal storage from one device to another was easy — microUSB cables are good to have thing. And then I took SIM card from N900, put it into Nexus and so far did not took it out yet.

Then came Market — after installing AppBrain application I had all applications, which I selected before or had on N900/Nitroid, installed properly. Then installed some more and removed some, added others etc. Common routine when you change operating system — finding which application suits best.

For Twitter I checked few and now I have official one and Plume installed. First one only to have contacts synced and do all tweeting in second one. For Facebook I use their default app — so far did not found replacement. Best situation was with e-mail client — installed K-9 Mail and added all my IMAP accounts into it. Now my phone tells me when do I have to check for new messages before my desktop one will notice ;D

Basically when it comes to applications Android shines (especially compared to Maemo). So far I found many programs for things which I did not had on N900: TV programme, public transportation guide, ATM finder and so on. And games! Dungeon Defenders, Gun bros and several others… Angry Birds has more levelpacks then Maemo version (but I never was a fan of that game anyway). Lot of things to choose from. Not to mention that installing of software is not so painful as it was on N900. You can use online Market, AppBrain and probably there are some other ways. Ok, I will probably miss APT but so far I am fine with what Android does. The most impressing thing is that during package installation device is not slowing down — it just adds one more entry to notification bar.

Notifications… I like how it is done. One place for icons on status bar which expands to whole screen list of what is going on. Nice stuff. Especially after installing some extra apps which will add there switches, weather informations etc.

Desktop looks different and has lot more customizations possible then hildon-desktop gave. And user can use other launcher then default one (I use ADW Launcher). Then just put widgets, icons, contacts, live wallpapers etc and you will be done. Business calendar which I use now can not be compared to Maemo parody of calendar (this is with most of apps anyway).

Do I miss some applications from Maemo? Yes, I do. Nokia did good job on Contacts and integration of IM/VoIP/Skype accounts. Under Android I did not yet found out how to get it in best possible way. So I have to run separate IM client (IM+ for now), Skype is also external (but contacts are synced into addressbook) and did not yet setup SIP accounts (but this is integrated). Good thing is that after first week of use I was able to use SkypeOut for calling my family in Poland.

But let’s get to hardware. Nexus S is light and small compared to N900. I like it’s look and feel. Screen works nicely for me everywhere. Before buying I was not sure how will I adapt to capacitive touchscreen after 8 years of using resistive ones but there was nothing to adapt to — it just works. Bigger problem is other direction — I need to press my TomTom harder now ;D Other issues? Lack of any kind of LED is a bit annoying. But NoLED helps a bit with it. Also WiFi reception looks worse then N900 had. But this one I need to check one day.

Overall I am satisfied about this change. I have phone which has latest version of popular operating system, have access to application market where there is a problem which app to install instead of “there is no application for this”. For some time I will have system updates provided by Google, then will switch to alternative firmware and will have current software.

Going to Android

Over two years ago I was thinking about next cellphone and wrote that it would be something with Windows Mobile. There were comments that I should go for Android which was not on a market yet. In first week of 2009 I switched to Nokia E66 running Symbian. There were apps for this device (I even bought one: ProfiMail) and community existed with lot of tricks, hints, suggestions.

In October I got Nokia N900 discount offer and I decided to take it. Device arrived month later and I got hooked. Finally device which I can use daily for my network activity without having to carry additional cellphone (like it was with Nokia 770 and N810 tablets). Maemo community existed already and I was a part of it. As there were developers already equipped with N900s there was a constant flow of new applications, themes, tweaks and hints. Platform was living. Nokia provided few system updates, some of them even gave some nice new features.

But at same time it was known that amount of love for Nokia N900 at headquarters is near zero. MeeGo was announced just few months after device release so it was known that there will be very limited support level and that some things will never be done (like Ovi Maps with voice navigation).

So I started slowly to look at market to know which way to go for next cellphone. Windows Mobile 6.x was out of question as this is platform which gets out of market now. Windows Phone 7 is fresh, strictly controlled so I do not want to go there — let it first get some devices, applications etc. Symbian? no way — been there already. Ok, Nokia N8 looks nice but it is still Symbian. MeeGo is not yet market ready when it comes to phones and even when mystic N9 will be released then it will not be pure MeeGo but rather some kind of mix of open components from MeeGo + huge set of closed sourced applications written by Nokia. And who knows how long it will be supported…

So I looked into Android. Installed NITDroid on N900 to play with FroYo and it looks and behaves quite good. There are lot of communities (usually around families of devices), custom system images are something normal for popular devices (so if vendor does not support upgrades to newer OS versions then community usually do). Also lot of friends already use Android powered devices (cellphones, tablets etc) so there are lot of hints from them what to choose when it comes to hardware or software.

Which cellphone to choose? I have few candidates:

  • Nexus S – brand new device, Google supported so should get few OS releases, runs latest Android
  • Nexus One – nearly year on market, also Google supported, runs Android 2.2, newest version “should be out in few weeks”
  • HTC Desire – nearly same as Nexus One but this time as official HTC device. Android 2.2, should get at least 2.3 version from HTC
  • HTC Desire HD – hardware similar to previous one but bigger screen
  • HTC Desire Z – Desire + hardware QWERTY keyboard
  • Samsung Galaxy S – Android 2.1 but 2.3 is promised

Which to buy? Nexus S looks good and I will be in US in January…

And this will be my 4th cellphone running Linux…

UPDATE: added Samsung Galaxy S because vendor promised Android 2.3 — but it depends when it will be available.

Is this the end of Maemo5?

Some time ago I stopped following Maemo news. For me N900 became “just a phone” which I used for calls, checking email in crappy Modest, browsing web from time to time and to read Twitter (if any application for it works) or Facebook (by web browser cause there are no apps for it).

But recently I got one tweet which pointed me to “State of Maemo” post. For me it looks like Nokia decided to finally abandon sinking ship and leave Nokia N900 users alone. Qt will probably get some updates to show that they care about cross platform support. How many MeeGo Qt apps will work on Maemo5? No one knows probably but one thing is sure — they will have to be recompiled because Harmattan will be hard-float (confirmed by Nokia developer during UDS-N). But for rest community will have to care about.

OK, there was told that there are “ideas about opening various pieces of Maemo source code that are still closed” but what it will be? No one knows. I would like to get Calendar opened but when it will happen I will probably do not have N900 anymore…

And today I read total “please ignore our ,but ignored by us, platform” message:

Last week we spoke with Nokia. We were actively discouraged from developing for Maemo any further. There are lots of things we love about Maemo, including an awesome user community so we’re disappointed to see it EOL’d. It’s frustrating to have put so much effort into an app only to see the platform it’s on be terminated. Whether we reappear on MeeGo — the successor to Maemo — depends in part on Nokia. In the mean time, our conversation with Nokia has led us to deprioritize the update we were working on, though no final decision has been made yet as to whether or not it’ll ship. I’ll keep you posted.

Somebody wants to buy my N900? I am going to move to Android because this looks like a platform where OS vendor care at least on some of devices by providing system upgrades. And there are communities which provide updates for abandoned devices. And no, I do not plan to buy device running MeeGo — enough money spent on Nokia devices.

Ubuntu One — good or bad?

Today I activated my UbuntuOne account again and enabled mobile service + extra 20GB storage (such set is given free for Canonical people). Now I wonder did it had sense…

On my desktop I am running KDE 4.5.3 under 11.04 ‘natty’ development release. Why is it important? Because there is no client for such combination. It looks like you need to run GNOMEbuntu or Microsoft Windows to have some kind of U1 integration. Otherwise I need to run shell command (or use GTK app) to login.

But ok, I installed all required packages and it connected. Synced Tomboy notes from desktop and Conboy ones from my Nokia N900 so now I have them in sync (without a way to select which one I want where but that’s limit of apps). Then I decided to make use from synchronization of contacts. And here the fun begins… My phone is not supported by Funambol (syncml backend used by Ubuntu One) so sorry — all I can use is one bug on LaunchPad.

So what’s left? Files — good to have 20GB of storage for something. Maybe will start using it one day. Now I spend time mostly at home so wifi/ethernet connection works and I have access to all media on my machines. Other is bookmarks — but only Firefox is supported (by extension) and I switched to Chromium few months ago.

But who knows… maybe it will have some use one day.

Is designing UI simple with Qt?

I use Qt on my devices since my first LinuxPDA: Sharp Zaurus SL5000 on which I used OpenZaurus with OPIE as primary environment. It was based on Qt/Embedded 2.3.x and was looking ok. UI of most applications work properly in both portrait and landscape modes, adapted to size of fonts (I used smaller then default ones).

Then Zaurus c760 arrived at my place and I did some UI code tweaks to make everything looking better on VGA screen (not that it looked wrong — I just improved few things). At that time I had nearly every Zaurus model in hands and took care to make all looks proper in both orientations.

From time to time I was also playing with 3rdparty applications to adapt them to resolutions higher then QVGA (which was sort of standard in palmtops of that era). Usually loading UI files into Qt Designer and reordering them or adding layouts helped. One of them was Mileage which required adding huge amount of layout elements just to make it look properly (all elements were put as X,Y positions originally).

Some time later I moved to GTK/X11 based environments on portable devices and later my cellphones took PDA place.

But with Nokia N900 I decided to go back to programming with Qt – 4.6 version this time. First was my module player (which I probably never end) and some time later I decided to play a bit with Vexed released by
Paul Romanchenko (rmrfchik on #maemo) where I reorganized UI a bit, added portrait support and did few other tweaks.

But then I switched to ApMeFo and while idea of application is good the UI is disaster:

  • tabs in main window
  • lack of portrait support
  • unusable UI when forced to portrait mode
  • use of non standard button sizes
  • use of non standard font sizes

And sources lacked UI files… So one day I decided that it will be good occasion to learn something new. Author was not responding to my sources request so I launched Qt Designer and started to recreate UI from scratch — using existing sources as information what kind of widgets were used. Took me some time but I got new, a bit improved UI which even worked in portrait mode:

But it still was not what I wanted. It still had tabs and small buttons… First I got rid of tabs:

Rest of functionality was moved to menu and separate window:

I was not too proud of it. OK, it looked better, I even changed some non-UI code but it still was not what I wanted to achieve. But at least I had something what I could give to users for testing.

How does it look now? Let me show not yet published version:

First main window — all buttons are finger friendly. I also grouped them a bit — it is visible in portrait mode which is also great when user want to re-order items.

Dialog to select applications to add got some changes too. It is maybe not conform with UI style guide (OK not under but on right) but it gave me extra line in list widget. Think of multi selection…

As you see (de)activation and folders are now in menu. (De)Activation has also Yes/No requesters 🙂

Folders window is place which needs lot of work. Only delete works now (also with Yes/No requester).

List of things to do is long as users suggested many things. I probably will not add most of them because so far I did not checked how exactly ApMeFo works but once I will read rest of source code I think that something good will come from it.

And is designing UI simple with Qt? I think that it is — developer does not have to worry what kind of paddings are needed to be used, how to place widgets to make UI conform to style guide rules etc. Once you do design with layout elements application adapts itself to what is available.