Thursday, December 20, 2007

It's out!

So, after a long time working hard on getting the new Canola2 ready, the first beta is now officially out the door. I would like to congratulate the whole team, the high spirit and INdT for making this project possible.

Canola2 is, in my eyes, a very different product than the former version. The basic principles are the same, easy media consumption, but everything has been rewritten and Canola2 is definitely a more mature product. It comes with support for playback of local media such as video and audio, as well as a new way of watching your photos.

But, now that Canola2 is a product for the Nokia Internet Tablet, we haven't neglected internet connectivity, and as a result Canola2 is shipped with support for internet radio, podcasts as well as photocasts (Flickr and Picasaweb have been confirmed to work).

If the new beta makes you as excited as I am, I would suggest you to have a look at our new product site,

where you will find screenshots, videos and more or less all there is to know about the new beta.

Monday, December 03, 2007

9 days to launch!

So, 9 days to the launch of the first Canola 2.0 beta. We are all very excited and we want you to be too, so we launched a teaser site so that you can already have a look at what you can expect. The site can be found at:

A bit more information on what the first beta will contain please consult the latest blog entry by Marcelo.

On a related note, Eduardo posted a video of Canola 2.0 running on the N770... pretty amazing that it runs as well as it does. Don't just throw out your N770 yet ;-) Also, Marcelo has written a nice entry about the photos view.

Wednesday, November 21, 2007

Follow up to yesterdays post

So our Canola posts yesterday created a long thread on and Marcelo has been really busy answering most of the questions that have come up.

Artur wrote a blog entry giving a bit of light on our new media framework Atabake, as well as posted a screenshot of Canola playing back an episode of the Office (screenshot above).

Last evening there was a little hackaton here at work. Andre had spend the last week writing a new input framework(*) for EFL, much in the spirit of, and inspired by that of GTK+ and QT, and just couldn't resist trying to port Gustavo iPhone like keyboard to it.

It is currently only possible to write input methods in C, so Andre ported Gustavos code and made it into a real input method. Later, together with Gustavo and with input of a lot of excited co-workers we modified the interface and hooked the keyboard up in Canola.

Though, we are not going to use this exact keyboard, it shows what is possible, and if we find it worthy we might consider develop a new Canola integrated keyboard based on this code ;-)

(*) This work was done, in order for us to use the Hildon keyboard from within Canola.

Tuesday, November 20, 2007

So does it run on a real device?

It does, and it is really smooth :-)

Have a look at this video. It is not the latest version, but it demonstrates the responsiveness of our user interface.

High quality version at
High quality version at

Canola video from the World Usability Day

So Marcelo Oliveira posted a video to YouTube of him demonstrating Canola at the World Usability Day here in Recife. The video shows one of the concepts that we have used to develop the new Canola, more specifically the photo view and the new player view (including cover arts). It also shows our kinetic list, which has evolved a bit since our prototypes.

High quality version at

Most of what is shown in the concept is already implemented and fully working. I especially love the photo view, and when the concept was first presented to me, it rocked me away; but it also left me scared for a moment.

How to implement this in a way that it is usable and fast of the N800 device? Lots of problems came up as anticipated, but Leo Sobral has been working hard and has come up with a lot of clever solutions, and I must say that his work has been bearing fruit - the result is just astonishing, and it is now a joy viewing my photos on my N800!

The audio view is also quite nice, especially the cover view, which lets you view your music by album, showing tracks and album cover. The actual player has also evolved, and it now feels a lot slicker.

Though, it mostly looks the same, all of the code is new, and Artur Souza has been hard at work making sure that everything works smoothly and fast, but he will tell you a lot more about this in an upcoming blog post.

During the last week, I have been busy working on adding support for podcast, but now I'm back at working on the mapping view for at least a week. Afterward, I will try blogging about the podcast support.

Oh, and now to forget...

...our new framework provides scaling with very little work; imagine what the future might bring ;-)

Wednesday, November 14, 2007

Insights on the new Canola menu

As a follow-up to my video post yesterday, our UI-guru Marcelo, shares some insights on the ideas behind the redesigned Canola menu.

If you are into user interface design, this should appear to you. The blog post can be found here:


Tuesday, November 13, 2007

Another glimpse of Canola

As promised, I just posted a video demonstrating a part of our Canola framework. Actually, I'm demonstrating a plugin that is not scheduled for inclusion in the first public release, but it shows some of the possibilities.

It is a car module showing RPM, average gasoline consumption, etc, using the python-obdlib from the Carman project (Another INdT project). It communicated with the car using the OBD-II protocol or, as in the demonstration, simulates.

The plugin was written in about a day, excluding the time spent by the designers.

Next up, some mapping action...


Our UI expert Marcelo recently went to the World Usability Day, here in Recife to talk about usability and the upcoming Canola release. If you pay close attention to the photo below, you will see a part of the new Canola photo view - enjoy ;-)

See ya!

Monday, November 12, 2007

The harp starts playing again...

Great, it seems that I will be getting a N810 anyway :-) as today I found the activation code in my email inbox!

Thanks you, Nokia!

I'm sure you won't regret, and to let you know, I already helped Marcelo Lira getting started with creating packages for Chinook.

So this post is really about Canola; it looks like all the lucky N800 owners out there is going to get themselves a Christmas present this year. Yes, about 5 months in the works, the new version of Canola is finally starting to take form and we are aiming at a Christmas release for the public.

Canola has been totally rewritten, using new libraries mostly developed jointly with the open source community and using our beloved python. And it is filled with nice new features, cool, usable effects, and not to forget, it is fast!

With the use of python and our new Canola framework, it is going to be easy to extend Canola in many ways, by writing plugins. Actually, Canola is just a framework and a bunch of plugins, tied nicely together.

Some might say that you could compare it to Google's Android ;-)

Doing the last months I have been writing plugin for interacting with automobiles, more or less providing what Carman provides, but integrated with Canola, using the new framework. I have also worked on GPS navigation, and map exploration, so it is now possible to use Canola for getting around the city :-) This will not be on the December release, but shows our explorations and the possibilities of the framework.

To show you all what we are working on, I will try to post some videos one of the days.

I will keep you posted!

Saturday, November 10, 2007

So, long time since I have blogged about work, but to let you know, things are progressing quite rapidly and I'm quite sure that you will all love the new Canola ;-) Still stuff to do, but christmas is coming soon... and if things go well, maybe there will be a nice present for all of you.

As most of you know I work at INdT, and I must say that I am enjoying it. It is a lot of work, but I work with a great team of talented people and we sure have a lot of fun at the office, especially due to my malpracticing Portuguese and my lack of shyness... but hmm.. let's not talk more about that :-)

Unfortunately, I didn't get accepted in the N810 device program, so for the time being I will stick to bora for developing Canola. It seems like a very nice device though, and I especially like that it has an integrated GPS now that I work a bit with that, but unfortunately I heard some people comment that the FM radio seems to have been removed. If that turns out to be true that is really a shame, as I used that in the trains quite some times.

Thursday, September 27, 2007

Canola in the Mini Cooper car

Today I fell over this photo on Arstechnica:

Now back to working on the upcoming version...

Tuesday, August 21, 2007

undefined, undefined, undefined... buy now!

Seems like the N800 page is having some problems today ;-)

Toolkit adventures

So it seems that I have become a TreeView hacker ;-) Well, not the GTK+ one as we all know that Kris is doing a splendid job at that, but the ETK one.

Gustavo and me sat down to discuss what features we need for a list widget for Canola and had a few choices as creating a new list, merging the list I made and the one Gustavo made as they both have advantages and disadvantages, or we could use the ETK one. Andrunko convinces us that using ETK was the way to go. I had a quick look at it and agreed.

Andrunko already implemented proof-of-concept kinetic scrolling and I improved it a bit, by extending it to stop at the right position. Andrunko, working on another project, requested me to add separators, and I took a look at it... SCARY!

Tree view code is scary, and complex and I was met with functions larger than 500 lines of code ;-) uh... where to start... I started out my doing some refactoring and it actually took me 2-3 days getting to understand the code, and actually refactor it, but the funny thing is that when I understood the code it took me like 10 min to actually implement the separators :-) Now all there is left is implementing support for different row heights, as I would like the separator rows a bit smaller.

On a related note, Gustavo made a website where you can download the EFL Maemo Edition, so that you can run apps based on EFL on your N800. Go check it out:

Also, a few new guys jointed the Canola team here at INdT; Caio who is working on creating python bindings for ETK, and Eduardo Lima aka. Etrunko (known for many Maemo ports, such as Gnumeric, Evince, and also for the cool Carman project) who will also be working with ETK. A warm welcome to them both!

Wednesday, August 08, 2007

Mamona FAQ online!

I have known about Mamona quite some time, but I never really got it, if you know what I mean.

But now, after some talk with Abner and Vivi, Vivi created a nice Frequently Asked Questions section on the new Mamona website which clearly states the purpose of the project and its relations to other similar projects like OpenEmbedded, Poky Linux, et cetera.

Mamona now also sparks an übercool logo thanks to our designer Patricia!

The FAQ is available here:

Kinetic Scrolling, yet again

Marcelo Oliveira pointed me to some links on the kinetic scrolling, and it seems that my video hit Gizmodo; nice :-)

Also, it seems that after I released the source, a few people have been looking it over and implementing their kinetic scrolling lists as well. There are some nice videos (and source code) available online from a French speaking guy - pretty cool :-)

Monday, August 06, 2007

The man himself!

I have always been a big fan of Quentin Tarantino, so I was very surprised when he showed up at my work! And to make it even better he brought t-shirts from GUADEC!

Here he is our famous Quentin (aka Etrunku), using an algorithm for determining who will get which t-shirt.

Vala - vai lá!

Lots of talk about Vala these days [1] [2]! I never really looked at it, until about a month ago where my friend Marcelo Lira showed me some examples. Very interesting indeed, very C# like (which is not a bad thing as I like that language) and a lot nicer than coding C with glib.

Now Marcelo did it again, as he created Hildon bindings for Vala. He even has an example online:

The patch isn't in trunk yet, but he expects it to be soon.

[1] Alberto Ruiz (arc) on Vala:

[2] pvanhoof on Vala:

Wednesday, August 01, 2007

So, it is now public...

So, it is now public... I drink a lot of coffee, too much actually, and indeed that is the way I am pictured on the INdT news site... with a cup in my hand ;-)

So, what has happened today. Well, I worked a bit further on the kinetic list view, as I had a few feature requests, like make horizontal scrolling work and make a nice API using cell renders, much like GTK+ does. That has now been done, so if I lucky I will soon move onto something else.

I noticed that the article that Gustavo and I wrote has been posted on OSNews[1], pretty cool! I also saw yesterday that Gustavo is a tenacious hacker[2] according to Engadget. Who would have imagined! :-)

[1] Creating Edje User Interfaces

[2] Tenacious hacker brings the iPhone keyboard to a Nokia N800

Uh, I almost forgot to mention that has a nice entry on the future of mobile interfaces, mentioning our Canola and EFL work here at the OpenBossa Lab at INdT.

Source available

As I promised in a comment some days ago, I have now released the source of the kinetic list example. It has been modified a bit by Gustavo, so if it looks a bit different you know why.

I also modified the code to have a grid mode. This means that you don't need the items to span the with of the row, but you have define a width and it will try to stuff as many items in a row as possible; quite nice if you want to make a thumbnail view or something along those lines.

The code is available here:

Friday, July 27, 2007

iPhone-like List View

So as I promised yesterday, I'm going to show a video of my iPhone-like list view that I wrote in python using Evas and Edje. There is still one bug present, but I will look into that soonish. I would also like to optimize and clean up the code some more.

Anyway, to the demo :-)

The pictures shown are from my beautiful country of origin, Denmark. ;-)

Edje Tutorial

Just a short post to let you know that Gustavo and me have made a tutorial on creating user interfaced with Edje, Evas and Python. It is based on a simple application launcher that Gustavo wrote some time ago.

The article can be found here:

Thursday, July 26, 2007

Exciting news from the Canola team

So, some information about the future Canola releases has been released to the public, explaining what is happening in the Canola land, such a Carman integration, a totally new user interface and a lot more. ;-) Lots of stuff to be excited about!

It is all available in Marcelo's blog, so please take a look:

There is also a cool video showing off some of the interface work that I am working on. Lots of stuff to do still, but the result is astonishing.

iPhone List View

Inspired by the work of Gustavo and his iPhone-like keyboard, I implemented the kinetic scrolling list view also featured on the iPhone. More or less one day of work. Now all that is left to do is optimizing it, and make it a bit more flexible.

I will try to post a video showing it off soonish.

PyconBrasil 3 Conference

If you are interested in python and are living in Brazil or one of the countries surrouding it, I suggest you to visit the INdT sponsored PyConBrasil 3 conference!

It is the 30, 31 of August and the 1st of September in Joinville, SC and I will be giving a speech on developing instant messengers using Python:

Developing an Instant Messenger using Python


So I'm writing to congratulate my friend Rodrigo Vivi with his release of the Mamona sources!

Mamona is a completely open source distribution for ARM that intends to be an useful and open SDK for the Maemo platform. Simply running a chroot (change root) command you will have a complete ARM distribution running on your PC emulated by QEMU (user-mode emulation). Pretty cool!

Vivi has a bit more information available about Mamona here:

The source code of the base packages are available in the mamona repository:

Go check it out and keep an eye on Vivi's blog:

Wednesday, July 25, 2007

iPhone-like virtual keyboard

Just a short notice to tell you all that Gustavo posted a video showing off his experiment implementing a iPhone-like virtual keyboard for the N800.

Please check it out:

Monday, July 23, 2007

A long over-due update

So, long time since I have made an update to my blog, but lots have been going on. I finally moved officially to Brazil and am living in Recife for at least the next two years. So far I have been enjoying myself a lot :-)

As some of you know, I work for INdT (The Nokia Technology Institute) as part of the OpenBOSSA stream, ie. working mostly on open source software, which is quite cool. Currently I am working as part of the Canola team, mostly dealing with developing and testing our new graphical platform which consists of the Evas and Edje libraries (among others) from the Enlightenment project. So far, we are quite satisfied with the libraries, though Gustavo and Andrunko are submitting various patches upstream as we run into problems.

I implemented the old interface of Canola and it rocks! free scaling (fullscreen desktop Canola rocks!), great animations, running quickly on the N800 (due to Gustavo's 16bit backend)! I am now working on the future interface and I can tell you all, that you have a lot to look forward to :) Now let's not say more.

If you are interested in hearing more about the new graphical platform (the EFL - Enlightenment Foundation Libraries) and our experience with developing graphical intensive applications for the N800, I have submitted a talk proposal for the conference, so let's hope for the best. If it gets accepted, I will go there and do a tutorial together with Gustavo. :-)

As a side node, Gustavo spent one week to implement the iPhone keyboard using EFL, and you will be amazed how well this works on the N800. I'm sure he will blog about this soonish!

Friday, May 25, 2007

So what is up with that IM application?

Well, a lot, and then not so much :-) I have used the last weeks refactoring the code, implementing new minor features, fixing bugs and still there hasn't been a release.

Some of the new features include support for emoticons (as well as copy and paste of emoticons), logging, translation support, as well as the beginning of voice calls. The last week I have been working on implementing support for other protocols (and connection managers) and today Luiz started moving this work into Tapioca.

Unfortunately, we need to find a new name for the application (the real reason that there has been no release!) as Colligo is trademarked. For the moment we settled on Ereséva which is Tupi Guarani (the "original" Brazilian language) for "What you want to say", but if someone has a better name, now is the time to tell us!

For the next month I will be travelling and as such, I won't have time to hack on Ereséva.

Friday, April 27, 2007

Unfortunately no release today

I'm a bit sorry to inform you that we are not going to make a release of Colligo today. There are simply too many bugs and we will need a bit more time to iron them out - probably one or two weeks, let's see.

Anyway, here is a screenshot of the current svn version. Some basic stuff is missing, like being able to accept new contacts, but should be quite easy to add.

Wednesday, April 25, 2007

Emoticons are coming...

I guess they speak for themselves! Great work Hylke!

Monday, April 23, 2007

A little teaser

A little teaser for all of you... :-)

Thursday, April 19, 2007


So it is a very long time since I have been writing anything. Lots of changes in my life and lots of moving around :-) but I guess you guys are not that interested in hearing about all this.

Anyway, the last weeks I have been working on a pet-project of mine called Colligo. Luckily, I have also been getting some help of my friend Marcelo Lira.

Colligo is basically a new instant messenger written in python using Tapioca and Telepathy. It is quite simple, has a nice code base and generally I'm quite satisfied!

As part of the project I generated python bindings of tapioca-glib and fixed a lot of issues together with the maintainer Luiz Dentz.

Well, enough talking, lets see some screenshots: