Websites mit Node.js

Das Entwickeln von Webanwendungen mit Node.js unterscheidet sich Grundlegend von der Herangehensweise in PHP. Wo PHP eine sehr umfangreiche Standartbibliothek bietet ist die von Node.js auf das wichtigste reduziert.

Um Node.js zu erweitern stehen zahlreiche Module zur Verfügung. Module können über die Paketverwaltung NPM installiert werden. Inzwischen ist NPM standardmäßig in der Node.js Installation enthalten.

Nachfolgend einige wichtige Module die für Standardwebanwendungen hilfreich sind:

  • Express
    Webframework welches die Arbeit mit Node.js extrem erleichtert
  • Swig
    Templateengine für express, benötigt Consolidate um zu funktionieren
  • Xml2js
    Einfacher Wrapper wandelt XML in JSON um und ermöglicht so direkten Zugriff. Funktioniert unter Linux und Windows
  • Eyes
    Bringt Farbe in die Console
  • MongoJs
    Datenbanktreiber für MongoDb
  • Prompt
    Nimmt Eingaben von der Commandline entgegen
  • Cheerio
    jQuery Implementierung für Node.js ermöglicht den Zugriff auf das DOM über die bekannten jQuery Selektoren
  • Request
    einfacheres Screen-Scraping für Node.js, funktioniert auch unter Windows 

Twitter Bootstrap

Bei Bootstrap handelt es sich um ein von der Firma "Twitter" entwickeltes UI-Toolkit. Es kann mit jQuery UI verglichen werden und basiert ebenfalls auf jQuery. Neben reinen Komponenten bietet es aber auch generelle Stylesheets die das Entwickeln von durchgängigen Layouts vereinfachen.

Generell macht Bootstrap einen ausgereifteren Eindruck als jQuery UI, die einzelnen Features sind sehr gut aufeinander abgestimmt und die Komponenten sind in der Standardausführung schöner anzusehen als die von jQuery UI.

Weitere Informationen unter: http://twitter.github.com

Font Awesome

Font Awesome ist eine spezielle Schriftart die ausschließlich aus Symbolen besteht. Sie wurde für die Benutzung mit Twitter Bootstrap erstellt. Durch die Verwendung von Vektordaten sind die Symbole beliebig skalierbar und wesentlich kleiner als Pixelbilder.

Weitere Informationen unter: fortawesome.github.com

Bambalam PHP EXE Compiler

Bei Bambalam handelt es sich trotz seines Namens nicht wirklich um einen Compiler. Viel mehr embedded Bambalam PHP und die entsprechenden PHP-Dateien in eine EXE. Der Code wird  immer noch interpretiert. 

Dennoch ist Bambalam eine interessantes Programm,  ermöglicht er doch mit PHP ausführbare Konsolenprogramm zu erstellen. Oft ist es mit PHP möglich schneller zum Ziel zu kommen als mit anderen Programmiersprachen. Es war bisher jedoch nur schlecht möglich diese Programme auf anderen Rechnern auszuführen, da immer eine PHP-Installation vorhanden sein musste. Mit  Bambalam  ist das nicht mehr notwendig. Es können PHP 4 und PHP 5 verwendet werden. Auch ist es möglich  PHP-Erweiterungen einzubinden. Weitere Informationen unter: www.bambalam.se/bamcompile

XUL - Platformübergreifende Anwendungen in JavaScript

XUL ist eine von der Mozilla-Stiftung entwickelte auf XML bassierende Beschreibungs- sprache. Mit XUL(XML User Interface Language) ist die gesamte Oberfläche des Firefox-Browser erstellt worden. XUL wird mittels der Gecko-Engine gerendert. Der  XLU-Runner ist eine Laufzeit- umgebung die es ermöglicht eigenständige Anwendungen zu erstellen. Dabei wird die Logik in JavaScript geschrieben.

XUL-Runner implementiert folgende Features:

  • XPCOM
  • Networking
  • Gecko rendering engine
  • DOM editing and transaction support (no UI)
  • Cryptography
  • XBL (XBL2 planned)
  • XUL
  • SVG
  • XSLT
  • XML Extras (XMLHttpRequest, DOMParser, etc.)
  • Web Services (SOAP)
  • Auto-update support (not yet complete)
  • Type ahead find toolbar
  • Accessibility support
  • IPC services for communication between gecko-based apps (not yet complete)
  • Storage - SqLite interfaces (not yet turned on by default)

Weitere Informationen unter: developer.mozilla.org

PHP-Reboot

PHP-Reboot ist eine an PHP angelehnte Sprache. Sie wird momentan von Rémi Forax für die Java-Virtual Machine implementiert und ist dadurch auf allen Java-Platformen lauffähig. Explizit wird hier Android genannt. PHP-Reboot soll keine eins-zu-eins Umsetzung von PHP werden, der Syntax und  Sprachumfang soll aber ähnelich sein. Die Sprache soll mit weniger Semikolons und $-Zeichen auskommen. PHP kommt mit Derby als integrierte Datenbank und bringt auch einen eigenen Webserver auf Basis von Grizzly. Die Sprache unterstützrt nativ XML und SQL, ws werden also keine anderen Tools benötigt um eine Web-Application zu erstellen.

PHP-Reboot kann in einer frühen Version unter code.google.com/p/phpreboot heruntergeladen werden.

Voronoi - ASCII-Art

Bei einem Voronoidiagramm, welches auch als Dirichlet-Zerlegung bezeichnet wird, handelt es sich um eine Darstellung eines endlichen Raumes, der in einzelne Regionen aufgeteilt wird. Jede Region kann einen oder mehrere Zentren besitzen. Dies variiert je nach Anwendungsfall. Die Größe der Regionen ist unabhängig von der Anzahl der Regionen und wird durch den Bezug zur euklidischen Metrik gebildet. Dies bedeutet, dass alle in der Region liegenden Punkte zu   keinem anderen Zentrum näher liegen, als zu seinem eigenen. Alle Punkte, welche die gleiche Distanz zu mehreren Zentren besitzen, werden als Grenzen bezeichnet.

Zur Bestimmung der Voronoi-Regionen wird die nächste Entfernung zweier Voronoi- Zentren durch nächst größere geteilt (best / good). Dies Zahl wird immer zwischen null und eins liegen. Punkte die nahe dem Zentrum sind haben fast den wert 0. Punkte nahe einer Kante haben fast den Wert eins. Was so viel bedeutet das sie fast genau soweit von zwei Punkten entfernt sind. Am Ende wird dieser Wert mit 10 multipliziert und in einen Integer gecastet. Diese Zahl ist dann der Index aus einem Array in dem alle für die Grafik zur Verfügung stehenden Zeichen abgelegt sind.

Maratis

Maratis ist ein einfaches, portables, grafisches Game-Developmet-Tool für Künstler und Entwickler. Die integrierte Engine wurde bereits unter Windows, Mac und iPhone getestet und kann laut Entwickler einfach auf andere Plattformen portiert werden. Die eigentliche Entwicklungsumgebung ist bisher nur für Windows verfügbar. In der aktuellen Fassung kann Maratis noch nicht mit kommerziellen Game-Developmet-Tool wie Unity mithalten, allerdings ist die Benutzeroberfläche sehr einfach und intuitiv gehalten. 

Weitere Informationen findet man unter: www.maratis3d.org

libRocket - Game-Interfaces auf die schöne Art

libRocket ist eine C++ Middelware die es ermöglicht mit HTML und CSS User-Interfaces für Spiele oder 3D-Anwendungen zu erstellen. libRocket ist für die Systeme Windows, Mac und Linux verfügbar und steht unter der MIT-Lizenz. 

Durch den Einsatzt bekannter HTML-Technik gestaltet sich das Erstellen von Oberflächen sehr einfach und es muss keine neue Technik gelernt werden.  Durch abstrakte Interfaces ist es möglich libRocket in unterschiedlichen Game-Engines einzusetzen. Es existieren Beispiele für Orge, OpenGL und DirectX, es ist aber auch der Einsatz von anderen Engines wie z.B Irrlicht möglich. 

Weitere Informationen zu libRocket  findet man auf der Projekt-Homepage: librocket.com