Archive for the ‘Software’ Category

Auf zu neuen Windows

Mittwoch, August 15th, 2012

Seit heute (15. August 2012) ist Windows 8, Visual Studio 2012 und .NET Framework 4.5 für MSDN-Abonnenten verfügbar. Also war es Zeit mein parallel installiertes OpenSuse gegen Windows 8 zu tauschen.

Die Installation verlieft völlig problemlos. Ein wenig Erfahrung hatte ich bereits durch die Installation der Preview-Version in einer VM gesammelt. Wie wahrscheinlich die meisten Nutzer, habe ich eine Neuinstallation durchgeführt, um gleich einmal die Chance zu nutzen, alten Ballast loszuwerden. Die benötigten Anwendungen werde ich in den nächsten Tagen noch nachinstallieren. Auf den ersten Blick funktioniert alles wie gewohnt und man kann gleich loslegen. Natürlich ist vieles anders und noch gewöhnungsbedürftig. In der nächsten Zeit muss Windows 8 beweisen, dass man genauso schnell arbeiten kann wie unter Windows 7.

Wenn man so die Meinungen im Internet ließt, dann lehnen viele Leute schon vor der Veröffentlichung Windows 8 ab. Ich denke, früher oder später wird man damit in Berührung kommen, und wenn man sich damit auseinandersetzt, dann kann man sich selbst ein Bild davon machen.

Von meinem Bild werde ich hier weiterhin berichten.

SVN-Repos auf eigenen Git Server migrieren

Sonntag, Juni 24th, 2012

Vor einer Weile hatte hatte ich mir einen SVN Server mittels WAMP zusammengebastelt. Die Lösung läuft bei mir aktuell immer noch, obwohl ich schon seit einer Weile auf lokale GIT Repositories gewechselt bin. Das hat es mir ermöglicht, jederzeit und unterwegs mit dem Repository zu arbeiten, also Verlauf einsehen und Änderungen einchecken, und sobald ich wieder netzwerktechnisch auf mein SVN zugreifen konnte, wurden die durchgeführten Commits einfach ins SVN übertragen. Den SVN-Server durch einen GIT „Server“ zu ersetzen, war mir bisher zu aufwendig.

Die Tage bin ich dann über gitblit gestolpert. Dabei handelt es sich um ein Tool, in dem man einfach seine GIT Repositories hosten und auch für andere zugänglich machen kann. Das ganze kommt mit einem übersichtlichen Webfrontend daher, kurz gesagt: scheinbar ein perfekter Ersatz für meinen SVN Server.

Installation

gitblit gibt es in verschiedenen Download-Varianten. Die „GO“ Variant beinhaltet alles was man braucht um direkt loszulegen, kommt dabei „aber“ mit einem eigenen Jetty Webserver daher. Da ich eher einen lokalen Tomcat verwenden möchte, habe ich mir einfach die WAR-Datei (Web Archive) heruntergeladen.

Der Tomcat liegt bei mir unter D:\temp\apache-tomcat-7.0.28, d.h. die WAR-Datei wird in das Unterverzeichnis „webapps\gitblit“ entpackt. Änderungen an den Einstellungen habe ich für meinen Test keine vorgenommen. Die vollständige Einrichtung erledige ich wenn ich genug getestet habe. Zum Abschluss sollte man prüfen, ob der Tomcat auch gestartet ist.

Tja, das war es eigentlich auch schon. Wenn man jetzt im Webbrowser die Adresse http://localhost:8080/gitblit/ aufruft, bekommt man folgende Seite zu Gesicht.

Erste Schritte

Für die Verwaltung der Repositories muss man sich anmelden. Einfach oben rechts mit Benutzer admin und Passwort admin anmelden. Jetzt bekommt man zusätzliche Navigationspunkte und Funktionen angezeigt.

Etwa rechts in der Mitte (also oberhalb der leeren Repository-Liste) hat man die Möglichkeit ein neues Repository anzulegen. Mit einem Klick auf „new repository“ gelangt man zu einer Seite mit vielen Einstellungen. Ich gebe nur ins erste Feld den Name „test“ ein und klicke ganz unten auf „Save“. Damit habe ich ein neues Repository angelegt und das wird jetzt in der Übersicht als leer angezeigt. Jetzt muss man seinem lokalen Git-Repository nur noch den neuen Remote-Server mitteilen, und schon kann man mittels Push das Repo auf den Server übertragen. Die notwendigen Schritte/Befehle werden direkt im gitblit-Frontend angezeigt. Einfacher geht es nicht.

SVN Migration

Als nächstes möchte ich eines meiner SVN-Repositories in das eben erstellte importieren. Das gestaltet sich nicht ganz so einfach, da man mehrere Dinge beachten sollte:

  1. Man benötigt ein Author-Mapping, damit die Namen aus dem SVN-Repository nicht verloren gehen
  2. Alle SVN-Branches müssen in Git als Branch angelegt werden
  3. Alle SVN-Tags müssen in Git angelegt werden

Zum Glück muss ich mir nicht alles selbst zusammensuchen und kann auf Hilfe auf dem Internet zugreifen. Sämtliche nun folgenden Arbeiten führe ich in der „Git Bash“ aus, die man ja eigentlich intstalliert hat, wenn man mit Git unter Windows arbeitet. Wenn nicht, dann msysGit installieren.

Author Mapping

Um überhaupt an die eine Liste der Authoren heranzukommen, greift man am Besten auf ein kleines Bash-Script zurück. Das in Sven’s Blog bereitgestellte Skript, musste ich leicht anpassen, da es a) mit Leerzeichen in Authoren nicht klar kam und b) ein lokales SVN-Repository benötigte. An die geänderte Version kann ich einfach eine URL zum SVN-Server übergeben und schon bekomme ich eine Liste der Authoren. Hier das geänderte Script „svn_author_export.sh“ (Download weiter unten):

#!/bin/bash
IFS=$(echo -en "\n\b")
authors=$(svn log -q $1 | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2 }' | sort | uniq)
for author in ${authors}; do
  echo "${author} = ${author} <${author}@domain.com>" >> svn.authors ;
done

Der Aufruf sieht dann wie folgt aus:

./svn_author_export.sh http://localhost/svn/svnGitTest

Im lokalen Verzeichnis gibt es nach dem Ausführen eine Datei namens „svn.authors“, die man jetzt entsprechend anpassen sollte.

SVN Repository clonen

Das eben erstellte Author-Mapping kommt beim Clonen des SVN-Repositories zum Einsatz.

git svn --authors-file=./svn.authors clone -s http://localhost/svn/svnGitTest

Jetzt hat man ein lokales Git-Repository mit sämtlichen Commits aus dem SVN und den entsprechend gemappten Author-Namen/Emailadressen. Das kann man durch einen Blick ins „git log“ überprüfen.

Repository migrieren

Nachdem man das SVN-Repository nach Git geclont hat, sind einige Aufräumarbeiten notwendig. So muss man für jede SVN-Branch auch eine lokale Git-Branch erstellen, und auch die Tags aus dem SVN korrekt übernehmen. Um diesen Schritt zu automatisieren habe ich ein kleines Script gebastelt (Download weiter unten):

#!/bin/bash
branches=$(git branch -a | grep -e ' remotes/' | awk -F: '{print substr($0, 3)}')
for branch in ${branches}; do
  tagName=$(expr "$branch" : "remotes/tags/\(.*\)")
  branchName=$(expr "$branch" : "remotes/\(.*\)")
  if [ -n "$tagName" ]; then
    git checkout -b tag_"$tagName" remotes/tags/$tagName
    git tag $tagName tag_"$tagName"
    git checkout master
    git branch -D tag_"$tagName"
    git branch -D -r tags/$tagName
  else 
    if [ "$branchName" != "trunk" ]; then
      git checkout -b $branchName remotes/$branchName
    fi
    git checkout master
    git branch -D -r $branchName
  fi
done

Ok, was passiert in diesem Script?

  1. Zunächst werden alle Remote-Branches ermittelt
  2. Dann wird unterschieden, ob es sich um einen Tag oder eine echte Branch handelt
  3. Bei Tags wird temporär eine Branch (basierend auf dem Remote-Tag) angelegt und darauf ein entsprechender Tag erzeugt.
  4. Bei Branches wird einfach eine entsprechende Branch angelegt (außer für die Remote-Branch „remotes/trunk“)
  5. … und nebenbei werden alle Remote-Branches gelöscht, also das Repository vom SVN abgekoppelt.

Jetzt sollte man genau prüfen, ob irgendwelche Fehler aufgetreten sind. Falls etwas schief gegangen ist, hilft es meist nur,  das gesamte Repository frisch aus dem SVN zu clonen (oder man hat sich vorher ein Backup vom Verzeichnis gemacht). Ggf. sollte man den 5ten Schritt weglassen, wenn man sein SVN- und den Git-Server parallel laufen und Commits zwischen beiden syncronisieren lassen möchte.

Auf den Server übertragen

Nun ist es an der Zeit unser Repository auf den Server zu übertragen. Dazu müssen wir unserem lokalen Git-Repository erstmal ein neues Remote mitteilen und dann unsere Branches und Tags pushen.

git remote add gitblit http://localhost:8080/gitblit/git/svnGitTest.git
git push gitblit master work_test work_new work_experimental first_tag

Das kann natürlich wieder aufwändig werden, wenn man sehr viele Branches/Tags hat. Dafür kann man aber auch ein kleines Script (commit_all_branches_and_tags.sh) benutzen.

Wie man sieht, ermittelt das Script selbstständig alle Branches und Tags und puscht diese an das Remote mit dem Namen „gitblit“. Wenn ein anderer Name für den Remote verwendet wurde, dann kann man den Namen einfach als ersten Parameter an das Script übergeben. Hier noch das Script (Download weiter unten):

#!/bin/bash
remote="gitblit"
if [ -n "$1" ]; then
  remote=$1
fi
branches=$(git branch | awk -F: '{print substr($0, 3)}')
tags=$(git tag)
entries="${branches} ${tags}"
entries=${entries[*]}
echo "Committing: ${entries}" 
git push ${remote} ${entries}

Jetzt kann man sich auch das Ergebnis im Webfrontend anschauen oder sich das Repository auf einen anderen Rechner clonen.

Zusammenfassung

Auch wenn das Migrieren im ersten Moment doch etwas aufwändig erscheint, kann man mit wenigen Handgriffen oder durch die Verwendung von Scripts recht schnell zum Ziel gelangen. Grad der in die Scripte gesteckte Aufwand wird sich bei der Migration der weiteren Repositories auszahlen. Ob man bei der Migration gitblit oder eine andere Lösung aufbaut — in beiden Fällen kann ich hier wieder auf die Scripte und Vorgehensweise zurückgreifen.

Eine kleine Änderung an der Konfiguration von gitblit musste ich dann doch vornehmen. Bei Branches und Tags wurde im Webfrontend nur eine leere Seite angezeigt. Das Problem ist aber bekannt und kann (in des Dateien reference.properties und web.xml) durch das Setzen von „web.mountParameters“ auf „false“ beseitigt werden.

Die restlichen Funktionen von gitblit muss ich jetzt nach und nach ausprobieren. Aber mein SVN-Server wird wohl bald ausgediehnt haben.

Links
Gitblit-Homepage
SVN to Git Migration von Sven Goethel
Download der Scripte

HexEdit 2.0 wird OpenSource

Mittwoch, Juni 20th, 2012

Seit Jahren nutze ich den Hex-Editor von catch22.net in der Version 1.2 und möchte das Tool nicht mehr missen. Jetzt wurde gerade die Version 2.0.5 veröffentlich. Bei der Version 2.0 handelt es sich um eine von Grund auf neu entwickelt Version, welche schon sehr lange in Arbeit ist.

Auch wenn die Version noch nicht 100% fertig zu sein scheint, macht das Programm mittlerweile einen sehr guten Eindruck. Gerade wenn man in sehr große Dateien hineinschauen möchte (ob 100 MB oder mehrere GB), HexEdit kann den Inhalt problemlos anzeigen. Kürzlich wurde noch der Quellcode auf github veröffentlicht.

Wer also einen kostenlosen Hex Editor braucht oder mal in den Quellcode eines solchen schauen möchte, ist hier genau richtig.

Links
HexEdit 2.0
HexEdit auf github

Erfahrungsbericht: UpdateStar Online Backup

Freitag, April 27th, 2012

Vor einiger Zeit hatte ich begonnen, mich mit Online Backup Diensten auseinanderzusetzen. Aus meiner Sicht sind diese Dienste oftmals eine kostengünstige Alternative zum manuellen Backup. Also warum nicht? Natürlich sollte man sich mit dem Thema erst einmal befassen, um dann einen Anbieter entsprechend den eigenen Anforderungen auswählen zu können.

Auswahl eines Anbieters

Zunächst finde ich es wichtig, dass jedem klar ist, dass es hier um das Thema „Backup“ geht. Im Gegensatz zur „Online-Festplatte“ (ala Dropbox), sollte ein Backup die Wiederherstellung verschiedener Zeitpunkte oder Datei-Versionen ermöglichen. Es soll hier nicht um das Thema „Speicher, der von überall erreichbar ist“ gehen, und schon gar nicht um eine reine Cloud-Kopie meiner lokalen Daten. Vielleicht werden ja die Dienste „Online-Speicher“ und „Online-Backup“ immer mehr zusammenwachsen, momentan ist das aber noch nicht generell der Fall.

So, nun zu den Fakten, die man berücksichtigen sollte:

  • Zu sichernde Plattform (Win, Linux, Mac)
  • Sicherungsart (Gesamtes System / nur Daten)
  • zu sichernde Datenmenge
  • Konfigurationsmöglichkeiten
  • Daten-Sicherheit / Verschlüsselung
  • und natürlich der Preis

Wie die Überschrift schon zeigt, fiel meine Wahl auf UpdateStar’s Online Backup. Hier wird zwar nur die Windows-Plattform unterstützt, aber das ist für mich ausreichend. Die zu sichernde Datenmenge ist nicht begrenzt. Beim Thema Sicherheit wird eine doppelte Verschlüsselung eingesetzt. Die Daten werden bereits auf dem Client mit 256bit-Rijndael verschlüsselt und für die Übertragung wird zusätzlich SSL eingesetzt. Der Preis (60€ pro Jahr) ist gerade im Hinblick auf den unbegrenzten Speicherplatz, mehr als gerechtfertigt. Für einen Monat kann man das Produkt kostenlos testen.

Die Einrichtung

… geht schnell von der Hand. Client herunterladen und installieren. Beim ersten Programmstart muss man sich einen Account einrichten. Wichtig ist hier, dass man immer erst einen kostenlosen Testzugang in Anspruch nimmt, welcher dann im Nachgang auf das gekaufte Jahres-Abo erweitert werden kann. Nach einer Möglichkeit, den erworbenen Lizenzschlüssel direkt im Client einzugeben, sucht man vergebens. Die Lizenz kann man nur über die Account-Verwaltung im Webbereich von UpdateStar hinterlegen.

Als nächsten Schritt wählt man noch die zu sichernden Verzeichnisse aus. In der einfachen Ansicht kann man dabei aus den wichtigsten Verzeichnissen auswählen.

Alternativ kann man natürlich auch jeden beliebigen Ordner auswählen. Zusätzlich können beliebige Unterordner wieder abgewählt werden, was einem Ausschließen gleich kommt.

An dieser Stelle wird auch festgelegt, an welchen Wochentagen ein Backup erfolgt. Viel einfacher geht es kaum. Manch fortgeschrittener Anwender wird sich ein paar mehr Optionen wünschen.

Das erste Backup

… dauerte bei mir mehrere Tage. Das ist natürlich kein Fehler in der Software. Bei den heutigen Internetanschlüssen beträgt die Bandbreite des Upstream (zum Hochladen von Daten ins Internet) häufig weniger als ein zehntel der Dowload-Bandbreite. Je nach zu sichernder Datenmenge wird das Backup mehrere Tage in Anspruch nehmen, zumindest das erste.

Der Hersteller der Software wirbt gleichzeitig damit, dass der Backup-Vorgang keinerlei Auswirkungen auf andere Internetverbindungen haben wird. Das Programm erkennt Zugriffe aufs Internet automatisch und regelt die Datenrate herunter. In meinem Test funktionierte dies leider weniger gut. Der verwendete Internetanschluss liefert bis 2Mbit/s Upload-Bandbreite. Dennoch war beim Surfen oder Abrufen von Email ein deutlicher Geschwindigkeitsverlust zu bemerken. In der Software selbst kann man jedenfalls keine Upload-Begrenzung festlegen. Das sind Optionen, die man aus Gründen der Einfachheit weggelassen hat.

Hat man dann eines Tages das erste Backup vollständig hochgeladen, werden ab dem zweiten Backup nur noch die tatsächlich geänderten Dateien hochgeladen. Somit sind die weiteren Backups sehr viel schneller erledigt.

Wiederherstellen

Auch das funktioniert tadellos. Man kann das letzte Backup mit einem Klick wiederherstellen.

Natürlich kann man individuelle Dateien aus einem beliebigen Backup auswählen und nur diese wiederherstellen.

Zur Auswahl stehen die Backups der letzten 30 Tage. Ein Backup verfällt nach 30 Tage somit automatisch.

Es sei hier noch angemerkt, dass die Dauer der Wiederherstellung auch vom eigenen Internetanschluss abhängt. Je nach Datenmenge kann also auch wieder viel Zeit notwendig sein. Aber auch das ist kein Fehler.

Sicherheit

Die Sicherheit der Daten soll durch doppelte Verschlüsselung erreicht werden. Zum einen werden die Daten bereits auf dem Client mit 256-Bit Rijndael verschlüsselt. Zusätzlich werden die Daten mit einer 128-bit SSL-Verschlüsselung während der Übertragung zum Server geschützt.

Das hört sich erstmal gut an. Bleibt nur die Frage, wo der 256-Bit Rijndael-Schlüssel gespeichert wird. Die Webseite von UpdateStar gibt dazu wenig her. Man findet Informationen, nach denen der Schlüssel erst bei der Installation auf dem Client generiert wird und dass angeblich „der Zugriff durch Mitarbeiter des Anbieters unmöglich“ ist. Doch merkwürdiger Weise bietet UpdateStar auch gegen ein Endgeld von 40€ die Wiederherstellung des privaten Schlüssels an.  Also wird dieser Schlüssel doch auf den Servern von UpdateStar gespeichert? Auf eine Anfrage hin, wird dies vom Support verneint. Der private Schlüssel kann von UpdateStar generiert werden, vermutlich anhand der verwendeten Mailadresse. Es ist leider sehr schade, dass dies auf der Webseite von UpdateStar nicht transparent aufgezeigt wird. Man könnte durch die Beschreibung des Produktes selbst zu der Annahme kommen, dass die Daten nur verschlüsselt den Rechner verlassen und UpdateStar die Daten nicht entschlüsseln kann. Das ist jedoch falsch. UpdateStar konnte mir meinen Schlüssel exakt rekonstruieren und wäre somit in der Lage, auf meine Daten zuzugreifen.

Da das Produkt auch an Unternehmen gerichtet ist, halte ich das für eine große Schwachstelle. Und das dürfte wohl auch der Grund sein, warum dieses Detail in der Produktbeschreibung einfach übergangen und nicht erwähnt wird.

Technik

UpdateStar’s Online Backup ist eigentlich nur ein „keepit“ mit anderem Namen. Was das bedeutet? Ich meine damit, dass sowohl (Client-)Software als auch die verwendete Infrastruktur (Backup-Server) von keepit.com bereitgestellt werden. Scheinbar wurde nur der Name des Produkts angepasst. Während keepit bereits seit Herbst 2011 eine Version für Linux anbietet, stellt UpdateStar nur einen Windows-Client zur Verfügung. Ob sich der keepit-LinuxClient auch mit dem UpdateStar Online Backup nutzen läßt, werde ich vielleicht in einem späteren Artikel untersuchen. Auch besteht bereits heute die Möglichkeit, einen eigenen privaten Schlüssel zu hinterlegen. Nur gibt es bisher keine Möglichkeit, einen beliebigen privaten Schlüssel zu generieren. Dazu findet man auch auf den Seiten von keepit.com keine Informationen. Und auch der Support konnte hier nicht helfen. Und selbst wenn man einen eigenen Schlüssel generieren könnte, wer sagt mir denn, dass dieser Schlüssel nicht auch meinen Rechner verläßt?

Fazit

Für mich punktet UpdateStar’s Online Backup vor allem in den folgenden Bereichen:

(+) unbegrenzter Speicher
(+) sehr einfache Bedienung
(+) guter Preis

Die Nachteile hingegen sind:

(-) Erkennung der Bandbreitennutzung nur mittelmäßig
(-) privater Schlüssel läßt sich nicht ändern

Wer eine kostengünstige Backup-Lösung mit unbegrenztem Speicher sucht, der ist hier bestens beraten. Während das Produkt zunächst einen positiven Eindruck hinterläßt, bleibt jetzt ein schlechter Beigeschmack. Warum wird denn in der Produktbeschreibung das Thema Sicherheit nicht transparent gemacht? Muss man wirklich erst im UpdateStar-Shop über die „Wiederherstellung des privaten Schlüssels“ stolpern, damit einem klar wird, dass der Anbieter Zugriff auf den Schlüssel und somit auch Zugriff auf die Daten hat? Wer hier Sicherheit braucht, der sollte auf eine eigene zusätzliche Verschlüsselung setzen oder gleich einen anderen Anbieter wählen.

Den UpdateStar-Support habe ich gebeten, die Produktbeschreibung in Bezug auf den privaten Schlüssel etwas genauer zu gestalten. Mal sehen, ob da etwas passiert. Zusätzlich frage ich mich, ob das Thema mit dem privaten Schlüssel auch auf das KeepIt-Produkte zutrifft. Die Antwort kann ich aber nicht geben. Und Vermutungen helfen nicht weiter.

Links

Testbericht zu UpdateStar Online Backup
Produktseite UpdateStar Online Backup
Produktseite KeepIt Unlimited

Infos zu Online-Backup Diensten

Mittwoch, Februar 29th, 2012

Den Trend gibt es schon einige Zeit. Aufgrund von Breitband-Internetzugängen verlagern sich immer mehr Dienste ins Internet, oder anders gesagt: in die Cloud. Auch beim Thema „Backup“ gibt es mittlerweile mehr als genug Anbieter. Unter online-backup-info.de findet man dazu eine Anbieterübersicht und entsprechende Testberichte. Vielen Dank also an Thorsten, den Betreiber der Seite.

Für mich besonders interessant sind Anbieter mit unbegrenztem Speicherplatz. Momentan benötige ich vielleicht nur wenige GB, aber ich möchte mich nicht mit dem „Ist-noch-genug-Platz-Gedanken“ beschäftigen. Auch die Verschlüsselung der Daten sollte man nicht außer Acht lassen. Diese sollten nicht nur verschlüsselt übertragen werden, sondern auch für den Anbieter unzugänglich sein. Einige Backup-Dienste werben genau mit diesen Verschlüsselungs-Funktionen, andere schweigen sich zu diesem Thema aus. D.h. man muss sich unbedingt mit den angebotenem Funktionsumfang auseinandersetzen und evtl. auch etwas mehr Geld ausgeben, um auf der sicheren Seite zu sein. Oft werden auch kostenlose Testzeiträume angeboten.

Nun wurde im Blog zum „Welt Backup Tag“ aufgerufen, welcher am 31.03.2012 stattfindet. Aus diesem Anlass gibt es einige Sonderaktionen bei verschiedenen Online-Backup-Anbietern. Wer also mit dem Gedanken spielt, das eigene Backup in die Cloud zu verlagern, sollte den Termin im Auge behalten und sich gut informieren. Also, wieder mal ein Backup erstellen – jetzt wäre es gerade günstig.