Computerlogbuch

Friday, 21.04.2006

Der Geburtstagsdekoder


 Jakobs Torte.

Auf der Postkarte stand:

Lieber Wolfgang!

766F6964206D61696E2829
7B
416C6C657320477574653B
7A756D203B
47656275727473746167213B
7D3B

Viel Spaß beim decodieren
wünschen Dir

Rebekka & Gregor

Selbstredend, dass ich das nicht von Hand machen würde, sondern lieber dreimal so lange damit verbringe, ein cleveres Programm zu schreiben, was es für mich tut:

class BirthdayDecoder
    @@encoded = "766F6964206D61696E28297B416C6C657320477574653B7A756D203B47656275727473746167213B7D3B"

    def brute_force()
        decoded = []

        i = 0
        while i < @@encoded.length do
            char = @@encoded[i..i+1]
            decoded << char.to_i(16)
            i += 2
        end

        decoded.pack("c*")
    end

    def clever()
        @@encoded.unpack("a2" * (@@encoded.length / 2)).map { |c| c.to_i(16) }.pack("c*")
    end
end

Das Ergebnis ist:

irb(main):001:0> require "gregor"
=> true
irb(main):002:0> puts BirthdayDecoder.new.clever
=> "void main(){Alles Gute;zum ;Geburtstag!;};"
# 21.04.2006 19:28 · Antworten (1) · Tag

Thursday, 20.04.2006

Das eXPeriment: Startschuss


 Lava-Umschalter.

Man nehme eine Arbeitsgruppe technische Informatik (Meta-Cluster), eine Arbeitsgruppe Werkstoffwissenschaften (erkaltende Metallschmelzen), ein paar an Softwareentwicklung interessierte und motivierte Leute, und heraus kommt: Der Extreme Programming Selbstversuch: Was ist eigentlich dran an der Begeisterung, funktioniert Pair Programming wirklich und wie fühlt es sich an, kann man tatsächlich durch kurze Iterationszyklen eine so gute Rückkopplung erreichen, dass man nach einiger Zeit treffsichere Aufwandsabschätzungen hinbekommt, und vieles mehr. Wir sind zu fünft, wollen uns zweimal pro Woche zwei Stunden treffen (plus ein extra Planungstreffen zu Beginn jeder Iteration). Das Semester hat 14 Wochen, die wir voraussichtlich in 4 Iterationen á 3 Wochen einteilen werden. Einen Umschalter1 für Lava-Lampen und eine Pinnwand für Story-Kärtchen haben wir auch schon ;-).

Unsere Aufgabe ist die parallele Simulation und spätere Visualisierung von Dendritenbildung in erkaltender Metallschmelze, die in einer zweiten Stufe mit einem noch zu erforschenden Load-Balancing-Algorithmus über mehrere Cluster verteilt wird, unter der Berücksichtigung der Topologie sowohl der beteiligten Rechnerknoten als auch des Netzwerks. Kurz gesagt: Wir wollen bunte Bilder!

Und heute ging es los, mit der “Zero-Functionality Iteration”, um überhaupt mal einen Fuß auf den Boden bzw. unsere Laptops ins Uni-Netz zu bekommen, das Unit-Testing Framework zum Kompilieren zu bringen, und das Ganze an die Continuous Integration (ich sagte doch, Lava-Lampen!) anzuschließen. Das dauert immer länger als man denkt, und so hat unser Termin heute nicht ganz gereicht, um alles so ans Laufen zu kriegen, wie wir es gerne hätten, aber der Start war gut, und ich bin sehr gespannt, was wir so alles entdecken werden.

1 nochmals herzlichen Dank an Gregor Renka fürs Zaubern mit Lötkolben und Mikrocontroller.

# 20.04.2006 11:02 · Antworten · Computer

Tuesday, 04.04.2006

Internet Explorer und der Pinguin


 Internet Explorer unter Linux. In groß (192 KB)

Gerüchte darüber, dass man den Internet Explorer unter Wine laufen lassen kann, gibt es zur Genüge. Meine Versuche endeten meistens mit irgendeinem mehr oder weniger obskuren page fault oder ähnlichen Nettigkeiten – und zwar noch bevor ich überhaupt in die Nähe gekommen war, den MSIE überhaupt zu installieren.

Dank ies4linux ist das alles überhaupt kein Problem mehr. Dieses Hilfsprogramm funktioniert nach dem einfachen Muster Runterladen, IE-Version wählen, auf dessen Download warten, fertig:

wosc@nautis:~>ie6 http://wosc.de/log/
fixme:actctx:CreateActCtxW stub!
fixme:actctx:CreateActCtxW stub!
err:shell:ReadCabinetState Initializing shell cabinet settings
fixme:actctx:ActivateActCtx stub!
[...]

Jetzt kann ich endlich Webseiten im MSIE ohne nervtötendes Windows-Booten testen.

# 04.04.2006 08:37 · Antworten · Computer