Tag Archive for 'programming'

Cannot construct the infinite type.

Nach 1000 Jahren

0

Gerade schreibe ich einen Email-Adressen-Validierer (klingt irgendwie nach den tollen Geräten aus Star Trek Classics) für Dropping Knowledge und teste ihn an den knapp 20 000 Adressen, die wir da so in der Datenbank haben. Dabei ist mir aufgefallen, daß ich ein paar (vor allem vierstellige) TLDs ich noch nie vorher gesehen habe: .aero .name

Man lernt halt nie aus…

Ray Tracing

0

Im Rahmen der Vorlesung Computer Graphics, die ich in diesem Semester besuche, muß ich einen Ray Tracer bauen. Eigentlich sollte ich “müssen” durch “dürfen” ersetzen, da ich schon immer mal etwas programmieren wollte, das mit Grafik zu tun hat. Zwar dürfte das ähnlich aufwendig werden, wie seiner Zeit der Compiler. Aber mit ein wenig mehr Disziplin wird das vielleicht nicht ganz sooo stressig werden. Der Vorteil diesmal ist, daß man den Ray Tracer mit den Übungen nach und nach aufbaut. Außerdem muß der bis Weihnachten fertig sein, so komme ich auch nicht in Konflikt mit Klausuren. Ein netter Anreiz bei der ganzen Geschichte ist die sogenannte Rendering Competition. Neben dem Ray Tracer muß man auch ein gerendertes Bild abgeben, daß die ganze Effekte zeigt, die man eingebaut hat. Alle Bilder werden dann neben technischen Aspekten auch nach dem “künstlerischen Anspruch” bewertet. Da muß ich mir was anständiges einfallen lassen!

Building war

0

Es gab mal diesen Witz mit dem netten Compiler-Tool make, der mittlerweile nicht mehr so schön funktioniert. Etwas recht ähnliches ist mir neulich bei ant aufgefallen, dem Java-Pendant zu make, im Zusammenhang mit Tomcats Web Archive Format.

[war] Building war: /workspace/ll/livinglibrary.war

Ist zwar nicht mal halb so lustig, aber ein schöner Gegensatz zu make love und leider wohl auch zeitgemäßer…

Letztes Update

1

Gerade habe ich ein letztes Mal vor dem Live-Termin die Ontologie ins CVS eingecheckt. Ich bin fix und fertig, aber wenigstens kann ich jetzt für ein paar Stunden schlafen gehen, bevor morgen um 8 die Living Library online geht. Bin schwer gespannt, ob das morgen alles läut. Gute Nacht!

Archiv ade

0

Heute mußte ich lernen, daß es auch für Programmierer eine Art Berufsrisiko gibt. Nämlich wenn man jahrelang an einer Applikation gearbeitet hat und man dann erfahren muß, daß diese nicht mehr gebraucht und erst recht nicht veröffentlicht wird. Von November 2004 bis April 2006 habe ich am sogenannten Archiv für “dropping knowledge” gearbeitet und einen Prototypen entwickelt. Für diverse Präsentationen dieses Prototypen habe ich mir immer wieder mal Nächte und ganze Wochenenden um die Ohren geschlagen, damit neue Features in letzter Minute eingebaut waren.

Doch dieses Archiv wird nicht mehr gebraucht, man nutzt die Funktionalität der Living Library, um es zu emulieren. Und irgendwie stimmt mich das doch ein wenig mulmig. Nicht nur wegen der ganzen Arbeit, die praktisch umsonst war. Man hat ja auch einiges an Überlegung darein gesteckt, wie man die ganzen Features möglichst elegant einbaut, welche Packages noch einen Tick mehr Performance bringen, etc. Naja, jetzt werde ich morgen mal die Software vom Server nehmen und dann wandert das Archiv ins Archiv.

a ↑ b

0

Das ist der Pfeil-Operator der Informatiker-Legende Donald Knuth. Die Idee dahinter ist, daß arithmetische Operationen wie Multiplikation und Potenzierung verkürzte Schreibweisen sind, also a*3 = a+a+a und a3 = a*a*a usw.

Der Pfeil-Operator macht im Prinzip nichts anderes als das. a ↑↑ 3 = aaa. Aber das wäre viel zu einfach! Daher gibt es noch die Möglichkeit, da ein wenig Rekursion reinzubringen. Man kann nämlich mehrere Pfeil hintereinanderschreiben, also etwa a ↑↑↑ 3 = a ↑↑ a ↑↑ a = …

Und dieses Zeugs darf ich jetzt in meinen Compiler einbauen :-D

Changeset 30

0

Mein erstes switch-Statement hat gerade fehlerfrei compiliert! Oh Mann, das ist soo cool, wie aus einem kleinen sinnlosen Programm richtiger Assembler-Code entsteht. Zwar ist es für die meisten nicht gerade erhellend, aber ich muß das einfach posten :-)

# CS 561 : Compiler Construction
# Summer 2006
# SPIM S20 MIPS simulator.
# MIPS code for test/switch.c

.globl main
main:
addu $s7, $0, $ra
addi $tt0, $0, 3
addi $s0, $0, 4
la $s2, jt_0

# handle switch value not in interval
slt $s2, $tt0, $zero
bne $s2, $0, .switch_escape_2
slt $s2, $tt0, $s0
beq $s2, $0, .switch_escape_2

# switch performed by using jump table
add $s0, $tt0, $tt0
add $s0, $s0, $s0
add $s0, $s0, $s2
lw $s2, 0($s0)
jr $s2

L0:
addi $tt0, $0, 0
j .switch_escape_2
L1:
addi $tt0, $0, 2
j .switch_escape_2
L2:
addi $tt0, $0, 1
j .switch_escape_2
L3:
addi $tt0, $0, 0
j .switch_escape_2

.switch_escape_2:
addu $ra, $0, $s7
jr $ra
add $0, $0, $0

.data
jt_0: .word L0, L1, L2, L3

Und obwohl es immer noch ziemlich kompliziert ist, macht es im Moment sogar Spaß.

Lernerei

0

Langsam geht mir diese Lernerei für die Compiler Construction-Klausur ziemlich auf den Keks. Eigentlich ist ja die Klausur nicht das Entscheidende, sondern daß es danach munter weitergeht mit Uni-Streß. Am Dienstag ist nicht nur Klausur, sondern auch Abgabe für das Differential Equations-Übungsblatt, am Donnertag ist dann das Übungsblatt für Compiler Construction dran und am Sonntag muß die Code Generation für den Compiler stehen.

In solchen Zeiten fallen einem gleich tausend Dinge ein, die man lieber täte, auch wenn sie teilweise völlig überflüssig sind. Unter so “sinnvolle” Sachen wie mehr Zeit mit Liza oder Freunden zu verbringen, ins Kino zu gehen oder einfach nochmal ein Buch zu lesen, mischt sich dann so Zeugs wie AJAX und JavaScript lernen oder das Blog umbauen. JavaScript ist eine Programmiersprache, die eigentlich immer verabscheut habe und jetzt wäre ich sogar bereit sie zu LERNEN. Was Klausuren so alles mit einem anstellen können…

Cocoa

0

Während die Skripte für mein Machine Translation Seminar laufen (was SEHR lange dauern wird), will ich die Zeit nutzen und mir Cocoa ein wenig näher ansehen. Cocoa heißt die API in der man Programme für Mac OS X schreibt. Das ganze ist wohl in Objective-C implementiert, das soweit ich weiß eine Art Zwischending zwischen C und C++ ist. Allerdings gibt es auch eine Java-Variante von Cocoa, aber wenn man sich schon was neues beibringt, dann auch richtig ;-) Auf jeden Fall werde ich mir noch ein paar Seiten auf O’Reillys MacDevCenter ansehen. Bin ja mal gespannt, was mich da erwartet.




Flickr

RSS
Der Boss singt mit einem kleinen Jungen aus dem PublikumBoss-PanoramaDer Boss!DarkoDarko

Twitter

    digg