reclaim social media — testversion 4

felix schwenzel, , in wirres.net    

reclaim social media

vor ein paar monaten (so um die 9) sind sascha lobo und ich am kuhdamm zu besuch bei der digitalen heimat gewesen. vor der republica letzten jahres habe ich mit sacha lobo ein paar php-scripte und proxy-scripte zusammengestöpselt, mit denen man seine inhalte von facebook, twitter, youtube und ein paar anderen diensten in ein wordpress-blog ziehen konnte. wir erzählten christian fenner und remigi illi von unser idee, weil sie interesse und etwas zeit und etwas mehr wordpress-know-how hatten als ich.

zwei monate später hatte remi eine frühe alpha eines wordpress-plugin fertig, der in etwa das gleiche tat wie meine proxy-scripte. der plugin war modular aufgebaut, mit modulen für facebook, google-plus, twitter und youtube. aus verschiedenen gründen, die auch mit mangender zeit und können zu tun hatten, dauerte es nochmal ein paar monate bis ich es endlich schaffte, die vorarbeit von remigi illi auf github zu stellen.

ein bisschen half dabei, dass mein arbeitgeber espresto, bzw. meine chefs und ein paar entwickler auch interesse an reclaim social media hatten und mir erlaubten, auch während meiner arbeitszeit an dem projekt zu arbeiten.

vor versionskontrollsystemen stand ich immer ein bisschen wie der ochs vorm berge. ich glaube einer der gründe war, dass mir das vorstellungsvermögen fehlte diese systeme zu verstehen, die ja fast immer über die kommandozeile bedient werden. github und vor allem der idiotensichere os x client haben es mir aber relativ leicht gemacht das nicht nur zu verstehen, sondern auch intensiv zu nutzen. eigentlich ist das nicht viel komplizierter als FTP, was ich über die kommandozeile allerdings auch nicht nutzen kann — mir fehlt dafür einfach das abstraktionsvermögen.

zusammen mit meinem kollegen sascha kranz habe ich mich dann an die arbeit gemacht. ein bisschen geplant, ein bisschen dokumentiert und ein bisschen den code aufgeräumt und erweitert und angepasst. es ist relativ faszinierend zu sehen, was passiert, wenn man halböffentlich zu mehreren an einer gemeinsamen codebasis arbeit. es spornt an und inspiriert. ich wurde fast ein bisschen manisch. das faszinierende am programmieren ist ja, dass man versucht probleme zu lösen, eins nach dem anderen — und dann oft auch tatsächlich löst. leider bin ich relativ schlecht darin, probleme liegen zu lassen — zumindest probleme die mich interessieren. probleme wie matussek oder sarrazin kann ich relativ gut ignorieren. probleme wie oAuth-authentifizierung oder multidimensionale arrays, kann ich aber sehr schwer ignorieren, unter anderem weil deren lösung (und verständnis) türen öffnet. türen zu beinahe unendlichen möglichkeiten — und weiteren problemen.

irgendwann im dezember fragte sogar die beifahrerin, wann ich denn wieder aufhören würde zu programmieren und zu einen normalen schlaf- und alltagsrhytmus zurückkehren würde. tatsächlich war genau das auch einer der gründe, warum ich die konkrete arbeit an dem projekt im letzten jahr ein bisschen vor mir hergeschoben habe; weil ich wusste, dass es mich schlaf und freizeit kosten würde und vor allem, mich vor faszinierende probleme stellen würde, von denen ich sogar träumen sollte.

mitte januar kamen plötzlich, aus heiterem himmel, pull requests, also neuer code von christian muehlhaeuser (chris.de) in das projekt. um das nochmal zu wiederholden: ich finde das wirklich beeindruckend, dass man an einem projekt halböffentlich arbeitet und plötzlich machen einem vorher unbekannte leute einfach mit. christian muehlhaeusers input hat sehr geholfen, das projekt voranzubringen. er hat die idee vorangetrieben, dass die einzelnen klassen nicht nur die letzten 20 oder 50 oder 100 einträge per API abholen, sondern die ganze timeline, beispielsweise von twitter. er hat den code aufgeräumt und zusammen mit sascha kranz die klassen instanziiert — etwas von dem ich mir noch immer nicht sicher bin wie man es schreibt, aber immerhin ansatzweise erkenne wie nützlich es sein kann.

ein problem haben wir allerdings noch gehabt, denn ein paar tausend tweets oder facebook einträge abzuholen, zu bearbeiten und in wordpress zu speichern dauert ein paar minuten. und nach ein paar minuten, meistens weniger, beenden nullachtfünfzehn server die man als normaler blogger so zum bloggen mietet, die importscripte. man müsste einen weg finden, den import irgendwie aufzuteilen um den server zu schonen.

aus dem blauen löste ein weiterer fremder dieses problem: carsten senf (csenf.de). seine lösung fand ich zuerst total unwahrscheinlich: ajax. der import wird einfach vom browser gesteuert, lässt sich unterbrechen und wiederholen. das funktioniert so gut, dass ich seit kurzem ein grosser ajax-fan bin.

aus dem blauen kam auch daniel nix (nxd4n.nixekinder.be). er hat viele blöde fehler gefunden, gute fragen gestellt und den plugin auf französisch übersetzt.

* * *

ich schreibe das alles auf, weil ich heute einen zwischenstand vom projekt veröffentlich habe, von dem ich glaube, dass es fruststrationstolerante und wordpressaffine interessierte testen könnten. das kann man zwar jederzeit, der code ist ja offen (und GPL lizensiert), aber wenn man noch nie etwas vom composer gehört hat (wie ich noch vor ein monaten), ist die installation nicht ganz trivial. mit dem release ist das einfacher: runterladen, auspacken, den ordner in wp-content/plugins werfen, aktivieren, konfigurieren, fertig.

es gibt noch viele offene punkte, aber diese reclaim-version sollte bereits ganz gut funktionieren. viele der offenen punkte sind in form von issues im github-projekt angelegt. wer sich am projekt beteiligen will, sollte sich auf der github-projektseite zurechtfinden. wer den plugin testen möchte, sollte das auf einer frischen wordpress-installation tun — zumindest nicht auf einer installation, auf der wichtige daten liegen.

ich und die anderen am projekt beteiligten freuen uns sehr über feedback oder hilfe. in den nächsten tagen schreibe ich etwas mehr über den plugin selbst, was er kann, was er (noch) nicht kann und wie er funktioniert und funktionieren soll. meine testinstallation läuft auf wirres.net/reclaim.