Pberndt V4

Direkt zum Inhalt springen


News & Blog

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.

Ein paar Tools (27.03.2015)

Python Ich habe in letzter Zeit wieder einige praktische Scripte in mein Repository übernommen, die vielleicht praktisch sein könnten. Daher stelle ich dir mal kurz vor:

Schon älter ist, und nichts mit Python zu tun hat, gdo. Ich benutze das so wahnsinnig viel, dass ich das noch einmal verlinken musste: Das ist ein Tool, das i.W. find -regextype pcre -iregex "$1" -exec "$2" \; entspricht.

Postscript und PDF für pqiv (20.09.2014)

pqiv 1.0 und 2.0-rc1 In letzter Zeit habe ich pqiv mal wieder etwas mehr Zeit gewidmet. In meinem wissenschaftlichen Alltag speichere ich Plots in aller Regel direkt als Postscript oder PDF Datei, damit ich für die Einbindung in ein Paper direkt ideale Qualität habe, ohne doppelte Arbeit zu haben. Nachteil dieser Praxis ist, dass es aufwendig ist, schnell durch Serien von Plots zu schauen, die z.B. während langer Simulationen regelmäßig zwecks Übersicht weggespeichert werden. Da ich in pqiv 2.x ohnehin Cairo zum Zeichnen verwende, ist die Einbindung von Poppler extrem simpel: Das rendert in einer Zeile eine PDF auf eine Cairo Oberfläche. Von daher bot es sich an, das mal nachzurüsten.

Aufwendiger war es, das schön zu machen. Ich hatte bislang gdk-pixbuf fest mit pqiv verdrahtet, weil ich beim Designen nicht davon ausgegangen war, dass ich einmal mehr Backends als nur das verwenden will. Diese Verknüpfung ist nun aufgehoben, sodass das Nachrüsten von Backends extrem einfach geworden ist. (Der gesamte Poppler Code ist z.B. derzeit nur 179 Zeilen inklusive Kommentaren lang.)

Ich habe mich für's erste an meinen Bedürfnissen orientiert und neben Poppler nur durch libspectre Postscript-Support eingebaut. Für Spezialanwendungen dürfte aber selbst so etwas wie ein gnuplot Backend machbar sein, falls jemand daran interessiert ist ;) Nebenbei kamen durch die Umbauten noch besserer BSD-Support, diverse Bugfixes und allgemein bessere Stabilität als Gimmick hinzu, denn beim ausgiebigen, inzwischen automatisierten, Testen habe ich einige Probleme gefunden & behoben.

Wer an den Änderungen interessiert ist, findet hinter dem Merge-Commit noch die Versionsgeschichte der Umbauten.

Neues zu pqiv (05.11.2013)

pqiv 1.0 und 2.0-rc1 pqiv 2.0 ist vor inzwischen wieder einer ganzen Weile erschienen und steht bereits in den Testversionen von Debian und Gentoo zur Verfügung. Während im Vergleich zur hier angekündigten rc-Version nicht mehr viel passiert ist, wird die kommende Version 2.1 einige große Änderungen bringen:

Sie fügt per inotify automatisch neue Dateien zur Dateiliste hinzu, gibt endgültig den Namen qiv auf, bringt Überblendungen zwischen Bildern zurück - schicker als je zuvor, denn diesmal funktioniert der Effekt für beliebige Bilder, kommt besser mit dem Nachladen großer Bilder zurecht, schont die CPU beim Neuzeichnen von Bildern, indem mehr gecached wird, bringt einen neuen „low memory“ Modus, der alle Zwischenspeicher so weit wie möglich abschaltet, und ermöglicht das Laden der Bilder im einem „lazy mode“, bei dem das Fenster bereits angezeigt wird, bevor alle Bilder geladen worden sind. Auf letzteres Feature bin ich ein wenig stolz, denn richtig sortiert werden die nachgeladenen Bilder trotzdem. Das erreiche ich, indem ich statt der Dateiliste einen order-statistic AVL Baum verwende. Das ist ein Suchbaum, in dem zusätzlich, ebenfalls in O(log n), per Index auf Elemente zugegriffen werden kann. Da ich so etwas nicht in fertig für C gefunden habe, habe ich mir einen selbst geschrieben: Das Projekt habe ich bostree (binary order statistic tree) genannt.

In other, unrelated news: Ich habe die Homepage auf einen Server umgezogen, über den ich etwas mehr Kontrolle habe. Meinen alten Hoster musste ich dafür leider ganz verlassen, weil man mir keine Hoheit über die DNS-Einträge geben wollte. Nun liegt die Domain bei Host Europe. Dadurch gibt es hier endlich den ganzen Technik-Schnickschnack, der schon lange überfällig war: IPv6, SSL und für Email DKIM und SPF. Und bei Gelegenheit habe ich die Seite mal auf UTF-8 umgestellt.

pqiv 1.0 und 2.0-rc1 (13.06.2013)

pqiv 1.0 und 2.0-rc1 Für meinen Bildbetrachter pqiv gibt es ein großes Update. Zunächst ein kleines: Version 0.13 springt auf 1.0, denn das Release mit einem kleinen neuen Feature (anpassbare Fenstertitel) wird das letzte in dieser Reihe sein. pqiv 2.0 wird demnächst als komplettes Rewrite mit GTK 3 erscheinen.

Zunächst einmal hatte ich ja mal eine Portierung angekündigt. Während der Arbeit daran habe ich aber gemerkt, dass ich einige Konzepte von GTK erst jetzt richtig verstehe und dass sich einige auch mit der neuen Version geändert haben. Das ganze neu zu schreiben erschien mir da angebracht.

Die neue Version läuft mit GTK 3 und Cairo, ist aber rückwärtskompatibel mit den neueren Versionen von GTK 2. Einige aus heutiger Sicht unnütze Features werden verschwinden, dafür kommt auch ein neues, das mir schon länger gefehlt hat: pqiv lädt das kommende Bild schon vorab in den Speicher, sodass bei Albenpräsentationen nach Betätigung der Leertaste auch wirklich sofort das nächste Bild zu sehen ist. Außerdem ist die neue Version dank saubererer Verwendung der Schnittstelle zum Display Server und intensivem Testen mit verschiedenen Fenster Managern (mutter, muffin, xfwm, i3 und etwas am Rande auch mingw32) deutlich kompatibler und hat weniger Macken.

Ich freue mich, wenn jemand das schon testen will & Feedback gibt! Den Code gibt es im Rewrite Branch auf Github. Kompilieren geht einfach per make, ./configure ist noch optional.

UPnP relay daemon (01.04.2013)

UPnP Logo 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.

Newsarchiv

  1. Neuerungen rund um pqiv 0.12
  2. Wegwerf SMTP server
  3. Partitionen verschieben
  4. iwebd - Ad-Hoc Server Dienste
  5. gCryptMount Update
  6. Bejeweled KI
  7. Huawei-Modem von O2 und Linux
  8. pdfshrink
  9. Faxen mit der Fritzbox
  10. pqiv 0.10 mit großen Änderungen
  11. iftpd ist hier
  12. consolectrl
  13. Einfach mal mitschneiden
  14. Wichtiges Update for gCryptMount
  15. PyS60 kommt mit Python 2.5
  16. Rapidshare download (3)
  17. 100.000 Besucher
  18. Rapidshare download (2)
  19. Update für die Netzwerkkonfiguration
  20. Unpack > unp
  21. 24c3, mimetex
  22. Frohe Weihnachten
  23. Rapidshare download
  24. Ich bin wieder Berliner
  25. Pseudotransparenter Hintergrund in GTK
  26. Prototype
  27. Speedport, E61, Widgets
  28. Juchuh ich habe wieder Internet
  29. pqiv wird C
  30. Abitur
  31. Immer noch kein Internet
  32. Updates und Abwesenheit
  33. Rapidshare macht Updates
  34. Fertig
  35. pqiv und Yeha
  36. Verzeichnisse auflisten, einfache Downloads und ein Wordpressbug
  37. Frohe Ostern!
  38. Im Namen von Kane
  39. Die Schule ist aus
  40. Netzwerkkonfiguration
  41. brightd für Thinkpads
  42. Updates im Linuxbereich
  43. Update für den Kernel updater
  44. Mehr Vielfalt
  45. Hallo, ich bin jEph
  46. Startrek und Zeitreisen
  47. Die letzten Wochen
  48. Einmal Urlaub und zurück
  49. Dead man's chest und andere Updates
  50. Ein Wort zu Templates in PHP
  51. Moto4Lin und mein C450
  52. Wir sind Dritter
  53. Über zwei praktische Tools und meine Lieblingsserie
  54. Update für das phpBB Topicliste-Sortier-Script
  55. How to ask questions
  56. Ohrwurm
  57. American Dreamz
  58. Stadtfest
  59. Half-Life²: Episode 1
  60. Version 4!