Apache Proxy für Node.js einrichten

Will man auf einem Rootserver parallel einen Apache und einen Node.js Server betreiben hat man das Problem das beide nicht einfach auf dem selben Port laufen können. Zwar ist es theoretisch möglich Node.js oder Apache auf unterschiedlichen Ports laufen zu lassen. Allerdings ist das bei Webserver unüblich und kann zu Problemen führen wenn bei einigen Benutzern nur der Port 80 in der Firewall geöffnet ist.  Auch ist es damit nicht möglich nur eine bestimmte Subdomain unter Node.js zu betreiben.

In der folgenden Anleitung wird beschrieben wie man eine Subdomain unter Apache an einen Node.js Server weiterleitet, alles wurde unter Ubuntu erfolgreich getestet. Die hier vorgestellte Lösung ist performance-technisch nicht optimal aber einfach umzusetzen.

Hier der verwendete minimale Node.js Server:

var http = require("http");
var s = http.createServer(function(req,res){
  res.writeHead(200, {'content-type': 'text/plain'});
  res.end("Node working on 8080"); 
});
s.listen(8080); 
console.log("Server running...") 

Für den Apache müssen über zwei zusätzliche Module installiert werden: sudo apt-get install libapache2-mod-proxy-html Danach müssen die beiden Module über  sudo a2enmod proxy_http
sudo a2enmod proxy
aktiviert werden. Die Virtualhost-Datei muss wie folgt aufgebaut sein:

<VirtualHost *:80>
   ServerName tour.ragersweb.de
   ServerAdmin webmaster@ragersweb.de 

   ProxyRequests On
   <Proxy *>
    Order deny,allow
    Allow from localhost
   </Proxy>
   ProxyPass / http://localhost:8080
   ProxyPassReverse / http://localhost:8080 
</VirtualHost>

In diesem Beispiel werden alle Anfragen an die Subdomain bps.ragersweb.de an den unter Port 8080 laufenden Node.js Server weiterleitet.

node-webkit - Desktop Applicationen mit Node.js

node-webkit ist eine auf Chronium und Node.js basierende Laufzeitumgebung für Desktopanwendungen. Dafür wurde die in Chronium normal einsetzte V8-Engine durch die von Node.js ersetzt bzw. erweitert. Dies war möglich da Node.js ebenfalls auf die V8-Engine aufsetzt. Durch die Integration von Node.js in die Webkit-Rendering-Engine von Chronium kann die gesamte Node.js API verwendet werden. Es sind also Zugriffe auf Netzwerk, das lokale Filesystem möglich. Auch können beliebige Node.js Extensions verwendet werden. Da für Node.js momentan noch kein ausgereiftes GUI-Buinding zur Verfügung steht ist node-webkit eine gute Möglichkeit Desktop-Applikationen in JavaScript zu erstellen. Durch die Verwendung von WebGL ist es sogar möglich 3D-Anwendungen auf den Desktop zu bringen. Die Laufzeitumgebung ist existiert für Windows, Linux und MacOs.

Tiled - Map-Editor

Tiled ist ein Open-Source-Map-Editor für 2D-Spiele. Er ist einfach zu benutzen und kann dennoch mit vielen Game-Engines verwendet werden. Mit Tiled können Maps/Level für beliebige Spiele wie z.B. Jump & Run oder RPGs erstellt werden. Das Programm exportiert die fertigen Maps im XML-Format dadurch ist es einfach Importscripte zu schreiben, alternativ können auch Export-Filter für Tiled erstellt werden. Das Programm basiert in der aktuellen Version auf den Qt-Framework und ist für Windows und Linux verfügbar.

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 

UMLet

UMLet ist ein kostenloses UML-Editor. Im Gegensatz zu anderen UML-Editoren können Diagramme regelrecht programmiert werden. Der Code ist zum großen Teil selbsterklärenden. Vorlagen können in den Arbeitsbereich gezogen und dann per Code bearbeitet werden. Das ausrichten und skalieren Erfolg danach wie üblich mit der Maus. UMLet ist als Standalone und als Eclipse-Plugin verfügbar.

Weitere Informationen: www.umlet.com

ASCII-Art online Erstellen

ASCII-Art (englisch für ASCII-Kunst) ist eine Kunstrichtung, die mit Buchstaben, Ziffern und Sonderzeichen einer nichtproportionalen Schrift kleine Piktogramme oder ganze Bilder darzustellen versucht. Auf Computern eignet sich der ASCII-Zeichensatz hierfür besonders, da er weltweit auf nahezu allen Systemen verfügbar ist (Quelle: wikipedia).

Will man nur schnell mal eine beeindruckende Überschrift für ein kleines Scriptprogramm erstellen muss man nicht extra ein Programm wie JavE installieren.

Auf der Webseite patorjk.com können beliebige Texte in ASCII-Art umgewandelt werden. 

Bat To Exe Converter

Mit dem "Bat To Exe Converter" kann aus beliebigen Batch und/oder Scriptdateien ein Executables erzeugt werden. Durch das Einbinden von zusätzlichen Dateien ist es es möglich PHP-Scripte in EXE-Dateien zu verpacken. Dafür muss lediglich eine aufrufende BAT-Datei erstellt werden. Der entsprechende PHP-Interpreter kann der EXE einfach hinzugefügt werden, wodurch sich die Dateigröße natürlich vergrößert. Des weiteren können noch Startoptionen, Versionsinformationen sowie ein Icon festgelegt werden. Weitere Informationen und den Download von "Bat To Exe Converter" finden man unter: www.f2ko.de

Ninite - Autoinstall für zahlreiche bekannte Programme

Ist Windows erst einmal neu installiert ist es immer das Gleiche: Es ist notwendig alle Programme von Hand neu zu installieren. Ninite nimmt diese Aufgabe ab und ermöglicht es um die 70 Programme in einem Durchlauf zu installieren. Die Programme können über die Webseite von Ninite ausgewählt werden. Nach der Auswahl kann man einen Installer herunterladen der alle ausgewählten Programme zuerst aus dem Internet herunterlädt und dann selbständig installiert. Zu den Programme gehören z.B:

  • Firefox, Chrome, Opera
  • Skype, Pidgin
  • Thunderbird
  • ITunes, Songbird
  • VLC, Winamp 
  • Flash (IE und Andere)
  • Java
  • Paint.Net, Gimp
  • OpenOffice, LibreOffice
  • Adobe Reader, PDF Creator
  • Dropbox
  • Google Earh
  • KeePass
  • Steam
  • CdBurnerXP
  • 7Zip

Das Programm kann unter ninite.com als Freeware heruntergeladen werden.  

Pencil

Bei Pencil handelt es sich um ein Freeware-Mockup-Tool. Mit dem Programm können nicht funktionierende Dummys erstellt werden um GUI-Oberflächen schon im voraus zu visualisieren. Es ist eine gute Alternative zu Balsamiq hat allerdings nicht so viele Widgets, es können aber zusätzlichr  Widgets nachinstalliert werden.

Pencil kann unter  http://pencil.evolus.vn als Firefox-Plugin oder eigenständiges Programm bezogen werden.