SSDs und der Viewercache

Ich hatte neulich in der SL-Gruppe „slinfo.de“ eine Diskussion darüber, wie man Computer beschleunigen kann, die den Second Life Viewer benutzen. Neben den üblichen Verdächtigen, in Reihenfolge der Wichtigkeit: Grafikkarte, mehr Hauptspeicher, besserer Prozessor – empfahl ich den Einbau einer kleinen SSD, um darauf den Viewer-Cache zu speichern.

Der Grund liegt einfach darin, dass der Viewercache bei 1 GB typischerweise aus ca. 20.000 Dateien besteht und man bei dem Cache nach einem Neustart, wenn man in Second Life einloggt und auf eine seiner Stammsims geht, die Limitierung der Festplatte merkt.

Eine Festplatte hat nunmal typischerweise eine Zugriffszeit von 6-8 ms, eine Sekunde sind 1000 ms, das bedeutet wenn die Festplatte exklusiv nur für den Viewer arbeitet (was sie normal nicht macht), dann schafft sie es in einer Sekunde im Bestfall 1000/8 = 125 verschiedene Texturen zu laden.

Eine SSD ist mindestens um den Faktor 10 schneller und damit für solch ein Konstrukt wie lesende Zugriffe auf einen vollen Cache nunmal die erste Wahl.

Nun hält sich noch immer hartnäckig das Gerücht, dass SSDs ach so empfindlich seien und dann kam auch sofort wieder der Mist auf, wenn man das täte, wäre die SSD nach 1-2 Jahren kaputt. Nein, wäre sie nicht.

Zuerst einmal ist es so, dass auch mechanische Festplatten mit der Zeit kaputt gehen können und im Schnitt eine Lebensdauer von fünf Jahren haben. Bei SSDs ist es so, dass diese mit jedem Schreibzugriff bauartbedingt ein wenig altert.

Bei Tech Report wollte man es mal genau wissen und beschreibt verschiedene, aktuelle SSDs seit Monaten im Dauereinsatz. Das Ergebnis ist, kurz gesagt, dass eine SSD robuster ist, als viele denken und diese Datenmengen, welche da geschrieben worden sind, ein typischer Durchschnittsbenutzer wohl in 30-35 Jahren erreicht. Wenn man nur den Second Life Viewer Cache auf eine SSD packt, dann dauert das gar noch viel länger.

Von dem Argument mit der viel zu kurzen Lebensdauer einer SSD in einem solchen Fall ist daher absolut nichts mehr zu halten, es zeigt nur, dass derjenige, der es vorbringt, einfach keine Ahnung von modernen SSDs hat.

Leap Motion in Aktion

Bei all dem Gerede über Oculus Rift ist mir bisher eine Technologie weniger aufgefallen, die einfacher einzusetzen ist und auch die Handhabung eines Rechners ordentlich auf den Kopf stellt, nämlich Leap Motion.

Nun, was ist das? Einige mögen vielleicht Kinect von der Xbox kennen, eine Sensorphalanx, mit der man seine Xbox einfach per Körperbewegungen steuern kann. Nun stellen wir uns mal diese Sensoren ordentlich verkleinert und in einer Computertastatur eingebaut, dann haben wir Leap Motion. Es ist im Grunde der Computersteuerung sehr ähnlich, die manche im Scifi-Film „Minority Report“ sahen, nur mit dem Unterschied, dass man dazu keine Handschuhe anziehen muss und die Technik bereits heute verfügbar ist und gerade damit angefangen wird, sie in manchen Notebooks serienmäßig einzubauen.

Ein Video sagt mehr als tausend Worte, und es gibt schon seit über einem Jahr im Second Life Viewer von Linden Lab eine eingebaute Unterstützung für Leap Motion. So sieht das dann eben aus:

Ich kann mir vorstellen, dies ist für Leute, die hauptsächlich gerne per Voice unterwegs sind, sehr praktisch.

Man kann den Controller auch einzeln kaufen, er wird dann per USB an den Rechner gesteckt und ist in etwa so groß wie ein Feuerzeug. Windows steuern kann man damit übrigens auch:

Bitcoin – blablabla

Bitcoin ist ja gerade ein Hype, wie er im Buche steht und das wird momentan immer schlimmer. Angeblich zittern ganze Staaten vor dieser digitalen Wunderwährung, die sie nicht kontrollieren können und was weiß ich noch alles. Alles Käse – Bitcoin ist ein interessantes Experiment ohne besonders praktischen Wert, nicht mehr, aber auch nicht weniger.

Doch was ist Bitcoin eigentlich? Zum einen eine nach oben hin künstlich gedeckelte digitale „Währung“, zum anderen ein verteiltes Finanztransaktionsprotokoll im Bereich Micropayments. Die Transaktionen sind dabei der eigentlich interessante Teil, denn für so etwas gibt es nun wirklich Bedarf und hier ist ein Weg gezeigt worden, wie das geht. Die Frage dabei ist natürlich, wie gut das für zig Millionen skalieren würde, das wäre vermutlich ein Desaster.

Die Währung dagegen ist ein astreiner Fehlschlag. Bitcoin hat eine eingebaute Deflation, weil die maximale Geldmenge künstlich gedeckelt ist. Warum heute eine Ware für 1 Bitcoin kaufen, wenn man sie in vier Wochen auch für 0,50 Bitcoins bekommen könnte? Also hocken viele lieber auf ihren Coins, anstelle sie auszugeben.

Und überhaupt Geld: eine Währung lebt davon, dass ihr Wert recht stabil ist, fluktuiert und ausgegeben wird. Der Wert von Bitcoins bemisst sich einzig und alleine darüber in Wirklichkeit, wieviel echte Dollars und anderes man bereit ist zu bezahlen. Für den eigentlichen, angeblichen Nutzungszweck – als Währung – werden Bitcoins kaum genutzt. Bitcoins sind vielmehr ein astreines Spekulationsobjekt geworden und wenn man sich mal den Werteverlauf der Bitcoins anschaut, dann wird einem auch klar, dass dem so ist und mit so etwas kaum ein vernünftiger Mensch Sachen bezahlen würde noch Zahlungen annehmen würde.

Und ein Spekulationsobjekt, bei dem die Early Adopters recht einfach eine nette Menge anhäufen konnten, die sie nun teuer verkloppen könnten, ja das sind sie durchaus. Alles, was nun Bitcoins mined, wird es immer schwerer haben, noch einen einzigen Coin zu minen als früher. Und bei knapp 22 Millionen, also irgendwann um 2020 rum, wird damit Schluss sein. Es ist eine gigantische Umweltverschmutzung und Energieverschwendung für nichts und aber auch wieder nichts.

Und Bitcoins können unwiederbringlich verloren gehen – dazu reicht es schon aus, wenn die Festplatte mit der Wallet abraucht und man kein Backup hat. Diese Coins sieht man nie wieder und stehen auch dem Rest nie mehr zur Verfügung.

Kurz und gut es ist ein interessantes Experiment, eine Spekulationsblase allererster Güte ohne wirklich praktischen Nutzen, aber auch ein Anfang. Hoffentlich lernen spätere Ansätze dieser Art aus den Fehlern bei Bitcoin und machen es besser. Denn gut ist Bitcoin nun wirklich nicht, bestenfalls gut gemeint, das ist aber auch alles.

Firestorm Viewer Private Build Nr. 4.5.2.39868 zum Download verfügbar

Mir ist gerade ein wenig langweilig und daher dachte ich mir, ich könnte ja mal der Community einen möglicherweise kleinen Dienst erweisen – und das mache ich nun.

Ohne weiteren Umschweife: ab sofort biete ich nun einen sog. aktuellen Nightly Build vom Firestorm für Windows (32 bit) zum Download an. Nun wo das raus ist, der Reihe nach.

F: Was ist ein Nightly Build?
A: Ein Nightly Build ist eine möglicherweise lauffähige Version des Firestorm Viewers, die auf dem aktuellen Sourcecoderepository des Entwicklersteams beruht.

F: Auf welchem Quellcode basiert dieser Viewer?
A: Er basiert auf dem unter http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/ öffentlich verfügbaren Code. Er wurde mit Hilfe von Microsoft Visual C++ Express 2010 kompiliert und es handelt sich dabei um die 32bit-Variante des Viewers.

F: Gibt das Firestormteam nicht selber Nightly Builds heraus?
A: Nein, das haben sie noch nie.

F: Warum bietet das Firestormteam nicht selber einen Nightly Build zum Download an? Andere Viewer, wie beispielsweise Singularity, machen das doch auch!
A: Es ist keine Frage des Könnens, sondern des Wollens. Das Entwicklerteam vom Firestormteam will keine solchen Builds veröffentlichen. Wer es genau wissen will, der kann es unter http://modemworld.wordpress.com/2013/02/19/firestorm-meeting-13th-february-2013-video-and-transcript/7/ auf Englisch nachlesen. Jessica Lyon begründet es mit mangelnder Qualitätskontrolle. Nightly Builds sind das, was man auf Englisch als das Bleeding Edge bezeichnet. Es handelt sich dabei von der Qualität her nicht einmal um Alphaversionen. Ein Nightly Build kann funktionieren, muss aber nicht, und keiner wird garantieren, dass alle Funktionen richtig oder fehlerfrei funktionieren und man muss schlimmstenfalls auch mit Fehlern rechnen, die Datenverlust nach sich ziehen könnten.

Wer einen Nightly Build benutzt, der muss sich dieser Gefahr sicher sein, dass er auf eigenes Risiko handelt und keinerlei Support bekommen wird. Offensichtlich gehen die Firestormentwickler davon aus, dass die Benutzer dazu einfach in der Masse unfähig sind und daher veröffentlichen sie keine Nightly Builds.

F: Warum veröffentlichst du dann einen Nightly Build, wenn die Firestormentwickler selbst es nicht tun?
A: Weil ich es kann! Und weil das letzte Release von Firestorm von Oktober 2013 ist, und – seien wir da mal ehrlich – einfach nur schnarchlangsam rezzed. Ich persönlich benutze den Bleeding Edge selbst schon seit einiger Zeit und bin der Meinung, die bald vier Monate seit dem letzten Release machen sich durchaus bemerkbar.

Außerdem bin ich der Meinung, dass es ein Fehler des Firestormprojektes ist, bewusst keine Nightly Builds zur Verfügung zu stellen. Andere Viewer fahren sehr gut damit, und getreu dem Motto „Release early, release often“ stelle ich nun diese Kompilate zur Nutzung auf eigene Gefahr hin der Allgemeinheit zur Verfügung, weil einfach nicht jeder fähig ist, sich selbest eine Buildumgebung zu bauen und es selbst zu kompilieren. Das füllt damit eine Lücke.

F: Darfst du das denn veröffentlichen? Und was ist, wenn es den Firestormentwicklern nicht gefällt?
A: Ja, sicher darf ich das veröffentlichen. Der Viewer unterliegt einer Opensourcelizenz, der Quellcode ist ebenfalls verfügbar und wenn ich daraus kompilierte Binaries verteilen will, dann kann, darf und werde ich das tun, solange nicht proprietäre Bibliotheken wie von Kakadu mit dabei sind. Und wenn es den Firestormentwicklern mißfällt, dann können sie nicht viel mehr dagegen tun, als ihre Mißbilligung auszudrücken. Denn es ist absolut nichts illegales.

F: Ich vertraue dir nicht!
A: Schön, das musst du auch nicht. Eine gesunde Paranoia ist sogar besser. Nur wenn du mir nicht vertraust, dann benutze auch besser das Programm erst gar nicht, sondern besorge es selber aus einer anderen Quelle oder baue es einfach selber.

F: Mit welchen Einstellungen ist das Programm kompiliert?
A: Es benutzt als Grafikbibliothek OpenJPEG und ist mit Opensimulatorunterstützung kompiliert. Dies entspricht der Autobuild-Konfiguration ReleaseFS_open.

F: Kannst du nicht noch X, Y oder Z ins Programm kompilieren? Kannst du nicht noch X, Y oder Z für mich machen?
A: Nein! Kein Support, keine Unterstützung für Sonderwünsche. Entweder das Programm ist so, wie es vorliegt, für dich brauchbar, oder eben nicht. Ich habe nicht die Zeit dazu, auf solche Wünsche eingehen zu können!

F: Was kann das Ding, was fehlt?
A: Das Ding kann alle Grundfunktionen, die Firestorm eben auch kann. Fehlen tun u.a. fortgeschrittene Baufunktionen, wie beispielsweise Havok. Erwartet alles, nur keinen stabilen Betrieb oder eine vollständige Funktionalität wie im offiziellen Lindenviewer! Dieser Viewer ist eine Baustelle, und das merkt man auch mitunter!

F: Ist es gefahrlos möglich, mit dem Ding auf dem Second Life Grid zu arbeiten?
A: Im Zweifelsfalle: nein. Es handelt sich hierbei um eine Version, die offiziell mit Opensimunterstützung arbeitet und für Opensim gedacht ist. Das bedeutet, dass höchstwahrscheinlich viewerseitige Einschränkungen, die Linden Lab von Second Life Viewern fordert, in dieser Version abgeschaltet sind. Daher rate ich von einer Benutzung des Programms auf dem Second Life Grid ab.

F: Ist das hier nicht dein eigenes Viewerprojekt?
A: Nein. Es wäre mein eigenes Viewerprojekt, wenn ich Änderungen am Code vornehmen würde oder bereits vorgenommen hätte. Das aber habe ich nicht getan. Ich habe einzig und alleine den öffentlich zugänglichen Viewerquellcode unverändert genommen und kompiliert.

Rechtliche Hinweise
Ich biete keinerlei Support! Weder für den Firestormviewer an sich, noch für das kompilierte Programm oder beides. Ich stelle das Kompilat so zur Verfügung, wie es ist, nicht mehr und nicht weniger.. Weder bin ich ein Entwickler noch ein Mitarbeiter des Firestormentwicklerteams, sondern agiere von ihnen unabhängig und damit eigenständig!

Ich weise ausdrücklich darauf hin, dass es sich bei diesem Kompilat um eine Version handelt, deren Qualität noch vor Alpha ist. Das bedeutet, dass das Kompilat unvollständig sein kann, schwere Fehler enthalten kann und schlimmstenfalls Datenverlust nach sich ziehen kann. Ich gebe keinerlei Gewährleistung auf das Kompilat noch hafte ich für mögliche Schäden, die durch seine Nutzung entstehen könnten!

Ich erkläre, dass ich beim Kompilieren ausschließlich die öffentlichen Quellen unter http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/ verwandt habe, und den Code in keinster Weise modifiziert habe. Ich erkläre, dass ich dem Setupprogramm weder Trojaner, Keylogger oder andere Schadprogramme beigefügt habe und es zum Zeitpunkt des Uploads vorher auf Virenbefall überprüft habe.

Weiterhin weise ich ausdrücklich darauf hin, dass es sich hierbei um eine Version handelt, die für Opensimulator gedacht ist! Die Benutzung dieser Version auf dem Second Life Grid kann schlimmstenfalls den Verlust des Zugangs nach sich ziehen!

Kurz und gut: ich übernehme keine Haftung – für gar nichts, weder für Datenverlust, möglichen Schäden an der Hardware noch den möglichen Verlust des Second Life Zugangs oder falls der Viewer deinen Kaffee verschüttet! Die Nutzung des Programms geschieht ausschließlich und ausdrücklich auf eigene Gefahr hin! Wer das Programm nutzt, der ist sich dieser Sache bewusst und erklärt sich damit einverstanden!

Nichts destotrotz freue ich mich natürlich über Kommentare. Und hier geht es zum Download: https://drive.google.com/file/d/0B_BpSLqaUY_dUlBPby0yYk5qVmM/edit?usp=sharing

„Das neue Second Life – Jetzt noch schärfer und endlich in HD dank 64 bit!“

Ich habe heute in irgendeinem Kanal in Second Life – welcher, spielt keine Rolle – interessante Neuigkeiten über den Firestormviewer (oder war es der normale? Egal!) gehört.

Und das ging so: der Viewer käme bald in 64bit raus, und dann würden endlich die Texturen in HD rendern und viel klarer zu sehen sein als bisher. Ja holla, so viel Schwachsinn kreativer Wissensdrang auf einem Haufen war dann doch schon ein wenig zu viel, da musste ich dann einfach dagegen halten.

Zunächst mal bedeutet 64bit-Viewer nichts anderes, als dass der Viewerprozess mehr Speicher als bisher adressieren kann und es ggf. auch ein wenig flotter läuft. Aber was bedeutet es für die Grafik? Die Bilder in Second Life sind allesamt im Format JPEG2000 gespeichert. Die offiziellen Viewer benutzen dabei die Bibliothek dazu von der Firma Kakadu, manch anderer Openjpeg.

Die Bildkomprimierung in Second Life ist dabei verlustbehaftet, reversibel und vor allem qualitätstreu. Sprich, wenn man ein Bild einmal komprimiert hat und es mit derselben Routine tausend Mal dekomprimiert, dann kommt dabei immer wieder genau dasselbe Bild heraus. So und nicht anders arbeiten nun einmal Computer, sie sind berechenbar. Ob dabei die Routine in 32bit oder 64bit läuft, spielt dabei keine Rolle, die Qualität ist dabei absolut dieselbe.

Dann meinten sie da noch, man könnte in Second Life Texturen mit der Dimensionierung 2048×2048 speichern und benutzen. Früher ging das wegen eines Fehlers in der Tat, dass sich solche Monstertexturen im Assetserver ablegen ließen, aber das ist schon seit Jahren vorbei.

Niemand wird einen daran hindern, eine Textur mit 2048×2048 Pixeln uploaden zu wollen; das klappt auch. Nur: bevor diese Monstertextur gespeichert wird, skaliert das System sie zuerst automatisch auf 1024×1024 Pixel herab und speichert dann diese runter skalierte Größe im Assetserver.

Und das ist auch besser so, denn solche Monstertexturen braucht kein Mensch und solange der Viewer sich weigert, auch bei Grafikkarten mit 2 GB VRAM mehr als 512 MB VRAM zu benutzen, ist das einfach nur unnötige Speicherverschwendung.