Style wechseln: ?

Für diese Funktion muß JavaScript aktiviert sein.

switch to english version

Seit Jahren (genauer 1989 auf dem Atari ST) programmierend, sind bisher an sich keine eigenständigen Applikationen entstanden. Da waren nur hin und wieder kleine Tools für mich selbst und die Mitarbeit an größeren Projekten.

Der Anlaß für diese Seite ist die Anpassung der Software inadyn für meine Zwecke. Diesen Patch möchte ich hier veröffentlichen.

Etwas mehr zu meinen Programmiertätigkeiten findet sich auf meiner Mozillaseite.

inadyn :: OTHist für InDesign


inadyn – der Patch

Inadyn ist ein einfacher Client zum Updaten von dynamischen DNS-Einträgen. Solche dynamischen DNS-Dienste werden beispielsweise von DynDNS oder No-IP.com angeboten. Für meinen kleinen Heimserver hatte ich mich für inadyn entschieden weil es klein, einfach und in C geschrieben ist, sowie Rechtetrennung beherrscht. Nicht daß ich C für die beste Sprache halte (auch wenn ich mich darin am besten auskenne) und Perl, Python usw. bevorzuge ich auch für gewisse Aufgaben. Nur für diese Aufgabe erscheint es mir Overkill, deren Interpreter mitzuschleppen.

Irgendwann nahm ich mir zu den DynDNS-Adressen noch welche von No-IP dazu und musste feststellen, daß inadyn es nicht vorsieht, mehrere verschiedene Anbieter gleichzeitig zu unterstützen. Da mir der Workaround, verschiedene inadyn-Instanzen mit verschiedenen Configfiles laufen zu lassen, nicht gefiel, machte ich mich daran, das Programm so anzupassen daß mehrere Anbieter in einer Config auftauchen dürfen.

Insgesamt ist inadyn von seiner Struktur her nicht flexibel – es gibt keine dynamische Anforderung von benötigten Strukturen, alles liegt in Arrays von fester Größe. Das ist zwar Schade, um die Arbeit nicht ausarten zu lassen, habe ich dieses Design jedoch beibehalten. In der Hauptsache besteht mein Patch also nur im Einfügen einer weiteren Schicht, bzw. daraus, aus einer Infostruktur mit den Aliasen ein Array aus Infostrukturen zu machen.

Nebenbei gibt es noch die neue Option --pidfile dazu, die es ermöglicht, die PID des Programmes in ein File schreiben zu lassen. Das ist ganz nützlich, um das Programm gezielt wieder zu beenden (z. B. über den Debian start-stop-daemon).

Installation & Benutzung

Der Patch ändert die Dateien man/inadyn.8, src/dyndns.c, src/dyndns.h, src/http_client.c, src/http_client.h und src/inadyn_cmd.c. Er wurde gegen die Version 1.96.2 erstellt und kann einfach per patch -p0 < inadyn_patch.diff (aufgerufen außerhalb des inadyn-Verzeichnisses) angewendet werden. Danach inadyn wie gewohnt kompilieren.

[arrow right] Download: inadyn_patch.diff

Die Konfigurationsdatei funktioniert weiterhin wie üblich. Nach globalen Einstellungen wie

background
verbose 1
log_file /var/log/inadyn.log
pid_file /var/run/inadyn.pid

kommt der Block für Anbieter A

dyndns_system dyndns@dyndns.org
username xxxx
password xxxx
update_period_sec 300
alias yyyy
alias yyyy

Nur können dann noch weitere Blöcke für weitere Anbieter folgen:

dyndns_system default@no-ip.com
username xxxx
password xxxx
update_period_sec 300
alias yyyy

usw.

Und wieso wende ich mich nicht einfach an den Programmierer von inadyn damit dieser den Patch ins Programm einfließen läßt? Habe ich bereits im März 2006 getan, jedoch keine Antwort erhalten. Deshalb stelle ich ihn hier zur freien Verfügung, wie auch das Hauptprogramm selbst ist er freie Software und steht unter der GPL General Public License 2 oder höher.

Ein weiterer Programmierer hat ein Projekt auf SourceForge angelegt: http://inadyn.sourceforge.net. Dort ist seit 2009 eine Version 1.96.3 verfügbar. Neben einigen anderen Änderungen ist dort auch mein Patch enthalten. Sollten Sie an meinem Patch interessiert sein, sollten Sie sich diese Version also mal ansehen.

Auf eine Anfrage von Michael Park nach einem Binary mit meinem Patch für seinen Router habe ich eines gebastelt. Es handelt sich dabei um einen Build für die Linux-Distribution OpenWrt auf MIPS-kompatiblen Prozessoren wie den Linksys WRT54G. Auf meinem Server liegt es als inadyn_1.96.2-1_mipsel.ipk, die Sourcen als inadyn-1.96.2-patched.tar.gz.
Inadyn samt meinem Patch ist mittlerweile auch in einer weiteren Router-Firmware enthalten, der des Freetz-Projekts für die AVM Fritz!Box.

Ich kann allerdings zu Fragen auf beiden Systemen keine Hilfe leisten da ich solche Geräte nicht im Einsatz haben.

[arrow up] hoch

OpenType-hist-Feature für InDesign

modernes und altes s Als ich einen OpenType-Font in Adobes DTP-Programm InDesign testete fiel mir auf, daß zwar viele OpenType-Features in der Benutzeroberfläche wählbar sind, jedoch nicht das hist-Feature. Dieses Feature ersetzt – wenn es der Font bietet – Zeichen durch ihre historischen Formen ohne daß die entsprechenden Glyphen selbst im Text eingesetzt werden müssen. Das rechts gezeigte lange s dürfte das Standardbeispiel für eine historische Form sein. Hier ist die moderne Form – das runde oder Schluß-s – sowie die alte Form – das lange s – gegenübergestellt.

Bei der Arbeit an einem weitern Plugin fiel mir dann aber auf, daß die Aktivierung programmintern über eine Methode durchaus recht simpel zu steuern ist (wie auch über object.otfHistorical in Skripten), nur die grafische Oberfläche fehlt. Als Übung habe ich mich also mal daran gemacht, den vorhandenen OpenType-Feature-Auswahlmöglichkeiten eines für die historischen Formen hinzuzufügen.
Nun ist zwar weder InDesign ein Programm für Jedermann noch das hist-Feature vielgenutzt (noch nicht einmal in vielen Fonts enthalten), aber wenn ich das Plugin schon habe kann ich es auch veröffentlichen, vielleicht nutzt es ja jemandem.

OTHist-Screenshot Der Menüeintrag dafür steht an den beiden üblichen Orten zur Verfügung: im OpenType-Submenü des Zeichen-Panel-Menüs sowie dem OpenType-Submenü des Steuerungsbedienfelds. Auch die Funktion entspricht der der restlichen, also ein Häkchen davor wenn für die jeweilige Selektion aktiv, ein Strich wenn in der Selektion gemischte Bereiche vorhanden sind und keine Markierung wenn in der Selektion inaktiv. Zusätzlich kennzeichnen eckige Klammern um die Bezeichnung wenn der Font in der Selektion das Feature nicht unterstützt.

Leider konnte ich jedoch keinen solchen Punkt in den Dialog zum Setzen der Zeichenformate oder zum Setzen eines Formats im Suchen&Ersetzen-Dialog einfügen. Es ist trotzdem möglich das Feature in Zeichenformaten zu verwenden, da InDesign ja bei anlegen eines Formats die aktuelle Formatierung unter dem Cursor übernimmt. Also einfach das Feature an der aktuellen Position setzen und dann ein neues Format anlegen.

Im Plugin enthalten ist der String in Englisch und Deutsch. Für weitere Lokalisierungen bin ich offen, benötige dafür jedoch Hilfe derjenigen die die gewünschte Sprache beherrschen.
Das Plugin wurde für die Windowsversionen von InDesign CS3 und CS4 von mir kompiliert. Die Version für CS5.5 wurde von Dave Waddell adaptiert, vielen Dank dafür. Wenn’s jemand für den Mac kompilieren möchte und kann, kann er sich gerne an mich wenden. Ebenso bitte ich um eine Mail sollte es Probleme mit dem Plugin geben. Ich habe es nur hier in meiner Installation testen können und obwohl es einfach genug sein sollte um mir keine großen Fallstricke zu stellen, weiß man ja nie.

Für neuere InDesign-Versionen kann ich leider kein OTHist anbieten da ich z.B. InDesign CC nicht besitze und auch die Programmierumgebung nicht aufgesetzt habe.

[arrow right] OTHist0.1.zip für InDesign CS3
[arrow right] OTHist0.1.1.zip für InDesign CS4
[arrow right] OTHist0.1.1.zip für InDesign CS5.5

[arrow up] hoch

gepostet am 25.5.2006, letzte Änderung am 02.08.2014
© Christian Eyrich
Hauptseite | Webmaster