re­cla­im so­cial me­dia — test­ver­si­on 4

felix schwenzel

>

vor ein paar mo­na­ten (so um die 9) sind sa­scha lobo und ich am kuh­damm zu be­such bei der di­gi­ta­len hei­mat ge­we­sen. vor der re­pu­bli­ca letz­ten jah­res habe ich mit sacha lobo ein paar php-scrip­te und pro­xy-scrip­te zu­sam­men­ge­stöp­selt, mit de­nen man sei­ne in­hal­te von face­book, twit­ter, you­tube und ein paar an­de­ren diens­ten in ein word­press-blog zie­hen konn­te. wir er­zähl­ten chris­ti­an fen­ner und re­mi­gi illi von un­ser idee, weil sie in­ter­es­se und et­was zeit und et­was mehr word­press-know-how hat­ten als ich.

zwei mo­na­te spä­ter hat­te remi eine frü­he al­pha ei­nes word­press-plug­in fer­tig, der in etwa das glei­che tat wie mei­ne pro­xy-scrip­te. der plug­in war mo­du­lar auf­ge­baut, mit mo­du­len für face­book, goog­le-plus, twit­ter und you­tube. aus ver­schie­de­nen grün­den, die auch mit man­gen­der zeit und kön­nen zu tun hat­ten, dau­er­te es noch­mal ein paar mo­na­te bis ich es end­lich schaff­te, die vor­ar­beit von re­mi­gi illi auf git­hub zu stel­len.

ein biss­chen half da­bei, dass mein ar­beit­ge­ber es­pres­to, bzw. mei­ne chefs und ein paar ent­wick­ler auch in­ter­es­se an re­cla­im so­cial me­dia hat­ten und mir er­laub­ten, auch wäh­rend mei­ner ar­beits­zeit an dem pro­jekt zu ar­bei­ten.

vor ver­si­ons­kon­troll­sys­te­men stand ich im­mer ein biss­chen wie der ochs vorm ber­ge. ich glau­be ei­ner der grün­de war, dass mir das vor­stel­lungs­ver­mö­gen fehl­te die­se sys­te­me zu ver­ste­hen, die ja fast im­mer über die kom­man­do­zei­le be­dient wer­den. git­hub und vor al­lem der idio­ten­si­che­re os x cli­ent ha­ben es mir aber re­la­tiv leicht ge­macht das nicht nur zu ver­ste­hen, son­dern auch in­ten­siv zu nut­zen. ei­gent­lich ist das nicht viel kom­pli­zier­ter als FTP, was ich über die kom­man­do­zei­le al­ler­dings auch nicht nut­zen kann — mir fehlt da­für ein­fach das abs­trak­ti­ons­ver­mö­gen.

zu­sam­men mit mei­nem kol­le­gen sa­scha kranz habe ich mich dann an die ar­beit ge­macht. ein biss­chen ge­plant, ein biss­chen do­ku­men­tiert und ein biss­chen den code auf­ge­räumt und er­wei­tert und an­ge­passt. es ist re­la­tiv fas­zi­nie­rend zu se­hen, was pas­siert, wenn man halb­öf­fent­lich zu meh­re­ren an ei­ner ge­mein­sa­men code­ba­sis ar­beit. es spornt an und in­spi­riert. ich wur­de fast ein biss­chen ma­nisch. das fas­zi­nie­ren­de am pro­gram­mie­ren ist ja, dass man ver­sucht pro­ble­me zu lö­sen, eins nach dem an­de­ren — und dann oft auch tat­säch­lich löst. lei­der bin ich re­la­tiv schlecht dar­in, pro­ble­me lie­gen zu las­sen — zu­min­dest pro­ble­me die mich in­ter­es­sie­ren. pro­ble­me wie ma­tus­sek oder sar­ra­zin kann ich re­la­tiv gut igno­rie­ren. pro­ble­me wie oAuth-au­then­ti­fi­zie­rung oder mul­ti­di­men­sio­na­le ar­rays, kann ich aber sehr schwer igno­rie­ren, un­ter an­de­rem weil de­ren lö­sung (und ver­ständ­nis) tü­ren öff­net. tü­ren zu bei­na­he un­end­li­chen mög­lich­kei­ten — und wei­te­ren pro­ble­men.

ir­gend­wann im de­zem­ber frag­te so­gar die bei­fah­re­rin, wann ich denn wie­der auf­hö­ren wür­de zu pro­gram­mie­ren und zu ei­nen nor­ma­len schlaf- und all­tags­rhyt­mus zu­rück­keh­ren wür­de. tat­säch­lich war ge­nau das auch ei­ner der grün­de, war­um ich die kon­kre­te ar­beit an dem pro­jekt im letz­ten jahr ein biss­chen vor mir her­ge­scho­ben habe; weil ich wuss­te, dass es mich schlaf und frei­zeit kos­ten wür­de und vor al­lem, mich vor fas­zi­nie­ren­de pro­ble­me stel­len wür­de, von de­nen ich so­gar träu­men soll­te.

mit­te ja­nu­ar ka­men plötz­lich, aus hei­te­rem him­mel, pull re­quests, also neu­er code von chris­ti­an muehl­haeu­ser (chris.de) in das pro­jekt. um das noch­mal zu wie­der­hol­den: ich fin­de das wirk­lich be­ein­dru­ckend, dass man an ei­nem pro­jekt halb­öf­fent­lich ar­bei­tet und plötz­lich ma­chen ei­nem vor­her un­be­kann­te leu­te ein­fach mit. chris­ti­an muehl­haeu­sers in­put hat sehr ge­hol­fen, das pro­jekt vor­an­zu­brin­gen. er hat die idee vor­an­ge­trie­ben, dass die ein­zel­nen klas­sen nicht nur die letz­ten 20 oder 50 oder 100 ein­trä­ge per API ab­ho­len, son­dern die gan­ze time­line, bei­spiels­wei­se von twit­ter. er hat den code auf­ge­räumt und zu­sam­men mit sa­scha kranz die klas­sen in­stan­zi­iert — et­was von dem ich mir noch im­mer nicht si­cher bin wie man es schreibt, aber im­mer­hin an­satz­wei­se er­ken­ne wie nütz­lich es sein kann.

ein pro­blem ha­ben wir al­ler­dings noch ge­habt, denn ein paar tau­send tweets oder face­book ein­trä­ge ab­zu­ho­len, zu be­ar­bei­ten und in word­press zu spei­chern dau­ert ein paar mi­nu­ten. und nach ein paar mi­nu­ten, meis­tens we­ni­ger, be­en­den null­acht­fünf­zehn ser­ver die man als nor­ma­ler blog­ger so zum blog­gen mie­tet, die im­port­scrip­te. man müss­te ei­nen weg fin­den, den im­port ir­gend­wie auf­zu­tei­len um den ser­ver zu scho­nen.

aus dem blau­en lös­te ein wei­te­rer frem­der die­ses pro­blem: cars­ten senf (csenf.de). sei­ne lö­sung fand ich zu­erst to­tal un­wahr­schein­lich: ajax. der im­port wird ein­fach vom brow­ser ge­steu­ert, lässt sich un­ter­bre­chen und wie­der­ho­len. das funk­tio­niert so gut, dass ich seit kur­zem ein gros­ser ajax-fan bin.

aus dem blau­en kam auch da­ni­el nix (nxd4n.nixe­kin­der.be). er hat vie­le blö­de feh­ler ge­fun­den, gute fra­gen ge­stellt und den plug­in auf fran­zö­sisch über­setzt.


ich schrei­be das al­les auf, weil ich heu­te ei­nen zwi­schen­stand vom pro­jekt ver­öf­fent­lich habe, von dem ich glau­be, dass es frust­stra­ti­ons­to­le­ran­te und word­press­af­fi­ne in­ter­es­sier­te tes­ten könn­ten. das kann man zwar je­der­zeit, der code ist ja of­fen (und GPL li­zen­siert), aber wenn man noch nie et­was vom com­po­ser ge­hört hat (wie ich noch vor ein mo­na­ten), ist die in­stal­la­ti­on nicht ganz tri­vi­al. mit dem re­lease ist das ein­fa­cher: run­ter­la­den, aus­pa­cken, den ord­ner in wp-con­tent/plug­ins wer­fen, ak­ti­vie­ren, kon­fi­gu­rie­ren, fer­tig.

es gibt noch vie­le of­fe­ne punk­te, aber die­se re­cla­im-ver­si­on soll­te be­reits ganz gut funk­tio­nie­ren. vie­le der of­fe­nen punk­te sind in form von is­sues im git­hub-pro­jekt an­ge­legt. wer sich am pro­jekt be­tei­li­gen will, soll­te sich auf der git­hub-pro­jekt­sei­te zu­recht­fin­den. wer den plug­in tes­ten möch­te, soll­te das auf ei­ner fri­schen word­press-in­stal­la­ti­on tun — zu­min­dest nicht auf ei­ner in­stal­la­ti­on, auf der wich­ti­ge da­ten lie­gen.

ich und die an­de­ren am pro­jekt be­tei­lig­ten freu­en uns sehr über feed­back oder hil­fe. in den nächs­ten ta­gen schrei­be ich et­was mehr über den plug­in selbst, was er kann, was er (noch) nicht kann und wie er funk­tio­niert und funk­tio­nie­ren soll. mei­ne test­in­stal­la­ti­on läuft auf wir­res.net/re­cla­im.