Open Source Software Projects and Contributions Overview

This page is intended to provide an overview over my most recent and most important Open Source Software projects and contributions. The order by and large reflects when the projects had been last updated. For information about other projects and contributions please refer to, e.g., the overviews of projects as shown in the main and side menus, the list of posts tagged with “Open Source”, or the tag cloud in the side menu.

Keywords: CLIs, Clojure, Java, jline2, Testing
Create simple interactive CLIs for Clojure applications.
The aim of cli4clj is to allow the quick and effortless creation of interactive command line interfaces (CLIs):

  • Simple configuration via maps.
  • Command line history & editing.
  • Tab-completion (commands and hints).
  • Aliases, e.g., for shortcuts.
  • Clojure data types, e.g., vector, map, etc., as command arguments.
  • Build-in help.
  • Customizable, similar to the Clojure REPL.
  • Testing of CLIs via unit tests
Keywords: Computer Networks, Packet Capturing, Distributed Systems, Java, Clojure, JMS, SWT
Dynamic Distributed Remote Packet Capturing
DRePCap is a prototype for evaluating the concept of dynamic distributed packet capturing. A more detailed discussion and evaluation of this approach was published in: “Monitoring Traffic in Computer Networks with Dynamic Distributed Remote Packet Capturing,” R. Gad, M. Kappes, I. Medina-Bulo, 2015 IEEE ICC.
Keywords: Clojure, Java, C, JNI, Computer Networks, Packet Capturing, JSON, CSV, ARFF
Packet Capturing with Clojure and Java
clj-net-pcap is primarily intended as packet capturing library for Clojure and Java. Features are, e.g., extraction of packet data into various formats, dynamic configuration of data extraction via a DSL, online configuration of pcap-filters, or self-adaptive performance-based adjustability. clj-net-pcap can also be run as a stand-alone application for demonstrating its capabilities. Publications: “Improving Network Traffic Acquisition and Processing with the Java Virtual Machine,” R. Gad, M. Kappes, I. Medina-Bulo, 2015 20th IEEE ISCC, “Bridging the Gap between Low-Level Network Traffic Data Acquisition and Higher-Level Frameworks,” R. Gad, M. Kappes, I. Medina-Bulo, 2014 38th IEEE COMPSACW (ADMNet).
Keywords: MoM, Clojure, JMS, Java, OpenWire, STOMP, MQTT, WebSocket
Easing Simple Message-oriented Middleware Tasks with Clojure (and Java)
The intention of bowerick is to use JMS functionality as provided by Apache ActiveMQ and other libraries and to provide additional functionality and abstractions for easing their usage. Features are, e.g.: eased creation of topics and queues, embedded brokers, pooling of data entities in messages for improving the throughput, the integration of fast lossless compression such as LZF and Snappy, simplified setup for SSL/TLS, OpenWire, STOMP, MQTT, and WebSocket support, or a stand-alone application for running a command line-configurable JMS broker.
Keywords: Clojure, Leiningen, JUnit, XML, TDD, Ant
Leiningen Plug-in for Emitting Clojure Test Results in JUnit XML Format
test2junit is a Leiningen plug-in for exporting Clojure unit test results in the JUnit XML format and for optionally automatically creating HTML-based reports from the exported data using the junitreport Ant task.
Helper Functionality for Clojure and Java
clj-assorted-utils is a unsorted collection of helper functions that I use in various projects and thus I extracted and packaged this functionality in an own library.
Keywords: Security, Qt, QML, C++, Encryption, AES, Mobile, Desktop
Securely Store Short Snippets of Confidential Data
MeePasswords is a simple password storage that encrypts all stored data with a single master password. It was intially released for the N9 cellphone and has since then been ported to various platforms such as BB10, Windows and Linux Desktop, and SailfishOS. An Android port is working but was not released yet. MeePasswords was the winning application in the “Business & Office” category of the “MeeGo Coding Competition 2011”.
Q To-Do
Keywords: Productivity, Qt, QML, C++, Mobile, Desktop
Q To-Do@github
A Simple To-Do List Application
Q To-Do is a simple to-do list organizer. Features are, e.g.: nested to-dos, a progress bar for indicating the progress for multiple nested to-dos, touch-optimized user interface. Q To-Do was ported to various platforms such as BB10, Windows and Linux Desktop, and SailfishOS. An Android port is working but was not released yet. Q To-Do is a successor of the J2ME-based To-Do O application.
Keywords: Bluetooth, QML, Qt, C++, Mobile, Desktop
A Pebble Smart Watch Bluetooth Protocol Implementation in QML
SkippingStones is a QML implementation of the protocol as used by the Pebble smart watches. SkippingStones was primarily implemented in QML as one important goal is to provide good and easy “hackability”.
Keywords: Bluetooth, Qt, QML, C++
An Application for Using Zeemote Bluetooth Remote Controls
QZeeControl is an Application for using Zeemote Bluetooth remote controls. This second version is a Qt5-based reboot of the older version, which was based on Qt4 and primarily targeted MeeGo.
Contributions to PA HAs
Keywords: Plasma Active, Linux, Hardware-adaptation, C, C++, Qt, QML
Contributions to Plasma Active Hardware-adaptations for Archos G9 and Nexus 7 (2012)
Examples of contributions to plasma active hardware-adaptations are: enabling and easing 3G (UMTS) usage on Archos G9, kernel patch and MOSLO adaptation for easily accessing/flashing the entire user data partition on Nexus 7, maintenance of rootfs tarballs for Archos G9 and Nexus 7, enabling and easing the usage of 3G (UMTS) and Bluetooth on Nexus 7, integration of hardware-accelerated video playback functionality for Nexus 7, and improving the sensorfw integration for enabling rotation handling using the accelerometer sensor on Nexus 7.

1 Response to Open Source Software Projects and Contributions Overview

  1. Pingback: Tesis Doctoral: Event-driven Principles and Complex Event Processing for Self-adaptive Network Analysis and Surveillance Systems | ruedigergad

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.