Back from Romania

So, I should finally get around to describing my trip to Romania. I returned two weeks ago, but I’ve been busy since then, and it takes ages to upload pictures on my crappy far-slower-than-advertised T-DSL line. It was an incredible three weeks, so this will be a long blog entry, even though there’s lots more that I’m not mentioning.

TimiÅŸoara / Temeschburg

We arrived first in the Banat (or the current Romanian part of it, in TimiÅŸ county), after driving though Hungary, crossing the border at Cenad, into a rich green landscape with an enormous sky and a series of people selling melons at the side of the road. In the Banat, the land is flat and the sky is both wider and higher than a regular sky.

IMG_1543 IMG_1528

Over the next few days we visited villages in the surrounding Banat, where my girlfriend’s family lived before emigrating in the late 80s, such as Bogarosch/Bulgãrus and Groß-Sankt-Peter/Sânpetru Mare. The current inhabitants welcomed us into their homes, without fear that we wanted them back. People here live from the land, growing their own food and keeping their own animals.

IMG_1568 IMG_1655

While there I started reading Richard Wagner‘s (not him) novel Habseligkeiten. He’s from Perjamosch/Periam, along the road. He covers the local history fairly well, from the point of view of the ethnic Germans, who were naively caught up in every political change that swept across them. That’s including

  • Austro-Hungarian rule before the first world war.
  • The first world war experienced at a distance, with some German men fighting far away and returning.
  • The second world war, with some German Romanians serving in the regular German army (by going to Germany), some in the SS (pretty much mandatory for Germans outside of Germany), and some in the Romanian army (which fought on the side of Germany until Romania switched sides in 1944, courageously but wisely as the Soviets started to win).
  • Transport of many Germans (mostly men, even those in the Romanian Army) to Russia in 1944 for five years of forced labour.
  • returning from Russia to Communist rule, with no private property, inefficiency, and corruption.
  • Then forced relocation of whole families to the barren Bărăgan plain in the 1950s.
  • Returning again five years later.
  • Followed by emigration to Germany during CeauÅŸescu‘s 1980s and, after the 1989 revolution, in the 1990s.

I’ve heard very similar stories from my Girlfriend’s parents and grandparents, who also mention time in Germany and in American prison camps, but the book wraps things up nicely. There’s lots of adventurous stories to be told. Like everyone, it avoids the holocaust.

TimiÅŸoara itself is part old-town and part crumbly soviet concrete. The old buildings have particular charm because they are falling apart.

IMG_1468 IMG_1426

While there, I met some of the Timisoara LUG people. Dan Damian (not pictured) had invited us, but couldn’t stay more than five minutes because he was very ill. I’m afraid I’ve already forgotten the names of everyone else, but I remember that the guy on the left was doing an anti-virus thing for Google Summer of Code, and I think he’s Török Edvin. It was interesting to speak to these guys about how they are making their way in modern Romania. I was also ill for the next four days. Maybe it was the water, or maybe Dan is to blame somehow.

IMG_1755

As I noticed later, TimiÅŸoara is entirely different to Bucharest or other parts of Romania that I saw. In Timisoara watermelons are sold from huge piles at the side of the roads in to the city and even on street corners in the city. People eat the watermelons in the street and spit out the seeds. Horse drawn carts share the roads with cars, often delivering the watermelons. Sometimes you’ll see a regular saloon car driving by, completely full up to the roof with watermelons. There are no watermelons in Bucharest as far as I can tell. It’s better where the watermelons are.

Bucharest (BucureÅŸti)

We drove from TimiÅŸoara to the capital, Bucharest, via Sibiu/Hermannstadt, on the new roads that the EU has built. The EU will be happy to know that the road is full of lorries delivering produce, but the two-lane roads are lethal.

Bucharest, is really not worth the visit except to get a more complete picture of Romania. There are a few impressive older buildings but it’s mostly large and concrete and choking in traffic. Ceacescu’s government palace is huge, but too silly to really impress. There’s a wonderful village museum, with old relocated wooden and stone buildings, but it’s nicer to see them for real outside of Bucharest.

IMGP0945 IMG_1774

Prices here are comparable to western European cities, but that doesn’t feel like value for money. Advertising has obviously taken hold, seemingly driven by a monotonous few companies selling advertising space on the sides of buildings and large video screens. Life must be strange for the people who live in Apartments whose windows are covered by 6-story-high posters. A few companies are noticeably trying to establish themselves in this new market: Orange, Coke, and Nescafe (as an upmarket brand, strangely), along with a few German food brands. There are several new shopping centers selling western products such as electronics. Credit is advertised heavily and I don’t think people are expected to buy things outright.

Hope for the future is obviously widespread, presumably due to expected EU membership, as you can tell from all the building work and the credit boom. But it seems to be only the first stage of capitalism. People are trying to make a fast buck, often at the expense of their customers instead of building long term reputations and relationships, and either competitive pressures are not being felt, or something is stopping competition from happening. The government does not seem to be fostering marketplaces or making consumers feel protected. The tourist will notice that when changing money (the exchange rates listed are generally only for amounts over 10,000 Euros) or paying extra to use his camera. The guy buying a car or washing machine on credit will notice that when he sees an extra 5% yearly interest payment for administration.

This lack of long term thought may also be responsible for how Romanians drive their cars. If not then there’s either a general failure to assess risk, or human life is considered worthless.

Oddly, government buildings are already flying the EU flag, as if Romania had already joined. That’ll look embarassing if they don’t meet the grade next year either. They probably will, but they don’t seem entirely ready for it. They also fly the NATO flag, which seems out of place on civilian institutions such as parliament or schools.

In Bucharest I met an old friend from Paderborn, Christian Schoppmeyer, who is now running the Bucharest office of Sagem Orga (formerly Orga), and some of his friends there. It’s great to see him doing well. Bucharest may be crappy, but it offers a lot more than Paderborn.

Carpathian Mountains

After visiting Sigişoara, we spent a week in the hills, in the village of Măgura, in the curve in the Carpathian mountains, near Zărneşti, near Braşov.

We stayed at Villa Hermanni run by Hermann and Katrina Kurmes, after it was recommended by Hans Gasser, a friend of a friend who had visited to do an article for the Sueddeutsche Zeitung on Romanian ecotourism. Hermann is an ethnic German from the neighbouring Vulkan village who returned to Romania after the 1989 revolution to do ecological tours of the area and its wildlife, as part of the Association for Eco Tourism in Romania.

The area, between the Bucegi and Paitra Craiului mountains, is beautiful and still inhabited by people who live from the land. There’s original forests with (unseen) brown bears and wolves still living in them.

However, poor locals are understandably selling their land for hotels and summer houses to be built, and it can’t be long before tarmac roads are built to service them, which will accelerate the destruction yet more. This isn’t allowed, because it’s officially a nature reserve, but the law is flexible in the face of corruption and beaurocracy, so it looks like this valley will be completely transformed in another couple of years. Visit now before it’s too late. We are tempted to go again in the winter for snow-shoe trecking.

A big reason for our visit was to see some of Romania’s brown bears. We only saw paw prints while walking in the hills, and in a nearby cave, but Katrina Kurmes took us to a nearby lookout hut where we could watch a bear arrive to eat food that was left for it. The bears are very shy of humans, but can lash out if surprised, and do tend to eat animals that have been left outside at night. Unlike Germany, Romanians continue to living fairly peacefully with them.

IMG_2004DSC_0148

There is an obvious problem with litter. People just drop plastic bottles and packaging on the ground, even in the most beautiful places. My brain isn’t wired like that. This seems to be part of the short-term thinking problem I mentioned above. Luckily, it’s not too late to fix this, but it needs government help to get the rubbish down to the towns.

By the way, the ÅŸ characters are like sh in English. The ă characters are a kind of “uh” sound. The final i in words is not really pronounced, unless it’s ii at the end. See Wikipedia‘s Romanian Alphabet page for more and more correct descriptions.

Automatically rotating images on Linux

Gallery doesn’t yet automatically rotate images using the EXIF orientation data that newer cameras save in the file, though it will soon. In the meantime, jhead can automatically rotate the images, like so:

jhead -autorot *.jpg

And I think that’s lossless. You can run it on already-uploaded Gallery images from the terminal.

By the way, it looks like GNOME’s Image Viewer will finally support automatic rotation soon.

Adobe Source Libraries (ASL): Adam and Eve

I finally read the introduction to Adobe’s ASL GUI system, and its Adam and Eve parts. Ralph Thomas has been using it to write his Mission Photo application, so it seems to work. It’s great to see the rationale documented publically, and I guess that Adobe will profit from the feedback. Design is so much easier when you can bounce ideas off someone. I notice that the overview document is dated December 2004, so I’m late with my feedback.

Eve seems to be a UI layout description format, much like Glade (including the use of widget identifiers that are looked up later, from code with libglade, or from Adam with ASL), but without specifying actual specific widget types, so it’s “button” instead of “GtkButton”. It’s nice that it uses generic widget names, which are later realised as actual GTK+, MacOS, or Windows UI parts. It’s annoying to me that it doesn’t use XML, which could make the structure more obvious.

The documentation makes a big deal of automatic layout, without calling it that, but that’s the only sane way that anyone does layout now anyway, so that alone is not enough to make this useful. But it’s understandable that this is an issue for them, because these guys built their code base with the awkward MacOS classic APIs, and then the crappy Win32 APIs, which demand fixed per-pixel layout and implementing your own event loop. I’ve been there. GTK+ does this for you.

Adam seems to define (declaratively) how the widgets behave. Adam files seems to be made up of sheets (maybe equivalent to a dialog, or maybe a user operation, I’m not sure), and cells (though that name is not mentioned explicitly in the syntax). Adam files specify the properties of a widget in terms of the properties of another widget, so that, for instance, a widget can be deactivated if another widget is unchecked. I guess it can do more than just simple boolean logic and mathematics, but this is where it feels like I’d need some real programming to get real things done.

But it’s a nice idea if it can work without getting in the way. We have grasped at similar things in GTK+, for instance by specifying that the keyboard mnemonic for one widget (a label) can activate another widget (an entry next to the label), plus our accessibility data that expresses higher-level relationships between the UI elements. But we haven’t generalized it. Paul Pogonyshev posted on the gtkmm list and on the libsigc++ list.recently about something like this, but I don’t think the result was useful enough, possibly due to the limitations of a statically-typed language. It would be nice to solve common problems more concisely.

Adam and eve introduce several new terms (model, command, cell, sheet, field) which leaves plenty of scope for confusion, particularly because these names seem quite arbitrary and they have several existing meanings. I think I’d use more explicit names, such as data-field, if it was my project.

As far as I understand, the system expects you to think of a UI (such as a dialog) as a way to generate a command, and ASL can represent a model of this command, though “model” is a confusing name for it. This command, produced by the view (UI) is then used to transform the document model (the data). That doesn’t sound very suitable for rich interaction, but obviously it works for Photoshop and Mission Photo. Possibly you can update your application state somehow in response to individual changes to UI widgets, to allow instant-apply.

Corrections are welcome.

Installing an email server on Ubuntu

I need to set up a TLS-capable email server (which I will access via IMAP), so that the messages are encrypted between my email server and the recipient/sender’s email server.

Initial investigations show that my pessimism was appropriate – I can’t find much clear information about how to do this. Ubuntu do a server release now, so I’d like to just use the stuff they recommend. how they recommend it, but there’s not much documentation about what they package, and I still have to deal with various things, and decide between them, including sendmail, postfix, dovecot, exim, etc, which translate for me to “yadda, yadda, yadda”. As far as I can tell, dovecot does IMAP, and postfix does SMTP, and they have to be set up separately and somehow told to use the same mailboxes and the same security settings.

I don’t do this stuff generally. Installing Apache is obscure enough for me, thanks. If there’s an nice explanation for the uninitated somewhere, and a detailed how-to, that would be nice.

Am I wrong to think that most email servers should have very similar setups, so some kind of wizard/installer could just give me what I probably want?

More Glom reviews

While I was on holiday, a couple of Glom reviews appeared:

Both reviews are generous and kind. They understand what I’m trying to offer with Glom while forgiving it for not yet being perfect. I agree with Xaprb’s review that there are still a few too many bugs in the 1.0 version so I think it’s still not the right time to work on big new features.

I’ve listed the Glom reviews on the glom.org site.

Romania? Ba da!

This evening we are off to Romania for three weeks, driving [1] from Munich through Hungary to TimiÅŸoara and staying there for a week or so. Apparently I’m doing a general GNOME talk at the local TimiÅŸoara LUG on Thursday, but I’ll need to borrow someone’s PC to actually make some slides, because I’ve been rushing to finish more important things before leaving.

Then we’ll spend a few days in Bucharest being Urban. Then a week or so in the country, hopefully in the Carpathian mountains, looking for bears, pristine wilderness, and ethnic types with hats.

I’ve learn a little Romanian over the last few weeks. Pimsleurs Romanian course only has 10 half-hour lessons, but it really helped to get the basics in to my head. Plus the Teach Yourself Romanian book and CDs, and Zsolt Czimbalmos’ Romanian audio (Creative Commons licensed). The Pimsleurs method is so effective that I am getting the Pimsleurs language-learning religion.

I’ll check email occasionally. If it’s urgent then you’ll find a way to contact me.

[1] Not my idea. Cars are a stupid waste of time and space. At least we’ll swap it for an authentic Dacia when we are there, built for Romanian roads.

Web 2.0 yadda yadda

What is it about Web 2.0 that means everyone’s got to have an opinion and most of those opinions are expressed at great waffly length with little obvious difference between them? And everyone’s got to let the caffeine convince them that they’ve just had a revolutionary get-on-the-speeding-train notion, while everyone else is thinking “Yeah, so, what’s new?”, or “Erm, it’s not that simple”. I can’t take it any more. No more Web 2.0 blog entries over a hundred words. Keep giving me the executive summaries, Luis. I’ll try not to follow the links.

Parsing .deb packages with Python?

Another ungoogleable question means it’s time to ask the Lazy Web again. Sometimes I wish that I could tell google what is the object and what is the subject.

Before I reinvent the wheel, does anybody know of a python module to unpack and parse debian packages, putting the information (such as the stuff in the control file) into a python object?

Openismus GmbH on the way

I finally instructed my accountant to set up Openismus GmbH which will probably take a few weeks. It feels slightly scary, but I want to give it a try. Got to build to grow.

I already have a first part-time employee – Johannes Schmid of Anjuta fame. I was very sad to reply to all the other people who answered my call for a mini-job, but maybe I can use some of them if I get enough work.

A GmbH is a German form of limited company, and is one of the few forms of company that is taken seriously. It’s not actually necessary in Germany, unlike the U.K. which demands that freelancers create one-man Ltd companies that employ them(selves). It’s also much more difficult and expensive than in the U.K. There’s an extra tax that you have to pay, plus additional administration. But it’s generally simpler when dealing with international companies, so I can consider it as marketing, and it will be better for employing people.

I should probably improve the web site too. Sooner or later I’ll have to accept that there’s no sane way to make attractive web sites without hacks. Yes, I mean round corners.