socket.io und node.js Einsteiger-Tutorial für Windows

Die Benutzung von socket.io mit node.js ist einfach aber wird oft unverständlich erklärt. Deshalb schreibe ich kurz das Wichtigste in wenigen Schritten nieder:

  1. node.js v0.6.16 für Windows herunterladen und installieren
  2. C:\Windows\System32\cmd.exe aufrufen
  3. Ins Projektverzeichnis wechseln, z.B.: cd C:\my_project
  4. npm install socket.io eingeben, wodurch socket.io im Ordner „C:\my_project\node_modules\socket.io“ installiert wird
  5. Die Datei C:\my_project\server.js mit diesem Inhalt anlegen:
    var io = require('socket.io').listen(72);
     
    io.sockets.on('connection', function (socket) {
      socket.emit('news', {
        hello: 'world'
      });
      socket.on('my other event', function (data) {
        console.log(data);
      });
    });
  6. Die Datei C:\my_project\client.html mit diesem Inhalt anlegen:
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8" />
        <title>Test</title>
        <style type="text/css">
          * { margin: 0; padding: 0; border: 0; }
        </style>
      </head>
      <body>  
        <script src="http://localhost:72/socket.io/socket.io.js"></script>
        <script>
          var socket = io.connect('http://localhost:72');
          socket.on('news', function (data) {
            console.log(data);
            socket.emit('my other event', { my: 'data' });
          });
        </script>
      </body>
    </html>
  7. Folgende Befehle in der cmd ausführen:
    cd C:\my_project
    node server.js
  8. C:\my_project\client.html im Browser öffnen und das Ergebnis in der JavaScript-Konsole bewundern

jQuery Gallery Tutorial

The best gallery for jQuery I’ve found so far is the jQuery lightbox plugin. The usage is very easy:

Exact sequence of steps

  1. Include jQuery
  2. Include lightbox JavaScript
  3. Include lightbox CSS
  4. Write a little function that selects links which should be used by lightbox
  5. Insert lightbox links which will have the fullsize image as target
  6. Surround your thumbnail images with those links

jQuery Gallery Tutorial weiterlesen

Java und SQLite – Tutorial

Ich war überrascht, wie einfach es ist, mit Java auf einer SQLite-Datenbank zu arbeiten. Man muss lediglich einen SQLite JDBC Treiber (z.B. sqlitejdbc-v056.jar oder Xerial SQLite JDBC Driver) in seinem Java-Projekt hinzufügen und dann diesen Beispiel-Code ausführen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class Main
{
  public static void main(String[] args) throws Exception
  {
    Class.forName("org.sqlite.JDBC");
    Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
    Statement stat = conn.createStatement();
    stat.executeUpdate("drop table if exists people;");
    stat.executeUpdate("create table people (name, occupation);");
    PreparedStatement prep = conn.prepareStatement("insert into people values (?, ?);");
 
    prep.setString(1, "Gandhi");
    prep.setString(2, "politics");
    prep.addBatch();
 
    prep.setString(1, "Turing");
    prep.setString(2, "computers");
    prep.addBatch();
 
    prep.setString(1, "Wittgenstein");
    prep.setString(2, "smartypants");
    prep.addBatch();
 
    conn.setAutoCommit(false);
    prep.executeBatch();
    conn.setAutoCommit(true);
 
    ResultSet rs = stat.executeQuery("select * from people;");
    while (rs.next())
    {
      System.out.println("name = " + rs.getString("name"));
      System.out.println("job = " + rs.getString("occupation"));
    }
    rs.close();
    conn.close();
  }
}

Daraufhin wird beim erstmaligen Aufruf eine Datenbank namens „test.db“ im Projekt-Ordner angelegt und eine Tabelle „people“ mit den Spalten „RecNo“, „name“ und „occupation“. In diese Tabelle werden weiterhin drei Datensätze geschrieben. Doch Vorsicht! Beim erneuten Ausführen des Codes wird die Tabelle wieder gelöscht und neu angelegt (siehe Code-Zeile 14). Wer die SQLite-Datenbank genauer betrachten möchte, dem empfehle ich das Werkzeug SQLite Expert, welches in der „Personal Edition“ sogar kostenlos ist!

log4j Tutorial

Auf der Suche nach dem richtigen Weg, um log4j in einem Java-Projekt zu integrieren, bin ich einen großen Umweg über haufenweise Blog-Artikel mit unvollständigen Konfigurationen und falschen Angaben gegangen, bis ich letztendlich bei diesem Video angekommen bin:

Obwohl dieses Video weder auf Deutsch noch auf Englisch ist, hat es mir in genau in 2 Minuten (!) weiterhelfen können, so dass ich jetzt ein dateibasiertes Logging mit log4j in meinem Projekt habe. Mehr wollte ich gar nicht. Das Durchstöbern von diversen Blogs hat mich über 1 Stunde Zeit gekostet, die nicht nötig gewesen wäre, wenn mal jemand auf die Idee gekommen wäre, das Thema durchschaubar und nicht umständlich und überladen zu beschreiben. Immerhin ist die Einbindung von log4j eine einfache Aufgabe!

Mein Anruf an alle Blogger dieser Welt: Bemüht euch vollständige Lösungen zu schreiben! Danke.

Hier meine Kurzbeschreibung für die Verwendung von log4j in NetBeans 7.0:
log4j Tutorial weiterlesen

Zend Framework – MVC Tutorial Ergänzung

Wer zum [post id=1747]Zend Framework – MVC Tutorial[/post] noch eine Ergänzung braucht, der findet sie im nachfolgenden Video. Speziell wird nochmal auf die Übergabe von Parametern und Werten eingegangen sowie auf die Bedeutung des Index -und Error-Controllers.

Zend Framework – MVC Tutorial Ergänzung:

Zend_Form Decorators benutzen

Wie man einen eigenen Zend Decorator für ein Zend_Form schreibt, sieht man im Video „Creating Custom Zend_Form Decorators„. Ein wirklich großartiges Video, das ich nicht hätte besser machen können!

Weitere hilfreiche Links:
Decorators with Zend_Form
Creating Custom Form Markup Using Zend_Form_Decorator