Tag Archives: Gnome

www.gnome.org

gtkmm 2.14 on MS Windows

Installer, documented

For a long time Cedric Gustin provided a popular gtkmm installer for Windows. But he hasn’t had time for that since gtkmm 2.10, so there was no gtkmm 2.12 installer for Windows.

I encouraged others in the community to take over this work, but I eventually asked Armin, one of our Openismus developers, to get it done, with advice from Cedric. He recently blogged about creating that gtkmm 2.14 windows installer. I also asked him to document exactly what it provides, what to distribute with your application, and how the installer was created. See the gtkmm on Windows page, and the Building gtkmm on Windows page.

The installer and the documentation have been through a few iterations of feedback from me and then from the mailing list, so please do tell us if it’s unclear or missing information, or missing something that you need.

Multiple compilers

It looks like we must provide a MS Visual Studio 2008 build as well as a MS Visual Studio 2005 build, so Armin is working on that. Although the compilers are compatible, developers will expect our DLL to link to the new  (parallel-installed) version of the MSVC++ runtime libraries, and accidentally linking to both runtime libraries in an application is probably no fun. If we are wrong about that then please do tell us, to save us some work.

I am also concerned that we may need to provide various builds for the various versions of gcc for the MinGW build. Or maybe we should just support the latest one. Unfortunately two users have even reported an incompatibility between g++ 3.4.2 and g++ 3.4.5 in MinGW – they had to upgrade the compiler to catch exceptions from gtkmm when using our DLLs. That shouldn’t be necessary.

For all these various versions, we need to invent DLL naming conventions. But I’d rather take someone else’s conventions. Is there any other C++ library that has an equivalent installer that doesn’t just force you to use one particular compiler? Qt seem to provide only the source code. That’s just enough, but it isn’t very convenient.

Development is so much easier on Linux.

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.

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.

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.