2010
09.08

Heute gibt es mal einen minimalen Versionssprung von dem SMS Counter.

Ab sofort ist der Palm Pre SMS Counter in der Version 0.0.3 erhältlich, einige Bugs wurden behoben und die Funktion zur Auswahl des Reset-Tages wurde geschaffen.

Die Einstellungsmöglichkeiten findet ihr ab sofort im Menü (Links oben).

Damit kann ich endlich diese Funktion auf der To-Do Liste streichen. Bleiben nur noch ein paar. :P

Die neue Version wurde natürlich schon in den Preware Stream (http://daslampe.lano-crew.org/webOs) eingespeißt.

Auf dieser Seite findet ihr auch die jeweils aktuelle Version zum manuellen Download.

Viel Spaß mit der App!

Über Kommentare und Anregungen freue ich mich natürlich weiterhin.

2010
08.31

Endlich ist es soweit, ich kann den Palm Pre SMS Counter Vorstellen! :) Lange hat es gedauert, aber jetzt ist er doch online.

Das ganze ist mehr oder weniger noch in der Testphase, und sollte in den nächsten Tagen und Wochen wohl noch mehrere Updates bekommen, weil es bestimmt noch einige Bugs gibt.

Daher wäre es nett, wenn ihr in den Kommentaren Bugs melden würdet, damit ich diese beheben kann.

Nun aber zum SMS Counter selbst.

Das ganze funktioniert über einen Daemon, welcher in einem Extra Paket installiert werden muss, keine Angst, Preware erkennt das Automatisch und installiert direkt beides.

Nachdem der Daemon installiert ist, liest dieser die PalmDatabase.db3 alle 5 Minuten aus und schreibt das Ergebnis in eine JSON Datei, woraus das Interface mit Daten versorgt wird.

In dieser JSON Datei stehen zur Zeit die Daten über Gesendete SMS Heute, im Aktuellen Monat und die Gesamtanzahl, alles beruhend auf den Daten aus der PalmDatabase.db3, daher gibt es hier keinen Anspruch auf Richtigkeit! Außerdem wird in der Datei noch die Zeit der Erstellung gespeichert, damit man im Programm sehen kann, von wann dieser Counterstand ist.

Fürs erste sollte das reichen, hoffe ich. Weitere Vorschläge nehme ich natürlich gerne an.

Hier mal eine kleine Liste mit den Sachen die ich geplant habe:

  • Monatsanfang selbst bestimmen. Zur Zeit ist Monatsanfang immer der 1.
  • Timestamp nicht mehr von Webseite holen, sondern im Gerät selbst erzeugen. (Jemand nen Tipp?)
  • Refresh Button, im Prinzip Manuelles ausführen des Daemon
  • Speichern der Daten in einer “richtigen” Datenbank

So genug um den heißen Brei geredet!

Zum installieren benötigt ihr Preware oder WebOSQuickInstall, damit lässt sich der Daemon installieren.

Wenn ihr Preware benutzt, dann muss ein neues Feed erstellt werden (wird sich später wohl ändern).

Die Adresse ist: http://daslampe.lano-crew.org/webOs

Solltet ihr einfach nur die Dateien benötigen, dann gibts diese hier zum Download:

[Update]:

Ab sofort ist Version 0.0.3 Verfügbar! Mehr dazu hier …

App – http://daslampe.lano-crew.org/webOs/org.daslampe.smscounter_0.0.1_all.ipk

Daemon – http://daslampe.lano-crew.org/webOs/org.daslampe.smscounterd_0.0.1_all.ipk

Bei Problemen, auch bei Problemen mit der Installation, kann man mich natürlich gerne anschreiben!

Viel Spaß mit dem SMS Counter!

2010
08.30

Für mich hat heute mal wieder ein neuen Schuljahr begonnen, jedoch hat sich die Jahrgangsstufe für mich nicht geändert. Ich hänge also immer noch in der 12.

Letztes Jahr habe ich einfach zu viel scheiße gebaut, zum Beispiel sehr viele Fehlstunden, wodruch ich den Anschluss verloren habe.

Das wird mir dieses Jahr nicht passieren!

Allerdings wird das Jahr nicht besser, der Stundenplan ist sogar noch etwas schlimmer als letztes Jahr!

3x die Woche habe ich bis in die 10. Stunde, heißt ich bin erst gegen 17 Uhr zu Hause, womit der Tag für mich gelaufen ist.

Donnerstags, wo ich die Juffis Leite, habe ich dazu noch bis in die 9. Stunde, wodurch ich mal wieder ein Problem mit den Hausaufgaben bekomme. Naja irgendwie muss ich das geregelt bekommen.

Der einzige Lichtblick ist der Dienstag, wo ich nur  bis um halb 1 in der Schule sitzen muss und auch nicht ganz so früh da sein muss.

Ein weiteres Problem ergibt sich durch die kurze Zeit bis zu den Herbstferien, grade mal 6 Wochen, wo von unser Jahrgang auch noch eine Woche auf Studienfahrt in der Toscana ist. In die verbleibenden Wochen eine Klausurenphase zu packen wird ein Kunststück.

Was ich auch dieses Jahr wieder nicht verstehe, warum haben wir bis spät in den Nachmittag Unterricht und andere Schulen bekommen ihre Kurse so gelegt, das die Schüler fast immer gegen 14:30 Schulschluss haben?!

2010
08.29

Die nächsten Artikel drehen sich mal wieder um das Palm Pre, da es hier einiges zu Berichten gibt. :)

Los geht’s mit einem Hardware Problem. Der Powerknopf zum ausschalten des Displays und des Palms selbst, hat mir heute Probleme bereitet. Normalerweise hört man ein kleines klicken, wenn man diesen betätigt.
Nachdem ich den Palm aus meiner Tasche genommen hatte, kam dieses Geräusch allerdings nicht mehr und der Palm reagierte auch nicht mehr auf diese Taste.
Das entwickelt sich dann natürlich zu einem großen Problem, da ich keine Lust habe, den Palm immer aufzuschieben bevor ich was sehen kann und zu warten bis sich die Touchscreensperre eingeschaltet hat, bevor ich den Pre wieder in die Tasche stecken kann.
Ab morgen, werde ich dafür wohl auch kaum die Zeit finden, wenn ich erstmal wieder in der Schule sitze.

Also was macht man? Das Ding einschicken und eine Zeit lang ohne Handy auskommen, kommt für mich nicht wirklich in frage, da ich kein zweites Handy habe, welches ich als Alternative verwenden kann, damit ich trotzdem erreichbar bin. Und extra eins kaufen, naja dafür bin ich dann etwas zu geizig. :P

Also habe ich mich schnell mal vor den Mac von @Pfirsichwolke gesetzt und gegoogelt, wie man das Problem den beheben kann, bzw. erstmal ob dieses Problem öfter auftritt.
Tatsächlich, das ganze ist wohl eine Abnutzungserscheinung vom Pre, was ich bei dem Preis schon echt krass finde, besonders da mein Palm Pre noch nicht alt ist, knapp 4 Monate.

Lange rede kurzer Sinn, ich wollte euch hier mal schnell die Lösung präsentieren, die ich verwendet habe, damit der Powerknopf wieder funktioniert.

Einfach, ganz Vorsichtig, von der Bildschirmseite, mit einem dünnen Gegenstand, bei mir war es eine Nagelfeile, den Powerknopf aushebeln. Dort wo der Powerknopf war, kommt nun eine Platte zum vorschein. Auf diese Platte habe ich ein kleines (2 mal gefalltenes) Stück Kassenbon gelegt und den Knopf wieder drauf gepackt.

Jetzt läuft das ganze wieder ohne Probleme. :)
Vielleicht kann dem ein oder anderen das ja helfen.

Achja den Tipp habe ich übrigens hier her: http://www.preforum.de/palm-pre-forum/1318-power-knopf-funktioniert-nicht.html#post17353

Bald gehts weiter, mit neuen Infos, bzw. der Installationsanleitung zum SMS Counter.

2010
08.03

Hier kommt mal wieder ein Artikel der etwas länger, aber vielleicht auch etwas informativer, als die letzten wird. :)

Dieses mal geht es um eine Möglichkeit via fsockopen in PHP ein IMAP-Postfach auszulesen. Normaler weise gibt es dafür in PHP schon eine Extension, jedoch ist diese nicht überall aktiviert, daher kann man diese Technik nicht sehr gut nutzen, wenn man ein Programm/Skript, schreiben möchte, welches auf möglichst vielen Server läuft.

fsockopen ist zwar auch bei vielen Free Webhostern ausgeschaltet, da mit dieser Funktion viel “Schaden” angerichtet werden kann, jedoch hat man bei Pytal.de zum Beispiel die Möglichkeit, durch eine Bestätigte Mitgliedschaft fsockopen nutzen zu können.

Naja lange genug um den heißen Brei geredet, was habe ich also gemacht?

Ganz einfach, ich habe es mir einige Stunden vorm PC gemütlich gemacht, während sich @Pfirsichwolke immer mehr langweilte.

Nach ziemlich viel gegoogle, ausprobieren und fragen im Pytalchat, habe ich jetzt endlich eine naja zugegeben schlechte, aber trotzdem Funktionierenden IMAP-Klasse geschrieben. :)

Der Code dazu kommt hier:

// +———————————————————————-+
// | Copyright (c) 2010 DasLampe |
// | Encoding: UTF-8 |
// +———————————————————————-+
class IMAP
{
var $sock;
var $host;
var $port;
var $sid;
var $tag;
var $_lastTag;
var $currentMailbox;

function __construct()
{
$this->sock = null;
$this->host = “localhost”;
$this->port = “143″;
$this->sid = “”;
$this->tag = 0;
$this->_lastTag = $this->tag;
$this->currentMailbox = “”;
}

function __destruct()
{
fwrite($this->sock, “A000″.$this->getTag().” LOGOUT\r\n”);
}

function connect($host=”", $port=”", $ssl=false)
{
$this->host = $host;
$this->port = $port;

if($ssl == true)
{
$this->host = “ssl://”.$host;
}

$this->sock = fsockopen($this->host, $this->port, $errno, $errstr);

if(!$this->_assumedNextLine(‘* OK’))
{
echo ‘FAIL CONNECT’;
}
}

function getTag()
{
$this->tag = $this->tag +1;
$this->_lastTag = “A000″.$this->tag;

return $this->tag;
}

function login($username, $pass)
{
fwrite($this->sock, “A000″.$this->getTag().” LOGIN “.$username.” “.$pass.”\r\n”);
if(!$this->_assumedNextLine($this->_lastTag))
{

}
}

function selectMailBox($mailbox)
{
fwrite($this->sock, “A000″.$this->getTag().” SELECT “.$mailbox.”\r\n”);
$this->currentMailbox = $mailbox;

$this->readResponse($this->_lastTag);
}

function countMessages()
{
fwrite($this->sock, “A000″.$this->getTag().” SEARCH ALL\r\n”);
$response = $this->readResponse($this->_lastTag);

foreach($response as $id)
{
if($id[0] == “S”)
{
$count = count_chars($id, 1);
}
}
return $count[32];
}

public function getSubject($msgId)
{
if(empty($msgId))
{
return false;
}

$this->fetch($msgId.” BODY[HEADER.FIELDS (subject)]“);

$array = array();
while(!$this->readLine($tokens, $this->_lastTag))
{
if(!empty($tokens) && preg_match(“/FETCH/”, $tokens))
{
$msgId = preg_split(“/ /”, $tokens, 2);
$msgId = $msgId[0];
}
if(!empty($tokens) && !preg_match(“/FETCH/”, $tokens))
{
$array[] = array(“id” => $msgId,
“subject” => $tokens);
}
}
return mb_decode_mimeheader($array[0]['subject']);

}

public function getMsgText($msgId=”")
{
if(empty($msgId))
{
return false;
}

$this->fetch($msgId.” BODY[TEXT]“);

$array = array();
$array[] = “=?ISO-8859-1?Q?”;
while(!$this->readLine($tokens, $this->_lastTag, $tag))
{
$array[] .= $tag.’ ‘.$tokens;
}
//Löschen der 1. und letzten Response
unset($array[1]); //FETCH
unset($array[count($array)]); //Klammer

$array = array_values($array);

//Array2String
$array = implode(”, $array);

//Decodieren und Zeilenumbrüche setzten
return nl2br(mb_decode_mimeheader($array));
}

public function getFromOrTo($msgId=”", $fromOrTo=”")
{
if(empty($msgId) || empty($fromOrTo))
{
return false;
}

$this->fetch($msgId.” BODY[HEADER.FIElDS (".$fromOrTo.")]“);

while(!$this->readLine($tokens, $this->_lastTag))
{
if(!isset($return) && !preg_match(‘/FETCH/’, $tokens))
{
$return = htmlspecialchars($tokens);
}
}
return mb_decode_mimeheader($return);
}

private function fetch($command, $param=false)
{
if(!$param)
{
fwrite($this->sock, “A000″.$this->getTag().” FETCH “.$command.”\r\n”);
}
else
{
fwrite($this->sock, “A000″.$this->getTag().” FETCH “.$command.” “.$param.”\r\n”);
}
}

function _nextLine()
{
$line = @fgets($this->sock);
if ($line === false)
{
echo ‘FAIL!!’;
return false;
}
return $line;
}

protected function _assumedNextLine($start)
{
$line = $this->_nextLine();
return strpos($line, $start) === 0;
}

public function readLine(&$tokens = array(), $wantedTag = ‘*’, &$tag=”")
{
$line = $this->_nextTaggedLine($tag);
$tokens = $line;
$tag = $tag;

if(($tag == “A000″.$this->tag) || ($tag == $wantedTag))
{
return $tag;
}
}

public function readResponse($tag=”*”)
{
if($tag == “lastTag”)
{
$tag = $this->_lastTag;
}
$lines = array();
while (!$this->readLine($tokens, $tag)) {
$lines[] = $tokens;
}

return $lines;
}

protected function _nextTaggedLine(&$tag)
{
$line = $this->_nextLine();

// seperate tag from line
@list($tag, $line) = explode(‘ ‘, $line, 2);

return $line;
}
}

Vielleicht kann diese Klasse ja jemanden Helfen, der ein ähnliches Problem hat, ich würde mich dann auf jeden Fall über ein Kommentar freuen.

Ich muss dazu sagen, das ich bei meiner Suche natürlich auch auf andere Klassen gestoßen bin, welche bei mir jedoch alle nicht Problemlos liefen. Dazu kommt, das ich natürlich gerne weiß, was mein Programm macht und ich in den Ferien auch Zeit dafür habe, so etwas selbst zu schreiben.

Kleiner Tipp noch am Rande, wer plant auch einige eigene Klasse zu schreiben, dem kann Wireshark echt gut helfen!
Ich hatte zum Beispiel das Problem, das schon die 2. Anfrage gesendet wurde, bevor die 1. Anfrage zurück kam, trotz eines sleep(2), solche Fehler kann man eher schlecht aus einer Protokolldokumentation entnehmen. ;)

Achja, hier noch die Klassen, die ich so ausprobiert habe und von welchen Einflüsse in meinem Code sind:

Zend Mail aus dem Zend Framework + diese Anleitung von PHP Gangsta

Net_IMAP aus der PEAR Bibliothek.

2010
07.01

Dank meines Palm Pre (bei dem ich leider immer noch nicht einen Daemon installiert bekomme (wenn jemand weiter helfen kann bitte melden)), konnte ich heute in der Schule einen ziemlich interessanten Artikel von WebmasterPro.de lesen.

Bei diesem Artikel geht es dadrum, wichtige Programme, die man eigentlich auf jedem Rechner haben sollte, zu installieren.

Wer kennt das nicht, man formatiert, was bei Windows ja öfter vorkommen soll :P . Und dann sitzt man Stunden vorm PC und installiert wieder alle Programme, wie z.B. Firefox oder VLC Player usw.

Eine Abhilfe sollen 2 Webseiten bringen, welche das installieren, von kostenlosen Programmen übernehmen.

Zum einen ist das ninite.com und zum anderen allmyapps.com.

Bei diesen 2 Webseiten wählt man, laut Beschreibung einfach die Programme aus und klickt auf weiter. Die Webseite spuckt nun eine Exe Datei aus, welche alle Programm installieren soll.

Schön für Ubuntu Benutzer, bei allmyapps, können auch diese diesen Service nutzen. Allerdings muss man sich bei diesem Service irgendwie anmelden, was ich persönlich nicht so gerne mache.

Ich selbst habe beide Webseiten nicht wirklich ausprobiert, da ich mit Arch Linux arbeite. Wenn jemand also Erfahrungen gemacht hat, kann er/sie diese gerne als Kommentar Posten!

2010
06.11

Die WM2010 hat angefangen. Zur zeit spielt Südafrika, gar nicht so schlecht, gegen Mexiko.

Am Sonntag geht es dann auch für die Deutschen los, wir spielen erstmal gegen Australien. Klar ist, das man nen bisschen Party machen muss, wenn man sich die Spiele im TV anguckt.

4 Lieder/Videos möchte ich euch heute Vorstellen, die eigentlich nicht fehlen dürfen, besonderes wenn der Alkoholpegel steigt.

Also fangen wir mal an, nachdem Deutschland nicht mehr Papst oder sonst was ist, sind wir natürlich Lena. Ein paar Jungs haben sich das zum Motto genommen und das ESC Lied umgedichtet. Ziemlich lustig finde ich und das Lied ist es auch Wert auf einer Party gespielt zu werden, da ja eh jeder diese Melodie kennen sollte.

Weiter geht es mit etwas rockigem. Die deutsche Band Frei.Wild, aus Südtirol, hat eine neues Lied raus gebracht, mit dem Titel “Dieses Jahr holen wir uns den Pokal”. Sehr rockig und mit richtig geilem Text! Einziges Manko an diesem Video, zwischendruch hat es 5sek. keinen Ton. :( Aber naja … es gibt ja noch weitere die man gucken kann, jedoch finde ich dieses Video besonderes schön und deswegen habe ich dieses genommen.

Weiter geht es mit einem weiteren rockigem Lied, von der Band Sturmwehr, aus Gelsenkirchen. Bevor jetzt einige Leute Wikipedia befragen und lesen, das es eine Rechtsrockband ist, sage ich das lieber früher. Wenn ihr euch deswegen das Lied nicht anhören wollt, dann ist das euer Problem, ich kann euch nur sagen ihr verpasst ein ziemlich gutes Lied, welches nicht mehr National ist, als andere WM Lieder auch.

Zu guter letzt habe ich noch ein Lied für das Ende der Party im Angebot, wenn die meisten Leute schon besoffen sind. Sinnlos, aber irgendwie doch sehr lustig. Der Jogi Löw Song!

Viel Spaß beim hören und Party machen!! Hoffen wir mal, das Deutschland am 11.7 als Sieger vom Platz geht!

2010
06.08

Was sich so komisch und irgendwie auch lustig anhört, soll einem nur Verdeutlichen wie groß die Schäden eigentlich sind und wie weit sich der Öl Teppich schon im Golf von Mexiko ausgebreitet hat.

Seit vielen Tagen sprudelt Öl aus dem Leck im Golf von Mexiko, dazu muss ich ja wohl nichts mehr sagen, sollte jeder von euch in den Nachrichten mit bekommen haben.

Eben bin ich auf die Seite IfItWasMyHome.com gestoßen. Dort kann man den Ölteppich beliebig verschieben. Und somit zum Beispiel gucken welche Städte der Ölteppich so überdecken würde, wenn die Öl Plattform in seiner Heimatstadt untergegangen wäre.

Ich hoffe, man kann sich dann besser Vorstellen, welche Ausmaße der Ölteppich hat.

Schon krass, wenn man sich das ganze mal in einer relativ bekannten Umgebung anguckt!

Ich habe das ganze mal für Solingen ausprobiert und folgendes kam dabei raus:

2010
04.30

Update: SMS Counter app ist fertig! Weitere Infos: http://blog.andreflemming.de/2010/08/31/palm-pre-sms-counter-version-0-0-1/

Seit dem 9.4.10 bin ich im Besitz eines Palm Pre, natürlich muss man erstmal gucken was diese Dingen für Funktionen hat.

Dabei ist mir in den letzten Tagen leider immer wieder aufgefallen, das mir eine Funktion doch sehr fehlt. Nämlich die SMS Zähl Funktion, zur Zeit gibt es noch keine (mir bekannte) Möglichkeit über ein Programm auf dem Pre einzusehen, wie viele SMS man geschrieben hat.

Da ich einen Vertrag bei O2 habe und dieser 100 Frei-SMS enthält wäre so eine Funktion aber schon sehr praktisch.

Also habe ich mich mal auf die Suche gemacht, zuerst einen SSH Zugang zu meinem Handy gebaut, Anleitungen gibt es dazu viele im Netz. (Google hilft)

Nach einigem Suchen im Dateisystem fand ich die Datei /var/luna/data/dbdata/PalmDatabase.db3, diese habe ich mir auf meinen Rechner gezogen und mittels SQLite Database Browser (im AUR vorhanden (für die Linux Leute ;) )) und folgendes eingetippt:

SELECT COUNT(*) FROM com_palm_pim_FolderEntry WHERE flags = '133' AND messageType='SMS'

Mit diesem SQL Befehl wird einem nun die Anzahl der SMS die man geschrieben hat und welche noch nicht gelöscht wurden, angezeigt. Natürlch keine super Lösung, ich überlege zur Zeit, das ich mir ein eigenes Programm schreibe was, die Anzahl der SMS ausgibt und damit auch für jeden Zugänglich ist.

Ich hoffe, das ich trotz der nicht wirklich vorhanden Ausführlichkeit des Artikels, doch einigen helfen konnte.

Leider muss ich jetzt auch schon wieder weg, sonst würde ich gerne mehr dazu schreiben und mich auch jetzt schonmal an ein Programm setzen.

[Update]: Damit ihr das Datum korrekt aus dem Timestamp raus ziehen könnt, müsst ihr die letzten 3 Ziffern von diesem entfernen, sonst bekommt ihr ein falsches Datum.
Jemand eine Idee warum das so ist?

[Update2]: Hatte im SQL-Code nen Tippfehler is mir grade mal aufgefallen. Ist jetzt behoben. ;)
[Update3]: Endlich gibts was neues. Nachdem Peter in meinen Kommentaren geschrieben hatte, dass er so ein Programm sucht, ist wieder Bewegung in die Entwicklung gekommen. Und siehe da, mit ein bisschen Glück, ist das ganze auch gar kein Problem.
So habe ich jetzt auf meinem Pre schon so ein Programm. :) Ich feile jetzt noch ein wenig am Design und werde das ganze dann schnell für alle Zugänglichen machen, wohl erst einmal über einen eigenen Feed, welchen man in Preware importieren kann.

[Update4] Endlich ist es soweit, der SMS Counter ist online! :) Weitere Infos: http://blog.andreflemming.de/2010/08/31/palm-pre-sms-counter-version-0-0-1/

2010
04.07

Der böse Freund der Alkohol, bei fast jeder Party ist er auch dabei. Besonders bei Jugendlichen, in meinem Alter, kommt es immer häufiger vor, das es eben nicht bei Bier bleibt, sondern die harten Sachen auf den Tisch kommen. Klar wenn man Älter wird, will man neues ausprobieren und es wird ja auch irgendwann legal, so wie bei mir in 8 Tagen. :)

Aber immer mehr kleine greifen schon jetzt zu den harten Flaschen. An so etwas dran zu kommen, ist ja kein Problem, das habe ich vor einigen Jahren ja auch ohne Probleme geschafft. Jedoch finde ich es schon krass, in welchem Alter viele heute schon Anfangen zu trinken.

Bald darf ich alleine Autofahren, dann ist das Thema Alkohol natürlich noch ein größeres. Seit einigen Jahren dürfen Fahranfänger in der Probezeit gar nichts mehr trinken, sprich müssen 0,0 Promille haben. An sich finde ich das eine gute Sache, allerdings würde ich diese Regelung auf alle Autofahrer ausweiten, weil auch Erwachsene reagieren auf Alkohol nicht nur Jugendliche!

Natürlich kennt man mit zunehmenden Alter in der Regel seine Grenzen, ab wann man sich nicht mehr ans Steuer setzen sollte, oder ab wann man morgens mit einem Kater aufwacht. Aber auch diese Grenze musste ja irgendwann mal erprobt werden, was heißt, dass diese Leute schon einmal Betrunken Autogefahren sind!

Klar ist aber auch, das jeder seine Grenzen austesten möchte und es ziemlich wichtig ist das man seine Grenzen kennt, damit man nicht am nächsten morgen im Krankenhaus aufwacht. Jedoch sollte man versuchen seine Grenzen langsam zu erproben und meiner Meinung nach nur in einem Freundeskreis, denen man wirklich vertraut, falls man irgendwann doch im Vollrausch ist und gar nicht mehr klar kommt.

Die BZgA (Bundeszentrale für gesundheitliche Aufklärung) hat zu dem Thema eine, meiner Meinung nach, sehr gute Video-Kampagne gestartet, außerdem gibt es auch eine Plakat-Aktion zu dem Thema, wie ich grade noch von meiner Freundin erfahren habe.

(via Chriz’ Blog)