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.

cluttermm and playing with clutter-box2d

cluttermm

There are now C++ bindings for the various clutter-0.8 libraries. That’s cluttermm-0.8, clutter-gtkmm-0.8, and clutter-cairomm-0.8. The tarball versions are 0.7.x because they are not ABI-stable yet. Armin Burgmeier did most of the work for Openismus to update cluttermm for clutter-0.8 and make it mostly complete.

I’d still like to find the time to do a C++ version of my Clutter tutorial.

clutter-box2d

I really wanted to look at clutter-box2d. It’s the clutter-with-simple-2D-physics thing created by Øyvind KolÃ¥s. His Moblin Playground Clutter prototype (watch the screencast) shows how it might be used. For instance, it makes it easier to implement the spinning circular menus you see at the left and right, and to implement the photo “table”. Since I wrote the clutter tutorial, I’ve thought we need abstractions such as this.

So I wrapped it as clutter-box2dmm and made C++ versions of its examples to get familiar with it.

clutter-box2d provides a ClutterBox2D (or Clutter::Box2D::Box2D in C++) container actor, which has child properties for its child actors. For instance, you can say whether the actor should be static (not moving) or dynamic (moving and colliding according to some simple physics), and you can say whether the actor should be manipulatable by pushing it around with the mouse. You can also specify its velocity. These are explicit methods on the Box2D class in the C++ binding.

You can then start the simulation on the ClutterBox2D. By default there is normal gravity (a bug, I think), which makes examples fun. The examples create a static box around the edges of the ClutterStage so the actors don’t fall out of it.

You can also specify some joints to connect actors in certain ways, such as a distance joint to put an invisible rod between them, or a revolute joint, as used to link the sections in the chain example. The joints are a bit difficult to understand.

This is all useful apart from some minor bugs that seem fixable, maybe together with the Box2D project that clutter-box2d uses. (Can’t stop damping and Can’t stop rotation.) It would be even more useful if applications could respond to collisions between objects and objects arriving at locations, which is apparently also doable.

However, I think clutter-box2d provides only some of the abstractions that I’d like. I particularly still miss the ability to simply define a rail and put an actor on it so its motion is restricted to that path. The actor would then be moved programmatically (maybe just by specifying an end point to reach) or by the user. clutter-box2d could do that by defining a rail and some runners, but it’s not a high level concept, and it’s probably not efficient.

I’d also like the idea of actors falling into locations as you move them, like those ball bearing maze games, and maybe it would be useful to have some ability to connect actors by elastic, and to let them bounce and compress.

Finding an office in Berlin

I’d like to open an Openismus office in Berlin in the next couple of months, for about three of our people. I don’t have much idea where office rental is advertised in Berlin. What’s the equivalent of the Süddeutschezeitung’s small ads there?

I’d love us to have something in Kreuzberg, near Schlesiches-Tor, maybe by the river there, but it looks like Prenzlauerberg will be more convenient for Mathias to get to. I’d like to avoid being in one of the anonymous office buildings in the centre of town. It’s much nicer to have something with character in a lively residential area like Kreuzberg or Prenzlauerberg which is still close to everything by public transport.

D-Bus in jhbuild: Confusion and hacks

Jhbuild seems to have a general problem with D-Bus. This has become obvious now that GConf is using D-Bus instead of ORBit (see these gconf-list messages: 1, 2).

To make GConf work in jhbuild, you need to do this in each jhbuild shell:

dbus-launch --exit-with-session bash

Then there’s the problem of Avahi. To make Avahi work in jhbuild, you need to do this in each jhbuild shell:

export DBUS_SYSTEM_BUS_ADDRESS=unix:path=/var/run/dbus/system_bus_socket

I wish that jhbuild has some general solution for these issues by default because I suspect that these are just hacks.

However, I imagine that it’s a difficult problem. For instance, you probably don’t want to kill the main (non-jhbuild) D-Bus (and D-Bus services) because that would break your desktop. But you probably want a different D-Bus (and D-Bus services) for jhbuild. The two prefixes don’t seem to work well together in D-Bus at the moment.

Liam at six and a half months

Liam is now six and a half months old. He’s not crawling yet, but in the last couple of weeks he has learned to get around quickly by doing a kind of commando elbow crawl. It lets him entertain himself without being carried around so much, but we must now move many things up from the floor level.

GooCanvas has come home

Over the last month or so I’ve been moving various GooCanvas stuff to GNOME’s infrastructure, on Damon’s behalf, away from Sourceforge.

As you can see on the live.gnome.org GooCanvas page, it’s now in svn.gnome.org, we have a gnome.org mailing list, we use bugzilla.gnome.org, and the documentation is on library.gnome.org.

Thanks to the various admins.

Back from Istanbul, headed to Helsinki

Last week was the GUADEC Conference in Istanbul. Overall it felt like one of the best GUADECs, just because I like Istanbul so much. It’s a proper city.

That’s despite the organization of the registration, accommodation, travel instructions (to the venue) being a near disaster (as they usually are). For people who made it to the venue, the University was a perfect location – efficient and clean and well equipped, with many helpful volunteers keeping things organized.

It was great to have all the Openismus employees together in one place for the first time, sharing apartments in a building near the Galata tower in that wonderful maze of narrow streets. It turns out these are great people to hang out with, particularly when you have a rooftop terrace looking over the city and a fridge full of beer on a summer night.

On Thursday morning I fly out to Helsinki with Sigi and baby Liam. I have a day of meetings on Friday, also with Jan Arne from Openismus, and then some touristing until Tuesday, including a night in Tallinn. I’m looking forward to seeing our Helsinki friends.

The Case of the Disappearing Emails

Over the last two years, a couple of people have had problems sending email to my openismus email address. They never received any failure message, but the mails never arrived. This was annoying and mysterious, but the problem was obviously with the senders’ systems so there wasn’t much I could do.

This week one more person had the problem. All three people were German, which made me suspicious. We discovered that all three people were using bytecamp‘s email servers. For instance, gnome-de.org email addresses are hosted at bytecamp (for free, I believe). Major clue.

openismus.com was hosted at bytecamp a couple of years ago, but I moved it away because I found their services limited and rather ad-hoc, though it seems to have improved since then. It turns out that they forgot to update their MX records, so they were just swallowing any email to openismus.com from their remaining customers. Some emails to bytecamp solved the problem, so bytecamp customers can now send email to us again.

I do hope that several German GNOME developers (with gnome-de.org email addresses, for instance) have been trying to email me about working for Openismus. If you didn’t get a reply before, please try again.

Openismus 2008 T-Shirts

The Openismus T-shirts for the GUADEC Istanbul conference are ready.

I wanted to do something different again, so I persuaded the people at Brandt to do a kind of Rolf Harris punk thing. It’s a little bit funky. I don’t think it will please everyone but it will be noticed. Each one is different.

PunkPunk

There was a shortage of T-shirts in these colours, so we did a small batch of classic retro-style dark green T-shirts too, with white banding and stripes with white flock-print. They are quite nice but less challenging.

Classic Retro
Classic Retro

Like last time, I chose to do a small number of expensive T-shirts rather than lots of cheap ones. Scarcity adds value.

Running and Turkish

After six months I started running again, trying to lose my 5Kg of paternity weight. I’m up to four bridges again, out of a usual eight.

This gives me the chance to listen to my Pimsleur Turkish course again while running. Hopefully I’ll be able to say very few things well, so I’ll be looking for opportunities to use my small collection of nouns and verbs at GUADEC in Istanbul next week.