[linux-l] Aus dem Nähkästchen

Steffen Dettmer steffen at dett.de
Sa Sep 30 19:46:35 CEST 2006


* Volker Grabsch wrote on Sat, Sep 30, 2006 at 14:13 +0200:
> On Fri, Sep 29, 2006 at 02:42:27PM +0200, Detlef Lechner wrote:
> > >>In welche Konfigurationsdatei?
> > >[...]
> > >>Unter dem Verzeichnis / gibt es unendlich viele 'config's.
> > >
> > >Dann hast du eine zirkuläre Verzeichnisstruktor. Böse Sache, sowas.
> > >Ich empfehle dringends fsck.  ;-)

Bei Unix ist das ein Feature und heisst "symlinks" :-)

> > Ich habe keine zirkuläre Verzeichnissstruktur. Wenn Du willst, komm her 
> > und zähl bei mir die Anzahl der Dateien mit 'config'. Es ist eine 
> > abzählbar endliche Menge.
> 
> Was soll das? Endliche Mengen sind immer abzählbar. Oder meinst du
> "abzählbar unendlich"? Wie willst du das schaffen?
> 
> Ach so, ich verstehe, wir zählen auf einem höheren Abstraktionsniveau:
> 
> 1, 2, n, n, n, n, n, n, n, ...

So eine abzählbar unendliche Reihe ist ja noch lieb. z.b. kann man durch
Iteration jeden Wert erreichen (dauert ggf. nur). Wären es reelle
Zahlen, würde das schon nicht mehr so einfach gehen, obwohl ja z.B.
gebrochene Zahlen abzählbar sind (was man so vielleicht gar nicht denken
würde).

> Manchmal habe ich den Eindruck, Informatiker denken wirklich so.
> Alles, was mehr als 2 Durchläufe hat, wird zu einer Schleife, auf
> Biegen und Brechen. :-)

Informatiker sollten den Pragmatismus nicht vergessen, genau. Bei DRY
Prinzip sagt man ja auch nicht, wiederhole Dich NIEMALS, sondern eher
"Hast Du Dich zum ersten Mal wiederholt, dokumentiere es. Hast Du Dich
zum zweiten Mal wiederholt, dokumentiere genau, warum. Würdest Du Dich
ein drittes Mal wiederholen, refakturisiere lieber".

> Bei den J2EE-Designern und anderen "over-enigneered systems" liegt
> diese Grenze bei 1 oder 0. Sie abstrahieren sogar Sachen, die nur
> einen einzigen oder gar keinen sinnvollen Spezialfall besitzen.

Ja, sowas ist wirklich Klasse. Dafür braucht man am Ende reflection-APIs
und factories, weil man auf Grund der Komplexität kaum noch ein
orthogonales System bauen kann. Dafür kann man dann bei Bedarf einen
Kühlschrank zur Mikrowelle umkonfigurieren und seine Brötchen drauf
toasten (verbraucht aber leider 25 Kilowatt) lol

> In der Mathematik nennt man solche sinnlosen Produkte "Theorie über
> die leere Menge", aber in der Informatik scheinen solche "Theo(log|r)ien"
> sehr beliebt zu sein.

Bitte nicht Javagemeinschaften und Informatik verwechseln! Ausserdem
kann man Informatik ja mathematischer oder mehr als Ingenieurarbeit
sehen :)

>     ... äää, ich meine ...
> 
>     HumanFactoryFactory.getInstance().createHumanFactory().
>     createHumanNation(PlanetFactory.getInstaceByName("earth"), "de").
>     getInstanceCreator("Volker").create()

lol

Herrlich!

Allerdings sind da noch ein paar Bugs drin:
- PlanetFactory.getInstaceByName muss ggf. Zeichentabellen nachladen
  (weil Unicode parameter, falls man den hardcoded string, der nur
  "earth" sein kann, mit traditionellen chinesischen Schriftzeichen
  schreiben möchte)
- createHumanNation mit string is deprecated, stattdessen sollte ein
  IsoCountryCodeProvider verwendet werden, der über eine
  IsoCountryCodeProviderFactory erzeugt wird
- createHumanNation hat keine Methode getInstanceCreator sondern
  getHumanNationCreatorProvider mit dem Parameter
  HumanNationCreatorProviderConfiguration, die einfach über einen
  HumanNationCreatorProviderConfigurationProvider, dessen Factory und
  einem XML File erzeugt wird und das das
  BeeingNationCreatorProviderConfigurationProvider
  implementiert, welches vom vom
  AbstractNationCreatorProviderConfigurationProvider die Methoden zur
  Dynamisierung via reflection API erbt und u.A. von der Package
  java.lang.xml.nations.providers.config abhängt
- Nach dem Erzeugen von Volker muss open() aufgerufen werden, weil es in
  Java auch ein close gibt, weil man keine Destruktoren hat
- Die benötigten JARs passen gerade noch auf DVD, werden aber nur
  täglich geupdatet, also reicht eine 16 MBit Leitung aus, um aktuell zu
  bleiben

In C++ schreibt man

  Human volker("Volker", Nation::DE);

und erweitert den Code, wenn man Alpha Centauri unterstützen muss

loooooooooool

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.





Mehr Informationen über die Mailingliste linux-l