Dreidimensional ins Web – WebGL mit Three.Js

WebGL und Three.js wird in Zukunft immer beliebter. Three.js ist eine offene Javascript Umgebung die auf WebGL basiert und welche es ermöglicht einfach 3D Modelle zu erstellen, laden oder sogar zu manipulieren.

Um die Bibliothek zu testen wurde von mir eine kleine Testseite erstellt, welche das aktuelle Wetter in Salzburg mit einfachen 3D Modellen wie Wolken, Sonne und Regentropfen visualisiert. Natürlich gibt es unendlich weitere Möglichkeiten was man alles mit dieser Bibliothek machen kann.

Weiters ist es relativ einfach möglich mit Blender ein Modell zu exportieren, um es dann über Three.js und ein paar Zeilen Code laden und z.B. rotieren lassen kann.

WebGL Würfel mit Hello World darauf
3D im Browser

Es ist sogar möglich Spiele oder interaktive Musikvideos zu gestalten und damit ganz neue Wege des Webs zu erschaffen. Interessant wird wie sich diese neue Dimension in den nächsten paar Jahren weiter entwickeln wird.

Zukünftig könnte man ja dann auch Augmented Reality Anwendungen dafür erstellen, wie z.B. bei einem Optiker wo eine dreidimensionale Betrachtung des Produktes am Kopf des Kunden möglich wäre.

Open source PHP Klasse für Nested Sets in MySQL

Was ist eine Baumstruktur?

Gerichteter Baum

Eine Baumstuktur wird in der Informatik oftmals benötigt um Daten zu strukturieren. Zum Beispiel ist das gesamte Dateisystem als Baum darstellbar. Oder Hierachien in einem Unternehmen. MySQL ist jedoch dafür bekannt Daten in einer tabellarischen Form auszulesen und zu speichern. Nested Stets kommen eigentlich aus der Mengenlehre aber lassen sich als Baum hin- und herwandeln. Lediglich die visuelle Darstellung ist anders.

Nested Sets in einer Liste?

Damals habe ich mal einen ganz kurzen Blogeintrag geschrieben, mit deren Hilfe man Bäume in MySQL effektiv speichern kann. Ich habe dazu jetzt mal die Zeit gefunden um eine simple PHP-Klasse zu schreiben, welche die einfachsten bzw. gebräuchlichsten Methoden unterstüzt:

  • Baum laden
  • Element einfügen
  • Element löschen (inkl. Kind-Elemente)
  • istKnoten? (bzw. hat Kinder?)
  • als HTML anzeigen

DEMO      DOWNLOAD als ZIP

Klasse


DEMO      DOWNLOAD als ZIP

Demonstration


DEMO      DOWNLOAD als ZIP

Cleantodo neu programmiert – SQLite Implementation

Um nach langer Abstinenz wieder einmal etwas zu programmieren, habe ich Cleantodo von Grund auf neu geschrieben und zwar mit einem neuen Datenbanksystem SQLite und das Ganze auch noch objektorientiert. Man braucht nur die PHP files auf den Server laden und kann dann auch gleich loslegen. Die Datenbank wird von selbst erstellt. Das ganze ist Multiuser fähig und man kann Tasks löschen und wiederherstellen. Der Quelltext wird opensource released werden und vlt. wird es ein kleines Plugin System geben. Es soll auf jeden Fall so modular wie möglich aufgebaut sein und man soll es vielleicht in Zukunft auf ein komplexes Arbeitsnetzwerk erweitern können.

Man kann mittlerweile auch mit MySQL sowie SQLite arbeiten. Das kann man in der config-Datei einstellen. Zurzeit ist alles mit HTML und PHP programmiert. Möchte das Ganze auf AJAX erweitern aber mit dem Zusatz das auch alles noch ohne JS bzw. AJAX funktioniert, also so eine Art Fallback.

Halte euch diesbezüglich noch auf dem Laufenden!