14.09.2011Team-Filter für hockeytoto.ch

Da ich dieses Jahr bei hockeytoto.ch mitmache und mich die etwas unübersichtliche Oberfläche gestört hat, habe ich mich heute hingesetzt und ein kleines Userscript für Greasemonkey geschrieben.

Select-Box um nach einer Mannschaft zu
filtern

Das Script blendet auf der Tipp-Seite eine Select-Box ein, in welcher eine Mannschaft gewählt werden kann. Nach dieser Mannschaft wird die Tabelle dann gefiltert, d.h. man sieht nur noch die Matches in denen diese Mannschaft Heim- oder Gastmannschaft ist.

Gerade um später in der Saison Tipps abzugeben kann es sinnvoll sein die letzten Ergebnisse anzusehen. Aber auch sonst finde ich die Seite dadurch einfach übersichtlicher. Rvtl. bringt es ja irgendjemandem sonst auch noch etwas. Würde mich natürlich auch über Feedback freuen :-)

Um das Script nutzen zu können muss zuerst die Firefox-Erweitertung Greasemonkey installiert werden.

Links:

25.06.2011Zum selektierten Wert springen (IE Bug)

Der Internet Explorer hat die Angewohnheit in einer <select>-Box den ausgewählten Wert nicht direkt anzuzeigen. Stattdessen werden immer nur die ersten Werte angezeigt. Der IE zeigt also folgendes:

Der ausgewählte Wert ist nicht
sichtbar

Wobei ich eigentlich folgendes erwarten würde:

Der ausgewählte Wert ist als solcher
erkennbar

Wenn der Benutzer scrollt, sieht er schon welcher Wert gewählt ist, die Liste springt jedoch nicht automatisch zum ersten ausgewählten Wert (wie das beispielsweise der Firefox macht).

Mit einer kleinen JavaScript-Funktion kann dies aber einfach nachgebaut werden, die Funktion erwartet den Namen der <select>-Box als Parameter, eine analoge Funktion für die ID lässt sich sehr einfach bauen:

[Pastie-Link]

Offenbar reagiert der IE auf dynamisch gesetzte Selektionen, warum er das nicht von sich aus macht, ist mir schleierhaft. Am einfachsten ist es wenn das Script beim laden der Seite aufgerufen wird:

<body onload="jumpToSelectedOptions(pizzaList);">

Evtl. ist das ja jemand anderem auch noch nützlich. Ich verwende die Funktion bei einer Auswahlliste die eine Mehrfachauswahl zulässt, dank dem “break" springt die Funktion einfach zum ersten gewählten Wert.

21.06.2011PHP Unit Testing mit SimpleTest

SimpleTest in action

Seit letzter Woche habe ich SimpleTest im Einsatz und bin davon ziemlich begeistert. Das Framework bietet alles was man von einem konventionellen Unit-Testframework her kennt, wie diverse Assertion-Methoden oder Gruppierung von Testfällen zu Testsuiten.

Daneben gibt es aber noch eine ganze Reihe von coolen Erweiterungen:

  • Es gibt einige vordefinierte Test-Reports, welche den Erfolg (oder Misserfolg) der Tests anzeigen. Wenn einem diese nicht genügend kann man diese (dank OO) ganz einfach erweitern. So habe ich meinen “persönlichen” Testreporter geschrieben, welcher mir neben den Details zu den Fehlern auch die Details zu den erfolgreichen Tests beschreibt (dazu muss man nur die Methode paintPass() überschreiben), das Resultat ist in obigem Bild ersichtlich.
  • Man kann auch sogenannte Web-Tests machen, d.h. man kann das Browserverhalten simulieren und so beispielweise automatisiert ein Formular ausfüllen und abschicken lassen, anschliessend dann das Ergebnis prüfen.
  • Das erzeugen von Mock-Objekten ist kinderleicht, das Framework bietet eine einfache Methode um eine “leere” Hülle eines Objekts zu generieren (z.B. einer Datenbankverbindung)

Das Tutorial führt einem durch die ersten Schritte, die API gibt den vollständigen Überblick. Durch die verschiedenen Reporter kann das gleiche Skript auch gebraucht werden um in einem automatisierten Build zu laufen, so wie man es z.B. von JUnit kennt.

Ich habe momentan alle meine Testfiles in einem Verzeichnis und habe mir deshalb ein simples Skript geschrieben, welche alle Tests ausführt:

[Pastie-Link]

Um jedes einzelne File jedoch immer noch separat ausführen zu können, include ich autorun.php nur genau dann, wenn ich das File direkt anspreche:

if (count(get_included_files()) == 1) {
    require_once("includes/simpletest/autorun.php");
}

Ich kann das Framework also nur empfehlen!

06.06.2011Eigener URL shortener (rdmr.ch)

Ich wollte schon immer einen eigenen URL shortener und das hat verschiedene Gründe, liegt aber vor allem daran, dass ich keine Lust habe, dass irgendwann der Anbieter meines Vertrauens sein Angebot einstellt, plötzlich ein kostenpflichtiger Dienst wird oder mit anderen Nettigkeiten aufwartet. Ursprünglich auf das Thema aufmerksam wurde ich durch einen Artikel auf Lifehacker.com.

Deshalb habe ich mir schon vor einiger Zeit die Domain rdmr.ch gesichert, jetzt bin ich auch endlich dazu gekommen den Dienst aufzusetzen. Ich habe die Software YOURLS verwendet, das Ding ist kinderleicht zu installieren, alles was man benötigt ist etwas Platz auf einem Server und eine MySQL-DB. Die ganze Installation und Konfiguration dauert ca. 10min.

Ich habe mich bewusst dazu entschieden einen privaten URL shortener zu erstellen, da ich keine Lust habe mich um allfällige SPAM-Links und dergleichen zu kümmern und ich so die volle Kontrolle über alle URLs behalte. YOURLS ermöglicht es aber zum einen, einen öffentlichen Dienst anzubieten und zum anderen kann man via API den Dienst bequem in andere Applikationen einbauen.

25.05.2011Steganografie in der Schweiz verboten?

In einer Informations- und Codierungstheorie Vorlesung im letzten Semester haben wir kurz das Thema Steganografie behandelt - also das Verstecken von Informationen in Bildern. Dabei soll möglichst nicht ersichtlich sein, dass ein Bild als Informationsträger dient. Die Information wird beispielsweise über veränderte Helligkeitswerte in das Bild eingefügt.

Der Dozent meinte damals dieses Verfahren sei in der Schweiz verboten. Ich habe nach einer ausgiebigen Google-Suche jedoch keine Hinweise darauf gefunden, weder Wikipedia noch sonst eine Seite konnte mir die Frage abschliessend beantworten. Weiss jemand mehr dazu?

03.11.2010Developers Shame Day: BB-Code selbstgemacht

Developers Shame Day

Via Twitter (weiss leider nicht mehr wer das geschrieben hat) bin ich auf einen Artikel vom php hacker gestossen, wo er dazu aufruft heute am “Developers Shame Day” mitzumachen und alte Codeschnippsel von sich zu posten: Beispiele von schlechtem Code für die man sich heute schämen sollte.

Einserseits um zu zeigen, dass jeder mal angefangen hat schlechten Code zu schreiben und allgemein sich einzugestehen, dass Fehler nun mal passieren und man selbst und vielleicht sogar andere davon profititieren können. Da mach ich gerne mit.

Das Stück Code das ich vorstellen möchte ist PHP-Code, welcher auf einer meiner alten Pages gelaufen ist. Jeder kennt ja die BB-Codes um Artikel oder Kommentare mit Formattierungsinformationen anzureichern. Ich habe meinen eigenen “Parser” dafür geschrieben, welcher die Codes in entsprechendes HTML umgewandelt hat.

Hier ein Auszug: Pastie-Link

Die Idee dahinter war einfach, es gibt 2 Arten von Codes:

  • ohne Parameter wie z.B. Bold, also [b]fetter Text[/b]
  • mit Parametern wie z.B. URL, also [url=http://www.readmore.ch]Meine Webpage[/url]

Die parametrierbaren Codes erhielten im Anfangsarray den Text “!!REPLACER!!” welche dann anschliessend ersetzt wurde. Das mag ja alles noch gehen, wenn auch sich solche ein Parser mit Regular Expression um einiges schöner schreiben liess.

Wirklich stolz bin ich auf Zuweisungen à la “s” =\> “\<s\>”, “h1” =\> “\<h1\>”, wo sich mir heute die Nackenhaare aufstellen. Typisch war auch die schlechte Namensgebung der Variablen (anz oder sub/newsub) sowie die auskommentierten Stellen (“man weiss nie für was das mal noch gut sein kann”).

03.11.2010Kino: Länger Leben

Länger
Leben

Gestern war der grosse Premierenabend im corso des Schweizer Films Länger Leben von und mit Lorenz Keiser. Dabei geht es um Max Wanner (gespielt von Matthias Gnädinger) und Fritz Pollatschek (Nikolaus Paryla), welche beide krank sind und jeweils ein Organ brauchen. Da leider derzeit keine passenden Organe vorhanden sind, schlägt der ballettverliebte Dr. Schöllkopf (Lorenz Keiser) einen Deal vor: die beiden Herren versprechen sich gegenseitig ihr Herz bzw. ihre Leber, wer länger lebt, bekommt das Organ des anderen.

Das ganze wird sehr ulkig und leicht präsentiert, die zwei “Alten” sind eine Glanzbesetzung. Neben der Hauptgeschichte ergibt sich noch eine Verstrickung mit der Mafia (welche natürlich mit Organen handelt) und etwas Liebe muss auch noch sein, dafür sorgen Leonardo Nigro als depressiver Luigi, Thomas Müller als Sohn von Wanner und Assistenzarzt von Dr. Schöllkopf und natürlich die schöne Schwester Jasmin (Yangzom Brauen).\ Das ganze Setting stimmt einfach: sei es der spezielle Catering-Service Methusalem, die bösen Mafiosi (Zdenko Jelcic, Jarreth J. Merz und Shpend Salihu) oder die Psychologin Sabine (Laura de Weck). Langweilig wird der Film nie, und das bei doch stolzen 104min Laufzeit.

Der Film hat wohl eine etwas wirre Vorgeschichte, da komplett auf Fördergelder verzichtet werden musste. Das Budget von ca. 700’000 CHF ist dementsprechend nicht sehr hoch. Der Film ist durch private Investoren und einige Sponsoren zustande gekommen (welche z.T. durch lustige Produktplatzierungen im Film auffallen).

Fazit: Wieder einmal eine sehr zu empfehlende Schweizer Komödie. Trotz Low-Budget wurde ein qualitativ hochstehender Film gedreht. Anschauen!

05.10.2010Linux Install-Event vom alt.comp.hsr

Linux
Install-Event

Gestern war wieder einmal der alljährlich stattfindende Linux Install-Event, bei welchem wir vom alt.comp.hsr die neuen Studenten der HSR in die wunderbare Linux-Welt einführen. Bislang hielt sich der Ansturm bei solchen Veranstaltungen arg in Grenzen, nicht so gestern.

Schon als wir um 15.00 Uhr das Zimmer öffneten waren dort die ersten drei Studenten, welche einige Linux-Fragen an uns hatten. Wir hatten schlussendlich ca. 15 Studenten zu Gast welche uns mit unterschiedlichsten Fragen auf Trab hielten. Die meisten waren dank unserem Wiki schnell und einfach zu beantworten für andere wurden man-Pages und das gute alte Internetz zu Hilfe genommen.

Alles in allem ein gelungener Anlass, der gezeigt hat, dass das Interesse an Linux vorhanden ist und vor allem auch das Bedürfnis nach einem Ort, an dem man einfach Fragen stellen kann.

04.10.2010Fazit des Zurich Film Festivals 2010

Zurich Film Festival

Jetzt ist es schon wieder vorbei, das Zurich Film Festival. Die Limmatstadt hat über 70 Filme gezeigt, zwölf davon habe ich gesehen. Dabei gab es einen bunten Strauss von Filmen, die meisten sind nicht miteinander zu vergleichen.

Folgende Filme habe ich besucht (Links zu meinen Blogposts):

  1. Pieds nus sur les limaces
  2. The Joneses
  3. Der letzte schöne Herbsstag
  4. Hugh Hefner: Playboy, Activist and Rebel
  5. Shorts from Down Under (Kurzfilme)
  6. Tamara Drewe
  7. R
  8. Van Diemen’s Land
  9. Catfish
  10. Machete
  11. Monogamy
  12. Blue Valentine

Zu meinen Favoriten gehören sicherlich Machete, R und Catfish. Speziell zu erwähnen ist noch die Auswahl der Kurzfilme aus Australien, welche echt phänomenal waren. Ich habe das Gefühl ich sollte dieses Jahr auch noch an die Winterthurer Kurzfilmtage gehen.

Ich freue mich bereits auf das nächste Festival, auf die Atmosphäre und die Q&A’s mit den Schauspielern und den Regisseuren. Speziell fand ich dieses Jahr auch die Begleitung des Festivals durch den offiziellen Twitter-Account, sowie die vielen Leute die mit dem Hashtag #ZFF2010 getwittert haben. Ich habe noch eine Twitter-Liste erstellt mit allen die irgendwie mit dem Festival zu tun haben (Besucher, Filmschaffende etc.).

Bis nächstes Jahr!

04.10.2010ZFF 2010: Blue Valentine

Blue Valentine

Blue Valentine hat meinen persönlichen Abschluss des Zurich Film Festivals besiegelt. Der Film erzählt zwei parallel erzählte Geschichten eines jungen Paares - Dean und Cindy - wie sie sich kennen gelernt und geheiratet haben und 5 Jahre später als ihre Ehe bereits tief in der Krise steckt.

Die Krise wird sehr real dargestellt, unterschwellige Konflikte brechen immer wieder auf, auf Ablehnung folgt Anziehung. Es ist nicht einfach ein plumper Streit, es wird eine grosse Bandbreite gezeigt, mit der ganzen Komplexität einer Beziehung. Es gibt eben noch sehr viel zwischen erkalteter und aufflammender Liebe.

Trotzdem werden teilweise arge Klischees bedient, Dean wird vom Ex-Freund von Cindy verprügelt, jedoch kommt dies nachher nicht mehr zu Sprache. Natürlich kommt dann auch noch der Alkohol dazu. Schade eigentlich, der Film hätte auch so genug zu bieten gehabt.


enabled: