KDEVELOP and SVN at workIch war am Wochenende fleissig und habe einen kleinen Server für die Deutsche M.A.X. Community zusammen gebaut und darauf Lunar Linux installiert. Seine Hauptaufgabe ist die Bereitstellung von “SVN” oder auch “subversion”. Dabei handelt es sich um eine Versionsverwaltung für die Quelldateien des Projekts. Jeder Entwickler kann dabei über seinen eigenen Zugang ständig mit dem Projekt synchronisieren. Dabei wird vermieden, dass ausversehen zwei Dateien gleichzeitig verändert werden, ohne dass die Autoren darüber in Kenntnis gesetzt werden. Darüber hinaus kann man zu jeder beliebigen älteren Version im SVN zurück kehren, falls man mit seinen Änderungen im Code in einer Sackgasse gelandet ist. Das beste: SVN ist es völlig egal welcher Programmierer mit was für einem Betriebssystem und was für einer Entwicklungsumgebung arbeitet.

Nach der Suche nach einer Einführung für SVN und KDEVELOP (Entwicklungsumgebung für KDE – siehe Bild) konnte ich einfach nichts verständliches finden. Klar war, dass KDEVELOP inzwischen scheinbar SVN unterstützt. Was ich verzweifelt suchte, war eine Möglichkeit mich an das bereits bestehende Projekt ran zu hängen. So entstand dieser neue Artikel, der genau das bietet, in meiner Linuxkategorie: SVN für KDEVELOP mit KDESVN.

Tja – und das passierte nach einem Update von XOrg:


X.Org X Server 1.4.0
[...]
(II) Module nvidia: vendor="NVIDIA Corporation"
compiled for 4.0.2, module version = 1.0.0ServerCmd=/usr/bin/X -br

Module class: X.Org Video Driver
(EE) NVIDIA(0): ============= WARNING WARNING WARNING WARNING =============
(EE) NVIDIA(0): This server has a video driver ABI version of 2.0 but this
(EE) NVIDIA(0): driver is designed to work with versions before 2.0.
(EE) NVIDIA(0): Please check http://www.nvidia.com/ for driver updates or
(EE) NVIDIA(0): downgrade to an X server with a supported driver ABI.
(EE) NVIDIA(0): ===========================================================

Abhilfe schafft entweder ein Update der NVIDIA Treiber von 100.14.11 auf 100.14.19 oder den X mit -ignoreABI starten. Das sieht dann manuell so aus: “startx — -ignoreABI” oder zum Beispiel über KDM in $KDEDIR/share/config/kdm/kdmrc die Zeile ServerCMD anpassen: “ServerCmd=/usr/bin/X -br -ignoreABI”

Wolf hat hier einen alten NEC P2X Drucker und noch kistenweise Etiketten auf Endlospapier. Leider bot kein bekanntes Programm eine Möglichkeit um zum Beispiel möglichst einfach Etiketten mit Adressen zu bedrucken. Eine neue Vorlage für OpenOffice war viel zu viel Aufwand und es musste immer gleich eine ganze Seite gedruckt werden, was bei Endlospapier nicht viel Sinn macht. Abgesehen davon ist eine Textverarbeitung dieses Kalibers einfach ein wenig zu viel des guten gewesen. Etwas schlankes und einfaches musste her.

Nun versteht der Drucker auch Rohdaten und stellt den Druck nach der letzten Zeile sofort wieder ein – also im Grunde perfekt für eine derartig banale Aufgabe. Ein einfaches cat etikett.txt > /dev/lp0 führte bereits zum Ziel. Nun ist das leider nicht so ganz benutzerfreundlich und der Drucker musste immernoch von Hand auf das nächste freie Etikettenfeld justiert werden. Aus der fixen Idee entstand heute KawPrint:




In der ersten Version 0.1 erfüllt es ganz genau seinen Zweck:

  • Einfaches Drucken von Adressen, die z.B. aus dem Browser von EBay kopiert auf Etiketten gedruckt werden können
  • Funktion für zeilenweise Vorschub um komfortabel auf das nächste Etikett zu justieren
  • Reset-Knopf um die aktuelle/vordefinierte Adresse aus dem Textfeld zu entfernen
  • Druckergerät frei wählbar
  • Erkennt ob Gerät verfügbar und mit aktuellen Zugriffsrechten beschreibbar ist
  • Weitere Verbesserungen sind schon in der Planung. Für einen halben Tag Arbeit bin ich auf jeden Fall ganz zufrieden (und programmieren kann ich offensichtlich doch noch 😀 ).

    TrueCrypt 4.2a ist eigentlich eine richtig schöne und einfache Sache. Damit kann man zum Beispiel zuverlässig Festplatten oder Containerdateien verschlüsseln. (Nebenbei läuft es auch auf Windows). Mit der neusten Linuxversion 2.6.18.x fällt das Build-Script leider auf die Nase:


    Checking build requirements...
    Building kernel module... ./truecrypt-4.2a/Linux/Kernel/Dm-target.c: In function `dm_truecrypt_init':
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c:644: error: syntax error before "DM_MSG_PREFIX"
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c:652: error: syntax error before "DM_MSG_PREFIX"
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c:659: error: syntax error before "DM_MSG_PREFIX"
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c:666: error: syntax error before "DM_MSG_PREFIX"
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c: In function `dm_truecrypt_exit':
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c:690: error: syntax error before "DM_MSG_PREFIX"
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c:690: error: `DM_MSG_PREFIX' undeclared (first use in this function)
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c:690: error: (Each undeclared identifier is reported only once
    ./truecrypt-4.2a/Linux/Kernel/Dm-target.c:690: error: for each function it appears in.)
    make[2]: *** [./truecrypt-4.2a/Linux/Kernel/Dm-target.o] Fehler 1
    make[1]: *** [_module_./truecrypt-4.2a/Linux/Kernel] Fehler 2
    make: *** [truecrypt] Fehler 2
    Error: Failed to build kernel module

    2.6.18 ist nun schon einige Zeit verfügbar – eine offizielle Patch von TrueCrypt leider nicht. Man muss sich also selbst helfen, was dank offenem Quellcode ja durchaus möglich ist. Die Mühe hat sich auch schon jemand gemacht. So habe ich hier folgenden Patch gefunden:


    --- Dm-target.c 2006-06-28 12:36:28.000000000 +0200
    +++ Dm-target.c 2006-07-17 09:04:45.144351266 +0200
    @@ -29,6 +29,7 @@
    int trace_level = 0;

    #define MSG_PREFIX "truecrypt: "
    +#define DM_MSG_PREFIX MSG_PREFIX
    #define error(fmt, args...) printk(KERN_ERR MSG_PREFIX fmt, ## args)
    #define trace(level, fmt, args...) level < = trace_level && printk(KERN_DEBUG MSG_PREFIX fmt, ## args) #define dbg(fmt, args...) printk(KERN_DEBUG MSG_PREFIX fmt, ## args)

    Ich finde ab und an immer mal wieder ein Video im Netz, was ich gerne aufheben würde. Manchmal sind das aber Videos, die in Flash (SWF) eingebettet sind. Hier verweist das Flash dann auf eine FLV-Streamingdatei (Flash Video Format). Da man sich den Quelltext von Flash nicht ansehen kann, wird das schon komplizierter, wenn man trotzdem an das Video rankommen will. Nun gibt es eine wahnsinnig umständliche Methode über Quelltext der Webseite die Playeradresse direkt aufzurufen, den HTTP-Request von dem Player über ein BrowserPlugin auszulesen und die FLV-Datei dann selbst abzufangen. Auf diversen großen Video-Hosting Webseiten wird diese Datei dann auch noch erst auf Anforderung durch den Flashplayer generiert und der HTTP-Link bleibt nur wenige Minuten gültig. Abgesehen davon kann man FLV nicht einfach abspielen, da auch noch ein Player benötigt wird. Der zugehörige Flashabspieler funktioniert ja nur mit der entsprechenden Webseite.

    Alles sehr kompliziert also. Nun gibt es aber diesen Video Downloader hier online. Da kopiert man einfach die typische Browseradresse rein, wählt aus der Liste die dazugehörige Video-Hosting Webseite und bekommt den direkten FLV-Link ausgeworfen, den man nun rasch herunterladen sollte. Diesen schickt man dann noch flugs durch ffmpeg und schon habe ich ein schönes mpg, was auch jeder verflixte Videoabspieler zu können hat 😀

    ffmpeg -i video.flv -ab 56 -b 500 -s 640x480 video.mpg

    Optionen sind im man ffmpeg näher erläutert. Und wer das hier nun noch alles verstanden hat, sollte wirklich öfter mal raus an die frische Luft gehen 😉

    Nett – da habe ich doch letzte Woche Max Payne 2 auf dem Krabbeltisch im Real-Markt gefunden. Teil 1 hat mir damals auch schon sehr gut gefallen. Da Teil 1 auch problemlos über Wine 0.9.24 unter Linux funktionierte, habe ich das einfach mal in den Einkaufskorb gepackt. Folgende Dinge mussten leider vor dem Spiel deaktiviert/beachtet werden:

  • Pixel Shader Skins (Sonst sind die Figuren, wie Max selbst, unsichtbar)
  • Post Process Effect (Sonst steht bei einfacher BulletTime alles aufm Kopf)
  • Spiegeleffekte (Mirrors) (Grausiges Ruckeln sobald ein Spiegel in das Sichtfeld kommt)
  • Spiel stürzt beim Beenden ab und muss zusätzlich manuell abgebrochen werden :/
  • Mein Fazit übrigens: Ich hätte es wohl eher Max Payne Reloaded oder so genannt. Keinesfalls Teil 2. Ansonsten spielt es sich genau wie Teil 1. Nette Story mit überraschenden Wendungen, ein lieblos gestalteter dritter Spielabschnitt (Den Leveldesignern scheint jedesmal vor der Veröffentlichung die Zeit ausgegangen zu sein) und sehr nett: Bescheidene Traumsequenzen mit beknackten Labyrinthen sind angenehm kurz gehalten und nicht mehr so extrem blutig. Für 10 Euro haben sich die 6 Spielstunden auf Schwierigkeitsgrad 1 auf jeden Fall gelohnt. 60 Euro hingegen hätte ich dafür sicher nicht hingelegt.

    Tja – die Tage schreibe ich wenig neues. Ich habe zur Zeit einfach alle Hände voll zu tun. Wolf hat eine lange ToDo Liste und ich bin genau im richtigen Moment aufgetaucht, um ihm zu helfen. Und dabei geht es nicht nur um Werkstatt sauber halten. Heute stand zum Beispiel der Ausbau eines Benzintanks, Richten einer Stoßstange und das Ersetzen einer Zylinderkopfdichtung auf dem Programm.

    Gerade letzteres hat es mir besonders angetan, da ich das noch nie gemacht habe. Ich lerne dabei eine ganze Menge neues über meinen Lieblingsmotor SS/MV mit 2,1L. Immerhin steht ja noch eine komplette Überholung meines eigenen alten Motors auf dem Programm. Doch nicht nur zum Schrauben komme ich: Wolf baut in der EDV ebenfalls auf Linux und hier bin ich der Spezi 🙂 beko im Wunderland sozusagen. Der Winter wird spannend 😀

    Inspiriert vom Schattenschreiber:


    beko@daedalus:~ # history | awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c | sort -nr |head -n 10
    74 cd
    62 ls
    34 amarok-query
    25 su
    20 killall
    18 vi
    17 ps
    17 mount
    17 links
    13 lvu

    Ich verbringe also die meiste Zeit am Computer damit mich auf der verwirrenden Struktur meiner Festplatte zurecht zu finden, der Musikbox Anweisungen zu geben und massenweise Prozesse zu tötenbeenden oder mich zum Superuser zu erheben.

    Und ich dachte ich hätte inzwischen auch ein RealLifeechtes Leben 😀

    Dass ich als Linuxbenutzer mit der allerneusten Kernelversion oft im Regen stehe ist mir ja nichts Neues, aber Nvidia raubt mir in letzter Zeit da wirklich den letzten Nerv. Ich kann davon ausgehen dass nach jedem Kernel-Update unter Garantie die Nvidia-Treiber voll auf die Schnauze fallen.

    Andere Firmen schaffen es doch auch Treiber zu entwickeln die mehr als drei Versionsnummern nach dem zweiten Komma überleben!

    Im konkreten Beispiel überlebt NVIDIA 1.0-8178 kein Update von Linux 2.6.15 auf 2.6.16. Dann habe ich das hier gefunden. Da werde ich in Zukunft mal lieber vor Updates nachsehen. Immerhin muss man Nvidia zu Gute halten dass immer schnell auf Treiber-Probleme reagiert wird und die Treiber auch sonst sehr gut funktionieren – wenn sie denn laufen.

    Naja, nicht direkt, aber in Form von lustigen Aufklebern und Nummernschild-Haltern. Diese habe ich alle von LinuxLand.de. Zur Feier des Tages gab es gleich noch einen abschliessbaren Tankdeckel sowie eine neue Schutz-Ecke an der linken hinteren Stoßstangen-Seite. Die alte Ecke war nämlich komplett hinüber, da der Vorbesitzer wohl mal beim Einparken etwas mitgenommen hat. Dabei habe ich mir auch das Loch im Radkasten noch einmal genauer angesehen. Ich habe im Netz etwas zum Thema “Hohle Innenräume wegen Rostgefahr ausgießen” gefunden. Das werde ich mir einmal genauer ansehen müssen.

    Die Öllampe hat übrigens wieder gepfiffen. Nachdem nun fast eine Woche Ruhe war und ich den Bus einmal quer durch Baden-Württemberg und Hessen gejagt und dabei so ziemlich jede Mücke unterwegs auf der Windschutzscheibe verteilt habe, meckerte er nur wenige Minuten nach dem Anlassen erneut. Höchste Zeit den Öldruckschalter sowie den Öldruck zu prüfen 🙁

    Und hier gibt es Bilder der neuen Nummernschild-Halter: