Imgalize
Zur Analyse von Einbettungen in Pixelgrafiken (Steganografie: Verstecken von Daten in anderen Daten) habe ich ein kleines Programm gebastelt, welches ich hier zur Verfügung stellen möchte. Dabei handelt es sich um eine Minianwendung, welche Bilder laden kann. Die eigentliche Funktionalität wird durch Plugins bereitgestellt. Enthalten sind im Moment die folgenden: Extrahieren der Least Significant Bits (LSB), erstellen eines Histogramms, Extrahieren eines Textes aus den LSB mit konstantem Schlüssel. Es können leicht eigene Plugins hinzugefügt werden. Die Benutzungsoberfläche ist mit dem Standard Widget Toolkit (SWT) umgesetzt, so dass die Standardelemente des jeweiligen Grafikmanagers verwendet werden. Zum Ausführen wird Java (JRE 1.5) und das SWT (in der Regel vorinstalliert) benötigt. Die Anwendung kann nach dem Entpacken des Archivs mit diesem Befehl gestartet werden: java -jar imgalize.jar
Kompilierte Version für Linux 64Bit und Quellcode herunterladen
Kompilierte Version für Windows und Quellcode herunterladen
User and Developer Manual (English)
Bildschirmfoto
Lizenz: GPLv3
FlatIcons
Diese Piktogrammsammlung ist entstanden, da ich beim Programmieren immer wieder auf das Problem stoße, dass ich Icons nicht verwenden kann, weil deren Lizenz nicht mit der meiner Software kompatibel ist. Hin und wieder führt das dazu, dass selbst Icons entworfen werden müssen. Diese will ich hier sammeln. Zur Zeit enthält das Archiv Piktogramme für Betriebssysteme und Browser. Der Stil der Icons ist flach und flächenhaft gehalten, weshalb sie besonders für kleine Größen geeignet sind. Die Quelldateien im SVG-Format liegen dem Archiv bei.
Iconset herunterladen (10 Icons)
Lizenz: CC0 (Copyleft)
Wichtig: Das Markenrecht bleibt hiervon unberührt! Bestimmte Icons dürfen unter Umständen nur im Zusammenhang mit der Marke verwendet werden, welcher sie (offensichtlich) zuzurechnen sind.
Shell: Ziehzeit des Tees anzeigen
„Verdammt! Jetzt hat der schwarze Tee wieder 10 Minuten gezogen!” Falls du deinen Tee auch schon einmal wegschütten musstest, weil du ihn vertieft in deine Arbeit oder in ein Blog, hast zu lange ziehen lassen, dann ist hier die Lösung: Dieses Skript zeigt im GNOME-Panel ein Benachrichtigungssymbol mit der Zeit an, die dein Tee noch ziehen muss. Nach Ablauf der Zeit erscheint eine Benachrichtigung in Form einer Sprechblase.
Benötigt wird das Paket zenity. Das Skript führt man im Terminal aus (Dateirechte auf "ausführbar" setzen!) oder fügt es ins Anwendungsmenü ein. Folgende Parameter können dem Skript übergeben werden: -d DAUER oder --duration DAUER gibt die Dauer in Sekunden an. Die Option -n NAME oder --name NAME benennt die Teesorte mit NAME.
Quelltext herunterladen
Bildschirmfoto
Lizenz: GPLv3
Shell: JPEG-Metadaten setzen
Mit diesem Shellskript können die gebräuchlichen IPTC-Daten eines JPEG-Bildes gesetzt werden. Gesteuert durch GNOME-Dialoge kann der Benutzer eine Lizenz auswählen und eine Beschreibung eingeben. Der Autor wird ebenfalls vom Skript gesetzt. Um den Autor zu ändern muss dieser jedoch direkt im Skript ganz oben (ARTIST="...") festgelegt werden.
Benötigt werden die Pakete zenity und libimage-exiftool-perl. Das Skript führt man im Terminal aus (Dateirechte auf "ausführbar" setzen!) und übergibt beliebig viele Dateinamen. Es bietet sich auch an dieses Skript in eine Nautilus-Aktion einzubauen, so dass es automatisch als Menüeintrag für JPEG-Dateien angezeigt wird.
Quelltext herunterladen
Schema für Nautilus-Aktionen
Bildschirmfoto
Lizenz: GPLv3
Shell: Trackbacks senden
Dieses Shellskript erlaubt es Trackbacks an ein Blog zu senden. Über einen GNOME-Dialog werden Blogname, Titel des Eintrags, URL und ein Auszug aus dem Inhalt erfragt. Der so zusammengestellte Trackback kann dann an beliebig viele Blogs versendet werden.
Benötigt werden die Pakete zenity und curl. Das Skript führt man im Terminal aus (Dateirechte auf "ausführbar" setzen!) oder fügt es ins Anwendungsmenü ein.
Quelltext herunterladen
Bildschirmfoto
Lizenz: GPLv3
Bildsegmentierung: Normalized Cut und Contour Continuity
Der C++-Quelltext implementiert zwei Algorithmen zur Bildsegmentierung:
- Jianbo Shi, Jitendra Malik: Normalized Cuts and Image Segmentation [1]
- Thomas Leung, Jitendra Malik: Contour continuity in region based image segmentation [2]
Kurzbeschreibung: Der Normalized Cut ist ein Graph-Cut-Algorithmus, welcher einen Graphen anhand seiner Kantengewichte so in zwei Teile zerlegt, dass nur Kanten mit einem möglichst geringen Gewicht entfernt werden. Durch das Normalisieren über alle Kantengewichte wird sicher gestellt, dass die beiden Teile möglichst groß sind. Im konkreten Fall sind die Ecken des Graphen die Pixel eines Bildes und die Kantengewichte repräsentieren die Ähnlichkeit dieser Pixel. Die Ähnlichkeit kann unter anderem mit dem Contour-Continuity-Verfahren berechnet werden, welches nicht nur bestehende Konturen, sondern auch intuitive Konturen (z.B. Kanisza Dreieck) erkennt. Liegt eine Kontur zwischen zwei Pixeln wirkt sich dies entsprechend negativ auf das Kantengewicht aus. [mehr]
OggConvert
OggConvert ist ein Java-Frontend zum Umwandeln von Audiodateien ins OggVorbis-Format. Für das Konvertieren der Audiodateien können beliebige Kommandozeilentools verwendet werden. Diese müssen unabhängig von OggConvert installiert werden.
Das Programm läuft auf jedem System, auf dem eine halbwegs aktuelle JavaVM installiert ist (getestet mit Java 6). Als Konvertierungsprogramm bietet sich zum Beispiel oggenc an. Dieses Kommandozeilentool ist u.a. für Windows, Linux und Mac zu haben. Meist ist es schon im System mit vorinstalliert. Unter Linux nutze ich außerdem mp32ogg.
Die verschiedenen Audiowandler können im Programm unter Einstellungen eingetragen werden. Voreingestellt sind die genannten Programme für Linux.
Quelltext herunterladen - Entpacken und readme.txt beachten!
Bildschirmfoto
Lizenz: GPLv3
3D Viewer
Der Simple3D-Viewer entstand im Hauptstudium in Bezug zur Vorlesung Computergrafik. Ziel war es mittels OpenGL und FLTK (ein GUI-Toolkit für C++ Grafikanwendungen) ein C++-Programm zu schreiben, welches in der Lage ist verschiedene einfache dreidimensionale Körper darzustellen.
Das Programm kann hier als Windows-Anwendung (exe) heruntergeladen werden. Einfach das zip-Archiv in einen Ordner entpacken und die Simple3D.exe starten oder wahlweise vorher die README.txt lesen.
Download: simpe3d.zip (ca. 1,2MB)
Das Programm bietet die folgenden Features:
[mehr]
Admin-Konsole zur Remotesteuerung
Im Rahmen des Softwaretechnologie-Praktikums im vierten Semester entstand in Teamarbeit für die Firma pcvisit-Software AG eine prototypische Admin-Konsole. Das Praktikum fand studienbegleitend über das gesamte Sommersemester statt. Am Anfang stand für mich die Frage: Prototypische Admin-Konsole - für was?
Die Firma pcvisit entwickelt selbst ein Programm zur Remotesteuerung pcvisit4remote. Dieses Programm dient der Steuerung eines einzelnen Host-Rechners mittels eines Gastmoduls über das Internet. Da das Programm zunehmend durch Administratoren verwendet wird sollte das Gastmodul durch eine plattformunabhängige und komfortablere Software ersetzt werden.
Die neue Admin-Konsole sollte eine Benutzerverwaltung ermöglichen, so dass unterschiedliche Nutzer nur auf die Rechner zugreifen können, für die sie die Berechtigung haben. Des weiteren war es wichtig, dass auch mehrere Rechner gleichzeitig gesteuert und große Mengen Hosts übersichtlich verwaltet werden können.
Unsere Admin-Konsole bietet zu nächst eine One-to-one-Steuerung über eine Bildschirmansicht. Dabei kann wie schon im Gastmodul mit Tastatur und Maus direkt auf dem Host-Rechner gearbeitet werden. Der Wechsel zwischen mehreren vorselektierten Hosts erfolgt bequem über eine Drop-Down-Liste. Die Liste kann in einem Dialog-Fenster, welches verschiedene benutzerdefinierte Filterfunktionen bietet, bearbeitet werden. Um einen einfachen Dateitransfer zwischen einem Host und dem Benutzerrechner zu ermöglichen gibt es einen File-Client im Norton-Commander-Layout. Der Host-Rechner kann hier wieder über eine Drop-Down-Liste aus einer Vorauswahl gewählt werden.
Für umfangreiche Operationen auf mehreren Hosts bietet die Admin-Konsole eine Scriptfunktion. Die ermöglicht es u.a. Dateien zu kopieren, Anwendungen zu starten und Tastaturbefehle zu übertragen. Um den Verlauf zu dokumentieren können Screenshots vom Host-Rechner abgespeichert werden. Der Verlauf wird gespeichert und kann über das Reporting- und Billing-Center abgerufen werden. Dort besteht auch die Möglichkeit eines XML-Exports.
Außerdem bietet unser Programm eine einfache Benutzerverwaltung und eine Funktion zum Verwalten der Host-Rechner, denen beliebige Filterattribute zugeordnet werden können.
Die Admin-Konsole ist mit Java 1.6 programmiert. Wir haben auf Erweiterbarkeit und Wiederverwendbarkeit Wert gelegt. Für die Netzwerkkommunikation wurde ein Framework der Firma verwendet, welches über eine Schnittstelle flexibel in das Programm eingebunden ist. Für die Benutzeroberfläche waren SWT und JFace sehr nützlich. Dadurch ist das Programm plattformunabhängig. Es müssen nur die entsprechende JRE (Java Runtime Environment) und das SWT (Standard Widget Toolkit) installiert sein.


1. One-to-one-Steuerung | 2. File-Client | 3. Hostverwaltung | 4. Das beste Praktikumsteam!
Lernspiel - Reise ins Ich
Bei einem Praktikum im zweiten Semester entstand für die Lehrveranstaltung Medienpsychologie und Mediendidaktik ein Lernprogramm. In einer Gruppe von anfangs noch neun Studenten sollte das Projekt mit Flash realisiert werden. Es sollte auf eine konkrete Zielgruppe ausgerichtet sein und in dieser Zielgruppe evaluiert werden. Über die Zielgruppe - Kinder - herrschte schnell Konsens, was in der Anfangsphase selten war. Wir präzisierten das später noch ein wenig auf Kinder in der vierten Klasse. Aus der Zielgruppe entstanden auch Name und Logo für unsere Gruppe: Das Adventure4Kidz-Team mit dem Schaf. [mehr]
