Archive for November, 2007

Gedicht zum 50sten

Heute hat mein Taufpate Geburtstag und ich habe dazu ein paar Zeilen verfasst. Alles Gute!

Fünfzig Jahre, eine runde Zeit,
mit Zwist und Einigkeit.
Auf diese schaust du nun zurück,
doch heute, welch ein Glück,
da wird gefeiert, das ist klar,
gibt’s Geschenke für Waldemar.

Heute ist dein Ehrentag,
ein Tag den man gerne mag.
Es füllt sich bald die Halle,
denn es kommen alle,
die Freunde, die Verwandten,
und auch die Bekannten.

Auch wir,
wünschen dir,
viel Glück und alles Gute,
auf des Lebens Route.
Und das du uns so erhalten bleibst,
und es munter bis zum Hundertsten treibst.
Doch genug der Worte,
wo bleibt die Torte?

Von Lisper zu Lisper

Eigentlich habe ich heute den ganzen Tag nur diesem Moment entgegen gesehnt. Übers Wochenende habe ich mich ein wenig in die Lektüre Pracatical Common Lisp vertieft und dabei drängten sich mir eine ganz große Frage auf:

“Was sind eigentlich Closures? Und wozu braucht man sie?

Ich weiß über Closures an sich nur soviel, dass viele sich diese in der jeweilgen Programmiersprache wünschen, die diese ja offensichtlich nicht unterstützt. :-(
Da ich leider noch kein erfahrener “Lisper” bin, wusste ich mit dem Begriff schlicht und ergreifend nichts anzufangen. Zum Glück ist unser Lehrbeauftragter ein begeisterter Lisp-Fan. (Von ihm habe ich ja auch diesen Buchtipp, Practical Common Lisp, bekommen.)
Hier muss ich an merken, dass er sehr erfreut gewirkt hatte, als ich vor knapp 2 Wochen gesagt hatte, dass ich Interesse hätte, Lisp zu lernen.

O-Ton: “Wenn Sie fragen haben sollten, kommen Sie zu mir. Das ist kein Problem.”

Und heute, nach der Vorlesung machte ich auch davon Gebrauch:

“Ich hab da mal eine Frage, aber nicht zur Programmiersprache Java, sondern zu Lisp.”

…zu besagten Closures eben. Er darauf.:

“Closures sind was ganz tolles.”

So wie ich ihn dann verstanden habe, soll man damit Funktionen überdecken können – für alle, die Fachwörter lieben: Shadowing – auch wenn diese sich in einem völlig anderen Package befinden sprich, sie befinden sich in einer anderen Übersetzungseinheit).
Bisher hab ich aber auch noch nicht wirklich die tollsten Dinge in Lisp programmiert; damit wird es wohl noch etwas daueren, bis ich den ganzen, neuen Input zum Thema Common Lisp richtig verstanden und (ver-/be-)arbeitet habe.

Und der beste Spruch zum Schluss:

“Irgendwann sieht man die Klammern nicht mehr.”

Programmierer und Compiler 2

Ich habe mal nach längerer Schaffenspause ein neues Gedicht geschrieben. Es ist das bisher längste, was ich so an Gedichten geschrieben habe (es umfasst zirka 12 1/2 DIN A4 Seiten :shock: ).
Weil es so lang ist, habe ich es diesmal nicht direkt hier gepostet, sondern es in ein PDF exportiert welches unter :arrow: Download heruntergeladen werden kann.

Viel Spaß beim Lesen.

P.S.: Für alle, die den ersten Teil noch nicht gelesen haben: :arrow: Programmierer und Compiler

Immer wieder diese Klammern

Ich komme manchmal ganz schön durcheinander, wenn ich mich in Common Lisp versuche. Ich habe mich gerade einmal durch das Kapitel functions von Practical Common Lisp gewälzt, und daraufhin schön brav meine ersten mehr oder weniger nützlichen Funktionen geschrieben.
Und das sieht dann in etwa so aus (hier: Berechnung der Fibonaccizahlen):

(defun fib (n)
   (if (< n 2)
      (return-from fib n)
          (return-from fib (+ (fib (- n 1)) (fib (- n 2))))))

Äh, die wievielte Klammer war das jetzt? :-? :?: :?: :?:
Dann hilft mir meist nur noch zählen. Sollte was nicht stimmen, wird sich der Lisp-Interpreter eh beschweren. Oh, Mann.

Ich hab es!

Ja, jetzt hab ich auch mal auf das neue openSuSE 10.3 upgedatet! Und ich bin bisher angenehm überrascht: das Design hat einen kompletten Wandel hinter sich (ich benutze das neuere Gnome Desktop). Schon das Hochfahren und Runterfahren des Systems ist deutlich schneller als im Vergleich zu 10.2.
Die Sache mit dem Geschwindigkeitszuwachs trifft auch auf den Paketmanager Yast zu und ich komme auch mal endlich in den Genuss des one-click-installs, der auf den Downloadseiten von openSuSE angeboten wird, jedoch bei meinem openSuSE 10.2 nie funktionierte, obwohl ich das Feature nachgerüstet hatte. :roll:

Datenströme

Die Frage aller Fragen: Wieviele Filehandles stellt eigentlich OpenSuSE 10.2 zur Verfügung :???:
Als braver Informatiker hab ich ja mal gelernt, dass ein Betriebssystem ja nur eine begrenzte Anzahl an Filehandles vergeben kann. (Falls das eben Geschriebene nicht stimmen sollte, wäre ich froh, wenn mich jemand diesbezüglich mal auf den neuesten Stand bringen könnte :oops: ).
Drum schnell ein kleines Java-Progrämmchen geschrieben und mal eine Weile laufen lassen.

Doch nichts passierte. Ich hab das Ganze bei 4592882 ( :!: ) erzeugten FileReader Objekten abgebrochen. Der Quelltext des Programms steht wie immer in der :arrow: Code Collection.