Job als Software Engineer gesucht

Nachdem ich mein Informatik-Studium in Fribourg und Montréal erfolgreich abgeschlossen habe, bin ich jetzt auf der Suche nach einem interessanten Job als Java Software Engineer im Grossraum Zürich oder in Graubünden. Am liebsten würde ich in einer Software-Firma arbeiten, die für verschiedene Firmen in verschiedenen Branchen Softwareprojekte realisiert. Dort ist nämlich die Arbeit besonders abwechslungsreich und man lernt viele Bereiche kennen, weshalb ich das gegenüber einem Job in einer Informatikabteilung einer «normalen» Firma bevorzuge.
Da ich bis Ende Juli diverse Dinge wie weitere Sprachaufenthalte geplant habe, würde ich gerne ab August arbeiten. Um sicher früh genug zu sein bin ich im Moment fleissig daran, Stelleninserate zu studieren und mich auf die interessanten Stellen zu bewerben. Wer einen interessanten, spannenden Job zu vergeben hat oder zufällig ein interessantes Stelleninserat sieht, darf sich natürlich sehr gerne bei mir melden 😉

So Spass mir die Stellensuche auch macht – sie stimmt mich irgendwie auch wehmütig, denn sie zeigt mir, dass sich mein Aufenthalt hier in Montréal zu Ende neigt. Zwar freue ich mich, in einer Woche in der Schweiz meine Familie, meine Kollegen und die Berge wiederzusehen, aber irgendwie ist Montréal in den letzten acht Monaten für mich so etwas wie eine zweite Heimat geworden und es ist nicht nur einfach, alles hier zu zurückzulassen. Dazu folgt aber später noch mehr.

Postina: A Publish/Subscribe Middleware Designed for Massively Multiplayer Games

I have just submitted my master thesis! Now, I have completed everything for my Master of Science in Computer Science, that is I have finished my studies!

In my project I developed Postina, a new network layer for Mammoth (an MMOG). Everything about Postina (including sources) is available online at http://postina.zindel.org.

The abstract is:
Postina is a network middleware designed for massively multiplayer online games (MMOG). It combines publish/subscribe functionalities with direct messaging, a feature of critical importance for MMOGs.

In MMOGs, numerous messages such as state updates are sent to different clients. While some messages must be multicast to a large group of clients, other messages are private and sent to a single client only. Using a traditional client-server approach limits the number of simultaneous players, a property that is undesired in MMOGs. A potential solution would be to use publish/subscribe systems which are designed for scalability. Pure publish/subscribe systems, however, do not provide any possibility to send a message directly to a single client as the peers do not have any knowledge of the network topology.

In this thesis we first study different publish/subscribe systems and the features they offer to choose an appropriate middleware providing the required functionalities for MMOGs. Additionally, we design Postina, an API for network layers in MMOGs that offers a convenient interface combining publish/subscribe and direct messaging. We then implement a version of Postina using Scribe, a topic-based publish/subscribe system built on top of the distributed hashtable Pastry. To fulfil the requirements of MMOGs, we add extra features such as reliable direct messaging and the capability of issuing subscriptions for other clients. This version of Postina is then integrated into Mammoth, the massively multiplayer game research framework developed at McGill University. Finally, the efficiency of the new network layer is tested to determine the maximum number of simultaneous players.

How to Scan at UniFR

Students and collaborators at the University of Fribourg have access to a very fast and high quality scanner: the printer and photo coyp machine in the A100 hall at Pérolles II. Simply push the button „Scan“, then choose the „scan to file“ option (in the middle) and follow the instructions (choose pdf or tiff, set resolution, color etc). The scans are then stored in a folder that can be accessed using samba.

To access the scans, a samba client is necessary. Under Linux kbear or the command line interface smbclient can be used. For the command line interface, type the following command (replace by your username):

smbclient //admpr07/FILE_SHARE -U -W UNIFR

After, the same commands as in the terminal ftp client can be used, i.e. get to download a file, mget to download multiple files (e.g. mget *.pdf), cd to navigate and del to remove a file (which is recommended at the end, as everybody has access to the folder).

If smbclient is not installed, you will first have to install it. Under ubuntu this can be done by typing sudo apt-get install smbclient.

If you want to access the files using your own machine or from at home, you will have to connect using VPN.

Zimmer zu vergeben, chambre à louer

Das Ende meines Studiums in Fribourg naht und mein Zimmer wird in unserer Nichtraucher-4er-WG wird Ende Juli frei. Die Wohnung ist im ersten Stock (mit Lift ;-), hell, mit zwei Badezimmern, Küche, Stube, Balkon. Sehr ruhige Lage, nahe Wald/Fluss/Finnenbahn. Sonst nur Familien im Quartier. Mit Velo ca 10min an Uni Pérolles (Miséricorde ca. 15Min). 10-15 Fussminuten bis zur Bushaltestelle (Coop Marly, weniger als 5min mit Velo). 438.-/Monat Nebenkosten inbegriffen (inkl. Waschen & Tumbler im Haus). Möglichkeit, ADSL (wireless) für nur ca. 10.-/Monat zu haben.
Das Zimmer ist sehr gross (knapp 22m²), sehr hell (vorne Fensterfront, seitlich ein Fenster), mit Parkettboden.
Möglichkeit, den Pult/Schreibtisch zu „erben“.

Kontakt: wg [at] zindel.org oder Natel Niklaus: 079 475 76 07 oder Natel Dominik: 079 207 00 65

****************************************

La fin de mes études à Fribourg approchant, ma chambre dans notre colloc à 4 (non-fumeurs) se libère fin juillet. L’appartement est ensoleillé, deux salles de bains, cuisine, salon, balcon. Situation très calme, proche de la forêt/Gérine/piste finlandaise. Pas d’autres étudiants dans le quartier. 10min jusqu’à l’uni Pérolles à vélo (15min à Miséricorde). 10-15min à pieds jusqu’à l’arrêt de bus (Coop Marly, moins de 5min à vélo). 438.-/mois, charges comprises (y compris linge/sèche-linge). Possibilité d’avoir ADSL (réseau sans fil) pour 10.-/mois environs.
La chambre est très lumineuse (façade de fenêtres) et très grande (22m² env.), avec parquet.
Possibilité « d’hériter » du bureau.

Contact: wg [at] zindel.org ou Natel Niklaus: 079 475 76 07 ou Natel Dominik 079 207 00 65

Zimmer

Chambre

Chambre

Zimmer

Bedroom

Vue/Aussicht

How to easily print code

For the first-year project in computer science at the University of Fribourg (where I am working as an underassistant) I had to correct exercises handed in by the students. 5 groups handed in their solutions, for each group I had to print out 7 files containing programming code (written in the Lisp-dialect Scheme). Opening all them in DrScheme takes a lot of time – too much as I decided.
I therefore searched the web for an easy solution and found it in the unix (terminal) tool enscript. For me it is the perfect solution for printing code. It includes syntax highlighting for numberless programming languages, including Scheme. For example the command

enscript -2 --highlight=scheme -r -d diufpr06 switch.scm

prints the file switch.scm on the printer diufpr06 (option -d), printing two sides per page (option -2) in landscape-format (option -r). The –highlight-option allows to indicate the programming language for which the syntax should be highlighted. The list of available languages can be displayed by typing enscript --help-highlight, it might be usefull to add | less to the command, otherwise the list is not really readable.
With the option -G (not used here) quite fancy headers are printed. All options can be displayed using man enscript. The installation of enscript is very easy under Ubuntu: just type sudo apt-get install enscript and within a few seconds everything is done. Under MacOS enscript is even installed by default.

Wiederanfang

Mein Knie hat sich inzwischen wieder weitgehend vom Skifahr-Morgen erholt, einer Wiederholung steht zumindest von dieser Seite nichts im Weg. Heute Nachmittag war ich zudem mit meinem WG-Mitbewohner etwa 1 1/4h Velo fahren. Wir fuhren von Marly nach Granges-sur-Marly, weiter nach Tentlingen und dann über Villarsel-sur-Marly wieder nach Marly. Die Bewegung tat gut und die Strecke ist wirklich schön, geht kaum über Hauptstrassen und man ist wirklich auf dem Land.

Diese Woche hat die Uni wieder angefangen ohne für uns Informatiker wirklich aufgehört zu haben. Wie üblich ist die erste Woche aber noch etwas weniger stressig da die Projekte noch nicht angefangen haben, drum hatte ich fast mehr Freizeit als während den «Ferien» (die hier «vorlesungsfreie Zeit» heissen). Ich muss in diesem Semester noch 3 Vorlesungen plus ein Seminar machen. Das Seminar habe ich noch nicht ausgewählt, bei den Vorlesungen werde ich Web Engineering, Interfaces Multimodales und Systèmes bio-inspirés wählen. Die zwei Pflichtvorlesungen habe ich bereits letztes Jahr erledigt. Jetzt kann ich einfach die interessanten Vorlesungen auswählen, die lästige Pflicht ist erledigt.
Zusammen mit der Arbeit als Unterassistent werde ich so auf knapp 40h Arbeit pro Woche kommen. Hinzu kommt die Arbeit an Websites. Damit sollte ich so in etwa ein normales Arbeitspensum haben, während meine Kollegen (die den Master in der normalen Zeit machen) rund 60h pro Woche für die Uni arbeiten müssen (wie ich letztes Jahr). Das Leben ist aber für mich so eindeutig angenehmer und ich profitiere von den einzelnen Kursen auch mehr weil ich nicht ständig übermüdet bin. Ich würde auf jeden Fall den Vorlesungsteil des Masters wieder auf zwei Jahre aufteilen wie ich es jetzt getan habe. Es ist viel weniger stressig und die Arbeit sorgt für die Finanzen…

Gut gewählt

Die ersten zwei Wochen Vorlesungen sind vorbei – und ich kann sagen dass sich meine Auswahl als sehr gut erweist: Drei Vertiefungsvorlesungen habe ich gewählt, alle sind auf Französisch:

  • Advanced Software Engineering: Software Engineering, Java EE, JSP, Java Servlets, Java Beans etc. Diese Vorlesung ist explizit auf die Industrie ausgerichtet, es wird die aktuellste Technologie die zur Zeit in der Industrie verwendet wird besprochen. Die meisten der disktutierten Themen werden in vielen Stelleninseraten verlangt oder sind zumindest ein Plus.
  • Traitement d’images: Image Processing. Algorithmen der Bildbearbeitung. Hatte ich zwar wegen Allerheiligen erst ein Mal, aber es war sehr interessant. Es werden die Algorithmen die hinter den simplen Befehlen «rotieren» oder «Kontrast erhöhen» etc stehen besprochen. Und das beste: Mit Hilfe eines Frameworks müssen wir die gleich auch implementieren (in Java). Machte bisher wirklich Spass.
  • Conception des processeurs: Eigentlich wäre Systemarchitektur oder so passender. Es wird nicht die Konzeption eines Prozessors besprochen, sondern viel mehr die allgemeine Hardware eines Computers – natürlich auf sehr tiefem Niveau, d.h. sehr hardwarenahe. Bisher stand zum Beispiel das Vorgehen beim Speichern auf dem Programm (d.h. wie genau werden die Daten in den Speicherzellen gespeichert). Dazu gehört auch die Adressierung und deshalb haben wir wieder ein Mal fleissig mit hexadezimalen Zahlen gerechnet

Neben diesen drei Vorlesungen mache ich noch das Seminar «Computer Security Threats and Counter Measures (WS 2006)». Dabei müssen alle Teilnehmer selbständig das Buch «Hacking, The Art of Exploitation» von Jon Erickson lesen. Jeder Teilnehmer muss dann ein Kapitel speziell bearbeiten, d.h. im Internet weitere Informationen dazu suchen und Papers etc lesen. Am Ende des Semesters gibt es dann eine Blockveranstaltung, d.h. es wird mindestens einen ganzen Tag dauern. Jeder Teilnehmer muss dann eine 45-minütige Präsentation zu seinem Thema abhalten – auf Englisch.

Neben dieser Zeit in der ich mich selbst bilde, bin ich auch dieses Jahr wieder in der Bildung der neuen Studierenden aktiv: Ich arbeite wieder (bzw. weiterhin) als Unterassistent und betreue zusammen mit einem Assistenten (Doktoranden) das Erstjahresprojekt mit der Eisenbahn. Die Arbeit gefällt mir gut und ich kann sehr viel machen. Es ist überhaupt nicht so «typische Unterassistentenarbeit» sondern ich mache die gleichen Arbeiten wie der Assistent. Dazu gehört die Weiterentwicklung der Steuerung der Miniatureisenbahn, die Vorbereitung/Korrektur der Skripte, Vorbereiten der Übungsaufgaben, Erklären des Stoffes (also quasi Vorlesung halten), Übungen korrigieren, Fragen der Studenten beantworten etc. Ist wirklich abwechslungsreich und interessant!

Erster Tag im letzten Jahr

Heute hatte ich meine erste Vorlesung in meinem letzten Vorlesungs-Jahr an der Uni. Angefangen hat es heute mit «Advanced Software Engineering». Dies ist eine Vorlesung die auf den Markt ausgerichtet ist, die derzeit aktuellen Technologien bei der Softwareentwicklung werden erklärt (inkl. Theorie) und dann gleich mit einem Projekt das einen grossen Teil der Note ausmacht umgesetzt.
Der Eindruck aus der Beschreibung hat sich heute in der ersten, dreistündigen, Vorlesung bestätigt: Diese Vorlesung ist wirklich nützlich, so ziemlich alle modernen Java-Sachen sind abgedeckt. Im Prinzip das was in fast jedem Stelleninserat verlangt wird. Damit ist diese Vorlesung eine ideale Sache für die Stellensuche – sonst ist die Uni ja sehr auf die Grundlagen und Theorie ausgerichtet und weniger auf die Praxis. Ich bin jetzt schon überzeugt dass diese praxisorientierte Vorlesung Spass machen wird! Freue mich auch auf das Projekt!
Die nächste Vorlesung habe ich erst am Mittwoch: traitement d’image. Das wird aber keineswegs ein Photoshop-Kurs oder so, sondern wirklich Theorie mit Algorithmen, also was hinter der Bildbearbeitung steckt. Tönt sehr interessant, auch wenn es sehr mathematisch werden wird (unter anderem steht die Fourier-Transformation auf dem Programm). Aber nachdem ich die mathematischen Informatik-Pflichtvorlesungen erledigt habe, schadet etwas Mathematik nichts. Ganz ohne die will ich auch nicht sein, da würde etwas fehlen. Es soll einfach in einem gesunden Ausmass bleiben…
Morgen Dienstag werde ich als Unterassistent arbeiten. Bereits für 8 Uhr sind die ersten Studenten angemeldet die ihr Projekt abschliessen wollen (oder müssen). Danach habe ich eine Sitzung mit dem Professor und einem Studenten der die Masterarbeit mit der Eisenbahn machen will. Der Assistent ist im Militär, also muss ich ihn vertreten…

Informatiker: eine bedrohte Spezies

Logo UniFRAm Freitag war an der Uni Fribourg der Erstsemestrigen-Tag der Mathematisch-Naturwissenschaftlichen Fakultät, morgen Montag geht das Wintersemester 2006-07 los. Dabei scheint sich die Abwärtstendenz bei den Studierenden an den Mathematisch-Naturwissenschaftlichen Fakultäten fortzusetzen: Am Freitag kamen gerade mal 4 zukünftige Informatik-Studierende, insgesamt sollen 9 oder 10 mit Informatik anfangen, dazu etwa gleich viele (bzw. wenige) Wirtschaftsinformatiker. An der Uni Bern dürften es auch nicht wesentlich mehr sein und selbst die ETHs haben drastische Einbrüche bei der Anzahl Informatikstudenten. Fingen 2000 in Zürich noch 332 ein Informatikstudium an, so waren es 2004 und 2005 gerade noch etwa 130.

Diese Situation ist für die Studierenden eigentlich sehr komfortabel da sowohl das Betreuungsverhältnis während der Ausbildung als auch die Stellensituation hervorragend sind. Das ohnehin schon immer gute Betreuungsverhältnis am Informatikdepartement in Fribourg wird jetzt noch besser. Im zweiten und dritten Jahr sind es nämlich zur Zeit auch nicht viel mehr als 10 Leute die Informatik studieren. Wieviele es im Master sind (wo zumindest letztes Jahr viele Leute von anderen Unis oder Ingenieurschulen (Fachhochschule) kamen), werde ich sehen.
Logo Faculty of Science UniFREinen riesigen Nachteil hat dieses perfekte Betreuungsverhältnis allerdings: die Mathematisch-Naturwissenschaftliche Fakultät hat immer weniger Geld zur Verfügung. Schon jetzt steht fest, dass ein Professor der in 2 oder 3 Jahren pensioniert wird, nicht mehr ersetzt werden wird. Längerfristig ist die Informatik in Fribourg (und Bern) so vom Aussterben bedroht, in Neuchâtel liegt sie bereits im Sterben. Ein Vollstudium ist dort nicht mehr möglich.
Eine mögliche Lösung ist hier BENEFRI, eine intensive Zusammenarbeit der Universitäten Bern, Neuchâtel und Fribourg. Inbesondere bei den Mathematisch-Naturwissenschaftlichen Fakultäten ist die Zusammenarbeit hier schon sehr fortgeschritten. Beispielsweise könnte ich problemlos Vorlesungen in Bern oder Neuchâtel besuchen, diese werden automatisch angerechnet. Sogar das Zugsbillet wird zurückerstattet!

Eine schöne Seite dieser geringen Studentenzahlen ist die Situation auf dem Arbeitsmarkt: Informatiker mit Uni-Abschluss können sich die Stellen so richtig aussuchen weil der Markt so ausgetrocknet ist und Firmen oft Mühe haben, Informatik-Stellen zu besetzen. Eigentlich alle haben schon vor Studienende eine Job auf sicher. Kollegen, die mehr oder weniger kurz vor dem Ende stehen, haben sogar schon mehrere Angebote erhalten ohne sich überhaupt zu bewerben. Plötzlich kam einfach ein Telefonanruf, ob sie nicht Interesse an dieser Stelle hätten, sie würden sie gerne einstellen.
In naher Zukunft dürfte sich diese Situation sogar noch verschärfen: jetzt kommen langsam die Jahrgänge mit sehr wenig Informatik-Studierenden auf den Markt, die grossen Jahrgänge sind jetzt fertig. Zudem braucht es immer mehr hochqualifizierte Informatiker. Die Universitäten und Fachhochschulen in der Schweiz können diese Marktnachfrage mangels Studenten nicht decken, das Wachstum von gewissen Firmen wird jetzt schon ausgebremst weil sie nicht genügend Personal finden.
Die Aussichten für mich sind also sehr rosig – umso mehr freue ich mich auf die Stellen»suche» und den ersten Job. Bis dann dauert es aber noch etwa 1 1/2 Jahre – die sicher sehr interessant werden.

Bachelor of Science in Computer Science

Genau dies, also Bachelor of Science in Computer Science ist die offizielle Bezeichnung des Studienganges den ich heute definitiv abgeschlossen habe. JUHUI! Der Reihe nach: Meine Nebenfacharbeit, die ich in den letzten Tagen aus dem Boden stampfen musste, wurde mit der Note 4.5 akzeptiert. Kritik war, wie in den drei anderen Nebenfacharbeiten zuvor, dass ich zu wenig Literatur habe und Beispiele und Erläuterungen nicht mit Literatur belegt habe. Anders ausgedrückt: Ich habe mich zu stark auf meine eigenen, grauen Hirnzellen verlassen und zuviel Eigenleistung erbracht… Aber das ist mir egal, ich habe die Bestätigung dass ich das Nebenfach «Journalistik und Kommunikationswissenschaften» mit «Magna cum laude» bestanden habe. Mehr will ich nicht.
Mit dieser Bestätigung spazierte ich dann zur überaus freundlichen zuständigen Person auf dem Mathe-Dekanat. Wie schon in den Mails war Frau Schwaller auch heute Morgen sehr freundlich und nett. Dieses Dekanat ist übrigens nicht irgendeine abgehobene Stelle, sondern eine Holzbaracke (seit eh und je). Aber es tuts und wie mal ein Dekan zu uns meinte: Wir sind näher bei den Leuten so als.

Heute Mittag ging ich in Fribourg schon wieder auf den Zug heim und irgendwo zwischen Zürich und Sargans hatte ich dann die Idee, ich könnte ja den 96-jährigen Grosspapa Marcus in Rebstein besuchen. Kurzes Telefon (39sec) und alles war abgemacht, ich fuhr also weiter und besuchte ihn. Um 18 Uhr ging ich wieder heim, da er an einen Rosenkranz für einen ehemaligen Schüler ging. Dieser starb im Alter von 84 Jahren. Wie er selbst waren auch alle seine 6 Kinder bei Grosspapa in der Schule…

Heute bin ich übrigens wieder mal Cousin geworden. Heute kam nämlich Laurin, Sohn von Andrea (Tante) und Thomas Kohler-Schenk, auf die Welt. Der Kleine kann hier sogar im Internet bestaunt werden.