10 Jahre Whatsapp. Denkste!

10 09 2013

Ich seh in den letzten Tagen immer mehr Suchanfragen in meinem Blog nach dem Schema “Whatsapp 10 Jahre”. Gestern erhielt ich dann auch eine dieser nervigen Kettennachrichten in Whatsapp.

wahoax

Ich bekomme also die Whatsapp-Nutzung für ein Jahr geschenkt, wenn ich 10 Leute mit der Nachricht nerve? Im nächsten Absatz heißt es dann, ich bekomme sogar 10 Jahre Gratisnutzung, wenn ich nur 10 Kontakten auf den Keks gehe.

Wie jetzt? 1 Jahr oder 10 Jahre? Hier sollte man schon skeptisch werden. Irgendwas passt da doch nicht.

Um die Nachricht seriöser wirken zu lassen, wird man aufgefordert, doch mal bei Whatsapp auf der Homepage nachzulesen, dass alles in Ordnung ist. Wenn schon die Homepage verlinkt wird, dann wird das schon stimmen. Dann muss ich nicht nachschauen. Die würden ja nicht etwas verlinken, wo nichts darüber steht. Also glauben wir es mal ungelesen.

Natürlich steht auf der Whatsapp-Seite nichts davon, dass man nach solchen Weiterleitungen Whatsapp für einen bestimmten Zeitraum gratis nutzen darf.

Wie wird diese angebliche Aktion eigentlich begründet? Mit dem 10-jährigen Firmenjubiläum von Whatsapp. Im Jahr 2003 soll es schon Whatsapp gegeben haben? Hm. Whatsapp Inc, die Firma hinter Whatsapp wurde 2009 gegründet – also nix mit 10 Jahren.
Selbst ein Teil der von Whatsapp unterstützten Systeme ist keine 10 Jahre alt. Android ist offiziell seit Oktober 2008 verfügbar, iOS würde von Apple im Januar 2007 mit dem iPhone vorgestellt und Windows Phone 7 wurde im September 2010 fertiggestellt.

Zusammenfassend bleibt nur Folgendes zur Nachricht zu sagen: Das ist ein Fake, das ist Verarsche, das stimmt nicht.





Tweetnest ist kaputt. Vorläufig.

14 06 2013

Seit zwei Tagen ist meine Tweetnest-Installation kaputt, es werden keine neuen Tweets mehr archiviert. Dem @DL3NGN ist es heute bei seiner Installation auch aufgefallen.
Das Problem ist die Abschaltung der alten API bei Twitter. Andy Graulund (@graulund), der Tweetnest-Entwickler, ist noch nicht auf die aktuelle API umgestiegen und wird es wahrscheinlich auch nicht so schnell tun:

Das Problem ist schon einige Zeit bekannt - doch noch nicht gefixt. Also entweder warten oder selbst versuchen Tweetnest umzustellen.

P.S. Thinkup funktioniert noch.





Der @ChaosPrinter.

18 04 2013

Wer mir auf Twitter folgt, hat es eventuell schon mit bekommen. Ich habe mal wieder etwas gebastelt. Den @chaosprinter.
Was verbirgt sich dahinter? Ein Thermodrucker, den meisten als Kassenbondrucker bekannt, angeschlossen an einen Raspberry Pi, zur Ausgabe von allem was mir so in den Sinn kommt. Wenn ihr eine Mention an @chaosprinter schreibt, wird sie automatisch ausgedruckt. Ihr könnt es gerne ausprobieren.

tl;dr

Wie kam ich auf die Idee?
Als Knirps war ich in den Ferien hin und wieder mit meinem Paps unterwegs bei ihm auf der Arbeit. Er hat Rohrpost- und Schienenförderanlagen gebaut und gewartet. Die Zentralen dieser Anlagen hatten einen “Fehlerspeicher” – nicht wie heute in ein paar Speicherchips sondern auf Papier. Speicher war damals viel zu teuer und so hat man einen Thermodrucker eingebaut. Allerdings auch nur eine Sparversion. Das Papier wurde auf einen Metallwinkel gefädelt, vor die Thermozeile gespannt und von einen kleinen Motor wurde das Papier befördert. So konnte man auch nach Wochen noch sehen, wann mal ein Fehler passierte – natürlich nur, wenn Papier eingelegt war.
Solch eine Druckereinheit hatte ich in meinem Bastelfundus – allerdings ist alles in Epoxid vergossen, da kommt man also nicht dran. 

Ein wenig in der Bucht suchen und einige verlorene Auktionen später hab ich dann den Chaosprinter erstanden. Es ist ein Star TSP700 der ersten Generation, mit serieller Schnittstelle. Das Netzteil hat etwas mehr Leistung, schließlich brauch der Drucker bei 24 Volt Spannung knappe 2 Ampere unter Volllast.
Der Drucker hat zwei grundlegende Betriebsarten: “ESC/POS” und “STAR Line”.

ESC/POS ist ein Standard von Epson, dieser vereinheitlicht die Kommunikation mit POS (Point of Sale) Druckern. Für diesen Modus gibt es auch schon fertige Bibliotheken die man nutzen kann. Doch leider ist der Funktionsumfang im ESC/POS Modus stark eingeschränkt, der Drucker ist nicht mehr der Neuste und unterstützt nur einige Grundfunktionen des Standards.
Der STAR Line genannte Modus ist ein proprietärer Modus von Star, den auch nur 2 Drucker unterstützen. Dafür ist er aber sehr gut dokumentiert und sehr einfach umzusetzen.

Angeschlossen habe ich den Drucker mit einem seriell-USB-Wandler, da der interne serielle Anschluss meines Raspberry Pi bereits mit einem RFID-Reader belegt ist. Die Kommunikation übernimmt eine kleine selbst geschriebene Python-Klasse mit aktuell nicht einmal 200 Zeilen.
Wer sich schon einmal mit den ASCII-Zeichen kleiner 32 befasst hat, dem fällt die Kommunikation mit dem Drucker leicht. Nahezu alle Befehle werden mit “Escape”, ASCII-Zeichen 27 / 0x1B, eingeleitet.
Wenn numerische Parameter, wie z.B. Seitenränder, gesetzt werden müssen, so kann hier die Zahl als Byte-Wert oder als ASCII-Zeichen gesendet werden. Also beispielsweise eine 1 oder “1″ (ASCII 49 / 0×31). Ich nutze in meinem Skript immer den Bytewert, dies funktioniert zuverlässiger als das entsprechende Zeichen.

Es ist auch möglich Grafiken zu drucken. Dazu gibt es zwei Auflösungen, “normal” und “fine”. Bei normal besteht ein gedruckter Punkt aus 3 Pixeln horizontal und 3 Pixeln vertikal. Fine hingegen erzeugt aus einem zu druckenden Punkt einen Pixel horizontal und drei Pixel vertikal.
Druckbar im Grafikmodus sind maximal 8 Punkte in der Höhe, und 192 Punkte (normal) bzw. 576 Punkte (fine) in der Breite.
Nun besteht ein Bild ja im Normalfall aus mehr als nur 8 Punkten in der Höhe. Gelöst habe ich dies in Python. Die Grafik wird eingelesen, die Farbtiefe herunter gesetzt, so dass nur noch Schwarz-Weiß übrig ist, Grautöne gibt es keine.
Der nächste Schritt skaliert die Bilder, sollten sie zu breit sein, auf die passende Größe.
Im Anschluss wird das Bild abschnittsweise gelesen, immer acht Pixelzeilen auf einmal und auf dem Drucker ausgegeben. Einen ganzen Zeilenvorschub zwischen den Abschnitten kann ich nicht ausführen, sonst würde es Lücken zwischen den gedruckten Abschnitten geben und somit keine zusammenhängende Grafik zustande kommen.
In der Dokumentation finden sich aber auch Befehle, wie das Papier nur einen Bruchteil einer Zeile bewegt werden kann. Somit lassen sich auch größere Grafiken drucken.

Der Drucker unterstützt von Haus aus verschiedene eindimensionale Barcodes. Man sendet nur die Daten und der Barcode wird automatisch erzeugt. QR-Codes kann der Chaosprinter aber auch darstellen, dafür erzeuge ich über eine Python-Bibliothek dynamisch eine Grafik, die sofort im Anschluss gedruckt wird. Dies funktioniert zuverlässig.

Texte gibt man einfacher und schneller im Textmodus aus, allerdings muss man dort mit beschränkten Formatierungsmöglichkeiten auskommen.
Es stehen sechs Schriftgrößen zur Verfügung. Ein Text kann fett, unterstrichen oder invertiert, also schwarzer Hintergrund mit weißer Schrift, ausgegeben werden. Linksbündig, Rechtsbündig und Zentriert sind kein Problem, Blocksatz kann nicht genutzt werden. Man kann den Text auch auf den Kopf stellen sowie von oben nach unten ausgeben. Einen automatischen Zeilenumbruch gibt es nicht. Ist der zu druckende Text länger als die Zeile, wird der Text auf der nächsten Zeile fort gesetzt. Wörter werden hierbei noch am Ende der Zeile begonnen und dann am Anfang der nächsten Zeile vervollständigt.
Solltet ihr in unterschiedlichen Sprachen drucken wollen, auch dies ist kein Problem, der Drucker bringt einige Codepages mit, die aktiviert werden können. Natürlich müsst ihr euch selbst darum kümmern, dass das Encoding eures Textes beim Senden korrekt ist.

Damit man das Papier nicht abreißen muss, gibt es noch einen eingebauten Schneidemechanismus. Dieser schneidet auf Befehl das Papier komplett durch oder lässt in der Mitte einen Steg stehen.

Weitere Funktionen des Druckers, die ich bisher noch nicht genutzt habe, sind die Möglichkeit, ein Logo im Drucker zu hinterlegen und die Benutzung des “Cashdrawer” Anschlusses.
Die Logofunktion erlaubt es einem eine kleine Grafik im internen Speicher des Druckers zu hinterlegen und später direkt von dort drucken zu lassen. Somit spart man sich die immer wiederkehrende Übertragung dieses Logos.
Der Cashdrawer-Anschluss dient dazu, eine Kassenschublade zu öffnen. Dabei wird ein kurzer Impuls auf Anschluss am Drucker, der als Westernbuchse ausgelegt wurde, gegeben. Diesen Anschluss werde ich bei Gelegenheit mit einem Relais versehen um darüber Lasten schalten zu können.

Im nächsten Teil verrate ich euch dann, wie ich die Anbindung an Twitter gelöst habe.





Projekte, Projekte, Projekte.

31 03 2013

Ich habe die Weihnachtsfeiertage das Schneefest Ostern genutzt um mal wieder meine liegen gebliebenen Projekte voranzubringen.

Zum Einen ein “Punchcard-Generator”, dieser funktioniert ähnlich dem von GitHub, läuft lokal und kann Git, SVN visualisieren, Mercurial folgt demnächst. Die Tage werde ich mein lokales Repo auch zu GitHub laden. Hier ein Beispiel des Ironblogger-Repos:

Das zweite Projekt ist ein Star TSP700 Bondrucker. Diesen möchte ich an meinen Raspberry Pi anschließen und mit Python ansprechen. Die ersten Grundfunktionen, wie Textausgabe, Papier abschneiden und einzelne Icons drucken funktioniert schon mal. Die Bauteile für den Pegelwandler, da der RasPi nur 3.3V IO-Ports hat, sind auch da. Da wird also wieder mal der Lötkolben geschwungen.





Erdrosselt.

24 03 2013

Auch wenn ihr sicher schon alle darüber gelesen habt, ich muss jetzt aber auch mal meinen Senf dazu geben. Die Telekom will ihre DSL-Tarife umbauen und eine Geschwindigkeitsdrosselung einbauen.

Verkauft werden darf es dann weiterhin als Flatrate – man bekommt ja den Zugang zum Netz weiter, obwohl die Geschwindigkeit reduziert ist.

Schon jetzt bekommt man bei einem DSL-Anschluss nicht unbedingt das, was man erwartet. Bis zu 16.000 KBit/s heißt nun mal nicht automatisch, dass man auch eine Leitung mit 16.000er Geschwindigkeit bekommt, es kann auch mal nur ne 6.000er sein. “Bis zu” heißt ja nicht “mindestens”.

Dies übersehen einige. Nun aber der nächste Hammer. Es wurden Änderungen bekannt, dass die Telekom ihre Verträge zum Teil schon ab 75 GB Datenvolumen auf 384 Bit/s drosseln will. Inzwischen gibt es eine offizielle Stellungnahme der Telekom zu diesen Gerüchten.

Die Stellungnahme entkräftet leider nichts und es gibt auch kein Dementi.

Es wird gesagt, dass in Zukunft wahrscheinlich (ha ha!) die Leute mehr zahlen müssen, die mehr Daten übertagen. Diejenigen, die dann sparsamer mit dem Datentransfervolumen haushalten werden aber nicht automatisch weniger zahlen als bisher.

Da die Telekom ja am Hungertuch nagt, wird auch gleich auf die Tränendrüse gedrückt. Der arme rosa Schlumpf  magenta Riese muss ja Milliarden aufwenden um das Netz an die immer steigende Bandbreite anzupassen.

Mädels und Jungs, bevor ihr heult, dann macht doch bitte auch mal was. Es wird immer wieder an der Preisschraube gedreht, mit der Begründung, das Netz muss ausgebaut werden. Natürlich wird dann das Argument gebracht, es hätte sich ja so viel getan. Man kann ja inzwischen Fiber 200 bei der Telekom bekommen, so ein Glasfaseranschluss ist schon was feines. Doch nicht jeder kann ihn bekommen.

Noch immer gibt es Ortschaften in Deutschland, da träumt man von Datenraten im vierstelligen Kilobit/s Bereich. Das höchste der Gefühle ist ISDN, wenn es um einen Festnetz-Anschluss geht und EDGE im mobilen Bereich. Nur am Ortsrand, auf einem freien Feld, ohne jegliche Bebauung, erreicht auch UMTS den Empfänger.

Baut doch erst mal wirklich was aus, sorgt für eine flächendeckende Bandbreite von 10 MBit/s, dann reden wir weiter.

Ein gewisser “Thomas” sieht im Verhalten der Telekom kein Problem. Denn wir in Zeiten von “ich mach was mit Cloud” seine Daten in selbiger sichert ist ja kein normaler Anwender sondern macht  den Kram ja sicher geschäftlich.

Nun mal im Ernst. Ich kenne genug Leute, die einfach nur Technik-affin sind und deshalb auch die Möglichkeiten nutzen wollen, die einem die Technik gibt. So soll es doch bitte auch bleiben.





Google Hacker.

15 02 2013

Es musste ja mal so weit kommen! Google hat mein echtes Wesen erkannt. Den bösen, bösen Hacker, der meinen Account kapern will.

Ich bastel gerade an einer Methode, um eine Google+ Statusnachricht, per Kommandozeile, unter Linux, absetzen zu können. Somit könnte man im nächsten Schritt die verschiedensten Tools dazu bringen, was bei Google+ zu posten. Leider gibt es aktuell in der G+ API keine Möglichkeit etwas zu schreiben – die API lässt nur lesende Zugriffe zu.

Mit ein wenig cURL, gewürzt mit ein paar Zeilen Logik kann man aber etwas posten. Wenn man kein böser Hacker wäre … Google hat mich erst mal ausgesperrt:

“vor Kurzem hat jemand versucht, sich in Ihrem Google-Konto (..) anzumelden. Wir haben die Anmeldung verhindert, damit kein Hacker auf Ihr Konto zugreifen kann.”

Wäre ja erst mal kein Beinbruch. Doch es wurde nicht nur die Anmeldung verhindert – nein, auch mein Passwort muss ich neu setzen, um meinen Account wieder zum Leben zu erwecken. Danach konnte ich mit einem Klick bestätigen, dass der Zugriff von keinem Hacker kam, sondern von mir. Dann läuft auch das Skript.

Ziemlich nervig meine Lieblingsdatenkrake.





Tweetnest, Hovercards und SSL.

3 02 2013

Wie meine treuen Leser ja wissen, nutze ich Tweetnest. Nun läuft es bei mir aber auf einer Seite mit SSL-Verschlüsselung.
Soweit kein Problem. Das Einzige, was nicht mehr funktionierte nach der Umstellung auf SSL waren die Hovercards von Twitter (für die man den Anywhere-API-Key benötigt).

Nachdem ich mir in meinem Browser mal genauer angeschaut habe, was passiert habe ich schon das Problem gefunden. Es werden Javascript-Dateien nachgeladen, die nicht über eine sichere Verbindung kommen. Da wäre zum einen jQuery und zum anderen die Anywhere-API.

Die Lösung dafür ist absolut einfach – es müssen nur die URLs der beiden Dateien von http auf https umgeschrieben zu werden. Versteckt sind diese in der Datei “header.php” im Tweetnest-Unterverzeichnis “inc”.

Als Erstes sucht ihr nach: http://ajax.googleapis.com/ajax/libs/jquery/ Ändert dies zu: "https://ajax.googleapis.com/ajax/libs/jquery/"Die zweite URL, die ersetzt werden muss, lautet: http://platform.twitter.com/anywhere.js?id= Ändert sie auf: https://platform.twitter.com/anywhere.js?id=

Nun funktionieren die Hovercards auch mit SSL.





Tweetnest Installationsanleitung.

23 01 2013

Nachdem mich einige gefragt haben, wie man denn Tweetnest überhaupt installiert und auch die Heldenstadt meiner Anleitung nicht ganz folgen konnte, schreibe ich hier mal eine ausführlichere Anleitung.

Ich muss zugeben, die vorherige Anleitung zum Import seines Twitter-Archiv-Downloads setzte einiges an Wissen voraus und Tools wie z.B. git sind nicht auf jedem Rechner vorhanden und auch einen Shell-Zugang zu seiner Webseite hat nicht jeder.

Daher nun eine Anleitung für Leute mit Webspace auf dem PHP und MySQL verfügbar sind und sonst nichts weiter benötigt wird.

Besorgt euch als Erstes den aktuellen Stand von Tweetnest. Wenn ihr den Link zum Fork des Users tralafiti anklickt, seht ihr einen Button mit der Aufschrift “Zip”, dort wird die aktuelle Version auf euren Rechner herunter geladen.

Entpackt das Archiv, ihr erhaltet einen Ordner “tweetnest-master”. Diesen einfach in “tweetnest” umbenennen und auf euren Webspace hochladen.
Nun öffnet im Browser die Adresse eurer Webseite und fügt “/tweetnest” am Ende hinzu. Es sollte sich nun die Installationsseite von Tweetnest öffnen. Hier müsst ihr das Formular mit euren Daten ausfüllen.

Das Feld “TWITTER SCREEN NAME:” ist selbst erklärend, hier tragt ihr euren Twitternamen ein. Auch die Zeitzoneneinstellung ist keine Hexerei. Für Deutschland wählt ihr bei “YOUR TIME ZONE:” einfach “Europe/Berlin” in dem Feld aus.

Die nächste Textbox ist mit “TWEET NEST PATH:” benannt, diese wird automatisch gefüllt und sollte nur geändert werden, wenn ihr wirklich wisst, was ihr da macht. Also so stehen lassen.
Der nächste Abschnitt ist für die Datenbank-Konfiguration zuständig.
Tragt dort eure MySQL-Zugangsdaten ein, solltet ihr sie nicht wissen, schaut in der Doku eures Anbieters nach oder fragt diesen. Die Datenbank, die Tweetnest nutzen soll, muss schon vorhanden sein. Das Feld “TABLE NAME PREFIX:” müsst ihr nicht ändern, im Normalfall ist die Einstellung in Ordnung.

Die nächsten zwei Felder drehen sich um das Admin-Passwort. Da ich ja davon ausgehe, dass ihr keinen Shell-Zugang zu eurem Webspace habt, setzt hier bitte ein Passwort. Dies sollte natürlich nicht identisch mit eurem Passwort bei Twitter sein.

Die Haken bei ““FOLLOW ME” BUTTON” und “SMARTYPANTS” können einfach gesetzt bleiben.

Das Feld “@ANYWHERE API KEY” lasst ihr leer, dies ist für den Betrieb von Tweetnest nicht zwingen notwendig.

Ein Klick auf “Submit and Setup” schließt die Einrichtung ab. Löscht im Anschluss die Datei “setup.php” von eurem Webspace.

Der erste Schritt nach dem Setup ist das Aufrufen der Load User Seite. Diese erreicht ihr, indem ihr an die Domain eures Webspace “tweetnest/maintenance/loaduser.php” anfügt.

Wenn ihr also “www.twitterarchiv.tld” besitzt, so müsst ihr nun “www.twitterarchiv.tld/tweetnest/maintenance/loaduser.php” aufrufen. Ihr werdet nach einem Benutzernamen und einem Passwort gefragt. Der Nutzername ist euer Twittername und das Passwort ist das bei der Installation vergebene Admin-Passwort.

Die nächsten Schritte kümmern sich um den Import des Twitter-Archivs. Die Zip-Datei, die ihr bei Twitter herunter laden könnt, enthält mehrere Dateien und Ordner. Uns interessieren nur die Dateien im Ordner “data\js\tweets”. Für jeden Monat gibt es dort eine Datei, der Dateiname ist immer wie folgt aufgebaut: “jjjj_mm.js”. So heißt beispielsweise die Datei für den Januar 2013 “2013_01.js”. Alle Javascript-Dateien aus dem tweets-Ordner nehmt ihr nun und ladet sie in den schon vorhandenen Ordner “tweetnest/archive” auf eurem Webspace.

Nun wird die Seite “maintenance/loadarchive.php” im Browser aufgerufen, die komplette URL müsst ihr euch wieder wie im oben beschriebenen Beispiel zusammenbauen.
Normalerweise startet man den Import über den Shell-Zugang, dort gibt es dann auch keine Probleme. Über den Browser hat eine PHP-Datei nur eine beschränkte Ausführungszeit, dann wird der Import abgebrochen und ihr seht eine Fehlermeldung eures Browsers (“Zeitüberschreitung”).
Keine Sorge, dies ist nicht weiter problematisch und der Entwickler des Skripts hat dies berücksichtigt. Ladet einfach die Seite neu, nachdem der Fehler aufgetreten ist. Dies wiederholt ihr nach jeder Fehlermeldung. Je nach Server, auf dem ihr euren Webspace habt, kann mit einem Mal laden zwischen 2500 und 5000 Tweets importiert werden. So könnt ihr grob überschlagen, wie oft ihr die Seite aufrufen müsst.
Versucht aber nicht wie im Wahn die Seite neu zu laden, dass beschleunigt nichts. Also immer erst die Fehlermeldung abwarten und schauen, dass der Browser nicht noch versucht die Seite zu laden. Bei den meisten Anbietern ist das Timeout auf 60 Sekunden gesetzt, d.h., nach 60 Sekunden wird der Import abgebrochen und erst dann ladet ihr die Seite neu.

Wenn ihr dann die Seite “Tweet Nest: Loading tweets from archive” seht, dann ist der Import komplett abgeschlossen.

Nun könnt ihr Tweetnest benutzen.
Damit Tweetnest auch eure zukünftigen Tweets empfangen kann, müsst ihr regelmäßig die Seite “maintenance/loadtweets.php” aufrufen. Bei diesem Aufruf werden maximal 3200 Tweets der Vergangenheit geladen, wer also extrem häufig twittert, muss die Aktualisierung häufiger laufen lassen als der wenig-Twitterer.





Das eigene Tweetarchiv.

19 01 2013

Viele von uns sind bei Twitter anzutreffen. Wir pusten unsere Gedanken ins Netz und dort verschwinden sie nach ein paar Tagen im Nirvana. Keiner erinnert sich mehr daran, die Chance nachzulesen ist bei Twitter auch nicht gerade einfach. Wenn ich einen meiner ersten Tweets lesen will, klappt das nicht.

Nun gibt es seit einiger Zeit Tools wie Tweetnest und Thinkup. Beide archivieren eure Tweets. Tweetnest ist spartanisch gehalten, ihr seht eure Tweets, könnt auf einer Zeitleiste einzelne Tage auszählen oder eine Textsuche bemühen.
Thinkup sichert nicht nur Tweets, ihr könnt dort auch Facebook, Google+ und Foursquare einbinden und eure Statusupdates sichern. Außerdem gibt es einige Auswertungsmöglichkeiten und mehr oder weniger sinnvolle Grafiken, neudeutsch Charts.
Beide Tools haben aber einen Nachteil, sie können durch eine Beschränkung der Twitter-API nicht besonders weit in die Vergangenheit schauen. Diese Twitter-API ist die Verbindung der Programme zu euren Tweets. Twitter erlaubt es nur 3200 Tweets der Vergangenheit zu laden. Wer also zum Installationszeitpunkt eines Tools mehr als 3200 Tweets hat, schaut in die Röhre. Eure Tweets, die ihr in Zukunft schreibt, werden alle erfasst – wenigstens da seid ihr auf der sicheren Seite. Ich habe Tweetnest seit über einem Jahr laufen und habe dort etwas über 13.000 Tweets gesammelt. Somit fehlten mir aber über 23.000!

Twitter bietet nun seit einiger Zeit die Möglichkeit, seine Tweets herunter zu laden. Diese Funktionalität wird nach und nach für alle Nutzer freigeschaltet.
Der Punkt ist in den Account-Einstellungen im unteren Teil zu finden, wenn er für euch aktiviert ist.
Auch hier kommt ihr nicht sofort an eure Tweets, ihr müsst erst einen Download anfordern. Dies geht ganz einfach via Mausklick und dann heißt es warten. Bei mir betrug die Wartezeit nur 5 Minuten. Die Zeit variiert aber. Wenn der Download endgültig bereitsteht, bekommt ihr eine Mail mit dem Downloadlink.

Bei mir sind (nahezu) alle Tweets enthalten. Ca. 20 Stück sind trotzdem irgendwo im Datenorkus verschwunden.
Das Twitter-Archiv enthält alles, was man benötigt um seine alten Tweets anzuschauen – ihr benötigt lediglich einen Browser.
Wenn die Daten schon mal da sind, dann könnte man sie ja gleich weiter nutzen. Wie sind sie denn abgelegt? Jeder Monat wird in einer separaten Datei gespeichert. Einmal als CSV-Datei und einmal als JavaScript-Datei. Interessant an den JavaScript-Dateien ist die Tatsache, dass es nahezu sauberes JSON ist – lediglich die erste Zeile stört.
Ein “tail -n +2″ würde unter Linux in diesem Fall schon weiter helfen.

Da ich sicher nicht der Erste bin, der die Daten nutzen will, fragen wir doch mal unsere freundliche Datenkrake Google, wie es diesbezüglich aussieht. Siehe da, es gibt einen Fork des originalen Tweetnests auf GitHub. Dieser enthält nicht nur einen Import, sondern ist auch auf dem aktuellen Tweetnest-Stand.
Ein beherztes “git clone git://github.com/tralafiti/tweetnest.git” später und ich hatte die Version auf meiner Platte. Noch schnell die Tweetnest-Konfiguration (“inc/config.php”) und die dazugehörige Datenbank sichern, die geänderte Tweetnest-Version einspielen und die Konfiguration wieder zurückspielen.

Diese Tweetnest-Version benötigt noch eine Änderung der Datenbank, die ID jedes Tweets darf nur noch einmal vorkommen. Doch keine Sorge, ich müsst euch darüber keine Gedanken machen. Mittels “php upgrade.php” startet ihr ein mitgeliefertes Skript, welches euch die Arbeit abnimmt.
Das ging einfacher als gedacht. Nun die Javascript-Dateien aus dem Twitter-Export in das Verzeichnis “archive” kopierten und den Import mittels “php maintenance/loadarchive.php” anschmeißen. Etwas mehr als 15 Minuten später waren meine fast 36.000 Tweets importiert, es gab keine Dopplungen und ich kann sie wie von Tweetnest gewohnt durchsuchen und mir der Zeit nach geordnet ansehen.
Wie bereits erwähnt, fehlen 20 Tweets, dies kann ich persönlich aber verschmerzen. Die zukünftigen Tweets werden dann über den Tweetnest eigenen Mechanismus wie gewohnt abgerufen und gespeichert.





Zwei-Faktor-Authentifizierung.

28 11 2012

Jeder kennt sie, die Zwei-Faktor-Authentifizierung, teilweise ohne sich dessen bewusst zu sein. Selbst die Leute, die mit Technik nichts am Hut und am Rechner zwei linke Hände haben.
Wie kann man sich überhaupt authentifizieren? Es lassen sich drei Gruppen ausmachen: Besitz, Wissen und Biometrie.

Der Besitz:
Jemand besitzt etwas mit dem Er sich authentifizieren kann. Beispiele aus dem Alltag währen z.B. ein Schlüssel, die EC-Karte oder ein Personalausweis. Mit dem passenden Schlüssel authentifiziert man sich quasi gegenüber dem Schloss und kann dieses öffnen oder mit dem Personalausweis, kann man sich gegenüber der Polizei authentifizieren, wer man ist.

Das Wissen:
Jemand weiß etwas um sich zu authentifizieren. Dies kann das Passwort zum Twitter-Account sein oder die PIN-Nummer der SIM-Karte im Handy.

Die Biometrie:
Hierfür werden körperliche Merkmale verwendet, die absolut eindeutig eine Person authentifizieren. Zur Authentifizierung mittels biometrischen Merkmalen werden beispielsweise der Fingerabdruck oder ein Irisscan verwendet. Der Vorteil der Biometrie ist, dass man seine Merkmale immer dabei hat – vorausgesetzt, man schneidet sich nicht ausversehen den Finger ab. ;)

Die Zwei-Faktoren-Authentifizerung nutzt nun, wie der Name es schon vermuten lässt, zwei dieser Faktoren. Im Alltag wäre das beispielsweise die Authentifizierung am Geldautomaten. Ich besitze etwas, meine persönliche EC-Karte und ich weiß etwas, meine PIN-Nummer. Nur so komme ich an mein Geld.

Solche Authentifizierungsverfahren gibt es auch online. Damit erhöht man die Sicherheit im Vergleich zur Authentifizierung nur über ein Passwort. Selbst wenn das Passwort zu einem Account erraten oder abgefangen ist, es ist nur ein Teil der Authentifizierung. Ohne den zweiten Teil ist das Passwort nichts wert. Google bietet einem schon länger die Möglichkeit, seinen eigenen Account zu schützen, indem man außer dem Passwort auch noch einen Code eingeben muss. Dieser Code ist nur eine begrenzte Zeit gültig. Im Firmenumfeld realisiert man die Codeerzeugung meist über sogenannte Tokens. Diese kleinen Geräte werden einmalig initialisiert und erzeugen dann auf Knopfdruck einen mehrstelligen (Zahlen-)Code. Das Problem hier ist allerdings, dass man bei mehreren Zugängen auch mehrere dieser Geräte dabei haben muss.
Ich persönlich habe zwei dieser Tokens bei mir, mehr würde ich aber nicht haben wollen – irgendwann wird es einfach unpraktisch.
Damit Google nicht jedem Anwender solch einen Token zuschicken muss, was nicht nur ein ziemlicher Aufwand, sondern auch mit einigen Kosten verbunden wäre, nutzt der Anwender sein Handy. Entweder bekommt man jedes Mal eine SMS geschickt, ähnlich dem mTan-Verfahren, welches teilweise beim Onlinebanking eingesetzt wird oder aber man installiert eine Anwendung auf seinem Telefon und generiert den Code selbst.

Für die Neugierigen und Interessierten unter euch, der von Google verwendete Algorithmus für das “Time-Based One-Time Password (TOTP)” ist in dem RFC 6238 zu finden.

Auch andere Dienste und Unternehmen setzen auf das TOTP-Verfahren. So kann man bei Amazon AWS nicht nur einen Hardwaretoken nutzen, sondern auch eine App. Man muss nur das “virtual MFA device” auswählen. MFA steht bei Amazon für “Multi-Factor Authentication”. Auch Dropbox hat die Zwei-Faktor-Authentifzierung eingeführt, nach der Aktivierung in den Einstellungen muss man sich auf der Webseite mit Passwort und dem jeweils neu erzeugten Code einloggen.

Eine kleine (und nicht vollständige) Auswahl der Apps, die einem das TOTP erzeugen können sind der Google Authenticator, Amazon AWS MFA und Authenticator. Mit diesen drei Apps sind die gängigen Smartphones, Android, iPhone, BlackBerry und Windows 7, abgedeckt.

Da der Algorithmus hinter TOTP bekannt ist, gibt es die verschiedensten fertigen Implementierungen in Java, Javascript, Python, C# und anderen Sprachen.
Wie man die Zwei-Faktoren-Authentifizierung unter Linux zum Absichern seines SSH-Accounts nutzen kann, verrate ich euch im nächsten Blogeintrag.








Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.