I’ve had the nokia N8 for a few weeks now and since I like it, I thought I’d do a little review.

Does it have rough edges? Sadly, yes there are some. But no major show stoppers. It’s stable. The camera is awesome. The video playback is great. You can play most movies without re-encoding them. I managed to not run out of battery during a trans atlantic flight, watching movies non stop, and the oled screen is fantastic.

I’m particularly happy with how maps is improving with each version.

It went from something that barely worked a few years ago to being arguably one of the best mobile maps experiences around. It’s certainly very competitive when it comes to map quality, navigation, and offline usage.Disclaimer, I work on the backend services for this application :-).

I’ve used two ovi store applications to write this post. One is called swype and it replaces the touchscreen keyboard with a version that allows you to ‘draw’ across the keyboard and it figures out the words with great accuracy and speed.

The other is the official wordpress client, which I’m trying for the first time, and of course that’s the real reason for writing all this :-).

So far so good. I managed to write a good chunk of text with swype and the wordpress app seems to do everything I need it to do.

All together this is a pretty good phone and it is getting even better with upcoming software releases. I think the recent focus of nokia on software quality and end user experience is starting to pay off. It’s not without flaws of course and it’s definitely to early to call the battle with our competitors over but it is progress and I think we’re getting there.

A final note here. I work for Nokia and am of course slightly biased. That being said, I rarely review stuff we produce and as a rule only when I really like it, without reservations. I loved the n900, which I reviewed a few months ago, but I’ve had several nokia phones that I chose not to review as well for this reason.

Updated my publications page …

It’s been a while, but now that the last two big journal articles I had in the pipeline for ages are printed, I finally updated my publications page with proper references and pdfs.

For those who got to know me more recently (or don’t know me at all). I have been moving back and forth between academic jobs and non academic jobs for about twelve years. The last two years I’ve been employed in a strictly non-academic role, which I enjoy very much. Before that I was working (and publishing) at the Nokia Research Center. In that job, I squeezed out several not so important workshop articles and book chapters as well as two major, big journal articles (which in the academic world is all that counts). Those articles took a long time to write and even longer to get reviewed, edited, re-reviewed, re-edited, accepted, re-edited, approved, edited by a professional editor, approved, pre-published, and finally printed.

Practical Web-Based Smart Spaces

Mobile devices are evolving into hubs of content and context information. Many research projects have shown the potential for new pervasive computing applications. This article shows how Web and resource-based smart spaces can support pervasive applications in a wide variety of devices. A framework that employs a resource-based HTTP style for pervasive services called Representational State Transfer (REST) can enable easy mashup of applications. This framework has several important features. First, a flexible access control mechanism on top of the OpenID and OAuth protocols provides security and access control in heterogeneous, dynamic environments. Second, a search engine can collaborate with existing service and network discovery mechanisms to find resources on the basis of their indoor location. Finally, an emerging W3C standard, Delivery Context: Client Interfaces (DCCI), facilitates sharing information within a device in an interoperable fashion.

The first article, we decided to write in 2008 as a way to promote the fine research we had been doing in Nokia Research. You can’t get better marketing for your research than an article in a high profile magazine with a wide distribution in the research community. The magazine we selected for this was Pervasive Computing, and I’m very proud and happy we got our article in. Since this is a magazine and not a journal, the article is comparatively limited in size, which means that it posed some interesting challenges on what to keep in it and what to omit.

Comparing Practices for Reuse in Integration-oriented Software Product Lines and Large Open Source Software Projects

This paper compares organization and practices for software reuse in integration- oriented software product lines and open source software projects. The main observation is that both approaches are successful regarding large variability and reuse, but differ widely in practices and organization. To capture practices in large open source projects, we describe an open compositional model, which reflects their more decentralized organization of software development. We capture key practices and organizational forms for this and validate these by comparing four case studies to this model. Two of these studies are based on published software product line case studies, for the other two we analyze the practices in two large and successful open source projects based on their published developer documentation. Our analysis highlights key differences between the practices in the two open source organizations and the more integrational practices used in the other two cases. Finally, we discuss which practices are successful in which environment and how current practices can move towards more open, widely scoped and distributed software development.

I started writing the second article, already in 2006. The first drafts were not very satisfying and we put it on ice for quite some time until deciding to finally get it published in 2008, which meant a more or less full rewrite of what we had until then. From there it took until September 2010 to get it printed. Most of those 2+ years were spent waiting and very occasionally doing major revisions of the article in response to some reviews and editor comments.

This last article (for now) has some continuity from my earlier work on software variability, software product lines, and software design erosion that I covered in my Ph. D thesis in 2003 (and several related publications). We present a model for large scale software development that we reconstructed from observing “how it’s done” in several case studies published by others as well as in the open source community as well as our own experience studying various systems and companies, as well as getting our own hands dirty with actual software engineering. Two years of subsequent practicing real software development in Nokia has only strengthened my belief in the vision presented in the paper, which is that the only proper way to scale software development to a software eco system (i.e. a thriving community of many developers across many organizations working with and on the software) is to decentralize management of the development process. If you are interested in this and want to read more, co-author Jan Bosch, my former Ph. D. supervisor who now works at Intuit, has been publicizing this view as well in his frequent talks and keynotes at various conferences. This website is dedicated to this topic.

Now with both articles out of the way, the question is “what’s next?”. The answer to that, for now, is nothing because I haven’t started writing any new articles in the last two years. And frankly I’m not likely to start writing one soon since I lack the time and I’m appalled by the snail pace at which the publication process progresses. Both articles have turned out very nice but would have had much greater impact if we had been able to get them written and published in the same year instead of (nearly) 3 to 5 years apart. Sadly, this is the reality of academic life. You write your stuff, you move on, and some day stuff actually gets printed on dead trees. There are more reasons, which I won’t rant about here but it is a big factor in me not being interested in publishing any more, for now.

Deutsche bank

Right now I’m pretty angry with my bank. I’m currently traveling and to my great surprise I couldn’t get any cash from any ATM in Boston when I arrived there on Saturday evening. Kind of inconvenient to be without cash if you are traveling. Luckily my credit card still worked so I managed to get into my hotel and get some food (one of the nice things in the US is that you can use your credit card everywhere). Also, some colleagues were kind enough to borrow me some money.

Anyway what pissed me off was the following:

On Sunday morning/night (jet lag), I called the phone number listed on my bank card to find out what the hell is going on.

This lands you in the standard useless menu where some very tedious computer voice slowly guides you to your destination repeating every choice you make and asking whether that was really what you wanted. This one was particularly annoying because they insisted on my full account number (they had speech recognition though) and branch number of my local bank office, which is apparently very important in Germany. Naturally, the first questions I got when I finally got a human to talk to me were what my branch and account number were.

Then the misery started, nobody on the other side of the line could do anything useful for me. Lady #1 who luckily spoke English connected me to Lady #2 who didn’t and quite rudely told me to go away (in German). So, I had to go through the above mentioned menu again to talk to Guy #1. I then asked him “do you speak English” and he said yes but added “I’m not allowed to speak to customers in English”. Eh right. He clearly detected my anger/amazement and then proceeded in English anyway, for which I’m grateful, I guess. He then figured out that I probably wanted to talk to someone in my branch office. So he gave me a number for Lady #3 who of course would not be reachable until Monday. So, I was stuck for another 24 hours without cash on me and I still had no clue why my card was not working (e.g. somebody might have skimmed my card and is emptying my account).