Sascha professionell
Auf dieser Seite: Programmieren, Support, System-Administration, Kurse
Resume
Meinen "Lebenslauf" im amerikanischen Resume-Stil
habe ich für alle, die mehr über meinen
professionellen Werdegang wissen wollen.
There is an english version of my
resume
too.
Also the greek version of my
resume / biografiko.
Programmieren
Lange Zeit setzte ich vor allem
AppleScript ein, da ich damit mit der verfügbaren Hardware schnell und unkompliziert Resultate erzielte. Einige spezielle Projekte:
- SMS-Chat bei STAR TV - hier werden einkommende SMS-Nachrichten aufbereitet und laufend an einen Titelgenerator weitergegeben. Das Projekt war bereits als undurchführbar aufgegeben, als ich mich einmischte und innert einiger Tage den ursprünglichen SMS-Chat der Sendung netgate programmierte. Kurz darauf habe ich den noch witzigeren Chat in der Sendung SMS Star Chat programmiert, zum allgemeinen Wohlgefallen der schweizer Teenager und SMS-begeisterten.
- Content-Management-System mit FileMaker und AppleScript (ebenfalls bei STAR TV): Mit der bestehenden FileMaker Server- und Client-Software können Redakteure den Inhalt der Webseiten aktualisieren. Nach der Überprüfung durch die Webredaktion werden die statischen Seiten aus der Datenbank generiert. Das geschieht mit einem AppleScript. Die Seiten werden dann von einem Mac OS X Rechner aus mit einem shell-Script per rsync auf den Server übertragen.
- Replikative Datenbank mit FileMaker: Die Kunden- und Kursdatenbank der Firma Umberto Saxer Training AG verwaltet alle Daten der Interessenten, Kursteilnehmer, Korrespondenz und Kurse. Die Daten werden im Sekretariat und bei den Aussendienstmitarbeitern nachgeführt. Änderungen müssen überall möglich sein, ohne dass eine Serververbindung online besteht. Das bedeutet, dass Aussendienstmann X ein Training einbuchen kann, während er mit dem Kunden in der Hotel-Lobby spricht. Bei nächster Gelegenheit werden per E-Mail die Änderungen in das Sekretariat übertragen und dort wird die Rechnung geschrieben. Auch die Änderungen des Sekretariats gelangen wieder zu den Aussendienstlern. Eine solche Datenbank-Lösung nennt man "replikativ". FileMaker ist als Datenbank überhaupt nicht auf replikative Datenbanken ausgelegt. Das Problem dabei ist, dass Änderungen an verschiedenen Orten unabhängig stattfinden können und dass definiert und programmiert werden muss, was in jedem Fall geschieht.
Den "replikativen" Teil dieser Lösung habe ich mit einem AppleScript programmiert. Ich muss allerdings zugeben, dass ich dabei sehr an die Grenzen des FileMakers gestossen bin.:-)
- Austauschen bitte! Vor einigen Jahren störte es mich, dass das Suchen und Ersetzen von Text in einem String in AppleScript ewig dauert. Da AppleScript eine (bytecode) interpretierte Sprache ist, kann man dabei nur schneller werden, wenn man den Algorithmus optimiert oder einen schnelleren findet. Nur hatte da einige Jahre lang niemand eine Idee: Alle machten das gleich, man ging Schritt für Schritt durch den String und suchte Buchstabe für Buchstabe alles durch. Dann hatte ich eine Idee... und das Resultat ist ein neuer Algorithmus, der ca. 600 Mal schneller als das alte Verfahren ist. Ausführlich beschrieben auf der austauschen-Seite. Heute benutzt das übrigens jeder so und nur die wenigsten wissen, dass die Idee von mir ist. Was solls ;?)
Daneben habe ich Erfahrung mit perl, vor allem natürlich auch im cgi-Bereich. Einige der als cgi umgesetzen Projekte:
- Natürlich die üblichen Kontakt-Formulare, die vorne aus einem Formular hinten ein Mail rauslassen. Meine Variante hat üblicherweise eine minimale Überprüfung der Feldwerte. So werden wenigstens die schlimmsten Fehler zum Beispiel bei der Eingabe der Mailadresse erkannt und reklamiert.
- Abstimmungen... mit und ohne Verlosung eines Preises unter allen "Abstimmern" -- dabei wird natürlich überprüft, dass niemand 10'000 Mal für seine Favoriten stimmt. Tatsächlich hat es mal jemand versucht und dabei 3 Tage lang alle paar Minuten abgestimmt... aber genützt hat es nichts.
- Eine mini Online-Auktion: Hier ging es darum, nur ein einziges Teil zu verkaufen (und zwar das Kleid aus dem Film Beresina, das zugunsten von Terre des Hommes versteigert wurde). Die Auktion funktionierte technisch, aber es gab viel zu wenig Gebote... immerhin, das Kleid wurde ersteigert.
- Ein Kinoticket-Verschenk-System. Problematik: Wie verschenkt man mit minimalem Aufwand ca. 800 Kinotickets? Wenn jede Einsendung von einem Mensch bearbeitet werden muss und dann die Tickets per Post verschickt werden, dann entsteht viel (teurer) Aufwand. Meine Lösung führt die noch verfügbaren Tickets für die verschiedenen Veranstaltungsorte nach und schickte den "Kunden" per Mail eine "Geheimzahl". Die Leute drucken das Mail aus und erhalten ihr Kinoticket an der Kinokasse, womit auch gleich die Kontrolle der wirklich benützten Plätze gewährleistet ist. Die Lösung wurde neben STAR TV auch gleich von Radio 105 mitbenützt (und die 105-Leute schulden uns dafür immer noch eine Kiste Ouzo...)
expect ist eine meiner liebsten Entdeckungen. Diese UNIX-Scriptsprache ist besonders zur Automatisierung von interaktiven Programmen entwickelt worden. Ich habe mit Expect der Übung halber ein Script geschrieben, mit dem über den Server der Firma Minick SMS-Nachrichten verschickt werden können. Daraus sollte schlussendlich eine neue Version des SMS-Chats enstehen, doch die AppleScript-Lösung wurde aufgrund von "läuft auch so" noch weiterbenutzt.
Grundsätzlich interessieren mich noch weitere Programmiersprachen, vor allem Ada. Ich bin bereits seit längerer Zeit mit Ada beschäftigt, mal mit mehr Zeiteinsatz, mal wieder mit weniger. Wichtiger als die Programmiersprache ist mir schlussendlich eine gute Lösung, sauber umgesetzt.
Inzwischen habe ich auch viele Erfahrungen mit python gesammelt, noch eine Script-Sprache. Python ist sehr übersichtlich und erinnert mich in vielen Sachen an Ada. Vielleicht nicht ganz so elegant wie AppleScript und nicht ganz so geradlinig und klar wie Ada, aber als erster Eindruck sehr interessant. Auf jeden Fall einiges aufgeräumter als perl (aber dafür braucht es ja nicht viel). Mein erstes python-script hatte ich jedenfalls sehr schnell zum laufen gebracht.
Mit python habe ich jetzt schon viele Zeilen Code für Zope-Projekte geschrieben. Die Sprache gefällt mir immer noch sehr gut. Zope ist ein ganzer Application-Server, mit dem man Webapplikationen mit allem drum und dran machen kann.
Einige der Zope-Projekte, die ich bei der Network AG gemacht habe oder an denen ich beteiligt war:
- Eine "Vividot"-Applikation, mit der sich Teilnehmer eines Events ihre Fotos anschauen können und zum Beispiel E-Cards verschicken können.
- BMW Schweiz nutzte diese System für den Launch des Z4 in der Schweiz, dabei wurde jeder Gast im neuen Z4 fotografiert und die Leute bekamen eine E-Card mit ihrem eigenen Bild vom BMW-Händler ihrer Präferenz nach Hause geschickt.
- Ich habe an diversen Content-Management-Systemen auf Basis von Zope gearbeitet und diese weiterentwickelt.
Im Zusammenhang mit der System-Administration habe ich mich vermehrt mit Shell-Skripten beschäftigt. Dabei habe ich cron, at, sed, awk und alle ihre Freunde schätzen gelernt.
Kenntnisse Support
Support-Kenntnisse sind schwer quantifizierbar. Ich habe schon viele Probleme gelöst, aber selten steht ein Minnesänger in der Nähe, der von diesen Heldentaten berichtet. :-)
Besonders gut kenne ich mich im Mac-Bereich aus. Dabei habe ich so ziemlich die ganze Pallette der üblichen Programme supportet. Von Büro über Datenbank und Termin/Agenda bis zu Graphik, Photo, Sound und Video. Dabei kamen die verschiedenen Mac-Systeme seit 7.0.1 bis zum neuesten Mac OS X natürlich nicht zu kurz.
Anscheinend stehe ich in dem Ruf auch obskurere Problem oft nur durch meine Anwesenheit zu lösen :-), bei STAR TV ist so mancher Cutter schon verzweifelt, weil ein besonders seltsames Phänomen verschwandt, sobald ich auftauchte. Ich selber denke eher, dass es daran liegt, dass ich mich so langsam mit den üblichen Problemen im Bereich Digital-Video angefreundet habe. Ich kann zwar auf dem AVID Media Composer und auf Apples Final Cut Pro selber nicht so recht "schneiden", aber wenn etwas kaputt geht, bringe ich es meistens wieder zum laufen.
Mein Hintergrundwissen im Netzwerk-Bereich hilft mir häufig auch weiter beim Support: Wenn man grundsätzlich weiss, um was es geht, kann man Probleme oft lösen, ohne immer alles im Detail zu kennen.
System-Administration
Schon länger habe ich diverse Server auf Macs aufgesetzt und verwaltet (z.B. FileMaker, Now Up-To-Date & Now Contact, QuickMail, SIMS, ...).
In letzter Zeit beschäftige ich mich mehr mit Unix-Servern, zum Beispiel mit Sendmail, UW-Imapd, bind (DNS-Server) und der Administration von Zope. Mir macht gerade das Lösen von DNS- und Mail-Problemen grossen Spass. Keine Ahnung, was ein Psychiater dazu sagen würde.
Speziell interessant fand ich es, bei STAR TV einen "bridging" Firewall zu installieren. Das ist ein Firewall, der selber keine IP-Adresse hat und daher auch nicht im Netzwerk sichtbar ist. Dazu brauchte es einen unbenutzten älteren PC, OpenBSD und die in OpenBSD integrierte pf Firewall-Software.
Kurse
Ich gab und gebe des öfteren Kurse, Vorträge und Workshops zu Computerthemen. Dabei ist es mir besonders wichtig, dass die Teilnehmerinnen und Teilnehmer aktiv einbezogen werden.
In kürzeren Vorträgen bis ca. 1 Stunde stelle ich ein Thema vor, dass für die ZuhörerInnen neu ist oder zu dem ich etwas neues aufzeigen kann. Beispielsweise habe ich Vorträge gemacht über:
- Das Usenet
- QuickTime VR
- Webseiten mit FileMaker und AppleScript automatisch erstellen
Etwas längere Schulungen sollen den TeilnehmerInnen schon ansatzweise die praktische Nutzung ermöglichen. Zum Beispiel:
- Programmier-Luft schnuppern am Beispiel von AppleScript
Richtig zur Sache geht es dann bei den Workshops, die mindestens einen halben Tag dauern sollten. Hier können die TeilnehmerInnen selber Hand anlegen und lernen damit auch aus praktischer Erfahrung. Beispiel:
- Meeting-Workshop zum Thema Mac OS X für EinsteigerInnen
- Content Management mit Zope (Lehrerfortbildung am Gymnasium Oberwil)
- Einführung in sicheres Mailen mit GPG (geplant)