2. Christian Haider
Helge Nowak30.09.2015
Christian Haider
• Diplom Informatiker
KI, visuelle Wahrnehmung
• Berater
Wenn Sie eine ehrlich Meinung
brauchen…
• Unternehmer
• Engagierter Mensch
Aktiv in der Lokalpolitik in seiner neuen Heimat Lübeck
• Mitglied des Wirtschaftsausschusses für die Partei-Piraten
3. Christian Haider
Helge Nowak30.09.2015
Helge Nowak
• Diplom Physiker
Allgemeine Relativitätstheorie
• Generalist, Schnittstellenmensch
ganzheitlich, wertorientiert
BWL, VWL, Organisation
Software als Mittel zum Zweck
4. Christian Haider
Helge Nowak30.09.2015
Smalltalk und das Web
• 1995: ParcPlace VisualWave
Börsenticker (Sparkassen)
Multisiteprojektmanagement (Europäische Forschung)
Dynamische IT-Steuerung (Bank)
• 1996: AIDAweb: „This is how the Web works“
• 2001: WebToolKit: Servlets, SSPs (wie JSPs, ASPs)
• 2002: Seaside: Continuations, Komponenten
DabbleDB
ChannelStream
5. Christian Haider
Helge Nowak30.09.2015
Smalltalk und das Web
• Vorteil von VisualWave, AIDAWeb, Seaside:
Programmierung des Frontends ausschließlich in
Smalltalk
• Nachteil von VisualWave, AIDAWeb, Seaside:
Programmierung des Frontends ausschließlich in
Smalltalk
• 2014: Cincom Smalltalk AppeX
Integrierte Smalltalk/JavaScript-Umgebung
6. Christian Haider
Helge Nowak30.09.2015
Cincom Smalltalk AppeX
• Smalltalk-Webserver SiouX
ggfs. hinter Apache, IIS usw.
• Smalltalk-Web-Application-Server AppeX
HTML5-Client
• JavaScript-Client
Objekt-orientiertes JavaScript
Einfache Verwendung beliebiger JavaScript-Bibliotheken
• Gemeinsame IDE
Source-Code-Management in einem gemeinsamen Repository
7. Christian Haider
Helge Nowak30.09.2015
AppeX-Architektur Server
• AppeX.Application: abstrakte Oberklasse für die
Server-seitige Funktionalität der Webapplikation
Unterklasse von SiouX.HttpResponder
Request/Response Dispatch
Registrierung und Lookup von Services
Routing von HTTP-Requests zu Ressourcen wie: HTML, CSS,
XML, JSON etc.
Optionales automatisches Session-Management
Alles in Smalltalk-Code
8. Christian Haider
Helge Nowak30.09.2015
AppeX-Architektur Client
• AppeX.ApplicationClient: abstrakte Oberklasse für die
Client-seitige Funktionalität der Webapplikation
Vererbungshierarchie in Smalltalk:
nil>>JavascriptCode>>JavascriptClass>>ApplicationClient
JavaScript, mit oder ohne Bibliotheken
• Amber: JavaScript-basiertes Smalltalk im Web-Browser
keine Code-Generierung: „what you write is what you get“
• AppeX.CoreCode stellt Umgebung für klassenbasiertes JavaScript bereit
Nicht notwendig, wenn kein JavaScript verwendet wird
9. Christian Haider
Helge Nowak30.09.2015
Hello World in AppeX: Server-Seite
• Konfiguration des Web-Servers durch Hinzufügen
einer Klassenmethode zu SiouX.Server
Eine Klassenmethode:
• myServer: aServer (erzeugt und konfiguriert den Server)
• Applikationsserver: Klasse HelloWorld als Unterklasse
von AppeX.Application
Drei Klassenmethoden:
• applicationClientClass (gibt die verwendete Client-Klasse zurück)
• helloWorldResponder (definiert den Responder auf dem Server)
• getGreeting (Service-Methode gibt den „Hello World“-String zurück)
10. Christian Haider
Helge Nowak30.09.2015
Hello World in AppeX: Client-Seite
• Klasse HelloWorldClient als Unterklasse von
AppeX.ApplicationClient
Eine Instanzmethode
• buildHtml (enthält den Code einer JavaScript Function buildHtml(), die
das DOM auf dem Client erzeugt)
11. Christian Haider
Helge Nowak30.09.2015
Hallo Lübeck! Warum hast Du soviel
Schulden?
• Lübeck ist hoch verschuldet
• Warum?
• Informationen sind im Haushalt (900 Seiten PDF)
Viele Details, aber kaum Übersicht
• Ich brauche eine Visualisierung, damit ich sowas
verstehen kann…
• AppeX wollte ich einfach mal ausprobieren
12. Christian Haider
Helge Nowak30.09.2015
Haushalt
• Bundes-Informationsfreiheitsgesetz IFG: „Jeder hat …
gegenüber den Behörden des Bundes einen Anspruch auf
Zugang zu amtlichen Informationen.“
Ähnliches gilt teilweise auf Landes- und kommunaler Ebene
• Viele Zahlen
Oftmals nicht konsistent
• Erfordert Kenntnisse der unterschiedlichen
Buchführungssysteme der öffentlichen Hand
Kameralistik und Doppik
13. Christian Haider
Helge Nowak30.09.2015
Zahlen, Zahlen, Zahlen…
• Ausgangspunkt: große CSV-Tabelle
• Exploratives Modellieren
in Smalltalk
Fachlichkeit lernen, Landesverordnungen lesen