2014

Web-basierende Lernhilfe für Japanisch - work in progress (Ruby On Rails, SASS/SCSS)

Parallel zu der weiter unten beschriebenen Japanisch-Lernhilfe auf Python-Basis, habe ich mit der Entwicklung einer web-basierenden Version dieser Anwendung begonnen. Die Entwicklung erfolgt unter Verwendung von Rails 4.1.1, Ruby 2.1.1 und git. Die aktuell letzte Version dieser Anwendung kann hier ausprobiert werden.

*

Interaktive HTML5 Canvas Demo (JavaScript, jQuery, Canvas)

Im Zuge der Vorarbeiten für eine Web-Applitkation habe ich als "proof-of-concept" eine Demo geschrieben, bei der der User mit einer HTML5 Canvas interagieren kann (Setzen und Löschen von Markierungen, Anzeigen von Informationen über die Markierungen mittels Tooltips)

*

Abrechnungstool für Parties (JavaScript)

Um bei einer privaten Party die Abrechnung zu erleichtern, habe ich eine kleine JavaScript Anwendung geschrieben, bei der die Teilnehmer ihre jeweiligen Ausgaben eingeben können und daraus der Finanzausgleich errechnet wird, d.h. wer wieviel wem zu zahlen hat.

2013

Lernhilfe für Japanisch - work in progress (Python)

Ich entwickle ein Programm, welches beim Trainieren von Begriffen und Redewendungen der japanischen Sprache hilft. Diese Anwendung entwickle ich unter Python 2.3.5, wobei der Code kompatibel zu Python 3.3 gehalten wird. Für die GUI wird die Standarbibliothek tkinter verwendet. Eine - noch unvollständige - Vorabversion kann hier heruntergeladen werden.

*

State Machine (Ruby)

Im Zuge des Designs für eine mobile Applikation habe ich als "ausführbare Spezifikation" eine State Machine entwickelt, welche das Verhalten des zu entwickelnden Systems spezifiziert. Ich habe dazu die Version 1.8.6 von Ruby eingesetzt.

2008 - 2013

Design und Implementierung einer Applikation zur Qualitätssicherung im Bereich von Embedded Anwendungen (Perl, bash, zsh, Tcl/Expect, Ruby, Python, Oracle, XML, XML Schema, HTML, CSS, Clearcase, svn, Windows, Solaris, Linux)

Um die Qualität von Software zu sichern, die beispielsweise in Firmwarekomponenten zum Einsatz kommt, mußte ein Testsystem geschrieben werden, welches neue Softwarestände auf Kompatibilität mit den bestehenden Komponenten prüft. Dazu wird ein automatischer Testprozess gestartet, der die notwendigen Tests startet und die Ergebnisse bewertet. Da ein kompletter Testdurchlauf oft mehrere Stunden in Anspruch nimmt, mußte die Testsoftware selbstätig Optimierungen vornehmen können, zum Beispiel indem überflüssige Tests eliminiert und andere Tests parallelisiert ausgeführt wurden.

Ergänzend dazu habe ich Tools entwickelt, welche beim Deployment, Management und Enduser-Support unserer Anwendungen helfen, beispielsweise eine Toolsuite, welche nicht mehr benötigte alte Testergebnisse findet und die zugehörigen Dateien löscht, um den Speicherplatz wieder freizugeben.

Diese Applikation besteht aus mehreren simultan ablaufenden Komponenten, die auf einer Farm aus Solaris-, Linux- und Windows-Hosts ablaufen. Für die Koordination der Prozesse kam LSF (von der Firma Platform Computing) und für die Datenhaltung Orcale zum Einsatz. Den überwiegende Teil der Anwendung habe ich (weitgehend objekt-orientiert) in Perl geschrieben, ergänzt um Shell-Scripts in bash und zsh. Als Versionsverwaltungssystem wurde sowohl für die Applikation selbst, als auch für die zu testende Software Multi-Site Clearcase eingesetzt. Ein davon unabhängiges, separates Testsystem wurde mit svn versioniert. Ergänzend dazu habe ich für die Unterstützung meiner Entwicklungsarbeit für meinen Eigenbedarf kleine Tools in Tcl/Expect, Ruby und Python gescriptet.

2007

Design und Implementierung einer Testsuite für automatisierte Regressionstests im Bereich der Telekommunikation (Ruby, JRuby, Java, JDBC, Ant, MySql, zsh, XML, XML Schema, Subversion, Windows, Linux).

Ich habe ein Testframework für den Regressionstest einer in Java geschriebenen Kundenapplikation entworfen und implementiert. Die Testprogramme erzeugen hierbei dynamisch XML Dateien, welche von der zu testenden Applikation verarbeitet werden. Danach überprüfen die Testprogramme, ob die Applikation die Datenbank korrekt verändert hat. Die Testtools sind zu ca. 90% in Ruby geschrieben, wobei die Kompaitibiltät zu JRuby sichergestellt wird. Das Interface zur Applikation wird mit Java und Ant hergestellt, wobei Java Code teilweise handgeschrieben, teilweise zur Laufzeit aus Ruby heraus generiert wird. Unterstützende Tools werden in Ruby und in der z-Shell implementiert.

2005 - 2007

Design und Implementierung einer Testsuite für automatisierte Regressionstests im Bereich der Telekommunikation (Perl 5.8, Ruby/Tk, Tcl, bash, zsh, FTP/SFTP, Clearcase, Linux).

Ausgangspunkt waren einige vom Kunden geschriebene Testscripte in bash und Perl. Auf diesen aufbauend have ich ein Testframework entwickelt, so daß sich weitere Testfälle mit geringem Aufwand implementieren ließen. Für diesen Teil der Aufgabe wurde ca. 80% Perl nach objekt-orientierten Prinzipien, sowie 20% bash Skripting eingesetzt. Ergänzende Tools have ich in der z-Shell und in Tcl/expect implementiert. Zur besseren Bedienbarkeit der Testsuite habe ich ein GUI in Ruby/Tk geschrieben.

2003 - 2005

Maintenance und Weiterentwicklung einer auf Broadvision basierenden Webapplikation (Java, AspectJ, JavaScript, JSP, Struts, Oracle, HP-UX) und Automatisierung von Updates und Deployments (Perl, Clearcase, Cygwin, bash, Ant).

Für eine Web-Anwendung in Java/JSP (mit ergänzenden Teilen in Server- und Client-Side JavaScript) habe ich Fehlerbehebungen und Erweiterungen implementiert und das Deployment der Änderungen mit Hilfe von bash-Scripten automatisiert. Um die Verfügbarkeit der Website zu verbesseren, habe ich außerdem Programme zur Überwachung und Fehleranalyse geschrieben (meist in Perl, zu einem geringeren Teil in bash, Java und JavaScript). Weitere Tools, z.B. zum Generieren von Testdaten, habe in Perl implementiert.

2002

Design und Projektleitung für ein Framework zur Testautomatisierung und für die Durchführung von Regressionstests (Perl 5, Tcl, Solaris, Linux, XML).

Zum Test einer C++ Anwendung im Bereich der Telekommunikation sollte ein neues, objektorientiertes Testframework entwickelt werden, auf dessen Basis die Entwickler und Tester auf einfache Weise Testfälle für Regressionstests durchführen können. Ich habe für dieses Projekt, das in Perl realisiert wurde, zwar selbst keine Implementierung durchgeführt, war aber als Projektleiter für Design und Überprüfung der Codequalität verantwortlich.

1999 - 2001

Design und Entwicklung einer multi-thread Middleware Lösung im Telekommunikationsbereich zur Mediation zwischen Q3 und einem proprietären Protokoll für den UMTS Standard (Gnu C++, Dinkumware und Gnu C++ Library, pthreads, Visual GDMOpro, DSET, Raima Database Manager, Perl 5, Tcl/Tk, Bourne Shell, Solaris (SPARC), SVR4.2 (MIPS), Clearcase, UML), Erstellung von Debugginghilfen (Trace, Regressionstest), Erstellung von Programmierrichtlinien, Automatisierung der Entwicklungsumgebung (Emacs-LISPetc.), Ausarbeitung und Durchführung von Einführungsvorträgen in C++.

1998

Entwicklung von Komponenten eines Informationssystems für die Deutsche Telekom sowie Entwicklung von Werkzeugen zur Testautomatisierung (C++, Perl 5, M4, Emacs, bash, ksh, Clearcase, SQL, HP-UX).

*

Objektorientierte Analyse, Design und Entwicklung einer Client-Server-Lösung für die Schweizer Rentenanstalt (Perl 5, Clearcase, HP-UX, Windows NT, UML).

1995 - 1997

Design einer Datenbankapplikation unter Windows (Microsoft Access).

*

Analyse, Design und Implementierung einer Passwort-Ablauf-Behandlung in einer PC-Host-Umgebung (C, IBM C++; OS/2, MVS).

*

Design und Implementierung von Komponenten zur Steuerung eines synchronen Multiplexers für die SDH2-Architektur (synchronous digital hierarchy) sowie Entwicklung von Werkzeugen zur Testautomatisierung (C++, Perl 4, Tcl, Emacs-LISP, tcsh, Clearcase, Solaris).

1994

Analyse und Design eines CORBA-kompatiblen Verteilungssystems für C++ (C++, Sinix, Fusion).

1992 - 1993

Konzeption und Ausarbeitung eines Seminars "Einführung in C++".

*

Entwicklung eines Netzwerkmanagementsystems im Rahmen des SNI-Produkts TRANSVIEW (C++, Sinix, ASN.1, Motif, awk, Informix).

1991

Konzeption und Durchführung eines Seminars in englischer Sprache "Oracle Basics" für Entwickler aus Polen (Oracle, SQL, Unix V).

*

Entwurf und Entwicklung von Komponenten für eine oberflächenunabhängige Widgetlibrary (C++, awk, SCO ODT, Sinix, Motif, Collage, SQL).

1990

Sourcecode Analyse eines FORTRAN 77 Programms im Rahmen der Qualitätssicherung [Gutachten für Wartbarkeit und Portabilität].

*

Entwurf und Entwicklung eines Programms zum Umsetzen von CAD Datenformaten im Rahmen der Leiterplattenentwicklung (C, Pascal, Aegis, Unix System V, DIATOOLS, Interleaf Publisher).

*

Konzeption und Durchführung eines Seminars "Effizienter Einsatz von Microsoft C" (C, MSDOS).

1989

Artikelserie "Geschichte der Programmiersprachen" für die Fachzeitschrift Mini Micro Magazin.

*

Konzeption und Realisierung einer Benutzeroberfläche für Sehbehinderte (HK, WitchDOS, MSDOS).

*

Analyse, Design und Implementierung eines Programms zum systematischen Leistungsvergleich von Versicherungsanbietern (NIAL, MSDOS).

*

Konzeption und Durchführung eines Seminars "C für FORTRAN-Programmierer" (C, MSDOS).

1988

Beratung zur Gestaltung von Anwendersoftware für ein Schweizer Softwarehaus.

1986 - 1987

Entwicklung von Tools für die Kundenverwaltung eines Österreichischen Konzertveranstalters (Enable, SNOBOL 4, C, MSDOS).

1985

Konzeption und Entwicklung eines Systemes zur Konfiguration von Flugzeugen der Deutschen Airbus (VS APL, Focus, MVS, SQL/DB, VM/CMS, REXX).

1983 - 1984

Entwicklung (und Projektverantwortung für ein Teilprojekt) eines Sicherheits-Informationssystems (8086 Assembler, Pascal, C, Concurrent CP/M-96, Concurrent DOS, Display Manager, Access Manager (ISAM)).

1980

Entwicklung von Einsatzleitsystemen für Polizei und Feuerwehren (MAS300 Assembler, Pascal, ORG300PV, AMBOSS).

1979

Entwicklung eines Datenbanksystems (FORTRAN IV, Z80 Assembler, CP/M).

1978

Entwicklung eines BASIC Interpreters zur Steuerung von NC Maschinen (8080 Assembler, ISIS).

1977

Erweiterung eines Programms zur Baukostenkalkulation (FORTRAN IV, Data General RDOS).