About June 2009

This page contains all entries posted to /blog/wvk in June 2009. They are listed from oldest to newest.

May 2009 is the previous archive.

September 2009 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31

« May 2009 | Main | September 2009 »

June 2009 Archives

June 3, 2009

Ruby + Subversion

Wer sich wie ich dieses Wochenende im großen weiten WWW vergebens auf die Suche nach Dokumentation für die äußerst praktischen Ruby-Subversion-Bindings (libruby-svn) macht, dem sei an dieser Stelle gesagt: die Bibliothekt ist nicht dokumentiert.

Das Einzige, was mir weitergeholfen hat, sind folgende Blogs:

  • http://icepick.info/2008/09/25/using-rubys-svn-bindings/ (das einfachste beispiel)
  • http://www.oneofthewolves.com/2007/03/06/ruby-subversion-bindings-finally-some-documentation/ (schöne Einführung)
  • http://www.oneofthewolves.com/2007/12/22/ruby-subversion-bindings-better-documentation/ (Code und Unit Tests)

Das und ein Wenig Subversion-Anwenderwissen reicht bei Weitem aus, um z.B. Datenbankeinträge mit einem Subversion-Repository zu synchronisieren.

June 14, 2009

Ruby + Qt4

Ich habe heute wieder einmal ein Wenig mit Qt4 gespielt, diesmal jedoch nicht mehr mit C++, sondern Ruby. Die Voraussetzungen dazu beschränken sich auf die zu installierende Bibliothek libqt4-ruby und natürlich die Qt4 API-Referenz. Fazit: Sehr cool, die Eleganz von Ruby gepaart mit der mächtigen Qt-Bibliothek macht richtig Lust auf schöne Multiplatform-Desktop-Applikationen.

Die von QtRuby (libqt4-ruby) zur Verfügung gestellten Qt-Bindings orientieren sich zu sagen wir mal 98% an den Original-APIs, mit der Ausnahme dass das "Q" in denn C++-Klasssennamen durch ein "Qt::"-Prefix ersetz wurde. Was ich allerdings als weniger hübsch empfinde, ist die konsequente Weiterverwendung von camelCase auch bei Methodennamen -- es steht keine Rubyesquere under_score-Variante zur Verfügung.

Anders sieht das aus bei den Qt-/KDE-Ruby-Bindings in der Korundum-Bibliothek. korundum4 ist eine m.E. etwas weiter fortgeschrittene Qt-Schnittstelle für Ruby, die zusätzlich die umfangreichen KDE-Erweiterungen der Qt-Bibliotheken zur Verfügung stellt. Außerdem wird Camelcase und Underscore-Schreibweise bei allen Methodennamen gleichermaßen unterstützt und "Setter" werden wie gewohnt über "value = " (und zusätzlich über "setValue()") angeboten.

Während QtRuby konsequent auf Ruby-Datentypen setzt, verwendet Korundum (noch) eigene Wrapper-Datentypen an Stellen, wo die C++ API einen Pointer erwartet. So würde ein Aufruf von Qt::FontDialog.getFont(my_boolean, Qt::Font.new("Helvetica", 10), self) in Korundum so aussehen: Qt::FontDialog.getFont(Qt::Boolean.new, Qt::Font.new("Helvetica", 10), self). Dies soll sich laut Dokumentation aber in Zukunft ändern. Bis auf diese Dinge lassen sich Programme, die für QtRuby geschrieben wurden, auch mit Korundum weitestgehend ohne Änderungen auch mit Korundum betreiben.

Ein paar hilfreiche HowTos:

Happy Hacking!

June 26, 2009

Good old Legacy Systems (tm)

Da will man einfach nur eine Wegbeschreibung ausdrucken. Doch da stellt man fest, dass der Drucker ja nur einen Parallelport hat, das Notebook aber nicht. Zu neu. Der Arbeitsrechner... dito, zu neu. Aber ganz unten im Schrank steht ja noch ein alter Rechner, der hat sowas. Ist ja auch eigentlich der Printserver. Aber dieser wiederum hat ein Netzwerkproblem, will heißen: Hänger und Segfaults bei Netzwerkoperationen, keine Ahnung warum. Kernelupdate? ohne Netzwerk schwierig. Live-CD? Gute Idee, hätte die Kiste denn ein Laufwerk eingebaut -- lang lebe LVM über 5 eingebaute Festplatten, einfach eine herausnehmen ist eher als Experiment anzusehen. USB-Stick + Live-System + .....? Ach vergiss es einfach.

Good old Legacy System (tm): Papier und Stift. Funktioniert immer. Wer braucht schon Mainframes, SOA und RoR ;)