seeseekey.net - Invictus Deus Ex Machina

In der Wiki­pe­dia kann man sich anonym an der Erstel­lung und Ver­bes­se­rung von Arti­keln betei­li­gen. Pro­ble­ma­tisch wird das ganze nur dann wenn bestimmte Inter­es­sen­grup­pen ver­su­chen, einen Arti­kel zu ihren Guns­ten zu beeinflussen.

Der Bun­des­e­dit Twitter-Account

Für einen Fall die­ses Pro­blem gibt es mit Bun­des­e­dit eine Lösung. Dabei han­delt es sich um einen Twitter-Bot wel­cher anonyme Ände­run­gen aus der Wiki­pe­dia, wel­che aus dem Netz des Bun­des gesche­hen sind, twit­tert und sie damit für die Öffent­lich­keit nach­voll­zieh­bar macht. Neben dem Twitter-Account @bundesedit, gibt es mitt­ler­weile auch @euroedit und @landesedit. Die offi­zi­elle Seite des Pro­jek­tes ist unter ande­rem unter bundesedit.de zu finden.

Ich hatte vor eini­ger Zeit einen Status-Bot für Twit­ter geschrie­ben. Die­ser Bot schaut ob eine Bedin­gung erfüllt ist und twit­tern dann einen Satz wie:

Die Tür ist offen.

Wenn die Bedin­gung sich wie­der ändert, könnte der Bot:

Die Tür ist zu.

twit­tern. Aller­dings gibt es da ein Pro­blem. Twit­ter lässt dop­pelte Tweets inner­halb einer bestimm­ten Zeit­spanne (Gerüch­ten zu folge — eine Woche) nicht zu. Damit muss sich der Status-Bot etwas aus­den­ken wenn er die glei­che Nach­richt öfters ver­schi­cken möchte. Wenn man die­ses Ver­hal­ten von Twit­ter nicht kennt, wun­dert sich warum der Tweet nicht abge­schickt wer­den kann. Die ein­fachste Mög­lich­keit ist es hier ein­fach einen Zäh­ler in den Tweet ein­zu­bauen. Alter­na­tiv kann man die glei­che Nach­richt natür­lich in unter­schied­li­che sprach­li­che Kon­strukte packen.

Wenn man Tweet­ping das erste Mal öff­net, fühlt man sich an die Welt­karte aus einem Film erin­nert in wel­chem jeden Moment die Welt untergeht.

Tweet­ping mit Welt­karte und Infofenster

Mit­tels Tweet­ping kann man Twit­ter in Echt­zeit ver­fol­gen. Es zeigt dabei für die ein­zel­nen Kon­ti­nente die aktu­el­len Tweets an und blen­det für jeden neuen Tweet einen wei­te­ren Punkt auf der Welt­karte ein. Dane­ben gibt es noch Sta­tis­ti­ken wel­che eben­falls in Echt­zeit aktua­li­siert wer­den. Zu fin­den ist Tweet­ping unter tweetping.net.

Bei Tweepy han­delt es sich um eine freie unter der MIT-Lizenz lizen­zierte Twit­ter­bi­blio­thek für Python, deren offi­zi­elle Web­seite unter tweepy.org zu fin­den ist. Unter ande­rem wird diese Biblio­thek für den Twit­ter Radier­gummi genutzt. Im Gegen­satz zu frü­her hat sich die Instal­la­tion der Biblio­thek etwas ver­än­dert. Hier­für sollte man jetzt pip nut­zen. Dabei han­delt es sich um ein Tool zur Paket­ver­wal­tung unter Python. Zur Instal­la­tion gibt man im Ter­mi­nal fol­gen­des ein:

curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Damit ist pip instal­liert und kann genutzt werden:

sudo pip install tweepy

Pip instal­liert hier­mit die Biblio­thek Tweety und löst alle Abhän­gig­kei­ten auf, so das diese anschlie­ßend sys­tem­weit genutzt wer­den kann.

Twis­ter klingt nicht nur wie Twit­ter, son­dern sieht so aus. Bei Twis­ter han­delt es sich um eine dezen­trale Platt­form für Micro­blog­ging, ähn­lich Twit­ter. Das ganze basiert dabei unter ande­rem auf dem Bitcoin-Protokoll und Dis­tri­bu­ted Hash Tables. Ziel ist es dabei eine Platt­form auf­zu­bauen, wel­che dezen­tral arbei­tet und damit keine Abhän­gig­kei­ten zu einen ein­zel­nen Anbie­ter hat.

Das Web­in­ter­face von Twister

Bei dem Pro­to­koll und der Refe­renzim­ple­men­tie­rung han­delt es sich um freie Soft­ware, wel­che unter der BSD– und der MIT-Lizenz lizen­siert ist. Die offi­zi­elle Seite ist auf twister.net.co zu fin­den. Der Quell­text der unter­schied­li­chen Imple­men­ta­tio­nen befin­det sich auf Git­Hub.

Einen Ser­ver auf seine SSL-Fähigkeiten zu über­prü­fen ist für den Laien nicht ohne wei­te­res mög­lich. Durch das Bash-Skript testssl.sh sieht dies nun anders aus.

testssl.sh in Aktion

Das freie, unter der GPL2 lizen­zierte Skript, dient dazu die Sicher­heit der SSL-Implementation eines ent­fern­ten Ser­vers zu tes­ten. Die Syn­tax für den Test ist dabei ein­fach gehalten:

./testssl.sh example.com

Dane­ben ver­fügt „testssl.sh“ über wei­tere Optio­nen, wie man der Doku­men­ta­tion ent­neh­men kann. Dem Autor des Skrip­tes kann auf Twit­ter gefolgt werden.

Möchte man in einer .NET respek­tive Mono­spra­che einen Anwen­dung schrei­ben wel­che mit der Twit­ter API inter­agiert, so sollte man hier­für eine Biblio­thek nut­zen um den Auf­wand in Gren­zen zu halten.

tweetinvi.codeplex.com

Eine emp­feh­lens­werte Bibli­to­thek in die­sem Bereich ist dabei Tweet­invi wel­che auf Code­P­lex zu fin­den ist. Tweet­invi ist dabei unter der Micro­soft Public License lizen­siert und somit freie Soft­ware. Die Biblio­thek ist dabei pro­blem­los in der Lage meh­rere Mil­lio­nen Tweets zu ver­ar­bei­ten und befin­det sich in akti­ver Ent­wick­lung. Ein ein­fa­ches Bei­spiel um einen Tweet abzu­set­zen könnte dabei so aussehen:

IToken token=new Token(twitterAccessToken, twitterAccessTokenSecret, twitterConsumerKey, twitterConsumerSecret);
ITweet tweet=new Tweet(tweetText, token);
bool success=tweet.Publish();

Damit hätte man den ers­ten Tweet mit die­ser Biblio­thek abgesendet.

Mit der Twitter-API und einer Daten­quelle kann man eini­ges anstel­len. Und da man es bekannt­lich nicht nur bei der grauen Theo­rie belas­sen sollte, habe ich das ganze in die Pra­xis umgesetzt.

Nekro­lo­gium auf Twitter

Her­aus­ge­kom­men ist dabei der Twitter-Account Nekro­lo­gium wel­cher auto­ma­tisch twit­tert, wenn eine bekannte Per­son ver­stor­ben ist. Als Daten­quelle dient dabei der Nekro­log der Wiki­pe­dia, wel­cher aus­ge­wer­tet und auf neue Todes­fälle unter­sucht wird. Wenn dies der Fall ist, wird ein Tweet abgesetzt.

Es ist immer wie­der inter­es­sant auf wel­ches Ver­hal­ten man bei eini­gen Web­diens­ten gesto­ßen wird. So auch bei Twit­ter. Ich benutze ein Skript wel­ches Tweets und Direkt­nach­rich­ten nach einer gewis­sen Zeit wie­der löscht. Das ist soweit nicht ungewöhnlich.

Die Direkt­nach­rich­ten sind nicht nur beim Emp­fän­ger verschwunden

Aller­dings führt das dazu, das man ein inter­es­san­tes Ver­hal­ten ent­de­cken kann. Wenn Per­son A der Per­son B eine Direkt­nach­richt schickt und Per­son B dar­auf antwortet:

Per­son A: Hallo hast du heute Abend Zeit?

Per­son B: Ja klar.

Nun hat löscht Per­son B die Direkt­nach­richt. Dabei kann es auch die Direkt­nach­richt von Per­son A löschen. Soweit ist das kein Pro­blem, aller­dings wird die Direkt­nach­richt auch bei Per­son A gelöscht. Somit berei­nigt man nicht nur sei­nen eige­nen Post­ein­gang, son­dern auch den des Absen­ders. Ob dies so gewollt ist? Selt­sam ist es allemal.

Ein Tweet ist schnell geschrie­ben und ver­öf­fent­licht. Unter Umstän­den schreibt man dabei Sachen die man eigent­lich lie­ber las­sen sollte. Bei einem unbe­kann­ten Nut­zer stört dies im Nor­mal­fall nie­man­den. Inter­es­sant wird es wenn sol­che Aus­sa­gen von Poli­ti­kern kommen.

politwoops.de

Genau das kann man sich auf der Web­seite http://www.politwoops.de/ anschauen. Dort wer­den die gelösch­ten Tweets von Poli­ti­kern archi­viert, mit der Angabe nach wie vie­len Stun­den, Minu­ten oder auch Sekun­den der ent­spre­chende Tweet gelöscht wurde. Das ist an eini­gen Stel­len durch­aus erhellend.