Tag Archives: Openismus

Self-hosting Glom

Glom 1.3.5 has experimental support for self-hosting of its databases, so you should never again need to configure PosgreSQL.

It does this by starting its own PostgreSQL instance, supplying its own PostgreSQL configuration and data files, and connecting to it. Those files are stored in one directory, though I’d like to improve that directory structure. This vastly improves the user experience, so I expect this to bring a lot more users once I’ve shaken out the new bugs.

This should satisfy most people who were demanding support for SQLite instead of PostgreSQL. Unlike SQLite, this still allows you to share your database across the network with multiple users. Support for non-PostgreSQL external database servers is still possible, but that work is really not my priority.

I really do need to combine some of the dialogs. At the moment you see several dialogs, one after the other, to save a new file, choose a database name (and choose self-hosting or external hosting), then to connect or provide initial connection details.

glom_new_database_with_self_hosting

Got him!

Extra work has been taking up the spare capacity, so another slot at Openismus GmbH opened up. Employee number 4 is Armin Burgmeier, developer of the much-loved Gobby collaborative editor. He’s working part-time.

He’ll start with some C++ wrapping work, using gtkmm’s gmmproc to generate C++ bindings for an existing open-source GObject-based C API, for a client in Austria. Surprisingly, there’s a lot of demand for this, but I guess it makes sense – It’s not particularly difficult, but it’s quicker when you know how, and commercial projects cannot wait a year until someone else gets around to it. It also takes some expertise to know when a C++ API looks right, and what kind of bugs to expect.

(This one is not C++ bindings for GStreamer. I’d love us to be paid to do that work.)

Additionally, this means that Openismus is ready to do paid work on Gobby if you need it.

Another part-time employee slot might open up in the next few weeks, so I’d welcome emails from candidates with significant GTK+ and gtkmm experience. Python would be a plus.

Probably not running for the GNOME Foundation Board again

Since taking a high-level view of things again at the UDS, I am very tempted to run for the GNOME Board this year. Today is the last day for candidates to declare themselves. Apart from the general wish to help out, I’m mostly tempted because it’s a lot of fun and you get to chat with people you respect and hear about stuff you otherwise wouldn’t. They don’t seem like virtuous reasons though. And I’m concerned that I’d hit conflicts of interest because I view several of the Advisory Board companies as potential Openismus clients. So I probably won’t.

What I’m doing now

OK, so I can’t tell you much about what I’m doing, but I can tell you that I’m busy.

Tomorrow I fly to San Francisco to attend the Ubuntu Developer Summit, at the Googleplex for the week. This is unrelated to everything else that I’m doing, but should be fun.

Since the start of September I’ve been working on a small experimental project for an Openismus GmbH client. It’s secret but not currently part of any actual product or strategy for the client. It’s using the C-based GObject API, so I’m playing lots with GObjects properties, interfaces, vfuncs, inits and constructors, etc. This is full time for me until approximately early January 2007.

I’m also steering some work that Daniel and Johannes are doing for a client, which is mostly about creating documentation at the moment. That’s secret for now, though not for any particularly good reason, and will definitely be public and generally useful eventually, at a secret time in the future. They can’t say, so don’t ask.

I’m also doing bits and pieces and general support here and there for another Openismus GmbH client, and working on the repository analyzer for them.

I’ll likely have some work to do soon for yet another locally-based (more or less) client who have some long-term plans to use gktmm on embedded devices for a specialized market. They’ve already started and are doing well, but would like some advice and manpower.

In general, I’m busier than I’d like to be. I’d like to always have some excess capacity so that it’s easier to accept work for new customers, with the added avantage of being less stressed and thefore more productive. An extra full time employee would make that happen, but I’m not quite ready to do that yet, given the lack of guarantees of enough work in the longer term. Possibly I’m being too cautious.

HRB 164185 (Openismus GmbH)

Openismus GmbH now 100% officially exists. All the steps are complete. It’s done. I win. Wikipedia can tell you what a German GmbH is, so ignore my summary if you want accuracy.

This is the easiest form of company to set up in Germany (or an OHG if you are selling physical products). Anything else (such as a GbR) isn’t really a company (“Firma”) and doesn’t have limited liability like a U.K. Ltd company. It’s ridiculously difficult and expensive to set one up, compared to a U.K. Ltd company. On the other hand, you don’t need a GmbH (or GbR) to do business, and Germany makes it very easy to do freelance work without a company. In the U.K. you tend to need a Ltd company, though that’s maybe just so you can pay less tax.

In fact, a person with a GmbH pays more overall tax than an individual and a GmbH demands more (expensive) administration. Yet it’s that difficulty that gives a GmbH an air of respect. Every now and then Germans politicians discuss making it easier but then a bunch of them point out how awful that would be because some of them might fail. Hello? Jobs? Muppets.

Also, clients outside of Germany need to deal with something that’s recognizably a company without having to understand German law enough to know that you don’t need a company in Germany. Note that residents of Germany may set up a U.K. Ltd company instead, thanks to the EU, thus avoiding some of Germany’s beaurocracy, but that still looks suspicious to German clients, and isn’t common enough yet for the procedures to be well understood by German accountants. But I expect this to become accepted in future, leaving the GmbH as a provincial anachronism.

Alternatively, some EU-wide form of company will become more accepted. There’s already an SE company form, but it’s limited to companies with a minimum capital of 105,000 Euros. I’m still convinced that national governments of the EU will fight to the last to preserve their incompatible islands of tax complication. How else can they promise cash to their backers in the form of tax loopholes and allowances. The only EU-wide companies big enough to influence them are big enough to pay their accountants to deal with it.

Anyway, the process went like this.

  • Week 0: I tell the accountant that I want to form the GmbH. I’m going on holiday for three weeks, and I want everything ready by the time I get back. This includes
    • Creating a draft “Satzung” (agreement, contract) for the GmbH and sending it to me.
    • Arranging an appointment with the notary. He’s a guy who sits between you and the government, because some things are meant to be difficult. His purpose is to send you a bill for his time.
  • Week 4: Get back from holiday. Nothing has been done. Start again. My accountant is consistently unreliable, but now I’m dealing with someone new there, so there’s hope again. He gets the Satzung and the appointment with the Notar.
  • Week 5: Arrange an appointment with my bank to open the company bank account with the necessary 25,000 Euros starting capital, because the accountant says I need this before meeting the notary. But the person at the bank says that they can’t do this until I get the piece of paper from the notary. A telephone call establishes that the bank can have it its way and the notary won’t mind. Apparently Hypovereinsbank do things differently.
  • Meet the notary. His role is justified by the legal requirement for him to read your contracts aloud, such as the Satzung. He doesn’t ring a bell while doing this, but he really does sit there and read it to you, and you listen. Apparently this can take 3 hours for complex real estate deals. This costs me 418.18 Euros for half an hour of being read to. Good work if you can get it. In Romania they have other names for this, and the EU tries to stop it. But in Germany they send you a detailed bill for it.
    Update: I also received a bill from the Landesjustizkasse Bamberg for the registration and publication of the fact that it was registered, for 322.39 Euros. So that’s 740.57 Euros just for the beaurocracy, ignoring the cost of an accountant to navigate that beaurocracy for you.
  • Send the notary’s documents to the bank. They have a nice seal and piece of string in the light blue and white Bavarian colours.
  • Week 6: The bank has the documents it needs to open the “GmbH i.G” account. i.G. means in Gründung, or “being founded”. Then I am allowed to put the required 25,000 Euros into the account. That can hurt when you have zero need for capital, such as when starting a software company. Opinions differ, but I don’t think it’s something that you get to see again as an individual, because paying it back to yourself is punishable by 3 years of prison. You can’t take it as profit, because profit is what you have above the starting amount. You can use it to pay yourself a salary, but of course you’ll be paying tax on that again (you paid tax on it when you earned it in the first place as an individual), plus you pay the social security contribution on it twice (you and your company pay it), so I guess that’s about 10,000 Euros that you lose, if you never close your company, just because the starting capital requirement is so high. I believe the minimum starting capital for a U.K. Ltd company is 1 pound. A notable difference.
  • Week 7: Send the bank’s printout of the account balance to the notary.
  • Week 8: Receive the printout from the business registry (Handelsregistrar) showing that the business is really registered, with a number. Send this document to the bank so they can remove “i.G.” from the account name.
  • Profit.

Glom 1.1/1.2

Glom logoI’ve been working on a Glom 1.1/1.2 branch recently, trying to quickly add some features in time to release a stable version for the Ubuntu Edgy release. The Glom 1.1.6 announcement has a list of what’s new. My favourite new features are:

Add Related Table

This is a time-saver that lets you quickly add a table and a relationship that uses it. So, for instance, if you have

Album
Nebraska
Asbury Park
Closing Time

you can quickly add an ID field, and a related table, so you have:

Album Artist ID
Nebraska 1
Asbury Park 1
Closing Time 2

with

Artist ID Artist Name
1 Bruce Springsteen
2 Tom Waits

In future, I’d like it to take existing data from existing fields and put that into the related record, so that in one step we could get those two tables from this:

Album Artist Name
Nebraska Bruce Springsteen
Asbury Park Bruce Springsteen
Closing Time Tom Waits

Use of the pygda API

Via the records.connection object you can now use the whole pygda API (The libgda Python API) from your button scripts and calculated fields, so there is no limit to what you can do with the underlying database. Be careful with this great power. More details on the Glom API page.

This feature was easy to implement thanks to the wonderful pygobject_new() function from pygtk, which is a lot like gtkmm’s Glib::wrap().

New employee

Openismus now has its third (after me and Johannes Schmid) employee, also part time: reclusive Berlin genius Daniel Elstner. In October he’ll start doing some work with gtkmm for a client, and writing some documentation for a project that Johannes has been doing. His enormous brain will also be very useful for bouncing ideas off. He’ll be required to blog too.

Secure silent mail server

An Openismus client demanded that all email communication with them should be over TLS tunnelling, with the mail server being on-site, so my regular hosted mail accounts won’t do, and even a hosted server wouldn’t be enough. Frankly, I’d rather not have the trouble and expense of maintaining my own servers, but it’s a nice client so to please them I set up a mail server like so:

  • Buy a quiet (no fan) low-power PC. I chose an ichbinleise PC LL10. It’s not very pretty or powerful or small, but it’s enough for a mail server. Ichbinleise (MR Computertechnik), seem to use cases and parts from Silverstone.
    • The new AMD Geode-based PCs are cheaper and require much less power, but pre-built systems don’t seem to be properly on the market yet.
    • This list of mini PCs is interesting.
    • It’s not low-power and fanless, I think, but the A-Open Mini PC is pleasantly Mac Mini-like, though I suppose the new intel Mac Minis will support Linux distros some time soon.
  • Get a new DSL broadband login from Via, so I can have a static IP Address. The contrast between their web site (simple, what you need) and service (simple, quick) and that of T-Online/Deutsche-Telekom (insanely complex, obscure, beaurocratic, inflexible, expensive) is vast.
  • Get an extra domain name just for this email account. I’m not going to risk putting my regular email through this experimental system.
  • The domain registrar doesn’t let me enter IP addresses for the DNS name server, so I can’t set up my own DNS server that specifies which of the PCs on my network is the mail server, and of course I can’t create a ns.something.com without having a DNS server. This is probably normal – I wonder how this chicken and egg problem is normally solved. So, I used EasyDNS to get a DNS server, and told the domain registrar to use that name server. Then my DNS entries at EasyDNS specify my static IP address.
  • I set up port-forwarding rules on my router (a cheap wireless/DSL thing that I got from Deutsche Telekom), telling it to direct traffic on the POP and IMAP ports to the mail server PC.
  • Instead of using port forwarding, I suspect I could have a local DNS server (which would know about the IP addresses on my local subnet) in addition to the EasyDNS server (which can’t use my local IP addresses because they aren’t really assigned, being behind a NAT), but I’m not sure how that would work.
  • Now to install the mail server software:

  • I tried Ubuntu Breezy (I have one thousand CDs, so it’s easy to find one, and was too lazy to download Dapper), but installation failed half-way saying there was a problem with the CD drive.
  • Ubuntu Dapper installed perfectly.
  • Thanks to a reply to my previous blog about mail servers, I found a great page about installing an email server on Ubuntu. It explained what the point of the different parts is, and told me exactly what to do to install postfix and dovecot with support for IMAP and SMTP using TLS. There’s a scary series of commands that it tells me to type in, but if I have to do that then I’d rather not have to figure it out by myself.
  • I found it odd that the email account is defined by the linux shell account, with the same password, so I’d have to add a new shell account just to add a new email account. Those wiki documents mention something about virtual mail hosts, but they seem to be about serving mail for multiple domains. Maybe that’s also how you separate email accounts from shell accounts.