My blog has been moved to

Thursday, October 22, 2009

even QPainter has QPainter::end()

I came to Trolltech (then became Qt Software, then Qt Development Framework) early last year, at the time when the Trolls were busy stabilizing Qt 4.4. I was assigned to work on QtWebKit, so right from Day 0, I did carry out my best patching skills and committed my burst fixes as fast as I could. Qt 4.4.0 was released shortly after, followed by 4.4.1, and the remaining 4.4.x series.

Summer was fun. I learned a lot about WebKit, git, development workflow, the art of backporting, and a lot of other stuff. Together with Samuel, we did resurrect Graphics Dojo. Ever since, I am sure you spotted a bunch of biweekly graphics and WebKit examples I posted: 27 examples this year and 12 examples last year. Autumn brought me to my first Qt Developer Days 2008, both in Munich and Redwood City. We also did a bit of tour to the east coast, back to around Mountain View, and most importantly I got to know the best juice in the world.

at work

I completely forgot to blog about this, probably because it was not worth mentioning, but during this time I rightfully obtained my Ph.D degree (or rather the official Dr. -Ing). My 70-page dissertation is available for download, still I suggest reading the summary in the 8-page paper. FWIW, I passed with magna cum laude.

After the winter break (I did two trips to my home country), spring brought us the long-waited Qt 4.5 along with other blessings (LGPL, open repository, contribution model, S60 port). Qt for S60 was getting hot, I wrote a bunch of smaller examples, OpenStreetMap, ray casting, and some others, all of them showed up as new examples in Qt 4.6. After all, I am always thrilled to offer our valued customers some blue sky approaches and streamlined, breakthrough paradigm shifts so that they can better monetize their mission-critical, enterprise graphical applications in this quality-driven, business-focused Web 2.0 world :-)

It also meant the traveling time (for doing talks) started again for me. For a lowly code monkey like me, I am proud (on Nokia's behalf) that this year alone, I had delivered 5 (mostly successful) graphics-related presentations in open-source/developer conferences: Pycon Italia in Florence, LinuxTag in Berlin, and of course Akademy in Gran Canaria, Maemo Summit in Amsterdam and Qt Developer Days in Munich.

At this point, you can probably guess how it would end. Our last short, memorable vacation around Europe was enough hint. Yes, today is my last day in the office. Our flight back to Indonesia is due within few days. The parting is amicable and amiable. The Last Supper, for my (soon ex-) team mates has been served, too.

Spare the tears, follows is the actual resignation e-mail I sent to our internal mailing-list (the "Foul Stench Officer" refers to the durian incident back then). Last note: my e-mails and will soon RIP.

Subject: Even QPainter has a QPainter::end() function
From: Ariya Hidayat <>

After being involved in the affair of "connecting people" <insert the jingle here> for some time, I decided that it is the time to move on. If everything goes smoothly, then starting from November 1st (which is a good day, since November is the 11th Gregorian month and 11 is the first double-digit prime number) I would not work for QtSW anymore. Going through a lengthy discussion, my other (better) half and I finally came to a conclusion that Oslo, as beautiful as it is, is not really the place where we want to settle down, at least for the near future.

I still hesitate to definitely mention where I would be stationed by the end of this year. This is because many things depend on e.g. the visa process (as uncertain as the Schrödinger's cat), and being a citizen of a country stamped in the "terrorism haven" list does not really help. In the worst case, I will take a short leave in my career and spend time with my family, in some sunny city (comparable, if not better, than Las Palmas) in our home country. In the best case (finger crossed!), it will be another sunny city, somewhere in California (to avoid speculation, I can safely say beforehand: no, right now I have zero interest to work for a search engine or a fruit company).

I have been using Qt since my C++ skill was still a joke. Rest assured, I will be still using Qt in the future, at least for my personal pet projects and/or my spare-time joyful endeavor with KDE. And although it has nothing to do with Qt, I can proudly say that my coming professional activities will be still around open-source projects (surprise!).

It is an honor to serve with all of you, my fellow Trolls!

Your Chief Foul Stench Officer


graphics dojo in 2009: wrap-up

That is, 2009 is coming to its end. Some parts in Central Europe already enjoy the snow although Oslo still has a touch of autumn feeling.

Here is a list of biweekly Graphics Dojo examples that I managed to pull off this year. Most of them are available for Qt/C++ and PyQt.

Note that although the examples are categorized (for your convenience), often it does not strictly belong to one category, e.g. night mode is both a graphics and WebKit example. Also, all S60 examples are designed with S60 mind but they still run well on the desktop, too.





Need more goodies? See also last year (2008) graphics dojo wrap-up.

Until next time.

Wednesday, October 21, 2009

kinetic scrolling: the state machine

Some of the slides from last Maemo Summit in Amsterdam have been made online. Here is the one from the Cross Platform with Qt talk that I held. It does not give much, though, since mostly what counts is the real live demo. Let us hope that at some point in time, the recorded videos will be online as well. Of course, there are also other interesting slides such as Harmattan highlights and its architecture, Web Runtime, Quake3, and many others.

While I am there, if you check the slides from my talk above, page 9 shows the secret behind kinetic scrolling code, which I featured before as Flick Charm or Flickable interface. Or, in another version as follows (click to enlarge):

Of course, it is the simplified version and ignore some details, but that should be a good start to really digest the code. Since it was hacked in the old 4.4/4.5 time, I did not have the luxury of using the new state machine framework in Qt 4.6. As an exercise for you, the brave readers, convert the code to use the framework. In addition, it does not support yet bouncing-on-edge feature, something which can serve as another exercise, too.

Have fun with scrolling :)

Tuesday, October 20, 2009

Chromium on OpenSUSE

Though Google Chrome for Linux is not yet officially announced, people have been working to make Chromium, the open-source version thereof, available for different popular distributions. I wrote before about CrossOver Chromium, but not only this is just a hack, it is also not up-to-date at all. The easiest way for OpenSUSE 11.1 users is to use the package from Contrib.

Though for veteran OpenSUSE fans, the steps to install Chromium are obvious, here I write down the idiot-proof version. Go to, type Chromium and click the Search button, wait for a moment, find the entry from openSUSE:Factory:Contrib/openSUSE_11.1, then well, click on the 1-Click Install button there. Follow the usual installation guides (mostly just agreeing and confirming some stuff), then in few minutes you will get:

Who says installing software in Linux is difficult? :)

Sunday, October 18, 2009

from autumn to winter

The wave of cold weather is approaching us, the nature's way of saying Wind of Change. While some parts of Europe enjoy the snow already, Oslo is relative still calm and actually enjoyable, even in the afternoon, for a walk.

from autumn to winter

(Picture was taken and shared to Flickr using Nokia N900 :)

Friday, October 16, 2009

bye munich (and D2)

After kickstarted on Tuesday, Qt Developer Days 2009 Munich has ended. Some of us, the Trolls, are already back in Oslo, recovering from the intense adrenalin kicks within the last 72 hours (or more). The extra surprise was to experience the first snow in Munich (and this is still mid October!). Most must recharge pretty fast, considering the San Francisco version of the event is in about two weeks time.

There already a bunch of articles covering the event which show up in some sites, Aron has most of them in his wrap-up blog entry. More links are and will be available via qtbynokia twitter. Fancy some pictures instead? Search for qtdd09 tag on Flickr and enjoy them!

As for me, I am glad that this is finally over. It's all about people: it was exciting to meet old friends and make new ones. In addition, my Special FX with Graphics View talk was well received (the room was jam-packed), I got some very interesting feedback and questions to follow-up. The other talk, Copy Your Favourite Nokia App with Qt, was a bit quiet (the typical problem of all presentations in the afternoon of the last day) but still, it was as interactive as it could be.

This mini wrap-up is not complete without food photos. While we were in Munich, we ventured some different possibilities for dinner. Let me just show you two of them: Low-carb Seafood and Biryani:

Low-carb Meal (with Seafood)


Tuesday, October 13, 2009

Qt Developer Days 2009 - Live

Like I mentioned before, now I am in Munich for Qt Developer Days 2009. The training sessions started yesterday already, the plenary was initiated this morning as we had the keynotes from Sebastian, Lars, Walter, and Matthias. We are now in the middle of lunch break, the technical track will start very soon.

Qt Everywhere

This is the biggest Qt Developer Days so far, we have over 650 participants (last year it was only around 400). Can you imagine now what happens during the lunch break? Hint: the queue. As a nice touch, we even show a coffee machine running Qt:

I will have two talks tomorrow (Day 2) for the Innovate track: Special FX with Graphics View and Copy Your Favourite Nokia App with Qt. See you there!

Sunday, October 11, 2009

bye amsterdam. next stop: munich

Today is the last day of Maemo Summit 2009. I am sure the news spreads quickly; everyone and his uncle know already that Nokia lends around 300 shiny N900 (preproduction devices), worth 500 EUR, to the summit participants, excluding Nokia employees and contractors. It's Christmas in Amsterdam!

I had done my Cross Platform with Qt talk, I was quite content with it (that hopelessly small room was jam-packed). There were (and still will be) many other interesting tracks as well. For the detailed coverage, check out All About Maemo site, they are doing great jobs keeping the rest of the world up-to-date with the latest excitements from WesterGasFabriek.

While waiting in Schiphol for my next flight to Munich (for Qt Developer Days 2009), I had a quick glance at some of photos taken in the last few days. Let me just post one:

Nasi Rames

One evening, we picked Restaurant Sari Citra for our dinner. It serves Indonesian cuisine, the proof is the picture above. You have the choice to mix your own rice dish, such Nasi Kuning (rice with coconut milk and turmeric) with Tempe Kering (slices of fried, crispy tempe mixed with peanuts), Perkedel Kentang (mashed potato fritters) along with a wide selection of vegetables. Authentic experience with a reasonable price. Everyone enjoyed the dinner; happy Trolls :)

And see you in Munich!

Friday, October 09, 2009

Maemo Summit 2009 - Live

Like mentioned before, with other few Trolls, we are now in Amsterdam for the Maemo Summit 2009. If you are there, don't forget to look for us and/or drop us a visit!

Maemo Summit 2009

Wednesday, October 07, 2009

webkit dinner: gado-gado + nasi uduk

Nasi Uduk

Something I can always be proud of is to be part of the Nokia QtWebKit team. The fact that we are all the WebKit reviewers from Nokia (at the moment, surely the situation will improve in the future) is one thing, but most important is that the team is small and agile, and it comprises great hackers. You surely already hear a lot from Simon, Tor Arne, and Kent these days, and you will hear from the new blood pretty soon, too.

The least we can do for such great coworkers is to offer them a bit of culinary journey to our culture. Hence, the so-called WebKit dinner. As much as I love Italian food, such as pizza, it's also time for a change.

The starter was Gado-gado, which is just vegetable salad served with peanut sauce as the dressing. The main dish consisted of fish curry (generously contributed by Kavindra) and Nasi Uduk. The latter, which is shown in the photo above, is rice cooked with (among others) coconut milk served with sliced omelette, fried tofu, chicken, fish, and vegetables. A lot of other slight variations also exist. Original (from Sidoarjo) prawn crackers, aka Krupuk, completed the experience.

Dessert? Not forgotten. It was basically just fresh waffles (like I blogged before) served with the sauce made from brown sugar and coconut milk. Let's say it's the European interpretation of Serabi.

Tasty. What else does a man want?

Tuesday, October 06, 2009

paris lisbon madrid

Finally I had a real vacation, albeit short. Like many typical holidaymakers, I decided to do a little tour passing three selected cities in Europe, at the same time also using the chance to practice light, one-bag travelling (with a great success, mind you!).

Église Saint-Eustache, Paris

Paris can always make a good start. The target at this second visit to Paris was to enjoy it at night. After all, it is supposed to be la Ville Lumière (City of Light). However, a long walking tour during the day was still inevitable, as evidenced from the picture of Église Saint-Eustache above.

Nasi Goreng

As for the food, we decided to try non-local cuisine instead. We dined at the nicely-decorated Restaurant Indonesia, one of two restaurants in Paris (the other one is Djakarta-Bali) serving authentic culinary experience from my home country. If you happen to be nearby, give it a try as the dishes were good and reasonably priced.

on the way to Castle St George, Lisbon

Lisbon is fabulous and rich with history. We managed to explore the downtown area on foot, enjoying the busy Marquês de Pombal, even walking up to the Castelo de São Jorge. However I feel that exploring the surrounding would have been much better with a car. The view of Lisbon from the castle was majestic, also from the dozens of the short alleys on the way up there (the photo above). Of course, passing Ponte 25 de Abril - the sister bridge of San Francisco's Golden Gate - both on the motorway and using the train, was also a wonderful experience. Due to our limited time, we had to skip some other tourist attractions. We already compiled a list of must-visit places for the future, in case we fly to Lisbon again.

the lucky takes them all

Nevertheless we had the obligatory fantastic dinner with cod. In another occasion, a simplistic but enjoyable dinner buffet in a Churrascaria was also memorable. A short detour to the beach at midnight completed the unforgettable journey.

Plaza de Toros, Madrid

Madrid was very vibrant and dynamic. It is also quite warm (as expected) with the heat at noon being close to unbearable. I like the fact that it was still possible, even convenient, to sit on a bench even somewhere in downtown as long as it is still in the shadow. Unfortunately Madrid was defeated by Rio in the race for the 2016 Summer Olympics host. Otherwise it would have been extremely fantastic as we were there after the last round.

Chocolate con Churros

We did the usual sightseeing (on foot) - including the compulsory visit to Palacio Real - and other usual rituals: having chocolate con churros for breakfast, drinking horchata to ease from the heat at midday, as well as eating traditional paella (and fidueà) for the (very!) late dinner.

Madrid at night on the other hand is a bit problematic for me. Since I am not a nightlife type, I don't drink, and I can't stand the cigarette smoke, touring the city after sunset is practically a mild torture.

Next to visit (due in few days): Amsterdam and Munich.