Sunday, August 28, 2005

Bücherregal

Bücher die ich momentan lese:

Structure and Interpretation of Computer Programs; Abelson, SussmanCompilerbau Teil 1;Aho, Sethi, Ullmann

Language habe ich jetzt endlich nach zwei Semestern durchgelesen. Jetzt kommen Mathe-Skripte und Bücher dran.

Tuesday, August 09, 2005

Katzen-Content

Mein erster Katzen-Content:

Monday, August 08, 2005

Die Wand

Die Wand aus Gegen die Wand

Gestern den Film gesehen und bei dem Praktikantenbericht gedacht “Die Wand kennst du doch”. In der nähe ist eine Katine, die ich aber nicht empfehlen kann. Am Berliner Tor gibt es mehr Auswahl für weniger Geld.

Monday, August 01, 2005

Dosierhilfen

Weil man mit Google die E-Mail Adresse für Dosierhilfen von Unilever (Sunil, Coral) nicht findet:

ud.dosierhilfen@unilever.com

Nicht vergessen die eigene Adresse anzugeben, sonst gibts kein Päckchen

Wednesday, July 27, 2005

Parser-Generator

Am Samstag habe ich mir überlegt habe wie ein Fragebogen aufgebaut sein soll und mir dazu eine CF-Grammatik aufgeschrieben, dabei kam mir die Idee einen Parser dafür zu schreiben. Ich habe zuerst die Grammatik in Lisp notiert, wollte dann anfangen die Funktionen zu schreiben, bis mir auffiel das ich ja auch die Grammatik selber parsen und einen Parser-Generator schreiben kann. Jetzt ist das Ding fertig und scheint zu funktionieren, ich habe es noch nicht mit der Fragebogen-Grammatik getestet.

Die Fragebogen-Grammatik:

   ((fragebogen  (+ gruppe))
    (gruppe      ueberschrift (+ element))
    (element     (+ (/ text area checkboxen radios)) frage)
    (checkboxen  (+ checkbox antwort))
    (radios      (+ radio antwort))
    (ueberschrift "<h2>" (+ zeichen) "</h2>")
    (text "<input type=\"text\" name=\"" (+ zeichen) "\">")
    (area "<textarea name=\"" (+ zeichen) "\"></textarea>")
    (frage (+ zeichen) "?")
    (radio "<input type=\"radio\" name=\"" (+ zeichen) "\" value=\"" (+ zeichen) "\">")
    (checkbox "<input type=\"checkbox\" name=\"" (+ zeichen) "\" value=\"" (+ zeichen) "\">")
    (antwort (+ zeichen))
    (zeichen (/ "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
                "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
                "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"
                "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
                "Ä" "Ö" "Ü"
                "ä" "ö" "ü"
                "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
                "ß" "-"
                "\n" "\t")))

Das Herzstück des Parser-Generators:

(defmacro parse-production (production)
  (let ((results
         (loop for thing in production
            collect
            (if (listp thing)
                (cond ((eql '/ (car thing))
                       `(parse/ ,(cdr thing)))
                      ((eql '+ (car thing))
                       `(parse+ ,(cdr thing)))
                      ((eql '* (car thing))
                       `(parse* ,(cdr thing)))
                      (t
                       `(parse-production ,thing)))
                (cond ((stringp thing)
                       `(literal stream ,thing))
                      ((atom thing)
                       `(,thing stream)))))))
    (if (= (list-length production) 1)
        (car results)
        `(progn ,@results))))

Code: grammatik.lisp

php-mode.el

Jetzt mit rudimentärer Unterstützung zum anzeigen der Signatur. klingt blöd. C-. um die Parameter/Arglist eine Funktion zu zeigen.

php-mode.el

Tuesday, July 26, 2005

Social Problems of a Lisper

IncreduLISP versucht LISP (Common Lisp) zu verbessern, und fängt an mit einer neuen Syntax. Klar Klammern sind mist, nicht ohne Grund steht LISP für Lots of Irritating Superflous Parentheses und wenn wir schon mal dabei sind, die meisten Funktionen sind viel zu lang, also def statt defun (und was ist mit defclass, defstruct? Egal unwichtige Details), dazu noch ein ~ mit einem magischen, intuitivem N das die nächsten N Chunks einliest.

Aber weil die neue Syntax für Listen etwas schwer zu lesen sein kann (a:b,c ist (a b c) aber a:b:c,d ist nicht (a (b c)) sondern (a (b) c). Korrektur: Zu ((a)) gibt es kein mögliche Übersetzung ((a)) == a:: was wahrscheinlich angenehmer für Leute ist die von Rechts nach Links lesen) Sind Klammern trotzdem noch erlaubt. Das ganze ist nur eine alternative Syntax.

Aber das ganze ist auch egal, denn er weiß selber nicht was er will:

A major goal of this language is to have an incredibly terse syntax. It should be well-nigh unreadable: that is the point.
…
I would not advise using it that much in real programming.

Meiner meinung nach ist dieser sehr “smarte” Mensch einfach nur ein Troll, bleibt nur noch zu sagen:

Don't feed the troll

Saturday, July 23, 2005

Pornographisch Programmieren

J. McCarthy Zitate aus „LISP - Anwendungsgebiete, Grundbegriffe, Geschichte“ von H. Stoyan

zu NIL und NULL:

Außer der Ermutigung pornographischer Programmierung hat die Zuordnung einer speziellen Bedeutung zur Adresse 0 in allen darauffolgenden Implementationen Schwierigkeiten gemacht

Zu S. Russels Entscheidung EVAL zu implementieren:

Steve Russel sagte, ‚Gib mal her, warum sollte ich nicht dieses EVAL programmieren … ? ’, doch ich antwortete ihm, ‚Ho ho, du verwechselst Theorie und Praxis, denn dieses EVAL ist zum Lesen gedacht und nicht fürs Rechnen …’

Ich verstehe das mit pornographischer Programmierung zwar nicht, aber dennoch sind beide Zitate Amüsant. Zu EVAL sei noch gesagt das es damals nur eine Definition auf Papier und keinen Compiler gab (u.a. weil Compilerbau noch kaum erforscht war)

Friday, July 22, 2005

Bücherregal

Bücher die ich momentan lese:

Structure and Interpretation of Computer Programs; Abelson, SussmanLanguage; BloomfieldCompilerbau Teil 1;Aho, Sethi, Ullmann

Useless Trivia: Bücherrücken werden in englischsprachigen Ländern immer von oben nach Unten beschriftet, in Deutschland so wie es einem gefällt.

Friday, July 15, 2005

Schöne Ferien

Die letzten Tage waren etwas stressig, aber jetzt ist's schön. Mein dritter Antrag ist genehmigt worden, ganz ohne Sprachkurse versteht sich. Damit konnte ich diese Woche auch die Prüfungen in Finnougristik machen, die ich auch erfreulicherweise (trotz Civ 3 spielen) bestanden habe. Nach einer M2/3 Prüfung, die ich für September plane, ist dann auch das Thema Vordiplom abgehakt.

Thursday, June 23, 2005

Star Wars I-III

Das ich die Filme habe ist zwar schon länger her, aber man braucht ja Zeit zum Nachdenken.

  1. Anankin mochte ich nie, schon als Kind war er ein neunmalkluger (eigenen Roboter gebaut)
  2. Auch als er älter wurde, war er noch immer ein Kind (Ich will aber …)
  3. Darth Vader aus IV-VI und der aus III sind für mich getrennte Personen. Die Vorstellung das hinter dem „coolen” Vader, der mysteriös und furchteinflößend ist, die dickköpfige Nervensäge Anakin steckt ist schrecklich.
  4. Luke ist cooler als Anakin, denn er kämpft als Land-Ei gegen einen übermächtigen Vader und hat zudem mehr Respekt vor seinen Meistern.
  5. Han Solo & Leia Organa & Luke Skywalker sind ein Trio in dem alle wichtig und interessant sind. Das Duo Obi-wan Kenobi und Anakin Skywalker aus II & III ist kein wirkliches.

Sunday, June 12, 2005

Es war kalt

Altona Bhf

… Texte und Gesang gut, Bier auch kalt und der Kuchen wie immer lecker.

Thursday, June 09, 2005

tai eli vai

Die drei oder im Finnischen: tai vai und eli. Während ich mir eli noch gut merken kann verwechsle ich gerne tai und vai.

tai: Haluatko kahvia tai teetä? ‘Möchtest du Kaffee oder Tee?’ tai = entweder oder, logisches XOR

vai: Saatko kahvian kanssa sokerin vai kerran? ‘Bekommst du Kaffee mit Zucker oder Milch’ vai = 1 oder 2 oder beides, logisches OR

eli: Tämä on ruusu eli kukka ‘Dies ist eine Rose oder/bzw. eine Blume’

Monday, June 06, 2005

php-show-arglist

Improving the support for php in emacs, shows the argument list for a function in the minibuffer.

php-get-pattern can be found in php-mode.el

(defun php-show-arglist ()
  (interactive)
  (let* ((tagname (php-get-pattern))
         (buf (find-tag-noselect tagname nil nil))
         arglist)
    (save-excursion
      (set-buffer buf)
      (goto-char (point-min))
      (when (re-search-forward
             (format "function[ \t]+%s[ \t]*(\\([^{]*\\))" tagname)
             nil t)
        (setq arglist (buffer-substring-no-properties
                       (match-beginning 1) (match-end 1)))))
    (if arglist
        (message "Arglist for %s: %s" tagname arglist)
        (message "unknown function: %s" tagname))))

Sunday, June 05, 2005

Weiße Streifen

Darauf freue ich mich schon. Es klingt stark anders als die anderen Alben, aber es finden sich auch Songs nach vertrauter Art auf dem Album.

Abusing Amazon images

Tuesday, May 17, 2005

verpennt

„Man, scheiße, wenn ich noch weiter döse, dann verpenn ich noch alles.“ Dachte ich heute morgen und sprang auf, da klingelte der Wecker. Dabei war ich mir sicher den heute schon mal ausgestellt und mich wieder ins Bett begeben zu haben.

Saturday, May 14, 2005

Burnqvist

Hm, Blogger.com jetzt wohl auch Deutsch. Das macht es für Karsten leichter, der jetzt auch angefangen hat zu bloggen. Herzlich willkommen in der Blogosphäre.

Friday, April 29, 2005

cult7: Deine Spuren im Sand

  1. Wo versorgst Du Dich mit dem täglichen Lacher?
    pvponline, Penny Arcade Scarygoround Questionable Content Diesel Sweeties Waspsisquare
  2. … und wo, mit der täglichen Portion Nachrichten?
    Spiegel
  3. Jugendsünden hervor holen: Welche Seite war Deine erste selbstgemachte Internet-Seite?
    Die gibt es zum Glück nicht mehr. Hatte ein ganz tolles Layout mit einem Lila/Gelben Menü mit mouseover und auf einigen Seiten war auch eines der beliebten "Under Construction"-Männchen zu sehen.
  4. Wer hat Dich zum ersten Mal ins Internet gebracht?
    T-Online mit dem Rechner meines Vaters.
  5. Welche Community besuchst Du täglich?
    FB18 Das studentische Forum meines Fachbereiches an der Uni.
  6. Auf welche Website kannst Du nicht mehr verzichten?
    Die ganzen Weblogs die ich lese.
  7. Und welche Website willst Du Deinen Besuchern sonst noch empfehlen?
    Lambda The Ultimate, eine kleine aber feine Seite über Programmiersprachen/-paradigmen.

von cult 7

Sunday, April 24, 2005

Pen & Paper

Eines der nützlichen Dinge, die ich im letzten Sommersemester bei den Prüfungsvorbereitungen gelernt habe, ist mit Papier und Bleistift zu arbeiten. Daraus habe ich mir die Regel abgeleitet, immer genug Bleistifte und Schmierpapier rumliegen zu haben.

Für mich haben Papier und Bleistift (P&B) den Vorteil, daß ich das Gefühl habe, damit verschwenderisch umgehen zu können und mich so mehr auf die Arbeit konzentrieren kann. Da ich die meisten Sachen um Lesen ausdrucke, habe ich sehr viel Papier rumliegen. Bleistifte sind nicht sehr teuer, können nicht auslaufen, schmieren und mit dem Radiergummi, obwohl ich es eher selten benutze und stattdessen durchstreiche, kann man Fehler korrigieren. Beides ist im Gegensatz zu Computer & Notebook leicht und mobil.

Aufsätze schreibe und überarbeite ich auch mit P & B. Erst schreibe ich einen Teil auf Papier, tippe es ab und drucke es dann aus. Die gedruckte Form ist leichter zu lesen, ich kann meine Fehler besser finden, weil es zwar der gleiche Text ist aber in einer anderen Form und beim Abtippen muß ich den Text nochmal lesen und kann schon ein paar Sachen revidieren. Den gedruckten Text lese ich dann nochmal durch, korrigiere Rechtschreibfehler im Text, verbessere den Stil und schreibe auf der Rückseite Ergänzungen bzw. weiter.

Inspiriert zu diesem Text hat mich das Weblog 43Folders das vor allem für den Hipster PDA bekannt ist.