Besucheransturm am Webtuesday Zürich

HellraumprojektorZiemlich aufgeregt war ich schon, vor der Präsentation über die IT von tilllate.com am Webtuesday: Ein Raum vollgestopft von super-smarten Jungs (+1 Frau). Alle Open-Source-affin und dementsprechend kritisch eingestellt gegenüber kommerziellen Sites wie tilllate.com. “tilllate hät e IT? Da brucht’s doch eifach Gallery dezue”. Besonders gut geschlafen habe ich deshalb in der Nacht auf heute nicht…

Die Angst war unbegründet: Ein super Publikum. Gelacht an den richtigen Stellen. Die Fragen waren zu beantworten (auch jene von Urban). Und die Sätze kamen einigermassen korrekt raus. Man weiss ja nie, wie man bei Aufregung reagiert. Continue reading

Posted in tilllate.com | 7 Comments

AJAX-Apps mit Selenium testen

SeleniumTolles Steuerelement haben wir da bei uns auf der Eventeingabemaske, um die DJs den Events zuzuordnen. Das gleiche hätten wir gerne auch zum Suchen von Member eingestzt. Nur blöd, dass dieses Steuerelement ausschliesslich für Artists programmiert ist. Null Portabilität. Also: Refactoring.

Screenshot Artist Widget

Und was ist ein sauberer Ablauf eines Refactorings? Testen – Refactoren – Testen – Refactoren – Testen. Damit ich bei diesem AJAX-Steuerelement keine entzündete Gelenkkapseln vom Dauerklicken kriege, habe ich mir den Test automatisiert.

Serverseitig verwenden wir Simpletest. Da der Zauber von AJAX beim Client liegt, bringt uns hier Unit-Testing der Klassen nichts. Wir setzen hier Selenium ein. Selenium gibt alle Benutzearktivitäten wie Mausklicks und Tastatureingaben wieder und überprüft das Verhalten der Web-Applikation mit den bekannten assert*()-Funktionen. Existenz und Position von DOM-Elementen, Feldinhalte, Texte auf der Seite, alles kann mit Selenium überprüft werden. Continue reading

Posted in Web Development | 1 Comment

Durch den Quelltext surfen mit PHPXRef

SpinnennetzWo ist nun wieder die Konstante ADMINSTATUS_SUPERUSER definiert? Welche Funktionen enthält die Bibliothek login.php? Was bewirkt die Methode getPermissionList()?

Um diese Fragen zu beantworten, gibt es folgende Lösungen:

  1. Den Code so organisieren, dass solche Fragen gar nicht aufkommen
  2. Mittels find und grep die Sourcetree durchstöbern
  3. PHPXRef verwenden

Variante 1 ist wegen viel Legacy-Code nicht praktikabel. Variante 2 ist mühsam und erfodert einen Wechsel in die Shell. Wir bevorzugen Variante 3. Continue reading

Posted in Programming, Web Development | 3 Comments

Traue Nagios nicht!

Closed Circuit CamErstes Gebot: Ueberwache Deine Server mit einem Ueberwachungstool.

Zweites Gebot: Ueberwache Dein Ueberwachungstool (am besten mit einem Ueberwachungstool).

Dies mussten Stefan und ich dieses Wochenende lernen. Es war eine schmerzhafte Lehre.

Das ging so:

4. November. Ich war mit der GL in der Bergen an einem Strategie-Weekend. Endlich mal weg vom stressigen Tagesgeschäft. Der Geist frei für die Langfristplanung. Alles ruhig. Sehr ruhig. Gespenstisch ruhig. Keine SMS von Nagios. All green in der Statusanzeige. Gut.
Continue reading

Posted in IT Infrastructure | 4 Comments

Code-Qualität dank Pair Programming

TandemHeute auf dem Programm: “Refactoring der Member- und Artistpages. Dazu neues, universell einsetzbares Framework für aus Modulen und Registerkarten bestehende Seiten bauen.”. Muss skalierbar sein. Muss universell einsetzbar sein. 4 Layers. Sehr anspruchsvoll. Unsere Methodik bei anspruchsvollen Entwicklungs-Aufgaben: Pair Programming.

Pair Programming ist eine Vorgehensweise aus dem Bereich des Extreme Programming. Zwei Leute sitzen vor einem Computer und arbeiten gemeinsam am Code. Kevin und ich. Mal hat er die Tastatur, ich gebe Anweisungen… Dann schiebt er sie zu mir rüber, und er schaut mir auf die Finger. “Achtung, Silvan, Du hat $b_reslut getippt.” Man checkt sich gegenseitig. Man denkt gemeinsam: “Sollen wir die Tab-Creation-Methode in die Page-Klasse oder in die Tab-Klasse bauen?” – “In die Page-Klasse. Die Tab-Klasse weiss ja nichts von den anderen Tabs…”
Continue reading

Posted in Programming | Comments Off on Code-Qualität dank Pair Programming

Im Test: 8 Methoden, die E-Mail-Adresse zu verstecken

SpinneEine Kontaktmöglichkeit gehört auf jede anständige Website. Kein Problem: E-Mail-Adresse publizieren.

Doch Achtung, E-Mail-Adressen-Sammler-Bots kriechen durchs Netz und schnappen sich jede E-Mail-Adresse, welche zu kriegen ist. Es dauert nur wenige Tage und die eigene Adresse landet in den Datenbanken der Spammer. Und schon kann man sich über spannende Angebote zu Penisverlängerungen, V1AGhra und tod-sichere Anlagemöglichkeiten bei “American Unity Investments” (AUNI) freuen. Das weiss inzwischen sogar jeder MySpace-Benutzer.
Continue reading

Posted in Web Development | 10 Comments

Ich habe da nur was Kleines

AergerWer meint, Software-Entwickler sei ein entspannender Beruf wie Portier bei einer Versicherung oder Aufsichtsperson im Kunstmuseum, der irrt sich gewaltig. Bugs, unter dicken Schichten modrigem Code versteckt; Libraries, wo die Doku mit Babelfish von Russisch auf Englisch übersetzt wurde… und der CEO, welcher ein Aenderungswunsch an der App mit “Ich habe da nur was Kleines” ankündigt.

Continue reading

Posted in My profiles | 1 Comment

BarCampZurich: Geek-Shirt statt Hemd.

Der richtige Dresscode am BarCampZurichVerdammt. Overdressed. Hätte ich doch das tilllate-Shirt mit dem Aufdruck “62.65.159.0/27” angezogen, anstatt Hemd und Jackett.

Renommierte Speaker wie Peter Hogenkamp und Nicolas Berg würden auftreten, hatte ich im Vorfeld mitbekommen. Themen wie “Key Learnings of Starting Up 8 High-tech Companies” und “Software as a Service” liessen mich glauben, es handle sich um eine Konferenz im Stil Im Hilton à 1000$ pro Tag. Hemd und Jackett also!

Continue reading

Posted in Web Development | 3 Comments

Meine 3 liebsten Firefox Extensions

FirefoxInternet Explorer 7 ist live. Firefox 2.0 ist live. Trotzdem werde ich noch eine Weile bei Firefox 1.5 bleiben. Erstens bin ich schon über dreissig. Da stürzt man sich nicht sofort auf alles, was neu ist und glänzt. Dann sind noch verschiedene Extensions, welche noch nicht auf FF2 laufen.

Hier sind sie, meine Favoriten:

Gold: Firebug

Firebug IconSieger mit grossem Abstand: Der Feuerkäfer. In einer AJAX-App wird das DOM nicht korrekt aufgebaut? Command-Shift-C und mit der Maus auf das Element navigieren, welches Probleme macht. Ein Javascript verhängt sich in einer Endlosschlaufe? Breakpoint setzen und Step-by-step mit dem Debugger durch das Skript spazieren. Ein H1 ist Pink und 3cm gross? Ab in den Inspector um zu schauen, welches Teil des CSS für das Uebel verantwortlich ist.
Ich liebe diese Extension. Schnell. Extrem usable. Extrem breit einsetzbar.
Continue reading

Posted in Web Development | 7 Comments

Markenpimping mit Rekursiven Akronymen

RecursionZu Zeiten von PHP/FI stand das Akronym PHP für “Personal Home Page Tools”. Nicht gerade der beste Name, um buzzword-empfängliche Manager zu überzeugen, diese Sprache in ihrem Unternehmen einzusetzen.

Mit PHP 3 war die Sprache soweit gereift, dass sie für weit mehr taugte als nur das Gästebuch oder den Visitor-Counter auf der Personal Homepage. Auf “Personal HomePage Tools” wurde “PHP Hypertext Preprocessor”. Ein rekursives Akronym. Mmmmh, sagt sich der CTO… tönt doch gleich etwas mehr “enterprisy”. Sahne!
Continue reading

Posted in Programming | 2 Comments