No API, no gain.

Nach meiner erfolgreichen Programmierung des Mobility Car Finder habe ich trotzdem eine Mail an Mobility geschickt. Ich wollte wissen, ob Mobility eine offizielle API anbietet oder eine solche plant.

Die Antwort war (Wie ich erwartet hatte) negativ:

Eine öffentliche Schnittstelle (WebService/API) bieten wir aus sicherheitstechnischen Gründen nicht an, und ist auch nicht geplant.

Seufz. Einmal mehr wird ‚Sicherheit‘ als Ausrede vorgeschoben.

Die Sicherheit einer API kann fast beliebig mit Technologien wie SSL (Z.B. Amazon, Anfragezertifikation (Z.B. Amazon) oder Applikationsauthentifizierung (Z.B. Flickr) gewährleistet werden.

Das mag zwar einen Aufwand auf der Seite des Anbieters darstellen, aber es gibt zwei schlagende Argumente warum eine Firma eine API anbieten sollte:

Als Massnahme zur Kundenbindung: Habe ich als Kunde in die Integration eines fremden Systems erst mal etwas investiert, wird mir der Wechsel zur Konkurrenz wesentlich schwerer fallen. Im Fall von Mobility ist dies besonders bezüglich der Business-Kunden besonders interessant. Eine Firme integriert beispielsweise die Autoreservierung (Inklusive automatischer Abrechnung) direkt in ihr Intranet. Ein solches Unterfangen ist für gewöhnlich relativ aufwändig und nur für Grosskunden interessant. Mit einer öffentlich API hingegen könnte diese Anwendung auch kleinere Unternehmen in Kürze implementieren. Und damit stärker an den Dienstleister gebunden werden.

Der zweite Grund sind die gratis Programmierleistungen welche von den API-Benutzern erbracht werden. Ohne einen Finger zu rühren, kriegt der Anbieter von seinen eigenen Kunden Programme und Services geliefert. In diesem Fall hier bietet beispielsweise die Mobile Mobility-Seite zwar Reservationen an, aber keine einfache Möglichkeit einen Standort in der Nähe zu suchen. Ich habe diese Art von Suche bereits implementiert, kann aber keine Reservationen anbieten. Mit einer API hätte ich freiwillig zur Verbesserung des Service beigetragen.

Wer jetzt noch nicht überzeugt ist, für den habe ich ein Beispiel aus der Echten Welt: Hast du dich schon einmal gefragt warum ausgerechnet Facebook so populär geworden ist? Noch vor ein, zwei Jahren war im deutschsprachigen Raum StudiVZ unschlagbar, jetzt kräht kein Hahn mehr danach. Beide Netzwerke beherrschten zu Beginn nur Kontakpflege, Nachrichtenübermittlung und Bildertausch.

Im Mai 2007 stellte Facebook ihre API vor. Aus der einfachen Webseite wurde ein Plattform. Und wurde zur 3. populärsten Webseite überhaupt. Und ist Milliarden wert.

Wenn das kein Argument zur Öffnung der eigenen Systeme ist, was dann?

(Weitere Überlegungen eher technischer Natur finden sich in der exzellenten Präsentation How to Design a Good API and Why it Matters von Joshua Bloch, Google.)

(Und noch ein letzter Link zum API-Verzeichnis von Programmable Web: Amazon und Facebook sind nicht die einzigen Webseiten mit APIs.)

1dl-Gläser

20090905_sbg_ubs

Wir fanden in den Überbleibseln der Vormieter von A.’s neuer WG eine ganze Kiste von Schweizer-Bank-Gesellschaft-Gläsern (Heutzutage bekannt unter dem Namen UBS-Gläser). Volumen: 1dl.

Wer braucht 1dl-Gläser? 2dl ist das Minimum, 3dl der Idealfall. Für kleinere Getränkemengen wie Wein oder Schnäpse gibt es spezialisierte Gläser. Aber was sollen 1dl-Trinkgläser?

A. liegt wahrscheinlich richtig mit ihrer Vermutung: Schon damals waren die Banken geizig. Auch an den Apéros.

Theo Jansens Strandbiest

20080831_strandbiest

Ich habe mir die winzige Ausstellung von Theo Jansen im Walcheturm angesehen. Drinnen sah es etwas erschöpft aus, aber alleine für die Demonstration des grossen Biestes draussen hat sich der Ausflug nach Zürich gelohnt.

Absolut faszinierend wie Jansen aus Luft und Plastik Leben erschafft.

Und die Technik ist ebenfalls unglaublich ausgefeilt: Komplexe Mechanik mit Plastikröhren und Kabelbinder implementiert. Druckspeicher in PET-Flaschen. Mit Löchern in Kolben kann er Sensoren und binäre Gates basteln, die den Biestern Intelligenz und Reaktionsfähigkeit verleihen.

Absolut sehenswert. Die Ausstellung ist noch bis am 6. September am Laufen. Wer in Zürich in der Nähe der Kaserne durchläuft, sollte rasch den Abstecher in die Ausstellung machen.

Flyspray und Mylyn

Für meine privaten Projekte habe ich ein einfaches Bugtracking-Tool gesucht und mit Flyspray eine potentielle Lösung gefunden. Es ging mir vor allem darum, dass auch Nicht-Entwickler möglichst einfach Fehler melden können, und das ohne sich zuerst registrieren zu müssen. Mal sehen ob es was taugt. Meine Installation findet sich unter m.existenz.ch/bugs/.

Gleichzeitig habe ich die Aufgabenverwaltung Mylyn für Eclipse entdeckt und möchte sie etwas ausprobieren. Und wenn schon, dann richtig:

Hier ist die (einigermassen, nur lesen) funktionierende Web Template-Konfiguration für Mylyn 3.2 und Flyspray 0.9.9:

  • Server: URL der Flyspray-Installation
  • Label: Frei wählbar
  • User ID/Password: Leer lassen, Anonymous wählen
  • Additional Settings:
    • projectId: 0
    • search: leer
    • developer: leer
  • Task URL: ${serverUrl}/index.php?do=details&task_id=
  • New Task URL: ${serverUrl}/index.php?do=newtask&project=${projectId}
  • Query Request URL: ${serverUrl}/index.php?string=${search}&project=${projectId}&dev=${developer}
  • Query Pattern: task_summary.+?task_id=([0-9]+).+?>(.+?)</a>

Damit ist es möglich die beliebige Queries und Tasks zu importieren. Die projectId 0 entspricht übrigens allen Projekten. Mit den Parametern search und developer können Queries nach Schlüsselwörtern und Assignees gefiltert werden.

Was nicht funktioniert, ist das Eröffnen neuer Tasks auf Queries mit der projectId 0: Es wird lediglich ein Webbrowserfenster mit einer Fehlermeldung geöffnet, dann muss manuell in das Projekt navigiert und ein neuer Task erstellt werden.

Webapplikation: Mobility Car Finder für iPhone

Erst kürzlich habe ich entdeckt dass mein heissgelieber Carsharingservice eine mobile Reservationsseite unter http://mobile.mobility.ch hat. Praktisch, dachte ich.

Noch praktischer wäre aber eine Applikation, welche mir die nächsten Standorte gleich selber raussucht. Schliesslich weiss das iPhone dank GPS jederzeit wo ich bin.

Nun, zwei, drei Stunden Gehacke später präsentiere ich stolz: Den Mobility Car Finder.

20090830_mobility_car_finder

Es ist keine Installation notwendig: Einfach mit Safari auf die Webseite http://m.existenz.ch/mcf/ surfen, die Abfrage nach der aktuellen Position bestätigen, und schon spuckt das Gerät die nächsten Standorte aus.

Einfach, simpel, immer aktuell.

(Nein, ob das Auto frei ist oder nicht, kriegt man nicht mit. Und ja, offenbar gibt’s schon eine App dafür…*)

Angewandte Technologien
Wen’s interessiert: Die Applikation ist klein: Eine statische HTML-Webseite aufgepeppt mit der JavaScript/CSS-Bibliothek iUI. Darüberhinaus wird das geolocation-Objekt von Safari Mobile verwendet um die aktuelle Position zu eruieren. Die Position wird an ein PHP-Skript weitergereicht welches das Mobility-Suchinterface benutzt um die Standorte im Umkreis um den Benutzer zu suchen. Das Skript verwandelt die XML-Daten in HTML welche iUI dann so wunderschön wieder darstellt, inkl. Links auf die Google Maps. Ich bin einmal mehr begeistert wie alles zusammenspielt.

Alles relativ einfach. Eine kritische Stelle gibt es aber: Ich habe noch nicht um Erlaubnis gefragt das Suchinterface benutzen zu dürfen. Mobility kann mir mein System damit einfach blockieren. Aber als Genossenschaftsmitglied finde ich meine Zugriffe legitim. Besonders belastet wird der Mobilityserver kaum, deren eigene Implementation auf ihrer Webseite produziert wesentlich mehr Anfragen.

* = Herzlichen Dank an Kollega R. der mir damit die Freude an meinem neuesten Projekt schon nach wenigen Minuten verdorben hat. Spielverderber.

Die menschliche Seite des Programmierens

In den unendlichen Weiten meiner Blogartikel-Entwürfe findet sich ein Eintrag mit dem Titel Die Feinde der Informatiker: Benutzer. Geplant war über meinen eigenen Berufsstand herzuziehen. Zusätzlich habe ich mich bereits mehrmals beklagt über Entwickler welche nicht auf die Bedürfnisse der Benutzer eingehen. Besonders mühsam ist das im sogennanten ‚Enterprise-Umfeld‘; Zwei Negativbeispiele sind die vielbenutzten und zumeist absolut verhassten Systeme SAP und Remedy. Ich bin nicht der einzige, Eric Burke hat eine Karrikatur dazu gezeichnet.

Für Entwickler welche nicht ganz verstehen worum es hier geht: Schämt euch. Benutzt ihr eure Applikationen selber nicht?

Führt euch gefälligst diesen Artikel von Wil Shipley zu Gemüte: Von Heuristiken und Menschen.

(Dies ist ein Artikel aus der Reihe: Argh, ich habe schon bald wieder WK im Kompetenzzentrum SAP des VBS. Vorfreude herrscht.)

Selektive Wahrnehmung 2: Accessibility & Mac OS X

Umgekehrt fallen mir seit dem Vortrag über Behinderte am Computer aber mehr Dinge über behindertengerechte Technologien auf. So verfügt das soeben erschienene Mac OS X Snow Leopard schon von Werk aus über eine Vielzahl von Bedienungshilfen wie zum Beispiel Screenreader oder Bildschirmlupen. Bei anderen Betriebssystemen muss dies mit Software für viel Geld nachgerüstet werden.

Irgendwie finde ich das an Apple ziemlich sympathisch. Deren Engagement geht im ganzen Kritikgeschrei gegen den ehemaligen Underdog leider etwas unter.

Selektive Wahrnehmung: Textilreinigungen und Tankstellen

Als intensiver Velofahrer und nur gelegentlicher Autobenutzer, sehe ich mich von Zeit zur Zeit mit dem Problem konfrontiert, eine Tankstelle zu finden. Da mir das aber selten widerfährt, achte ich mich im Alltag kaum auf diese Geschäftsstellen. Keine Ahnung wo ich hier in der Nähe Benzin kriegen würde.

Vorherige Woche musste ich in Anbetracht der unnatürlichen Konzentration von Hochzeitsterminen in meinem Kalender mein einziges kurzärmliges Hemd waschen und eventuell sogar bügeln. Nicht sehr motiviert diesbezüglich und mich lauthals beklagend, wurde ich von verschiedenen Seiten auf Reinigungsservices hingewiesen. Und tatsächlich: Unweit von meiner Wohnung fand sich ein derartiges Ladenlokal mit lächerlich geringen Preisen.

Ich realisiere dass die von mir praktizierte selektive Wahrnehmung meine Umwelt stärker einschränkt als ich bisher angenommen habe. Oder vielleicht habe ich auch überaus aktive Verdrängungsmechanismen. Egal…

Links zum Wochenende: Theo Jansen, Bilder aller Art, Musik

Links günstig zu verschenken: