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.
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
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
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).
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.
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.
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 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.
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”.
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.
Keywords: Plasma Active, Linux, Hardware-adaptation, C, C++, Qt, QML
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.