27
Nov/08
1

My git cheat sheet

In the last days I’ve spent several hours days understanding the concept of git. Now I need to write down some commands to be able to remember the commands which I don’t use every day when working with the git system.

29
Apr/08
0

Sourceforge.net subversion export, tag and upload script

Today I am writing about a small shell script I wrote cause I hated it to do the routine steps which are needed to get a packed release of NagVis out.

The basic steps to create a new release are documented on NagVis.org.

The script completes the following steps for me:

  • Tagging the current revision of the selected branch/trunk
  • Exporting the current revision
  • Creating code statistics (For details see NagVis code statistic script)
  • Setting owner/group of the files
  • Packing the files to a tar.gz archive
  • Uploading file via FTP to Sourceforge.net
14
Apr/08
0

Bash: PHP Code Statistik Script

Heute geht es um ein kleines Script, welches ich mir vor einigen Monaten geschrieben habe um eine einfache Statistik über ein paar PHP-Scripte machen zu können. In erster Linie ging es mir darum ein Gefühl dafür zu bekommen, wie das Verhältnis von Code zu Kommentaren ist. Ganz nebenbei habe ich dann aber auch eine Zahl darüber bekommen, wie sich die Menge des Codes mit der Zeit entwickelt hat.

Das Script durchsucht ein Verzeichnis nach Dateien mit der Endung .php, diese Dateien werden zeilenweise durchlaufen. Bei diesem Durchlaufen des Codes wird jede Zeile in eine der folgenden Schubladen gesteckt:

  1. Programm-Code
  2. Kommentar
  3. Leere Zeile

Nachdem alle Dateien durchlaufen wurden, wird die Gesamt-Summe der einzelnen Schubladen ausgegeben. Das Script kann man somit auf die einzelnen Tags oder Branches eines Repositories loslassen und damit eine schöne Code Historie erstellen.

10
Apr/08
0

Banshee cover art lookup at musicbrainz

Since some days I am using banshee music player in version 0.13.1 for simple playing my music at ubuntu gutsy. True, it’s a nice simple player and even the default plugins like “Metadata searcher” and “Music recomendations” are not that bad.

But did you think of where the informations are coming from? Everytime I play a new music file the banshee is doing some HTTP-requests to some webservices like musicbrainz to get the album art and for example to last.fm to get the music recomendations. OK, there is a cache thought banshee would not lookup everytime you play the same song again.

I grant you that im a quite little paranoid. I do not really want to push the information of what music I am currently listening to the internet.

So I started to disable the plugins … at first “music recomendations” … ok, no problem – no more requests to last.fm. Next I tried to fix the lookups to musicbrainz by disabling the “metadata searcher”. No way … even after a restart of banshee there are still lookups to the musicbrainz hosts.

9
Apr/08
0

Linux: Quick host2host file copy

Heute ein schöner Tipp für das schnelle Kopieren einer Datei unter Linux. Es wird kein FTP, kein HTTP, kein SSH benötigt.

Hier zwei kurze Beispiele:

  1. Eine oder mehrere Dateien in das aktuelle Verzeichnis kopieren:
1
2
host1:$ netcat -lvp <PORT> | tar -xv
host2:$ tar -cv <FILE(S)> | netcat -v <IP/FQDN-HOST1> <PORT>

Die in den spitzen Klammern gefassten Werten müssen durch die entsprechenden Werte ersetzt werden, so z.B. hier:

1
2
host1:$ netcat -lvp 12345 | tar -xv
host2:$ tar -cv file /home/username/.ssh/authorized_keys | netcat -v 192.168.1.2 12345

Was passiert da nun genau?

Host1 ist der Empfänger, mit dem ersten Befehl wird auf Host1 der Port 12345 geöffnet. Es kann natürlich ein beliebiger Port genutzt werden. Einzige Einschränkungen: Der Port darf nicht belegt sein und Ports kleiner als 1024 kann nur Root belegen. Die Empfangenen Daten werden mit tar ausgepackt. Host2 sendet etwas an Host1, mit dem zweiten Befehl werden auf Host2 zunächst eine oder mehrere Dateien in ein Tar-Archiv gepackt und anschließend via netcat über den vorher geöffneten Port 12345 an Host1 geschickt.

  1. Es kann z.B. auch ein Image eines Datenträgers oder einer Partition via dd erzeugt werden:
1
2
host1:$ netcat -lvp 12345 | dd of=/backup/host2-sda1.img
host2:$ dd if=/dev/sda1 | netcat -v 192.168.1.2 12345

Tolle Sache das…

via OpenSUSE Weekly News/17 2008

28
Mar/08
0

rug/zmd vs. ZenWorks Linux Management

ZenWorks Linux Management (ZLM) ist ein serverbasiertes Verwaltung-Programm der Novell ZENWorks Software-Suite. Das Programm dient zur Verwaltung von Software-Paketen im RPM-Format. Mit hilfe des ZLM lassen sich von zentraler Stelle Software-Pakete verwalten und auf viele Linux-Systeme verteilen. Unter Anderem können mit der Software SuSE Linux Enterprise Desktop und Server Systeme verwaltet und aktualisiert werden. Auf Seiten der Client-Systeme wird der ZenWorks Management Daemon (zmd) als Backend und als Kommandozeilen-Tool rug genutzt.

Während der Evaluierung bin ich auf einem System über einen Fehler gestolpert, der mich einiges an Zeit gekostet hat. Via rug konnten nahezu alle Befehle ausgeführt werden. Lediglich der Befehl rug up zum abrufen und aktualisieren von Software-Paketen schlug mit der folgenden Fehlermeldung fehl:

:> rug up
Resolving Dependencies...
 
ERROR: Dependency resolution failed:
Child exited due to SIGIOT

Diese relativ nichtssagende Meldung brachte mich in die Logs des zmd (/var/log/zmd-backend.log). In diesem Log fand ich folgende Meldungen, die mich auch nicht wirklich weiter brachten:

(...)
... [dbsource] DbSourceImpl.cc(createResolvables):412 DbSourceImpl::createResolvables(80eb6022589edc01809b001a4bee971e)
(...)
... [dbsource] DbPackageImpl.cc(readHandle):78 package_url NULL for id 9959
(...)

Letzendlich brachte mich keine der Fehlermeldungen und Beschreibungen weiter. Auch via Suche im Netz kam ich auf keinen grünen Zweig.

Ich bin den Fehler dann mit folgendem Vorgehen los geworden:

:> /etc/init.d/novell-zmd stop
Shutting down ZENworks Management Daemon                              done
:> mv /var/lib/zmd/zmd.db /var/lib/zmd/zmd.db.old
:> /etc/init.d/novell-zmd start
Starting ZENworks Management Daemon                                   done

Kurz nach dem Start beginnt der zmd die Datei /var/lib/zmd/zmd.db neu aufzubauen.

Nachdem die Datenbank wieder aufgebaut war, konnte ich die Software auf dem System mit rug up aktualisieren.

27
Mar/08
1

jEdit auf Ubuntu 7.10 (Gutsy Gibbon)

Heute habe ich mal versucht meinen liebsten plattformunabhängigen Editor jEdit auf einem Ubuntu 7.10 zu installieren. Gar nicht so einfach…

Am Anfang stand ein einfaches sudo apt-get install jedit. Natürlich war es nicht ganz so einfach – sonst würde ich hier nicht drüber schreiben.

Also, es gibt in den Standard-Quellen kein Paket für jEdit. Nach kurzer Suche habe ich dann doch jEdit Pakete finden können. Folgende Zeilen müssen an die /etc/apt/sources.list angehängt werden:

deb http://dl.sourceforge.net/sourceforge/jedit ./
deb-src http://dl.sourceforge.net/sourceforge/jedit ./

Anschließend kann das Paket jedit mit folgenden zwei Befehlen installiert werden:

$ sudo apt-get update
$ sudo apt-get install jedit

Jetzt ist jedit installiert. Dann sollte es ja auch funktionieren – denn eventuelle Abhängigkeiten würden ja sicher aufgelöst. Nachdem ich den Befehl jedit eingegeben hatte, war klar: So einfach war es dann doch nicht. Folgendes bekam ich innerhalb weniger Sekunden auf der Kommandozeile zu sehen:

$ jedit
GC Warning: Out of Memory!  Returning NIL!
GC Warning: Out of Memory!  Returning NIL!
GC Warning: Out of Memory!  Returning NIL!
GC Warning: Out of Memory!  Returning NIL!
*** Catastrophic failure while handling uncaught exception.
GC Warning: Out of Memory!  Returning NIL!

Kein Speicher mehr? Nein, daran kann es nicht liegen. Die Festplatte ist groß genug und im Arbeitsspeicher ist auch genügend Platz.

11
Jan/08
2

SD-Card recover

Wer kennt es nicht – Weihnachten bei der Familie. Ich hatte mir meinen Foto Apparat mitgenommen um ordentlich zu knipsen. Die erste SD-Karte wurde schon am ersten Tag voll. Nachdem ich dann die Bilder auf mein Notebook gesichert hatte, wurde die Karte gelöscht, dann konnte es am nächsten Tag munter weiter gehen. An dem Tag habe ich zum Glück nicht soviel geknippst, denn ich musste am Abend feststellen, dass die Fotos vor Vortag irgendwie nicht vollständig auf dem Rechner lagen. Da hab ich erstmal das Schwitzen angefangen. Aber nicht verzagen… Es gibt ja zum Glück Menschen, die sich vorher schon mal über die Lösung eines solchen Problems Gedanken gemacht haben.

9
Jan/08
2

Firefox 2.x Speichertuning

Vermutlich uralt und schon lange bekannt. Ich notiere mir den Tipp hier trotzdem nochmal:

Wenn man einige Zeit (vor allem mit vielen Tabs) mit dem Firefox arbeitet, frisst der Browser immer mehr Speicher. Mit dieser Anpassung wird der Großteil des Speichers beim Minimieren des Firefox wieder freigegeben. Wenn man anschließend den Browser wieder öffnet, wird der benötigte Speicher wieder belegt. Meißt ist das dann aber sogar weniger, als vorher benötigt wurde.

Hier die Einstellungen:

* Geben Sie in der Adresszeile “about:config” ein. * Klicken Sie nun irgendwo auf der erschienenen Site mit der rechten Maustaste und wählen dann im Kontextmenü “Neu” und “Boolean” aus. * Nun geben Sie in dem Eingabefeld “config.trim_on_minimize” (ohne Anführungsstriche) ein und drücken Sie Enter. * Im nun erscheinenden Fenster wählen Sie “true” aus. * Nun ist ein Neustart von Firefox notwendig.

Ob der Tipp auch im Firefox 3 funktioniert bzw. etwas nutzt, habe ich noch nicht getestet.

Filed under: Open Source
16
Dec/07
0

OpenSuSE NTFS-3g: Einbinden von NTFS Laufwerken mit Ruhezustand

Da ich nicht immer warten möchte, bis das Windows auf meinem Notebook heruntergefahren/gestartet ist, nutze ich den Ruhezustand – ein kompletten Neustart mache ich nur so selten, wie nötig.

Wenn ich dann OpenSuSE boote und das NTFS-Laufwerk einbinden möchte um auf gewisse Dateien zuzugreifen bekomme ich folgende Meldung präsentiert:

mobile:/ # mount /win/c Windows is hibernated, refused to mount. Failed to mount '/dev/sda1': Die Operation ist nicht erlaubt The NTFS partition is hibernated. Please resume and shutdown Windows properly, so mounting could be done safely.

Meißt reicht es mir, wenn ich lesenden Zugriff auf die Dateien habe. Falls ich die Dateien dann doch bearbeiten möchte, kann ich diese ja immer noch kopieren. Glücklicherweise lässt sich das Laufwerk im Read-Only Modus auch im Ruhezustand einbinden:

mobile:/ # mount /win/c -o ro

Und schon kann ich lesend auf die Windows-Partition zugreifen.