Technik, Gothic und Anderes

Technik ist Spiel, Gothic ist ernst und Zeit hat man zuviel

Archiv

Computer sind scheisse - Oder die Vorteile des Schafzüchtens

Geschrieben von skaldrom am 5. December 2006

Egal wie man zu Computern steht, den Meisten ist das breite Gefühlsspektrum wohlbekannt das Computer erzeugen können; von freudiger Erregung die leicht in Entzücken ausartet bis hin zu abgrundtiefem Hass und Verachtung. Doch ein Gefühl ist mir neu: Ekel. Mich schauderts, aber nicht ob den Brosamen in der Tastatur die alsbald von selbst ihren Kaffeetümpel verlassen werden, auch nicht ob den gruftigen Staubfetzen die munter aus dem Ventilatorschacht tentakeln. Ebenfalls sind die täglichen Abstürze (nananah, Ruhe dahinten, auch Unix/Linux hängt ab und zu!), vermurkste Backups, spezifikationsfremdes Verhalten und andere Widrigkeiten nicht genug, meine eiserne Ruhe gegenüber dem Möchtegernehirn zu brechen. Nein, es ist das Ding das wir aus dem Computer gemacht haben, der Computer an sich von A wie Aufstarten bis hin zu Z wie Zentraleinheit (oder “Zieh mal da, tut sich jetzt was?”).
Lasst uns bei der Hardware beginnen. Vorbei die Tage als man noch wusste was schnell und gut ist: Intel sagt Megaherz, Apple sagt FLOPS. AMD sagt Quantispeed, Intel sagt SSE, die Büroklammer meint Arbeitsspeicher, Via meint Systembus. Hans meint SCSI, Fritz sagt Dell, und mein Bauch sagt “guter Support”. Aus sind die Zeiten wo man mit stoltzgeschwellter Brust seinen Computer tätschelnd leise in den Diskettenschlitz flüstern konnte, wie schnell er doch sei und wie stolz man auf ihn ist. Erstens weiss man nicht, ob er denn wirklich schnell ist, zweitens ist noch vor dem Auspacken ein schnelleres Modell auf dem Markt und drittens haben einige Computer gar keinen Floppyschlitz mehr.
Die Prozessoren haben Fehler, die PCI-Steckplätze sind wählerisch, die RAMs tun eitel wenn es um die Zusammenarbeit geht und die Settings im BIOS kann sowieso niemand mehr überblicken. Gehen wir der Einfachheisthalber davon aus, dass wir einen lauffähigen Computer vor uns haben, einen zugeschraubten, mit Garantiesiegel versehenen, der immerhin noch ein kleines, neidisches “Dasundas wäre aber besser gewesen” bei den Kollegen hervorruft. Und gehen wir davon aus, dass nichts kaputt geht, denn kostenpflichtige Preisauskünfte, Pauschalpreise und Servicenummern die an Informationsgehalt nicht viel mehr absondern als andere Nummern mit derselben Vorwahl, die aber erst nach Mitternacht beworben werden dürfen, reichen normalerweise völlig aus um einen wohlgesonnenen Menschen nach Neuseeland zu treiben (wo er sich dann mit Schafezüchten beschäftigen wird).
Wir dürfen dann ein Betriebssystem auswählen (auch dieses Privileg muss man sich erkämpfen). Das eine Betriebssystem weiss alles besser. Es weiss wo ich meine Dateien hinschreiben und womit ich im Internet suchen will, was für Musik ich hören möchte und welche Programme ich nicht brauche. Es weiss sogar, wann ich genügend gearbeitet habe, denn dann verabschiedet es sich und simuliert Nacht auf dem Monitor. Ich kann nichts mehr ändern am System, denn es weiss es besser und stellt es bei Gelegenheit wieder zurück. Bäh. Sowas ist nicht nett. Wenn dieses Betriebssystem ein Mensch wäre, würde ich ihn meiden, ganz bestimmt.
Das zweite Betriebssystem weiss nicht soviel. Es lässt mich alles selber konfigurieren. Stundenlang, tagelang, wochenendelang, feierabendlang. Ist es so wie es gefällt, ist alles veraltet und eine neue Version der Programme ist angesagt. Repeat. Wenn dieses System ein Mensch wäre, würde ich ihn nicht verstehen, obwohl ich in sein innerstes kucken kann.
Es gibt auch noch andere, zugegeben, aber wieviele Betriebssysteme erträgt ein Mensch? Man sollte alle zu der armen Seele nach Neuseeland schicken.
Egal ob Betriebssystem oder Applikation, der Umgangston ist schlimmer als unter Schafszüchtern: “Do you want to reboot now?”. Nein, natürlich nicht, aber was bleibt mir anderes übrig. “Sind sie sicher?”, wenn mir diese Frage alle 3 Minuten gestellt wird, verwundert es denn, wenn mein Selbstbewusstsein zum Teufel geht?
Programmieren habe ich immer als etwas elegantes empfunden. Algorithmik: suche einen guten Weg, formuliere eine Lösung. Das funktioniert ideal im Labor, doch versagt bei richtigen Programmen. Es ist allgemein anerkannt und sogar respektiert wenn mit wichtigem Blick gesagt wird “Alle Programme haben Fehler”. Wie wird die Zeit abgeschätzt die ein Informatikprojekt braucht? Nein, kein Publikumsjoker, ich sage es: Schätzung des kompetenten Mitarbeiters mal zwei plus zehn Prozent. Ist DAS eine erwachsene Wissenschaft. Oder - lachen verkneifen - gar eine exakte Wissenschaft? Ist es da noch eine Freude zu programmieren? Fragen sie jemanden nach einer kurzen Erklärung für COM. Lesen Sie die Einführung eines beliebigen Buches zu COM in dem ein Überblick gegeben wird. Und, häh? Das treibt uns nicht nur nach Neuseeland, sondern reicht sogar um die Schafe dort zum Weinen zu bringen.
Objektorientiertheit, objektorientiertheit, höre ich die Studenten singen. Sehen Sie sich 80% der Objekte eines Projektes an und stellen Sie sich diese als reale Dinge vor. Huh, ein IPCallBack läuft durch die Wohnung. Bitte steh nicht auf mein DirValidator. Ja, das vereinfacht den Durchblick ganz extrem. Klar wie Schafssch… nee?
Und mit was programmieren wir denn? En Vogue ist es im Moment, Ausgaben in einem Programm über das Netzwerk anzusehen von einem Programm welches ein Script interpretierte, das einen Interpreter benötigt, der mit einer Sprache geschrieben wurde die einen Compiler benötigte, welcher sich selbst und das Betriebssystem braucht, welches ein Programm im ROM (und den Compiler) benötigt das wiederum Kleinstcode im Prozessor benötigt. Cool man, es sind doch nur Nullen und Einen! Kein Mensch kann heute mehr ein richtiges Programmierprojekt von Anfang bis Ende überblicken. Kein Mensch kann sich mit mehr als einem 13Mikrometer grossen Teilgebiet der Informatik beschäftigen. Niemand hat den Über- und den Durchblick. Alle wursteln.
Und diejenigen die auf alles eine Antwort haben, sollte man zuletzt fragen, noch nachdem man seine Schafe konsultiert hat.
Installiert man ein “fertiges” Programm, gilt es sich durch die EULA oder Lizenzvereinbarungen zu kämpfen. Buchstaben aneinandergereiht, Zeile für Zeile Juristengeschwätz. Nicht fundiert und bewiesenermassen voller Lügen. Wir lesen das ja immer SORGFÄLTIGST und STIMMEN ZU. Was ist, wenn ganz unten ganz klein gestanden hat “Der Verwender verpflichtet sich, ab jetzt bei jedem Vollmond mit irrem Grinsen um sein Haus zu tanzen”? Lacht nicht, es gibt schlimmeres das da steht.
Haben Sie gewusst dass Ihnen ein Programm nicht gehört dass Sie gekauft haben? Denn dann dürften Sie es Kopieren und zerstören oder was Ihnen sonst so einfällt. Doch das ist verbotener als verboten.
Kein Gemotze ohne Verteidigung der Privatsphäre: Viele Leute können ohne grosse Mühe herausfinden was ich wo einkaufe, wann ich meinen Computer ein und ausschalte, mit wem ich Kontakt pflege, was und wie und für wieviel ich arbeite, etc. SO IST ES klingeling DAS IST KEINE ZUKUNFTSMUSIK. ’nuff said.

Ich ekle mich vor dem Computer. Er macht aus mir ein Monster das Scheusslichkeiten wie “gerebootet”, “Task” und “synchronisieren” im aktiven Wortschatz hat. Es lässt mich Abends erkennen, dass ich nicht weiss welchen Tag in welchem Monat wir haben und was für Wetter draussen war. Er lässt mich an der Kasse warten. Er lässt mich sauer werden auf Leute, welche länger als 42 Sekunden am EC Bankomaten brauchen. Er lässt mich ständig an mir selber zweifeln und mein Wissen vergehen. Schauder.

Was sind die letzten Worte eines Informatikers: “Ich bleibe hier bis es funktioniert”. Wäre er doch besser nach Neuseeland Schafe züchten gegangen.

Eingeordnet in Weitere Gedanken | 2 Komentare »

Geburtstagsliste mit MySQL

Geschrieben von skaldrom am 26. October 2006

DAS zentrale Feature unseres Informationssystem ist eine Geburtstagsliste *gähn*. Ich habe eine Tabelle und möchte nun Geburtstage ab heute mit sql herausselecten. Diese birthday list hat folgende Probleme:

  • Ich kann sie nicht nach Geburtstagen ordnen, weil das Jahr keine Rolle spielt.
  • Ich kann auch nicht DAYOFYEAR verwenden, weil es ein Gnusch mit den Schalttagen gibt.
  • Es muss zyklisch sein, so dass Ende Jahr die Geburtstage vom Januar angezeigt werden.

Nun, die rettende Idee war, das Datum umzufomatieren. Also der 26.10.2006 zum 1026 zu machen und danach zu ordnen. Der Rest ist gna:

SELECT id, name, vorname, geburtsdatum
FROM personen_complete
WHERE geburtsdatum IS NOT NULL
ORDER BY
  IF( DATE_FORMAT(geburtsdatum,'%m%d') >= DATE_FORMAT(CURDATE(),'%m%d'),0,1),
  DATE_FORMAT(geburtsdatum,'%m%d') ASC,
  name, vorname

Eingeordnet in Theorie und Schnipsel | Keine Kommentare »

Der HTML-Künstler

Geschrieben von skaldrom am 20. September 2006

Blackant ist ein wahrer Code-Künstler. Unter vielen anderen wirklich genialen Projekten hat er ein Script (img2html), das den HTML-Code an Hand eines Bildes umformatiert. Für den normalen Anwender unsichtbar, entlockt es dem Experten stille Bewunderung.

Als Beispiel, die oncode.info Homepage als Stern formatiert: Hier umformatieren und danach den Quelltext ansehen.

Eingeordnet in Webapplikationen | Keine Kommentare »

Croquet: Die Zukunft des eLearning

Geschrieben von skaldrom am 15. September 2006

Virtuelle Welten haben mich schon immer fasziniert. Wieso sollen wir uns mit den Limiten dieses reellen Dreckschollens begnügen auf dem wir hingeboren wurden? Etwas sehr schönes ist Croquet. Geschrieben in Smalltalk, eine lustige Sprache, die aber weh tut beim Programmieren. Da ist alles ein Bisschen anders…

CroquetNundenn, ich wollte einen Server ohne grafische Oberfläche, auf einem festen Port und dann loslegen. Es gibt viele Beispiele auf dem Web, aber entweder sind die für alte Versionen oder mein nichtvorhandenes Wissen über Smalltalk hat den Erfolg verhindert. Nach knapp 12 Stunden habe ich dann einiges herausgefunden… Das Teil stürt oft ab und hat immer mein Linux mitgerissen… In einer VM läuft es sauber, aber langsam wie ein Keks.
Nicht gemeistert habe ich einen äusserst blöden Fehler: In einer Funktion wollte Croquet einem nicht vorhandenen Objekt namens connection die Nachricht recvCypher nicht verstehen… Wie auch, war es doch klein und Null. Hab aber nicht aufgegeben und folgendes herausgefunden:

SimpleDemo (Master) ist fürs WAN vorbereitet. Der Port versteckt sich in Croquet-Harness -> CroquetHarness -> initialize -> CreateIsland ! Wenn man ihn dort setzt, dann hört der Router ganz friedlich und beständig da… Ebenfalls da sollte man die ID setzen:

id := TObjectID readHexFrom: 'ee3320a5924eaf79b1336d2151b80717'.

Nungut, wie startet man das Ganze nun kopflos? (Ohne grafische Anzeige) ?

Man macht ein kleines Script bbb-master.st:

bbbworld := SimpleDemoMaster new.
bbbworld setup.

Und startet es folgendermassen:

/pfad/to/Croquet/bin/i686-pc-linux-gnu/squeak -plugins /pfad/to/Croquet/bin/i686-pc-linux-gnu  \
     -vm-display-X11 -swapbtn -headless /pfad/to/Croquet/Croquet1.0.10.image \
     /pfad/to/Croquet-Scripts/bbb-master.st

Was man auch automatisieren kann (/etc/init.d/bbb-master poste ich gerne auf Wunsch).

Zum Verbinden braucht es die IP und nicht den Namen!

Etwas das ich noch nicht herausgefunden habe wie man bei diesen Welten mit Menü ein 2D-Projekt als Portal übernimmt. Vielleicht sollte man eine andere Welt als Server wählen…? Ebenfalls schlecht ist die Uptime von 5 Minuten bei 4 aktiven Clients :( … Aber es wird ja noch dran gearbeitet :) ….

Eingeordnet in eLearning | Keine Kommentare »

Bug ist nicht gleich Bug

Geschrieben von skaldrom am 6. September 2006

Per Zufall bin ich wirklich faszinierende Bugnamen gestossen… Wenn jemand noch mehr kennt, wäre ich Dankbar für eine Mitteilung:

Der Heisenbug
Verändert sich wenn er beobachtet wird. Tritt zum Beispiel auf, wenn sich die Kompilieroptionen für Release und Debug unterscheiden und der Bug nur im Release auftritt.
Der Bohrbug
Ist ein unter allen Umständen und leicht zu reproduzierender Fehler.
Der Mandelbug
Der Mandelbug ist ein Bug, dessen Ursachen so komplex sind, dass er chaotisch erscheint.
Der Schroedinbug
Beim Schroedinbug (oder Shroedinbug) handelt es sich um einen Bug - also einen Fehler in einem Programm - der jedoch noch nicht bekannt ist, weil noch niemand die entsprechende Funktion bzw. die entsprechende Kombinationen von Funktionen ausprobiert hat.
Der Zeilinbug
Die Herkunft der Benennung ist hier nicht bekannt. Zeilinbug bezeichnet einen Fehler, der sich im Code herumbeamt, ohne das man genau weiss warum. Schuld daran können fehlerhaftes Kopieren und Einfügen oder wirre Codegeneratoren sein. Manchmal auch ein konzeptionelles Fehlwissen der Entwickler.
Der Nelsonbug (benannt nach Ted Nelson)
Ein Bug, der entsteht, weil ein Teil der Implementierung auf später verschoben wurde und dieser dann vergessen gegangen ist. Er kann auch auftreten wenn generell nur Stubs vorhanden sind. Ist mit dem Schroedinbug verwandt.
EBCAK
Error Between Chair And Keyboard, Nuff said :)…
ID10T (Ai-Di-Ten-Ti)
Tja, das ist nun nur für 1337.
JASE
Just another System Bug.

Quellen: Wikipedia, Bullhost und A1 Weblog.

Nachtrag (16.03.2008): Die englische Wikipedia hat auch eine Seite für Bugs!

Eingeordnet in Theorie und Schnipsel | 2 Komentare »