2009
11.19
In Meta

Wenn ihr das hier lesen könnt, dann sind die DNS-Einträge umgestellt und ihr seht mein neues Blog. Ich habe den Hoster gewechselt, weil ich mittlerweile keinen Vserver mehr brauche und etwas Webspace für meine Zwecke ausreichend ist.

Außerdem läuft mein Blog jetzt auf Wordpress und nicht mehr auf Serendipity. Mit Serendipity war ich nie unzufrieden, ich möchte nur mal was Neues testen. Bis jetzt scheint mir Wordpress jedenfalls wesentlich komfortabler.

Ich habe versucht alle Einträge und Kommentare zu übernehmen, dem ersten Anschein nach scheint das geklappt zu haben. Auch die Feeds sollten unter den alten URLs weiterhin erreichbar sein, vorrausgesetzt ihr verwendet die Domain und nicht die IP meines alten Servers. Sollte doch was tot sein, bitte in den Kommentaren melden!

Ich hab mir vorgenommen, im neuen Blog Kategorien und Tags zu verwenden. Ob das bei der Flut an Einträgen die ich täglich generiere Sinn macht bezweifle ich noch immer, aber vielleicht hilfts ja den Suchmaschinen oder so.

2009
11.06

So, noch ein Eintrag über das Problem mit Liferea.

Ich habe mittlerweile auf Ubuntu 9.10 Karmic Koala ge-up-date-t. Und natürlich war erstmal wieder Liferea unbenutzbar. Dieses Mal hat der Fix, den ich gepostet habe, auch nicht wirklich funktioniert. Ich habe allerdings rausgefunden, dass das Problem nur mit ext4 auftritt.

“Lösung”: Eine kleine Datei (50MB) angelegt, mit ext3 formatiert und per loop eingebunden. Auf diesem Dateisystem liegt mein .liferea_1.6-Ordner. Fertig. Und nun läuft Liferea wieder vernünftig.

2009
09.12

Ich habe heute aus dem Launchpad PPA für Liferea selbiges geupdated. Danach musste ich feststellen, dass es schon wieder schrecklich langsam ist und die Festplatte bei jedem Klick losrattert.
Die Lösung die ich weiter unten gepostet habe ist natürlich weiterhin gültig, es muss lediglich die Versionsnummer angepasst werden. Jedoch habe ich mittlerweile im Internet einen angenehmeren Workaround für das Problem gefunden, den ich hier mit der Welt teilen möchte.
Hier ist ein Forenthread zum Thema. Der Beitrag “This is a temporary fix…” beinhaltet eine Schritt für Schritt-Anleitung, die allerdings mit der aktuellen Version nicht mehr genau so funktioniert.
Für den Fall dass man jetzt bei dem Kommando “sudo gedit /usr/bin/liferea” eine Fehlermeldung von gedit (oder ein Fenster voller Binärdaten von dem Editor seiner Wahl) bekommt, kann man folgendes tun:
Zuerst benennt man die ausführbare Datei von Liferea um: “sudo mv /usr/bin/liferea /usr/bin/liferea.orig”
Dann legt man eine neue Datei namens “/usr/bin/liferea” an, die in etwa das Folgende beinhaltet:

#! /bin/sh
export LD_PRELOAD=/usr/src/libfsync/libfsync.so
/usr/bin/liferea.orig

Diese setzt man dann noch mittels “sudo chmod +x /usr/bin/liferea” ausführbar, und schon sollte es wieder gehen.
Achtung: Es ist sehr wahrscheinlich, dass beim nächsten Update von Liferea die Datei /usr/bin/liferea mit einer neuen Version überschrieben wird. In diesem Fall muss man die “neue” /usr/bin/liferea eben wieder nach liferea.orig verschieben und das hier gezeigte Skript wieder als /usr/bin/liferea abspeichern…

2009
06.10

Heute in der Vorlesung: “…and if one point moves much faster than the others, you get very badly shaped triangles.”

Badly shaped triangle

2009
04.17

Gerade hier im Gefrierfach entdeckt.
ice spike
Mehr dazu zum Beispiel hier oder hier.

2009
03.29

Vor einigen Tagen kam die Beta von Ubuntu 9.04 Jaunty Jackalope raus. Da es nun auch mit meiner Grafikkarte funktionieren soll und mein Rechner dringend eine Neuinstallation (bzw. gründliches Aufräumen des Systems) nötig hatte, hab ich beschlossen dieses Wochenende dafür zu nutzen, es zu installieren und zu testen. Und weil ich risikofreudig war, hab ich auch gleich die 64-Bit-Version installiert.

Soweit so gut, alle meine Standardprogramme gehen, ich kann Videos abspielen, immer noch mehr schlecht als recht, aber es funktioniert etwas besser als unter Intrepid. Adobe Air hab ich nicht zum Laufen gekriegt, aber damit kann ich leben.

Ein großes Problem tat sich aber bald auf: Ich lese meine RSS-Feeds mit Liferea. Und das funktionierte nur quälend langsam, die Festplatte ratterte die ganze Zeit. Der Schalter --debug zeigte jede Menge Datenbankzugriffe, und jeder Einzelne schien den Rechner unglaublich anzustrengen. Liferea aus den Quellen selber kompilieren brachte keine Besserung. Kurze Recherche im Internet zeigt, dass scheinbar in sqlite was verstellt wurde, sodass der jede kleine Änderung sofort auf die Festplatte schreiben will, was bremst.

Also, Bock drauf, sqlite auch noch selber zu kompilieren hatte ich keinen, also hab ich mir überlegt, dass das ganze doch mit ner Ramdisk besser gehen sollte. Das ist das erste Mal dass ich ne Ramdisk gemacht hab, darum folgt eine ausführliche Erklärung:

Zunächst hab ich das Verzeichnis /mnt/ramdisk angelegt. Dann sudo mkfs /dev/ram0 um die erste Ramdisk die mir das System anbietet zu formatieren – glücklicherweise hat die gleich 64MB, was für Liferea absolut ausreichend ist. sudo mount /dev/ram0 /mnt/ramdisk bindet die Disk ein. Nun hab ich das Verzeichnist ~/.liferea_1.4 nach /mnt/ramdisk/liferea_1.4 (ohne Punkt, damit ich es besser fressen kann) verschoben, und mit ln -s /mnt/ramdisk/liferea_1.4 ~/.liferea_1.4 in meinem Home-Ordner verlinkt, damit es Liferea auch findet.

Nun, so eine Ramdisk existiert natürlich nur so lange der Rechner läuft, und die Daten sind weg, wenn man den Rechner ausschaltet. Um die Daten beim beenden von Liferea zu sichern, hab ich in der Datei /usr/bin/liferea die Zeile exec $DEBUGGER... auskommentiert und folgendes hinzugefügt:

$dist_bin/liferea-bin $params

cd /mnt/ramdisk/
rm /home/ebrnd/liferea_data.tar.gz
tar -czvf /home/ebrnd/liferea_data.tar.gz .liferea_1.4

Das packt den Ordner .liferea_1.4 in eine tar.gz-Datei in meinem Homeordner, damit der beim nächsten Booten noch da ist.
Um ihn dann wiederhierzustellen, hab ich meiner /etc/rc.local folgendes hinzugefügt:

mkfs /dev/ram0
mount /dev/ram0 /mnt/ramdisk
cd /mnt/ramdisk
tar -xzvf /home/ebrnd/liferea_data.tar.gz
chown --recursive ebrnd:ebrnd /mnt/ramdisk/.liferea_1.4

Das muss vor die Zeile “exit 0“. Und beim Nachmachen muss man natülich den eigenen Benutzernamen einsetzen.

Liferea läuft jetzt schneller als je zuvor, man muss nur drauf achten, es von Hand zu beenden, bevor man den Rechner runterfährt. Ich muss nur dran denken, den ganzen Klumpatsch wieder zu entfernen, wenn das Problem mit der Datenbank gefixt wird. Oder ich lass es so, Liferea war ja generell etwas träge.

2009
03.05

Einige Leute benutzen den Music Player Demon um Musik abzuspielen. Was ist nun aber, wenn man beispielsweise im Wohnzimmer Musik über MPD hört, und dann in sein Zimmer geht und dort die gleiche Musik weiterhören will?
Ich hab auf die Schnelle keine brauchbare Lösung gefunden, darum hab ich selber was gebastelt. Ein kleines Skript was sich darum kümmert, zwei Instanzen von MPD zu synchronisieren.
Vorrausstzung ist, dass beide MPDs auf die gleiche Musikdatenbank Zugriff haben.
Ich bin kein großer Held was Shellskripte angeht, bastel nur ein Bisschen rum. Wenn ich was falsch bzw. grob ekelhaft gemacht hab, bitte ich den Leser darum, mich drauf hinzuweisen, damit ich es in Zukunft besser weiß!

#!/bin/bash

master_host=password@remote_host
slave_host=password@localhost

# Falls einer der MPDs auf einem anderen Port laeuft,
# muss natuerlich zu jedem MPD_HOST auch der richtige MPD_PORT gesetzt werden
export MPD_PORT=6600
export MPD_HOST=$master_host

firstloop=true
for((;;)); do
  echo -n .
  song=`mpc --format %file% | head -n 1`
  export MPD_HOST=$slave_host
  if [ "$(mpc --format %file% | head -n 1)" != "$song" ]; then
    echo songs do not match
    mpc clear
    mpc add "$song"
    mpc play 1
    export MPD_HOST=$master_host
    songlength=`mpc --format %time% | head -n 1`
    # Berechnen wie lange wir warten sollen - Songlaenge - 5 Sekunden
    waittime=$(echo $(echo $songlength | cut -d : -f 1) \* 60 + $(echo songlegth | cut -d : -f 2) - 5 | bc)
    if [ "$firstloop" != "true" ]; then
      echo sleeping
      sleep $waittime
    else
      firstloop=false
    fi
  else
    export MPD_HOST=$master_host
  fi
done

Das Ganze ist nicht sehr genau. Der Versatz zwischen den beiden MPDs liegt bei etwa einer halben Sekunde, aber das ist schonmal ganz okay. Ich plane diese Lösung irgendwann noch etwas effizienter zu implementieren. Ich habe hier mpc benutzt, das baut immer eine Verbindung auf, schickt die Anfrage und schließt die Verbindung wieder. Wenn man die Verbindung einfach offen lässt, erhält man sicher weniger Verzögerung.

Edit: Dieser Post wurde beim Konvertieren nach Wordpress verstümmelt, vermutlich kam der Importer mit dem Code-Block nicht klar. Jetzt ist wieder alles da. Vielen Dank an Tilo für den Hinweis!

2009
02.19

Mein zweiter Microblogging-Versuch: Ich habe mir einen Twitter-Account gemacht. Das macht erst richtig Spaß, wenn noch mehr Leute mitspielen! Also macht auch mit, und follow’t mir.

2009
02.07

Kennen Sie das? Nur noch 10 Minuten bis zur Geburtstagsfeier, das Geschenk ist zwar schon da, aber Geschenkpapier natürlich nicht.

Die Lösung hab ich vor Kurzem entdeckt: Eine improvisiert lustige oder gewollt geekige Geschenkverpackung aus dem was man halt so in der Bastelkiste findet: Ein nicht-mehr-funktionierendes Netzwerkkabel zum Beispiel.

Wenn man die Plastikisolierung abzieht, dann kommen da raus:
Ein glänzendes Stück Alufolie, ein glitzerndes Stück Plasitkfolie und 8 mehr oder weniger bunte Drähtchen. Bonuspunkte wenn eins davon die Lieblingsfarbe des Beschenkten hat, was bei mir leider nicht zutrifft, aber von Person zu Person und von Kabel zu Kabel unterschiedlich ist.

Jetzt wird das ganze gekonnt um das Geschenk geschlungen, und schon können Sie bei Informatikers auf der Geburtstagsparty aufschlagen.

Geekige Geschenkverpackung

Ansonsten, Spieltipp, schon was älter, aber trotzdem leider nicht allzu bekannt: World Of Goo.

2009
01.23

Am Dienstag Nachmittag zog ich aus Versehen den Stöpsel des Internets heraus. Warum bitte muss da auch nur so ne kurze Schnur dran sein? Es flossen eine Menge Daten aus, das war vielleicht eine Schweinerei!
Den größten Teil konnten wir direkt mit einem Eimer auffangen, den Rest mussten wir mühsam mit mehreren Putzlappen aufnehmen, und manche Datenpäckchen wehrten sich aufs Äußerste, sie fanden es sogar lustig, uns damit zu necken, sich in anderen Datenpäckchen zu verstecken. Das bereitete unserem Elektronengehirn recht Kopfzerbrechen, vorrausgesetzt man kann seine blecherne Hülle als Kopf bezeichnen.
Schließlich gelang es uns doch noch, die ausgeflossenen Daten wieder in die Tubes zu füllen und somit alles wieder da hinzubringen wo es gleich zu Anfang dieser Geschichte hätte bleiben sollen.
Diese Arbeit beschäftigte uns Komputermechaniker mehrere Tage und sorgte dafür, dass die Webpräsenz der Fachschaft während dieser Zeit nicht erreichbar war.