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.

MP3s zusammenfügen

Besitzt man eine CDs mit vielen MP3s, so kann es sein, dass diese im Auto nicht in gewollter Reihenfolge abgespielt werden.
Besonders störend ist dies bei Hörspielen.

Aus diesem Grund habe ich ein kleines Programm entwickelt, dass alle MP3s des aktuellen Laufwerks nimmt und als großes MP3 speichert. Das Programm arbeitet nicht sonderlich effizient, aber es arbeitet. Als Reihenfolge dient die alphabetische Reihenfolge (ohne numerische Intelligenz bei fortlaufenden Nummern).

Das Programm findet sich auf github unter https://github.com/mbrenn/concatmp3infolder und kann per ‘xbuild’ kompiliert werden. Alternativ mit Monodevelop.
Geschrieben ist der Spaß mit Mono/C# und besteht aus einer Datei: https://github.com/mbrenn/concatmp3infolder/blob/master/concatmp3infolder/Concatter.cs

Genutzt wird ffmpeg mit Hilfe der concat: und ‘-acodec copy’ Funktion.

Gewechselt auf Gentoo

Nach langer Überlegung möchte ich dem Gentoo wieder mal eine Chance geben das Gute Windows 8 abzulösen.

Die Installation war sehr schnell durchgeführt, in der Anfangszeit habe ich diverse Neuerungen im Linuxumfeld nicht geschnallt:

- Zusammenspiel von NetworkManager, net.eth0 und dhcpcd
- Installation von Firmware für Grafikkarte und Netzwerkkarte
- Automatische Umbenennung der Netzwerkkarten durch udev
- libdrm, Kernel-DRI-Interface und ati-drivers
- Systemd und Gnome 3

Mittlerweile läuft alles einwandfrei und ich muss sagen, dass ich recht zufrieden. Aktuell werden bestehende Projekte von bitbucket.org auf github.com portiert. Dies geschieht in folgenden Zwischenschritten:

  1. Einladen des alten Repositories mit hg clone
  2. Migration auf git per hg-fast-export
  3. Umschreiben der .hgignore auf .gitignore
  4. Erstellen eines Makefiles
  5. Prüfung, ob Kompilation per MonoDevelop möglich ist
  6. Prüfung und Anpassung des Kompilats

Bisher wurden die Bibliotheken

- BurnSystems.dll
- BurnSystems.Parser.dll
- BurnSystems.WebServer.dll und
- DeJS

portiert. Es geht ein wenig schneller als erwartet.

 

Screenshot from 2013-12-06 23:48:59