Vtiger .NET webservice client library

11/25/2010

Technologien: .NET (C#), HTTP Client, MD5, Json

Nach dem Vorbild der vtiger webservice library (http://forge.vtiger.com/projects/vtwsclib) wurde in diesem Projekt (VTNetClient) eine Bilbliothek zur Kommunikation mit der REST-basierten vtiger-API für .NET entwickelt. Technisch werden dabei Webservice-Methoden über HTTP-POST und -GET Anfragen aufgerufen. Die Übersetzung dieser Methoden in eine übersichtliche und gut strukturierte .NET-API erleichtert das Zusammenführen von .NET Anwendungen mit dem vtiger CRM.

Techniken und Features:

  • Methoden zur Manipulation von Daten in vtiger Modulen (z.B. create, retrieve, update, delete [CRUD], query).
  • Generelle Invoke Methode, mit der alle REST Methoden verwendet werden können (auch zukünftige).
  • Umfangreiche API- und Entwicklerdokumentation mit Beispielen zur Verwendung.

 

Prinzip der Verwendung: Eine Anwendungsklasse (app class) referenziert die VTNetClient Bibliothek, die Methodenaufrufe in HTTP GET/POST Anfragen übersetzt:

 

Screenshot der HTML API Dokumentation (erstellt mit Doxygen):

 

Screenshot einer Seite der Entwicklerdokumentation (Methoden mit Beispiel Quellcode):


PHPBB3 Integration (Symfony)

11/24/2010

Technologien: PHP, phpBB3, Symfony, Datenbanken (MySQL)

Bei diesem kleineren Projekt ging es um die Integration des phpBB3 Forums in eine mit Symfony erstellte Webseite. Symfony (http://www.symfony-project.org) ist ein Open-Source Web Framework, das auf dem Enwurfsmuster Model-View-Control (MVC) basiert und Webentwicklung stark vereinfachen kann.

Hintergrund der Webseite ist ein Mitgliederverzeichnis einer Verbindung. Mit der Zielsetzung, dass sich die Mitglieder in Bezug auf Zugehörigkeiten zu Zirkeln und Mitgliedschaften in Vereinen in entsprechenden Foren austauschen können, sollte sich eben diese Struktur der Mitgliedschaften auch im Forum wiederfinden.

Techniken und Features:

  • Synchronisation der Benutzer- und Mitgliedschaftsdaten zwischen Symfony und phpBB3.
  • Automatisches anlegen von Kategorien und Foren sowie Konfiguration von Benutzerrechten durch Manipulation der phpBB3 Datenbank.
  • Single-Signon (SSO)

phpBB3 Forum mit Kategorien und entsprechenden Foren für Mitgliedschaften in Vereinen bzw. Zirkeln:


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

NanoNet - simple Java neural network library
Using backpropagation and sigmoid activation function. | 4/14/2019

NanoNet is a very simple Java neural network library using backpropagation and sigmoid ... Read More

Java async/await nonblocking code library
Write sequential style nonblocking code using a fixed threadpool with Async-Complete for Java | 4/1/2019

Async-Complete (aka Async-Await) is a library for writing asynchronous code in a more ... Read More

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

More Blog Entries