ubuntuusers.de

Inyoka in 7 Tagen, Teil 7: Das Portal und seine Technik

Mit der neuen Portal-Software Inyoka beginnt für ubuntuusers.de einmal wieder ein neuer Zeitabschnitt. Viele Änderungen und einige lang ersehnte Neuerungen haben in das Portal Einzug gehalten. Diese Serie soll den Anwendern die wichtigsten Neuerungen näher bringen. Dieser Teil befasst sich mit dem Portal und schließt die Serie ab.

Das erste, das die meisten Anwender zu Gesicht bekommen, ist die Portalseite. Daher wurde Wert darauf gelegt, dass sich diese Seite ansprechend, übersichtlich und performant darstellt, trotzdem sollte der Wiedererkennungswert erhalten bleiben. Das Ergebnis ist die bekannte - jedoch aufgepeppte - Welle im Kopf der Seite mit dem Logo und den Knöpfen für die einzelnen Bereiche des Portals. Das Menü und die wichtigsten Links sind auf der linken Seite zu finden, während die neuesten Ikhaya-Meldungen den restlichen Bereich einnehmen. Darunter befinden sich die Anzeige der angemeldeten Benutzer, diese beziehen sich nun nicht mehr nur auf das Forum, sondern das auf ganze Portal. Der Kalender hat eine eigene, aufklappbare Box erhalten, die oberhalb des Menüs die nächsten Termine anzeigt.

Konformität

Inyoka ist XHTML-konform. Das bedeutet, es entspricht den Richtlinien für XHTML 1.0 🇬🇧, und kann damit von allen Browsern, die XHTML unterstützen, interpretiert werden. Da jedoch nicht alle Browser den XHTML-Code auf die gleiche Weise darstellen sind natürlich Abweichungen im Aussehen vorhanden, was bei reinem Text nicht stört, jedoch bei bestimmten Objekten wie dem Such-Menü oder den Code-Boxen problematisch wird. Ein extremes Beispiel hierfür ist Lynx, ein Textbrowser, der Webseiten direkt in der Text-Konsole anzeigt. ubuntuusers.de ist mit Lynx nutzbar, auch wenn es nicht wirklich schön anzuschauen ist und sich in jedem Fall von der Darstellung in Firefox unterscheidet.

NoPaste-Dienst

Natürlich existiert auch noch der NoPaste. Darin können zum Beispiel Programm-Quelltexte hinterlegt und dann per Link im Forum zur Verfügung gestellt werden. Hierzu sollte in der Eingabemaske ein aussagekräftiger Titel gewählt, die entsprechende Sprache für das Syntax-Highlighting eingestellt sowie der Text in das Code-Feld hinein kopiert werden. Nach einem Klick auf Hinzufügen kann der in der Address-Zeile des Browsers sichtbare Link zur Weiterleitung auf das jeweilige Code-Stückchen verwendet werden.

Der NoPaste-Dienst macht insbesondere dann Sinn, wenn umfangreiche Texte angegeben werden oder diese mehrfach Verwendung finden sollen. Der NoPaste-Dienst kann natürlich auch unabhängig vom ubuntuusers.de-Forum verwendet werden. Auf ubuntuusers.de kann auf einen Interwiki-Link zurückgegriffen werden: [paste:NoPaste-Nummer:Beschreibung].

Beispiel:

[paste:390983:Hallo Welt in Python]

Hallo Welt in Python

Leistung

Ein wichtiger Punkt war natürlich die Verbesserung der Leistungsfähigkeit der verwendeten Plattform. So soll das statische Wiki nach der Veröffentlichung neuer Ubuntu-Versionen der Vergangenheit angehören. Dies wird zum Teil schon durch die Architektur erreicht, da die Python-Dateien nur einmal zu Beginn eingelesen werden, und nicht bei jeder Anfrage erneut, wie dies bei PHP der Fall war. Dazu kommt noch, dass das Wiki nun auf einer Datenbank basiert und damit besser skaliert, wenn viele Nutzer darauf zugreifen.

Eine weitere Möglichkeit, die Leistung zu verbessern ist die Fähigkeit Inyokas, auf mehrere Server verteilt arbeiten zu können. Dabei werden kommende Anfragen von dem jeweils am wenigsten belasteten Server beantwortet, womit sich dann die Belastung auf mehrere Server verteilen lässt.

Zusätzlich wird Caching eingesetzt, um die Datenbank-Zugriffe zu minimieren. Hierbei werden häufig verwendete Seiten oder Seiten-Elemente zwischengespeichert und bei einer Anfrage direkt ausgeliefert, ohne dass die Abfrage der Datenbank notwendig wird. Dies spart Zeit und letztlich Systemressourcen. So werden zum Beispiel die ersten Seiten jedes Forums vollständig im Cache gehalten.

Technik

Inyoka baut auf eine ganze Reihe von Open-Source-Anwendungen, diese sind auf der Inyoka-Seite aufgeführt. So wurde Inyoka in Python 🇬🇧 geschrieben, nutzt MySQL 🇬🇧 als Datenbank und SQLAlchemy 🇬🇧 für die Verbindung zwischen Datenbank und Python. Jinja 🇬🇧 kommt als Template Engine zum Einsatz und erleichtert damit die Erzeugung des XHTML-Codes, während Xapian 🇬🇧 die Suche im Portal ermöglicht. memcached 🇬🇧 ist für das oben beschriebene Caching verantwortlich und werkzeug 🇬🇧 wird "für alles Mögliche" eingesetzt, so der Originalton eines Entwicklers. Es soll in Zukunft Django 🇬🇧, welches derzeit noch einen großen Teil der Arbeit wie das URL-Handling, Erstellung und Validierung von Formularen sowie Annahme und Beantwortung der HTTP-Anfragen erledigt, ablösen.

Ausblick

Inyoka wird als Open Source veröffentlicht werden. Hierzu sind noch viele Änderungen notwendig, da die Software im Moment sehr stark auf ubuntuusers.de zugeschnitten ist. So müssen zum Beispiel die einzelnen Komponenten des Portals deaktiviert werden können und Übersetzungen der Texte und Beschriftungen müssen möglich sein.

Für die Zukunft von ubuntuusers.de selbst stehen derzeit die Beseitigung der gemeldeten Probleme und Umsetzung von Verbesserungswünschen im Vordergrund bevor mit der Entwicklung weiterer neuer Features fortgefahren wird.


Diskussion & Kommentare