Ich wollte nur [...] und dann ist das Universum explodiert.

Projects
Books
Archive
About









    Permalink
  1. Statistiken | Using R – The Nerd Way

    Momentan interessiere ich mich für R. Die Programmiersprache für Statistiken genießt aktuell ziemliche Popularität.

    Persönlich habe ich (in der kurzen Zeit, seitdem ich es benutze und kenne) R als eine Sprache kennengelernt, die nur begrenzt für coole Sachen benutzt wird. Kann an meiner Deklaration von “cool” liegen oder das sich die coolen Sachen bisher meiner Kenntnis entzogen. Aber mal davon abgesehen dass Statistiken immer interessant sind, wird R anscheinend meistens von irgendwelchen Sales-Druiden oder Marketing-Dudes verwendet, die Daten aus der DB ihres Online-Shops kratzen lassen um festzustellen wie viele Rosa Einhörner letzten Monat verkauft worden sind.

    Nunja, sagen wirs so. Ich hab überlegt für was ich R nutzen würde und etwas damit gespielt. Prinzipiell ist die vorgehensweise sehr einfach. Ich hab irgendwo ein LogFile o.ä. rumliegen (sozusagen die Rohdaten) und bringe diese mit ein bisschen Bash/Shell Zauber in ein Format welches ich R vorschmeissen kann. R unterstützt… naja so ziemlich alles, was einen halbwegs anständigen Delimiter vorweisen kann.

    R arbeitet in diesem Fall mit einer Interaktiven Shell, die die Eingaben interpretiert.
    ( $: Bash Shell. >: R Shell)

    Tweetstatistik meiner Timeline analysieren (via twidge)

    # Letzte 200 Tweets ausgeben
    $ twidge lsrecent --all > tweets
    # Usernamen sortieren und Tweets zählen
    $ grep '^<' tweets | awk '{print $1}' | sort | uniq -c | sort -rn
    # In R Shell wechseln
    $ R
    # Twitter Timeline einlesen
    > twittertimeline <- read.table("twitter/tweets", head=T, sep="" )
    # Kuchenansicht erstellen
    > pie(twittertimeline$Tweets, label=twittertimeline$User)

    An dieser Stelle kann es passieren, dass es bei zu vielen Daten wirklich sehr unübersichtlich wird. Was genau ich da falsch mache ist mir allerdings etwas schleierhaft. An der Skalierung lässt sich sicher noch arbeiten. Aber mit einem kleineren Satz von Daten, sieht es schon besser aus.
    # 20 meisten Twitterer heraussuchen
    $ grep '^<' tweets | awk '{print $1}' | sort | uniq -c | sort -n | tail -20 > tweets-20
    # Einlesen
    > twittertimeline20 <- read.table("twitter/tweets-20", head=T, sep="")
    # Balkendiagram erstellen
    > barplot(as.matrix(twittertimeline20$Tweets), main="Timeline", ylab="Tweets", xlab="Users", beside=TRUE, col=rainbow(20))

    Und damit das ganze auch was aussagt, kann man sogar eine kleine Legende anfügen.

    > legend( 1, 60,twittertimeline20$User, cex=0.6, fill=rainbow(20))

    History der Bash visualisieren
    Wer auf Kuchen steht, kann auch eifnach mal seine Bash History einlesen.
    # Command sortieren und zählen
    $ history | awk '{print $4}' | sort | uniq -c | sort -rn | head > sys/history
    Used Command
    1106 ls
    889 vim
    490 cd
    423 git
    116 screen
    116 rm
    81 ./tismc.bash
    76 ps
    75 less
    72 ./coming-home.bash
    # Das generierte File in R einlesen
    > history <- read.table("sys/history", head=T, sep="")
    # Aus dem Object history ein neues Object für Labels erstellen
    # in denen die prozentualen Werte der Commands stehen
    > history_labels <- paste(history$Command , " " , round(history$Used/sum(history$Used) * 100, 1) , "%", sep="")
    # Object und Labels zu einem Kuchendiagramm formen
    > pie(history$Used, main="Commands", label=history_labels, cex=0.8)
     

    Mailadressen aus mail.log
    Um noch ein 3. mal den Anwendungsbereich zu wechseln, kann man damit auch wunderbar das mail.log seines Mailservers unter die Lupe nehmen.

    > mailaddresses <- read.table("mail/mail_addresses", head=T, sep="")
    > pie(mailaddresses$Mails, main="Mail Adressen", col=rainbow(length(mailaddresses$Address) ), label=mailaddresses$Address)

    Egal, mein BWL Lehrer sagte immer: Traue nie einer Statistik, die du nicht selbst gefälscht hast.


  2. Permalink
  3. Twitter on CLI | Twidge Interactive Shell

    Seit längerem benutze ich John Goerzen‘s CLI Twitter Client Twidge. Weniger zum Posten als zum Lesen, aber dennoch kann ich dieses Stück Software nicht mehr weg denken. Ich finde Twidge erntet allgemein zu wenig Beachtung. Wie dem auch sei, sieht eine durchschnittliche Nutzung von Twidge wie folgt aus:

    $ twidge setup
    $ twidge lsrecent
    <timpritlove> Verkannt, ignoriert, nahezu vergessen - aber sinnvoll, nützlich und wertvoll: das Semikolon!
    [...]
    $ twidge update "Ich benutze gerade Twidge"

    Bei intensiver Nutzung nervt die Syntax allerdings etwas. Deshalb hab ich mich hingesetzt und eine Twidge-Shell gebaut.

    Die angepasste Shell “twidge-sh” kann einfach über Aufruf ./twidge-sh gestartet werden.

    $ wget http://github.com/noqqe/twidge/raw/master/twidge-sh
    $ chmod +x twidge-sh
    $ ./twidge-sh
    noqqe@twitter> lsrecent
    <rivva> Skype jetzt für Android verfügbar – Skype Blog auf
    Deutsch http://rivva.de/QajD
    [...]
    noqqe@twitter> update "Ich benutze gerade Twidge-Shell"
    noqqe@twitter> lsdm
    noqqe@twitter> follow technicallife

    Die Twidge-Shell hat weiterhin folgende Features:

    • Der Prompt wird aus der .twidgerc generiert (username@service>)
    • Alle Standart Kommandos von Twidge werden automatisch komplettiert und sind benutzbar (z.B. user@service> lsrecent)
    • Alle in der .twidgerc definierten Aliase werden übernommen und sind ebenfalls verwendbar. (z.B. user@service> rls)
    • Die Twidge-Shell funktioniert weiterhin als ganz normale Shell mit allen Zusätzen und Funktionen.

    Ich habe mich dabei an Ryan Tomayko’s git-sh orientiert, der ähnliches für Git gebaut hat. Was übrigens auch wirklich gut funktioniert.

    Mein Twidge-Fork auf Github (mit Twidge-sh)
    Twidge von John Goerzen
    Twidge zum Download für Debian
    Twidge zum Download für Ubuntu
    Twidge-Shell Script zum Download


  4. Permalink
  5. Twitter OAuth | Twidge reanimieren

    Da Twitter ja glorreicher Weise das Auth-Verfahren für Dritt-Software umgestellt hat, funktioniert mein Twitter-Logfile nun nicht mehr. Wie so manch anderer Client oder Schnittstelle. Die in Debian-Stable ausgelieferte Version 0.99.3 von Twidge unterstützt noch kein OAuth. Das mag jetzt niemandes Schuld sein. Denn warscheinlich liegt es weder am Author der Software, noch am Packaging. Wohl eher an der Zeit die ein Debian Paket braucht, um von Testing o. Unstable in Stable zu gelangen. Was auch gut so ist.

    Da ich Twidge aber auch außerhalb des Logfiles sehr gerne benutze, behob ich das Problem durch Installieren der Testing-Version. Zu finden unter http://packages.debian.org/squeeze/twidge

    $ twidge -v
    [...]
    This is Twidge, version 0.99.4. Copyright (c) 2008 John Goerzen

    $ wget http://ftp.de.debian.org/debian/pool/main/t/twidge/twidge_1.0.5_i386.deb

    $ dpkg -i twidge_1.0.5_i386.deb
    Vorbereiten zum Ersetzen von twidge 0.99.4 (durch twidge_1.0.5_i386.deb) ...
    Entpacke Ersatz für twidge ...
    dpkg: Abhängigkeitsprobleme verhindern Konfiguration von twidge:
    twidge hängt ab von libffi5 (>= 3.0.4); aber:
    Paket libffi5 ist nicht installiert.
    dpkg: Fehler beim Bearbeiten von twidge (--install):
    Fehler traten auf beim Bearbeiten von:
    twidge

    $ aptitude install libffi5
    Die folgenden NEUEN Pakete werden zusätzlich installiert:
    libffi5
    Die folgenden teilweise installierten Pakete werden konfiguriert:
    twidge
    Richte libffi5 ein (3.0.7-1) ...
    Richte twidge ein (1.0.5) ...
    Aktueller Status: 0 kaputt [-1].

    Die aktuelle Version von Twidge wäre also somit installiert. Zwar mit dpkg, aber wenigstens wird nachher bei neuereren Versionen geupdated :). Twidge stellt jetzt einen (wie ich finde) hervorragend gelösten Konfigurationsweg für die neue OAuth.

    $ twidge setup
    Please cut and paste this URL and open it in a web browser
    Click Allow when prompted. You will be given a numeric
    key in your browser window. Copy and paste it here.
    https://api.twitter.com/oauth/authorize?oauth_token=xxx
    Authorization key: 123456789
    Successfully authenticated!
    Twidge has now been configured for you and is ready to use.

    Hat irgendwie fast ein bisschen was von Wizard ;). Im Endeffekt sind es aber nur ein paar kleine Schritte:

    • Url öffnen
    • “App” autorisieren oder “Erlauben”
    • App-Authkey kopieren
    • Twidge vorwerfen

    Danach kann man das Internet wieder mit dem eigenen daily Nonsense füllen. Mit einem CLI-Client :). Was mich nebenbei noch fasziniert hat: http://packages.ubuntu.com/search?lang=de&searchon=names&keywords=twidge . Es gibt Twidge für Ubuntu also für Jaunty, Karmic und Maverick. Warum nicht für Lucid? Ich konnte es in meinen Quellen in Xubuntu (Lucid) auch nicht finden.


  6. Permalink
  7. 3dsupply | Wie man Kunden kauft.

    Shirt bei 3dsupply.de gesehen. Für awesome befunden. Weil Futurama.


    http://www.3dsupply.de/products/783-planet-express/

    Mein Kaufbedürfnis ohne Absichten bei Twitter gepostet und wurde komischerweise mit Gutscheincode beantwortet O_o

    3dsupply: @noqqe Hier ist dein 2,50 Euro Gutscheincode: cqfr-lUEq-uWzY-vdDc Einfach im Warenkorb einlösen. :D

    Fand das gut. 2,50 € sind nicht die Welt, aber hätte auch einfach ignoriert werden können.
    Wer kennt das eigentlich, wenn absolut keine Motivation vorhanden ist, grammatikalisch richtige Sätze zu bilden?


  8. Permalink
  9. Web | Statistik Video

    Ich glaube das erste Video, was ich in meinem Blog poste:

    JESS3 / The State of The Internet from JESS3 on Vimeo.

    Awesome gemacht.


  10. Permalink
  11. Ubuntu | Twitter Logfile mit Twidge

    Ich laß meine TimeLine eine Zeit lang über die Konsole. Twidge hieß der textbasierte Twitterclient meiner Wahl. Die Ausgabe der letzten 10 Tweets erfolgt über den Befehl

    twidge lsrecent

    Die Syntax ist für jeden etwas erfahrenen Linux-Benutzer leicht verständlich und einleuchtend. Weitere Infos über die ManPage. Jedenfalls verfügt Twidge über eine wunderbare Funktion die (ich nehme an über die Tweet-ID) nur ungelesene Tweets anzeigt. Mit

    twidge lsrecent -s
    (oder --saveid)

    werden gelesene Tweets gespeichert und mit -u (--unseen) nur Tweets angezeigt die neuer sind als der letzte Abruf via --saveid. Das ist sehr schön da ich mir beim erstellen eines LogFiles keine eigene Programmlogik ausdenken musste die die oben genannte Arbeit übernimmt. Das Skript ist durch die Funktionen von Twidge sehr kurz.

    LeserLog:

    #!/bin/bash
    echo " `date +%d-%m-%Y-%H:%M:%S`" >> /var/log/twidge.log
    twidge lsrecent -u >> /var/log/twidge.log
    twidge lsrecent -s >> /dev/null

    Die Ausgabe sieht ziemlich leserlich wie folgt aus:
    Bildschirmfoto

    Detail-greppable-Log

    Nach einiger Zeit stieg ich aber auf TweetDeck um. Das Logfile tat aber gute Dienste und ich beschloss es als durchsuchbare Bibliothek für mich weiterzuführen. Um mir das greppen nach Tweets zu erleichtern (Zeilenumbrüche sind da unvorteilhaft) benutze ich allerdings die -l (–long) Ausgabe von Twidge. Einzeilig. Detailiert. TimeStamped.

    #!/bin/bash
    twidge lsrecent -l -u >> /var/log/twidge.log
    twidge lsrecent -s >> /dev/null

    Sieht zwar zum lesen nicht ganz so schön aus aber mir gefällt es besser.

    Bildschirmfoto-1

    Ein CronJob führt das Skript alle 5 oder 10 Minuten aus und so füllt sich das Logfile ;)

    Eintrag in der Crontab
    */10 * * * * bash /usr/local/scripts/twidgerotate &> /dev/null

    Alle Code-Schnippsel nochmal als Plaintext: http://zwetschge.org/paste/5


  12. Permalink
  13. Twitter | Filterkaffee

    twitter_logo_header

    Gerade machte ich mir Gedanken, bzw wurde dazu gezwungen Schrägstrich verleitet mir Gedanken zu machen über Twitter. Vielleicht liegt das an den mehr oder minder folgenswerten Leuten denen ich folge bzw jetzt nichtmehr folge, dass ich Twitter manchmal nervend finde. Warum setz ich mich noch gleich vor den PC ? Achja stimmt, ich wollte _nicht_ wissen was gerade im Fernsehen läuft. Oder so.

    Na gut ich schweife ab. In meiner Twitter-Timeline fand ich jedenfalls so einige Tags die da hiessen #sdr, #bsf oder ähnliches, die mich in erster Linie an Rundfunksender oder Viehkrankheiten erinnerten. Wie sich kurzerhand herrausstellte sollte das garnicht so weit von dem entfernt sein was ich dachte. Kommentare zu Bauer sucht Frau oder Schlag den All-in-One-Moderator von Prosieben.

    Ich fragte mich ob ich meine Timeline auch ohne diese Tweets lesen könnte. Ein grep -v $HASHTAG sozusagen. Dies schrob ich (ja schrob ist auch ein schönes Wort, genauso wie fotofiert) dann in Twitter. Ich schweifte von hier nach da, von Automatisierungmöglichkeit zum Melitta Filter für Twitter. Über Interessen, Langeweile, Stumpfsinn, oder ob ich der einzige bin den sowas _nicht_ interessiert.

    Warum gäbe es keine automatisierte Filtermethode für TV-Serien die mich nicht intressieren? Warum gäbe es keine automatisierte Filtermethode für Tweets die mich allgemein nicht interessieren? Ein Melitta-Beutel an dem die ganzen Tags hängen bleiben die ich nicht lesen will. Andererseits. Warum sollte ich meine Timeline bei Twitter dann überhaupt noch aktualisieren? Alle 2 Wochen würden dann warscheinlich reichen… Auch auf die Gefahr hin das ich meine eigenen Tweets warschenlich nichtmehr lesen könnte…

    Bis Benne mir einen Tweet mit dem Inhalt:

    @noqqe man sollte die ganzen tags mal sammeln ;-)

    zusandte, welcher meine Denke dann in Richtung Adblockplus brachte.
    Es wäre doch awesome eine Art, naja. Eine Art ja Adblock zu haben. Ein Plugin für Twitter die automatisch Tweets je nach Hashtag blocken, man allerdings Abonnementen-Like den Filterlisten von Leuten subscriben könnte.

    Klar das wäre Aufwand für denjenigen der diese Liste pflegt. Aber Adblock Abos pflegt doch auch irgendjemand.


  14. Permalink
  15. Allgemein | Bisschen Veränderung

    Bei manchen Plugins fragt man sich auch wer sich da Gedanken gemacht hat(wenn überhaupt?!). StatPress die FeedSubscribers-Option. 134 Subscribers ist mri dann doch etwas sehr viel vorgekommen, bzw so viel gelesen werden trau ich noqqe.de dann doch nicht zu. Jedesmal wenn man per GoogleReader die Feeds abruft gibts einen Subscriber mehr auf der Score-Liste weils immer über nen anderen Server/Bot läuft. Deswegen kommen die hohen Zahlen zustande.

    Deshalb bin ich jetzt wie zypral und die meisten Blogger zu feedburner gewechselt. Die FeedURL hab ich dahingehend umgebogen sodas auch diese URL im Blog steht.

    http://feeds2.feedburner.com/noqqe

    Beim Thema Zugriffs-Statistiken ist es ungefähr das selbe. Aber da werd ich mir noch was geeignetes raussuchen. Ich denke das ganz normale WordPress-Plugin.

    Desweiteren gibts bald paar neue Kategorien – die sich beim posten ergeben :)

    Und zum Schluss noch das QuickUpdates – Widget. Mir gehts in letzter Zeit oft so das ich was zu sagen hab aber nicht die Zeit / das Thema nicht den Umfang das es für einen Blogpost reicht. Deshalb musste ich mich bei -.- Twitter -.- bedienen, weil ich nichts vergleichbares mit dem pluginumfang finden konnte. Aufjedenfall ist das Widget jetzt rechts zu finden. Und auch als RSS-Feed gibts die QuickUpdates :) Würde mich zwar wundern wenns jemand abonniert aber Service ist alles :) Den Button muss ich noch bisschen verändern aber das kommt auch in Kürze.

    Greez, Flo


  16. Permalink
  17. Twitter > Blog !?

    O_o

    mal eben von Search #1 vertrieben.


  18. Permalink
  19. TwitterClients: gTwitter1.0beta vs. twitux0.60

    Irgendwie hat mich das ganze dann doch etwas zum nachdenken gebracht.

    Von links nach rechts:

    gTwitter1.0betaWebsite von Twitter – twitux0.60

    die “470 Monate her” haben mir etwas zu denken gegeben. Kein Vergleich zwar zu 2 Std her von twitux… aber wenn ich überleg das alle Einträge weniger als 20 Minuten her sind kann ich auf beide Anzeigen verzichten ;)

    Ich denke bei mir wird gTwitter das rennen machen weil die wichtigsten Schaltflächen gleich da sind wo ich sie haben will (Sende Fenster, Refresh). Bei Twitux nur mit f5(refresh) und strg+n (new message) erreichbar.

    PS: und ganz nebenbei hab ich auch noch schleichwerbung für die netten blogger von neben an gemacht ;) Artyshock und UARRR


Older »