So macht Arbeiten Spaß

Ich schreibe gerade für einen Kunden an einem tschechischen technischen Konzept. Das bedeutet unweigerlich, dass ich mich in umfangreichen Word-Dokumenten herumtreibe. Gestern Abend war ich dann so weit, dass ich eine letzte Rechtschreib-/Grammatik-Prüfung über das Dokument drüber laufen lassen wollte (ab und an schreib ich einfach unrecht). Bei der Gelegenheit habe ich mein aktuelles Office-Paket genauer kennen gelernt:

probleme_word_1.png
So schlimm ist das ja nicht, kann ja mal passieren – wenigstens haben die sich für ihre Unannehmlichkeiten entschuldigt.

Also die Prüfung noch mal von vorne starten. Ein paar Minuten später dann dieses Bild:

probleme_word_2.png

Ok, seh ich ein, mein Satzbau ist ab und zu etwas verschwurbelt. Vor allem in technischen Dokumenten kommen ja immer viele englische Wörter und Fachbegriffe vor, da kann so eine Grammatikprüfung schon mal auf die Nase fallen. Ich habe die Grammatikprüfung deswegen abgeschaltet.

Also noch mal von vorne – dieses mal nur mit der Rechtschreibprüfung. Aber seht selbst:

probleme_word_3.png

*WTF*? Word, was erlaube? Soll ich denen jetzt echt glauben, dass sich das Programm unerwartet beendet hat – und diesmal entschuldigen die sich nicht mal mehr für die Unannehmlichkeiten.

Nach ca. 2 Stunden und mehrfachen Neustarts (immer wieder abbrechen, speichern, neu starten) war die Rechtschreibprüfung letztendlich abgeschlossen. Die Grammatikprüfung hat sich bis zum Schluss konsequent verweigert. Nächste Woche steht mir das Ganze erneut bevor, dann wird die endgültige Fassung fertig – ich freu mich schon!

Subversion unter SUSE Linux 10, Apache2 und Plesk installieren

Ich habe heute beschlossen, einen Subversion-Server auf meinem VPS zu installieren, den ich bei Host Europe angemietet habe. Mein Server läuft unter SUSE Linux 10, Apache2 mit Plesk.

[Update 2008-06-01: Plesk Version ist 8.3]

Mein Ziel war, Subversion so zu installieren, dass es mit Plesk nicht ins Gehege kommt. Nach einiger Recherche habe ich auf verschiedenen Seiten und in Foren Informationen gefunden, die beschreiben, was ungefähr getan werden muss. Allerdings habe ich nirgends eine zusammenhängende Anleitung gefunden, in der die komplette Einrichtung beschrieben ist.

Bevor jetzt irgendjemand anfängt und das nachmacht, was ich hier beschreibe ein wichtiger Hinweis:

Ich habe keine Ahnung, ob das was ich hier beschreibe auf jedem System funktioniert. Bitte macht auf jeden Fall ein Backup, bevor Ihr anfangt und lest Euch im Zweifel die verlinkte Dokumentation durch. Prüft, ob die von mir verwendeten Pfade und Benutzer bei Euch Sinn geben.

Vor allem macht mich nicht dafür verantwortlich, sollte etwas schief gehen…

Ihr braucht auf jeden Fall die Root-Rechte für Euren Server. Soweit nicht anders beschrieben, werden alle folgenden Schritte als Benutzer root ausgeführt.

Ich gehe davon aus, dass Ihr auf Eurem lokalen Rechner schon einen Subversion-Client installiert habt.

Schritte, die auf dem VPS ausgeführt werden müssen, sind mit

remote:~#

gekennzeichnet. Schritte, die Ihr auf Eurem lokalen Rechner ausführt, sind mit

local:~#

gekennzeichnet.

Hier eine Liste der Schritte, die für die Installation notwendig sind:

Darüber hinaus enthält der Artikel noch folgende Informationen:

Los geht’s!
1. Subversion und Subversion-Server installieren
Als erstes müssen die Software-Pakete subversion und subversion-server installiert werden. Hierzu in ein Terminal wechseln und als root-Benutzer folgendes Kommando absetzen:

remote:~# rug install subversion subversion-server

Falls Subversion schon installiert sein sollte, kommt folgende Fehlermeldung:

ERROR: 'subversion' is not available, or is fully up-to-date.

Ihr könnt prüfen, ob Subversion installiert ist, in dem Ihr folgendes Kommando abschickt:

remote:~# rug info subversion subversion-server

In der Ausgabe gibt es für jedes der beiden Pakete einen Abschnitt. In beiden Abschnitten müssen die Texte Installed: Yes und Status: up-to-date vorkommen.

Falls auf Eurem Server Subversion schon installiert war, kann das natürlich bedeuten, dass die im Folgenden beschriebenen Schritte eventuell nicht mehr funktionieren.

2. Subversion-Repository anlegen

Nachdem uns nun die Software zur Verfügung steht, können wir weiter machen. Damit wir unseren Subversion-Server testen können, brauchen wir ein Repository. Als Speicherort für das Repository habe ich mir /srv/svn/ ausgesucht. Das Repository habe ich einfach mal repos genannt.

Das Anlegen des Repositories erfolgt ebenfalls im Terminal:

remote:~# svnadmin create /srv/svn/repos

Damit der Apache das Repository lesen und beschreiben kann, müssen wir im die Rechte dazu geben:

remote:~# chown -R wwwrun:www /srv/svn/repos

3. Den Subversion-Server konfigurieren

Ich gehe im Folgenden davon aus, dass Ihr auf Eurem VPS eine Domain (im Beispiel example.com) liegen habt, über die der Zugriff auf Subversion erfolgen soll. Für den Zugriff auf die Repositories möchte ich die URL http://example.com/svn/repos nutzen.

Wechselt in das Verzeichnis, in dem die Konfigurationsdateien für Eure Domain liegen:

remote:~# cd /srv/www/vhost/example.com/conf

In diesem Verzeichnis müsst Ihr die Datei vhost.conf bearbeiten. Falls die Datei noch nicht existiert, könnt Ihr sie einfach anlegen.

In diese Datei müsst Ihr folgende Zeilen kopieren (falls Ihr auf 64bit-Systemen lauft, müsst Ihr statt /usr/lib den Pfad /usr/lib64 nehmen):

LoadModule dav_module /usr/lib/apache2-prefork/mod_dav.so
LoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn.so

<Location /svn>
 DAV svn
 SVNParentPath /srv/svn

 AuthType Basic
 AuthName "Authorization Realm"
 AuthUserFile /srv/svn/user_access/repos_passwdfile
 Require valid-user
</Location>

Damit die Konfiguration aus der vhost-Datei auch aktiv wird, muss die Konfiguration für den Webserver neu geschrieben und der Webserver durchgestartet werden. Dies wird mit folgendem Kommando durchgeführt:

remote:~# /usr/local/psa/admin/sbin/websrvmng −−reconfigure-vhost −−vhost-name=example.com −−restart

[Update 2008-03-05: Sollte später beim Aufruf der Repository-URL ein 404 auftreten, versucht es mal mit websrvmng -a -v und danach noch mal den reconfigure. Ich habe es nicht getestet, der Tipp stammt aus dem Kommentar von Micha (siehe unten)]

4. Benutzer für das Repository anlegen
Damit nicht jeder auf unser Repository zugreifen kann, habe ich einen Passwortschutz auf den Server gelegt. Die Benutzer und ihre Passworte werden in der Datei

/srv/svn/user_access/repos_passwdfile

gesucht. Um den ersten Benutzer test anzulegen verwendet Ihr folgenden Befehl:

remote:~# htpasswd2 -c /srv/svn/user_access/repos_passwdfile test

Ihr werdet nun nach dem Kennwort gefragt, das Ihr für den Benutzer test verwenden wollt. Das Kennwort müsst Ihr danach noch einmal bestätigen. Beim Anlegen weiterer Benutzer müsst Ihr den Schalter -c weglassen:

remote:~# htpasswd2 /srv/svn/user_access/repos_passwdfile noch_n_test

5. Der erste Zugriff auf den Server

Jetzt solltet Ihr schon in der Lage sein, auf Euer – noch leeres – Repository zuzugreifen. Ruft im Browser folgende URL auf:

http://example.com/svn/repos

Ihr werdet nach einem Benutzer und einem Kennwort gefragt. Hier gebt Ihr test und Euer Passwort an.

Wenn Ihr alles richtig gemacht habt, müsstet Ihr Euer leeres Repository sehen.

6. Ein Projekt importieren
Wir machen ein kleines Test-Projekt, das wir in das Repository legen wollen. Dazu baut Ihr Euch auf Eurem lokalen Rechner folgenden Verzeichnissbaum auf (dies müsst Ihr nun nicht mehr als root machen):

./test/branches/
./test/tags/
./test/trunk/
./test/trunk/README

In die Datei README könnt Ihr irgendetwas x-beliebiges reinschreiben.

Importiert das Test-Projekt von Eurem lokalen Rechner in das Repository:

local:~# svn import test http://example.com/svn/repos/test

Wenn Ihr nun erneut über den Browser auf Euren Server schaut, seht Ihr Euer Test-Projekt mit den Unterverzeichnissen und der Datei README.

Ab jetzt könnt Ihr mit Eurem Repository spielen, testen, etc.

Ich möchte noch einmal mit einem frischen Repository starten
Wenn Ihr Euer Repository noch einmal frisch anlegen wollt, löscht einfach das Verzeichnis /srv/svn/repos samt Inhalt und führt danach den Schritt 2 noch einmal aus.

Unschönheiten
Ein kleines Problem hat die oben beschriebene Vorgehensweise: Da ich die LoadModule-Direktiven in die vhost-Datei geschrieben habe, lässt sich auf einem VPS nur genau ein Subversion-Server für genau eine Domain betreiben. Wenn ein zweites Repository auf einer weiteren Domain genutzt werden soll, würden die LoadModule-Direktiven Fehlermeldungen auslösen.

Es wäre eventuell auch möglich die LoadModule-Direktiven in die Datei /etc/apache2/sysconfig.d/loadmodule.conf zu legen – ich wollte aber keine direkten Veränderungen am Apachen vornehmen…

Weiterführende Dokumentation
Um tiefer in die Materie zu kommen, empfehle ich folgende Dokumente und Webseiten:

Subversion
http://subversion.tigris.org – die offizielle Homepage von Subversion
Version Control with Subversion – das Buch über Subversion
Plesk
Dokumentation zu Plesk – hier insbesondere der Administrator’s Guide

Gewonnen: Ein 7er im Supermarkt

Gestern im Supermarkt: Zweimal Backmischung, zweimal Brötchen zum Aufbacken, zweimal abgepackte Wurst. An der Kasse exakt 7,00 EUR gezahlt. Kassiererin schlägt vor Lotto zu spielen.

Mach so was mal absichtlich!

Ausgesperrt

War gestern auf dem Weg in die Stadt zum Kunden. Weihnachtsmarkt, Parkhaus voll. Parke mit chirurgischer Exaktheit in den untersten, hintersten, letzten Parkplatz. Es ist eng. Hektik (Kollege wartet). Ich steige aus dem Auto aus und schließe die Fahrertüre. Möchte vom Rücksitz mein Jackett und den Mantel holen. Die hintere, linke Tür lässt sich nicht öffnen – oops? Vordere Türe lässt sich auch nicht mehr öffnen – häh? Wo ist noch gleich der Autoschlüssel? Der steckt im Zündschloss…

Hat mich doch mein Auto einfach ausgesperrt! Ich dachte, dass so etwas bei modernen Fahrzeugen mit dem ganzen Funkschlüssel-, Zentralverriegelungskram gar nicht mehr passieren kann. Damals beim Kadett B war das an der Tagesordnung, dass ich den Schlüssel im Auto vergessen habe und die Türen zu waren. Da kannte ich aber auch die entsprechenden Kniffe, um die eigene Autotüre ohne Schlüssel zu öffnen. Tja, wieder was dazu gelernt, das geht offensichtlich auch bei den neuen Fahrzeugen noch…

Also bin ich ohne Jacke, ohne Geld, Papiere und ohne meine Unterlagen, die ich im Termin gebraucht hätte, zum Kunden. Sieht ziemlich doof aus, im Winter. Zum Glück war es warm. Das iPhone hatte ich in der Hemdtasche, so konnte ich einen Kollegen anrufen und ihn bitten, mir auf seinem Heimweg den Zweitschlüssel aus dem Büro vorbeizubringen.

Ich bin mit dem Zweitschlüssel wieder ohne Probleme in das Auto gekommen, das Phänomen der spontanen Selbstverschließung konnte ich trotz mehrerer Versuche nicht noch einmal reproduzieren.

Merke:

  • Immer zwei mal prüfen, ob man den Schlüssel in der Hand hat, bevor man die Autotüren schließt.
  • Immer einen Notschlüssel griffbereit haben.

Skype-Update für Leopard ist da

Skype hat in die V2.7 Beta die Unterstützung für Leopard eingebaut. Der Workaround, den ich vor einiger Zeit gepostet habe, ist nun nicht mehr notwendig. Die Version kann auf der Homepage von Skype heruntergeladen werden.

Alle, die den von mir beschriebenen Workaround angewendet haben, müssen vor der Installation der Beta die gleichen Schritte noch einmal machen – allerdings muss dieses Mal das Attribut „Geschützt“ entfernt werden.

Danach kann Skype in den Programme-Ordner gezogen werden.

Mit der aktuellen Version kommen auch 640×480-Pixel Videos auf den Mac. Genügend Leistungsreserven voraussgesetzt (Core 2 Duo), sollen so bis zu 25 Bilder pro Sekunde übertragen werden können.

Wie immer gilt beim Einsatz von Beta-Versionen: Nicht wundern, wenn etwas nicht so tut, wie es soll…