
A few days ago I went to Oulu, a city in the north of Finland to attend Linux Symposium which was featuring Bjarne Stroustrup, the inventor of C++.
I left Helsinki on Monday night and arrived to Oulu at 7:30 AM on the overnight train. It was so-o-o co-o-old in Oulu! We did not have such freezing temperatures during the whole winter in Helsinki. On that early spring day it was -20 centigrade. Because the train arrived early initially I planned to walk to the Oulu University which is located approximately 5km from the train station. I actually walked there but I froze like I have not frozen for a long time already. What was surprising to me was that local people were walking and even riding bikes normally. Apparently, they got used to such temperatures. In Finland there is a special word sisu which means persistence and stubbornness in a good sense of the word. Now I know that the city of Oulu is the city of sisu – sisu students, sisu workers, sisu everybody.
I barely had time to warm up in the university lobby before the conference began. It had a keynote speech dedicated to the looming C++ 0x standard as well as two tracks: business and technical. Before the conference I have spent lots of time studying the agenda trying to decide which track I want to go to. But there were interesting talks in both tracks. So I needed to remember the order in which I would visit the tracks. It turned out that there is a simple algorithm which tells you which track to go at any moment of time. The idea is that it is best to always switch the tracks, for example if you are listening to a talk in the technical track now then the next interesting talk is in the business track. So I followed this algorithm and I enjoyed every talk that I attended.
But the first was the keynote. Bjarne is a great speaker! He was describing his work in the standardization committee and the features that were selected in the new C++ 0x standard. He said that name of this new standard comes from the year in which they wanted to get it approved – anytime before year 2010, but at this moment the standard is in the Final Draft phase which means that it will get approved in year 2012 probably.
Bjarne pointed out several criteria that they used when selecting features for the standard. Basically, keep it simple was the main criterion. Any extra functionality should go to a library. Keep the run-time as small as possible. One of the goals was to make it possible to use C++ as the first language during teaching in a college. It is an ambitious goal as most of US universities are using Java as the first language. New set of features for writing parallel programs was described. Mostly, it was related to locks, semaphores, etc. and avoiding deadlocks and other problems, as well as inter-process communication. To me it sounds like a pretty low-level stuff. After his presentation I asked whether the committee thinks they’ve chosen the right level of abstraction. Nowadays there are a few interesting parallel programming frameworks such as Map-Reduce and transactional memory. Bjarne said that it is too early to standardize any of those which is probably true.

The funny thing is that the committee does not necessarily accept the features that Bjarne proposes even though he is the inventor of C++. For example, he was trying to get lexical_cast into the standard which is basically string tokenizer. But the committee voted against him because of possible problems with locale. On the picture above Bjarne is trying to persuade the audience that lexical_cast is a cool feature.
Here are the notes from a few other talks:
Sami Paihonen. Implementing cross-platform UI
The core of cross-platform UI is UI style.
Lots of research. Empty screen is the best place to start.
6 design principles: avoid clutter. Too many things on the screen. Two hands is not mobile usage.
IPhone open-source contacts has a better UI than official app.
UI style defines core UI identity
Smoothness and stability are most important. Steven Frei blog.
blog: dizzyhorizon.com
Mikko Välimäki, Tuxera. Open source and IP licensing
This is the guy who won Espoo half-marathon!
Tuxera – is company doing filesystems on non-Windows systems
GNU GPL – free of charge to everyone.
Is it possible to use Android UI on another hardware? Apple is suing HTC for Patent infringement.
Jonathan Schwartz blog. Bill asks royalty for every download of OO b/c of patent infringement.
Microsoft sued TomTom over usage of FAT file system.
Mixed, dual-licensed, open & proprietary models will win.
Alexander Bezprozvanny. Traditional vs agile/open source
different roles that a person takes in multiple team in agile.
key differences in OSS projects: no project managers. Project leaders are models.
Healthy community is the key.
Definition of healthy community, various paths that a project might take depending on how developers interact with users. Nice diagram.
Examples:
1) Too late means never. Affix and bluez bluetooth stacks. Commercial vs. open-source. A company that missed release.
2) High admission price: OpenBSD community. A success at a high price.
3) OSS contribution from software company: bureaucratic barrier too high. Disclaimer of rights is difficult to explain to management.
4) Maemo case: combining proprietary and OSS SW.
Ari Jaaksi’s speach and consequences in his blog.