Avatar

Ps0ke

Φίλιππος Στέφανος

Nocturnal Inclination

Nerdkram, Internethumor und der ganzen Rest.

Setting up the Pebble Development Environment on Gentoo Linux 64bit

The official guide to set up the Pebble Development Environment on Linux is Ubuntu only.

Please note: Pebble SDK is only supported on Ubuntu GNU/Linux 12.04 LTS.

While this might work well on other distributions that user binary packages, it does not work so well if you are used to compile your source code yourself. This guide describes how to install the Pebble SDK on Gentoo Linux, but might work on other build-from-source distributions as well.

I am going to keep the structure close to the official guide and recommend to read it, too.

I am using zsh, but everyting should work in bash, too. Command prefixed with % shall be run as normal user, those with a # in front of them need to be run as root.

1. Download and install Pebble SDK

Setup a working directory to install the Pebble SDK into. This is probably also where you want to keep your own watchapp projects. All further instructions will assume you are in that working directory.

% mkdir pebble-dev
% cd pebble-dev

Now download Pebble SDK manually, wget won't work as the folks at Pebble want you to login and do some cookie and redirect nastiness. After you downloaded the SDK, unpack it:

% tar xf PebbleSDK-1.12.tar.gz

2. Download and install Pebble ARM toolchain

The Problem with the precompiled toolchain from the Pebble homepage is, that it links dynamically to libmpc2. First off you might even have libmpc3 installed and if you're on a 64bit system, both of the libs are also 64bit. But the toolchain links again the 32bit version. But as libmpc is somewhat essential to building software (e.g. via portage) you don't want to screw around with it and fuck up your build system. Been there done that.

So instead of using the precompiled toolchain provided by Pebble Inc. let's do it the Gentoo-way. Gentoo provides us with a nice tool for setting up cross-compiling toolchains that live next to our native build system. Enter crossdev.

Generating a cross-compiler by hand was a long and painful process. This is why it has been fully integrated into Gentoo! A frontend called crossdev will run emerge with all of the proper environment variables and install all the right packages to generate arbitrary cross-compilers based on your needs

Install sys-devel/crossdev. It is recommended that you use the unstable version to get the latest fixes, so unmask the package first.

# echo "sys-devel/crossdev" >> /etc/portage/package.accept_keywords
# emerge crossdev

You might get an error message telling you to convert package.use to a directory. To do so, run

# mv /etc/portage/package.use /etc/portage/package.use.orig
# mkdir /etc/portage/package.use
# mv /etc/portage/package.use.orig /etc/portage/package.use

Now with crossdev up and running, lets install the specific toolchain for the Pebble ARM architecture:

# crossdev --target arm-none-eabi

To test the freshly installed toolchain simply check its version. The output should be similar to the one provided below.

% arm-none-eabi-gcc --version
arm-none-eabi-gcc (Gentoo 4.7.3 p1.1, pie-0.5.5) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

To go even further with testing (you want your build system to work probably, don't you?), let's compile a simple test. This should result in an output file a.out and should not throw any errors.

% echo "int main(void) {return 0;}" | arm-none-eabi-gcc -x c -
% ls | grep a.out
a.out*

3. Download and install SDK dependencies

Now with the compiler stuff being done, let's move on to install the actual Pebble SDK dependencies. You need do install Python 2.7 and the Python package manager pip (if they are not yet installed).

# emerge dev-lang/python:2.7 dev-python/pip

On my system the default Python version is 3.2, but the Pebble scripts are written against Python 2.7 and are not compatible with 2.7. This brings us to the problem of managing different versions of Python dynamically. You don't want to change your global Python version, so we use virtualenv instead.

virtualenv is a tool to create isolated Python environments.

Install it via pip:

# pip install virualenv

Now in the pebble working directory, let's setup a Python 2.7 for use in Pebble Development. This creates a directory pebble-python and installs a separate Python version into it.

% virtualenv -p /usr/bin/python2.7 --distribute pebble-python

Now activate pebble-python for the current shell session (maybe alias this to make it more comfortable). You need to to this in every new shell session before using the Pebble SDK.

% source pebble-python/bin/activate

After you're done developing you can either close the shell session or run deactivate to get out of the virtual environment and get your normal python back.

After activating your pebble-python, your shell prompt should have changed and you can test your Python version, which should result in something similar to the output provided below.

(pebble-python)% python --version
Python 2.7.3
(pebble-python)% which python
/home/ps0ke/Projects/Pebble/dev/pebble-python/bin/python

Now install the Pebble SDK dependencies as provided in the SDK into the new virtual pebble-python environment:

(pebble-python)% pip install -r PebbleSDK-1.12/Pebble/sdk/requirements.txt

And you should finally be ready to go. Why not start with the Hello World?


Abiturrede Deutschhaus 2013

Die Abirede des DHG vom Freitag, 28. Juni 2013 wurde von Benjamin Fuchs und mit verfasst. Ich veröffentliche sie hier unter CC-BY. Kursiv gedrucktes wird jeweils von der Person eingeworfen, welche nicht gerade am sprechen ist. Fettgedrucktes wird im Chor gesprochen.

Benny:

Sehr geehrte Damen und Herren,
dies ist eine sehr schöne und professionelle Abiturrede und wie jede sehr schöne und sehr professionelle Abiturrede beginnt auch diese mit einem Zitat aus einem Volkslied. Ich beginne:
"Kommt ein Vogel gefolgen setzt sich nieder auf mein Fuß, hat ne Nachricht im Schnabel von der Mutter einen Gruß!" Nun ist in unserem Fall der Vogel kein klassisches Wirbeltier, wie wir es aus im Biologieunterricht der 6. Klasse gelernt haben, sondern unsere allseits geschätzte Schulleitung des Deutschhaus Gymnasiums, welche am heutigen Tag in der Funktion des "Übermittlers" der guten Nachrichten auftritt, die angesprochene Mutter ist zwar nicht unsere Erzeugerin, meint aber trotzdem seit Jahren dass sie alleine weiß, was das Beste für uns Schüler ist, meist kritikresisetent und kocht im Gespräch miteinander sprachlich immer den gleichen politischen Einheitsbrei. Sie hält es für besonders witzig unsere Lehrpläne mit schlauen und äußerst tollen und hilfreichen sachen zu schmücken wie:
Methoden-Kompetenz, Medien-Kompetenz, Handlungs-Kompetenz, Sozial-Kompetenz, Human-Kompetenz, Kritik-Kompetenz, mentale Kompetenz, Frage-Kompetenz, Orientierungs-Kompetenz, Strukturierungs-Kompetenz, Analyse-Kompetenz, Urteils-Kompetenz, De-Konstruktions-Kompetenz, Re-Konstruktions-Kompetenz, Narrative Kompetenz, Personal- und Selbst-Kompetenz....(wir sind ja mittlerweile so kompetent, dass wir eigentlich garnicht mehr studieren brauchen!) wer könnte die Mutter also anderes sein als unser Bayrisches Staatsministerium für Unterricht und Kultus. und die Nachricht ist vielmehr ein Zeugniss, ein Zeugniss von jahrelangem Lernen, schuften, beißen, rackern, schwitzen, ein Zeugniss von Tränen und Freude, Bergen und Tälern, vollendet in einer nervenaufreibenden aber auch befreiendem letzten Prüfung, mit der wir uns an dieser Stelle einen donnernden Applaus verdient haben: Unserem Abitur!

Philipp:

Im September 2005 war es für soweit, die Einstiegszeremonie der Einschulung fand in der Deutschhauskriche statt. Diejenigen, die acht Jahre hier verbracht haben bekamen dort ein kleines Geschenk überreicht, das mit einer Geschichte verknüpft war. Wir alle bekamen ein kleines Schräubchen geschenkt. Alle zusammen würden wir das große Kreuzfahrtschiff "MS DHG" zusammen halten. Jedes noch so kleine Schräubchen wurde gebraucht, jedes war wichtig.
Nun also angetreten um die Welt zu erobern (oder zumindest um das Abitur zu schaffen), betraten 145 aus den städtischen oder im landkreis ansässigen Grundschulen geflohene Knirpse, das damals noch im Umbau befindliche bildungsinstitutionelle Monstrum. Die Scheuklappen wurden nach einem wunderbaren Empfang sogleich abgelegt, denn in diesem zeigte das DHG seine kreativen Talente mit Hilfe von kleinen bunten Buttons mit der Aufschrift "Ich bin ein DHG'ler" und seinen überaus ausgeprägten Humor mittels urkomischen bunten Hüten für die Tutoren! Die allerletzte Unsicherheit verflog und das Bewusstseins des Angekommensein in der Deutschhaus Familie trat auf als die ersten Klänge Frau Brandls auf dem Klavier erklangen. Gemeinsam mit dieser musikalischen Ikone und liebenswerten Musiklehrerin studierte man damals die hauseigene "Schulhymne" ein. Ein äußerst markanter Text und eine überaus eingängige Melodie sorgten hier für ein sofort aufkeimendes Zusammengehörigkeitsgefühl und eine ausgelassene Stimmung: "Wir sind die Gymnasiasten, wir vom DHG. D - H - G, D -H -G". An dieser Hymne ist ein großer Vorteil unseres Schulnamens zu erkennen, wie Frau Brandl immer betonte: Die Abkürzung DHG lässt sich singen. und so wurde je nach Stimmlage das D, H, und G in allen Oktaven rauf und runter geträllert. Der Pausengong hat sich übrigens immer noch nicht verändert!
Nun sind aus den Schräubchen in den vergangenen acht Jahren Schrauben geworden. Starke Schrauben, kluge Schrauben oder zumindest zähe Schrauben. Es sind genug Schräubchen nachgekommen, sodass das Schiff auch ohne uns zusammen hält. Nun heißt es andere Schiffe zu stützen. Alle hier werden auf die ein oder andere Weise ihren Beitrag Leisten. Ob man nun auf einem großen Frachter anheuert, sich sein eigenes Segelboot zimmert oder doch lieber in Reederei bleibt. Wir werden jetzt aufs Meehr hinaus gelassen und können selbst bestimmen, wohin die Reise geht. Abitur, so haben wir nämlich im Lateinunterricht gelernt, bedeutet schließlich "weggehen, davon gehen". Doch soll hier niemand davonrennen müssen! Dennoch heißt es Abschied nehmen -- aber es bedeutet auch einen Neuanfang. Viele werden nun wohl Studieren und dort mit dem weiter machen, was hier begonnen wurde: Den Grundstein zu legen für das ganze Leben!

Benny:

Bevor es hier noch zu pathetisch wird, zurück zu den Fakten:
Generell war unsere Stufe Zeiten des Wandels "ausgesetzt". Kaum eine andere Stufe durfte soviel Neues und Änderungen erleben wie die unsere. Ob der Unttericht im alten Gebäude und langweilige Mittagspausen in der improvisierten kleinen Aula oder mit Herrn Hackl und Herrn Bauer zwei Direktoren, die auf ihre ganz unterschiedlichen Art und Weisen das Schulleben am DHG prägten und auch heute noch prägen. Desweiteren wird in Form eines Meilensteines unserer Schulgeschichte unser Jahrgang im Gedächtnis bleiben. Aus unseren Reihen ging der erste Jahrgang der neugegründeten und so vielleicht sogar deutschlandweiten einzigartigen Einrichtung hervor, der Sportklasse. Basketballer, Ruderer und kurze Zeit später noch ein ganz besonderer Schwimmer versuchten hier ein Modell zu schaffen um Leistungssport und Schule verbinden zu können. Ein eher trauriger Part des Wandels ist derjenige, dass im Laufe der Jahre, in denen wir die Schule besuchten nach und nach immer mehr die "Urgesteine" aufjedenfall aber sehr gute und besondere Lehrer die Schule verließen, so dass man sich heutzutage oftmals in Gedanken erwischt, dass man 80% des Lehrerkollegiums überhaupt nicht kennt.

Philipp:

An dieser Stelle ein großes Danke und Erinnerung an Lehrer wie: Frau Placht, vorhin genannte Frau Brandl, die Herren Fuchslocher, Bestvater, Krimmer, Faber, Pickel, Köhler, Mangold, Christoph und viele mehr.

Seit dem Jahr 1978 wird jedes Jahr von der Gesellschaft für deutsche Sprache in Wiesbaden das Wort und Unwort des Jahres gekürt, 2011 beispielsweise "Stresstest" als Wort und "Döner-Morde" als Unwort des Jahres. Diese Worte werden ausgewählt, wenn sie für wichtige Themen stehen, eine öffentliche Debatte anstoßen oder für etwas charakterisierend sind. Nun haben wir uns auch mal den Spaß erlaubt, Wort und Unwort des Jahres für das DHG zu küren.
Stolz vermelden wir, dass unser Expertengremium sich dazu entschieden hat, das wunderbare Wort "Organisation" zum Wort des Jahres zu küren. Allzu oft hört man nämlich von Freunden an anderen Schulen, dass sie manchmal bis zu 4 mal die Woche bis in die Abendstunden in der Schule malochen und schwitzen müssen. Bei uns ist das nicht so! Zu Beginn der zwei Jahre fiel einmal die Bemerkung, wir hätten den besten Stundenplan Deutschlands. Ein sehr plakativer und provokanter Ausspruch, doch man muss sagen, er stimmt! Das alles ist besonders verbunden mit dem Namen Roland Händle, dem man an dieser Stelle sehr danken muss. Generell war die Organisation vom Oberstufenbüro hervorragend, Herr Mallad tat hier auch einen herrausragenden Job. Nicht nur die verwaltaltungstechnischen Leistungen sind hier zu würdigen, sondern auch die Tatsache, dass man bei Vollversammlungen in den letzten zwei Jahren nicht mit Moralpredigten, Anklageschriften oder Horrorszenarien zugeklatscht wurde, sondern die anstehenden Dinge stets kurz, knapp und präzise ohne jede persönliche Einmischung rübergebracht wurde.

Benny:

And the winner for the "Unwort des Jahres" iiiiiiiiiis: "Außenwirkung". Egal was man tat oder tut an dieser Schule, es kommt immer das Totschlagargument Außenwirkung. Nichts passt hier besser rein, als unser wunderbares digitales schwarzes Brett oder einfach unser Vertretungsplan. Groß, flach, glänzend schmückt er unseren Eingangsbereich und nimmt täglich Schüler, Lehrer und Besucher in Empfang. Gerade bei Veranstaltungen wie "DHG stellt sich vor" erhofft sich unsere Schule einen Sympathiebonus durch seine außergewöhnlich inovativen und modernen Vertretungsplan. Da hört man schon Dinge wie: "woooooooooooooooooooooooooow, die Schule hat ja nen Fernseeeeeeeeeeeher als Vertretungsplan, woooooooooooooooooow! Ich weiß zwar nicht was daran besser ist als das Altmodische System aber wooooooow!"

Durch das G8 wird die Schule zum Wohnzimmer der jugendlichen. Die Schule wird zu einem Ort in der nicht nur das Lernen wichtig ist, sondern die gesamte Atmosphäre. Goethe schreibt in Faust: "Hier bin ich Mensch, hier darf ich's sein". Das sollte auch das Motto für eine Schule sein, die mit den Herausforderungen von G8, Nachmittagsunterricht und Ganztagesklassen zu kämpfen hat. Und auch für eine Schule die sich für etwas hält wie die unsere. Da passen Handyverbot, Essensverbot in manchen Bereichen der Schule, Verbot in der zweiten Pause zum Lehrerzimmer zu gehen (Lehrerpause), Verbot von Gestaltung des Schulhauses, Verbot von umstellen von Tischen und Bänken (vor allem die hinter der Schule), Verbot von Trinken im Unterricht, die sterile Krankenhaus Atmosphäre, die Oberstufenzimmerproblematik und und und nicht dazu. Vielleicht wollte man auch dem "Deutsch" im Schulnamen in dieser Hinsicht gerecht werden. Man muss allerdings ehrlicherweise zugeben, die Beziehung zu unserer geliebten Schule war doch immer eine "Hassliebe". Irgendwas zum nörgeln hatten wir immer, irgendetwas hat immer genervt, irgendetwas war immer da über das man sich hervorragend aufregen konnte. Aber es war eben doch so, dass man sich nie im Leben hätte vorstellen können zu einer anderen Schule zu gehen. Denn man muss auch sagen, die Unterstützung, sei es beim Sport durch Unterrichtsefreiungen oder finanzielle, organisatorische Mittel, sei es bei Theater und Musikveranstaltungen, die in den letzten Jahren mit Produktionen im Bockshorn oder auch den Musicals und Konzerten im Schulhaus zu leuchtenden Sternen am Deutschhausfirmament wurden, oder sei es bei nötigen Zusatzstunden in schwachen Fächern, wirklich hervorragend war. PS: Da wir es von Außendarstellung hatten, und ich die Möglichkeit hatte, in jeglichen Kühlschrank unserer Schule ob im Lehrerzimmer oder der Lehrerumkleide, Einblick zu haben, so lässt sich doch vermuten, dass unser Lehrerkollegium ein verzweifeltes Völkchen sein muss. Oder um es mit Wilhelm Busch zu sagen: "Es ist ein Brauch von alters her: Wer Sorgen hat, hat auch Likör!"

Philipp:

So was haben wir jetzt?
Politik? Check
Schule? Check
Was fehlt uns? Riiiichtig die Schüler

Benny:

"Dummheit Hat Gesiegt" (wahnsinnig kreativ) stand als unser Slogan auf unseren Abitur T-Shirts, oder um es mit Heinrich Heine zu sagen: "Kein Talent, aber Charakter". Jedoch erscheint dieser Spruch als entweder höchst platt oder als höchst bescheiden und bodenständig in Anbetracht der Tatsache dass unser Abiturschnitt den bayernweiten nochmals um 0,3 Notenpunkte unterbietet!

Philipp:

Also den Idioten, der sich diesen Slogan ausgedacht hat, sollte ich mir nochmal persönlich vorknüpfen. Veni vidi vici, ich kam, ich sah, ich siegte, wir kamen an die Schule, wir sahen was wir tun mussten, und wir haben unser Abitur "gewonnen". Doch ist das alles was man mit nimmt aus dieser Zeit, oder gibt es noch andere Dinge die wir in den letzten 8 Jahren gewonnen haben? Wir haben neue Freunde gewonnen, in Kursen, auf den Abifahrten im täglichen Umgang miteinander, wir haben Erfahrungen für das Leben gewonnen ohne Frage, die wichtigste denke ich, dass man im Leben alles erreichen und schaffen kann, wenn man nur an sich glaubt und hart genug für seine Ziele arbeitet. Wenn ich bei Freunden sehe, die nach 4en und 5en in den letzten Jahren plötzlich 13 Punkte im Matheabitur schreiben, gehe ich konform mit Franz von Assisi der sagte: "Tu erst das Notwendige, dann das Mögliche, und plötzlich schaffst du das Unmögliche."

Eine besondere Erfahrung durften wir auch noch dazu gewinnen in den letzten zwei Jahren: "Lehrer sind auch nur Menschen".

Benny:

Was jahrelang nie für möglich gehalten wurde, entpuppte sich als harter Fakt: Lehrer, diese Wesen, die immer böse waren ohne Herz für die Schüler und immer nur einem was reindrücken wollten erschienen plötzlich in einem anderen Licht. Gerade in der Zeit nach dem die Prüfungen endlich rum waren, aber auch schon in der intensiven Abiturvorbereitung in Kleingruppen entstand oft genug eine sehr menschliche Arbeitsatmosphäre. Die absolute Menschlichkeit wurde dann schlussendlich bei gemeinsamen Seminararbeiten oder privaten Treffen im Beisein der ein oder anderen Flasche Gerstensaft, von der qualifizierten Schülerschaft diagnostiziert!

Ein Buch welches mir vor ca 15 Jahren zum Lesen verholfen hat war das wunderbare Kinderbuch "die kleine Raupe Nimmersatt". Nun möchte ich ein Kapitel aus einer neuen selbtsverfassten Fassung vorlesen. Diese Fassung trägt einen Titel, der symbolisch steht für das Leid mancher Lehrer mit uns in den letzten zwei Jahren. Es heißt: „ der kleine Schüler Immerplatt“. Das Kapitel ist das letzte und spiegelt den Sonnabend der kleinen Raupe wieder, unsere Zeit in der 12. Klasse. Einen Moment ich brauch dazu meine Erzählerstimme.

Am Sonnabend aß/quälte er sich durch eine Seminararbeit, zig Klausuren, mehreren Referaten, einige Tests, Exen, auswendig gelernte Gedichte, Projekttage, einen Lateinvortrag eines externen Dozenten, und einigen durchgezechten Shuttle-Party-Nächten. Am Ende des Tages hatte er Bauchschmerzen. Der nächste Tag war wieder ein Sonntag Am nächsten Tag aß er sich durch seine 5 Abiturprüfungen, danach ging es ihm schon viiiiiiiiiiiiiel besser - dem kleinen Schüler Immerplatt. Er war nun nicht mehr müde, er war nicht mehr platt. Und er war auch nicht mehr klein. Er war vom Abistress groß und dick geworden. Er zog sich in seine Welt zurück, die man Chillen nennt und blieb darin mehr als zwei Wochen lang. Dann knabberte er sich aus Versehen ein Loch in seinen alten Konfirmations- oder Firmunsanzug. Zwängte sich in einen neuen schönen Anzug uuuuuuuuuuuuund........... war ein wuuuuunderschöner Abiturient!

.....und wenn ich mich hier so umschaue! (Thumbs up)

Philipp: Nun kommen wir auch mal zu einem Ende, das ganze pathetische, hochphilosophische, sentimental und rührende Kitschgelaber wollen wir euch ersparen.

Benny: Dennoch hoffen wir dass wir die "MS DHG" nicht mit einer lockeren Schraube zurücklassen werden und wir zwei glauben fest an uns alle, dass jeder einzelne von uns seinen guten und richtigen Weg gehen wird.

Philipp: Die Zeit wird es zeigen! denn wie der alte chinesische Denker Laozi sagte:

Benny: Was die Raupe Ende der Welt nennt, nennt der Rest der Welt Schmetterling.

Beide: Vielen Dank!


Blauer Einband, goldene Schrift

Ich glaube ich strebe immer nach dem Hohen und falle dabei stets in den Dreck.

Ich neige zu mir fremder Nostalgie.

Die Welt ist so groß, doch wenn ich versuche sie zu entdecken, sehe ich nur den Glanz, nie das Glänzende. Dann versuche ich wieder mit vergebender Mühe das Matte zu polieren. Vergeblich, so wie die meisten.

Schwach wie ich bin, flüchte ich in die Melancholie, wissend dass sie ein Irrweg ist.

Ich verleugne mir selbst das Banale, doch wünsche es tief in mir. Zugeben kann ich das jedoch nie. Was sollen denn die Leute denken? Ich leugne auch, was mir das bedeutet.

Bin ich denn ich selbst, so wie ich es sonst so hoch halte? Vermutlich.

Ist mir das Höchste nun die himmlische Göttin oder die Butter spendende Kuh? Oder heuchle ich nur gerade wieder? Oder interessiert es mich insgeheim gar nicht?

Wer Texte wie diese schreibt, braucht nur Aufmerksamkeit. Ein Glück, dass sich sowieso niemand dafür interessiert. Denn was nicht gelesen, das existiert nicht. Ist das überhaupt wichtig?

Die verkrampfte Geheimniskrämerei ist lächerlich. Das sage ich doch selbst oft. Und doch bewundere ich es meistens.


Warum man bei meiner Oma Viagra kaufen konnte

Eine Notiz vorweg: Bei sowas bitte immer einen rel="nofollow" auf die Links setzen, damit diese Betrüger nicht auch noch im Pagerank steigen!

Update 2013-02-18 20:34: Ich habe mal die .htaccess-Datei, die Ursache allen Übels, am Ende angehängt.

Meine Großeltern haben eine Ferienwohnung, die sie an Besucher vermieten. Um auch gefunden zu werden haben sie natürlich auch eine Homepage: Ferienwohnung Karola. Jetzt rief dort jemand an und meinte, wenn man bei Google nach "ferienwohnung versbach" (die Wohnung ist in Versbach) suchte, komme man auf eine kanadische Viagra Seite. Oha :D

Ich also erstmal gegeooglet:

% firefox http://www.google.de/?q=ferienwohnung+versbach

Da bekommt man dann ungefähr beim vierten Hit:

Helga Stephan

ferienwohnung-karola.de/

Wenn man nun diesen Link allerdings klickt kommt man tatsächlich bei http://offeemedic.com/ raus. Die wollen einem dann Ganz seriös Viagra verkaufen:

Liebe Besucher!

9/10 unseres Glücks beruhen auf der Gesundheit!

Diese Website helfen Männer und Frauen aller Sozialstatus gesund zu sein und die Helligkeit des Lebens zu fühlen! Häufig Menschen trauen sich Generic Medikamente einzukaufen, weil sie sind viel billiger als Markenmedikamente, aber mit gleicher pharmakologischen Wirkung. Sie wissen einfach nicht, was Generics sind.

Na dann mal los!

Jetzt mal Spaß bei Seite, seltsam ist das schon. Also habe ich natürlich erst mal geschaut, ob denn die Seite selbst infiziert wurde und vielleicht umleitet:

% firefox http://ferienwohnung-karola.de/

Nein, http://ferienwohnung-karola.de/ bringt einen tatsächlich auf die richtige Seite. Ich habe auch den Cache geleert, Javascript angemacht und alles mögliche: Es existiert kein Redirect, Clickjacking oder XSS. Die Seite scheint sauber zu sein.

Vielleicht ist was am Routing kaputt?

(Das ganze kann man sich auch als "asciicast", einem Screencast meines Terminals, anschauen. Inklusive peinlicher Vertipper ;)

% traceroute ferienwohnung-karola.de
traceroute to ferienwohnung-karola.de (46.163.79.113), 64 hops max, 52 byte packets
 1  fritz.box (192.168.178.1)  0.902 ms  0.625 ms  0.552 ms
 2  87.186.225.75 (87.186.225.75)  92.717 ms  38.952 ms  38.589 ms
 3  217.237.156.198 (217.237.156.198)  38.939 ms  38.395 ms  38.904 ms
 4  d-ed1-i.d.de.net.dtag.de (62.154.15.182)  50.509 ms
    d-ed1-i.d.de.net.dtag.de (62.154.15.202)  65.516 ms
    d-ed1-i.d.de.net.dtag.de (62.154.15.214)  50.985 ms
 5  62.157.250.114 (62.157.250.114)  52.495 ms  51.290 ms  88.926 ms
 6  xe-0-3-0.dr-master.r2.cgn3.he-core.de (176.28.4.54)  50.724 ms  51.037 ms  50.088 ms
 7  * * *
 8  powerc120.galaxy-gmbh-service.de (46.163.79.113)  51.802 ms  52.447 ms  51.676 ms

Nein, das ist es nicht, galaxy-gmbh-servie.de ist tatsächlich der Hoster der Seite. Da ist alles sauber. Auch der whois-Eintrag stimmt:

% whois ferienwohnung-karola.de
# [...]
Domain: ferienwohnung-karola.de
Nserver: ns1.toptip-dns.de
Nserver: ns2.toptip-dns.de
Status: connect
Changed: 2010-12-29T21:47:00+01:00

[Tech-C]
Type: PERSON
Name: Dirk Anschuetz
Organisation: Galaxy GmbH
Address: Hohenzollernring 57
PostalCode: 50672
City: Koeln
CountryCode: DE
Phone: +49-221-3553350510
Fax: +49-221-3553350519
Email: mail@galaxy-gmbh-service.de
Changed: 2012-02-02T01:50:08+01:00

[Zone-C]
Type: PERSON
Name: Dirk Anschuetz
Organisation: Galaxy GmbH
Address: Hohenzollernring 57
PostalCode: 50672
City: Koeln
CountryCode: DE
Phone: +49-221-3553350510
Fax: +49-221-3553350519
Email: mail@galaxy-gmbh-service.de
Changed: 2012-02-02T01:50:08+01:00

Aber was ist denn dann das Problem? Vielleicht liegt das Problem ja bei Google?

Also hab ich noch mal die Suchseite aufgerufen

% firefox http://www.google.de/?q=ferienwohnung+versbach

Helga Stephan

ferienwohnung-karola.de/

und mir den Link mal genauer angesehen. Google schickt einen nämlich vorher noch einmal durch einen kleinen Proxy, damit sie die Klicks zählen können. Der Sucheintrag verweist also nicht direkt auf http://ferienwohnung-karola.de/ sondern auf dieses Ungetüm (Ich habe bereits alle unnötigen Argumente gekürzt):

http://www.google.de/url?sa=t&rct=j&q=ferienwohnung%20versbach&source=web&cd=4&ved=0CEoQFjAD&url=http%3A%2F%2Fferienwohnung-karola.de%2F&ei=UTEhUZHJEIqt4AS3t4GoCg&usg=AFQjCNEBH_rG1AyvavGw3rltFv3-RRS3EA&bvm=bv.42553238,d.Yms&cad=rja

Naja, hab ich mir gedacht, schauen wir doch mal, was man da so bekommt. Für so etwas greife ich lieber auf die Kommandozeile zurück, da ist cURL das Tool der Wahl:

% curl "http://www.google.de/url?sa=t&rct=j&q=ferienwohnung%20versbach&source=web&cd=4&ved=0CEoQFjAD&url=http%3A%2F%2Fferienwohnung-karola.de%2F&ei=UTEhUZHJEIqt4AS3t4GoCg&usg=AFQjCNEBH_rG1AyvavGw3rltFv3-RRS3EA&bvm=bv.42553238,d.Yms&cad=rja"
<script>window.googleJavaScriptRedirect=1</script><script>var m={navigateTo:function(b,a,d){if(b!=a&&b.google){if(b.google.r){b.google.r=0;b.location.href=d;a.location.replace("about:blank");}}else{a.location.replace(d);}}};m.navigateTo(window.parent,window,"http://ferienwohnung-karola.de/");
</script><noscript><META http-equiv="refresh" content="0;URL='http://ferienwohnung-karola.de/'"></noscript>

Aha, da wird also Javascript ausgeführt, welches die URL tauscht, oder, wenn Javascript aus ist, wird ein <meta http-equiv="refresh" content="0;URL='http://ferienwohnung-karola.de/'"> ausgeführt, also eine Weiterleitung zu http://ferienwohnung-karola.de/ nach 0 Sekunden.

Die URL bei Google stimmt also doch. Aber warum bekomme ich von der URL-Leiste eine Wohnung, von Google Viagra? Vielleicht hängt es mit dem "Referrer" zusammen? Einem HTTP-Header, der einer Website sagt, von welcher Website ein neuer Nutzer zu ihr verwiesen wurde?

Bei cURL kann man über --referer <url> einen Referer festlegen, --head zeigt nur den Header an.

% curl --head --referer "http://www.google.de" "http://ferienwohnung-karola.de/"
HTTP/1.1 302 Found
Date: Sun, 17 Feb 2013 19:55:16 GMT
Server: Apache
Location: http://mediciron.ru/
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1

Aha! Wenn man also von Google aus kommt, wird man auf eine Seite namens http://mediciron.ru/ weitergeleitet. Aber wo führt die hin?

% curl --head "http://mediciron.ru/"
curl: (52) Empty reply from server
[1]    6576 exit 52    noglob curl --head "http://mediciron.ru/"

Es wurde kein Inhalt zurückgeschickt? Aber warum wird man dann normalerweise Weitergeleitet?

Vielleicht muss wieder der Referer stimmen?

% curl --head  --referer "http://ferienwohnung-karola.de/" "http://mediciron.ru/"
curl: (52) Empty reply from server
[1]    6580 exit 52    noglob curl --head --referer "http://ferienwohnung-karola.de/"

Nein, das kann es nicht sein. Aber

% firefox http://mediciron.ru/

führt mich wieder zu http://offeemedic.com/. Seltsam. Der Browser leitet mich weiter, cURL nicht… Das muss am Useragent liegen! Der Useragent ist ein HTTP-Header, der dem Server sagt, welchen Browser der Nutzer verwendet. cURL lässt einen auch den Browser einstellen. Ich hab mich dann mal als Google Chrome ausgegeben

% curl --head \
--user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.91 Safari/537.11" \
"http://mediciron.ru/"

HTTP/1.1 302 Moved Temporarily
Server: Apache
Date: Sun, 17 Feb 2013 19:48:44 GMT
Content-Type: text/html
Content-Length: 161
Connection: close
Location: http://offeemedic.com/

Soso, jetzt haben wir ihn also, den Redirect auf http://offeemedic.com/. Zusammenfassend muss man also von Google kommen und einen normalen Browser verwenden, um weitergeleitet zu werden. (--location lässt cURL automatisch den Redirects folgen)

% curl --head \
--location \
--referer "http://www.google.de" \
--user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.91 Safari/537.11" \
"http://ferienwohnung-karola.de/"

HTTP/1.1 302 Found
Date: Sun, 17 Feb 2013 23:27:46 GMT
Server: Apache
Location: http://mediciron.ru/
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 302 Moved Temporarily
Server: Apache
Date: Sun, 17 Feb 2013 23:27:46 GMT
Content-Type: text/html
Content-Length: 161
Connection: close
Location: http://offeemedic.com/

HTTP/1.1 200 OK
Server: Apache
Date: Sun, 17 Feb 2013 23:27:49 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Set-Cookie: holiday=presidents-day; path=/
Set-Cookie: site_id=101; path=/
Set-Cookie: flag_country=de; path=/
Set-Cookie: heatmap=; path=/; expires=Sat, 18-Feb-2012 23:27:49 GMT
Set-Cookie: CGISESSID=cc309bda57d1a711391340a4a993afb7; path=/; expires=Tue, 27-Dec-2022 23:27:49 GMT
Expires: Sun, 17 Feb 2013 23:27:48 GMT
Cache-Control: no-cache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Last-Modified: Sun, 17 Feb 2013 23:27:48 GMT

Der Grund ist wahrscheinlich eine Konfiguration des Webservers des Hosters. Es scheint fast so als hätte der sich irgendwelche Malware eingefangen. Man muss aber zugeben, dass das ganze sehr geschickt ist, weil man es mit den normalen Methoden die ein Sysadmin wahrscheinlich erstmal Probieren würde oder zum Monitoring verwendet nur sehr schwer findet und die Suchmaschiene es nciht mitbekommt, denn die hat ebenfalls einen anderen Useragent. So werden die Seiten auch nicht nach unten geranked, führen aber zu dieser Viagraseite.

Jetzt ist noch interessant, dass das nicht nur Google betrifft, sondern auch Yahoo…

% curl --head --referer "http://www.yahoo.de" "http://ferienwohnung-karola.de/"
HTTP/1.1 302 Found
Date: Sun, 17 Feb 2013 19:52:49 GMT
Server: Apache
Location: http://mediciron.ru/
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1

…und bing.

% curl --head --referer "http://www.bing.de" "http://ferienwohnung-karola.de/"
HTTP/1.1 302 Found
Date: Sun, 17 Feb 2013 19:52:49 GMT
Server: Apache
Location: http://mediciron.ru/
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1

Und hier möchte ich noch mal auf meine derzeitige Suchmaschiene hinweisen: DuckDuckGo, diese ist nämlich nicht betroffen ;)

% curl --head --referer "https://duckduckgo.com/" "http://ferienwohnung-karola.de/"
HTTP/1.1 200 OK
Date: Sun, 17 Feb 2013 19:53:06 GMT
Server: Apache
Last-Modified: Tue, 12 Feb 2013 14:42:15 GMT
ETag: "e9a01d9-37c6-4d58808197fc0"
Accept-Ranges: bytes
Content-Length: 14278
Vary: Accept-Encoding
X-Powered-By: PleskLin
Content-Type: text/html

Ursache ist, wie sich jetzt geklärt hat, die .htaccss-Datei, eine Konfigurationsdatei des Apache-Webservers, mit dem unter Anderem auch das Routing konfiguriert wreden kann. Irgendwie muss folgende .htaccess-Datei unbemerkt in den DocumentRoot des Webservers gelangt sein, anscheindend hat sich jemand unerlaubt Zugriff beschafft. Das Passwort ist geändert, die Datei gelöscht und der Hoster informiert.

Options -Indexes
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*ask.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*yahoo.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*baidu.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*youtube.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*wikipedia.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*qq.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*excite.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*netscape.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*hotbot.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*goto.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*mamma.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*alltheweb.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*lycos.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*metacrawler.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*bing.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*dogpile.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*facebook.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*twitter.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*blog.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*live.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*myspace.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*linkedin.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*altavista.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*infoseek.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*yandex.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*rambler.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*mail.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*ya.*$ [NC]
RewriteRule .* http://mediciron.ru/ [R,L]
ErrorDocument 401 http://mediciron.ru/
ErrorDocument 403 http://mediciron.ru/
ErrorDocument 404 http://mediciron.ru/
ErrorDocument 500 http://mediciron.ru/

Die Seminararbeit mit LaTeX

So jetzt ist es auch bei mir soweit: Die Seminararbeit (ehemalig Facharbeit) ist abgegeben. Mein Thema war im Bereich Lebensmittelchemie angesiedelt und das Thema lautetet: "Die Analyse des Mononatriumglutamatgehalts in Tomatenprodukten", also die Untersuchung des Gehalts eines Geschmacksverstärkers in Tomatensuppen. Wen das interessiert, der kann sie hier lesen. In diesem Blogpost soll es aber eher um den Entstehungsprozess gehen.

Das Besondere an eben jenem ist nämlich, dass die Arbeit nicht wie bei den meisten meiner Mitschüler*innen in Microsoft Offices Word oder Open-/Libre-Namensverwirrungsoffices Writer oder gar Apple iWorks Pages geschrieben, sondern mit dem professionellen LaTeX (sprich: latech) Satzsystem erzeugt wurde. Damit bin ich zwar nicht allein--Ro0mquy, Fabian, duzeful, Araxegon und Norbert haben ebenfalls "geTeXt", Alexander wird es bestimmt auch tun--allerdings doch deutlich in der Minderheit. Warum? Weil LaTeX kein Textverarbeitungsprogramm ist, sondern enie Auszeichnungssprache und ein Satzprogramm. Zur Formatierung markiert man nicht ein Wort und klickt auf "Fett", sondern man schreibt die Auszeichnung direkt in den "Code": \textbf{Wort}. Bilder werden nicht nicht per drag-n-drop in das Dokument gezogen, sondern mit

\begin{figure}
    \includegraphics{bild}
    \caption{Eine Bildunterschrift}
\end{figure}

eingebunden. Das sieht auf den ersten Blick sehr kompliziert aus, doch mir liegt dies Art zu arbeiten viel eher, als mit Word oder seinen Kumpanen. Ich kann meinen Lieblingseditor verwenden, den Text in verschiedene Dateien unterteilen, also modularisieren und das ganze sogar mit git verwalten. Ich kann überall, und wenn ich auch nur eine Kommandozeile mit nano oder vim habe schnell Änderungen vornehmen und binde mich nicht an ein properitäres Dateiformat, oder eines, bei dem ich eine riesige GUI-Software starten muss um es lesen. Noch dazu sieht es einfach verdammt gut aus und erfüllt höchste typographische Ansprüche.

Der wichtigste Aspekt war allerdings für mich, dass sich LaTeX hervorragend für das Schreiben naturwissenschaftlicher Arbeiten eignet. Der Formelsatz ist exzellent, die Verwaltung der Bibliographie funktioniert mit BibTeX unkompliziert und zuverlässig und man kann sogar mit den entsprechenden Paketen chemische Strukturformeln erzeugen.

Natürlich ist es viel Arbeit, da man sich--hat man sich vorher noch nicht mit LaTeX auseinandergesetzt--erst einmal an die doch etwas befremdliche Syntax gewöhnen muss. Doch ich persönlich glaube, dass ich, um den gleichen Grad an Perfektion zu erreichen, in Word o.Ä. länger gebraucht hätte. Da LaTeX seit den Siebziegern existiert und von Wissenschaftlern rund um die Welt eigesetzt wird, ist so gut wie jedes Problem bereits aufgetreten und gelöst worden. Wenn man sich mit LaTeX beschäftigt, kann ich einem nur das Wikibook und tex.stackexchange empfehlen, dort finden man Antworten auf fast alle Fragen. CTAN eignet sich hervorragend, um Dokumentation zu Paketen nachzuschlagen. Für diejenigen, die ebenfalls vorhaben, ihre Arbeit in LaTeX zu schreiben, möchte ich hier jetzt noch einige Empfehlungen abgeben.

Zum einen hätten wir da das Paket csquotes, das euch, neben einer Reihe weiterer Befehlen, \enquote{foo} zur Verfügung stellt. Damit könnt ihr ganz einfach Anführungszeichen setzen und erspart euch die nervige ,,foo'' Syntax. Die Anführungszeichen werden dann für euer jeweiliges babel-Setting korrekt eingefügt.

Eine weitere Erleichterung ist das siunitx Paket. Mit ihm setzt ihr korrekt Einheiten, wie z.B. \SI{23}{\milli\gram\per\litre}. Es bietet umfangreiche Einstellungsmöglichkeiten und erweiterte Funktionen um beispielsweise Zahlenbereiche oder Listen zu formatieren oder sogar automatisch zu runden.

Die Pakete tabularx, multirow und caption erweitern den Tabellensatz um nützliche Features und booktabs sorgt dafür, dass eure Tabellen wunderschön und professionell aussehen. Weiteres dazu im Wikibook.

Wer seine Arbeit im Bereich Chemie schreibt, für den werden die Pakete chemfig und mhchem zum Erzeugen von komplexen Strukturformelgleichungen und einfachen Formatieren von Summenformeln interessant sein. Sämtliche chemischen Abbildungen in meiner Arbeit sind mit chemfig gebaut. Es ist zwar auch eine Menge Arbeit, allerdings kann man so mit einem Textediror Änderungen einarbeiten und muss keine Graphiksoftware starten oder sich Monster wie [ChemSektch] zulegen. Wer jedoch häufig etwas in diesem Bereich zu Zeichnen hat, und sich mit graphischer Software auskennt, wird damit jedoch bestimmt glücklicher, da die chemfig-Syntax schnell sehr unübersichtlich werden kann.

Wer noch weitere nützliche Pakete sucht und sich generell mal die Struktur einer größeren Arbeit ansehen will, kann hier meine LaTeX-Quelldateien herunterladen. Das ganze steht unter Beerware-Lizenz (Verwende es und wenn es dir hilft, lass uns zusammen ein Bier--oder was anderes--trinken gehen). Dort finden sich auch sinnvolle Einstellungen für die obengenannten Pakete, ein Beispiel für die Strukturierung mit mehreren Dateien und die intensive Verwendung von chemfig zum malen von Chemieformeln.

Wer auch am Deutschhaus ist, und die Formatforlage für das Deckblatt und die Unabhängigkeitserklärung braucht, findet die von mir hier (v.1.1.0). Informationen zur Verwendung stehen im Readme.

An dieser Stelle möchte ich mich noch mal bei allen bedanken, die mir bei der Arbeit geholfen haben. Allen voran Dr. Markus Krischke vom Julius-von-Sachs-Institut für seine Hilfe bei den Probenmessungen, dann natürlich Christian Lorey vom Schülerlabor des FKG für seine umfangreiche Hilfe bei der Arbeit und die Bereitstellung des Labors, und auch Dr. Alfons Ledermann von der Fakultät für Chemie und Pharmazie der Uni Würzburg für das bereitwillige Korrekturlesen. Ein riesen Dankeschön bekommt natürlich noch mal Ro0mquy für die Hilfe mit chemfig; ohne ihn hätte ich mich endlos durch die Doku graben müssen. Ebenso danke ich petschge und urs und den andern aus #geeks für die Bereitstellung ihrer LaTeX-Templates und Hilfe bei Formatierungsproblemen.

Ich hab noch ein bisschen Statistik für die Nerds unter euch: Es sind 31 Seiten, 5 Kapitel, < 5697 Wörter (detex wirft noch ein paar Sachen raus, die nicht wirklich Wörter sind), das PDF ist 8,8MB groß, es sind 20 Abbildungen enthalten, 2 Tabellen und 3 Formeln. Aus meinem Git Repo kann ich außerdem noch entnehmen: Age: 76 days, 23 active days (30.26%); Total Files: 21; Total Lines of Code: 3087 (4067 added, 980 removed); Total Commits: 78 (average 3.4 commits per active day, 1.0 per all days). Ich hätte da noch einige Aktivitätsgraphen, die aber total unaussagekräftig sind (wie alle Werte aus Git hier), da da Bilder auch mit reingereichnet werden, und ein Absatz nur eine Zeile ist, eine Abbildung jedoch mindestens 5 Zeilen. Außerdem ist meine Commit-Policy nicht immer Einheitlich. Mal hab ich einen Commit nach einem ganzen Kapitel gemacht, mal nach ein paar kleinen Änderungen. Generell lässt sich jedoch sagen: Die Anzahl der Commits pro Tag und der hinzugefügten Zeilen nimmt mit veringertem Abstand zum Abgabetermin immer weiter zu. Außerdem hab ich vor allem zwischen 18 und 1 Uhr morgens committet. (Git Statistik von gitstat)

Die Software die zum Einsatz gekommen ist war: TextMate und Vim zur Text bearbeitung; Adobe Photoshop, Inkscape und graphix.sty zur Bildbearbeitung; Excalibur zum Auswerten von Spektren, Microsoft Word for Mac zum Betrachten der Formatvorlagen und zum exportieren der Excaliburdateien nach PDF m(; MacTeX 2012 als TeXLive Distribution, Latexmk.pl zum automatisierten Kompilieren; und natürlich git zur Versionskontrolle und iTerm2 als Terminalemulator; für die Präsentation werde ich Apple Keynote verwenden. Die Hardware zum Bilder machen waren: Nikon Coolpix P5000 und die Kamera des iPhone 3GS.


1/16