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

Projects
Books
Archive
About









    Permalink
  1. Charset | UTF8 für Apache, PHP, MySQL, Debian und WordPress

    Nachdem ich die Migration meines Blogs auf meinen neues Stück Blech größtenteils abgeschlossen hatte, wurde ich wieder an den Charset Wirr-Warr von IT-Systemen erinnert. Um meinem Blog seine Umlaute wieder zu beschaffen habe ich folgende Änderungen an verschiedenen Stellen eingespielt. Vorzugsweise immer in den entsprechenden conf.d/ Verzeichnissen, da die Änderungen evtl. beim nächsten Upgrade überschrieben werden könnten.



    Apache2 Charset
    vim /etc/apache2/conf.d/charset
    AddDefaultCharset UTF-8

    PHP5 Charset
    $ vim /etc/php5/apache2/conf.d/charset.ini
    [PHP]
    default_charset = "utf-8"
    [mbstring]
    mbstring.language = utf-8
    mbstring.internal_encoding = utf-8
    mbstring.http_input = utf-8
    mbstring.http_output = utf-8

    MySQL Charset
    $ vim /etc/mysql/conf.d/character
    [client]
    default-character-set = utf8
    [mysqld]
    default-character-set = utf8
    character-set-server = utf8
    collation-server= utf8_general_ci
    init_connect = ‘SET collation_connection = utf8_general_ci’
    init_connect = ‘SET NAMES utf8′
    [mysqldump]
    default-character-set = utf8
    [mysqlimport]
    default-character-set = utf8
    [mysql]
    default-character-set = utf8

    Debian WordPress Config
    $ vim /etc/wordpress/config-blog.url.php
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');
    define('WPLANG', 'de_DE.UTF-8');

    Debian Locales
    $ dpkg-reconfigure locales

    Sollte ich es mal wieder brauchen, les ich hier nach.


  2. Permalink
  3. DuckDuckGo | Suche via Firefox Addressleiste umstellen

    Seit einiger Zeit benutze ich die Suchmaschine duckduckgo.com . Wenn man von dem völlig bescheuerten Namen und dem Logo mal absieht, versteckt sich dahinter eine wunderbare Suchmaschine. Dazu gehört alles was der typische Paranoia Geek so braucht.

    Allem vorran die !Bang Suche, die ich mit der Zeit sehr zu schätzen gelernt habe. Jede große Site hat ein Kürzel, mit der Sie durchsucht werden kann. Zum Beispiel “!wiki Alan Turing“. Außerdem geben Sie an, die Suchanfragen nicht zu loggen (http://donttrack.us/), Shortcuts, sowas wie eine Syntax und Wolfram Alpha implementiert zu haben. Alles was DuckDuckGo zu bieten hat unter: http://duckduckgo.com/goodies.html

    Um jetzt zum Punkt zu kommen: Meine Standardsuchleiste habe ich via Plugin schon auf Duckduckgo umgestellt. Ich habe aber die blöde Angewohnheit meine Suchanfrage einfach direkt in die Suchleiste des Firefox zu schreiben. Bisher wurde mir das immer brav von Google beantwortet. Ich dachte mit der Installation des Plugins von DuckDuckGo wäre das auch umgestellt. Dem ist aber nicht so. Leider.

    Stattdessen gilt es, noch folgende Anpassungen zu machen:

    • about:config in die Adresszeile tippen
    • Nach dem Begriff “keyword.URL” suchen
    • Das Feld doppelklicken (standardmäßig dürfte es leer sein)
    • http://duckduckgo.com/?q=” als String einfügen

    Anschließend Firefox Neustart. Nein ich habe kein Geld für diesen Post bekommen. Schon wieder nicht.


  4. Permalink
  5. 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.