DokuWiki – nicht nur als Wiki einsetzbar

DokuWiki ist eine Wiki-Software, die auch als Content Management System verwendet werden kann. Es kommt ebenfalls wie die anderen hier gelisteten Systeme ohne Datenbank zurecht. D.h. die Änderungen am Content werden üblicherweise in Dateien gespeichert. Das erspart die Verwaltung eines Datenbankservers und macht kleinere bis mittlere Installationen deutlich wartungsfreundlicher und einfacher. „DokuWiki – nicht nur als Wiki einsetzbar“ weiterlesen

Google Appengine bekommt PHP

Google AppengineGoogle Appengine unterstützt jetzt PHP. Neben Python und Java wird nun auch PHP als Scripting Lösung für die Webhosting-Plattform eingeführt. Grundsätzlich finde ich das sehr gut. Jedoch bin ich überzeugt, dass Appengine weiterhin nur sehr versierte Webentwickler anziehen wird, weil für den Betrieb der vielen PHP-Anwendungen oft MySQL vorausgesetzt wird. Ist PHP in Appengine nun eine sinnvolle Ergänzung oder der nächste Schritt für Google als Mainstream Hostinganbieter?

PHP ist definitiv Mainstream

Python und Java sind Programmiersprachen, die fast ausschließlich im wissenschaftlichen, professionellen oder kommerziellen Umfeld zu finden sind. Die meisten Hostinganbieter bieten es zwar auch an. Aber der Großteil aller Webanwendungen basieren nun doch auf PHP und MySQL. Will Google jetzt diese Anwender an sich binden?

Ich glaube (noch) nicht. Denn es fehlt hierfür noch die Unterstützung von MySQL. Diese ist zwar auf der Roadmap. Aber keiner weiß genau, wann es kommt. Aber wenn es kommt, dann wird Google sicherlich viele neue Kunden in die Arme schließen.

Nachtrag: Unter https://developers.google.com/appengine/articles/wordpress ist eine Beschreibung zu finden, wie man WordPress ohne MySQL, stattdessen mit CloudSQL zum Einsatz bringt.

Amazon ist weiter

Amazon WebservicesBis dahin muss Google das Feld dem starken Konkurrenten Amazon überlassen. Denn Amazon Elastic Beanstalk, so heißt die Umgebung, die heute genau das liefert. Nämlich klassische LAMP-Anwendungen (Linux, Apache, MySQL, PHP) auf einer High Performance Umgebung von Amazon. Amazon scheint hiermit genau das anzubieten, was bald auch in Appengine funktionieren könnte.

Trotzdem nichts für Anfänger

Auch wenn es sehr verlockend klingt, Webanwendung auf einer Plattform wie Google oder Amazon zu betreiben. Einfach ist es noch nicht. Man muss unter Umständen einfaches Scripting beherrschen, Versionsverwaltungstools (bei Amazon wird GIT vorausgesetzt) einsetzen und sich ab und an auch mal in die Arbeit eines Webservers versetzen. Also wissen, wie ein Request verarbeitet wird und sich dafür eine Response-Methode schreiben.

Dafür aber eine tolle Spielwiese für eingefleischte Webentwickler

Ob Appengine oder Elastic Beanstalk, beide High Performance Plattformen bieten wahnsinnig skalierbare Umgebungen, die mit verschiedenen Programmiersprachen, modernen Webframeworks und Datenbanksystemen daherkommen. Im Falle von Appengine ist bis zu einem nennenswerten Datenverkehr auch alles kostenlos. Erst wenn nennenswert viele Besucherzahlen zu verzeichnen sind, muss man für den Service auch bezahlen. Dies ermöglicht, gerade in der Etwicklungsphase auch mal experimentieren zu dürfen und kostenfrei verschiedene Lösungen zu probieren.

Also doch nur für Profis?

Als Website-Betreiber, der vielleicht WordPress, Joomla oder ein Forum betreibt, kann man diese Meldung sicher getrost ignorieren. Diese Anwendungen lassen sich heute schon per Mausklick bei den klassischen Hostinganbietern wie Strato, Hosteurope und Co. installieren. Wer aber spezielle Weblösungen entwickelt, die extremen Besucherzahlen standhalten muss, dem stehen mit Amazon oder Google heute äußerst flexible Umgebungen zur Verfügung. Nicht selten sind sogar besonders innovative Lösungen dabei entstanden.

Dynamische Mind Map-Generierung mit PHP

Der FreemindFlashBrowser scheint einer der ersten Mind Map-Tools zu sein, mit dem man komfortabel und dazu visuell sehr ansprechend dynamisch Mind Maps für die Darstellung im Webbrowser generieren kann. Es hat zwar keine direkte Schnittstelle oder API dazu. Aber wenn man dynamisch eine Freemind XML-Datei (.mm) in PHP erzeugt, kann man den FreemindFlashBrowser zur Anzeige dergleichen verwenden. Das Ganze funktioniert wie folgt:

Was die Entwicklung besonders vereinfacht ist die Tatsache, dass die in der mitgelieferten HTML-Datei (für die Anzeige des Mind Maps im Web) anzugebende .mm-Datei (im XML-Format) nicht unbedingt die Endung .mm haben muss. Wenn man stattdessen .php verwendet, akzeptiert dies der FreemindFlashBrowser. Zudem ist man in der Lage, bei den meisten Webhostern einfach mit PHP das benötigte XML-Konstrukt zu erzeugen. Das einzige Problem ist nur, dass man keine Post-Variablen an diese Datei übergeben kann. Daher muss man sich mit Get-Variablen und damit die Übertragung über die URL begnügen. Vielleicht existiert hier aber noch eine andere Möglichkeit?!

Wenn man dynamische Mind Maps aus Formulareingaben erzeugen will, sollte die HTML-Datei, die auch den FreemindFlashBrowser als swf-Datei enthält, natürlich die Endung .php besitzen.

Ich habe testweise mal die Standard-HTML-Datei um ein Formular erweitert und eine kleine Webapplikation entwickelt, die ein Mind Map über 2 Ebenen erzeugt. Dabei kann man mit dem Formular die Anzahl Knoten in der ersten und zweiten Ebene bestimmen und damit dynamisch eine Mind Map generieren.

Wer sich für das Thema interessiert kann hier als Anregung alle Dateien dazu herunterladen dynamic-freemind.zip oder auf den folgenden Seiten die Quelltexte ansehen.

Quellcode der XML-Generierung

Hier der Quellcode der XML-Erzeugenden .mm-Attrappe:

\n‘; } } ?>

Quellcode der HTML-Datei (Anzeige)

Und hier die zur Anzeige im Web benötigte HTML-Datei (modifiziert um ein Formular). Weil die Anzeige von HTML auf der Webseite etwas problematisch ist, öffnet sich ein neues Fenster. Dort einfach im Browser den Quelltext anzeigen lassen.

Man beachte für die Variablenübergabe an die .mm-Atrappe besonders den unteren Bereich (fo.addVariable…).