Perspektiven

 

Jedes einigermaßen komplexe Lebenswesen baut sich seine eigene Welt. In diesen Milliarden von Universen existieren eigene Regeln, eigene Wahrheiten, niemand kann des anderen Kosmos wirklich verstehen wenn er nicht wenigstens eine Zeitlang in dessen Mokassins gegangen ist wie es so schön heißt bei einem wahrscheinlich völlig falschen Zitat aus der indianischen Spiritualität.

Solche Welten existieren solange und werden als manifest angesehen, solange nicht etwas Einschneidendes geschieht wie der Tod eines geliebten Menschen oder eine Krankheit. Schlüsselerlebnisse dieser Art haben oft eine veränderte Sichtweise der Betroffenen zur Folge, die Ansichten verschieben sich, die Blickwinkel ändern sich, „an sich“ war es schon immer so, dass es auf einer variablen Basis gründete was man sich so ansah, nun wird es jedoch klar.

Wir leben in Zeiten der medialen Überflutung und der netzweiten Speicherung von Inhalten. Das hat zur Folge, dass wir meines Erachtens viele Tradierungs-Mechanismen verlieren die sich die Menschheit über Jahrtausende zu eigen gemacht hatte. Es gilt nicht, darüber zu lamentieren, es für schlecht zu halten. Aber es gilt, das zu verinnerlichen. Die Realisierung der veränderten Realisierung sozusagen. Was ich allerdings bedauere ist, dass wir sowohl in der Politik als auch in anderen gesellschaftlichen Theorien mit Oberflächlichkeit bombardiert werden. Dahinter steckt keine böse Absicht, es ist schlicht das Ergebnis der nicht mehr zu bewältigenden Vielfalt. Ein Europa ist nicht wirklich regierbar bei der Vielfalt an Völkern und Kulturen die es beinhalten. Ein Börse kann nicht wirklich zum Wohlstand der gesamten Menschheit beitragen da sie keine Güter herstellt sondern lediglich ein System der Verschiebung von Buchgeldern darstellt.

Und so liebe ich es gelegentlich, eine macro-objektivische Sicht der Dinge zu praktizieren. Hier ist noch alles überschaubar und folgt scheinbar Regeln die Bestand haben.

Meditation auf andere Art

In den letzten Jahren hat sich immer wieder herausgestellt, dass in schwierigen Phasen in denen andere vielleicht eine Art autogenes Training absolvieren mir es ungeheuer gut tut, bis dahin noch unbehandeltes Terrain abzugehen und zu bereinigen. Dieser etwas seltsam sinnlose Vorgang analytisch betrachtet hat einen sehr beruhigenden Einfluß auf mich und ich kann während dieser Zeit sehr gut innerlich aufräumen. Dass das nicht unbedingt nur mir so geht beweisen die vielen „Planierraupen“ die gebaut wurden, die ich allerdings nicht nutze sondern ich tue es auf klassische Art, sowie die Tatsache dass „mann“ es im allgemeinen als angenehm ansieht mit einem (möglichst fahrbaren) Mäher große Flächen zu „behandeln“, ja ich hatte mal in einer dieser unsäglichen Sendungen in denen Menschen sich gegenseitig irgendwelche Lebensträume erfüllen können die dann publizistisch ausgeschlachtet werden gesehen dass es „die Erfüllung des Lebens“ für jemanden bedeutete einen Fußballrasen mähen zu dürfen. Da haben wir es auf dem Grid doch wesentlich einfacher. 🙂 Hinterher hab ich immer das Gefühl einiges „geglättet“ und bereinigt zu haben. Nun, wie so oft zitiert: Wer heilt hat Recht, oder in diesem Fall leicht abgewandelt: Womit geheilt wird ist richtig. 😉

leichtes Chaos (AssetService & Co Pt 2)

Also da ist Vorsicht geboten, wenn an den diversen Services geschraubt wird. Mittlerweile scheint klar zu sein, dass die Client-Abstürze daher rühren, dass ich zwischenzeitlich auf einen lokalen AssetService umgeschaltet hatte und es Unverträglichkeiten gibt nach dem Wiederaufsetzen des GridService. Zwar ist es mir gelungen die Grid.ini so zu erweitern, dass alle Regionen wieder starten konnten (lokaler Asset- und InventoryService, konfiguriert auch in der Grid.ini und nicht nur in der GridCommon.ini) was jedoch dann gegeben war, war eben dieses leichte Chaos: Es war nicht mehr möglich im Inventar Kleiderstücke oder Shapes / Skins anzulegen. Also wieder zurückrudern, alte Config wiederherstellen und hoffen, dass das entstandene Chaos sich auf meine eigenen Dinge beschränkt, was leichter zu ertragen ist 😉

AssetService & Co

Nun, das Bauen schreitet voran. Erste Wege werden angelegt mit schlicht produzierten Fotografien die jedoch schon ganz beachtlich wirken. Gut zu lernen dabei, dass man bei Übergängen gerne mal 1cm die Objekte heben oder senken sollte, damit es nicht zu dem üblichen unangenehmen Flackern kommt.

Etwas weniger Angenehmes ist aber, dass es nach einiger Arbeit stets zum Absturz des Clients kam wenn die Textur gewechselt werden sollte. Vier Versuche reichten aus mit demselben Ergebnis um für jetzt zu sagen: Es reicht ;). Anschließende Kurztests die AssetDB und die InventoryDB lokal zu erzeugen (was ich eh vorhatte, da es mir lieber ist wenn die Dinge auf der eigenen Maschine gespeichert werden; schließlich möchte man auch den GridServer ja nicht überfrachten – was auch genau das Problem gewesen sein könnte) scheiterten, es fehlt wohl etwas, das schlichte Verweisen auf den lokalen Server beim AssetService reicht nicht. Eigentlich klar, denn irgendwo muss ja auch noch der DB-Connector konfiguriert werden. Wo und wie das bei einer OSGrid-Anbindung zu tun ist und ob das überhaupt möglich ist werden wir noch ermitteln. 🙂

Media on a Prim mit OpenSim

Wunderbar, das klappt 🙂
Und schafft somit ganz neue Möglichkeiten.
Insbesondere Bilderausstellungen oder inworld-Dokumentationen sind somit jetzt möglich, Web3D nähert sich mit großen Schritten.

Bedauerlicherweise ist – nicht nur für das Anlegen – sondern auch für die Darstellung der SL-Viewer2 notwendig. Das wird den Kreis der Nutzer natürlich stark einschränken und unsereiner wird sich möglicherweise damit abfinden müssen, sich um das sehr gewöhnungsbedürftige Design des SL-Viewers zu kümmern um damit die mit anderen erreichte Effizienz beim Bauen zu erreichen. Aber die Vorteile scheinen im Moment zu überwiegen, schauen wir mal was die Performance sagt.

Ninja Number Two

Im Laufe des Tages konnte ich heute beobachten, dass die Load der Maschine recht erheblich war. Der sonst übliche Neustart wegen aufgeblähtem Mono brachte nichts, ohne Betrieb auf den SIMs blieb die Last bei einer nahezu ausgelasteten CPU (von zweien). Also dann mal rein ins Grid und schauen was da so los ist. Der erste Eindruck: Das übliche wenn etwas viel Power nimmt: Bewegen war kaum möglich. Mittels Ctrl-Shift-1 war denn auch klar wo es herkam: 200ms und mehr Physics-Time je Frame, wo das verursacht werden mag? ;). Ein Sichten der vorhandenen Objekte brachte denn auch Klarheit, und zunächst dachte ich wir hätten Besuch gehabt von jemandem der ein wenig „aufgeräumt“ hat: Nahezu alle physischen Objekte lagen wild zuckend auf dem Boden rum statt locker zu pendeln wie es die Absicht war. Ob das jetzt am Neustart lag oder sich die Dinger einfach im Laufe der Zeit verselbständigen bleibt zunächst unklar. Klar ist auf jeden Fall eines: So geht’s nicht, weil dass sich während der Abwesenheit ein beliebiges Chaos einstellt ist nicht akzeptabel. Also war es das zunächst mit der Ninja-Physics, ich gehe wieder zurück auf die althergebrachte Steuerung von Objekten und konstruiere die „Gelenke“ selbst. Zwar wesentlich aufwändiger, aber dafür auch sicher. Außerdem brauche ich keinerlei Hilfsobjekte die die Bewegungen zwangs-initiieren. 🙂

klein aber fein

Die Aufgabenstellung lautete: Wie erzeuge ich ein wechselndes Hintergrund-Bild für eine Seite?
Die Lösung war – dank der umfassenden Möglichkeiten der bash, schnell gebastelt:

[code lang="bash"]
#!/bin/sh
range=`ls *.jpg | grep -v background | wc -l`
number=$RANDOM
let "number %= $range"
if [ $number -eq 0 ]; then let "number++"; fi
name=`ls | tail -$number | head -1`
cp $name background.jpg
[/code]

Das „Programm“ geht davon aus, dass es ein Verzeichnis gibt in dem die zu wählenden Bilder lagern (so ne Art „<body background=’background/background.jpg‘>“. Dort erzeugt es die Menge der vorhandenen Bilder abzüglich des einen das später der aktuelle Background wird (range). Es wird mittels $RANDOM und dem sich anschließenden Modulo (Rest einer ganzzahligen Division) eine Zufallszahl ermittelt die innerhalb dieser Menge liegt (number). Dann wird diese Zufallszahl-Menge an Dateien angelistet und davon nehmen wir uns die erste (head -1). Das wiederum kopieren wir auf background.jpg, welches in der Seite fest verdrahtet als Hintergrund genommen wird. Und schon haben wir – vielleicht noch mit einem reload im Meta-Bereich der index.html oder index.php oder wie auch immer einen wechselnden Hintergrund. Wird natürlich angesteuert über die cron – wie sonst ;), zum Beispiel mit einem „*/15       * * * * (cd theSite/background && ./generate.sh)“, wenn das kleine Ding von oben in „generate.sh“ gespeichert wurde, womit also dann alle 15 Minuten ein anderer Hintergrund der vorliegenden Bilder erzeugt würde.

Ninja Number One

Die Ninja Physics Erweiterung der ODE ist vom Resultat her eine feine Sache. Endlich sind Gelenke möglich, zur Zeit sind lediglich zwei Arten realisiert: Ein Kugelgelenk (balljoint) und ein Scharnier (hingejoint). Die Ergebnisse sind wunderbar anzuschauen, Videos dazu auf Youtube geben nur sehr unpräzise wieder was möglich ist, daher spare ich mir hier die Einbindung.

Was die Implementation angeht, muss ich aber sagen, dass ich von den Machern enttäuscht bin, denn die Verknüpfung der Prims mittels eines Joint-Prims über Namen und Beschreibung halte ich für sehr unprofessionell. Wo bleibt die weltweit eindeutige UUID mit der man hätte arbeiten können? Sicherlich ist somit eine Konstruktion ohne Scripting möglich, aber was für ein Aufwand den man betreiben muss um erstellte Objekte funktionsfähig zu erhalten. Und das ist wirklich ein grosser Nachteil: Bastelt man an einem neuen Objekt herum und passt nicht auf mit den Namen, geschieht es leicht dass man schon existierende zerstört, was niemals sein darf.

Okay, ich gebe zu, meine recht schlampige Arbeitsweise wird hier zwangs-diszipliniert, was auch angenehm sein kann. 🙂

Ein recht mühseliger weiterer Punkt ist, dass man Gelenke die sich nicht an der Oberfläche ansiedeln sollen, auf irgendeine Art in der Luft halten muss. Auch Fortbewegungen der gebauten Figuren müssen zwangsinitiiert werden. Aber hier liegen die scheinbaren Begrenzungen sicherlich noch daran dass ich mich nicht genügend mit der Materie beschäftigt habe.

Das Resumé lautet: Wunderbar in der Wirkung, gewöhnungsbedürftig in der Anwendung. Scripting und Velocity-Einbau wird sich noch zeigen in wieweit das machbar ist.