ubergeek.de ubergeek.de

Diese Seite verwendet Cookies.
Auf dieser Website werden sogenannte Session-Cookies verwendet, um wiederkehrende Besucher zu erkennen. Benötigt wird diese Funktion, um Artikel zu kommentieren und um sich an der Seite anzumelden (nur Redakteure). Wenn Sie mit der Nutzung von Cookies nicht einverstanden sind, können Sie die Seite problemlos nutzen, lediglich die oben genannten Funktion sind dann nicht verfügbar. Da wir eine Ablehnung nicht speichern können bzw. Sie bei folgenden Seitenabrufen nicht wiedererkennen, erscheint dieser Hinweis in diesem Fall immer wieder.

NanoCM ist Open Source

Als ich meine Website neu aufgesetzt habe, hätte ich selbstverständlich auch einfach zu Wordpress greifen können – aber als Entwickler konnte ich ja doch wieder nicht anders als ein System nach meinen Wünschen und Vorstellungen selbst zu erstellen. Das Ergebnis habe ich in der Zwischenzeit als unter Open-Source-Lizenz veröffentlicht.

Ein bisschen Inhaltsbearbeitung, User-Login bzw. Session-Management und das zeitgesteuerte Veröffentlichen von Inhalten – das stellt doch niemanden vor besondere Herausforderungen. Wenn man das »so nebenbei« in seiner Freizeit macht, kann es aber dauern 😬 Mittlerweile sind bereits mehr als 60.000 Zeilen Code zusammengekommen (davon mehr als 40% PHP, fast 30% JavaScript, den Rest bilden HTML-, (S)CSS und ein paar sonstige Dateien), obwohl ich noch lange nicht alles umgesetzt habe, was ich mir vorgenommen habe.

Immerhin: die eine oder andere »Sonderfunktion«, die in anderen Systemen nicht gerade zum Standard-Funktionsumfang gehören, habe ich umgesetzt. So lassen sich Inhalte als ePub exportieren, wobei eingebundene Inhalte wie Bilder automatisch eingebettet werden,

Außerdem wird Wert gelegt auf den Datenschutz: Von externen Websites (Google, Youtube, Twitter und Content Distribution Networks [CDN]) werden keinerlei Inhalte direkt eingebunden. Es können zwar Inhalte von Youtube und Twitter dargestellt werden, dabei fungiert jedoch stets NanoCM als Proxy, der die Inhalte entsprechend abfragt und aufbereitet; der User Agent des Anwenders selbst greift niemals direkt auf die externen Sites zu. Ohne vorherige Zustimmung wird nicht ein einziges Cookie gesetzt, nicht einmal ein Session-Cookie. (Das hat den Nebeneffekt, dass bei jedem Seitenabruf ein Cookie-Hinweis erscheint, solange nicht der Nutzung von Cookies zugestimmt wird. Theoretisch könnte man sowohl eine Cookie-Ablehnung und auch die Session-ID per Get-Parameter von Seitenabruf zu Seitenabruf durchschleifen, aber das ist aus mehreren Gründen keine gute Idee.)

Eine noch nicht fertiggestellte Medienverwaltung sorgt dafür, dass im Original hochgeladene Bilder automatisch in verschiedensten (konfigurierbaren) Formaten ausgeliefert werden können, d. h. Bilder werden automatisch skaliert und zugeschnitten; das wird auch genutzt für eine Unterstützung von HiDPI-Bildschirmen.

Ein kleines Wagnis war die von Anfang an stehende Entscheidung, datenbanktechnisch nicht auf ein Server-Client-Modell, sondern mit SQLite auf eine eingebettete Datenbank zu setzen, was eine Zero-Config-Einrichtung ermöglicht.

Das System ist in der Lage, optional anonymisierte Statistiken inklusive Geo-Informationen zu führen. Was mir hier noch fehlt: eine tolle Visualisierung über interaktive SVG-Grafiken, aber darum kümmere ich mich auch noch irgendwann 😉

Es gibt mit dem schönen Emoji-Soft-Keyboard auch ein Feature, das sich fast überholt hat. Unter MacOS schon seit langer Zeit vorhanden, gibt es auch unter Windows 10 seit einiger Zeit eine entsprechende systemweite Funktion (wer es noch nicht weiß: dieses Keyboard wird mit Win+. geöffnet) – unter Linux allerdings mag das durchaus noch nützlich sein, denn hier scheint es eine solche Funktion (noch) nicht zu geben. Falls mir jemand etwas anderes berichten kann: gerne her damit! Auf der anderen Seite: unter Windows gibt es ja bis heute keine simplen Shortcuts, um typografisch korrekte Anführungszeichen einzufügen. Auch für solche Zeichen gibt es in NanoCM ein Soft-Keyboard.

Wie auch immer: Den Quelltext habe ich irgendwann im vergangenen Jahr auf Github veröffentlicht. Wer Lust hast, kann also gerne einen Blick in die Quellen werfen oder sich sogar an der Weiterentwicklung beteiligen. Es kann auch jeder einen Fork anlegen und »sein eigenes Ding« daraus machen. Ich habe mich für die GPL 2 entschieden, die einem praktisch alle Freiheiten einräumt, solange alle abgeleiteten Werke ebenfalls unter dieser Lizenz veröffentlicht werden.

Zu den offenen Baustellen gehört übrigens, dass ich zunächst Dokumentation und Kommentare auf Deutsch geschrieben habe. Das war vermutlich nicht die klügste Entscheidung. Jüngere Quelltext-Teile sind bereits auf Englisch kommentiert; der Rest der Anwendung wird nach und nach umgestellt. Wenn sich jemand an der Weiterentwicklung beteiligen möchte, wäre schon »nur« die Übersetzung ein wichtiger, ein wertvoller Beitrag.

Das Projekt läuft unter dem Namen NanoCM, wobei ich mich noch nicht für eine bestimmte Schreibweise (NanoCM, nano|cm, nanoCM …) entschieden habe. Ich wünsche allen Interessierten viel Spaß beim Blick in den Quelltext und bin offen für konstruktive Verbesserungsvorschläge und Mitarbeit :)

Kommentare

Sie müssen der Verwendung von Cookies zustimmen, bevor Sie einen Kommentar hinterlassen können.