Articles and Writeups

Here you'll finde articles and other writeups.
Longer articles will be displayed on a new page or as PDF.

Das „Spring Rich Client Project“ german

Michaela Kieneke

Artikel als PDF Der Artikel als PDF Source Code Source Code

Screenshot Spring RCP

Das „Spring Rich Client Projekt“ zeigt die Flexibilität und Wiederverwendbarkeit von Desktop-Anwendungen, die auf dem „Spring Framework“ basieren.
Eine einmal erstellte Applikation kann für weitere Projekte als Basis verwendet werden. Zur Erstellung der Oberfläche wird die „Swing“-Bibliothek verwendet.  Hierbei bietet das „Spring RCP“ Komponenten, einzelne Elemente wie z.B. „Menu-“ und „Toolbar“, „Wizards“, „Views“ oder Prioritäten bzw. Abhängigkeiten mit vergleichsweise wenigen Codezeilen zu realisieren. Die Oberflächenprogrammierung und das Applikationsmanagement werden somit vereinfacht. Darüber hinaus bietet es ergänzende Klassen zur Datenbindung und -validierung. Zur Datenbankanbindung können Komponenten des „Spring Frameworks“ verwendet werden.


Wrapping Perl with PHP

Jochen Lüll

View Tutorial View ArticleView Demos View Demos

Perlwrapper

A lot of low cost hosting solutions have only PHP support and don't support Perl CGI scripts.
Although PHP is good for creating web pages it might be sometimes desirable to use Perl scripts.

This articles shows how to write an PHP to Perl wrapper to supper Per CGI scripts for web hosting solutions on which only PHP is supported.


Creating Screen Casts with ScreenCam

Jochen Lüll

ScreenCam Screenshot
View Tutorial View Tutorial

ScreenCam is a small applications that records screen shots and turns them into a video. This tutorial shows how to record screen casts and how to enhance the recording by using FFmpeg.

ScreenCam is just a small tool, so it is not comparable with full sizes screen capture applications, but it should be sufficient for recording small screen casts.
One main advantage is the ScreenCam is platform independent so it runs on all platforms (e.g. Windows and Linux) capable of running Java.

The standard output format of ScreenCam is Quicktime (MOV) but if FFmpeg is installed an FLV file will be created in addition.

At the end of the tutorial I will describe how to tune the resulting movie files by reducing the framerate and adding sound.


Multicasting Images with Java

Jochen Lüll

View Article View Article  Source Code Source Code

Multicasting images

Distributing images within a network can be useful for a presentations or simply if a beamer is missing in a meeting room. 

This article shows how to multicast images and screenshots, so that they can be viewed by anyone within the network.

Multicasting is based on UDP packets. UDP offers (unlike TCP) no traffic control. This means that packes are not guaranteed to be delivered in the right order or that they might not be delivered at all.
Computers can join a so called Multicast Group which is represented by an IP-Number and a port.

In this sample application we will multicast screenshots and images so that they can be displayed everywhere within the network.

The application consists of a sender and receiver Java application.

A GUI application using the techniques described in the article can be found in the Download Area.


Kanonische Huffman Codes german

Michaela Kieneke

Artikel als PDF Der Artikel als PDF Applikation starten Applikation starten Source Code Source Code

Huffman screenshot

Sicher kann sich fast jeder von uns daran erinnern, wie er vor vielen Jahren mit Freunden verschlüsselte Nachrichten ausgetauscht hat. Dazu wurde mühsam jedes einzelne Zeichen durch ein anderes ersetzt. Im einfachsten Fall verschob man die Buchstaben des Alphabets um ein oder mehre Stellen vor oder zurück. Erste Unstimmigkeiten kamen auf, sobald Zahlen bzw. Ziffern mit verschlüsselt werden sollten. Wurden sie einfach ans Alphabet hinten angehängt? Oder sollten die zehn Ziffern für sich selbst verschoben werden? Es mussten also eindeutige Regeln für die Verschlüsselung aufgestellt werden.

Eine Erweiterung waren selbst erfundene oder z.B. vielleicht den Micky Maus Heften entnommene Symbole, die für jedes Zeichen des Alphabets abgemalt werden mussten. Das Verschlüsseln fiel uns noch recht leicht - aber wenn dann eine verschlüsselte Nachricht bei uns ankam, dauerte es meist sehr lange, bis wir alle Zeichen wieder zurück übersetzt hatten. Klar, beim Verschlüsseln konnte aus einer sortierten Liste gewählt werden, beim Entschlüsseln musste man Zeichen für Zeichen vergleichen, um auf das richtige Symbol zu schließen.

Häufig auftretende Buchstaben, wie beispielsweise das E im deutschen Wortschatz, konnte man bald auswendig, seltene Buchstaben wie z.B. das Q konnte man sich eher nicht merken. So kam man auf die Idee, für häufiger auftretende Zeichen einfachere Symbole zur Verschlüsselung zu wählen, die Symbole für seltenere Zeichen konnten ruhig komplizierter zu malen sein.

Etwas Ähnliches lässt sich beim Morsealphabet erkennen, welches auf Samuel Morse zurück geht. Bei diesem wird jedes Zeichen des normalen Alphabets durch eine festgelegte Kombination von kurzen und langen Signalen ersetzt, deren Vorteil darin besteht, dass sie akustisch oder visuell übertragen werden können. Für häufig auftretende Zeichen wie das E wird nur ein kurzes Signal, für das viel seltenere Q werden zwei lange, ein kurzes und wiederum ein langes Signal verwendet.

Diese Idee wird ebenfalls vom Huffman Code berücksichtigt. Allerdings wird dieser nicht dazu verwendet, Texte zu verschlüsseln. Er soll in erster Linie die Daten komprimieren. Dazu wird der vorliegende Text untersucht und den am häufigsten auftretenden Zeichen bzw. Worten die kürzesten Codewörter zugewiesen, welche ausschließlich aus Bits, also 0 und 1, bestehen. Komprimierte Texte lassen sich relativ einfach wieder decodieren, da eine Besonderheit des Huffman Codes darin besteht, dass kein Codewort der Anfang eines anderen Codewortes ist.

Der Nachteil beim normalen Huffman Code besteht darin, dass der Aufbau dieser Codewörter mit unterschiedlichen Ergebnissen durchgeführt werden kann und somit nicht eindeutig ist. Hierzu müssten umfangreiche Regeln aufgestellt werden. Der kanonische Huffman Code dagegen verwendet eine eindeutige Codierung und belegt den Schwerpunkt dieser Projektarbeit.

Valid HTML 4.01 Transitional