AntMe, Spass mit programmierbaren Ameisen

AntMe!Nachdem ich die Ameisen in meiner Wohnung mit ganz perfidem tragts-es-zu-euch-nach-Hause-und-vergiftet-eure-Nachkommen-Gift losgeworden bin, habe ich sehr viel sympathischere Zeitgenossen dieser Spezies getroffen: AntMe ist ein Programmierspiel, dass aus Microsofts Coding4Fun Initiative (nicht zu verwechseln mit dem Galileo Coding for Fun Buch. Das ist auch spassig, behandelt auch AntMe, aber zusätzlich noch viele Andere Dinge) hervorgegangen ist. Es hat einen eigenen Wikipedia Artikel und vorallem eine geniale Homepage.

Grundsätzlich geht es darum Ameisen zu implementieren die überleben, Äpfel und Zucker sammeln und unter Umständen auf Käfer und fremde Ameisen losgehen. Ein Markierungsmechanismus sorgt dafür, dass die Ameisen untereinander kommunizieren können. Fortgeschrittene Ameisenpapis und -mamis können spezialisierte Ameisen erstellen und RPG mässig Eigenschaften verbessern, wenn sie dafür andere verschlechtern.

Die Ameisen in Aktion

Die Ameisen können in C# oder in Visual Basic .net mit der notwendigen Intelligenz versehen werden. Bestimmte Methoden werden zu bestimmten Ereignissen aufgerufen; beispielsweise WirdMüde() (ja, mit „ü“ und deutsch) oder SiehtFeind(ByVal käfer As Käfer). Zur Steuerung steht fast der ganze .net Sprachumfang zur Verfügung, sowie Ameisenspezifische Hilfsmethoden wie etwa GeheZuBau() oder GreifeAn(käfer).

Quickstart

Auf der AntMe Homepage findet man verschiedene Versionen. Wir spielen hier mit der 1.5 Beta 2 (VB.net oder C#, je nach Gusto). Die Profiversion beinhaltet den gesamten Quellcode der Spielengine (!). Das ist so genial, dass es nochmals erwähnt werden darf: Die Profiversion beinhaltet den gesamten Quellcode der Spielengine. Will man sich nur mit den Ameisen beschäftigen, reicht die Einsteigerversion. Im Download enthalten ist ein gut dokumentiertes Ameisenskelett, bei dem sofort losgottgespielt werden kann.
Eine gute Doku über die Klassen und deren Methoden sowie ein Tutorial wird mitgeliefert. Zum Teil beziehen sich die Unterlagen noch auf Version 1.1, aber der Transfer zu 1.5 ist eigentlich kein Problem. Für Leute, die lieber kuckn statt lesen, gibt es gut gemachte Screencasts, die ebenfalls in die Thematik einführen.

Für eher haptisch veranlagte Menschen gibt es auch ein Buch: AntMe! – Programmieren und Spielen mit den Ameisen und Visual C#. Das kenne und besitze ich allerdings (noch) nicht.

Verfügt man noch über keine Programmierumgebung, so könn bei Microsoft gratis die Express Versionen verschiedener Sprachen downgeloaded werden. Für die 3D Visualisierung braucht man
noch DirectX. Mit der neusten Version (nicht mit der im Forum angegebenen) hat es wunderbar gefunzt.

Turniere

Ein Bisschen lebt das Ganze auch vom kompetitiven Element (um ehrlich zu sein, vielleicht ist ein Bisschen etwas untertrieben: ICH FRESS EUCH ALLE AUF!). In der Version 1.5 funktioniert das Importieren von anderen Ameisen leider nicht und es wird eine unbehandelte Ausnahme ausgespuckt:
Der Typ für Member AntMe.SpielKonfiguration.AntMe.Simulation, Version=1.5.0.0, Culture=neutral, PublicKeyToken=37d8e32ef3294969 wurde nicht aufgelöst.

Workaround für die VB-Version (C# ungetestet):
Weiterlesen

Office 2007 Wordateien (docx) unter (Debian) Linux mit OpenOffice öffnen

Voraussetzungen

Word 2007Office 2007 greift um sich! Immer öfters begegnet man den docx Dateien im OpenXML Format. Die vorgestellte Lösung erlaubt das Öffnen und Ansehen dieser Dateien in OpenOffice. Ob sie allerdings echt Layouttreu sind, habe ich nicht gecheckt. Damit es läuft sollte ein OpenOffice > 2.0 installiert sein → bei mir hats mit 2.2.1 gefunzt.

Vorgehen

Zum Glück wird dee Translator weiterentwickelt. Die entsprechenden Dateinamen müssen einfach angepasst werden. Der Downloadlink sollte generisch sein.

  1. Download des OpenOffice OpenXML Translator – RPM’s von Novell.
  2. Im Verzeichnis drin das RPM entpacken (Dateinamen bitte anpassen):
    rpm2cpio odf-converter-1.0.0-5.i586.rpm | cpio -iv --make-directories
  3. OpenOffice schliessen und die entsprechenden Erweiterungen ins richtige Verzeichnis kopieren:
    cp -r usr/lib/ooo-2.0/* /usr/lib/openoffice/
  4. Die Doku kopieren:
    cp -r usr/share/doc/packages/odf-converter /usr/share/doc/
  5. Mime-XML kopieren:
    cp usr/share/mime/packages/odf-converter.xml  /usr/share/mime/packages/
  6. Mime-Datenbank updaten:
    update-mime-database /usr/share/mime
  7. KDE3 Mime:
    cp opt/kde3/share/mimelnk/application/* /usr/share/mimelnk/application/
  8. Gnome Mime:
    cp opt/kde3/share/mimelnk/application/* /usr/share/mimelnk/application/
  9. Dann noch die Icons:
    cp -r opt/gnome/share/icons/* /usr/share/icons/
  10. Sich freuen!!!

Addition Mai 2008:

Zamzar macht das nun auch online! Ganz stark, und vorallem mit allen Formaten, also auch xlsx (Excel 2007)!

ClickHeat: Klick, zeig Dich, Du bist umzingelt!

Heatmaps

Spannende Methode zur Analyse des Benutzerverhaltens von Websites sind sogenannte Heatmaps. Sie speichern die Koordinaten aller Klicks auf eine Website und stellen sie mit „Hitzepunkten“ dar:
Beispiel Heatmap

Crazy Egg

CrazyEgg in ActionEine „kommerzielle“ Möglichkeit zum Erstellen solcher Heatmaps ist CrazyEgg. Die Basisvariante ist gratis und reicht eigentlich aus für kleine Websites. Viel Web 2.0-Ajax und eine einfache Bedienungsführung machen es zu einem angenehmen Tool. Es ist möglich verschiedene „Tests“ zu fahren mit unterschliedlichem Aufbau der Website und diese Durchgänge dann zu vergleichen.
CrazyEgg hat es voll im Griff die Klicks den richtigen Links zuzuordnen. Keine leichte Aufgabe wenn man bedenkt, dass jeder Besucher mit einer anderen Auflösung ankommt. Zur Auswertung stehen folgende Darstellungen zur Verfügung:

Overlay (Siehe Bild)
Zeigt die Attraktivität der Links in absoluten und relativen Zahlen
List
Eine Liste aller Links mit ihrer Popularität
HeatMap
Eine schöne Heatmap halt…
Confetti
Klicks anzeigen an Hand des Referrers (der Website von welcher die Besucher gekommen sind)

ClickHeat

ClickHeat ist eine freie Implementierung für Heatmaps. Sie kann auf dem eigenen Server betrieben werden und ist somit sehr geeignet für Kontrollfanatiker wie ich einer bin. Die Installation ist denkbar einfach:

  1. Downloaden der Applikation.
  2. Alles an einen Ort auf dem Server entpacken
  3. Im Browser dieses Verzeichnis aufrufen (Beispielsweise http://www.yoursite.com/clickheat/index.php)
  4. Alles korrekt einstellem
  5. Den Javascriptcode im Footer der Webseiten einbinden
  6. Abwarten, Tee trinken, Sackhüpfen und danach wieder das ClickHeat Verzeichnis aufrufen
  7. Sich freuen!

Einige Tips noch dazu:

  • Man kann und sollte die eigenen Klicks ausblenden (erster Menüpunkt im Hauptmenü).
  • Beim Generieren vom Javascript kann angegeben werden, wie die Linkdaten unterschieden werden:
    • Mit Keyword. Hier muss aber auf jeder Seite der Javascriptcode angepasst werden! Hben alle Seiten denselben Footer, werden wild alle Klicks gesammelt, auch wenn jede Seite anders aufgebaut ist.
    • Nach Titel oder Pfad: Damit kann schön nach einzelnen Seiten unterschieden werden.
  • Um zu checken, ob die Datensammlung funktioniert, die Seite mit dem Parameter ?debugclickheat aufrufen. Also beispielsweise http://www.yoursite.com/index.php?debugclickheat. Dies zeigt ein nettes Overlay mit vielen Informationen.
  • Unbedingt das Layout der Site konfigurieren (beim Icon Icon zur Layoutangabe), da er ansonsten die Klickpositionen ein Bisschen durcheinander bringt. Dieses Blog beispielsweise ist Fixed left and right menus, liquid content.

Resultate

Was habe ich für dieses Blog für Erkenntnisse gewonnen?

  1. Die Suche wird benutzt und hat somit ihren prominenten Platz oben rechts verdient.
  2. Es wird ziemlich oft auf das „lead-in“ Bild geklickt. Hmmm, was dies zu bedeuten hat muss ich mir noch überlegen. Was erwarten die Besucher wenn sie draufklicken?
  3. Es wird auch auf den kleinen Link skaldrom oberhalb der Beiträge geklickt. Ich habe den Link darum weg von der Homepage (was wohl eher verwirrend war) auf die Schreiberling-Seite umgebogen.
  4. Die Ads scheinen in einem guten Bereich mit vielen Clicks rundherum zu sein.

Weiteres

t-error (error terror?) hat auch über ClickHeat geschrieben. Inspirierend war auch wieder einmal der ProBlogger Beitrag.

Structorizer: Struktogramme unter Windows und Linux (Nachschlag)

Die Freuden des Bloggens

Blogging ist genial. Im Beitrag Struktogramme (Nassi Shneiderman) mit dem Computer zeichnen habe ich leider Structorizer nicht zum Laufen gebracht. Dem Autor zu schreiben traute ich mich nicht ganz, da ich sicher war, dass es nur an meiner eigenen, angebohrenen Blödheit gelegen hat. Vielleicht stimmt das auch, aber Bob Fisch hat höchtpersönlich einen Kommentar unter das Posting gesetzt, mit der Bitte ihm zu mailen. Das habe ich gemacht und innerhalb weniger Stunden hat er eine neue Version auf der Website publiziert. Genial, unglaublich, sowas erlebt man nicht mal bei hochbezahlten Serviceverträgen.

Structorizer

Structorizer beim Diagramme erstellen
Structorizer läuft nun wunderbar und hat seinen positiven Eindruck den ich von den Screenshots hatte bestätigt:

Structorizer unterstützt alle Sinnbilder nach DIN 66261:
Inklusive Mehrfachauswahl, Unterroutinen (Call) mit „Sub“-Darstellung, Aussprung (jump), …
Structorizer ist mehrsprachig:
Er unterstützt Englisch, Deutsch, Französisch, …
Exports:
Export als BMP-Bilder und direktes Ausdrucken.
Einfärben:
Verschiedene Farben können die Übersichtlichkeit erhöhen.

Die Bedienung ist mittels Drag-und-Drop sowie sprechenden Tooltips nach ein paar wenigen Minuten intuitiv. Es läuft stabil und das Kreieren von Struktogrammen macht einfach Spass.

Bob Fisch gebührt grössten Respekt. Ein solches Projekt in Angriff zu nehmen und auch bis zu einer verwendungsfähigen Version voranzutreiben, es der Allgemeinheit gratis zur Verfügung zu stellen (inklusive Quellcode) und dann erst noch Support für DAUs wie mich zu übernehmen ist eine Leistung die Anerkennung verdient!

Ausschliessen von Repositories bei WebSVN

hiddenWie schon ein paar mal erwähnt: Websvn ist ein geniales Tool! Es ermöglicht das Browsen von verschiedenen Repositories übers Web mit dem Browser. Manchmal möchte man aber nicht alle Verzeichnisse freigeben und anzeigen.

Ich habe einen Patch erstellt, der eine neue Option in /etc/websvn/config.inc erlaubt: $config->excludeRepository("name");. Diese Option kann mehrfach angegeben werden und alle excludeten Repositories werden nicht mehr dargestellt…

Beispiel:

// Select Repositories to exclude
$config->excludeRepository("Geheime-Codes");
$config->excludeRepository("Jokes");

Und hier der Patch: Websvn exclude Repositories Patch.

Viel Spass… Eine Rückmeldung bei Anwendung würde mich freuen…

Similar Posts Plugin tunen

Ich hab das Similar Posts Plugin von RMarsh im Einsatz. Es versucht ähnliche Beiträge zu identifizieren und unten am Posting anzuhängen, um Euch, werte Leser, etwas länger auf der Seite zu halten… Leider sind die Resultate, hmm, nun, etwas zufällig. Als Erstes habe ich mal mit den Stopwords von Ranks (und ein paar eigenen) eine Stopword-Datei (deutsch) gebastelt. Der Name hängt ab von der Konstante WPLANG in wp-config.php.

Doch damit das funktioniert, muss ihm erst der Pfad beigebracht werden. Dafür gibts nun einen Patch : Postwords Patch.

Und die Resultate? Hm… Sind sie immernoch etwas strange…

Struktogramme (Nassi Shneiderman) mit dem Computer zeichnen

Struktogramme

Struktogramme sind einiges platzsparender als Flussdiagramme. Gerade für Programmierneulinge ist es eine gute Möglichkeit Abläufe zu visualisieren.

NSDs können natürlich von Hand mit Stift auf Papier gezeichnet werden. Allerdings nur, wenn man ein Mensch mit exakter Schreibweise und ruhigem Strich ist. Bei Sauklauen wie mir erinnern die Struktogramme eher an moderne Kunstwerke als an Algorithmen. Computerapplikationen helfen gut in diesen Fällen und so habe ich ein Programm dafür gesucht, welches Struktogramme sauber darstellen kann und unter Linux lauffähig ist.

Structorizer

Structorizer sieht schön aus, läuft unter Linux und Windows und ist open Source.
Er hat wegen speziellen Umständen sein eigenes Posting bekommen.

Nessi

Nessi ist in zwar Java geschrieben, läuft aber trotzdem recht flott. Es besteht aus einem einzigen JAR das mit java -jar Nessi.jar gestartet werden kann und somit eigentlich keine Installation und/oder Gemurkse benötigt. Mit ein Bisschen Zielen kann man die Blöcke gut platzieren und verschieben. Der einzig richtige Nachteil ist die fehlende Mehrfachauswahl.

Nessi auf Windows XP

Neben der Darstellung bietet Nessi auch noch ein „Processing“ der Diagramme. Hier eine Implementierung des Hasenbein-Algorithmus, der für einen Hühner-Hasen-Bauer aus der Anzahl der Tiere und Beine die Anzahl der Hühner und Hasen errechnet. Dieser Ablauf kann „ausgeführt“ werden und liefert elegant das Resultat.

Nessi und der Hasenbein-Algorithmus

Für Fortgeschrittene

Ein Projekt für irgendwanneinmal ist DEViL. DEViL ist ein Editor für visuelle Sprachen und die NSDs sind nur eine Implementierung davon. Damit zu arbeiten wäre echt spannend, leider fehlt mir grad die Zeit dazu 🙁 .

Histogramme in Excel

Aufgabenstellung

In einer Umfrage wurde gefragt, wie viele Minuten für den Arbeitsweg gebraucht und mit welchem Verkehrsmittel sie zurückgelegt werden:

Wieviel Zeit in Minuten benötigen Sie für den Schulweg? Welches Verkehrsmittel benützen Sie?
15 Individualverkehr
25 Öffentlicher Verkehr
5 zu Fuss
40 Individualverkehr
30 Sonstiges
55 Kombiniert
80 Sonstiges
45 Öffentlicher Verkehr

Wie stellt man das als Diagramm dar? Jede einzelne Minute kann es nicht sein, das würde wohl etwas unübersichtlich… Man müsste Bereiche bilden können (bis zu einer Viertelstunde, zwischen einer Viertelstunde und einer halben Stunde, …). Genau hier kommen die Histogramme ins Spiel…

Vorgehen

Für die Diagrammdaten muss eine Tabelle nach folgendem Schema erstellt werden:

A B C D E F G
1 Zeit [Min] Individualverkehr Kombiniert Öffentlicher Verkehr Sonstiges Obergrenze Insgesamt
2 0-15 15
3 16-30 30
4 31-45 45
5 46-60 60
6 61-75 75
7 76-90 90
8 91-120 120
9 >121 9999

Da wir nach Art und Weise wie der Schulweg zurückgelegt wird gruppieren möchten, muss die Tabelle mit den Rohdaten zuerst danach sortiert werden: Daten > Sortieren….

Nun wirds tricky. Folgendes wiederholen für alle leeren Spalten (Individualverkehr, Kombiniert, Öffentlicher Verkehr, …):

  1. Den leeren Zellen eines Bereichs markieren (Beispielsweise B2-B9 für Individualverkehr)
  2. Einfügen > Funktion… > Statistik > HÄUFIGKEIT (FREQUENCY in Englisch). Daten sind die Quelldaten (die Minuten für den Individualverkehr) und die Klassen sind die Obergrenzen (bei diesem Beispiel G2:G9). Und nun (!) die drei Tasten ctrl+shift+Enter (Deutsch: strg+umschalt+Eingabe) gleichzeitigdrücken.

    Haeufigkeitsfunktion im Funktionsassistent

Nachdem alle Arten von Verkehrsmitteln so eingereiht sind, kann ein Diagramm erstellt werden mit den Daten ohne die Obergrenze (A2:F9).

Histogramm

Weiteres

Es gibt auch ein Add-In (Analyse-Funktionen), aber als Kontrollfreak mach ichs gerne von Hand…

Arbeitszimmer hat eine sehr gute, bebilderte einführung.

Tote Links in einem Blog oder einer Website finden

Tote Links sind ärgerlich und unprofessionell. Sogar der Überblogger schlägt vor, seine Blogs ab und zu zu entrümpeln. Um sie zu vermeiden gibt es ein paar Lösungen, zum Beispiel keine Links machen 😀 . Oder Online, wie die Google Webmaster Tools und Ähnliche. Als Kontrollfreak habe ich es gerne unter Kontrolle und möchte die Geschichte lokal auf meinem Rechner betreiben.

Eigentlich hätte ich nichts gegen klickibunti gehabt, aber leider kann zum Beispiel http://klinkstatus.kdewebdev.org/ (den es mittlerweile nimmer gibt) keine Einstellungen speichern. Nundenn, dann muss halt die gute alto Kommandozeile ran. Ich habe mich für LinkChecker entschieden, weil er vielfältige Einstellungsmöglichkeiten und Ausgabeformate anbietet. Ausserdem ist er für Windows und Lunix erhältlch und die Entwicklung ist aktiv. Ebenso beachtet er robots.txt, was sehr hilfreich ist.

Ich kenne mich, ich kann mir die Kommandozeilenoptionen keine 18 Minuten merken und darum sei wohlgemut eine Konfigurationsdatei geschrieben und auf den Namen blogcheck.conf getauft. Es kann auch heruntergeladen werden: Beispielkonfiguration für linkchecker um ein Blog zu checken.

html Ausgabe von Linkchecker CSV Auswertung in Openoffice (Excel kann das auch)

Zuerst die Ausgabe. Ich hätte gerne html und zur besseren Auswertung noch in csv. Während des Durchgangs hätte ich gerne ein Bisschen was an Rückmeldungen (habe ich schon erwähnt das ich ein Kontrollfreak bin?). Bei voller Lautstärke pustet mich linkchecker zu mit Info, status reicht also.

[output]
# print status output
status=1
# turn on/off --verbose
verbose=0
# turn on/off --warnings
warnings=0
# additional file output
fileoutput=html,csv

Nun noch die Logger konfigurieren:

#
# Loggers
#
[csv]
filename=linkchecker-out.csv
separator=,
quotechar="
parts=all

[html]
filename=linkchecker-out.html
# colors for the various parts
colorbackground=#fff7e5
colorurl=#dcd5cf
colorborder=#000000
colorlink=#191c83
colorwarning=#e0954e
colorerror=#db4930
colorok=#3ba557
parts=all

Noch ein Bisschen das Checkverhalten beeinflussen:

[checking]
# number of threads
threads=5
# connection timeout in seconds
timeout=60
# check anchors?
anchors=1

Und nun wirds interessant. Wir wollen folgendes vermeiden:

  • Der Linkchecker soll keine Ads anklicken.
  • Der Linkchecker soll uns nicht bei Partnerprogrammen eintragen.
  • Der Linkchecker soll uns nicht bei Social Bookmarkingdiensten eintragen.
  • Er soll uns keine Kommentare posten und auch das Blog nicht administrieren.

Das kann einfach so und mit Regular Expressions erreicht werden. Interessant ist, das der Syntax der URLs trotzdem geprüft wird.

[filtering]
ignore=
ignore=
# ignore google ads
 googlesyndication.com
 google # Just to get sure!
#ignore affiliates
 amazon\.com
 trigami\.com
 linklift
 zanox\.com
# ignore social bookmarking
 technorati\.com
 del\.icio\.us
 mister-wong\.com
 digg\.com
 stumbleupon\.com
 blogmarks\.net
 de\.lirio\.us
 furl\.net
 simpy\.com
 spurl\.net
 yahoo\.com
# ignore administrative links
 wp-comments-post\.php

Und nun: Starten *froi*:

linkchecker --config=blogcheck.conf https://blog.oncode.info

Nach dem Durchlauf kann linkchecker-out.csv in eine Tabellenkalkulation importiert oder linkchecker-out.html im Browser geöffnet werden.
Viele weitere Ausgabeformate wie SQL oder XML lassen andersweitige Auswertungen zu.

LinuxUser hat einen sehr schönen, einführenden Artikel zu linkchecker.

Nachtrag:
Bei Fehlern wie: had no anchor support oder url-anchor-not-found kann die Suche nach Anchors in der Konfigurationsdatei ausgeschaltet werden:

[checking]
...
# check anchors?
anchors=0

Wenn der Server überfordert ist und Timeoutet kann beim Aufruf der Parameter -P1 übergeben werden, welcher zwischen den Aufrufen eine Sekunde einschiebt. Wahlweise kann auch das Timeout in der Abteilung [checking] nach oben geschraubt werden.

Wenn der Fehler WARNING Could not start a new thread. Check that the current user is allowed to start new threads. auftreten sollte, dann könnte es sein dass der Parameter timeout im Config zu gross gefwählt wurde.

Websvn mit Repositories in verschiedenen Verzeichnissen

Websvn in AktionWebsvn kann mehrere Repositories in verschiedenen Unterverzeichnissen darstellen, allerdings muss man sich entscheiden: Alle Repositories aller Unterverzeichnisse aufs mal oder nur Repositories eines einzelnen Unterverzeichnisses.
Bei uns im Betrieb hat jede Abteilung (Informatik, Physik, …) ihre Repositories in eigenen Verzeichnissen auf dem Server. Websvn unterstützt zwar mehrere parentPath und stellt alle SVN-Repositories in diesen Verzeichnissen dar, will man aber auch noch einzelne Ansichten für die Abteilungen machen wird es schwer. Lösung: Der parentPath wird an Hand der URL gesetzt.

Unter Debian kann die Datei /etc/websvn/svn_deb_conf.inc direkt missbraucht werden. In anderen Distributionen muss eventuell am Schluss der Datei config.inc folgendes Codesnippet eingefügt und danach für die Änderungen gebraucht werden:

<?php
if ( file_exists("/etc/websvn/svn_sup_conf.inc") ) {
  include("/etc/websvn/svn_sup_conf.inc");
}
?>

Nun soll an Hand des Pfades der /etc/websvn/svn_deb_conf.inc parentPath gesetzt werden:

/websvn
Alle Repositories
/websvn/informatik
Alle Repositories der Abteilung Informatik
/websvn/physik
Alle Repositories der Abteilung Physik

Dafür muss man in der oben konfigurierten Datei folgendes zum Besten geben (bei mehr Abteilungen einfach intelligent erweitern):

<?php
  $repository=dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']);
  // echo "::: $repository :::";
  switch($repository) {
    case "/websvn/informatik":
    case "/websvn/physik":
          $reppath="/data/svn/repositories/".substr(dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']),8)."/"; // "/websvn/" entfernen
          //print "::: $reppath :::"; exit(1);
          $config->parentPath($reppath);
    break;
    default:
        $config->parentPath("/data/svn/repositories/informatik");
        $config->parentPath("/data/svn/repositories/physik");
    break;
  }
?>

Der Apache muss dies natürlich auch noch mitkriegen. Die /websvn/ URL-Teile müssen dort konfiguriert werden (site-available oder .htaccess) und das wärs dann:

# Websvn is installed in /usr/share/websvn
Alias /websvn /usr/share/websvn

Alias /websvn/informatik /usr/share/websvn
Alias /websvn/physik /usr/share/websvn

<Location /websvn>
  # DO FUNKY (AUTHENTICATION) STUFF HERE
  <IfModule mod_php4.c>
    php_flag magic_quotes_gpc Off
    php_flag track_vars On
  </IfModule>
</Location>