UNIXwork

XNEdit Update 1.0.1

5. April 2019

Hat nicht lange gedauert, da gibt es schon ein kleines Update für XNEdit. Ein schwerer Fehler beim konvertieren von Dateikodierungen musste behoben werden. Wenn eine Datei mit einer anderen Kodierung als UTF-8 gespeichert werden sollte, wurden dabei ein paar Zeichen übersprungen.

Des Weiteren gibt es ein paar Detailverbesserungen, wenn die Locale-Encoding nicht UTF-8 ist.

XNEdit auf Sourceforge

Autor: Olaf | 0 Kommentare | Tags: xnedit, x11, unix, linux

Linkdump

13. March 2019
Autor: Olaf | 0 Kommentare | Tags: links, shell, bash, c, sun

DTrace gibt es jetzt auch unter Windows

12. March 2019

Microsoft kann einen immer mal wieder überraschen, und so ist es ihnen auch diesmal gelungen, in dem sie DTrace auf Windows portiert haben.

DTrace ist ein Framework um den Kernel und auch Userspace-Programme zu analysieren. Dieses wurde von Sun Microsystems entwickelt und war 2005 erstmals Teil von Solaris. Dank der Open Source Lizenz wurde es recht bald auch von FreeBSD und Mac OS X adaptiert.

Auch eine Linux-Portierung ist verfügbar, und da DTrace mitlerweile auch GPL-lizensiert ist, könnte es theoretisch auch problemlos in Linux Einzug halten. Vermutlich werden die Distributionen aber eher auf das recht neue bpftrace setzen, welches sehr große Ähnlichkeit zu DTrace hat.

Und wenn Microsoft jetzt die guten Solaris-Features übernimmt, würde ich ihnen noch empfehlen, ZFS für Windows zu portieren.

Autor: Olaf | 0 Kommentare | Tags: solaris, windows, linux, dtrace

XNEdit - Mein NEdit-Fork mit Unicode-Support

6. March 2019

NEdit dürfte einer der ältesten grafischen Texteditoren für Unix-Systeme sein. Seit 1991 reifte dieses gute Stück Software und hat über die Jahre einige Features angesammelt. Leider ist die Entwicklung in diesem Jahrtausend mehr oder weniger eingeschlafen. Bis 2004 gab es noch regelmäßig neue Releases, danach jedoch praktisch nur noch Bug-Fixes.

Vor allem wurde es verpasst, in NEdit auch Support für Unicode einzubauen, was in der heutigen Zeit aber ein absolut unverzichtbares Feature ist. Auch das X11 Core basierte Text Rendering, welches nur Bitmap-Fonts unterstützt, ist nicht mehr zeitgemäß.

Im Dezember 2018 hatte ich spontan Lust mich dieser Probleme anzunehmen und NEdit so wieder zu einem benutzbaren Editor zu machen. Das ist mir hoffentlich auch ganz gut gelungen. Mit dem neuen Xft-basiertem Textrenderer gibt es endlich Antialiasing und Unicode wird nun auch unterstützt.

Damit ist der erste Meilenstein in meinem Modernisierungsplan erreicht. Weitere Verbesserungen und neue Features sind geplant, aber jetzt veröffentliche ich das erstmal als XNEdit 1.0.

Downloads gibt es hier oder auf Sourceforge. Des Weiteren existiert das Projekt auch auf GitHub.

Autor: Olaf | 0 Kommentare | Tags: xnedit, x11, unix, linux

Wie man nicht einen WebDAV-Server implementiert

20. February 2019

Ich hatte vor, als eine Ergänzung für dav, einen leichtgewichtigen WebDAV-Server zu entwickeln. Wäre gut wenn ich zu dav-sync gleich noch eine kompatible Server-Komponente anbieten kann, denn von verbreiteten Webservern kann eigentlich nur Apache WebDAV richtig. Alternativ könnte man hierfür auch Nextcloud verwenden, aber das will vielleicht auch nicht jeder.

Verwenden wollte ich das Go Package golang.org/x/net/webdav. Bis ich es mir genauer angeschaut habe.

Ein essentielles Feature sind die sogenannten Dead Properties. WebDAV erlaubt es beliebige XML-Werte als Properties in einer Ressource zu speichern. Dummerweise wird dies immer wieder schlecht implementiert. Ein Auszug aus der Dokumentation aus dem Go-Package:

// Property values of complex type or mixed-content must have fully
// expanded XML namespaces or be self-contained with according
// XML namespace declarations. They must not rely on any XML
// namespace declarations within the scope of the XML document,
// even including the DAV: namespace.
InnerXML []byte `xml:",innerxml"`

Es wird gefordert, dass wenn XML-Elemente darin vorkommen, diese ihren Namespace selbst deklarieren. Anders könnte man den Content auch nicht als einfaches Byte-Array speichern.

Man zwingt damit den Client dazu, seine XML-Requests auf besondere Art zu gestalten, die nirgendwo im WebDAV RFC gefordert wird. Es ist sogar so, dass im RFC Beispiele vorhanden sind, die dies schon nicht erfüllen.

Und wieder mal ein Beispiel für “zu faul um XML richtig zu verarbeiten”. Leider nicht das erste mal, dass ich das bei einer WebDAV-Implementierung sehe.

Autor: Olaf | 0 Kommentare | Tags: webdav, go, google, rant
Weiter