Ihr Browser hat Probleme die Webseite richtig darzustellen. Bitte lesen Sie hier weiter. Danke ...



News Profil Themen Bücher Magazine Links Kontakt English
Thomas Fanslau Geboren 1963 in Herne, Westfalen
Höhere Handelsschule
Bis 1984 Abschluss einer handwerklichen Lehre und dann Eintritt in den elterlichen Betrieb
Ab 1987 selbständig tätig
Dieses Profil ist ein Auszug aus der Liste meiner Projekte. In den Zeiten zwischen ihnen kümmere ich mich um meine eigenen Kunden, arbeite den Rückstand ab um den ich mich während der großen Projekte nicht kümmern kann und pflege deren Systeme. Vieles davon ist über Jahre gewachsen und braucht nur ab und an mal einen kleinen Schubs in die richtige Richtung um wieder für problemlos zu laufen.
Eigene Projekte für meine direkten Kunden

Zwischen den großen Projekten betreue ich noch meinen über Jahre gewachsenen Kundenstamm. Damit fülle ich die Übergangszeiten auf bzw. widme mich ihnen wenn mir mal nicht nach "in der Fremde sein" ist. Dort stelle ich in den letzten Jahren verstärkt auf Ubuntu als Oberfläche und Python als Programmiersprache um. Als Glue zwischen Oberfläche und Python kommt, jenach Projektkontext, entweder pyGTK für reine Python-Projekte bzw. wxPython für Mischprojekte mit C/C++ zum Einsatz. Als Datenbank nutze ich, soweit möglich, PostgreSQL wegen der schönen Pythonanbindung.

Stichworte: Ubuntu, Python, pyGTK, wxPython

Oktober 2012 bis Juli 2019

Für ein international tätiges Maschinenbau­unternehmen

Für ein international agierendes Maschinenbauunternehmen war der Build-Workflow neu zu organisieren. Das in Produktion befindliche System war auf die Anzahl der Projekte (In Summe über 1000 aktive Projekte) und die heterogenen Entwicklungsumgebungen (Embedded, Win, *IX, Android etc.) nicht ausgelegt. Davon mussten ca. 250 jede Nacht gebaut werden. Der Austausch/die Erweiterung musste im laufenden Betrieb erfolgen.

Im Unternehmen waren wichtige Hilfsprogramme bereits in Ruby ausgelegt, ich habe daher entschieden die neue Umgebung auf Ruby aufzusetzen um das existierende Know-How zu nutzen. Aus meiner Erfahrung aus dem vorherigen Projekt hab ich ein Netzwerk von selbst-organisierenden Microservices geschrieben die Builds selbstständig in einem Grid von dedizierten Buildengines verteilt haben, deren Ergebnisse in ein übergreifendes Binärrepository eingliederten und diese damit übergeordneten Projekten als Artefakte bereitgestellt haben. Zugleich wurden entsprechende Anpassungen an Visual Studio, Gradle, Eclipse etc. vorgenommen um diese Builds dann auch lokal bereitzustellen. Zugleich enthielt das Repository auch alte Versionen und konnte mit dem Bugtracker zusammen mit aus dem Feld kommenden Traces Fehler-Umgebungen für alle Versionen der letzten Jahrzehnte wieder herstellen. Einer der letzten Schritte war die Erweiterung um CI gesteuert aus den Commits der Entwickler.

Stichworte: Ruby, DevOps

Juni 2009 bis März 2012

Für einen Energieversorger in BaWü

In eine bestehene Grid-Umgebung galt es die in die Jahre gekommene Ansteuerung durch eine modernere Shell zu ersetzen.

Stichworte: Python, wxPython, Sun Grid Engine

August 2008 bis März 2009

Für ein mittelständisches Unternehmen in Hamburg

Eine Windows-Applikation war nach 64Bit-*IX zu porten. Die Anwendung machte intensiven Gebrauch von MFC und anderen Windows spezifischen Bibliotheken und war über Jahre gewachsen. Die neue Version setzte auf das Reaktor-Konzept von ACE auf zur Socket-Kommunikation und als Message-Queue, Teile der alten Anwendung wurden durch Boost ersetzt, die Datenbank-Anbindung nutzte OCCI um mit Oracle zu reden. Desweiteren wurde DDS zur Kommunikation per Multicast eingesetzt bzw. SNMP zur Kommunikation mit der verteilten Hardware.

Stichworte: C++, Linux, MFC, Linux, Oracle, SNMP, ACE, Boost, DDS, OCCI

April 2008

Für ein mittelständisches Unternehmen in Essen

Eine vor Jahren von mir geschriebene C++/MFC-Windows-Applikation brauchte ein lang überfälliges Update. Das Design war insgesamt schon modular ausgelegt so daß ich einfach den "Motor" ausgebaut und die "Karosserie" durch eine Python/wxWidgets-Kombination ersetzt habe. Dadurch entfällt auch die Notwendigkeit von Windows Lizenzen und die Arbeitsplätze laufen jetzt von Ubuntu-BootCDs.

Stichworte: C++, MFC, Python, wxWidgets, wxPython, SIP, Linux, Ubuntu

Februar 2008

Für ein mittelständisches Unternehmen im Raum Münster

Basierend auf meinen Erfahrungen mit fli4l und eisfair eine schöne kleine Serverlösung mit DMZ und hotpluggable USB-Festplatten erstellt. Linux wird dabei von einer 16MB Compact Flash Karte gestartet, läuft in einer RAM-Disk und holt sich seine Konfiguration von einem eingesteckten USB-Stick. Damit kommt man einem Router mit embedded Linux so nahe wie möglich ohne die Erweiterbarkeit zu verlieren.

Stichworte: Linux, Embedded, Server, DMZ

2.2006 bis 11.2007

Für ein mittelständisches Unternehmen in Stuttgart

Eine vom Unternehmen in Python selbst entwickelte Bibliothek zum Testen von embedded Komponenten und Bussystemen im Automobilbau war mit einer Oberfläche zu versehen. Als GUI-Bibliothek verwendeten wir wxPython.

Stichworte: Python, C, Embedded, wxWidgets, wxPython, PyRex

8.2004 bis 7.2005

Für SAP in Walldorf

Unterstützung des Java-basierten Build-Prozess im Netweaver-Umfeld. Wer schon damit gearbeitet hat weiss wovon ich rede, den anderen hilft es nicht, weil die Software im wesentlichen von SAP selbst entwickelt worden ist.
11.2003 bis 8.2004

Für ein Wiener Unternehmen

Da ich ein NDA unterschrieben habe, beschränkt sich meine Beschreibung auf das offensichtliche: Entwicklung einer Oberfläche für Geschäftsanwendungen in C++ und Python, basierend auf einer vom Kunden selbst-entwickelten Datenbank unter Windows und Linux. Entwicklung der Spezifikation um die Datenbank als verteilte Datenbank zu erweitern. Synchronisation und Replikation über TCP/IP über verschiedene Serverthreads.
Mitte 3.2003 bis Ende 7.2003

In Hannover

Simulation und Verifikation von Hardware-Entwürfen durch Emulation in C++.
9.2002 bis Mitte 12.2002

Remote-Konfiguration und Abfrage einer Meßstation für den Einsatz in der Umweltmeßtechnik.

Es wurde ein Konfigurationsapplet in Java und Swing entwickelt. Abfrage und Ansteuerung der Meßstation über Python. Als Embedded-System wurde ein Einplatinen-Rechner auf Basis des C167 eingesetzt.
7.2002 bis Ende 9.2002

Planungs- und Abrechungssystem für ein mittel­stän­di­ges Unternehmen in Python

Für den ersten Entwurf wurde Jython und Swing eingesetzt. Obwohl das gut funktionierte, haben wir den Footprint reduziert und auf Python und TCL/TK umgestellt. Als Datenbank wurde SQL Anywhere eingesetzt. Zum Datenaustausch zwischen den verschiedenen Modulen haben wir XML eingesetzt.
6.2001 bis Ende 5.2002

Beim Europäischen Patentamt in DenHaag

Eine bestehende C++-Anwendung unter OS/2 war zu erweitern. Gleichzeitig wurde dieselbe Anwendung in Java neu geschrieben um über Plattform-Grenzen hinweg eingesetzt werden können(OS/2, Win2k, ...).
Die Entwicklung erfolgte in "Visual Age for C++" unter OS/2 bzw. in "Visual Age for Java" unter WinNT. Anbindung an die DB2-Datenbanken erfolgte in beiden Varianten über CICS, wobei bei der Java-Anwendung noch ein eigener Java-Server zwischengeschaltet wurde. Desweiteren waren SQL-Scripts zur Auswertung der gesammelten Daten für DB2v5.0 bzw. später für DB2v6.0 zu schreiben. Import/Export der Daten von anderen Programmen erfolgte in XML über selbst geschriebene DTD's.
2.2000 bis Ende 4.2001

Bei einem großen, deutschen Druck­maschinen­her­stel­ler

Zur Ansteuerung der Druckmaschine/Druckwerke wurde ein seperater Steuer-PC über TCP/IP an ein entferntes Steuer-Terminal angebunden.

Zum Einsatz kam Visual C++ als Entwicklungsumgebung mit CVS bzw. PVCS für die Versionskontrolle. Zur Qualitätskontrolle haben wir Purify und Quantify eingesetzt. Für die Datenübertragung zwischen den Rechnern kam die Netzwerk-Library von RogueWave zum Einsatz.

5.1999 bis Ende 11.1999

Betreuung und Kontrolle bei dem Y2K-Projekt einer großen deutschen Bank

Meine Aufgabe war die Kontrolle und Qualitätsicherung der Umstellungsaufgaben der einzelnen EDV-Abteilungen. Dazu mussten die Testberichte auf Vollständigkeit und Korrektheit geprüft werden, was breite Kenntnisse zu allen Bereichen der Softwareentwicklung und der Produktpalette erforderte. Zugute kam mir auch meine lange Erfahrung mit älteren Softwarepaketen, die in normalen, homogenen Umgebungen längst nicht mehr im Einsatz waren.

Alle wesentlichen Arbeiten wurden mit MS Office erledigt. Zum Tracking wurde Access an eine ORACLE Datenbank angebunden, die über PL/SQL-Scripts gepflegt wurde.

4.1999

Design und Konzeption einer Ziel-/Planungsanwendung für eine Bausparkasse

In Zusammenarbeit mit Debis. Das Design erfolgte in Rational Rose '98. Die Datenbankanbindung erfolgte über ODBC und Poet.

1.1999 bis 3.1999

Design und Konzeption der Portierung einer C++ Anwendung von Win32 nach OS/2

Für eine Bausparkassse in Zusammenarbeit mit Debis. Dabei sollte die Oberfläche durch Java ersetzt und die darunterliegenden Komponenten in CORBA gekapselt werden. Als Datenbank kam POET zum Einsatz.

11.1998 bis Ende 12.1998

Programmoptimierung über WST

Dieses von Microsoft angebotene Hilfsprogramm protokolliert die Funktionsaufrufe in einem Programm mit und erstellt aus diesem Protokoll Funktionsgruppen. Diese sollten möglichst auf einer Speicherseite liegen, damit sie immer zusammengeladen werden.

Leider funktioniert das mit C++-Programmen nicht so gut, denn einige Funktionen haben keine Namen, oder die Namen sind durch 'name-mangling' nicht mehr eindeutig zuzuordnen. Über AWK- und PERL-Skripte und Batchdateien wurden daher die Protokolle so massiert, das der Linker etwas damit anfangen konnte.

Über Umgebungsvariablen wurde der interne Linker von VC5.0 so angesteuert, das ein Standard-Build gefahren werden konnte.

10.1998

Linux-Installation für mittelständiges Unternehmen als Samba- und Intra-/Internet-Server.

2.1998 bis Ende 9.1998

Anpassung und Erweiterung von Treibern für Graphikkarten

Wesentlicher Bestandteil der Arbeit war die Anpassung der Treiber an die Mehrschirm-Unterstützung von Windows98. Dafür war es unter anderem nötig eigene VxD's zu schreiben, die die Anbindung an die Hardware ermöglichten.Die Arbeit erfolgte im wesentlichen mit MASM 6.1x bzw. VisualC++ 4.x .

Weitere Werkzeuge waren SoftIce 3.xx für das Hardware-nahe Debugging, MKS RCS bzw. Source Integrity zur Versionsverwaltung und (in meinem Falle) EMACS als Editor.

6.1997 bis Ende 1.1998

Projektleiter bei der Entwicklung einer Multimedia-Simulation für einen Verlag.

Durch die hohen Ansprüche an Geschwindigkeit der Simulation und an die Portierbarkeit der inneren Routinen erforderten die Aufteilung des Projektes in einen Delphi v2.x Teil, der die Kommunikation mit dem Benutzer unter Windows abwickelte und einem C/C++-Teil, der gleichzeitig mit Borland C++ v5.x und Visual C++ v4.x entwickelt wurde. Durch die Arbeit mit beiden Compilern hoben sich die jeweiligen Fehler gegeneinander auf. Außerdem war damit ein höherer Grad der Portierbarkeit sichergestellt.

Weitere Werkzeuge waren EMACS als Editor, RCS bzw. CVS zur Versionsverwaltung und TurboDebugger für das Maschinen-nahe Debugging.

Bei Teilen der Sourcen wurde CWEB zur automatischen Generierung der Dokumentation eingesetzt.