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.





Feedreader 2 Go.

3 02 2010

Heut zu Tage, ist es ganz modern, bzw. „ultra hip“, wenn man alles „to go“ bekommt.

Der Netcitizen von Welt trinkt seinen Kaffee aus einem Pappbecher2Go, futtert unterwegs den Snack2Go und ließt dank mobilem Datenzugang seine Mails2Go.

Wieso nicht auch seine Feeds2Go? Der Google Reader ist ganz brauchbar, man kann mit ihm seine Feeds verwalten, in verschiedene Gruppen stecken und die mobile Umsetzung für den Browser auf seinem Mobiltelefon ist auch eine feine Sache.

Doch nicht jeder möchte seine Daten bei Google hinterlegen.

TT-Rss

Eine Alternative ist Tiny Tiny RSS (TT-Rss). Dieses Paket installiert man auf dem Server seiner Wahl.

Benötigt wird ein Webserver, PHP und eine SQL-Datenbank.

Ich nutze Lighttpd als Webserver dazu PHP, in der Version 5, eingebunden per fastcgi und MySQL als Datenbank.

Die Bedindung per Browser ist ausgesprochen flott, Ajax sei dank. Doch auch die mobile Implementierung kann sich sehen lassen. Flott und zügig geht es selbst dann voran, wenn mal keine UMTS-Abdeckung verfügbar ist und man nur mit GPRS oder gar GSM surft.
Offiziell werden nur Browser die auf Gecko, WebKit und KHTML basieren unterstützt, doch auch Opera funktioniert ohne weiteres, auch in der Version „mini“ für Mobiltelefone.

Um die Unterstützung des Internet Explorers ist es nicht ganz so gut gestellt wobei dies (für mich) zu verschmerzen ist.

Feeds werden in den Formaten RSS, RDF und Atom unterstützt. Der Import seiner Feedsammlung aus anderen Applikationen ist dank OPML-Import ein leichtes, auch der Export aus TT-Rss gelingt dank OPML spielend leicht.

Die Bedinung ist intuitiv, zum Teil auch über Tastaturkürzel möglich. Die Kürzel sind einprägsam und orientiert sich an den Aktionen die man vornehmen möchte. So kann man den aktuell ausgewählten Feed mit der Tastenfolge f e bearbeiten (Feed Edit).

Jeder Feed lässt sich in eine Kategorie einordnen, die Feeds lassen sich kombinieren, Bilder die als Anhang im Feed vermerkt sind automatisch herunter laden und auch Podcasts können dank integriertem Player genutzt und abegspielt werden.

Hat man einen Server der ständig online ist, lassen sich die Feeds auch automatisiert in bestimmten Intervallen aktualisieren. Dies geschieht über einen Cron-Job. Somit entgeht einem kein Eintrag mehr in Feeds welche sich extrem häufig aktualisieren. Die Abrufintervalle können global sowie für jeden Feed einzel definiert werden.

Eine manuelle Aktualisierung der Feeds ist aber ebenfalls jederzeit möglich.

TT-Rss lässt sich sowohl als Einzelnutzer einrichten als auch im Mehrbenutzerbetrieb. Die Verwaltung des Feedreaders geschieht komfortabel per Webinterface.

Der Platzbedarf schwankt logischerweise nach Anzahl der Nutzer, der Feeds und dem Umfang der einzelnen Feeds. In meiner Konfiguration mit aktuell zwei Nutzern und 235 Feeds mit ca. 22.000 Einträgen belegt TT- Rss knappe 34 MB auf dem Datenbankserver.

TT-Rss ist nicht das Allheilmittel und auch nicht perfekt – doch ein wirklich brauchbares Stück Software welches ich nicht missen möchte.
Ich lese meine Feeds wann und wo ich möchte. Zu Hause, am Arbeitsplatz, mobil vom Handy aus. Feedeinträge welche ich bereits gelesen habe, muss ich nicht noch an einer weiteren Stelle als gelesen markieren, genau erspare ich mir den Abgleich zwischen verschiedenen Readern bezüglich der abonnierten Feeds.





Teamspeak.

27 10 2007

Für die Leute die schon mal mit dem Gedanken gespielt haben, sich einen eigenen Teamspeak-Server zu leisten hier ein paar Infos zu den technischen Hintergründen. Also was ist Teamspeak, was brauch Teamspeak und was kann es.

Recht oft höre ich „Teamspeak ist wie Skype nur mit mehr Leuten“. Teamspeak kann man nicht mit Skype vergleichen – das sind zwei grundlegend verschiedene Dinge. Einfach gesagt ist Teamspeak eine Art Sprachchat – Voice IRC so gesehen.

Jeder spricht mit jedem, man kann die Gespräche aber in Räume aufteilen. Ein Raum (Channel) z.B. für die Admins, einen für User, einen für Off-Topic-Gespräche. Im Gegensatz zu Skype gibt es keine Zweiergespräche – nur die Möglichkeit sich in ein Separee zurück zu ziehen.

Die kostenlose Version ist auf 1000 anwesende User beschränkt und darf nicht für kommerzielle Zwecke genutzt werden.

Auch die Sprachqualität ist eine Andere. Bei Skype kann ich je nach Einstellung und Bandbreite CD-Qualität erreichen, Teamspeak ist irgendwo zwischen analogem Telefon und ISDN angesiedelt, könnte allerdings aufgebohrt werden.

Die Qualität reicht aber locker aus – schließlich soll ja kein Konzert von Kraftwerk in Dolby Digital übertragen werden.

Nutzer die kein Mikro haben können einen Teamspeak-Channel betreten und einfach nur zuhören.

Die Channels lassen sich auch mit Passwörtern sichern – interessant für interne Bereiche. Genauso wie in einem Forum und im Chat können unterschiedlichen Nutzern unterschiedliche Rechte eingeräumt werden.

Hinsichtlich der CPU-Belastung brauch man sich keine Sorgen zu machen. Im Normalfall läuft Teamspeak auf einem Linuxserver. Folgende Anforderungen werden gestellt:

  • ohne ein laufendes X-Window-System:
    • 100 MHz CPU
    • 32 MB Ram
  • mit X-Window-Sytem:
    • 166 MHz CPU
    • 64 MB Ram
  • 6 MB Ram + Platz für Server-Logfiles, falls aktiviert

Der erzeugte Traffic bzw. die benötigte Bandbreite hängt vom Codec und der Anzahl der User ab.

Die Bandbreite berechnet sich wie folgt:

  • Down-Stream: Anzahl der Nutzer die gerade sprechen * Codec-Datenrate
  • Up-Stream: Anzahl der Nutzer die gerade sprechen * (Anzahl der Nutzer im Raum – 1) * Codec-Datenrate.

Die Datenrate der einzelnen Räume einfach addieren. Die Codec-Datenrate erkennt man am Namen des Codecs. Speex 9.3 braucht 9,3 kbit/s, GSM 14.8 14,8 kbit/s.

Bei 10 usern, 3 reden gleichzeitig, würden also 3 * 9,3 kbit/s = 27,9 kbit/s bzw. 3,4 kb/s an downstream und 3 * (10-1) * 9,3 kbit/s = 251,1 kbit/s bzw. 30,7 kb/s upstream anfallen.
Da braucht Skype einiges mehr. Wie man sieht, ist das ganze immer abhängig davon, wieviele Labertaschen gerade da sind Smiley

Welcher Codec genutzt wird ist geschmackssache und auch wieviel Lei(s)tung man hat. Es wird meist was zwischen Speex 9.3 und Speex 16.3 eingesetzt.

Nutzer die die Klappe halten und nur den geistigen Ergüssen der Anderen lauschen erzeugen auf dem Server kein Downtraffic. Es wird nur das übertragen, was durch das Mikro aufgenommen wird. Nimmt das Mikro nix auf, werden nur einzelne „keep-alive“-Packete gesendet.

Der Status, die Anzahl der Anwesenden im Channel und noch viele mehr Informationen kann man z.b. mittels PHP auf der eigenen Homepage oder dem eigenen Blog anzeigen lassen.





Programmierer geboten.

5 10 2007

Seit letzter Woche bin ich Diplom-Informatiker (Dipl.Inf.).

Die letzte Hürde, die Diplomarbeit, wurde mit einer zufriedenstellenden 1,7 genommen. Jetzt geh ich stempeln und schreibe Bewerbungen und bin auf der Suche nach einem Job.

Wer also noch einen Programmierer brauch meldet sich am Besten mal bei mir. Ich kenn mich mit den .NET-Sprachen C# und VB.Net aus, bin fit in Sachen Java. Für Webgeschichten kann ich mit ASP.NET, PHP und Javascript aufwarten. Damit die Daten auch nicht verloren gehen, beherrsche ich  den Umgang mit MS-SQL, PostgreSQL sowie MySQL.

Meldet euch einfach bei mir und ich lasse euch eine ausführliche Bewerbung zukommen.