Saturday, September 27, 2008

Musical discovery of the week

Well, there are couple.

During the zombie nights of the worst-ever jetlag I spent some time reviving my 4G iPod. Just before its release 3.0 was announced on Slashdot, I installed Rockbox on my ipod. It's fantastic! The installation was smooth (unzipping a file and running an executable that will tweak the bootloader). With it you can do more things with the playing song than what you could do with the Apple stock interface. You can save locations in a song as bookmarks, change the pitch, and there are more things in the context menu that I haven't tried. The fade-in/fade-out on play/pause is pleasant. Also there are cross-fade options.

You can program it to pause the song when you remove the headphone jack. You can organize the songs in more sane format / directory structure. I have a custom bash script to sync my songs with my music player, I will be able to use it now and free myself from iTunes. Rockbox also comes full with custom themes and choice of fonts. It also has truck-load of games and apps. I played Chessbox a little. As for the internals I was surprised to see that it runs its custom kernel (not linux, but still GPL). The project has been around since mid-2000 (wikipedia).

Do try it if your device is on the supported list!

As for the other discovery - Nerina Pallot.

Some awesome tracks: Geek Love, Damascus, Everybody's gone to war, Sophia

Enjoy!!!

Monday, September 22, 2008

Die Berlin-Affäre

[Originally written on 09/21 on my n810 while waiting in Frankfurt airport]

Needless to say, Last four days were amazing. I met a lot of interesting people; saw all the cool things they were doing; dived in insightful discussions; showed the demo of my UI project to all; ... And sometimes ended the day with overdose of buzzwords like 'fragmentation' :)

In OSiM, some notable talks came from Sean Moss-Pultz (OpenMoko) reinstating their mission to provide an open device that gives freedom to innovate; Andreas Constantinou (VisionMobile) - analysing which mobile stacks are more open source than the others (even though everyone claims to be as open as classic FOSS projects), Ari Jaaksi announcing Nokia's next version of Maemo SDK - with HSPA connectivity, high-def camera, omap3 processor (with improvement in multimedia and 3D acceleration in hardware), Ken Banks (kiwanja.net) giving a very insightful presentation on very uncommon businesses built by people in African countries to suite their needs - especially some social projects that are built on top of mobile infrastructure to spread information that is otherwise restricted by non-democratic governments.

Among the "suit" presentations (Ari Jaaksi's term for execs as opposed to t-shirts for geeks), I liked Christy Wyatt's presentation. Although it was well above the technical details (in the world of graphs and trends), I found her opinions honest and frank - also unlike other execs she seemed to have right idea about actual technology problems (for instance, problems faced by independent developers in the face of dozens of SDKs - otherwise referred to as the fancy buzzword 'fragmentation').

The Maemo-summit was enormous fun. Largest gathering of smart geeks and tech enthusiasts, I have ever attended. Over couple of dozen projects/ideas were presented in the "Lightening sessions" (fast 5-minute presentations/demos). The setting of the event deserves a description. The event took place inside a building of an organisation called c-base. Imagine a shabby building used by artists for various purposes and you will get the idea. It has been the venue for other open source events as well (ubuntu for e.g.). The philosophy of the c-base project is also interesting, check it out. Back to summit. The entire summit schedule was posted and collaboratively updated by people as different sessions took place. There was free wifi and everyone was logged in using their n8x0s or apple/ubuntu laptops. While listening to various speakers we could on the spot check the online resources they were talking about. That's why this setup made all the sessions extremely productive.

Among many prsentations the ones I found very useful for my interests were: debian chroot running on n8x0 by Alan Bruce (qole) and liqbase by Gary Birkett (lcuk). The former one is the first virtualization solution I have seen running on the tablet so far. The awesome part was Alan gave the presentation inside openoffice presentation running on debian inside chroot environment on his n8x0. This gives enormous flexibility to developers trying to build custom rootfs for their tablets. They can test such experimental rootfs inside chroot before flashing their device.

The liqbase demo was eye-opening. All the time I spent wondering when will 3D hardware arrive for me to program cool animations on the tablet, seemed futile after seeing what Gary had achieved on existing hardware. So far what I understand is, he is leveraging the X video extension (the same backend used by mplayer) and converting regular rgb data to yuv and drawing it. He demonstrated smooth scrolling like I have never seen before on a tablet. I can't wait to reach home and look into his library (I checked it yesterday, but didn't have enough time in the cafe).

Another mentionable presentation was from frogmetrics. This 6-people startup in NY is using n810s for collecting surveys from customers. There are putting n810 to use in a unique way. I was further impressed after learning more about them during a chat with Doug later on.

After listening to all the talks about open source solutions in mobile, I find Nokia to have made the most genuine effort in this field. I think it is indisputable that they pioneered this field when they brought n770 to market 3 years ago.

The overall Berlin trip was awesome. In first 3 1/2 days I explored the city as much as I could. Hopefully I will soon find time to upload the snaps. One observation I didn't mentioned in my last post was the domination of glass in new Berlin's architecture. By that I don't mean the shiny reflective façades, but the use of trancelucent glass as walls. In some buildings it induces a fear of height, because even if you are standing on a solid structure, the transparent walls on all sides challenge your sense of balance. I felt this predominantly in Sony center.

Looking back, this turned out to be a successful trip - for me it opened a window to a new world in many senses.



Monday, September 15, 2008

aus Berlin

This is the 100th post of this blog... and I couldn't think of more unique way of writing it than this one.

I am typing this on a german keyboard sitting in an internet cafe in Berlin. I reached here on Saturday and have spent last 2 1/2 days exploring the city. It's a welcome break.

On Sunday I took a 3 hour bus+boat tour of the city and was amazed to find how much there is to see here for a tourist. The most fascinating feeling I had while visiting several places was, this city's history consists of important events from the recent past. Berlin has changed a lot after the fall of Berlin wall in 1989, a significant event in this city's (and cold war's) history. Yesterday I visited the remnats of the notorious Berlin wall and other monuments related to it. Only a part of the wall is left and it is planned to be turned into a Museum. Currently the place holds collections of photos/documents on display from the Nazi regime. I guess the museum will be called 'Topography of terror'. It is near the building where the Gestepo and other Nazi plans took shape.

It is amazing to see how much the city has changed in around 20 years. The Sony center is a symbolic example of this change.

Today morning I visited the German Parliament building - Reichstag. It is freely accessible to public. Most of the buildings in Berlin have two well defined eras - pre WW-2 and post WW-2. As the tourist guide said, about 70% of the city was destroyed in the war. So most of the buildings were either rebuilt from scratch or in part. The glass dome of the Reichstag building is of great architectural significance. That's true about most of the buildings in Berlin. A lot of them were redesigned by inviting tenders from many architects and the winners of the competition were given contract to build the new structures. Thus it is obvious that all of them have been results of lot of architectural design efforts.

The city is very fashionable. I haven't visited more fashion-savvy city than Berlin. The people on street are rarely seen in mundane casual clothes. The streets are full of fashion boutiques or Ads of them. I must be looking odd-one-out ;)

Today's afternoon I spent in Alexanderplatz area (remember "Bourne Supremacy"?) :)

That's it for now. Stay tuned!!!

Sunday, September 07, 2008

Inkface - SVG based GUI design

I have always wondered why are there so many advanced technologies to learn to create the GUI for a software application. GUI is what we see, then if we want to design or customize it, then it should be as simple as editing an image in an Image editor. This becomes more important with the next-gen handheld devices, where the GUIs will be handled more intuitively - by fingers - rather than keyboards or mice. However the problem and its solution wasn't very apparent to me.

... until I read this post by Andre Schmidt on Clutter mailing list few months back. In his simsui project, he has designed a slider widget from an SVG image and used clutter to render its differnt parts. This little project defined the problem and solution I was looking for. I played with the simsui source code. Unfortunately, that code is written for very specific widget and had some duplicate implementation of some rendering logic.

So I decided to give a try to a generic SVG (vector graphics) based GUI framework. I looked for open source SVG rendering libraries. I chose librsvg (which is now part of the Gnome desktop) for this purpose. It took me a month to understand its internals and to extend them to fulfill my needs. I eventually got it working. I now have created a fork of that library - dubbed 'libaltsvg' - under my altcanvas project.

What I have achieved so far is complete isolation of GUI from the application logic code. I have coded two samples apps - A music player and A virtual keyboard for handhelds - using this new GUI framework. As you can see in the following demo video, the GUI look-n-fill can be changed by merely changing the input SVG filename. In this framework the app logic gets simplified as well. The code for the two apps can be found in player.c and keyboard.c.


high-res version on Blip.tv





The complete source code can be found here in altcanvas repository.

The demo above is prepared on my desktop, however I have tested these on my n810 as well. Of course, the animation effects are too much for it to handle. But it works decent at minimum frame rates. I will post packages for n810 diablo in next couple of days.

To put this in perspective: this framework lets you do on your desktop/mobile, what Adobe flash lets you do on the web (and on mobiles too) - with an added benefit of coding in C (and python or other popular languages, once I get their bindings ready). There are some closed source projects for doing vector graphics based GUIs for mobile devices (ikivo, bitflash). But I haven't found any open source initiatives so far. Let me know for sure if you have.

If you are attending OSiM or Maemo summit next week in Berlin, then look for me. I will be happy to give a demo.

Update (Sep 12):
A package for trying the Inkface demo on Nokia n810 is available now. Download the .deb file.
[Note that the keyboard/music player are not fully functional apps. They are proof-of-concept apps for showing Inkface GUI framework benefits.]
I will be flying tommorrow afternoon for Germany. If any of you guys are in OSiM or Maemo summit, I will be glad to meet. After I come back from the trip, I will work on further improvements to this project. Till then... have fun!!!