Tag Archives: Maemo

www.maemo.org

Documenting Telepathy: Examples

I’m gradually working on documenting Telepathy, the IM/real-time-communications toolkit, though I am currently still exploring the API rather than writing text, and I am only using occasional hours here and there for even that. The delay is more due to me than Telepathy. With the help of the Telepathy developers, I have  completed some simple telepathy-glib examples, giving me a feel for the API. I can now start to write up some of the text.

Telepathy actually works and is full featured, and has many people working on it. That makes it very useful to many people.

But to be honest, the API feels frustrating so far and I think you’ll see what I mean when you look at those examples. I’ll continue trying to document it so people at least know what to do, even if what they have to do doesn’t seem very nice.

Apart from the many little annoyances, I think the API suffers greatly from extreme use of asynchronicity, instead of fighting to protect application developers from that. I think that’s partly due to the choice of D-Bus for the implementation, instead of just using a C library, forcing every method call to be asynchronous. There’s also a tendency for high-level actions to consist of  multiple small (asynchronous) low-level steps, though that’s partly due to the awkwardness of simulating an object-orientated class hierarchy in a D-Bus API where even (the equivalent of) a cast is asynchronous, and a consequence of needing to discover interfaces at runtime, due to inconsistent interface coverage by the various plugins (connection managers). There’s also a tendency to expose the (naturally asynchronous) client-server network behavior of the protocols directly in the API instead of combining and hiding multiple network back and forth behind simpler API, though the new TpContact class does a lot of work in the background.

However,  I have not yet explored the whole API and don’t yet have a full sense of the common ways that the API is used, so my judgement could conceivably be wrong. I also suspect that it could be much worse.

Meeting the new Openismus Trainees

I was at the Berlin office on Friday meeting our trainer (Daniel Elstner) and two new trainees: David King and Michael Hasselmann (not Mathias). They should all blog more, at least when they start in January.

I am very positive about these guys. I stressed how we want them to develop good habits based on empathic consideration for the users and developers who will use their code and real understanding of the languages and APIs they use. We want to build excellent developers who are an example to others. Character and communication was a major issue when choosing these trainees via email and they show that in person.

This is an important step for the company. It makes it easier to predict when we will have new developers available and helps us to merge those developers into a cohesive culture. It also means that we’ll have more full-time people to help out with unexpected extra work. I’m proud that we’ve stuck to our 35 (productive) hours-per-week rule instead of pushing our people to be stressed and unproductive, and now that will be easier.

The Berlin office is coming to life too, with 5 people there. Overall we’ll now have 11 employees (3 part-time), which feels substantial to me.

Trainees Chosen

The response to my call for Openismus trainees was excellent. I have now selected two trainees who will start in January 2009 and I really wish we could afford to take a couple more. I’ll announce the names soon. Furthermore, Daniel Elstner will return to Openismus to train them in the Berlin office, starting in December.

I think I’ve replied to everyone personally. If I’ve missed anyone, please do email me again so I can give you a more specific response.

Openismus wants trainees

It has always been difficult to find GNOME developers to employ. So for a while I have wanted to grow some new developers of our own. Now that the Berlin office is established we are ready to start by hiring some junior developers.

If you are smart and enthusiastic but you lack experience then we can provide the opportunity. You would work mostly on existing open source projects instead of customer projects, just to get experience with C, C++, GTK+ and Qt. Our developers would provide technical guidance and encourage you to work and communicate in a structured way, creating software that’s actually usable and useful.

This is also a great opportunity to move to Berlin – a wonderful city for young people.

Glom 1.8

I have released Glom 1.8, with many new features and bug fixes. We have not yet fully completed some of the new features, and the refactoring may have introduced regressions that we must fix in 1.8.x releases, but we need to get it all out into the world and move on to Glom 1.10, including porting to libgda-4.0.

We have probably missed the schedule for getting Glom 1.8 into Ubuntu Intrepid so I’ll create some PPA packages when Intrepid is released.

Useful new stuff in Glom 1.8:

Network sharing

As you can see in the new initial dialog, you can now choose to open a Glom system from the network, if a colleague is already running it. This is much easier than getting access to the actual .glom file on a shared network drive.

This uses the new libepc (Easy Publish and Consume) library, developed by Mathias Hasselmann, using avahi and libsoup. There’s a chance we might use telepathy in the future.

Armin implemented the new dialog, and I implemented the load-from-network code using libepc.

Import

You can now import CSV (comma-separated) data in to the current table. The assistant helps you to choose the field mapping, showing you sample data for the first few rows.

Johannes implemented this.

Drag and drop layout

You can now drag items from the toolbar (hidden by default) onto the details layout, and you can drag items within the layout. The automatic layout reflows as you do this.

Yes, we know that the dotted lines are particularly ugly, but I don’t yet know of a better way to show the limits of the columned boxes and items, which may be inside each other. Mockups would be welcome.

Johannes implemented this. It was a huge job and he’s probably glad to be doing some other things now. This uses the EggToolPallette toolbar, developed by Mathias and Jan Arne, that we hope to get into GTK+ eventually.

Print Layout

This is very primitive right now, but you get the idea. Unlike the on-screen layout, this uses precise positioning. That allows you, for instance, to print in the correct places on a pre-printed form.

Most importantly, we need to add some way for fields (particularly lists of related records) to flow into each other, maybe using allowing them to be special objects in text blocks.

I implemented this, if you can call it implemented. I used goocanvas (via the goocanvasmm C++ bindings). I also rewrote the Relationships Overview using goocanvasmm. It also uses the EggToolPallete. I guess we should move it to the left to be consistent with the regular layout toolbar.

Windows Installer

Armin built Glom and its dependencies (apart from Avahi) on Windows and created an experimental installer.

Armin and Johannes also updated Glom’s client-only Maemo build.

What’s next

We need to finish the print layout and drag-and-drop features, and port to libgda-4.0.

I also want add a platform-specific alternative layout option, so one .glom file can have large layouts for regular PCs and small layouts for Maemo, for instance. I’ll probably get around to doing that for 1.10. On Maemo, I also want us to use the new UI elements in Maemo 5, if the Maemo SDK is released.

Daniel Borgmann joining Openismus

As of today, Openismus welcomes Daniel Borgmann, of Clearlooks and UbuntuLooks theme/theme-engine fame. But his office in Berlin must remain empty for at least three months because we are sending him north to Helsinki. He’ll experience the dark frozen winter, which is probably quite interesting when you know you will come home eventually.

Daniel will be working on theming for the new Maemo platform. We brought him to the Maemo summit in Berlin at the weekend and I hope that was a positive introduction to Maemo.

Maemo Summit and Openismus Party

Maemo Summit

The Maemo summit in Berlin was much better than expected, though mostly for the meetings outside of the talks, where the NDAed people could whisper obscurely to other NDAed people. Many thanks to the summit organizers, to Nokia, and to C-Base.

Nokia announced some big hints about the next version of Maemo, including a major focus on finger and thumb usage rather than a stylus, better CPU and graphics, and the (unspecified) use of the clutter toolkit. For us NDAed people it took extra effort to remember what stuff was now public and what stuff was secret. To ease that problem, and to get valuable feedback, it looks like there will be early SDK releases with ongoing public work in svn, but I will believe that when I see it. I want to believe.

Listeners to Rodrigo Novo’s charming accent could be forgiven for hearing that it would be a tongeable interface rather than a thumbable interface. Maemo 5 will be great, but that’s an exaggeration.

Openismus Party

We hosted a party on the last evening of the Maemo summit, in our beautiful new offices, with Maemo/Nokia sponsoring the drinks and pizza. The numbers of people were just right, and the atmosphere was very positive and friendly. I saw many of my favorite people and met some new favorites too. People seemed to enjoy the place.

I took a few quick shots with my narrow-angle low-light lens, but the results are kind of abstract and fuzzy.

Apparently an upstairs neighbour poured a bucket of water on Philip Van Hoof, possibly annoyed at the noise at 11 o’clock. But I think that’s too early to be plausible, so it must be someone who doesn’t know that Philip is much nicer in person than online. Philip took it with good humor.

Openismus Party Tonight

I have been in Berlin since Monday, setting up everything in the new office to be ready for the party this evening. We built lots of IKEA furniture, we have wireless internet, we have a fancy coffee machine, music, a Wii games room, several crates of beer, and a source of regular pizza. It’s still a little primitive.

The party starts at 8pm. We will probably shut things down at midnight, to avoid annoying the neighbors. But we are in a wonderful neighborhood with an insane amount of cafes and bars, so you’ll have no problem partying on until the morning. I am a little worried that we’ll have 200 people there, instead of the planned 80. Let’s see.

We are at Kastanienallee 88. To get there from the Maemo summit, take the U2 U-Bahn to Eberswald Strasse from Märkisches Museum, or take the S-Bahn from Janowitzbrucke and switch to the U2. Alternatively, take the M1 tram and get off at Schwedter Strasse. See Google Maps.

Openismus Party after the Maemo Summit

There will be a smallish beer-crate and pizza party at the Openismus Berlin office on the Saturday night (20th September) after the Maemo summit. That will be an opportunity to introduce our new location to our employees, customers, and other Maemo/GNOME people. I think we can get Nokia to pay for the beer and pizza.

Lots of Maemo summit people will have left Berlin already by Saturday, so hopefully it won’t be the full 200 people. We can probably handle around 80. How about you add your name in the comments if you’ll be there. That will help us to plan, and will tell us whether we need to limit the numbers.

It’s Kastanienallee 88 (Google maps). The name’s on the doorbell outside, and we are in the building at the back.

I will be in Berlin from Tuesday, taking delivery of some furniture and other stuff, including a Wii plus projector, which should be nice for one of our extra rooms, and a fancy coffee machine. But in general the space will still be quite empty, with no secret stuff, so it seems like the right time to have a party there. It looks like we’ll have Internet and some Wi-Fi.

My baby son and girlfriend will be there, so we will probably dedicate one quiet room as the baby room. Finally Liam will get to meet Mathias’ Marc Andre.

Openismus in Berlin

Last week I visited Berlin to look at offices and found one that’s perfect. I’m signing the contract now. It’s in Kastanienallee (recent Flickr photos), a lively main street in hip Prenzlauerberg. I’m excited. The location and office couldn’t be better.

There are 5 large offices, plus a beautiful large central area, with bare brick, stone tiles, and lots of light, and even a patio for summer meetings. It’s peaceful and secure in a building to the rear beyond the inner courtyard.




I’m now ordering lots of furniture and equipment. Hopefully we’ll have it mostly set up before the Maemo summit on the 19th/20th September so we can proudly show it to our friends. I’m even thinking of having a little GNOME/Maemo party there before we have moved in properly.

I hope that Berlin, and this amazing part of Berlin, and this wonderful office will help to attract new employees, maybe from outside of Germany.