Tag Archives: terminal

IT project management

Campus WU: Drei Jahre in drei Minuten

Drei Jahre intensive (Projekt-)Arbeit, oder physikalisch ausgedrückt: Große Masse mal hoher Geschwindigkeit mal viel Weg.

“Man muß ins Gelingen verliebt sein, nicht ins Scheitern.”
Ernst Bloch

Door Signs

Über 200 Stück am gesamten Campus verteilt: Starten und aktualisieren sich über Netzwerk, gehen nachts schlafen, lesen Blinden die Belegung vor und kosten dabei ein Viertel der ursprünglichen Planung.

hj
61 der über 200 Displays vor Ort. Die angezeigte MAC-Adresse diente als Key bei der Inbetriebnahme.

Blogs dazu:

Self Service Terminals

Zehn Selbstbedienungsautomaten vor dem Study Service Center: Eine technische Herausforderung, barrierefrei, verbesserte Usability und – nach wahnsinnig stressiger Inbetriebnahme – inzwischen stabil.

bsfdb
Zwischenzeitlich haben tausende Studierende die Self Service Terminals im Library Center genutzt. (Sechs Terminals im Bild mittig; © Mathias August 2013)

Blogs dazu:

Final-Teilnahme beim Niederösterreichischen Innovationspreis.

Rooms

Dezentrale Raumbuchung für knapp 30.000 Benutzer_innen: Inhaltlich ist es Logistik pur samt dynamischer Lagerhaltung, Simulation, Statistik und passenden Visualisierungen. Rein technisch eine Herausforderung in JavaScript.

fff
Screenshot: User Interface der Raumbuchung für Studierende.

Blogs dazu:

Byte Bar und Leitsystem Terminals

fgfg fg
Die ByteBar- und Leitsystem-Terminals vor der Montage am Campus WU; Codename “Super-Toblerone”.

Surfstationen mit Login mittels berührungsloser Karte; Touchschirm, barrierefrei. Das Schwesterprojekt “Leitsystemterminal” dient zur Orientierung am Campus.

Blogs dazu:

API

gsg
Digital Signage Screens, die prominentesten Kunden unserer Lehrveranstaltungs-Daten API.

Viele unserer Daten sind – auch öffentlich – über Programmierschnittstellen verfügbar. So greifen alle hier beschriebenen Services auf dieselben Daten zurück, überall liest dieselbe Stimme Blinden vor, überall läuft dieselbe Logik, das Design ist gleich: managing complexity eines übergroßen Projekts eben.

Identmedien RFID

Eine Studierende holt sich einen Ausweis, verschließt ihre Sachen in einem der 3.600 Spindkasteln, bezahlt anschließend bargeldlos in der Mensa und öffnet einen gebuchten Projektraum: Keine Selbstverständlichkeit, läuft aber (immer besser).

Campus GIS

Geo-Informationssystem des Campus WU: Verortung von Personen und Organisationen, Suche nach POIs, Modellierung eines Routingnetzwerks zur Navigation, Flug einer Drohne für hochauflösende Luftbilder. Tool live: gis.wu.ac.at

Detaillierte Pläne, Suche, Routing bis hin zum Buch
Im Screenshot: Detaillierte Pläne der Regale zum Auffinden von Büchern in der Universitätsbibliothek.

Thanx + Uff!

Gerne würde ich hier behaupten, ich hätte das Alles programmiert, habe aber dann doch oft nur E-Mails geschrieben oder bin in endlosen Meetings gesessen. Ich musste langweilige Ausschreibungstexte querlesen, extern erdachte Konzepte ertragen, Kostenschätzungen durchs Haus schicken, Ideen verteidigen und am Widerstand Dritter scheitern sehen… Vier Befestigungsschrauben meiner Terminals kosteten mich so ein halbes Jahr Abstimmungsaufwand.

Als im Feuer getaufter Planerschlossertischlerdesignerentwickler kann ich nun verorten, kollaudieren, ausschreiben, beschaffen, eintakten, einbringen, einkippen, und Katzen hüten. Ich habe am Weg viele beeindruckende Menschen kennengelernt und dafür bin ich dankbar.

Es war ein Heidenspaß, ein Riesenstress und manchmal auch ein Mordsärger, vor allem aber war’s einzigartig und großartig. Wann und wo wird also der nächste Campus gebaut?

hacks

Kiosk Adapter für Evolis Tattoo RW 2

Semi-professionelles 3D-Drucken ist bekanntlich gerade Hype im Web und somit aktuell der heißeste Scheiß für Hipsters, Startups und – ja – mich. Grund genug also, ein wenig Erfahrung zu sammeln. Großer Dank geht an Martin Kahr, der den Drucker und vor allem viel Zeit zur Verfügung gestellt hat. (Preise bei ihm auf Anfrage) 

fge
Das Endprodukt in Serienreife: Ein Kiosk Adapter für den Evolis Tattoo RW 2. Mit dem auf Bruchteile von Millimetern genau gefertigten Kartenschlitz wird aus dem Tischgerät ein für den Einbau geeignetes Unattended-Gerät.

Die Problemstellung

Das Herz des Projekts Octopus ist ein Evolis Tattoo RW2. Das ist ein MIFARE-Kartenleser, der auf speziell beschichteten Ausweiskarten Thermodrucke im ReWrite-Modus durchführen kann. An der WU Wirtschaftsuniversität Wien benötigen wir diesen ThermoReWrite-, oder kurz TRW-Druck für die semesterweise Aktualisierung der Studierendenausweise.

Wir waren schon sehr froh, als wir 2011 ein Gerät gefunden hatten, das unseren Ansprüchen hinsichtlich Verarbeitungsqualität, Support und v.a. Softwareschnittstellen genügte. Unser Wunsch nach einem Einbaugerät ging beim französischen Hersteller leider nicht in Erfüllung, und so platzierten wir den Drucker beim Terminalbau möglichst präzise hinter der Frontblende.

tattoo
Evolis Tattoo RW 2 – leider nur ein Tischgerät.

Die Methode funktioniert in fast allen Fällen, doch es gibt Ausweiskarten, die selbst diesen kleinen Übergang zwischen Front und dahinterliegender Hardware beinhart ausnützen: Eine dieser Killerkarten konnte ich kurz nach ihrer Straftat fotografieren. Kurzum: Wir hatten in den vergangenen Monaten immer wieder das lästige Problem, steckengebliebene Karten aus überforderten Auswurf-Mechanismen zu entfernen.

killer
Ein Killer-Ausweis, der den Auswurfmechanismus und somit das ganze Terminal lahmlegt.

Unser Tischler verkleinerte daraufhin das Kartenmaul, um der Karte bei Einzug weniger Spiel zu geben. Besonders ärgerlicher Effekt: Die fehlerhaft eingesteckten Karten konnten wir somit auf Null reduzieren. Nur konnte daraufhin der Drucker umso mehr Karten gar nicht mehr auswerfen.

grenzen
Der Tischler stößt beim Karteneinzug an seine Grenzen in Sachen Genauigkeit.

 

Außenseite
Außenseite des Terminals. Das Kartenmaul ist zu groß – die Karte hat demnach zu viel Spiel.

 

Rückseite
Innenansicht des Terminals. Die durchgesteckte Karte geht manchmal leider daneben.

 

eng
Der Drucker schließt beinahe nahtlos mit der Innenseite ab. Doch Spielräume <1mm reichen bereits aus, um Fehler zu produzieren.

3D-print your printer!

Für uns war somit klar, dass ein Kartenmaul aus Holz immer und immer wieder zu ungenau sein würde. Aufgrund der Natur des Werkstoffs (Melamin) und insbes. dessen Bearbeitungsform (Fräsen) kann nur bis zu einer gewissen Genauigkeit gearbeitet werden. Folglich musste ein Kartenmaul aus einem anderen Material her. Aber soll man ein komplettes Terminal neu designen, nur weil ein Bauteil nicht optimal funktioniert?

Kurzum: Die Idee des Kiosk Adapters war geboren und mit neuartiger 3D-Drucktechnologie war auch die Umsetzung nicht weit.

design
Design des Adapters mittels CAD. Die Außenform des Druckers wird vermessen und das Werkstück wird nahtlos angepasst.

 

nnnn
Druck des ersten Prototypen am MakerBot.

 

jhj
Nahaufnahme MakerBot: Erhitzter Kunststoff wird in hauchdünnen Schichten und somit dreidimensional aufgetragen.

 

proto
Der Adapter ist an die Außenform des Druckers angepasst.

 

fff
Erstes funktionierendes Modell. Das Kartenmaul ist nun auf Bruchteile von Millimetern genau, Kartenein- und auswurf funktionieren.

 

rt
An der Terminal-Innenseite angebrachter Kiosk Adapter. Der Drucker wird nur noch eingehängt.
rt
Der Unterschied zwischen Soft- und Hardware? Bei letzterer muss man jeden noch so kleinen Fehler sofort ausbessern;-)
hacks

Terminals in Serienproduktion

Roald Amundsen schrieb beim Durchqueren der Nordwestpassage ins Tagebuch, das Schiff sei ein glückliches, weil jedes Crewmitglied einfach wisse, was gerade zu tun sei. Zwei Tage im Jänner 2013 segelte ich auf einem derart glücklichen Schiff, wo tausende Handgriffe am Ende ein wunderbares Ergebnis brachten – oder hat man als Softwareentwickler sonst einen Akkuschrauber in der Hand? Meinen Crewmitgliedern sei Dank!

test
Die Terminals gehen in Serie.

Einen kleinen Zusammenschnitt der beiden Arbeitstage gibt’s als Video (ordentliche Auflösung direkt bei YouTube):

Mehr zum Thema: The Octopus has landed!, Terminal-Update, Service Terminal Plus

ideas

Web to speech

Eine Sache habe ich in den vergangenen drei Jahren verinnerlicht: Das Web und dessen Technologien sind unglaublich dominant, weil sie auf offenen Standards beruhen.

Folglich sind mobile Apps inzwischen oft nur noch Programme, die einen (verstümmelten) Browser öffnen. Auf unserem Selbstbedienungs-Terminal werden Webseiten eingebettet, anstatt dass wir User Interfaces in Qt oder sonstwo entwickelt hätten. Mein Fernseher rendert inzwischen HTML/CSS für sein Menü oder EPG.

Was soll man allerdings machen, wenn das User Interface natürliche Sprache (speech) ausgeben soll – etwas, was man mit JavaScript auch im Jahr 2012 nicht so richtig hinbekommt? Im konkreten Anwendungsfall, dem unten gezeigten Terminal, sollen diverse Informationen zur Orientierung von Personen sowohl für Blinde (Sprachausgabe), als auch Sehende (Klick/Touch) zur Verfügung stehen.

Meine Idee ist eine hybride Anwendung, bestehend aus zentralem Webserver, Browser und lokalem Webserver, der Sprache erzeugt. (Eine Architektur, die ich mir übrigens von der lokalen Bürgerkartenumgebung abgeschaut habe.)

rrthzert
Barrierefreies Leitsystem-Terminal auf Basis unseres Terminals, Codename Humpback. Für Blinde bzw. Personen mit Sehbehinderung soll Sprachausgabe vorhanden sein.

Ein offensichtlich langweiliger Samstagabend und ein paar Tassen Kaffee später läuft unter 127.0.0.1 ein Webserver, der das Kommando say aufruft, welches am Mac die Sprachausgabe regelt. Für Linux käme beispielsweise flite zum Einsatz. D.h. die Webseiten und der Content kommen von einem zentralen Webserver, soll allerdings Sprache ausgegeben werden, so postet die Webseite (mittels AJAX) auf den lokalen Server. Dieser hat Zugang zu Sprachsynthese und Audio. (Oder theroetisch jeder anderen Hardware, die man sich vorstellen will.)

Im konkreten Anwendungsfall könnte man sich nun etwas spielen und häufig verwendete Textbausteine professionell sprechen lassen. Nur dynamischer Content müsste dann von der Computerstimme gesprochen (synthetisiert) werden. Aber ein Proof-of concept ist’s allemal:

Wer auf einem Mac zuhause ist, sollte übrigens das hier in ein Terminal pasten – viel Spaß:

osascript -e 'say "Dum dum dum dum dum dum dum he he he ho ho ho fa lah lah lah lah lah lah fa lah full hoo hoo hoo" using "Cellos"'

hacks

Kiosk-Terminal mit schnellem Login

Dem so genannten Octopus habe ich mich an dieser Stelle bereits ausgiebig gewidmet. Der von uns als Buckelwal bezeichnete Kiosk-Terminal kam bislang zu kurz. Hier also ein schnelles Update.

Der Anwendungsfall ist nicht neu: Im öffentlichen Bereich der WU Wirtschaftsuniversität Wien sollen Kiosk-Terminals schnellen und unkomplizierten Zugang zu Informationen, also dem Internet, sichern. Seit mehr als zehn Jahren gibt es mit der so genannten ByteBar bereits eine Lösung. Inzwischen macht sie vielleicht optisch nicht mehr allzu viel her – auf Seiten der Zuverlässigkeit und Wartungsarmut läuft das System allerdings beeindruckend vor sich hin.

ByteBar WU Wirtschaftsuniversität Wien.

Als ich mir gegen Ende 2010 das erste Mal Gedanken machte, was man am Baulichen und Haptischen verbessern könnte, fiel mein Blick auf die Suchmaschine bei Ikea. Diese vereint in durchdachter Schlichtheit und Pragmatik Features wie Stabilität, Touchscreen und/oder Tastatur, Kosteneffizienz, Servicierungskonzept, Sicherheit und Raumausnutzung.

Bei Ikea wissen die Designer was sie tun: Optimale Raumausnutzung, Schutz gegen Wagerl-Kollisionen, Kosteneffizienz. Mathias, Ikea Wien Süd (2010)

Mit dem schwedischen role model im Gepäck beauftragte ich 2011 einen Kiosk-Hersteller mit der Anfertigung eines Prototypen. Aus Designgründen entschieden wir, die Hardware hinter der Oberfläche verschwinden zu lassen, unterschiedliche Arbeitsplatzhöhen sollten außerdem unser Bekenntnis zu mehr Barrierefreiheit verdeutlichen.

Rendering unseres Prototypen: Unterschiedliche Arbeitsplatzhöhen, viel Karma für Design-Götter.

Nach Liefer-Verzögerungen und einigen Tests wurde der Prototyp Februar 2012 an der WU aufgestellt. Die Software läuft nach wie vor noch nicht so, wie wir uns das am Ende vorstellen. Aber Sinn und Zweck eines Prototypen ist ja eben der vorzeitige Erkenntnisgewinn.

Steht seit Februar 2012 an der WU für öffentliche Tests.

Öffentliches Internet versus die Abwehr anonymer Surfer

Der Großteil des studentischen Feedbacks auf Facebook drehte sich schon bald um die Haptik der Tastatur. Ich ahnte bis dato jedenfalls nicht, wie viel Emotion im Tastatur-Thema liegen kann. Nach einer Abstimmung unter den Studierenden fiel die Wahl schließlich auf eine (hygienische) Metalltastatur mit Trackpad.

Ende Juni veröffentlichte ich das Abstimmungsergebnis auf Facebook. Gleich die allererste Reaktionen sollte das Thema Browser/Software nochmal komplett drehen:

“Viel wichtiger wäre es wenn das ZID es endlich mal schaffen würde das man auf der WU eigenen (!) Homepage endlich die Suchfunktion nutzen könnte! Ich habe dass schön mehrmals angeregt bin bis jetzt aber immer auf taube Ohren gestoßen.”

Studierender auf Facebook

An der ByteBar erhält man beim Aufruf WU-fremder Seiten eine Fehlermeldung: Der Zugriff auf externe Seiten wird nämlich verhindert, um Surfzeiten zu begrenzen und somit Wartezeiten für andere zu verkürzen. Diese Maßnahme erachte ich allerdings aus zwei Gründen für höchst fraglich:

  1. Im Zeitalter von Web 2.0, Cloud und whatever liegen nunmal sehr viele nützliche Dinge nicht innerhalb der WU. Spätestens bei der outgesourcten Suche über Google – wie oben mokiert – wird die Sache peinlich.
  2. Die Begrenzung des Internetzugangs war vor zwölf Jahren sicher sinnvoll. Doch ist sie das dank Breitband und Smartphones noch immer?

Mein Vorschlag, Internet einfach “aufzudrehen”, fand jedenfalls keine Mehrheit. Ich kann die Bedenken nachvollziehen, dass dadurch jeder Fremde an die WU surfen kommen könnte – unangenehm wird das jedenfalls bei strafbaren Aktionen im Netz… Kurzum: Ein Login-Mechanismus musste her.

Python + WebKit + Studierendenausweis

Gemeinsam mit unserem kongenialen Hightech-Partner La Gentz war schnell die Idee geboren, den Studierendenausweis alternativ zur mühsamen Username/Passwort-Authentisierung  zu verwenden. Eine Authentisierung soll innerhalb kürzester Zeit erfolgen – das simple Hinhalten der MIFARE-Karte erfüllt diese Anforderung perfekt.

Außerdem entschieden wir uns, einen WebKit-basierten Browser from scratch zu implementieren. Das erspart die mühvolle Arbeit, den Browser gegen noch so kreative Usereingriffe abzusichern. Ein Login-Widget liegt semi-transparent über den Inhalten des Browserfensters und fordert zum Hinhalten der Karte auf. Aktuell überprüfen wir das UI noch auf seine Usability.

Details zur technischen Umsetzung finden sich im La Gentz Blog.

Fehlermeldung im unauthentisierten Betrieb. Das semi-transparente Widget lädt zum Einloggen via Karte oder Username/Passwort ein.

Nach dem Login ist unbegrenztes Surfen möglich. Ein Countdown visualisiert die verbleibende Zeit im Falle von Inaktivität.

Siehe da: Nach dem Login darf ich unbegrenzt surfen. Danach kann ich mich abmelden oder werde nach 1:30 Inaktivität automatisch rausgeschmissen.

Mit Ubuntu ist ein Betriebssystem ohne Wintendo-Krankheiten gefunden, LDAP bzw. JSON-RPC dienen zur Authentisierung. Demnächst folgt noch der Netzwerk-Boot (ähnlich den Door Displays).

Somit ist Websurfen künftig zufriendenstellend möglich, und wir brauchen keine Angst vor Internet-absaugenden Massen zu haben;-)

hacks

The octopus has landed!

Yes, yes, yes!

Das vom Foto vom Profi, (C) Jürgen.
Nach neun Monaten Planung und Entwicklung steht er nun funktionsfähig an der WU.

Unser Oktopus steht seit heute an der WU – produktiv und bereit für zwölf Monate Bewährungsprobe bevor am Campus WU alle SB-Terminals ausgetauscht werden.

Hinter uns liegt eines der spannendsten Projekte, das man wohl durchführen kann. Von der Bohrmaschine bis hin zum garbage collector gab es kein Werkzeug, das wir nicht in der Hand hatten, ich kenne nun die Eigenschaften von Melamin ebenso, wie die von 7Byte-RFID. Kurzum: Wir haben in den vergangenen neun Monaten gemeinsam mit den Tischlern alles selbst gemacht. Das war spannend, stressig, arbeitsintensiv, lehrreich, aber vor allem war es ziemlich außergewöhnlich.

Ergebnis ist ein Automat, der – ohne Übertreibung – weltweit einzigartig ist. Er druckt A4-Papier mit geringerer Fehlerrate als es der Drucker mit Original-Zubehör täte. Außerdem verfügt der Terminal über ein neuartiges Navigationskonzept, welches auf Lichtsignalen beruht. Die Optik ist ebenso außergewöhnlich wie die zahlreichen Anwendungsfälle, die er abdeckt. Wir sind stolz auf Barrierefreiheit und Inklusion, reduzierten Strom- und Papierverbrauch sowie ein absolut durchdachtes Service-Konzept. Trotz aller Superlativa haben wir dabei den Kostenrahmen gehalten.

Nennenswerte Verbesserungen

Aus Benutzersicht sind das…

  1. Erhöhte Gebrauchstauglichkeit dank kapazitivem Touch-Monitor, größeren UI-Elementen sowie verbesserter Navigationsstruktur.
  2. Einmaliger Ansatz für Barrierefreiheit mit Unterfahrbarkeit für Rollstuhlfahrer dank Auskragung.
  3. Zusätzlich Bezahlung via Kreditkarten. (Zurzeit aufgrund der unklaren Situation hinsichtlich Rechtmäßigkeit von Studiengebühren allerdings nicht freigeschalten.)

Für Wartungsmitarbeiter bedeutet das…

  1. Lösung des bestehenden Papierstau-Problems.
  2. Vergrößerte Service-Intervalle durch größeren Papiervorrat.
  3. Ausdrucke werden nur noch auf expliziten Wunsch gefertigt – weniger Müll.

Für uns Techniker sind das…

  1. Umstellung auf robustes Linux und Abstraktion aller Hardware-nahen Treiber auf Standardschnittstellen.
  2. 100% Python-Code, ein wunderschön-sauberer UI-Code dank PyQt.
  3. Größtmögliche Kompatibilität zur bestehenden Server-Schnittstelle, die in den kommenden 12 Monaten von zwei unterschiedlichen Terminal-Generationen genutzt wird.

Rückblick in Bildern

Neun Monate und 15.000 Zeilen Code später…

Die erste Studie zum “Service Terminal Plus”.
Mittels TeamViewer und Telefonkonferenz wird parallel in Scheibbs und Wien am 3D-Modell gearbeitet.
Während nun das Möbelstück gefertigt wird, verzweifle ich an Video4Linux…
Der erste Mock-Up macht das Terminal spürbar: Wir verorten Komponenten.
Mit kleinen Änderungen wird aus dem Mock-Up ein Prototyp.
Ein Prototyp, der über reichlich Innereien verfügt: Drei Drucker, Touch-Monitor, vier Lichtsegmente, Kamera, Bankomat-Terminal, Kartenleser, Papierlade, Netzwerk und Strom.
Letzte Änderungen fürs (materielle) User Interface werden direkt eingezeichnet.
Aufräumen beim alten UI, welches sich stark an Mausbedienung orientiert…
… hin zu einem Touch-optimierten UI.
Plötzlich eröffnet sich die Frage der Montage. Es folgen Diskussionen, Standortbesichtigung und ein Gutachten, dass der Doppelboden der Belastung standhält.
Letzte Iteration im Büro. Alles fast fertig!
Feinschliff durch professionelle Grafik.

Das Wir im Bericht hat Namen, die ich gerne nennen will. Dank geht an Dennis, der die event loop der Applikation aber auch des Projekts über hat. Wolfgang und Andreas waren beim Möbelstück mit Herzblut dabei – dem Ergebnis kann man es mehr als nur ansehen. Roland und Seán haben sich um die Betriebssystemebene gekümmert. Dank Bernhard läuft das Terminal zu großen Teilen auf Basis des alten, zusätzlich war er unser Erleuchter bei den LED-Streifen, die übrigens eine Idee von Simon waren. Infos zum Drucker-Umbau kamen von einem hilfsbereiten Mitarbeiter der Firma Knapp. Den Bankomat-Code verdanken wir Gabor, und ich habe den Großteil meiner Programmierarbeit bei Stack Overflow “gestohlen”. Der grafische Feinschliff kam von Markus und Wolfgang. 

Bisherige Blogeinträge zum Terminal: Service Terminals Plus und Terminal-Update

hacks

Terminal-Update

Ein kurzes Update zu unserem Projekt Octopus, einfach weil’s so geil läuft. (Und ich hasse normalerweise das Wort geil, aber in diesem Fall ist es angebracht!)

Unser heldenhafter Möbelprofi hat’s vollbracht: Alle Komponenten sind im Gehäuse sicher und für zukünftige Wartungen optimiert untergebracht. Außenrum bleibt das Interface “clean” und daher für die Benutzer übersichtlich. Der A4-Drucker ist dank Umbau des Papierauswurfs runter auf eine Fehlerrate von 1:300 und somit unterhalb der Quote, die wir mit den Originalteilen des Herstellers messen. Sämtliche Bedienelemente befinden sich in Greifhöhe für Rollstuhlfahrer. Die L-förmige Lichtleiste wird das Bedienkonzept einer Art “Farbleitung” ermöglichen. Aber was schreibe ich, wenn es Bilder gibt:

Der Mock-up ist beinahe fertig. Ursprüngliches Ziel - ein "cleanes" Interface - geschafft.

Materialkunde

Für jemand, der normalerweise mit Bits und Bytes zu tun hat, ist die Wahl der Materialen zugegebenermaßen eine Herausforderung. Immerhin sind Langlebigkeit, Kosten, Widerstandsfähigkeit gegen Reinigungsmittel und Vandalismus zu bedenken. Unser Ergebnis: Weiße Melaminplatte auf blankem Stahl – passend zum Gebäude, das mit Sichtbeton und schrägen Wänden auffallen wird.

Lokalaugenschein am künftigen Standort - ein echter Business-Termin.

Software: Python, Python, Python!

Abseits vom Möbelstück hat sich auch bei der Software unglaublich viel getan.

So wurde etwa beim Bezahlmodul eine proprietäre Library durch eine quelloffene Implementierung des Protokolls ZVT 700 in Python ersetzt. Damit können wir, von der Plattform unabhängig, den Leser der Card Complete einsetzen. “Abfallprodukt” dieser Entscheidung ist, dass wir künftig auch Zahlungen per Kreditkarte akzeptieren können.

Integration "Bankomat": Hard- und Software verschmelzen mit unserem Terminal.

Bei Webcam und den drei (!) Druckern lautete die Marschrichtung ebenso hin zu offenen Schnittstellen. Protokolle wie Apples CUPS machen die Ansteuerung der einzelnen Komponenten einfach(er), da viel der Komplexität versteckt wird. Anstatt des Modells “Treiber + lokal Anstecken” hat sich ein rein TCP/IP-basierter Aufbau durchgesetzt.

Als User Interface Library fiel die Wahl auf Nokias Qt – ein Wahnsinn in Sachen Flexibilität und Robustheit. (Nicht zuletzt darum tut mir der Einstieg von Windows Phone 7 bei Nokia im Herzen weh…) Die Python Bindings für Qt (PyQt) ermöglichen die Entwicklung in reinem Python-Code. Mit QWebview, einem für den User unsichtbar  in das UI eingebetteten WebKit (Google Chrome), werden wir einen Teil der Funktionalität mittels Web-Technologien implementieren. Diese hybride Art der Applikationsentwicklung wird ansonsten häufig bei mobilen Apps betrieben, um Apps auf Android, iOS und Co. mit nur einer Codebasis zu betreiben. Bei uns geht’s allerdings eher um die Entwicklungsgeschwindigkeit, da HTTP schlicht die lingua franca in der IT ist.

Richtig abgehoben wird das Projekt letztlich bei der Lichtsteuerung, einem Bedienkonzept, welches Benutzer anhand von Lichtimpulsen und Farben anstatt von Beschriftungen und Erklärungstexten leiten soll. Ein prototypisches Video kann bei Google Plus angesehen werden.

Photoshooter

Obwohl ich mich eher um die Projektabwicklung, als um die tatsächliche Implementierung kümmere, wollte ich eine Sache selbst hinbekommen: Die Software für den Photoshooter. Jeder WU-Student kennt das Ding, muss man doch am Tag der Inskription genau dort hinein lachen…

Erste Erfolge mit der Webcam.

Eines war mir jedenfalls nicht so ganz klar, als ich das Modul übernommen hatte: Dass ich eine long and winding road begehen würde bevor das Ziel auch nur halbwegs in Blickweite sein würde…

Kurzum, nach zahllosen gescheiterten Versuchen mit diversen APIs von VoIP-Clients bis hin zum Sourcecode der Kamera des Nokia N900 bin ich nun mit opencv glücklich. Diese Library für maschinelles Sehen tut aber nur am Rande, wonach ich hauptsächlich gesucht habe. Fokus liegt eher bei der Bilderkennung, und so war dann auch – das nächste “Abfallprodukt” – eine Gesichtserkennung schnell implementiert. Während man jetzt den Bildausschnitt mit dem Gesicht manuell auswählen muss, übernimmt das künftig die Software. Die überraschend geringe Fehlerrate bei der Gesichtserkennung trägt außerdem dazu bei, dass künftig nur noch erkennbare Bilder akzeptiert werden. Ein, wie ich, fauler Programmierer spart sich außerdem das ganze Gezoome und Gecroppe im UI.

Gesichterkennung mit Intels opencv: Das Gesicht kommt künftig automatisch erkannt auf den Studierendenausweis. Ergebnis sind ein einfacheres UI und eine indirekte Qualitätskontrolle, da der Algorithmus nur richtig belichtete Gesichter erkennt.

Linux statt Windows

Plattformunabhängigkeit, Python, offene Schnittstellen – all das dient letztlich dazu eine der letzten Domänen von Windows zu beenden: Jene der interaktiven Terminals. Unser Betriebssystem wird Ubuntu Linux 12.04 LTS. Mit TFTP-Boot und automatisiertem Checkout aus dem SVN-Repository ist auch hier die Reduktion der Wartung bereits Teil des Kernkonzepts.

Schon während der Entwicklung setzen wir auf continuous integration. Das bedeutet, dass zwei Testrechner laufend selbständig nach neuen Releases suchen und sich im Falle notwendiger Updates automatisch aktualisieren. Was jetzt also das Testen ungemein erleichtert, bedeutet im Produktivsystem einen stabilen Rollout-Mechanismus, der keinerlei manuelle Eingriffe benötigt.

Und noch so viel zu tun…

Nach einem guten halben Jahr Entwicklung sind wir nun an dem Punkt, wo alle Teile für sich alleine funktionieren. Nun heißt es, die einzelnen proofs-of-concept zu einem Ganzen zu verbinden und danach zu testen, zu testen und zu testen. Bis hierher sieht es also gut aus, aber die Geschichte bleibt spannend…

hacks

Service Terminal Plus, oder wie ich lernte, Automaten zu bauen

Das für Außenstehende wohl spannendste, weil greifbarste, Projekt meiner Tätigkeit ist das Service Terminal Plus. Mit beinahe 500.000 Euro Budget geht am Campus WU der Nachfolger der heutigen Selbstbedienungsterminals in Betrieb. Zeit für einen Erlebnisbericht, der sich für mich wie eine Hintergrundgeschichte zur (zweiten) Mondlandung schreibt…

Beim Service Terminal Plus handelt es sich um einen interaktiven Terminal, der RFID-Leser, Kartendrucker, Touchscreen, Webcam, Bezahlfunktion für Bankomat und Kreditkarte, Ausdruck auf Normal- und Zeugnispapier im A4-Format, zusätzlich Rechnungsdruck auf Thermopapier sowie Lichtsteuerung vereint. Kein Wunder also, dass der interne Codename des Projekts Riesenkrake lautet, besitzt der Automat wie sein tierisches Vorbild (mindestens) acht Arme und neun Gehirne…

Aktuelle Version der SB-Terminals an der WU Wirtschaftsuniversität Wien: Foto für den Ausweis, Rückmelden inkl. Bezahlen, Ausdruck von Zeugnissen und Bestätigungen.

Die aktuellen SB-Terminals wurden 2001 von Siemens geliefert, zwischenzeitlich mussten einige Hardwarekomponenten getauscht werden. Die Software wurde 2006 aufgrund vieler Ändeurngswünsche komplett neu in-house entwickelt.

Dank der in zehn  Jahren Betrieb gesammelten Erfahrung wollen wir nun einen Automaten bauen, der in seiner Wartbarkeit deutlich verbessert wird. Die spannendsten Änderungen spielen sich allerdings auf Seiten der Benutzungstauglichkeit ab, wo wir in den vergangenen Monaten einige interessante Ideen geboren, aber vor allem auch zur Reife gebracht haben.

Künftiger Standort ist das LLC am Campus WU. Wir nehmen Anleihe an der Architektur und holen den "Geist des Gebäudes" ins Projekt.
Eine der ersten Studien zum Service Terminal Plus.

Barrierefreiheit: Einer für Alle!

Ein Thema, das keinesfalls zu kurz kommen darf, lautet Barrierefreiheit. Die bisherige Lösung bot zehn Terminals für normale Menschen und einen für Behinderte.

Wem sich beim vorigen Satz auch der Magen umdreht, mir geht’s genau so.

Wir wollen weg vom Separieren von Menschen mit Behinderungen hin zu Gleichbehandlung. Das heißt im konkreten Fall, alle Terminals werden (mit Kompromissen) barrierefrei sein. Das bedeutet aber auch, dass viele Studierende sich werden bücken, Rollstuhlfahrer eben auch strecken müssen. Mir gefällt der Ansatz, etwas fundierter nennt sich das Inklusion.

Die Bedienelemente werden auf einem Kragarm platziert, der für Rollstühle unterfahrbar ist.

Zielsetzung mit dem nächsten Protoypen wird unter anderem sein, Rollstuhlfahrer testen zu lassen, um so zu verwertbarem Feedback abseits abstrakter Gesetzesnormen zu kommen.

Technische Neuerungen

Doch auch technisch wird sich viel tun. Seit Smartphones und Tabs will niemand mehr einen resistiven Touchschirm bedienen – die neue Generation ist kapazitiv und bietet deutlich erhöhten Bedienkomfort. Teure, weil vandalismussichere Tastaturen sind dank dieser Technologie ebenso Geschichte – das erledigt neuerdings die Software.

Die größte Innovation scheint uns aber im Bereich des Druckens zu gelingen: Während in der aktuellen Version immer wieder Papierstaus auftreten, glauben wir, das Problem nun endgültig geknackt zu haben. Dank Modifikation des Beförderungsmechanismus wird der Drucker rückwärts verbaut. Das bedeutet, dass künftig sämtliche Wartungsarbeiten von hinten durchgeführt werden, während vorne das User Interface keine Ladeklappen benötigt, also “clean” bleibt. Gemäß dem alles beherrschenden Motto “Was nicht existiert, geht nicht kaputt”, kann Papier nirgends mehr stecken bleiben. Es fällt einfach nach unten in eine Lade.

Das Innenleben eines Lexmark T652dn: Wir ändern die Richtung des Papierauswurfs und erreichen: Drucken vorne - Nachfüllen hinten.

Einheitliches User Interface (UI)

Als Softwareentwickler denke ich bei UI vorrangig an das, was sich letztlich am Bildschirm tut. Doch beim Service Terminal Plus ergeben sich durch den Möbelbau ungeahnte Möglichkeiten: Wie am Foto der aktuellen Generation erkennbar, ist das physische UI zurzeit stark zerklüftet. Drucker, Bankomatkassa und Kartenleser befinden sich in einem separaten Möbelstück rechts des Bildschirms. Der Zahlungsbeleg hingegen wird unterhalb des Bildschirms gedruckt, weit weg also vom eigentlichen Bezahlvorgang. Zumindest ich finde so etwas verwirrend.

Am Mockup des Möbelbauers werden die Komponenten verortet. Zusammengehöriges wird mittels Fräsung umrandet und dadurch zusammengefasst. Eine Lichtsteuerung leitet schließlich den Benutzer von Bedienfeld zu Bedienfeld.

Agil versus legal, oder: Grenzen des Outsourcings

Wie auf den Bildern erkennbar haben wir Spezialmöbelbauer im Team, mit denen die Zusammenarbeit auf Basis von Mock-ups abläuft. Es ist unglaublich hilfreich und effizient, ein Projekt anhand eines an-greifbar-en Prototypen zu be-greifen, anstatt detailliert zu planen. Das Gesamtprojekt ist schlicht zu komplex, als dass man es abschließend spezifizieren könnte. Trial and Error ist hier der richtige Weg.

Eine der größten Herausforderungen des Projekts liegt daher weitab aller technischen Sphären: im Vergaberecht, an das sich öffentliche Auftraggeber halten müssen. Beschaffungen ab gewissen Schwellenwerten haben über Ausschreibungen zu erfolgen. Was etwa bei Standardmöbeln zu transparenter und effizienter Haushaltsführung führt, stößt bei derartigen Spezialthemen an Grenzen. Die Aufgabe lautet daher, gemeinsam mit einem vertrauenswürdigen Partner ein Produkt zu entwerfen, dass später als Referenz für eine Ausschreibung an einen unbekannten Bieterkreis dienen soll. Im Regelfall stellt sich diese Schwierigkeit nicht, da oft so genannte Integratoren wie IBM oder eben Siemens eine Gesamtleistung anbieten. Die Erfahrung lehrt uns aber, dass es viele Themen gibt, die besser in-house gelöst werden, da ein komplexes Projekt nicht beliebig auf Externe verteilbar ist.

Getting real!

Wer sich von den Entwicklungen aus nächster Nähe überzeugen will: Bereits im Sommer 2012 soll “Nummer 1” noch am Altstandort in Betrieb gehen. Dann wird sich zeigen, ob sich die vielen, vielen Arbeitsstunden hinter Monitoren, Mock-ups und Kaffeemaschinen rechnen…