Kategorie-Archiv: Allgemein

svn2git: Versionshistory aus SVN nach GIT übernehmen

Vor einiger Zeit stand ich vor dem Problem ein größeres SVN Repository mit einigen tausend Commits und ewiger Versionshistory (wurde noch aus CVS-Zeiten übernommen) nach GIT zu konvertieren.

Mein erster Ansatz war einfach git-svn zu benutzen. Das wird in vielen Anleitungen verwendet, kann also nicht so schlecht sein. Habe ich zumindest gedacht. Das Konvertieren hat Stunden gedauert. Ein kurzer Test ist also nicht mal eben möglich. Als ich kurz davor war es über Nacht laufen zu lassen, bin ich auf diesen Artikel gestoßen:

Never use git-svn to convert your SVN repo to Git

Das KDE Projekt stand wohl auch mal vor dem gleichen Problem, wahrscheinlich aber noch mit einem deutlich größeren Repository. Als Lösung hat das KDE Projekt ein C++ Programm geschrieben das deutlich effizienter arbeitet. git-svn hat für 1 GB Repository etwa 10 Stunden gebraucht während das svn2git vom KDE Projekt für 64 GB nur eine Stunde benötigte. Klang sehr vielversprechend, war es dann auch. Die Installation ist im KDE Wiki sehr gut beschrieben und mein Repository war innerhalb weniger Minuten komplett konvertiert. Die konvertierte Version nutzen wir nun schon eine Zeit lang ohne Probleme damit gehabt zu haben.

Fazit: Du willst kein git-svn zum konvertieren mehr benutzen!

Neuer Server: Webtropia Opteron Server S

Nach fast 2 Jahren auf meinem alten Server, einem Opteron 1210 mit Ubuntu 12.04 von webtropia stand nun mal wieder ein größeres Hardware- und Softwareupgrade an. Ubuntu 14.04 ist schon seit einiger Zeit zu haben und auch bei der Hardware hat sich einiges getan.

Auf der Suche nach dem Root-Server für mich bin ich beim Opteron Server S von webtropia.com gelandet. Der Server bietet eine aktuelle 8 Core CPU und für mich ausreichend RAM und Festplatten. Eine Besonderheit ist der Zugriff über IPMI, sodass man den Server komplett von zuhause aus verwalten kann. Sogar individuelle Neuinstallationen vom Betriebssystem sind mit dem IPMI Zugang kein Problem. Des weiteren wird auf der Produktseite sogar ein redundantes Netzteil inklusive beschrieben. Das kostet bei den meisten anderen Servern direkt einen satten Aufpreis. Insgesamt nur 39,99€ monatlich ohne Setupkosten und ohne Laufzeit finde ich für diesen Supermicro-Markenserver schon spitze!

Die Bereitstellung des neuen Servers erfolgte innerhalb von weniger als einer Stunde. Da ich keine Zusatzoptionen wie von der Grundkonfiguration abweichende Festplatten bestellt habe, lief dieser Prozess wohl vollkommen automatisch und ohne zutun eines Technikers. Sehr erfreulich! Erhalten habe ich eine saubere Ubuntu 14.04 Serverinstallation auf dem aktuellen Stand. Es war also nach der Installation nicht mehr nötig noch selbst Updates vorzunehmen.

Nun, wie waren meine Erfahrungen beim Upgrade? Da ich den Anbieter nicht gewechselt habe, konnte ich parallel den alten und neuen Server nutzen und meine Daten übertragen. Sicherheitshalber habe ich selbst meine Festplatten sicher gelöscht. Das war aus dem Rescue-System heraus auch kein Problem. Als ich damit fertig war habe ich nur noch der Buchhaltung Bescheid gegeben und der alte Server wurde anstandslos per sofort gekündigt. Die für einen virtuellen Server genutzte zusätzliche IP konnte ich vom alten Server dann auf den neuen übertragen lassen. Ein Renumbering war also nicht nötig. Die Übernahme der ersten Server IP Adresse war jedoch leider nicht möglich, da diese wohl fest mit dem Standort des Servers verknüpft ist.

Nach den ersten paar Tagen Betrieb sind meine Erfahrungen mit dem Server durchweg sehr gut. Geliefert wurde – wie schon beim letzten mal – genau das was auch bestellt wurde. Die CPU stimmt, der RAM und als Festplatten wurden Toshiba 24/7 Platten verbaut. Auch das IPMI funktioniert. Den Netzwerkdurchsatz habe ich gegen den Speedtest-Server von myloc und gegen externe Server wie den von QSC getestet. In beiden Fällen durchweg sehr gute Ergebnisse. Die Temperaturen sind nach meiner Auswertung sehr konstant. Festplatten laufen konstant um 30°C.

Alles in allem: Diesen Server kann ich weiterempfehlen! Die gebotene Leistung ist zu diesem Preis exzellent.

iTerm2 – Das bessere OS X Terminal

iTerm2 LogoAuf das alte iTerm habe ich ja schon mal in einem Beitrag zu SSH Links in Browsern Bezug genommen. Der Beitrag ist leider aber schon einige Jahre her und in der Zwischenzeit hat sich einiges getan. Inzwischen gibt es mit iTerm2 eine modernere Variante. An iTerm hat mir – auch in der ersten Version schon – besonders gefallen dass die Dinge einfach so funktionieren wie man sie erwartet. Insbesondere:

  • Die Pos1 und Ende-Taste funktionieren so wie “normalerweise”. Also Zeilenanfang und Zeilenende. Bei der OS X Terminal.app scrollt man damit.
  • Man kann mit CMD + Pfeiltasten zwischen offenen Tabs wechseln. Terminal.app sieht dafür CMD + { bzw. CMD + } vor. Zumindest auf dem deutschen Layout eher weniger intuitiv zu benutzen.
  • Mit CMD+Enter wechselt man in den Fullscreen-Modus. “Use Lion-style Fullscreen windows” in den Einstellungen habe ich allerdings deaktiviert. Die Animation beim Vergrößern hat mich doch sehr gestört.
  • Funktioniert auch in der Terminal.app, ist aber – insbesondere auf dem Retina Display – schon mal recht hilfreich: Zoomen mit CMD + und CMD – bzw. zurücksetzen mit CMD + 0.
  • Die Suche ist super praktisch: Die startet beim neusten Inhalt, also unten und nicht wie in der Terminal.app von oben. Außerdem sucht man schon während der Eingabe.

Insgesamt machen schon die paar Punkte für mich iTerm zum Terminalprogramm unter OS X meiner Wahl. iTerm bietet zwar noch deutlich mehr Funktionen, nutzen tue ich die in der Praxis aber eigentlich nie. Ach übrigens: iTerm 2 ist kostenfrei und steht unter einer Open Source Lizenz.

Über Kommentare würde ich mich freuen!

Pfadfinder-Regel gehört in jedes Büro

…ok nicht in jedes, aber in jedes in dem Entwickler rumsitzen ;-).

Im Blog von Holger Rüprich gibt es ein schönes Clean Code Plakat, den original Post (zugegebenermaßen schon etwas älter aber immer noch schön) findet ihr hier.

Das Plaket geht übrigens zurück auf das Buch Clean Code von Robert C. Martin (affiliate link).

Eigentlich würde ich ja gerne das Bild als kleine Teaser-Grafik auch hier schon einbinden. Da ich mir aber wegen des Urheberrechts nicht sicher bin, lasse ich das mal lieber. Trotzdem viel Spaß mit dem Plakat!

[EN] New IPv6 features with MySQL 5.6

MySQL 5.6 was released a few days ago on 5th of February 2013 and offers some quite exciting improvements. With that I do not mean the performance things everyone mentions. Nor I mean the new memcached Interface. For our company (an internet hosting company) there is small, but important improvement: There are native SQL functions to store (and work with) IPv6 addresses in an efficient manner!

You may already know INET_ATON, INET_NTOA to store v4 addresses (you want to use INT UNSIGNED or VARBINARY(4) for that). With Version 5.6 you have fully compatible ones for v6 too: INET6_NTOA, INET6_ATON and some goodies like IS_IPV4() and IS_IPV6. You can find a list of these functions in the official MySQL manual concealed under “Miscellaneous Functions“. For the sake of completeness I have to mention that you should use VARBINARY(16) for IPv6/IPv4 mixed addresses to gain optimal efficiency in terms storage space.

As already pointed out, this is a new MySQL 5.6 feature. If you have installed a mysql-server via your package management (e.g. apt-get/dpkg) you probably have installed MySQL 5.5. For those who don’t have the possibility to upgrade, take a look at the watchmouse blog, they already realized an analoge behavior with MySQL user defined functions years ago.

You don’t have MySQL 5.6 running in production until now? Don’t worry! I believe that most current installations are “old” as there isn’t any distribution out there at moment that delivers version 5.6 out of the box. If you plan a migration at your company, I would recommend you to visit Kristian Köhntopps talk at OSDC 2013. For those who can’t wait, I have also written a blog post about how to install MySQL 5.6 on Ubuntu 12.04.

[EN] How to install MySQL 5.6 on Ubuntu 12.04 (Precise)

This how to will cover the upgrade process of MySQL 5.6 on Ubuntu 12.04 precise. This may also work on Ubuntu 12.10 (quantal) but I haven’t tested it at moment.

DISCLAIMER: I am not responsible for any DATA LOSS you may face when using this how to! Use it at your own risk, create a backup and use your brain! With manual installation you will definitely LOOSE the support of your distribution vendor in case of security updates, be aware of this fact! Thank you!

This how to was created on an up to date (at the day of writing) Ubuntu 12.04.2 LTS machine (use lsb_relase -a to check). MySQL was already running on this machine.

First of all you need to download your new mysql 5.6 server software. You will find the latest version at the download page of mysql.com. Select “Debian Linux” as your platform and depending on your architecture (use uname -i to get this info) you should choose the appropriate package. I have selected x86, 64 bit and will use the package “mysql-5.6.15-debian6.0-x86_64.deb” for the next steps. Hint: Oracle suggests you to login or register, you don’t need it as there is a link “No thanks, just start my download” at the bottom of the page ;-).

Download the package (about 300 MB):

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-x86_64.deb -O mysql-5.6.15-debian6.0-x86_64.deb

… and install it using dpkg:

dpkg -i  mysql-5.6.15-debian6.0-x86_64.deb

… don’t be a messy and delete the package as you hopefully won’t need it again:

 rm mysql-5.6.15-debian6.0-x86_64.deb

Now look at your fresh mysql 5.6 setup at /opt/mysql/server-5.6/. You should really read the INSTALL-BINARY file as there are some remarks that are good to know and aren’t covered in this howto.

As I mentioned there was already an running instance of mysql on my system. If something wents wrong we really want to have a kind of backup. You could do this on different ways, either you could use mysqldump or to keep it simple stop mysql using service mysql stop and copy your /var/lib/mysql directory using cp -rp /var/lib/mysql /var/lib/mysql.old. This may take a lot of time depending on the size of your databases. In case of emergeny you could then install your distributions mysql version and use your old data.

service mysql stop && cp -rp /var/lib/mysql /var/lib/mysql.old

Now, as you have saved your production data you can remove your Ubuntu version of mysql-server. You can do this by:

apt-get remove mysql-server mysql-server-5.5 mysql-server-core-5.5

Move your my.cnf from /etc/mysql/my.cnf which is the Ubuntu default location to /etc/my.cnf which is the one mysql uses for the start scripts. Do this by mv /etc/mysql/my.cnf /etc/my.cnf and note that the /etc/mysql/conf.d/* files will be included anyway.

mv /etc/mysql/my.cnf /etc/my.cnf

To get mysql started you will need to copy the new startscript to /etc/init.d by cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql.server. As you probably want mysql to start automatically on system startup use update-rc.d mysql.server defaults to create a standard runlevel configuration.

cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql.server && update-rc.d mysql.server defaults

MySQL 5.6 depends on libaio which can installed by:

apt-get install libaio1

Set correct rights for your mysql installation:

chown -R mysql /opt/mysql/server-5.6/
chgrp -R mysql /opt/mysql/server-5.6/

Update some paths in your /etc/my.cnf (use a text editor of your choice, e.g. nano):

basedir = /opt/mysql/server-5.6
lc-messages-dir = /opt/mysql/server-5.6/share

And update your mysql information schema to the latest version:

/opt/mysql/server-5.6/scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql

Pitfall: This will create my.cnf in /opt/mysql/server-5.6/ which sets SQL mode to strict. Your applications may have problems with this mode. For compatibility reasons you should DELETE this my.cnf and only rely on your /etc/my.cnf. Delete it by rm /opt/mysql/server-5.6/my.cnf. You won’t be able to overwrite this setting with your /etc/my.cnf and remove STRICT_TRANS_TABLES from your sql_mode. Read more about mysql_install_db here.

rm /opt/mysql/server-5.6/my.cnf

Start mysql by

service mysql.server start

And check your /var/log/syslog for errors. If everything works fine, you should see something like "Version: '5.6.10' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)" and you shoudn’t find any mysql related errors.

Have fun with your freshly upgraded mysql 5.6 server!

Update (29.12.2013): Updated the download url and package name to mysql-5.6.15-debian6.0-x86_64.deb (Thanks hien)!

Serverumzug zu webtropia und Erfahrungen

Mein Webserver für peterchen.net lief nun lange Zeit auf einem Virtual Server L des Kölner Hosters Hosteurope. Langsam aber sicher wurde mir der Server zu klein, hatte zu wenig Arbeitsspeicher und der Festplatten-Speicherplatz war mit 50 GB auch nicht sehr großzügig bemessen.

Ich habe mich entschieden von einem virtuellen Server auf einen dedizierten Server zu wechseln. Meine Wahl fiel dabei auf den Düsseldorfer Hoster webtropia.com. Ich habe mir dazu heute einen Economy Server 1210 Root-Server für 24,99€ monatlich bestellt. Die Freischaltung des Servers erfolgte innerhalb von wenigen Stunden obwohl heute Feiertag in NRW war. Erwähnenswert ist noch, dass das Passwort für den Server nicht direkt via E-Mail geschickt wurde sondern nur im Kundenbereich zum einmaligen Abruf bereitgestellt wurde. In Anbetracht der Hacks bei einigen großen Hostern in den letzten 12 Monaten sicherlich keine schlechte Idee! Erste Tests des Servers liefen bisher gut. Ich konnte meine Daten vom bisherigen Server mit voller Netzwerkgeschwindigkeit und ohne Einbrüche übertragen. Auch Speedtests von QSC aus waren optimal. Die Hardware ist natürlich wie versprochen und steht voll zur Verfügung.

Meine Kaufentscheidung wurde auch durch einige von Kunden veröffentlichte Beiträge getragen:
http://www.ciao.de/webtropia_com__Test_8799289
http://www.ciao.de/webtropia_com__Test_8799273
http://serversupportforum.de/forum/dedizierte-server/43588-webtropia-erfahrung.html

Bäckerei Moss Ahornstraße Öffnungszeiten, Studentenwerk-Flame

Heute mal was aus meinem Alltag als Informatik Student an der RWTH Aachen :-).

Das hiesige Studentenwerk hat hier am Informatikzentrum zwar eine Mensa und eine Cafeteria, die Öffnungszeiten wirken aber aus Studentensicht eher willkürlich gewählt. In der Mensa gibt es Essen von 11:30 bis 14 Uhr und das Cafe Ahorn55 hat von 8 bis 15:30 Uhr geöffnet – zumindest theoretisch! Praktisch gibt es ab 14:30 Uhr 14 Uhr keinen frischen Cafe/Capuccino/Latte Macciato/Espresso mehr. Wieso? Die Maschine muss noch saubergemacht werden. Damit man auch um 15:30 Uhr pünktlich das sinkende Schiff verlassen kann fängt man sicherheitshalber schon mal um 14 Uhr damit an. Ladenschluss = Schichtende, komme was wolle!

Was bleibt einem also wenn man vor der Vorlesung noch in Ruhe ein Brötchen kaufen möchte oder nach dem Essen um jeden Preis noch einen frischen Cappuccino braucht? Ja genau, 3 Minuten die Ahornstraße zur Bäckerei Moss runter laufen! Seit einem halben Jahr wird jedoch die Website der Bäckerei überarbeitet und *NIEMAND* weiß seit dem mehr so ganz sicher bis wann der Laden überhaupt auf hat. Ich habe deswegen waghalsigerweise mal ein Foto der Öffnungszeiten gemacht, tada:

Neben dem Bild hier auch noch mal die Öffnungszeiten von Moss an der Ahornstraße in Textform:

Mo-Fr: 6:30 – 18:30 Uhr
Sa: 6:30 – 14:00 Uhr
So: 8:00 – 13:00 Uhr

Besonders zu empfehlen ist übrigens das belegte Baguette “La Flute” (RIP Hawaii) z.B. mit Tunfisch. Der Capuccino ist auch ziemlich gut und imho auch besser als der im Informatikzentrum-Cafe vom Studentenwerk (…leider aber auch teurer).

Call of Duty MW3 Gameserver mieten – Vergleich

Du suchst einen COD Modern Warfare 3 Server? Nicht alle gängigen Gameserverprovider bieten CODMW3 an. Hauptsächlich liegt das daran, dass für MW3 keine Linux-Server Files zum Download veröffentlicht wurden.

Hier nun ein kurzer Überblick über ausgewählte Anbieter und die Kosten. Die Konfiguration des Servers im Vergleich soll sein: 12 Slots, keine Werbung im Servernamen, Public (keine Passwortpflicht) Teamspeak 3 Server mit 12 Slots inklusive bei monatlicher Mindestvertragslaufzeit. Alle Angaben natürlich wie immer ohne Gewähr. Stand 1. Februar 2012.

gamed!de Linemax NGZ-Server Dawnserver
Preis 9,99€ 18,50€ 13,80€ 12,30€
Einrichtung 0€ 0€ 19,95€ 0€
Location Düsseldorf (NRW) Düsseldorf (NRW) Coburg (Bayern) Frankfurt (Hessen)
Bemerkung Gameswitching, Fastdownload
Angebot Call of Duty MW3 Gameserver COD MW3 Gameserver COD MW3 COD MW3

gamed!de – Gameserver hat zu MW3 Servern auch einen Blogbeitrag veröffentlicht, indem das Angebot noch einmal genauer erklärt wird. Unter anderem wird darauf eingegangen das die Server auf Windows 2008 Server gehostet werden und wie die Administration des MW3 Gameservers bei gamed!de erfolgen kann.

Viel Spaß mit auf euren MW3 Gameservern!