Pixel Life, ein Zufallsfund zur Proxemik

Heute ist mir dieser Zufallsfund mit dem Titel „Pixel Life“ in die HĂ€nde gefallen.


2D Display
Quelle: http://vcfgr.deviantart.com/art/Pixel-Life-41416711

Why do I blog this? Die Proxemik hat mich ja lange Zeit beschĂ€ftigt. Und ich finde jetzt immer noch genauso faszinierend wie als ich damit anfing mich damit zu beschĂ€ftigen. Dieses wunderbare 2D Display ist eine schöne und abstrakte Darstellung fĂŒr soziale & proxemische Information. Ich mag das Prinzip der Visualisierung nach dem Vorgehen der Minimization of Data Ink von Tufte. Das hier ist vorbildlich umgesetzt. Danke!

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.