go lang

January 31st, 2010

Yesterday I decided to learn a new programming language. My choice was the programming language “go“. The reason is the announcement that this language should be included in the gcc. So I will report the next time a little bit about my experiences.

The installation was completed thanks to a good description in 15 minutes. One problem I had when compiling. You have the locale set to “en_US” during the compilation:

$ cd $GOROOT/src
$ LANG=en_US ./all.bash

5 minutes later, the “hello world” ran.

In the directory $GOROOT/misc/kate,  a file go.xml can be found for the syntax highlighting in kate. This file must be copied into the directory ~/.kde4/share/apps/katepart/syntax/.

Help Krita..

December 4th, 2009

… and donate. I did it. :)

In meinem letzten Post habe ich beschrieben, das Delegation für den Benutzer einer Klasse angenehm ist und das wir dies auch im realen Leben schätzen. Heute möchte ich kurz beschreiben wie sich das Einhalten des Gesetzes von Demeter auf das Schreiben von Unit-Tests und das Benutzen meiner Implementierungen auswirkt. Dazu habe ich das Modell um Implementierungen erweitert:

lod overview 1

Read the rest of this entry »

Gesetz von Demeter im Alltag

November 19th, 2009

In den letzten zwei Monaten hatte ich im Umfeld der Software-Entwicklung sehr viel dieser “AHA”-Effekte. Da das Gehirn neue Erkenntnisse mit dem Ausschütten von Glückshormonen belohnt, war es eine sehr gute Zeit für mich. :)

Als heute  morgen alle noch bei Kaffee in unserem Pausenraum sassen, habe ich ein speziellen Teil unseres Domain Modells an die dort hängende Tafel gemalt. Ich wollte allen mitteilen, auf welch schönes Design wir gestern für einen Teil unseres Domain Modells gekommen waren. Insbesondere wollte ich auch aufzeigen, wie elegant eine Lösung werden kann, wenn man sich an das Gesetzt von Demeter hält. Dabei haben Jan und ich nicht mal an das Gesetz gedacht, als wir die Schnittstellen definiert haben. Es ist sozusagen “einfach entstanden”.

Hier ein leicht abgeändertes Beispiel:

lod 1

Read the rest of this entry »

Letztes Wochenende haben uns Freunde in Adelboden besucht und wir sind zusammen mit der Seilbahn auf die Engstligenalp gefahren.

Engstligenalp mit Wildstrubel

Engstligenalp mit Wildstrubel

Read the rest of this entry »

Spring Greenpages mit Teneo

September 29th, 2009

Beim SpringSource® dm Server™ ist ein Beispiel dabei, welches Greenpages heisst. Vor ein paar Wochen durfte ich auf Arbeit mal ausprobieren, ob Teneo mit dem dm-Server läuft. Also habe ich mir das Beispiel von SpringSource geschnappt und die Sache angeschaut.

Es hat funktioniert!

Leider habe ich erst heute Zeit gefunden, den Source auf bitbucket zu stellen. Es hat noch hässliche Sachen drin.  Mir ist es in der Klasse TeneoDirectory zum Beispiel nicht gelungen, die Transaktionen deklartiv einzubauen. Ich hole jetzt von der EntityManagerFactory einen EntityManager und von dort die Transaktion. Anders habe ich es einfach nicht hinbekommen… und irgendwann war die Zeit zu Ende.

Wenn jemand eine andere Lösung hat, bitte unbedingt melden.

Letzten Sonntag war ich beim Alpinwandern im schönen Glarnerland. Früh am Morgen bin ich mit dem Zug von Zürich nach Näfels gefahren. Mein Ziel war es die Etappe 44 “Vom Rautispitz geg’ den Wiggis zu” aus “Alpinwandern, Zentralschweiz – Glarus – Alpstein” von Remo Kundert und Marco Volken zu schaffen. Die Wanderung ist mit 7,5 Stunden beschrieben und startet im Oberseetal.

In Näfels angekommen musste ich aber leider feststellen das kein Taxi-Bus da war und sich auch nicht organisieren lies.  Also habe ich mich entschlossen die 2 zusätzlichen Stunden zum Obersee auch gleich noch dazuzupacken, da ich mir einen grosszügigen Zeitpuffer von eben diesen 2 Stunden gelassen hatte.

Angekommen am Obersee

Angekommen am Obersee

Read the rest of this entry »

Repository von SpringSource

August 19th, 2009

Bei meinem letzten Eintrag habe ich noch ein S3-Repository von SpringSource für das Auflösen der Abhängigkeiten zum SpringFramework 3.0.0.M4 benutzt. Ich habe noch einen Ort gefunden in dem die Jar’s liegen:

SpringSource Enterprise Bundle Repository

Für OSGi-Liebhaber ist es sicherlich nett, dass die Jar’s dort alle OSGi-ready sind.

Ich programmiere gerade eine kleine Web-Applikation und möchte dazu die neuen REST-Features vom Spring-Framework benutzen. Bis gestern habe ich mir dazu in Netbeans ein Webprojekt gebaut und dann ganz artig alle notwendigen Bibos von Hand dem Projekt hinzugefügt. Gestern wurde nun der Milestone 4 von Spring 3.0.0 veröffentlicht und ich wollte mir nicht noch einmal die Arbeit machen.
Read the rest of this entry »

Kiental

July 12th, 2009

Es ist zwar schon wieder zwei Wochen her. Wir waren wieder einmal in den Bergen. Im Kiental – auf der Griesalp und geschlafen haben wir auf der Blüemlisalp.

Blüemlisalp

Blüemlisalp

Read the rest of this entry »

Eclipse TPTP und Gentoo

July 2nd, 2009

Wenn beim Starten einer Profiling-Session unter Eclipse 3.4.1 mit TPTP auf einem Gentoo-System der Fehler IWAT0435E auftaucht (Details hier), dann sollte man mal die alte libstdc installieren:

emerge sys-libs/lib-compat

Eclipse neu starten und schon kann es losgehen…

*grübel* Benutzt noch jemand 3.4.1? Ausser mir meine ich ;)

Tagebucheintrag:

Letzte Woche war ich für einen Tag bei einem Kunden in Döbeln (Sachsen).

Rathaus Döbeln

Thema des Workshops war ob einen nackten Swing-Client oder eine RCP-Applikation mit Netbeans bauen.  Schlussendlich haben mehr Argumente dafür gesprochen einen Swing-Client zu bauen.

Frühling in Adelboden

June 6th, 2009

Wir waren in den letzten zwei Wochen immer am Wochenende in Adelboden. Und es ist im Frühling schön dort:

dsc_00821

Blick in Richtung Lohner

Read the rest of this entry »

Ich komme immer wieder durcheinander, wie die Streams eines externen Prozesses der aus Java gestartet wird (z.B. mit java.lang.ProcessBuilder) auf die Streams in Java abgebildet werden. Hier also mein Spickzettel:

io-map-process-java1

Letztes Wochenende habe ich nun endlich meinen Hetzner-Server von Debian 4 auf Debian 5 umgestellt. Zur Administration der Domains benutze ich Virtualmin und dies sollte natürlich dann auch noch laufen. Eine Anleitung war bei www.virtualmin.com zu finden. Allerdings stimmte da die Reihenfolge in welcher man die Pakete installieren sollte noch nicht ganz. Nachdem ich einen Bug bei virtualmin.com aufgemacht hatte, war das Problem aber zusammen mit den Jungs von virtualmin.com (Jamie Cameron und Joe Cooper) schnell gelöst. Wirklich schneller und kompetenter Support – Spitzenklasse!

Nach dem Upgrade konnte ich mich dann aber nicht via POP3 auf dem Mail-Server einloggen. Ich musste dazu noch die Konfigurationsdatei (/etc/default/saslauthd) von saslauthd anpassen:

Die Zeile

START=no

auf

START=yes

ändern und den richten Pfad eintragen. Von:

OPTIONS="-c -m /var/run/saslauthd"

auf:

OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

Dann die Services nochmal neu starten

# /etc/init.d/saslauthd restart
# /etc/init.d/postfix restart

Und schon funktionierte die Anmeldung auf dem POP3 wieder.

Oberlausitz 2009

May 3rd, 2009

Vor einer Woche sind wir aus der Oberlausitz zurückgekommen. Ich bin dort aufgewachesen und so aller zwei Jahre fahren wir Verwandte und Freunde besuchen.

Geschlafen haben wir in einer Ferienwohnung im Bischof Benno Haus im Schmochtitz bei Bautzen. Sehr grosse Wohnung, schöne Häuser mit einem wunderschönen kleinen Park

Park bei Bischof Benno Haus

und weiten Feldern ringsherum. Wirklich schick. Read the rest of this entry »

Nun, Künstler und Auftragsarbeiten ist so eine Sache… Aber nicht nur der Punkt war an meinem letzten Blog-Eintrag ein wenig “schräg”.  :)

Unter der Annahme das der Auftraggeber weiss was er möchte, geht es eigentlich bei der Anforderungsanalyse darum, dass der Auftragnehmer versteht was der Kunde eigentlich möchte. D.h. der Künstler – um beim Beispiel zu bleiben – muss die grobe Beschreibung lesen und die richtigen Fragen stellen. Er muss dem Bildliebhaber z.B. fragen: “Ist es okay, wenn das Bild kubistisch ist?”. Wenn das nicht klar ist, dann muss man sich darüber unterhalten…

Was hat die Anforderungsanalyse oder besser Anforderungserhebung in der Softwareentwicklung mit einem Künstler zu tun?

Will man ein Softwaresystem bauen, so muss man wissen was man da eigentlich bauen möchte. Logisch, oder? Also notiert man sich die Anforderungen. Doch die Frage ist: Wie genau muss dies gemacht werden?

Read the rest of this entry »

Heute hatte ich eine Diskussion über die Art und Weise wie man in Java dokumentiert.  Was sind gute Kommentare? Was muss dokumentiert werden? Was kann man weglassen?

Ich finde zu diesem Thema die Meinungen von Robert C. Martin gut, die er in seinem Buch Clean Code: A Handbook of Agile Software Craftmanship. Prentice Hall PTR. 2008 unter dem Kapitel 4 “Comments” vertritt.

Ein paar Auszüge:

Seite 63:

It is just plain silly to have a rule that says that every function must have a javadoc, or every variable must have a comment. Comments like this just clutter up the code, propagate lies, and lend to general confusion and disorganisation.

Seite 64f.:

And then there’s this paragon of redundancy:

/**
 * Returns the day of the month.
 *
 * @return the day of the month.
 */
 public int getDayOfMonth() {
    return dayOfMonth;
 }

Seite 71:

As useful as javadocs are for public API’s, they are anathema to code that is not intended for public consumption.

Auch wenn ich hier Auszüge aus dem Kapitel “Bad Comments” bringe, so halte ich Kommentare und Dokumentation zum Job eines Softwareentwicklers. Öffentliche Methoden müssen eine nützliche Dokumentation haben (Bitte aber nicht wie in getDayOfMonth ;) ). Auch macht man sich oder seinen “Nachfolgern” oft das Leben wesentlich leichter seine Intention zu erklären, warum etwas genau so und nicht anders gemacht hat. Alles im Buch beschriebene möchte ich nicht hier wiedergeben. Einfach lesen.

Da aber Softwareentwicklung in den meisten Fällen im Team erfolgt, sollte man sich aber auf Regeln einigen und diese dann auch einhalten.

KDE 4.2

January 27th, 2009

Jo, Jo, Jo… es ist vollbracht. KDE 4.2 ist erschienen. Hier auf meinem Gentoo-Arbeitsrechner benutze ich zwar immernoch 3.5.9 aber ich freue mich schon sehr. Und  meine Frau erst :) Sie musste jetzt eine Zeit lang mit 4.1 arbeiten (ich habe es ihr einfach auf den Rechner geknallt) und sie fand die 3.5.x-Serie eigentlich lustiger.

Morgen bin ich übrigens auf der Züricher KDE 4.2 Release Party. Sogar Aaron Joseph Seigo wird da sein.