Als Lösung für selbstgehostete Cloud-Dienste dürften OwnCloud und Seafile wohl momentan die führenden Anwendungen sein. Für Screen-Reader-Nutzer beschränkte sich die Auswahl bislang auf OwnCloud, da sowohl dessen Weboberfläche, als auch die Desktop-Clients weitgehend zugänglich sind. Bei Seafile hingegen ist zwar die Weboberfläche sehr gut für uns nutzbar, jedoch hatten die Desktop-Clients leider keine Zugänglichkeitsschnittstellen integriert. Schade eigentlich, macht Seafile doch einen wesentlich stabileren Eindruck als die wuchtige OwnCloud, bei der jedes Update ein Spiel mit dem Feuer zu sein scheint, und von Zuverlässigkeit im laufenden Betrieb auch oft nicht die Rede sein kann.
Eher zufällig bin ich heute mal wieder auf Seafile und dessen Windows-Client gestoßen, der inzwischen die Version 5 erreicht hat und offenbar auf Qt5 aktualisiert wurde. Da in Qt5 für Entwickler keine zusätzlichen Accessibility-Plugins mehr notwendig sind, sollte die Chance auf zugängliche Qt-Anwendungen also durchaus gegeben sein. Im Changelog des Seafile-Clients findet sich dazu aber lediglich die Bemerkung "UI improvements". Neugierig geworden, ob sich in Sachen Zugänglichkeit nicht doch inzwischen etwas getan hat, habe ich mir flink auf Seacloud.cc zum Testen ein Nutzerkonto erstellt und mir den Client für Windows installiert. Und siehe da: Wo vor ein paar Versionen noch keinerlei Informationen für den Screen-Reader bereitstanden, war das erste Einrichten nach der Installation nun völlig problemlos möglich. Seafile-Ordner auswählen, Anmeldedaten eingeben und eine Bibliothek anlegen, alles ging mit dem quelloffenen Bildschirmleser NVDA sehr reibungslos. Lediglich einige Dialoge sind noch nicht hundertprozentig nutzbar, darunter der interne Seafile-Dateibrowser und Detail-Dialoge für erstellte Bibliotheken. Diese Funktionen benötigt man aber in der Regel nur selten und kann sie auch über das lokale Dateisystem oder im Webinterface nutzen. Ist der Client einmal eingerichtet, kann er ohnehin weitgehend unbeachtet im Hintergrund laufen. Hochladen und Freigeben von Dateien funktioniert dann ähnlich wie bei Dropbox und Owncloud, also einfach die gewünschten Daten in die Seafile-Bibliothek kopieren, und über das Explorer-Kontextmenü Freigabe-Links erstellen.
Ob die Seafile-Clients auf anderen Betriebssystemen ähnlich gut nutzbar sind, habe ich bisher noch nicht getestet. Der Mac-Client steht momentan noch bei Version 4, die Linux-Desktopversion wurde hingegen ebenfalls auf Version 5 aktualisiert. Letztere wird als Deb-Paket ausgeliefert und soll ab Ubuntu 12.04 lauffähig sein.
Das Format JSON (JavaScript Object Notation) ist aus vielen Webanwendungen mittlerweile nicht mehr wegzudenken. Doch auch wenn Wikipedia behauptet, JSON wäre im Gegensatz zu XML-Strukturen leichter zu lesen, trifft dies nur dann zu, wenn der erzeugte JSON-Datensatz auch lesbar formatiert ausgeliefert wird. Gerade bei JSON-APIs diverser Webanwendungen ist das leider selten der Fall. So bekam ich kürzlich das nackte Grauen, als ich von einem Icecast-Server über dessen JSON-API mittels PHP die Song-Informationen abrufen wollte. Da ich den Datensatz zunächst mal analysieren musste, rief ich die URL direkt auf und bekam einen ellenlangen Textstring zurück, der zwar lesbar, aber sicher nicht verständlich war. Hinzu kam, dass ich diesen Textstring auch noch mit Sprachausgabe und Braillezeile auseinandernehmen musste, da war Kopfweh praktisch vorprogrammiert. OK, ich hätte vermutlich auch den String direkt mittels PHP formatieren können, darauf kam ich jedoch erst später.
Zum Glück gibt es auch anderweitig Abhilfe, um solche Strings wieder für Menschen verständlich lesbar zu machen. So lässt sich zum Beispiel für den Texteditor Notepad++ das Plugin "JSON Viewer" nachinstallieren, welches zwar nicht automatisch die Datei korrekt anzeigt, zumindest aber eine nachträgliche Formatierung des Strings erlaubt. Noch komfortabler funktioniert es direkt im Browser: Mit der Firefox-Erweiterung JSONView werden aufgerufene JSON-Dateien sofort formatiert angezeigt, ohne sie erst vorher als Download zu speichern.
"Beim nächsten Ton ist es ..."
Diese Telefonansage kennen die einen oder anderen vielleicht noch aus Zeiten, als Funkuhren oder Smartphones mit synchronisierter Zeitanzeige noch nicht verbreitet waren. Und trotz heutiger Entwicklungen gibt es diese Zeitansagen noch immer, auch wenn die ersten solcher Ansagedienste natürlich längst abgeschaltet wurden. Schade eigentlich, denn hin und wieder ist eine Zeitansage tatsächlich sehr nützlich.
Wer die Dame vom Band vermisst oder tatsächlich noch einen Nutzen für einen Zeitansage-Dienst hat, findet auf Github Abhilfe: Talking Clock ist ein in HTML und Javascript programmierter Nachbau einer Zeitansage. Einmal auf einem Webserver hochgeladen, liest eine englische Stimme die Zeit im 10-Sekunden-Takt vor. Die Ansage wird dabei aus Audio-Samples zusammengebaut, die sich theoretisch auch austauschen lassen. Um eine möglichst genaue Zeit auszugeben, synchronisiert sich das Tool über ein PHP-Script mit der Zeit des Servers, auf welchem es installiert wurde. Voraussetzung hierfür ist natürlich, dass sich die Uhr des Servers via NTP mit einem Zeitserver abgleicht.
Was für den einen eine unnütze Spielerei sein mag, kann mir persönlich beim Webradiobetrieb helfen. Bei Live-Sendungen muss ich darauf achten, den Stream zu einer bestimmten Zeit in meinem Studio zu übernehmen. Da ich als blinder Nutzer dabei häufig auf eine Sprachausgabe angewiesen bin, ist es manchmal etwas mühsam, die Zeit im Auge bzw. im Ohr zu behalten. Meistens lasse ich einen zweiten Rechner mitlaufen, dessen Sprachausgabe die Uhr fokussiert hat und mir dann den Wechsel der Minute ansagt. Eine 10-Sekunden-Ansage ist da natürlich noch viel bequemer.
Nachdem ich dieses Blog kürzlich auf eine eigene Domain umgezogen habe, musste bzw. wollte ich für Robbenradio.de eine neue Portalseite als Einstiegspunkt zu meinen verschiedenen Unterprojekten einrichten. Bislang lief diese mehr schlecht als recht im selben Blog-System wie auch das Robbinär-Blog, doch das alte System wollte ich nicht extra dafür weiterlaufen lassen. Nach Abwägen aller Möglichkeiten, die von statischem HTML und ebensolchen Website-Generatoren, bis hin zum Basteln einer Startseite mit WordPress reichten, habe ich mich schließlich auf die Suche nach einem möglichst minimalistischen CMS gemacht, denn faul ist es, das Radiorobbenviech. :)
Hängen geblieben bin ich schließlich beim schwedischen Unternehmen "Datenstrom" und dem auf PHP und Markdown basierenden CMS Yellow. Wem reines HTML zu mühselig ist und wer nicht mit großen Systemen nur ein paar wenige Seiten erstellen möchte, sollte diesem kleinen Helferlein definitiv mal einen Blick gönnen. CMS, die mit Markdown arbeiten, gibt es zwar mittlerweile einige, doch die wenigsten davon sind auch tatsächlich zum einen benutzerfreundlich und ohne weitergehende technische Voraussetzungen bzw. Kenntnisse zu installieren, zum anderen nicht mit riesigen Programmpaketen verschnürt. Yellow basiert hingegen ausschließlich auf PHP und speichert die Inhalte in Markdown-Textdateien, welche dann dynamisch als HTML ausgegeben werden. Damit kann es auf beinahe jedem gängigen Webspace eingesetzt werden.
Yellow ist eine typische Plug-And-Play-Software. Hochladen, aufrufen, loslegen. Eine Installationsroutine ist ebenso wenig vorhanden wie ein umfangreiches Admin-Backend oder ein im Hintergrund arbeitendes Framework. Die wenigen Konfigurationsmöglichkeiten, die dennoch existieren, werden im Ordner "system/config" angepasst. Alles weitere geschieht auf Dateisystem-Ebene im Ordner "content". Hier liegen sämtliche Unterseiten als Textdateien, die in der vereinfachten Auszeichnungssprache Markdown verfasst sind, also einer Sprache, die der in Wikis verwendeten Syntax nicht unähnlich ist. Zum Anpassen der Webseite reicht also jeder normale Texteditor und ein FTP-Client. Syntax-Fehler können hierbei eigentlich nicht passieren, da das HTML-Gerüst der Seite auf PHP-Ebene zusammengestellt wird. Lediglich der Seitenkopf sollte mit speziellen Tags in der Textdatei gekennzeichnet sein, damit das System etwas damit anfangen kann. Alles andere ist reiner Fließtext und muss theoretisch nicht besonders formatiert werden. Es werden aber auch HTML und Javascript in den Dateien akzeptiert.
Unter der Haube bietet Yellow natürlich noch einige Anpassungsmöglichkeiten. Wer seine Dateien nicht via FTP bearbeiten möchte, kann sich in der Datei users.ini im Config-Verzeichnis einen Benutzer-Account anlegen, was allerdings etwas umständlich ist und erst mal einen Blick in die Dokumentation erfordert. Hierzu muss im Hauptverzeichnis die Datei yellow-php über die Shell aufgerufen werden, um den Account mit der korrekten Passwortverschlüsselung bcrypt einzurichten. Danach lässt sich jede Seite auch direkt im Browser über den Edit-Link bearbeiten. Über die Shell lässt sich das ganze System übrigens auch in eine Statische Seite ohne PHP konvertieren.
Das Gerüst der Seite besteht aus Templates und Snippets, mit denen jeder einzelne Bereich individuell formatiert werden kann. Es ist auch relativ problemlos möglich, eigenen PHP-Code hineinzubasteln, ohne sich dabei an eine spezielle API des CMS halten zu müssen. Ein Plugin-System wird für tiefere Integration angeboten und diverse fertige Plugins, darunter ein Blog mit optionaler Disqus-Anbindung und ein Wiki, sind neben den offiziellen Downloads auf der Github-Projektseite zu bekommen. Hier findet sich auch die Dokumentation, obwohl die Entwickler von ihrem Projekt behaupten, man hätte etwas falsch gemacht, wenn jemand die Dokumentation benötigt. Nun ja, zu einem großen Teil stimmt das auch. An fertigen Themes mangelt es momentan noch sehr, Individualisten sollten also ein wenig CSS-Kenntnisse mitbringen. Ob es problemlos möglich ist, große Frameworks wie Bootstrap einzubinden, entzieht sich mangels Design-Fähigkeiten momentan meiner Kenntnis.
Auch wenn Yellow natürlich kein CMS ist, um das nächste Großprojekt im Web anzugehen, ist es für so manches kleine Blog oder eine reine Informationsseite mit möglichst wenig Wartungsaufwand eine bemerkenswerte Alternative zu wuchtigen Webanwendungen oder nerdigen Shell-Tools. Das System kann dabei von Nutzern fertiger Lösungen ebenso gut eingesetzt werden wie von Schraubern und Bastlern, die ihre Seiten mit dem ein oder anderen Extra versehen wollen.
In einem mittelschweren Anfall von Tatendrang, und weil Info-Domains momentan fürs erste Jahr sehr günstig zu haben sind, habe ich dem Robbinär-Blog 2 Jahre nach dem Start eine eigene Domain spendiert. Auch wenn sich dies für höchstens ein paar Artikel im Monat eigentlich kaum lohnt, ist mir dieses Blog trotzdem mittlerweile ans Herz gewachsen und ich finde, es hat mehr verdient als nur ein Unterverzeichnis innerhalb meiner anderen Projekte.
Gleichzeitig mit dem Umzug habe ich dem Blog auch ein aktuelleres Theme spendiert sowie die neuen Shariff-Buttons als Social-Sharing-Möglichkeit eingebaut. Die Artikel-Ansicht ist jetzt etwas breiter, was das Lesen für "Mausschupser" sicher etwas angenehmer macht. Des Weiteren gibt es nun im Seitenkopf ein einblendbares Menü, welches zu den Informations- und Kontaktseiten führt. Alle übrigen Elemente sind wie immer in der rechten Sidebar zu finden.
Die bisherigen Feed- und Artikeladressen sollten weiterhin gültig sein, da ich unter der alten Blogadresse einen sogenannten 301-Redirect eingerichtet habe, der alle Anfragen automatisch auf die neuen Adressen umleitet. Wer diesen Blog abonniert hat, sollte trotzdem die Feed-Adressen ändern.
Ein paar Kleinigkeiten werden sich in den nächsten Tagen wohl noch ändern, aber fürs erste sollte alles wie geplant funktionieren.