Computerlogbuch

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

Friday, 18.11.2005

Weizenbaum

Im Rahmen der Langen Nacht der Wissenschaften hielt der Eliza-Erfinder und Computerkritiker Joseph Weizenbaum einen Vortrag – das ließen wir uns natürlich nicht entgehen. Für seine über 80 Jahre ist Prof. Weizenbaum sehr vital und hat auch noch eine Menge Haare, die er im Pferdeschwanz zusammengebunden trägt. Er erzählte auf charmant-schnodderige Art und Weise über Computer, die ganze Wohnzimmer ausfüllten, ihre Weiterentwicklung die maßgeblich durch den Kalten Krieg vorangetrieben wurde, über schon damals kursierende Furcht vor Arbeitslosigkeit und “Sektretärinnen”, die die auf Papier einzureichenden Programme in Lochkarten übersetzten.

Zwischen diese teils mehr, teils weniger nostalgischen Geschichten mischten sich dann einiges an handfesten Thesen, zum Beispiel:

Auch wenn einiges eher banal und anderes doch ziemlich düster-apokalyptisch war, ich hatte stark den Eindruck, dass es hier um mehr geht als das Gebrabbel eines alten Mannes.

Die abschließende Fragerunde eröffnete Weizenbaum dann mit der folgenden Anekdote: “Meine achtjährige Tochter sagte einmal, ‘Daddy, wie spät ist es? Und ich will nicht wissen wie eine Uhr funktioniert!’”

# 18.11.2005 20:07 · Antworten (1) · Computer

Friday, 04.11.2005

DSLs in Ruby

Heute habe ich zu Martin Fowlers Artikel über Domain Specific Languages ein ziemlich beeindruckendes Video gesehen, in dem das vorgestellte Beispiel in Lisp umgesetzt wird. Die Ausdruckskraft ist wirklich enorm, was mich stört ist die meines Erachtens relativ schlechte Lesbarkeit von Lisp-Code. Ich habe daher spasseshalber eine Version in Ruby programmiert, einfach um es mal auszuprobieren. Da ich mich in Ruby noch nicht recht auskenne, ist das vermutlich nicht die schönste oder idiomatischste Lösung, und auch hier bin ich mit der Lesbarkeit speziell der Makro-Teile noch nicht so richtig glücklich, aber insgesamt gefällt es mir gar nicht schlecht.

# 04.11.2005 20:18 · Antworten (2) · Computer

Tuesday, 09.08.2005

Im Rechenzentrum

“Mainframes fangen erst dann an, wenn im Rechenzentrum raised floors notwendig werden.” – Christian Kauhaus

“Schwarze Computer sind einfach schneller.” – Jakob Erdmann

Von außen ist das Rechenzentrum im IBM-Labor Böblingen ein großes Schaufenster, mit allen technologischen Errungenschaften vom Transistor bis zu den aktuellsten Rechner-Modellen in Schönschrift. Innen herrscht sympathischer Umtrieb, es huschen Leute herum, ab und zu wird von links ein neuer Kühlschrank, äh, Großrechner hereingekarrt, und trotz des doppelten Bodens mit einem halben Meter Platz liegt immer noch einiges an Kabeln herum. Immerhin, so lernten wir, sind die Kabel heutzutage dünn genug, dass man nicht mehr benötigte Kabel tatsächlich entfernen kann. Früher war die Last der übrigen Kabel so groß, dass das schlicht nicht ging, und einmal im Jahr der ganze Salat rausgerissen und neu verlegt werden musste.

Der Raum ist klimatisiert, und die einzelnen Rechner haben zusätzlich ihre eigenen Kühlsysteme, dadurch ist es relativ frisch und vor allem herrscht ein ziemlicher Geräuschpegel. Unterhaltungen müssen mindestens rufend geführt werden. Aber hier sollen ja auch weniger die Menschen als vielmehr die Computer arbeiten und es angenehm haben.

Abgesehen von ein paar violetten SUN-Kisten und anderen Abweichlern, stammt das meiste der Rechentechnik von IBM selbst, und natürlich sind die Großrechner ebenso wie die Laptops – schwarz. Sie werden wissen, warum.

# 09.08.2005 10:18 · Antworten · Computer

Wednesday, 01.06.2005

Extreme Blue Bewerbertag

Die Anreise

Mit dem Bus nach Dettenhausen und von dort mit der Schönbuchbahn nach Böblingen. Hört sich einfach an, ist es im Prinzip auch, nur der Fahrkartenautomat in Dettenhausen hatte einen richtig miesen Tag: Geldkarte “wird zur Zeit nicht akzeptiert”. Münzen: hab ich keine. Geldscheine: 5er will er nicht, 10er will er nicht, und überhaupt. Die nächste Kundin hat genau so wenig Glück, aber sie hat immerhin einen 10er den er frisst – mit dessen Hilfe komme ich dann doch noch zu meiner Fahrkarte.

Der Dresscode

5 Extreme Blue Bewerber: 2x kurzes Hemd und Jeans, 1x langes Hemd und Jeans, 1x dunkler Anzug ohne Krawatte, 1x Kombination mit Krawatte (ich).
1 IBM Bewerber, der nochmal assessed werden sollte wegen Festanstellung: Anzug und Krawatte.
Ich habe mich nicht furchtbar overdressed gefühlt, also alles gut soweit.

Ach ja: 4 von den 5 kommen aus bzw. studieren in Tübingen…

Der Ablauf

Jeder hatte seinen eigenen Ablaufplan, hier ist meiner:

09:00 – 09:40 Einführung und Vorstellung von Extreme Blue Das Ding ist ein Mords-Happening
09:40 – 09:45 Vorstellung der Beobachter 6 Bewerber, 5 Beobachter: Big Blue is watching you
09:45 – 10:10 Übung: Diskussion Urlaubsplanung, und alle wollen im August wegfahren. Das ging erstaunlich schnell und unkompliziert, denn jeder zeigte sich kompromissbereit.
10:10 – 11:00 Pause Ich hatte mich innerlich auf einen total stressigen Tag eingestellt, wo es Schlag auf Schlag nur so auf einen einhagelt. Daher war ich angenehm überrascht, wie entspannt das Ganze ablief – sogar mit Pause und Butterbrezel.
11:00 – 11:50 Human Resources Interview Ein Vorstellungsgespräch. Wer sind Sie, was machen Sie? Warum zur IBM? Was tun Sie am liebsten / am ungernsten? Wo wollen Sie in zwei Jahren sein?
Über einige Dinge habe ich schlicht noch keinen so genauen Plan, das wäre aber vermutlich schon besser angekommen. Ansonsten, das sind Vollprofis, die haben das Interview sehr gut geführt.
11:50 – 12:30 Übung: Architektur (aka Buzzword Bingo!) Brainstorming zum Thema, wie können wir in unserer Abteilung, die Hochverfügbarkeitslösungen entwickelt, neue Geschäftsfelder erschließen, die sich in IBMs “on demand”-Strategie einfügen?
Ich bin erstaunt, dass wir überhaupt irgendwas an die Tafel gebracht haben. Mehr heiße Luft war selten.
12:30 – 13:30 Mittagessen Vielleicht ist es ja selektive Wahrnehmung, aber ich behaupte, in der Kantine waren bestimmt 90% Männer.
13:30 – 14:30 Fachinterview: XML Parsing auf dem Cell Prozessor In Extreme Blue gibt es mehrere Projekte, und die jeweiligen Leiter würden einen nun unter fachlichen Aspekten interviewen. Ich habe da glaub ich was missverstanden, denn was passierte war, dass der Mensch sein Projekt vorstellte und ich aufmerksam zuhörte.
14:30 – 15:30 Fachinterview: Dynamic Infrastructure in der Websphere-Umgebung Anschließend erzählte ich kurz was zu meinem Hintergrund, und … ob ich noch Fragen hätte. Vielleicht war das die Stelle, an der man hätte clever sein sollen. Ich meinte eigentlich nur, ich hätte das so weit ganz gut verstanden.
15:30 – 16:00 Übung: Präsentation 10 min Vorbereitung, 5 min Präsentation (alleine, vor den versammelten Beobachtern) über das Brainstorming vom Vormittag mit einem eigenen Schwerpunktthema. Sprich, der Inhalt ist sowieso Brot, es geht ums Präsentieren. Ich weiß, dass ich das noch nicht so besonders gut kann, ich habe mich bemüht, ein Bildchen zu malen, in der Hoffnung, das helfe. Ansonsten: Braucht man Drucker für outgesourcte Rechenzentren? (so eine der Nachfragen… ich hoffe nur, meine Antwort, “nicht wenn man nicht Druckereien Konkurrenz machen will” war nicht zu flapsig)
16:00 – 16:30 Pause Habe ich schon erwähnt, dass ich es toll fand, wie entspannt das Ganze war?
16:30 – 17:30 Fachinterview: Das virtualisierte Rechenzentrum siehe oben.
17:30 – 18:00 Übung: Projektwechsel Es gibt eine interessante Aufgabe im Nachbarprojekt, befristet, 3 Leute wollen sie haben und sollen sich nun einigen, wer hingeht. Hier zahlt es sich glaube ich deutlich aus, solche Übungen schon mal gemacht zu haben, jedenfalls hat uns der eine mit ein paar fix hervorgezauberten Argumenten ziemlich meisterlich an die Wand gespielt. Ich konnte ihm gerade noch einen Kompromiss abringen, aber die Runde ging an ihn – Respekt.
18:00 – 18:30 Abschlussgespräch Wie war’s, leben Sie noch, etc. Da wir etwas vor der Zeit waren, hab ich dann sogar die Bahn um 18:11 noch gekriegt.

Fazit

Eine sehr professionell durchgeführte, und aus meiner Sicht angenehme Veranstaltung (lies: er hat überhaupt nicht gebohrt, ich hatte es mir wesentlich schlimmer vorgestellt).

Das Ergebnis erfahren wir nächste Woche, und dann gibt es auch Gelegenheit, bei seinem Hauptbeobachter um Rückmeldung nachzufragen. Wenn ich den Platz kriege, wird es super cool und super stressig, und wenn nicht habe ich immerhin mal ein Assessment Center erlebt, und das ist auch deutlich was wert.

# 01.06.2005 09:00 · Antworten · Computer

Wednesday, 16.03.2005

Lisp steckt an

“Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.” – Eric S. Raymond

Da muss was dran sein. In meiner Studienarbeit habe ich gerade ein “dummes” Objekt in der Mache (praktisch nur Eigenschafts-Felder), das sich in einen Tab-getrennten String ausgeben soll, also einerseits die Feldnamen und andererseits die Werte. Woran ich ziemlich sofort dachte, war das hier (das Beispiel ist so gut wie korrektes Python1):

    _fieldNames = ["Timestamp", "Location"]
    def fieldNames(self):
        return "\t".join(_fieldNames)

    def fieldValues(self):
        return map(lambda field: self.field, _fieldNames)

Das ist nix besonderes, ein total normales funktionales Idiom, das aber für mich den Nagel auf den Kopf zu trefen scheint – also frisch ans Werk. Das Projekt ist in Java, daher kommt am Ende trotz Jakarta Commons Beanutils und Collections leider eine gewisse Monstrosität auf:

    private String[] _fieldNames = { "Timestamp", "Location" };

    public String fieldNames() {
        return ListUtils.joinList(getFieldNames(), "\t");
    }

    public String fieldValues() {
        Collection fieldValues = CollectionUtils.collect(Arrays.asList(_fieldNames), new ReadFieldTransformer());
        return ListUtils.joinList(fieldValues, "\t");
    }

    private class ReadFieldTransformer implements Transformer {
        public Object transform (Object input) {
            String name = (String) input;
            name = name.substring(0, 1).toLowerCase() + name.substring(1);
            try {
                Object value = PropertyUtils.getProperty(Event.this, name);
                return value.toString();
            } catch (Exception e) {
                // nyi: proper exception handling
                throw new RuntimeException(e);
            }
        }
    }

Aber trotzdem glaube ich, dass das eine der kürzesten generellen Formulierungen für das Problem ist.

1 Wie die richtige Inkantation aussieht, damit der Feldzugriff self.field in der letzten Zeile wie gewünscht funktioniert, übersteigt mein derzeitiges Python-Fu.

# 16.03.2005 16:07 · Antworten (6) · Computer

Saturday, 29.01.2005

Maven Tipp des Tages

Ich spiele gerade ein wenig mit XDoclet-2 herum, das als Build-Werkzeug Maven einsetzt.

Hier der Tipp: Wenn man in project.properties maven.junit.usefile = false setzt, muss man sich nicht stundenlang darüber wundern, warum der TestCase fehlschlägt, man aber nie einen Stack-Trace zu Gesicht bekommt – der wird nämlich standardmäßig irgendwo in eine Report-Datei geschrieben. Total hilfreich…

# 29.01.2005 09:43 · Antworten · Computer

Tuesday, 11.01.2005

Son of Suckerfish

Dieser recht merkwürdige Name steht für eine verdammt schlaue Art und Weise, aus ein paar ordentlichen verschachtelten Listen

<ul id="nav">
<li><a href="#">Percoidei</a>
        <ul>
                <li><a href="#">Remoras</a>
                        <ul>
                                <li><a href="#">Echeneis</a></li>
                                <li><a href="#">Phtheirichthys</a></li>
                                <li><a href="#">Remora</a></li>
                        </ul>
                </li>
                <li><a href="#">Tilefishes</a></li>
                <li><a href="#">Tigerfishes</a></li>
        </ul>
</li>
</ul>

nur mit der Hilfe von CSS – und etwas JavaScript für Dumme Browser(tm) *hust* MSIE *hust* – ein hübsches Dropdown-Menü zu erhalten:

Dropdown-Beispiel

Und da der HTML-Code dabei klinisch rein bleibt, ist das Ganze auch in Lynx (oder Screen-Readern!) ohne weiteres benutzbar:

     * Percoidei
          + Remoras
               o Echeneis
               o Phtheirichthys
               o Remora
          + Tilefishes
          + Tigerfishes

Ich persönlich halte nicht so furchtbar viel von solcherlei Menüs, aber das hier ist eine extrem saubere Methode, sie zu verwirklichen; daher Hut ab und vielen Dank an die Erfinder.

# 11.01.2005 17:35 · Antworten (4) · Computer

Wednesday, 17.11.2004

Eigenartige Emails

  19  +  Mail Delivery Sys  was soll das?     15.11.2004 05:29

sah ich letztens in meinem Spam-Folder. Lustig ist der Gedanke schon, dass sich der Mailserver darüber beschwert, was hier eigentlich gerade vorgeht…

# 17.11.2004 07:52 · Antworten · Computer

Tuesday, 02.11.2004

Bang head here

Manchmal frage ich mich ernsthaft, was sich manche Programme eigentlich bei den Dingen denken, die sie so von sich geben.
Zum Beispiel Matlab, als ich nach dem Ungleich-Operator gesucht habe:

> 1 != 2
??? 1 != 2
      |
Error: != is not a MATLAB operator. Use ~= instead.

Oder die C-Shell hier auf den Uni-Servern:

cc> ^D
Use "logout" to logout.

Ich meine, wenn Du schlaues Ding ohnehin weißt, was ich eigentlich wollte, warum tust Du es dann nicht einfach?!?

# 02.11.2004 18:17 · Antworten · Computer

Saturday, 30.10.2004

Der Pinguin als Virendoktor

Monika (DE) hatte eine Virusinfektion auf ihrem Computer, aber die Virenscanner unter Windows waren nicht in der Lage, sie zu beseitigen. Ich hatte in der c’t schon mal von einer Knoppix-basierten Rettungs-CD gelesen – Dieses c’t-Projekt war zwar nicht online verfügbar, aber dafür etwas ganz ähnliches: INSERT, das Inside SEcurity Rescue Toolkit, oder auch Knoppix + ClamAV in einem handlichen, 50 MB kleinen CD-Image.

Knoppix hat mich zwar schon mehrmals erstaunt, und das hier war keine Ausnahme. CD eingelegt, Linux gebootet, aktuelle Virendefinitionen geladen, Virenscanner gestartet (sogar mit leicht zu bedienendem graphischen Frontend), und ne halbe Stunde später waren wir den Virus los.

# 30.10.2004 18:27 · Antworten · Computer

Friday, 22.10.2004

Server-Absturz

Nachtrag. Heute früh um etwa 5 Uhr ist Archon, der Server von ii-tech (d. h. Christoph, Matthias und mir) abgestürzt und ließ sich auch nicht wiederbeleben. Das bedeutet etwa 50 Leute waren ohne Email, und eine Handvoll nicht ganz unwichtiger Webseiten waren offline. Wir haben ihn dann mit einigem virtuellen Klebeband wieder notdürftig zusammengeflickt, und ich habe den ganzen Freitag und halben Samstag damit verbracht, einen Ersatz-Server einzurichten, sodass wir Samstag abend dorthin umziehen konnten.

Wir können von Glück sagen, dass wir vor zwei Monaten einen Ersatz-Server dazugemietet haben – eigentlich wollten wir demnächst geordnet und in aller Ruhe dahin umziehen, aber nun gut. Inzwischen sollte alles wieder einigermaßen im Lot sein.

# 22.10.2004 05:12 · Antworten · Computer

Wednesday, 06.10.2004

Umsteiger

Als ich das Computerlogbuch eingerichtet habe, habe ich mir einige Gedanken gemacht, welche Software ich dazu verwende. Ich bin dann ziemlich schnell beim Typ Blosxom gelandet, weil dort die Einträge schlicht Textdateien sind, und ich das am besten handhaben kann (und z. B. über FTP hochladen). Das Original-Blosxom ist in Perl geschrieben, damit kenne ich mich praktisch gar nicht aus, und zu der Zeit wollte ich sowieso gerne etwas mehr Python lernen. Also habe ich schlicht den Port PyBlosxom installiert.

Nicht mehr. Heute habe ich das Computerlogbuch auf das Original-Blosxom umgestellt, weil mir PyBlosxom ziemlich auf die Nerven ging. Die Symptome waren halb- bis ganz-kaputte RSS-Feeds und vor allem das extrem nervige Datumsmanagement. Wenn man nicht die dateieigene Aktualisierungszeit verwenden wollte (wofür ich mehrere Gründe habe), war das beste Angebot ein Plugin, mit dem alle Dateien name-yyyy-mm-dd-hh-mm heißen mussten.

Aber das waren nur die Symptome, das Hauptproblem war die praktisch nicht vorhandene Hackbarkeit von PyBlosxom. Nachdem ich jetzt das Perl-Originial installiert habe, wurde das nur um so deutlicher. Die Perl-Version ist kompakt, der Kern passt in eine einzige Datei, und die System-Architektur sowie die Plugin-Struktur sind einfach und klar. Im Gegensatz dazu ist die Python-Version ein riesig kompliziertes Ungetüm von Basisklassen und davon spezialisierten Standardklassen.

Hinzu kommt, dass das Original-Blosxom eine wesentlich größere Nutzerbasis hat, und somit für praktisch alle Wünsche bereits irgendjemand ein Plugin geschrieben hat. Und falls doch nicht, fiel es mir relativ leicht, anhand von bestehenden Lösungen meine Wunschfunktionalität zusammenzuschneidern. An der Oberfläche merkt man davon nicht viel, außer der neuen (ordentlichen) Permalink-Struktur /yyyy/mm/dd/name und der Suchbox, aber hinter den Kulissen ist alles jetzt wesentlich aufgeräumter und angenehmer als vorher. Nicht zu vergessen vernünftig hackbar, falls nötig.

# 06.10.2004 21:11 · Antworten · Computer

Wednesday, 15.09.2004

Der Neue

Da heute keine Vorlesungen waren, habe ich es gewagt und einen 2.6er-Kernel aufgespielt. Es hat erstaunlich gut funktioniert, und auch alle Sonder-Treiber (Graphik, Modem, WLAN) ließen sich einwandfrei kompilieren. Ob sie auch funktionieren, wird sich noch herausstellen müssen.

Ich hatte gehofft, mit einem neuen Kernel an der Power-Management-Front etwas weiterzukommen, und ein kleines bisschen bin ich das auch, der Prozessor kann dank powernowd jetzt automatisch heruntergetaktet werden, wenn keine Last vorhanden ist. Das sollte der Batterielaufzeit guttun. Suspend-to-RAM funktioniert leider immer noch nicht, der Gute schläft zwar ein, wacht aber nicht wieder auf – ich habe nach wie vor den Graphiktreiber im Verdacht.

# 15.09.2004 18:03 · Antworten · Computer

Monday, 23.08.2004

abook mit Python

Dank Robin Sommer weiß ich jetzt, dass man das Adressbuch von abook mit dem ConfigParser von Python einlesen kann:

import ConfigParser

parser = ConfigParser.ConfigParser()
parser.read('~/.abook/addressbook')

abook = []

for section in parser.sections():
    if re.search('^\d+$', section):
        entry = {}
        for item in parser.items(section):
            entry[item[0]] = item[1]

abook.append(entry)

Und damit kann man sehr praktische Sachen anstellen, z. B. Hooks für mutt aus dem Adressbuch generieren usw. – fein!

# 23.08.2004 08:31 · Antworten · Computer