Warum Auslandsaufenthalt?

IMG_0346(Der abendliche Blick aus meinem Fenster)

14 Monate erschienen mir zuerst recht lang. Bei genauerer Überlegung und Diskussion mit Kollegen und Freunden relativiert sich diese Zeitspanne.

Ein Kollege war für mehr als 3 Jahre im Ausland. Nach etwa 1,5 Jahre hat er die ersten Auflösungserscheinungen des Bezugs zum Freundeskreis in Deutschland vernommen. Die gemeinsamen Ideen, Erlebnisse und Geschichten werden im Laufe der Zeit immer rarer. Nach seiner Rückkehr musste er die Freundschaften wieder aufbauen.

Allerdings finde ich es schon etwas utopisch zu glauben, dass nach 14 Monaten alles so sein wird, wie vorher. Es werden Hochzeiten stattgefunden haben, die Freunde werden gemeinsame Urlaube genießen und auch die alltäglichen Treffen fanden ohne meine Begleitung statt. Jedes Treffen verändert. Und Kinder…. Es werden dann einige Kinder mehr auf der Welt sein! Kinder, wir brauchen mehr Kinder!

Auf der andere Seite… Ein Freund war für mehr als 3 Jahre im Ausland und das Bier schmeckt mindestens genauso gut wie früher.

Was ist nun die Motivation?

Es wäre gelogen zu sagen, dass ich mir von der Reise keine Verbesserung der mittelfristigen Karrierechancen zu haben. Ein Projekt im Ausland tut immer ganz gut im Lebenslauf.

Aber primär geht es mir um das Erleben der amerikanischen Kultur in Michigan, das Erweitern des geistigen Horizonts durch völlig neue Erlebnisse und dem Schließen neuer Freundschaften, nicht nur im Kollegenkreis. Ich erwarte von der Reise viele neue Erlebnisse und Gedanken, die zu meinem bestehenden “Ich” hinzukommen und das “Ich” wird auch lernen müssen ohne sozialen Bezug außerhalb der Familie zurechtzufinden.

Ich möchte mich überraschen lassen und ich werde die Freundschaften und Familie, sei es über die Nachbarschaft, über die Stammkneipe oder auch ‘der Mainzer’ vermissen.

Warum USA?

Alternativen waren Japan und China… Ersteres hat von Seiten der Firma nicht geklappt. China wäre absolut interessant gewesen, allerdings möchte ich nicht in einer chinesischen Industriestadt mit Familie und zwei Kleinkindern fahren. Es fängt dort bei ärztlicher Versorgung an und endet bei der sozialen Integration der Frau.

PS: Warum finden sich hier keine Kommentare über die Gefühle meiner Familie? – Dies ist ein Blog über mich und keiner über meine Familie. Es werden sich hier auch keine persönlichen Gegebenheiten finden, die mehr betreffen als mich.

Neues Design – Neue Inhalte

In diesem Blog werden sich ab nun nicht mehr nur Programmier-Themen befinden, es werden nun auch weitere Themen behandelt.

Ein großes Thema wird die kommende Reise in die USA sein. Hier möchte ich über Erfahrungen bei den gesamten behördlichen Beantragungen, aber auch über Erlebnisse in den USA bloggen.

Ein weiteres Thema könnten tagesaktuelle Kommentare sein, aber hier möchte ich keine politische Richtung vertreten. Es soll kein Politikblog werden.

Ein paar Bilder werden sich finden lassen. Insgesamt öffne ich den Blog für alle öffentliche Themen, die mich in meiner Freizeit begleiten. Auf Caturday oder Links auf lustige Bilder werde ich verzichten.

C#-Klassen nach TypeScript

Für den Datenmeister hatte ich ein kleines Konvertierungstool geschrieben, das mir eine C#-Modell-Klasse in eine Typescript-Klasse portiert. Es geht mir um die Struktur der Klasse, nicht um die Implementierung.

Die Typescript-Klasse nutzt die Backbone.Model Architektur, die verlangt Eigenschaften über get und set zu setzen.

Beispielsweise:
FormView.cs

Diese Klasse wird dann über ein IronPython-Skript, das die .Net-Konvertierungsklasse aufruft, geladen und portiert:
datenmeister.fieldinfo.objects.ts

Das Iron-Python-Skript sieht folgendermaßen aus:
TypeScriptCreator.py

Alles ist genauer über Github zu finden:

Die Konvertierungsklasse:
- TypeScriptSourceFactory.cs

Der IronPython-Helper:
- TypeScriptFactory.py

Wenn Interesse besteht, kann ich diese Funktionalität isolieren, so dass sie einfacher per API zu erreichen ist.

Stichwörter:
Convert C# class to typescript, conversion of c# class to typescript

Bestehende Windows 8 Installation in Virtualbox packen

Lief erstaunlicherweise einfacher als gedacht:

1) Größe der Festplatte bestimmen:
fdisk -l

2) https://www.virtualbox.org/wiki/Migrate_Windows
cat /dev/sdx | VBoxManage convertfromraw stdin OutPutFile.vdi NUMBEROFBYTES
NUMBEROFBYTES durch die Größe der Platte ersetzen

3) Beim Start habe ich einen “Bluescreen” (eigentlich einen Blackscreen) mit dem Fehlercode 0x000000C4 erhalten.

http://4sysops.com/forums/topic/windows-server-2012-r2-on-virtual-box-error-0x000000c4/

VBoxManage setextradata “Windows 8″ VBoxInternal/CPUM/CMPXCHG16B 1
“Windows 8″ ist der Name der VM.

4) Neustarten, wohlfühlen:

Screenshot from 2014-01-03 21:51:20

Typescript 0.9.5 has been published

Microsoft (or one of its OpenSource Teams) has published Typescript 0.9.5, which is nearly finalizing the specification…

http://blogs.msdn.com/b/typescript/archive/2013/12/05/announcing-typescript-0-9-5.aspx

Unfortunately I have one problem in my libraries, which uses backbone.bind. At the moment, I do not understand the reason and the mitigation…
The specification can be read at: http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf

Typescript is an addition to Javascript, fully backwards-compatible unlike Coffeescript. Every Javascript file can be parsed and read by Typescript. And Typescript files can be compiled to Javascript files.

Have fun.

Nun auf dem Server

Auf einem einfachen Alvotech-Debian-Server mit 512 MB habe ich nun testweise ein Spiegelbild der burnsystems.de abgelegt.

Der Mono-Dienst läuft mit mono-service im Hintergrund, wird von einem Init-Skript gesteuert und erstellt einen Dienst auf dem Port 8081. Über einen Lighttpd Reverse-Proxy erfolgt die Umleitung von http://code.depon.net/ auf http://localhost:8081/ wo die Website verfügbar ist…

Insgesamt erstaunlich schnell eingerichtet. Wie man unten sieht hat der Windows-Server einen Geschwindigkeitsvorteil, könnte allerdings auch daran liegen, dass dieser nativ auf einem recht starken Rechner läuft, während das Debian auf einem 3 EUR V-Server läuft.

Linux V-Server (mit 512 MB)
esel mbrenn # ab -c 10 -n 100 http://code.depon.net/

Connection Times (ms)
min mean[+/-sd] median max
Connect: 88 116 23.7 109 183
Processing: 324 512 137.8 492 1164
Waiting: 94 141 40.3 143 355
Total: 436 627 138.0 603 1274

esel mbrenn # ab -c 10 -n 100 http://code.depon.net/css/burnsystems.less

Connection Times (ms)
min mean[+/-sd] median max
Connect: 87 120 139.6 97 1088
Processing: 181 331 85.0 315 825
Waiting: 152 280 48.3 279 389
Total: 278 451 155.1 422 1371

esel mbrenn # ab -c 10 -n 100 http://code.depon.net/connect/user/GetLoginStatus

Connection Times (ms)
min mean[+/-sd] median max
Connect: 88 116 140.7 98 1097
Processing: 91 129 97.0 102 568
Waiting: 91 115 64.4 101 439
Total: 182 245 167.6 201 1199

Windows-Root-Webserver:
esel mbrenn # ab -c 10 -n 100 http://burnsystems.de/

Connection Times (ms)
min mean[+/-sd] median max
Connect: 50 67 15.3 65 115
Processing: 234 504 63.5 508 640
Waiting: 66 319 68.8 311 424
Total: 285 572 61.1 575 709

esel mbrenn # ab -c 10 -n 100 http://burnsystems.de/css/burnsystems.less

Connection Times (ms)
min mean[+/-sd] median max
Connect: 51 57 5.6 56 80
Processing: 225 372 86.5 361 647
Waiting: 111 251 87.2 241 535
Total: 278 429 87.7 418 727

esel mbrenn # ab -c 10 -n 100 http://burnsystems.de/connect/user/GetLoginStatus

Connection Times (ms)
min mean[+/-sd] median max
Connect: 52 57 5.5 56 82
Processing: 65 88 22.9 77 150
Waiting: 65 88 22.9 77 150
Total: 118 145 25.8 135 211

BurnSystems.de läuft auf Linux

Die lokale Entwicklungsversion von BurnSystems.de läuft nach kleineren Anpassungen nun auch auf Linux:

Screenshot from 2013-12-11 14:23:34

Finde ich persönlich sehr schön, dass die Migration von Windows auf Linux innerhalb von 1 Stunde erledigt war.
Eine Sache ist noch offen:

Zuvor wurden die Bilder per WPF skaliert. WPF ist unter Mono nicht verfügbar, daher werde ich eine andere Bibliothek wählen müssen. Welche ist noch offen.

Auch bin ich mit der teilweisen tief verschachtelten Projektstruktur nicht sonderlich glücklich. Deutlich zu sehen im Git-Repository: BurnSystems.WebServer.Umbra. Im Unterverzeichnis packages habe ich die abhängigen Projekte eingefügt. Diese besitzen nun wieder selbst Abhängigkeiten und beinhalten zum Teil die gleichen Bibliotheken wie das Mutterprojekt. Dies erschwert die Wartung und Kompilierzeiten.

Ist mir persönlich aber lieber als externe Abhängigkeiten, die nicht vom makefile selbst verarbeitet werden.