guitone 0.9 – “long time no see” release [updated]

I’ve released guitone-0.9 today. This is mainly a bugfix release which
contains only two new features:

  1. People can select the correct encoding for a file which is
    displayed in guitone’s diff dialog. Guitone is capable of setting
    and restoring a custom file attribute for diffed workspace files
    and automatically render the file with the correct encoding next
    time it is diffed.
  2. There is now a “Node information” dubbed info window which displays
    a couple of interesting information for selected workspace paths.

The usual download location for the new release is

http://guitone.thomaskeller.biz/g/download

Check the NEWS file there for a complete set of changes.

And before you ask – the Win32 setup file should be ready on Monday – I
don’t have access to a windows machine before… 😉

Update Unfortunately a small glitch made it into the 0.9 tarball release where qmake bailed out with a monotone error message “mtn: misuse: workspace required but not found” – this should be fixed now. Sorry for the inconvenience./Update

“Freiheit statt Angst” – Demonstration bei strahlendem Sonnenschein in Leipzig

Am heutigen Sonntag, den 28. September 2008, demonstrierten ab 15 Uhr etwa 500 Menschen gegen Vorratsdatenspeicherung und staatlichen Überwachungswahn sowie für Freiheit und Grundrechte in Leipzig. Ausrichter der Veranstaltung war die Ortsgruppe Leipzig des Arbeitskreises Vorratsdatenspeicherung.

Bei bestem Wetter brach die Menge mit zahlreichen Transparenten und Schildern ausgestattet etwas verspätet gegen 15:15 am Augustusplatz (Gewandhausseite) auf und folgte der Route über die Goethestraße, dem Brühl, der Reichsstraße und dem Neumarkt, der Petersstraße und der Hugo-Licht-Straße, um schließlich etwas später als erwartet gegen 16:20 auf dem Burgplatz anzukommen.

Während der Demostration konnte viel Material zum Thema Vorratsdatenspeicherung und anderer staatlicher Überwachungsmaßnahmen unter das Volk gebracht werden. Unser Team informierte daneben auch über die Berlin-Demo und dem weltweiten Aktionstag am 11. Oktober viele Passanten mittels der offiziellen Flyer (kostenlos im FoeBuD-Shop bestellbar). Insbesondere die zahlreichen Besucher der Leipziger Markttage, die am Samstag vorher eröffnet wurden, konnten während der Aktion direkt angesprochen werden.

Neben lautstarken Protesten war das Engagement des Pianisten Oliver Niemzig während der Demo eine besondere Bereicherung. Oliver machte vor und während der Demonstration auf seinem Keyboard vom Demowagen aus Stimmung und begleitete ebenfalls die Gesangseinlage am Ende der Demonstration, als mehrere Hundert Menschen auf dem Burgplatz zu “Die Gedanken sind frei” anstimmten.

Insgesamt eine rundum gelungene Veranstaltung, auch wenn die Teilnehmerzahlen etwas unter den Erwartungen (oder sollte ich Hoffnungen sagen?) der Veranstalter zurückblieben. Einige bildliche Impressionen wurden freundlicherweise bereits von Michael im Internet zur Verfügung gestellt.

If you’re setting up exim from scratch…

…and you’re a bloody novice like me, you’ll probably stumble upon Marc Merlin’s “Very detailled and featureful configuration example”. If you use that one and you wonder why on earth people can’t authenticate against your local SMTP via PAM, you seek hours and hours in different places, forums, IRC and whatnot, and all you get in /var/log/exim4/mainlog is a couple of these:

2008-09-26 22:35:15 svr_auth_login authenticator failed for <hostname> [<clientip>]:61588 I=[<serverip>]:25: 535 Incorrect authentication data (set_id=<login>)

make sure /etc/shadow is actually readable by Debian-exim, the exim4 user, f.e. by adding him to the shadow group… D’oh!

Don’t ask me how this worked in the original debian configuration (which unfortunately did not work for me in a couple of other places, otherwise I’d have stuck to it) – from what I’ve seen I believe it somehow used the courier installed on the same machine to do the authentification.

Kudos to this page which made me find the problem.

Less than three weeks left: Freedom Not Fear 2008

Only 20 days are left until the biggest, globally concerted action day for freedom and against angst, terror and surveillance takes place. So lets see what we have right now:

  • Protest Marches: Berlin (Germany), Paris (France), Stockholm (Sweden), London (UK), Sofia (Bulgaria), Luxembourg (Luxembourg)
  • Parties: Kopenhagen (Denmark), Berlin (Germany), Stockholm (Sweden), Prag (Czech Republic), Washington, DC (USA)
  • Street Events: Zurich (Switzerland)
  • Workshops / Conferences: Rome (Italy), Washington, DC (USA)
  • Street Carnival: Prag (Czech Republic)
  • Full Program (street protest, speeches, music, arts, privacy market) : Den Haag (Belgium)

This list is already very promising. I’m sure a couple of currently planned, but unannounced activities will follow, since more contacts to civil rights activists in South America (Argentinia, Ecuador and Brasil) and Asia (South Korea) have just been established.

This is overall an amazing development if you think about it. What started in 2006 with a few hundred demonstrants in Bielefeld and Berlin, found its intermediate highlight in September 2007 when more than 15.000 people went on the streets of Berlin again, has now created a huge charisma and serves as an example for activists around the world. I’m very sure, the upcoming October 11th will mark yet another milestone.

Colin J. Bennett, Professor at the Department of Political Science at the University of Victoria, British Columbia, also notes the achievements of our working group in his new book “The Privacy Advocates – Resisting the Spread of Surveillance”:

“In Germany, there have been high levels of activism against new laws mandating the retention of communications data by telecommunications companies and Internet service providers, including a rally in Berlin in September 2007 in which fifteen thousand people participated.”

Colin spoke with many fellow activists for his book, amongst them Ralf Bendrath, which recently told us a nice anecdote on our mailing list:

[…]Everytime I spoke to him in the last couple of months, his reaction was like: “Can’t you guys just pause your activities in Germany for a moment? You just submmitted the biggest constitutional court case in German history, which means I have to re-write this chapter of my book again!”

It may be hard sometimes, but I don’t think we’re here for slowing down the pace, are we?

$_POST empty?!

So I was about to SSL-secure my new webmail setup, created a new cert on CAcert, installed it, configured my vhost accordingly, went to the webmail login page and… boom. Login was not possible. No error message, no log message, nothing.

What happened?

To make a long story short, the PHP superglobal $_POST which stores data from POST requests was completly empty, though a valid POST request has been triggered. Not even $HTTP_RAW_POST_DATA was set and a hint I found on the net about a not set content-type didn’t help either.

So I went back to my vhost configuration again, where I configured a simple redirect for the *:80 vhost to the *:443 vhost. I copied over my original configuration (PHP FCGI) from the SSL one over to the non-ssl one to check if the problem also persists on non-SSL connections. And apparently it did not! Weird enough, now it even worked when doing the request over SSL…! Even weirder was, as soon as I commented out certain (uneccessary) options like ErrorLog from the SSL one, it broke again…

Something must have been messed with my FastCGI php processes – since I only did a reload after each configuration change before, I decided to make a hard apache restart – and voila! The problem was gone completly!

Hrm… this reminds me that there was this one operating system which could also be fixed by a restart. If I could only remember its name…

New server setup

I finally got sick of my SuSE 9.3 V-Server when a good friend of mine pointed me to this really fancy and sexy IMAP web frontend called RoundCube last week. Written entirely in PHP 5 there was no real chance that I could get this easily working on my oldish PHP 4.3 installation without recompiling everything. I wanted to upgrade to some Ubuntu LTS server in short to middleterm anyways because I got sick of Plesk as well, and while I had these upgrade thoughts now for a while, the price tag for a temporary setup to make a clean transition was just too high: It would have cost me at least 65 Euro to get a throw-away V-Server for about three months – whereas two weeks would have been enough.

So, being a little kid with these things sometimes in terms of being not able to wait for stuff to happen, I did this one thing what one really should not do at all: Touching a running system.

I backed up all important stuff to a special directory inside the virtual machine and told the automatic installer procedure to start installing Ubuntu 8.04 LTS. After approximately two hours my working setup was gone. No emailing, no webserver, nothing.

So I started with a clean ubuntu server instance from scratch yesterday evening and it took me the whole last night to get some things working. While the mail setup is still a beast (need to read myself into exim and try out a couple of tutorials), I’m already quite proud of my Apache / FastCGI PHP setup. I copied a lot of ideas from the www setup at work where we have implemented separated, secured V-Host users, suexec-protected php wrappers and more.
Tonight I added another little puzzle piece into the mix: SFTP/SCP access for individual users to their virtual hosts.

Again, the Ubuntu community was very helpful – I found a HOWTO for getting an sftp server up and running in a jailed environment. There was actually very little I had to change so it fitted my use case – instead of using /home/chroot as jail, I put the jail into /var/www/vhostjail and all websites / vhosts which should get file transfer access below that directory. The biggest plus with this setup – beside the security point (people can only sftp or scp to the jail and cannot break anything on the rest of the system) – is now that the user who uploads files and the webuser who executes the request (i.e. the Apache user) is one and the same. No need to make files world-readable or even -writable when setting up a web application which has to read or write data. No need to change the owner or the access of uploaded files because the webuser could otherwise not read, write or execute them.

Wow. I like that setup.

Now, if only exim would so easy to understand and master…

Hacking on the Train back Home

I’ve been in Hamburg today with two other colleques to show off a milestone of our current project at work. Since the customer was quite satisfied, I was in the mood and finished a short hack for the next guitone release: A node info panel. Here is the obligatory screenshot:

The panel shows a particular new monotone feature which just popped up in 0.41, but was implemented months ago on the Summit: Information in which revision a particular file or directory was created (“Added in”). People can click this and go straight to the revision selector in which they can retrieve more information about the revision, compare it with others and so on.

The panel probably needs some more polishing (i.e. I don’t know if the icons render so pretty in 64x64px on Windows and Linux as well, or if I have to downscale them to 32×32 there), but it should basically work.

I’m yet undecided if I should do another point release for guitone. Not much has changed since then, a few minor bugs have been fixed and preliminary encoding support has been added for the file diff dialog. My plan was to add support for the automate netsync commands in 0.9, but since they haven’t yet landed on mainline, it makes no sense to implement support for them on guitone’s side. (Thats the drawback if you have to implement stuff on monotone’s side yourself before you can actually continue with your main goal.)

But since I just got a note from Ulf Ochsenfahrt today that he built Ubuntu 8.04 debs of guitone I’m now egged enough to do finally finish the missing tests for the nvm.automate-netsync branch and get this hopefully implemented later on in guitone as well.

We’re git – Resistance is Futile

I just read today that Trolltec^WQt Software (a Nokia Company TM, blabla) plans to move their internal source control from perforce to git, effectively from October 1st (read here and especially here). Now I’m not crying a tear for perforce here, but rather worry about the other “left” competitors of git, amongst them mercurial, darcs and monotone.

There is an almost regular attempt of different people to persuage certain projects to jump the ship from monotone to git over the last couple of months. Somebody now even writes a to make the process even easier to get away from monotone… This makes me really think. Are we really so bad? Or is git just that good?

Git draws a lot attention off the “others”. While this is good for distributed version control in general, its bad for the communities around the particular projects. People like me who’re still attached to one of those systems wonder if the work they’re doing is still honored somehow, if it will attract “fresh blood” anyhow – new people who carry the ideas and development further. Or if all these people are just absorbed by… you know…

git – resistance is futile.

I don’t know enough of git to measure exactly in which areas its better or worse than monotone. Actually, I’m not even interested in that. I’m biased in the way that I like to stick with the tool I love. Monotone provides accuracy and data integrity above all. It tracks renames perfectly. Its simple, yet efficient cert functionality allows many custom use cases. There are more than three dozen hooks which let you customize the behaviour of monotone. The documentation and test coverage is great and the community friendly and very helpful.

Again, do I care how this compares to git? No, absolutely not.

Still, I’m not biased enough to convince other people to use monotone. I guess most people from the monotone community won’t do that. Not because we think we have a bad product, but because we have this liberal thinking that diversity is good and that people will find us themselves if they’re fed up with their old version control system. The problem is that people tend to be more fed up with cvs or subversion, than with git or mercurial to actually find us…

Of course a software project lives and dies with the people around it. When Graydon (the original author of monotone) announced his official retirement earlier this year, I wrote a message entitled “The future of monotone” to monotone-devel, which broke loose a huge thread afterwards. So while my initial fears that not many people were interested anymore in the project vanished a bit due to the overwhelming amount of answers there and also because of the upcoming European Monotone Summit, where quite a bit new work started, this feeling slightly comes back when I look at the actual results of the past months after the summit. The last release (0.40) lies back more than four months and while a couple of small things happened in the meantime, almost nothing improved in the important areas like networking and security. But of course its bad to just point the finger at other people, in the end I have not done anything in the core areas either. Maybe because these things are not important enough for me, maybe because I think monotone works nicely as is, and maybe because I’m not smart enough to create the needed machinery f.e. to enable partial pull (you know, one of this “killer features” people of big projects ask constantly…). Of course, the time factor is also good for an excuse.

So, should we all just move to git and forget everything else? No, probably not. But I’d certainly look quite close on the requirements for a new project’s revision control system. Maybe git is what you look for, maybe mercurial, and maybe its monotone.

Maybe you’ll just learn to love monotone once you tried it out just like I did and maybe you don’t want to see anything else afterwards… the monotone community, me included, would certainly give you a warm welcome then – thats for sure!

Neuer Termin: Demo am 28. September in Leipzig

Die Mobilisierungsdemo “Freiheit statt Angst – Leipzig 2008” wird nun, anders als urprünglich geplant, am Sonntag, den 28. September 2008 um 15 Uhr vom Augustusplatz, Gewandhausseite starten. Die Terminverschiebung um einen Tag hatten wir in dieser Woche beschlossen, da am 27. September durch verschiedene städtische Veranstaltungen und Ereignisse keine für uns vertretbare Route mit dem Ordnungs- bzw. Marktamt der Stadt Leipzig zu organisieren war.

Der komplette Streckenverlauf sieht nun so aus:


Größere Kartenansicht

Unsere Ortsgruppe führt im September an den Wochenenden vor der Demonstration weiterhin zwei Infostände durch.

Der erste Infostand findet am 13. September 2008 im Rahmen der Veranstaltung “Rock am Kreuz on Tour” im Lene-Voigt-Park in Leipzig / Reudnitz ab ca. 14 Uhr statt. Als besondere Attraktion versuchen wir hier einige Modell-Quadrocopter zu zeigen, die freundlicherweise von befreundeten Hackern des Sublab zur Verfügung gestellt werden.

Der zweite Infostand ist am 20. September in der Leipziger Innenstadt und wird wieder am Nikolaikirchhof in der Nähe des Brunnens stattfinden, diesmal in der Zeit zwischen 13 und 18 Uhr.

Wir würden uns freuen, zu den Infoständen Kontakt zu weiteren interessierten Aktiven zu bekommen, die Lust haben, uns bei den Aktionen zu unterstützen oder auch einfach nur Werbung zu machen. Natürlich könnt ihr auch jederzeit bei einem unserer regelmäßigen Treffen vorbeischauen – diese finden nun jeden Dienstag ab 20 Uhr im Sublab (Anfahrt) statt.