Coffeearc Archiver

11/23/2010

Technologien: Java, Swing, XML, Datenkompression, AES Verschlüsselung, Multithreading

Coffeearc ist ein Multiformat Archiver, der im Rahmen eines privaten Projekts enstand, um experimentelle Kommandozeilen Kompressionstools sehr einfach als Plugins einzubinden und damit mehr Funktionalität und Benutzerfreundlichkeit im Sinne eines vollwertigen Archivertools zu schaffen. Experimentelle Kompressionstools können häufig nur einzelne Dateien packen und entpacken. In Verbindung mit Coffeearc bieten sich jedoch ohne größeren Aufwand viele weitere Features, sobald das Tool eingebunden ist. Dies geschieht durch erstellen einer sehr einfachen XML Spezifikation.

Mehr Information gibt es hier.

Coffeearc ist ein Open-Source Projekt und wurde unter GPL Lizenz veröffentlicht. Mehr Infos unter: http://forge.camijo.de/projects/show/coffeearc


Procalysis eTest

11/22/2010

Technologien: Java, JSP/Servlets, XML, HTML/CSS, Javascript, SWT, JFace, Datenbanken (Apache Derby/Java DB, HyperSQL, MySQL, Postgresql)

Auch eTest basiert wie HRV-Lab im Kern auf Procalysis Signal. Statt der Verarbeitung von Signaldaten geht es hierbei jedoch um die Analyse und Verarbeitung psychometrischer Daten aus Fragebögen. Diese Daten werden durch eine Testdurchführung im Web-Browser überhaupt erst erfasst.

Techniken und Features:

  • Anhand einer XML basierten Testdefinition stellt ein Webserver eine Testumgebung bereit, die von unterschiedlichen Clients (Computern) mit Hilfe eines beliebigen Web Bowsers aufgerufen werden kann. Dies funktioniert im lokalen Netzwerk oder im Internet.
  • Damit mehrere Benutzer gleichzeitig Tests durchführen können, werden vom System mehrere Sessions verwaltet. Jede Session erhält eine PIN, die der Benutzer vorab eingeben muss. Hierdurch können später Testergebnisse wieder den Personendaten zugeordnet werden.
  • Alle zu speichernden Datenobjekte werden anhand der Benutzerdaten automatisch strukturiert, verschlüsselt und in einer Datenbank (durch Verwendung des Procalysis Datenportals) abgelegt.
  • Auswertung: Neben einer individuellen Testauswertung mit testeigener Logik werden Übersichtstabellen, Graphen der numerischen Antwortwerte, Reaktionszeiten sowie deskriptive Statistiken (Boxplot) über die gesamten Testungen erstellt.
  • Auswertungsergebnisse können als PDF Report gespeichert werden, der Übersichts- und Ergebnistabellen zu jedem Test enthält.

Procalysis® eTest kam im Rahmen verschiedener wissenschaftlicher Studien zum Einsatz und wird derzeit als marktreifes Produkt von der Simplana GmbH (www.simplana.de) angeboten.

Diagramm zur Ausführung im Netzwerk:

Hauptfenster von eTest als Modul von Procalysis (Dialog: Testauswahl für die nächste Session, hinten: Übersichtstabelle laufender Sessions):

Ansicht eines Tests im Browser (oben rechts: Kontrollpanel zur Navigation):


Procalysis HRV Lab

11/22/2010

Technologien: Java, SWT, JFace, Hardware (Polar, Suunto), digitale Signalverarbeitung (DSP)

Bei dieser Software handelt es sich um eine Produktvariante, die aus Procalysis Signal / Biomed entstand. HRV Lab ist ein kombiniertes Hard- und Softwarepaket zur Analyse der Herzratenvariabilität (engl.: Heart Rate Variability, HRV). Damit ermöglicht die Software eine minimal belastende Diagnostik der Parasympathikus-Sympathikus Interaktion. Als Hardware können Brustgurte von Suunto (Memory Belt) und Polar (Wearlink) verwendet werden, die Daten der zeitlichen Schwankungen der Herzschlagabstände wahlweise für längere Untersuchungen speichern oder für kurze Untersuchungen auch direkt drahtlos übertragen können. HRV Lab bietet die folgenden zentralen Features:

  • Echtzeit-Übertragung und Aufzeichnung der Polar Daten über die Soundkarte eines PCs. Damit ist keine zusätzliche teure Hardware zur analog-digital Wandlung mehr nötig.
  • Auslesen der Suunto Speicherdaten durch Nutzung der Suunto USB Bibliothek.
    Erzeugung der HRV Daten
    • Aus Suunto und Polar Daten können direkt HRV Signale zur weiteren Verarbeitung generiert werden.
    • Auch aus generischen EKG Daten kann durch einen speziellen, hochpräzisen Wavelet Algorithmus ein HRV Signal erzeugt werden.
    • Eine automatische Artefakt Bereinigung der HRV Daten führt zu präzisen Ergebnissen, selbst bei schlechter Signalqualität.
  • HRV Analyse auf „Knopfdruck“
    • Alle klinisch relevanten Kennwerte, sowie zusätzliche komplexe Analysen (z.B. Zeit-Frequenz Verteilung und Recurrence Plot) werden automatisch aus einem bereinigtem HRV Signal berechnet.
    • Es wird ein 4-seitiger PDF Report erzeugt, im dem alle Analyseergebnisse optisch ansprechend dargestellt werden.

Procalysis® HRV Lab kam im Rahmen verschiedener wissenschaftlicher Studien zum Einsatz und wird derzeit als marktreifes Produkt von der Simplana GmbH (www.simplana.de) angeboten.

Hauptfenster von Procalysis HRV Lab: EKG Signal mit markierten R-Zacken (oben links), Wavelet Time-Frequency-Distribution (rechts), Recurrence Plot (unten links)

Erste Seite des PDF Reports:


 


Procalysis Signal und Biomed

11/22/2010

Technologien: Java, SWT, JFace, XML, Datenbanken (Apache Derby/Java DB, HyperSQL, MySQL, Postgresql), digitale Signalverarbeitung (DSP), diverse Bibliotheken

Procalysis® („Process analysis“) ist ein modulares Softwarepaket zur einfachen Signalanalyse mit dem Schwerpunkt der Verarbeitung biomedizinischer Zeitreihen. Nach einem ersten Prototypen während meiner frühen Studienzeit konnte ich die Software im Rahmen meiner Diplomarbeit grundlegend überarbeiten und verbessern. Zu den Highlights gehören:

  • Intuitive Anwendung komplexer DSP Funktionen (z.B. FFT, Filter oder Wavelets) ohne Programmierkenntnisse.
  • Die Verarbeitung sehr großer Datenmengen (z.B. hochauflösende Zeitreihen im Gigabyte Bereich) wird durch zwei Mechanismen unterstützt.
    • Eine effiziente Speicherverwaltung mit extrem einfacher API verwendet randomisiertes Paging und Memory Mapped Files. Es werden nur jeweils kleine Bereiche des Datenobjekts im Speicher gehalten, während sich der Großteil der Daten in Dateien befindet. Die Verwaltung wurde mit der Zielsetzung entwickelt, auch noch bei konkurrierendem Zugriff (Multithreading), möglichst effizient zu arbeiten.
    • Ein spezieller Darstellungsalgorithmus skaliert optimal mit steigender Signalgröße und ermöglicht Echtzeit Zoom- und Scrollfunktionen. Für unterschiedliche Detailgrade werden hierfür zusätzliche Informationen berechnet, auf die dann statt der Originaldaten zugegriffen wird.
  • Makros oder „Click’n’Code“: Benutzer können ohne Programmierung zum Zwecke von Serienanalysen an einem Beispieldatensatz Vorgänge ausführen, die das Programm später bei beliebig vielen Objekten nachahmt. Die einfache Kombination elementarer Funktionen schafft somit höherwertige, komplexe Funktionen. Dessen automatisierte Anwendung führt zu einer imensen Arbeitserleichterung.
  • Skripte: Zur Erweiterung der Software können Skripte programmiert werden, die sich auch fest in das Programm einbinden lassen. Hierfür kam die Skriptsprache Beanshell (www.beanshell.org) zum Einsatz. Zur komfortablen Programmierung wurde ein Skript-Editor mit Syntax-Highlighting und Content Assistant entwickelt.
  • Datenportal: Zur einfachen Datenorganisation können Daten strukturiert in einer internen oder externen Datenbank abgelegt werden. Hierfür wurde ein spezielles Datenbankschema entwickelt, das hierarchische Strukturen zusammen mit Signaldaten und Zusatzinformationen verarbeitet. Eine abstrakte Datenhaltungsschicht ermöglicht die Verwendung unterschiedlicher Datenbank Systeme.

Obwohl Procalysis ca. 40 verschiedene Bibliotheken verwendet, ist ein Großteil der DSP- und Analysefunktionen in Eigenentwicklung entstanden.


Procalysis Signal / Biomed kam im Rahmen verschiedener wissenschaftlicher Studien zum Einsatz und wird derzeit als marktreifes Produkt von der Simplana GmbH (www.simplana.de) angeboten.

Hauptfenster von Procalysis: Signal Tabs (oben), Kennwerte (rechts), Datenportal (unten):

Der Skripteditor:

 


 


Reversi

11/22/2010

Technologien: Java, Applets, KI Algorithmus

Bei einer meiner ersten kleinen privaten Projekte ging es um die Implementierung des bekannten Spiels Reversi, bei dem gegnerische „Steine“ übersprungen werden, die dann dem jeweiligen Spieler zugeordnet werden.


Der Spieler hat die Möglichkeit, gegen den Computer bzw. gegen die KI anzutreten, die einen nächsten Zug anhand einer einfachen Bewertungsfunktion für Spielfeldpositionen bestimmt. Ziel dabei ist es, vorausschauend möglichst an einem Punkt im Spiel die Ecken zu erreichen. Aus allen dafür günstigen Positionen, wird diejenige ausgewählt, die die meisten „Steine“ überspringt.


 


Blog

SDCLib/J contribution fork
Contributing to IEEE 11073 SDC Family java webservice stack | 2/2/2019

As former main author of the official project in my last job at SurgiTAIX AG, I will maintain ... Read More

LambdaLink - Distributed INotifyPropertyChanged events for .NET
.NET webservice library | 2/2/2019

LambdaLink is a small library for propagating .NET INotifyPropertyChanged events over ... Read More

jReflectServer 2.0
New version released | 1/4/2017

jReflectServer (formerly jReflect) has been updated. Version 2.0 allows distributed code ... Read More

More Blog Entries