WP Proximo: beta 21 im Test


Das Wochenende habe ich genutzt, um WP Proximo – das WordPress Plugin das man unten links sieht – ein Stück voran zu bringen.

Es läuft jetzt in der beta 21, was einen ziemlichen Schritt bedeutet. Mit Hilfe einer Topologie des Blogs (eine Art digitaler Karte aller Postings) kann das Proximeter (Anzeige unten links) die Position der Personen in absolutem Bezu zueinander bestimmen.

Personen die ältere Posts lesen, oder in statischen Seiten unterwegs sind, sieht man links im Proximeter, je aktueller das gelesene Post, desto weiter rechts finden sich die Besucher.

Das war NICHT trivial zu bauen! Damit PHP performant bleibt bei der Suche in der Karte für jede einzelne Person, habe ich mit einigen Tricks die Karte gecached, so dass diese nicht bei jeder Anfrage neu ermittelt werden muss. Jetzt bin ich mal gespannt, ob das Blog das aushält…

Why do I blog this? Das war ziemlich aufwändig! Eine komplette Tree-Structure für eine Karte zu implementieren und die Distanzfunktion einzubauen. Derzeit ist die Distanzfunktion noch nicht optimal, da werde ich noch einiges optimieren müssen. Aber für’s Erste schon ganz cool. :-D

Hacking WordPress: Das WP Proximo Projekt

Vor etwa drei Wochen habe ich einen Entschluss gefasst: Ich wollte meine Arbeit, die ich zur Virtuellen Proxemik geleistet habe nicht länger in der Schublade liegen lassen. Zur Virtuellen Proxemik habe ich hier schon einige Beiträge geschrieben. Ich hoffe es werden demnächst noch weit umfangreichere und spannendere Beiträge hinzukommen.

proximo_frontend

Frontend Bild 3 anzeigen Frontend Bild 2 anzeigen Frontend Bild 1 anzeigen

Das Frontend des WP Proximo Plugins:
Hier wird kommuniziert und die „Nachbarschaft“ als Visualisierung dargestellt.

Hacking WordPress: Erste Schritte in WP/PHP

prox_notificationAls Konsequenz meines Entschlusses von vor drei Wochen habe ich mich hingesetzt und begonnen mich mit dem Inneren von WordPress zu beschäftigen, also das Softwaresystem, das WordPress ausmacht (Eine mysql-Datenbank eine Menge PHP-Dateien und viele bunte Grafiken und Stylesheets).

Und dann habe ich einfach begonnen PHP zu lernen, denn das habe ich vorher nie benutzt – zugegebener Maßen weil ich auch ein wenig zu Stolz war auf meine objektorientierten Software Engineering Kenntnisse in Java, so dass ich PHP als billige Scriptsprache ohne Struktur abgetan habe. Nunja, was hilft einem Stolz, wenn das erfolgreichste Bloggingsystem damit realisiert ist und dieser einem im Weg steht? Nichts! Also hab ich einfach angefangen und ich muss sagen… es ist einfach. Viel einfacher als gedacht.

Just do it: Das WP Proximo Plugin entsteht

prox_messengerIch habe begonnen eine Softwareerweiterung für WordPress zu entwickeln, mit dem Zweck Virtuelle Proxemik in die Praxis zu bringen. Natürlich mit dem Hintergedanken, aus der Praxis widerum Forschungsmaterial zu generieren. Sagen wir einfach es ist mein nächstes kleines wissenschaftliches Experiment, diesmal als weltweiter Feldversuch angelegt.

Seit drei Wochen habe ich nun deutlich mehr Zeit am Rechner verbracht, als ich wollte, der regnerische Sommer 2009 hat es mir allerdings leicht gemacht. Das Ergebnis meiner Bemühungen kann man unten links in der Ecke sehen. Es ist ein Plugin, das jeder WordPress-Blogger installieren kann. Derzeit ist es allerdings noch in einer closed beta Phase in der nur ausgewählte Personen dieses testen.

Ergebnisse bisher: Frontend & Backend

prox_autopilotEntstanden ist ein bislang schon mächtiges Plugin, das sich deutlich von anderen Plugins unterscheidet. Es ermöglicht die direkte Kommunikation im Blog (Instant Messenger) aber was viel wichtiger ist, es zeigt auf jeder Seite, wer noch online ist zu diesem Zeitpunkt und wo. Neben Funktionen wie dem Messenger habe ich nach und nach einige weitere Dinge eingebaut. U.a. einen Autopiloten, mit dem man geführte Blogtouren machen kann.

Seit etwa einer Woche scheint jedoch Stillstand zu herrschen. Dem ist nicht so! Ich hatte mich nocheinmal richtig angestrengt und wollte das Plugin eigentlich bei der WordPress Plugin Competition einreichen. Nachdem ich aber eine Schlüsselbedingung nicht mehr rechtzeitig geschafft hätte, habe ich davon abgesehen teilzunehmen und stattdessen weiterentwickelt was das Zeug hält.

Virtuelle Proxemik: A Network-of-Neighbourhood

Was mir seit Jahr und Tag eigentlich schon immer in WordPress gefehlt hat, war die Vernetzung der Blogs untereinander nach dem Schema, wie das bei Facebook und anderen Plattformen möglich ist, nämlich mit der Funktion „Freunde werden“. Klar, es gibt die Blogroll, aber jeder fügt manuell URL’s hinzu und die Hinzugefügten bekommen das meist gar nicht oder erst recht spät mit. Das muss ja nicht sein!

Ursache ist letztlich eine eng begrenzte Wahrnehmung, man müßte schon alle in Frage kommenden Blogs nach und nach abklappern um zu sehen, wo man auf der Blogroll steht. Also habe ich in der letzten Woche eine mächtige Basisinfrastruktur für die automatische Vernetzung von WordPress-Blogs entwickelt.

Ich nenne diese Funktion Network-of-Neighbourhood (NoN), weil sie erlaubt ein Netzwerk aufzubauen durch „Nachbarschaften“. Man kann also mit dem Plugin befreundete Weblogs ganz einfach in ein Nachbarschaftsnetz integrieren und eine Nachbarschaftsanfrage losschicken.

proximo_backend

Das Backend im Administrationsbereich:
Hier kann man als Blogbesitzer die notwendigen Einstellungen vornehmen und sein Netzwerk pflegen.

Nächste Schritte: API, Public Beta und Testing

Die Umsetzung dieser Funktion ist bereits sehr weit fortgeschritten. Derzeit überarbeite ich ein langfristig erweiterbares Protokoll/API für die Nachbarschaftskommunikation zwischen Blogs. Meine Idee ist jedoch etwas weitergehend, denn die Nachbarschaftsbeziehung zu anderen Blogs soll eine erweiterte Wahrnehmung ermöglichen. Besucher sollen künftig ein „Gefühl für die Nähe“ zu anderen Besuchern in anderen Blogs erhalten können. Dafür wird über das Kommunikationsprotokoll ein steter Austausch von Präsenz- bzw. Kopräsenzdaten der Besucher ermöglicht.

Ich hoffe in diesem Monat die Public Beta Phase einläuten zu können, so dass jeder sich selbst ein Bild von der Erweiterung machen kann. Dafür muss ich allerdings noch die Metrikfunktionen einbauen, die Besucher in einen Kontext zueinander bringen. Noch eine Menge Arbeit wartet…

Update:
Wer möchte kann übrigens auf dem Laufenden bleiben über den Twitteruser @virtualproxemic und diesem folgen.
vp_tweeter

Why do I blog this? In Kürze habe ich vor einen umfangreicheren Test zu starten. Sobald das API einigermaßen stabil ist, werde ich das Plugin für einige Personen zum download und testen freigeben. Derzeit arbeite ich aber noch am API, der Metrik zur stabilen Abbildung der Besucher auf der Anzeigefläche unten links (derzeit ist die Anordnung Zufall) und einem Widget für die Sidebar zur Anzeige eine Blogroll 2.0, much work to be done… :-D

Falls das Plugin übrigens erfolgreich werden sollte, steht mein nächstes Plugin-Projekt schon fest: Eine Verwaltung für eigene wissenschaftliche Publikationen im Blog als kostenpflichtiges Plugin plus eventuell ein Literatursharing-Plugin, das auch mit DOI’s und ISBN’s usw. umgehen kann. Dann noch einige Widgets und ein neues WordPress Template das Widget-fähig ist. Generation C64 greift in die Tasten… yess!

WordPress Plugins entwickeln und debuggen

logo-wp-codeWer in den letzten Tagen hier im Blog reingeschaut hat, der hat vielleicht unten links in der Ecke eine merkwürdige neue Einblendung vorgefunden. Eine Reihe von kleinen blauen und grünen Männchen (von kleinen grünen Männchen wollt‘ ich schon immer mal schreiben) hüpfen dort scheinbar ziellos hin und her. Der Hintergrund dieser Männlein ist ein kleines Pet-Project namens „proximo“ das ich gerade verfolge.

Ausgehend von meiner Doktorarbeit zur Virtuellen Proxemik habe ich mich an den Versuch gewagt die darin erforschte Softwarekomponente – die bis dato nur in der E-Learning Software EverLearn zum Einsatz kam – zu portieren auf WordPress (WP) und ein Plugin für WP zu entwickeln, das exakt das Gleiche und noch ein wenig mehr können soll.

Ich denke, dass WordPress genau die richtige Plattform ist, um das Konzept der virtuellen Proxemik in die Breite zu bringen. WP Blogs sind weit verbreitet und jeder mag es Besucher auf seinem Blog zu haben. Zukünftig kann man die Besucher und diese sich gegenseitig beim Blogbesuch ‚live‘ sehen und sich unterhalten. Man muss aber nicht, wenn man nicht will.

Um dieses Plugin zu bauen, ist schon ein wenig Arbeit nötig. Da ich bislang eher wenig in dem PHP-Code von WP verändert habe – ab und in in meinem Theme okay – bin ich ganz froh über jede erdenkliche Hilfe. Und da kommt mir das vom WordPress Experten Frank Bültke gerade erst online gestellte Plugin „Debug Objects“ wie gerufen. Für alle Neueinsteiger und Profis, die den WP-Loop komplett verstehen wollen ein absolutes Pflichtplugin! Danke Frank.

Update 11.7.2009
Die Entwicklung des WP Proximo-Plugins (siehe linke untere Ecke) macht Fortschritte. Viele Features sind bereits hinzugekommen. Hier eine Liste der letzten Änderungen und wichtigsten Funktionen:

  • Ermittlung der Aufenthalts-URL im Blog im PHP. Seitentitel wird dann per AJAX von echten Besuchern geliefert
  • AJAX-Calls werden gegen hacking geschützt über wp_nonce-codes und sind sehr robust
  • Robot-Detection anhand des Useragent, insb. Feed-Bots (inkl. Darstellung als Roboter-Figur)
  • Ausgiebige Tests auf allen möglichen Browsern insbesondere mit der JS-Loader-Sequenz (WIN:IE8, FF, Opera, Safari; MAC:Safari, FF, Opera, iCab, OmniWeb, Camino)
  • Anzeige von relativem Uhrzeit/Datum in den Textmessages
  • Audio-Beep bei neuen/ungelesenen Messages und Notification-Grafik auch nach Sprung auf neue Seite
  • Alle Figuren sauber als PNG neu gerendert, kein GIF mehr
  • Proximo merkt sich ob es ein- oder ausgeklappt ist
  • Gesamter PHP-Code objektorientert und einfach wartbar
  • Automatische Upgradefunktion für eventuelle Datentabellenänderungen (Plugin-Versionierung)
  • Administration mit automatischer Installationsüberprüfung bei verschiedenen Themes des Plugis versehen
  • JavaScript hochkomprimiert (über 55% Speicher eingespart bei Übertragung)
  • Update: Soeben ist der Autopilot als Feature hinzugekommen!

Why do I blog this? Die Entwicklung eines WP Plugins ist eine echte Herausforderung. WP selbst hat eine komplexe Struktur des Ablaufs die selbst Profis nicht „mal eben so überschauen“ bei der Generierung einer Seite als Antwort auf einen HTTP-Request. Dennoch ist sehr viel gute Dokumentation im Netz vorhanden, um schnell dahin zu gelangen wo man hinmöchte. Debug Objects ist perfekt, um auch Konflike des eigenen Plugins in Entwicklung zu entdecken.