Willkommen auf pberndt.com, der privaten Homepage von Phillip Berndt. Diese Webseite dient der Information über mich, meine Arbeit und als Downloadportal für meine Projekte.
Unter anderem finden sich hier Anyfreewhere, eine simple VNC Applikation, sowie die phpBB Highlighting Mod, die fast alle Sprachen schnell und einfach hervorhebt.
Meine Eltern haben einen Philips
Fernseher, der über einen OpenWRT-WLAN-Router in das eigentliche LAN
eingebunden ist. Ich hatte mir - eigentlich schon über Weihnachten -
vorgenommen, herauszufinden, warum der Computer den Fernseher nicht via
UPnP als Ausgabegerät findet. Am Netzwerk lag es nicht, Multicast-Routing
hatte ich eingerichtet und in die andere Richtung hat auch alles
funktioniert.
Jetzt an Ostern war ich wieder einmal zu Hause und hatte Gelegenheit, noch einmal herumzuexperimentieren: Anscheinend hat der Fernseher einen Bug. In der UPnP-Spezifikation tauschen Geräte über UDP/Port 1900 per Multicast HTTP-Nachrichten aus, um einander zu finden. Über eine weitere URL, die dann per TCP aufgerufen wird, lädt sich jedes interessierte Gerät dann nähere Informationen herunter. Es gibt nun zwei verschiede Mechanismen: Zum einen senden alle Geräte ab und zu ein "NOTIFY"-Request, in dem sie ihre Präsenz ankündigen. Der andere Mechanismus ist eine aktive Suche, bei der ein Gerät ein "M-SEARCH" an dieselbe Adresse schickt und alle Geräte eine HTTP-Antwort speziell an den Fragenden zurücksenden.
Letzterer Mechanismus funktioniert auf dem Fernseher offenbar nicht. Und auch bei dem Notify gibt es Probleme, denn im laufenden Betrieb sendet er bisweilen eine Nachricht ins Netz, in der er sich aus dem Verbund abmeldet. Und danach ist dann Funkstille.
Ich habe einen kleinen Dämon geschrieben, den man auf seinem Router laufen lassen kann, der das Problem angeht. Er cached die NOTIFY-Nachrichten und antwortet auf M-SEARCH Anfragen mit Antworten aus diesem Cache. Dabei halte ich mich nicht gänzlich an die Spezifikation und erzeuge einigen unnötigen Traffic, aber dafür finden alle Geräte jetzt den Fernseher und ich kann endlich von meinem Handy aus Videos vom PC auf dem Fernseher starten. Schick.
Außerdem kann man den Dämon auf einen Router zwischen zwei gerouteten Netzwerken setzen und kann sich auf die Weise Multicast-Routing komplett sparen. Auch nützlich.
Wer will: Auf Github gibt es ein Repository.
Rund um pqiv gibt es nach
längerer Zeit mal wieder Neuigkeiten. In glib 2.3 ist das direkte Einbinden
von anderen Include-Dateien als glib.h nun endgültig verboten,
was zu diversen Änderungen
bei den Distributionen führte. Ich habe den notwendigen Patch nun in den
Code eingepflegt und bei der Gelegenheit einige Bugs gefunden, die in
Distributionen gefixt wurden, aber nicht ihren Weg zurück zu mir gefunden haben:
Das Keypad funktioniert nun richtig und auch mit Xinerama kommt der Code
nun klar, wenn es um die Positionierung im Vollbildmodus geht.
Ich habe mein Repository nun auf Github hochgeladen, damit meine Änderungen zeitnaher verfügbar sind und um eine Seite zu haben, die zum Wohlwollen der Maintainer-Scripte garantiert längere Zeit ihr Layout behält. (Wenngleich diese Version der Webseite auch schon lange durchgehalten hat..) Die Downloads laufen nun auch über die Download-Funktion von Github.
Last but not least habe ich mit einer Portierung nach GTK-3.0 angefangen. Die funktioniert schon ziemlich gut und in mancher Hinsicht auch besser, als es die GTK-2.0 Version je getan hat. Vermutlich wird der Code abwärtskompatibel bleiben, bislang sieht es zumindest sehr danach aus. Es scheitert aber noch an einem Verhalten, das ich für einen GTK bug halte: Die gelbe Infobox macht das Fenster zu breit, falls sie breiter ist als das Bild. Innerhalb eines GtkFixed sollte gerade das meiner Auffassung nicht passieren. Wenn das geht gibt es dann jedenfalls vermutlich endlich eine Version für das neue GTK.
Ich habe wirklich keine Ahnung, ob das eine gute Idee ist, oder nicht: Ich
habe darüber nachgedacht, einen lokalen SMTP-Server als Wegwerfadresse zu
benutzen. Die Vorteile liegen auf der Hand: Mein Rechner ist nirgendwo
gesperrt (Relay an Hosts, die nicht richtig rückwärts auflösen, blockiert
interessanterweise anscheinend kein Server), ich sehe die Mails sofort bei
Eingang und der Empfang geht wesentlich schneller als bei den meisten
Wegwerfadressen.
Was ich bisher habe: Einen SMTP-Server, der auf meinem Router lauscht, Emails akzeptiert und per UDP ins Netzwerk pumpt. Einen Server auf meinem PC, der via UDP Emails empfängt, in einem Popup anzeigt und ansonsten nicht speichert.
Was denkt ihr über die Idee?
Den Code habe ich auf Github und diese Ankündigung gibt es mittlerweile übrigens auch auf Twitter!
Ich wollte gestern meine Root-Partition kleiner machen und dafür die
danachfolgende /home Partition vergrößern. Leider kann GParted das
anscheinend nicht, wenn die zweite Partition per dm-crypt verschlüsselt
ist; vermutlich war die Version, die ich angeschaut habe, auch einfach zu
alt. Also musste ein Script ran. Nachdem ich erst einmal erfolgreich 100
Cylinder durch Dummheit zerlegt habe (man sollte so etwas nicht machen,
wenn man müde ist) hab' ich's dann sauber hinbekommen.
Für den Fall, dass jemand anderes mal in die Situation kommt, habe ich das Script sauber dokumentiert und als GIST bei Github hochgeladen. Also viel Spaß beim Partitionen verschieben.
Eine kleine Anmerkung: Gerade so ein Script sollte man nie ausführen, ohne es eingehend studiert zu haben! Also, lieber Finder, durchlesen ;-)