Archive

Author Archive

Chess game via WebSockets

November 9th, 2014 Comments off

Here a small example what is possible with the HTML 5 WebSocket protocol, which is supported by almost all modern web browsers.

A WebSocket is a bidirectional connection between a browser and a server. It is possible to send and receive text messages from both directions in “nearly real-time”. With “nearly real-time” I mean that the human senses do not notice significant delays, when the network connection is fast and stable. WebSockets are suitable for web applications that have high interactivity and low data volumes, like e.g. a chat program or a computer game.

Read more…

“Law of Demeter” as a Software Metric

June 3rd, 2012 Comments off

The “Law of Demeter” (LoD) is one important principle to achieve low coupling in your code. And it could be turned into a software metric easily.

To measure the coupling, you could count the “LoD violations” per method. “0” means that no violations occured and the result is increased by 1 for every violation that was found.

I am wondering if someone implemented such a metric and if it could be used in Eclipse or NetBeans.

Here is a small example.

Read more…

Remote File System for NetBeans 6.9.1

February 12th, 2011 7 comments

A few months ago, I provided a patch for the Remote File System” plugin for NetBeans to make the FTP file system work with the current NetBeans version 6.9.1. The patch is available in the repository on Kenai, but till now there was no binary distribution. Several people asked me for that and so I created one: nb-remotefs-0.1.3

Plus, I fixed a bug today within the SFTP module so that SFTP and FTP are working both. Remotefs is still in an early stage and many features are still missing, but I recovered the basic functionality so that you can edit your remote files in NetBeans 6.9.1.

The initial developer has no time to maintain the project and I don’t have much time either. I don’t know if the missing features will ever be implemented. Maybe you can tell me what you are missing most and I will try to find some time to do it.

Automatisches Ressourcenmanagement in Java 7

March 10th, 2009 Comments off

Wenn in einem Java-Programm Ressourcen (Dateien, SQL-Verbindungen, usw.) geöffnet werden, muss der Programmierer darauf achten, die Ressourcen auch ordnungsgemäß wieder frei zu geben. Geschieht dies nicht, erzeugt das Programm ein “Ressourcen-Leck”. Die Folgen können unterschiedlich sein, von nicht spürbaren Performanceeinbußen bis hin zur Instabilität und Untauglichkeit des gesamten Programms.
Um diese Fehlerquelle im Vorfeld zu vermeiden, wäre es also wünschenswert, dass eine Programmierplattform das Ressourcenmanagement weitestgehend automatisch durchführen kann. In Java ist das bisher nicht möglich, aber für Java 7 gibt es einen Änderungsvorschlag dafür.

So sähe dann mit Java 7 z.B. das Kopieren einer Datei aus:

1
2
3
4
5
6
7
8
9
    static void copy(String src, String dest) throws IOException {
        try (InputStream in = new FileInputStream(src);
             OutputStream out = new FileOutputStream(dest)) {
            byte[] buf = new byte[8192];
            int n;
            while ((n = in.read(buf)) >= 0)
                out.write(buf, 0, n);
        }
    }

Read more…

Categories: Programmierung Tags:

Homeserver mit Opensolaris (Erfahrungsbericht)

March 3rd, 2009 Comments off

Ein alter, ungenutzter Rechner kann als Homeserver umfunktioniert werden, um beispielsweise wichtige Daten darauf zu sichern. In meinem Fall benutze ich einen AMD Duron mit 1000 MHz und 512 MB RAM.
Ein Dateiserver sollte besonders robust sein und das Risiko für Datenverluste minimieren. Um sich beispielsweise gegen den Ausfall einer Festplatte abzusichern, sollten die Daten auf einer zweiten Festplatte gespiegelt werden. Und um sich vor versehentlichem Löschen zu schützen, sollten inkrementelle Backups erstellt werden, so dass alte Zustände der Daten wiederhergestellt werden können. Das (und noch mehr) kann relativ einfach mit dem innovativen Dateisystem ZFS erreicht werden.
Für die Spiegelung werden zwei baugleiche Festplatten benötigt. In diesem Fall kommen zwei USB-2.0-Festplatten mit jeweils 1000 GB Kapazität zum Einsatz. Als Betriebssystem wird Opensolaris verwendet (Distribution: Nexenta Core Platform 2 Beta2).


Read more…