Aug 15

Das Versionskontrollsystem git wird immer populärer, so dass sich jetzt auch Google entschlossen hat git auf Google Code neben svn und mercurial zu unterstützen. Doch leider ist es mit einem einzigen Knopfdruck im Admin-Bereich von Google Code nicht getan.

Vor der Umstellung sollte man sein Projekt in einem separaten Verzeichnis sichern.

Nachdem man von svn auf git umgestellt hat, sollte man als erstes einen Reset des Repositories mit folgender Option durchführen:

HTTPS ist das einzige Protokoll, das Google für git unterstützt. Zur Authentifizierung sollte man sich ein Passwort generieren und die Zugangsdaten (auf Linux oder MacOs) in einer .netrc Datei im home Verzeichnis abspeichern.

Nun kann man das Git Repository von Google Code in ein neues Verzeichnis clonen. Danach die alten Projektdaten in das neue Verzeichnis kopieren, zu Git hinzufügen und lokal festschreiben (commit).

 > git clone https://code.google.com/p/<projectname>/ <projectname>
 > cd <projektname>
 > cp -R <pathToOldProject>/* .
 > git add .
 > git commit -m"inital import"

Was jetzt noch fehlt, ist der erste Upload zu Google Code.

 > git push origin master

Bei nachfolgenden Uploads ist die Angabe des Branches nicht mehr notwendig.

 > git push

Links:
Tutorial – Erste Schritte mit Git

geschrieben von gklinkmann \\ tags: , , , ,

Apr 26

Das Versionierungstool Git steht schon lange auf meiner Liste der Dinge, die ich mir mal anschauen will. Momentan nutze ich noch subversion. Doch während man mit subversion Änderungen nur in einem zentralen Repository speichern kann, bietet Git dezentrale Repositories, die auf Bedarf gegen ein zentrales Repository gemerged werden können.

Doch vor der Nutzung kommt zuerst die Installation. Sicherlich kann man Git auch aus den Quellen übersetzen, aber sowohl für Linux [1] als auch für den Mac [2] gibt es dafür Pakete. Die ersten Schritte sind in diesen beiden deutschen Tutorials [3] [4] erläutert. Ein ausführliches deutsches Tutorial gibt es von der Stanford Uni [5].

Scenario


Mein Scenario ist folgendes:

  • ein zentrales Repository auf meinem Mac mini (der mir als Server dient)
  • ein dezentrales Repository auf meinem Mac mini (wenn ich mal davor sitze)
  • ein dezentrales Repository auf meinem Kubuntu Laptop (für unterwegs)

Am Anfang steht das Projekt, das man mit Git versionieren möchte. Das Terminal ist des Entwicklers liebster Freund und deswegen ist der volle Funktionsumfang von Git auch nur dort adressierbar (eine Eclipse Integration gibt es natürlich auch [6]). Aber ein Schritt nach dem anderen.

Schritt 1: bestehendes Projekt mit Git versionieren


Zuerst sollte man Git den eigenen Namen und eine Email Adresse bekanntgeben. Git benutzt diese Informationen später in den Versionskommentaren.

> git config --global user.name "Gero Klinkmann"
> git config --global user.email me@example.com

Dann kann man sein erstes Git Repository mit git init ersellen. Bei mir liegt es auf dem Mac mini, auf dem im nächsten Schritt auch das zentrale Repository entstehen soll.

> cd ~/workspace/testGroovy
> git init
> git add .
> git commit

Die Befehle sprechen für sich. Beim commit öffnet sich der vi Editor, damit man einen Kommentar für den jeweiligen Stand hinzufügen kann. Die Befehlssyntax des vi ist nicht gerade intuitiv, von daher für alle, die sie nicht kennen, kurz die notwendigen Befehle um den Kommentar hinzuzufügen:

  • [i] Wechsel in den Insert Modus.
  • Kommentar schreiben.
  • [esc] Wechsel in den Befehls Modus.
  • [:wq] Speichen und Beenden des vi.

Schritt 2: zentrales Git Repository anlegen


Das eben erstellte Repository ist dann das dezentrale Repository auf dem Mac. Der Clone davon wird über das Argument bare zum zentralen Repository auf dem Mac.

> mkdir  ~/git
> cd ~/workspace/testGroovy
> git clone --bare .git ~/git/testGroovy.git

Schritt 3: zentrales Git Repository clonen


Auf dem Linux Laptop soll ja ein dezentrales Repository entstehen. Dafür ist es notwendig, das zentrale Repository auf dem Mac zu klonen. Beide Rechner sind über ssh verbunden. Weiterhin wird beim Clonen das git-upload-pack (und zwar das von dem Rechner, wo das zentrale Repository liegt – bei mir also vom Mac) benötigt.
Um Problemen, wie bash: git-upload-pack: command not found vorzubeugen, sollte man den Ort (bei mir ist es /usr/local/git/bin/git-upload-pack) beim Clone Kommando mit angeben.

> cd  ~/projekte
> git clone --upload-pack /usr/local/git/bin/git-upload-pack \
   ssh://username@server/full/remote/path/to/testGroovy.git testGroovy

Damit man das nicht ständig beachten muss, kann man das auch in der Git Konfigurationsdatei hinterlegen.

> cd  ~/projekte/testGroovy
> vi .git/config
   [remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = ssh://username@server/full/remote/path/to/testGroovy.git
        uploadpack=/usr/local/git/bin/git-upload-pack
        receivepack=/usr/local/git/bin/git-receive-pack

Schritt 4: vom lokalen zum zentralen Repository


Änderungen an den Sourcen werden zuerst im lokalen Repository über git commit -a versioniert. Auch bei diesem commit öffnet sich der vi Editor für einen Versionskommentar. Mit git push werden die Änderungen des lokalen Repositories dem zentralen Repository mitgeteilt.

> cd ~/projekte/testGroovy
> git commit -a
> git push

Schritt 5: lokales und zentrales Repository auf einem Server


Begonnen hatte ich mit einem lokalen Repository auf meinem Mac. Über git clone –bar wurde ein zusätzliches zentrales Repository erstellt. Doch noch gibt es keine Verbindung zwischen den beiden. Dies geschieht durch einen Eintrag in der Git Konfigurationsdatei des lokalen Repositories.

> cd ~/workspace/testGroovy
> vi .git/config
   ...
   # Verbindung zum zentralen Repository
   [remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = /full/path/to/git/testGroovy.git
   [branch "master"]
        remote = origin
        merge = refs/heads/master

Fazit:
Ein bisschen Konfiguration ist schon notwendig, wenn man mit Git zentrale und dezentrale Repositories gleichsam nutzen möchte. Für diesen Aufwand bekommt man aber ein sehr leistungsfähiges, stabiles und performantes Versionierungssystem, das nicht auf eine Verbindung zu einem zentralen Repository angewiesen ist.

Links:
[1] git-core – Core Pakete für Ubuntu
[2] git-osx-installer – Google Code Projekt
[3] kurzes deutsches Git Tutorial – auf interaktionsdesigner.de
[4] kurzes deutsches Git Tutorial – auf online-tutorials.net
[5] ausführliches deutsches Git Tutorial – der Stanford Uni
[6] EGit – Eclipse Plugin für Git

geschrieben von gklinkmann \\ tags: , , , ,

Dec 23

Da es momentan im Internet nur so von Gerüchten um das nahende Ende oder zumindest den Verkauf des Internet Urgesteins nur so wimmelt, sind viele aus Angst um ihre Lesezeichenverwaltung auf der Suche nach einem neuen Anbieter. Ich auch.

Der kleinste gemeinsame Nenner ist dabei der RSS Reader (Reeder) meines iPhones. Dort hat man die Auswahl zwischen Google, del.icio.us und .

Zootool, wer ist das? Genau das habe ich mich auch gefragt und fand dann nach dem Aufruf der URL einen Dienst zur Lesezeichenverwaltung (und jeder Menge Web 2.0 drum herum) vor, der eine schicke, schnelle und benutzerfreundliche Oberfläche hat, meine 500 Lesezeichen sauber importierte und eine Rest API für den Zugriff auf die eigenen Daten bereitstellt.
Das ganze ist ein deutsches Startup Unternehmen mit Amazon Backend (das lassen zumindest die Links erahnen), dem ich eine rosige Zukunft wünsche (und das nicht nur weil dort jetzt meine Lesezeichen hoste).

Wer die Zukunft von del.icio.us nicht ganz so dramatisch beurteilt sollte zur Sicherheit trotzdem seine Lesezeichen sichern. Wie das geht zeigt der Artikel von Guido Mühlwitz.

geschrieben von gklinkmann \\ tags: , ,

Nov 15

Vor fast genau einem Jahr hatte ich zum ersten mal die Gelegenheit Audials One der RapidSolution Software AG zu testen. Mein Fazit der damals getesteten Version 4 war stark beeinflusst von der großen Anzahl der in Audials One enthaltenen Funktionen.

Jetzt ist die Version 8 verfügbar und ich bin gespannt, was an der “EierlegendenWollMichSau” für Audio und Video verbessert wurde. Der Eintrag im changelog

[8.0.26908.80] – 09.11.2010
komplett überarbeitet und mit vielen neuen Funktionen!
Bitte informiert euch über die Webseite über die Neuerungen oder probiert die Version einfach aus!

gibt keinen Aufschluss darüber. Schaut man sich auf der Webseite um, wird dort auch nur die schon erwähnte Funktionsvielfalt beworben. Und die Liste:

  • der Audio Stream Rekorder zur Aufnahme von Musik bei Streamingdiensten und Musikportalen
  • der Podcast-Client (Podcatcher) um die Vielfalt der im Internet angebotenen Podcasts hören zu können.
  • Videos (auch Musikvideos) herunterladen oder mitschneiden
  • der Formatwandler für Audio & Video
  • Hörbücher umwandeln
  • Videos, Kinofilme und DVDs aufnehmen (auch mit Kopierschutz)
  • der DVD Ripper
  • Vervollständigen & Organisieren der Musiksammlung (Editieren von ID3 Tags)
  • integrierter Multimedia Player
  • der Klingeltongenerator …

ist wirklich lang.

So war ich auf den Test gespannt. Schon bei der Installation zeigte sich die erste Neuerung. So ist es jetzt möglich Audials One auch auf einem USB Stick zu installieren. Dies kann sehr hilfreich sein, wenn man öfter zwischen mehreren Rechnern wechselt. Ansonsten verlief die Installation recht unspannend. Die Installation des Mp3 Codecs sollte man dabei nicht vergessen.

Beim ersten Start dann die nächste sichtbare Neuerung – die neue Oberfläche. Sie wirkt viel aufgeräumter und übersichtlicher. Sie ist so besser nutzbar. Zur Wahl stehen auch zwei Farbschemas (dunkel und hell), die über den Farbring (neben den Fensterelementen zum Minimieren, Maximieren und Schließen) zu erreichen sind.

Sehr gut ist auch die neue Albenübersicht in der Suche, die farblich getrennt die Titel des Albums und die dazu gehörigen Suchergebnisse anzeigt. So weiß man gleich, welche Titel einem noch fehlen.

Die Senderauswahl bei den Internet Radios ist wie bisher riesig. Erfreulich ist, dass sich darunter auch MotorFM einer meiner Lieblingsradios jenseits des Mainstreams befindet.
Um auch Social Radios, wie last.fm, aufnehmen zu können muss eine zusätzliche Komponente (ich denke aus rechtlichen Gründen) installiert werden.

Aber auch darüber wird man man vorbildlich informiert. Überhaupt wurde viel Wert darauf gelegt den Nutzer bei der Bedienung der Software nicht im Regen stehen zu lassen. Das geht von dem überall präsenten Hilfeknopf bis zu Schaltflächen die mehr Informationen anbieten (z.B. wie aufnehmen).

Audials One bietet für viele Anwendungsfälle im Audio und Videobereich Lösungen an. Ich konnte leider nicht alle testen. So blieben z.B. der DVD Ripper, der virtuelle CD Brenner und der Klingeltongenerator ungetestet.
Bei all meinen Tests erwies sich Audials One im Vergleich zum letzten Test aber als sehr stabil.

Fazit:
Audials One ist erwachsen geworden. Die größte sichtbarste Neuerung dürfte die neue Oberfläche sein, die nicht mehr so verspielt wirkt wie in der Version 4. Doch richtig große Neuerungen sind beim Funktionsumfang des Vorgängers auch schwierig. Trotzdem tauchen an vielen Stellen gut durchdachte Verbesserungen (wie die Albenvorschau im Suchmodus) auf.
Auch die USB Installation dürfte für viele Anwender interessant sein. All das rechtfertigt sicherlich den großen Versionssprung von Version 4 auf Version 8.
Gibt es also noch etwas, das in der nächsten Version verbessert werden könnte? Aus meiner Sicht wenig, bis auf die ab und zu erscheinenden nicht in die schicke Oberfläche passenden Windows Dialoge. Worüber ich mich in Version 16 freuen würde, wäre die Unterstützung von MacOs. Eine schicke Oberfläche gibt es ja schon. :-)

Interessiert?
So, wer jetzt neugierig geworden ist, der sollte schnell zugreifen. Denn für den Start von Audials One 8 gewährt Rapid Solution unter diesem Link 40% Rabatt. Der Kaufpreis beträgt so nur noch 35,90 Euro statt 59,90.

update:
Die neuen Funktionen von Audials One sind jetzt in der veröffentlichten Pressemeldung enthalten.

geschrieben von gklinkmann \\ tags: , , , ,

Oct 20

Die Management Information Base (kurz: MIB) beschreibt die Informationen, die über ein Netzwerk-Management-Protokoll (zum Beispiel SNMP) abgefragt oder modifiziert werden können.

Das Simple Network Management Protocol (englisch für „einfaches Netzwerkverwaltungsprotokoll“, kurz SNMP), ist ein Netzwerkprotokoll, das von der IETF entwickelt wurde, um Netzwerkelemente (z. B. Router, Server, Switches, Drucker, Computer usw.) von einer zentralen Station aus überwachen und steuern zu können.

Quelle: Wikipedia – Artikel zu SNMP und MIB

Um Informationen über ein Netzwerkgerät zu bekommen braucht man 4 Sachen. Zum ersten die Struktur der Information (MIB), zweitens ein Protokoll um diese abfragen zu können (SNMP), drittens einen Dienst der die Informationen bereitstellt (snmpd) und natürlich ein Tool um die Abfragen auszuführen.

Auf der Kommandozeile gibt es dafür z.B. snmpget und snmpwalk (um nur mal 2 zu nennen). Doch dafür muss man die Struktur der Informationen sehr gut kennen. Viel einfacher sind da Tools mit grafischer Oberfläche, die s.g. mibbrowser. Ein mibbrowser, der auf allen Betriebssystemen läuft und zumindest in der Personal Edition frei nutzbar ist, kommt von iReasoning.

Der iReasoning mibbrowser ist selbst in Java geschrieben. Eine installierte Java Laufzeitumgebung ist also Voraussetzung für die Installation. Nach dem Start teilt sich das Fenster (wie im Bild) in 3 Bereiche auf. Links werden die MIB’s in einer Baumansicht dargestellt. In der Personal Edition können dort maximal 10 MIB’s eingebunden werden.
Darunter gibt es Detailinformationen zum ausgewählten MIB Eintrag und rechts werden die Abfrage Ergebnisse angezeigt. Für snmp tables (z.B. für interfaces) gibt es eine Extra Tabellenansicht (Strg+T), ansonsten werden alle snmp Befehle (wie auch bei den Kommandozeilen Tools) unterstützt. In den Verbindungseinstellungen kann zusätzlich die snmp Version und der Port, über den angefragt werden soll, geändert werden.

Fazit:
Obwohl ich die Kommandozeile und ihre Tools sehr mag, ist der iReasoning mibbrowser beim Anzeigen von Informationen über snmp doch sehr viel komfortabler. Die freie Personal Edition ist für mich für den täglichen Einsatz vollkommen ausreichend. Eine Gegenüberstellung der Funktionen der unterschiedlichen Editionen (Personal, Professional, Enterprise) gibt es hier.

geschrieben von gklinkmann \\ tags: , , , ,