UNIXwork

Tags

c dav unix shell linux xattr solaris links x11 java rant fun webdav sync gnome apple benchmark network ldap oracle analytics xnedit macos windows graalvm bsd curl mac apache wtf virtualbox microsoft zfs sparc tomcat rhel freebsd arm

Linkdump

13. März 2019

DTrace gibt es jetzt auch unter Windows

12. März 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.

XNEdit - Mein NEdit-Fork mit Unicode-Support

06. März 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.

Wie man nicht einen WebDAV-Server implementiert

20. Februar 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.

Das Ende ist nah

01. Dezember 2018

Dropping Profanity In Kernel Code Comments: Linux Gets "Hugs"

Also wenn man als Kommentar im Quellcode folgendes hat:

avoid hugging up the memory controller

Weiß man dann, was damit gemeint ist? Wenn man nach hugging up googled landet man bei urbandictionary.com und findet:

to be involved, dating or in a relationship with someone

Dann ist ja alles klar.

Zurück Weiter