Category Archives: General

Openismus

As I mentioned a while ago, I wanted to have some kind of company name to put on my freelancing work, so that it could become known, and so that I could build it over the years. I finally thought of a name, though I’m not ready to found a full company yet. I have moved various articles from murrayc.com to the new website.

Openismus is not yet a proper company. In terms of German law, it is an Existenz, no different than how I worked before. If all goes well then it might become a Firma next year. Compared to the UK, it’s quite difficult to found a company in Germany, though it is far easier to work without a company.

I spent an insane amount of time creating that simple web site with CSS. I needed a couple of hacks to make it work on Mozilla, and a couple of even stranger ones on Windows. Every time I thought I had fixed it, I would try it on the other platform and find that either the position, height, or width of a box had gone loony. I am really starting to think that CSS positioning is a waste of time unless you want fixed positions. I don’t know if the problem is the CSS specification, but it’s obvious that no browsers seem capable of implementing the specification, and they are all broken in different ways.

Ignoring the awkwards

I was reading an article about London's mayor, Ken Livingston, in the Economist last week. It reminded me of the attitude that an open source maintainer must often have. Livingstone believed that people do not need to drive their cars in central London, and that a) the majority of people should not have to suffer just because a minority do not understand that, and b) that loony minority will pay for the luxury if it's so important to them. He knew that once you clear the roads of all that empty metal then you can improve public transport, and thus remove the need to drive in the first place. There was a lot of opposition to the congestion charge, but Livingston knew that he was right and did not believe that the loudest voices were the most representative. I visited London a few months ago and the streets were noticeably calmer, with just commercial vehicles to be seen. Ken Livingston just got re-elected.

Likewise, in GNOME, maintainers sometimes have to ignore people who think they are shouting on behalf of the majority, because the maintainers know that they do not, and because the maintainers have actually thought things through.

European elections/constitution

The election results were depressing but it's not surprising that people voted in the european elections according to their national issues. After all, it was the national parties that were offering themselves for election, and they didn't offer any substantial policies for Europe, or even communicate what their role as MEPs is. To have meaningful European elections, I think these things are necessary:

  • MEPs should campaign as members of European political parties, and those political parties should have Europe-wide manifestos. These political parties would then be able to tout their ability to counter the power of petty national politicans, to improve the lives of European citizens. National political parties could do the same. Checks and balances are good. Note: UK voters should be glad that the European electoral system allows 20% of them to vote for the UKIP, whereas the UK electoral system would not allow them a single seat in government.
  • A directly-elected European president could clearly embody the policies and activities of the European Union.
  • The laws against free trade in European communications/broadcasting must be lifted, so people can get non-National news sources. This would allow the creation of Europe-wide TV stations as well as access to the TV stations of other nations.
  • The new constitution should be celebrated for simplifying European laws and institutions, and therefore dealing with the main anti-EU complaints. It's still not a very good document, but European politicians should offer to improve it incrementally.
  • States should be allowed to leave. Most attempts to leave the EU would fail to get support in a referendum, and that would settle the issue for a while. States that do vote to leave should be allowed to suffer the consequences, and demonstrate the advantages of being in the EU.
  • There should be an official two-speed EU, so that states can have the amount of federalism that they want, without forcing anyone else to go as slow or as fast. The others can catch up when they are ready after the way has been shown. We already have something like this with Euro currency area.

The Wahlomat says that I lean towards the Greens, though I happen to think that genetically modified foods are rather nifty.

None of the parties' positions inspired me. I think they should be offering to improve the lives of individual Europeans, by giving them more freedom, and they should celebrate how they have already done that. Most national governments don't have the support of half of their populations. Many countries such as Britain have terrible problems that affect everyday quality of life, but seem incapable of fixing them regardless of who is in power. But Europe has given people the freedom to go where the grass is greener, either physically, or just to do business. Europe should improve access even more, and ask for a mandate to do it:

  • The tax system should be unified. Each country has insanely-complicated tax systems that even accountants don't understand. Doing business is therefore expensive and risky. Doing business across European borders becomes exponentially difficult. Even if we don't have exactly the same tax system everywhere, I see no reason why we can't have tax structure across Europe, just with separate percentages at the various levels, and a clear list of national exceptions if necessary. They could start with income tax, and fix the other taxes later.
  • There must be one official language across Europe. I don't mean that everyone should be forced to speak English, but every government's beaurocratic documents should be in both the local language(s) and English. Beaurocrats should be required to speak English as well as one of the other national languages. Europe should encourage bilingualism in schools and media (see free trade in broadcasting above).

I was particularly disgusted by the populist policies of the CSU (Bavarian CDU) in Germany – firstly that Turkey must never be in the EU (with no real justification, leaving us to assume that they simply don't like their race and creed), and that the EU constitution must state that the EU is christian. They did not make clear what they would do with those of us who are not christian, but it's clear that they don't want a diverse Europe. I'm surprised that these racial and religous policies are not actually illegal. Members of the same party have recently been saying that ethnically-german women should have more german children, while simultaneously fighting immigration that would fix the demographics a lot more quickly. And the same people often fight against the right of German citizens to have their own mosques, though I fail to see how that's different to banning synagogues. Meanwhile, in the UK, 1 in 20 people voted for the British nazis.

Internationalized date/time formats

Glom now interprets and displays dates and times according to the formats used in the user's locale. In C++ that requires the use of the time_put<&qt; and time_get<&qt; facets, which are not very pretty. Daniel Elstner did a great code-review of my locale stuff, so I learnt lots along the way. There is one small glitch – as far as I can tell, time_get<&qt; in gcc can not parse the time for any locale other than C. Here is a little time_get<&qt; test case if anybody would like to show me my error.

Soon I need to start a custom TreeModel so that the Data List view can show large amounts of rows from the database without copying insane amounts of data.

Glom

I'm still doing lots of hacking on Glom, which is now in GNOME's cvs, with a GNOME mailng list and bugzilla component too. It's amazing how people start translating your application automatically as soon as it appears in the GNOME cvs.

The UI is a bit more sensible now, with the database-design stuff being very secondary to editing the data in the tables, as it is in FileMaker. And I'm in the process of fixing the display and parsing of dates, times, and numbers so that they do the right thing in the current locale.

I'm still ranging all over the code, cleaning up leftovers from the various refactorings, but I thought of some significant tasks that someone could help with, without being disturbed by my ongoing changes:

  • Find out how to programatically adminster the Postgress users and their access rights, and create a UI dialog for this.
  • Find out whether Postgres can have fields whose values are the result of calculations, and add this feature to the Field-designer UI.
  • Allow table titles and field titles to be translated – meaning, the user could specify the title for locales other than the default one. Later, this might use the .po file format somehow.

Also, it would be nice if someone could tell me a SQL command to cast data from a text column to a numeric column, without throwing errors half-way through if one of the rows has a non-numeric character in that column, as to_number() seems to do.

CSS pain

I've been trying to learn CSS properly over the last few weeks, but I have come to the conclusion that it just can't do the simple things that web designers should want it to do. In particular it can't seem to be used for pages
whose elements resize and rearrange themselves automatically depending on the size of the text inside them. There are various problems that you meet when you try different ways to do this, but they all seem to lead to the same conclusion. I think that's why so many sites seem to have hard-coded fixed widths, which makes them useless on small devices, and marooned on big screens. And I think it's why almost all sites seem to at least hard-code the width of their sidebars (though you can do it in ems instead of pixels, which is not quite so bad).

For instance, in Problem A, the right-hand box is sometimes at the right-hand, and sometimes below, depending on the width of the window. It should be obvious where it should be and how wide it should be. On www.murrayc.com and others, this is fixed by hard-coded the size of the left-hand box, so that the right-hand box does not have to be floating, because it's floating that acts in this awkward way.

In Problem B I want the 2 inner boxes to be adjacent to each other inside the outer box. In the example, that kind of works, but the outer box has an obviously stupid height. The height of the outerbox is correct if I set it to "clear:left", but then the boxes inside will ignore their height percentages, so they will not be adjacent. You can partially fix that by hard-coding the widths instead of using percentages. Update: Andrew Taumoefolau showed me that you can fix this problem by adding a third, empty, inner div, with "clear: both;". That seems hacky, because it must be in the HTML rather than the CSS, but it works. Thanks Andrew.

Maybe these are browser bugs, but I doubt it. I fear that CSS just isn't that great because it wasn't properly put through the use-cases. Naturally, I'd like to be told where I'm going wrong.

Munich Blogs

I must try to hack planet so that it can get only certain topics/categories, so that people don't have to read this boring crap on munichblogs.com

Glom

I released another version of Glom – it's been over a year since the last one. I released the first version 3 years ago, and that was after lots of work. It's the third time that I've tried to devote significant time to it, and I think things are finally falling into place.

There's been some dead-ends along the way – such as wrapping GtkExtra for the GtkSheet widget and branching the awful MySQL++ API. I even found a comment in the TODO file about being ready to port to Inti if necessary.

Glom

I've been working lots on glom, my databases-for-the-rest-of-us application, and I'm starting to believe again that it's viable. I had a kind of epiphany – I found a suitable set of user goals to discard so that I could actually target one of the sets of user goals. So, glom will not be able to edit and redesign existing databases. It will only be able to edit and design databases that it created from the start. That means it can deal with a far simpler set of database field types. That makes the whole thing more usable anyway.

I've also realised that it's kind of stupid to make the UI for designing the database structure look like the UI for editing the data in the structure. I'm not sure what the best UI is, but it's clear that I would have been better off just cloning the FileMaker UI from the start. So I'll rework the UI after I've got some of the basic functionality implemented. The code is a mess too, but I think I see how to clean it up so that it's worthy of patches.

Radio Hass

The Bavarian government has just given a broadcast license to a dodgy christian fundamentalist radio station, Radio Horeb. By all accounts they are a nasty fundamentalist shower of bastards – dangerously intolerant of various races, religions, sexualities and life-styles. And the authorities knew this when they made the decision. Stoiber's Bavarian government has a bad record with this kind of thing – it's downright ungerman.

The christian "Fundis" got the license slot that would otherwise have been given to a Turkish station that's already broadcasting in Berlin. That could have added something to the city, and would have allowed more representation for a whole community who pay taxes and should get something for it.

I get to feel annoyed because I let the TV/Radio license bloke in, so I'm paying for this.