Marc Herschel

Marc Herschel

Projects

UpdateTool

GitHub - DockerHub
Topics: data cleansing, data processing, middleware

UpdateTool is a watchdog written in Java that runs batch jobs over the database of Plex Media Server and currently either matches missing IMDB ratings for movie/TV show entries or updates outdated ones.

It aims to assist users of Plex Media Server keeping their library metadata up to date as Plex uses heavy caching for metadata and currently never updates IMDB ratings once fetched.

UpdateTool has been deemed useful by the Plex community and the docker image has been pulled more than 2 Million+ times already.

CoW Explorer

GitHub - Demo Application
Topics: data visualization, interactive web application, correlates of war dataset

The CoW Explorer connects and visualizes different datasets from the Correlates of War project and thus offers for a user-friendly way of comprehending the included data via different visualization techniques packed into an interactive web application.

This project's frontend has been built via the D3.js library for data visualization and manipulation in combination with Bootstrap. Regarding the backend side of things, the data is persisted via a SQLite3 database which is guarded by a Python Flask REST API.

Because a picture says more than a thousand words describe, there is a demo application hosted just for you to try this project out!

More in-depth information regarding the used visualization techniques and datasets behind the Correlates of War Explorer can be found in the projects GitHub Readme.md file!

DQGUI

GitHub - Project Documentation and Javadocs
Topics: integrated developer environment, data quality monitoring, data warehouse

DQGUI is a Java based IDE written on top of JavaFX for users of the IQM4HD (Intelligent Quality Monitoring for Heterogeneous Data) project. It provides a way to interact with the projects evaluation engine by providing a graphical user interface. This allows users to develop custom components of the IQM4HD domain specific language without the need of setting up the entire IQM4HD infrastructure first. It also allows storing IQM4HD DSL compilation units in a database so multiple users can work remotely on the already existing monitoring rules. A remote execution server is also included as some monitoring rules can take a long time to evaluate and the user might want to close DQGUI in the meanwhile.

DQGUI has been awarded a prize for the 1st place at the ECE Capstone Design Competition 2020 hosted by the Texas A&M University against 65 other competing teams.

Note: As the source code of IQM4HD is not publicly available at the moment the IQM4HD library is not included in this public facing GitHub repository. Instead, a mocked version is being used to allow the tool to compile and function properly in a limited way for demonstration purposes.

More in-depth information about DQGUI can be found here!

Gnuman

GitHub - Latest release
Topics: game development, 2d-engine development, pacman clone

Gnuman is a satirical Pacman clone written in Java utilizing JavaFX for the graphical user interface. It features a map editor and thus allows players to design their own game worlds.

Gnuman has been developed by myself as a part of a third semester project, where groups of students were tasked to create an "IT themed" game collection with each contributing a game to it. At the poster fair at the end of the semester Gnuman was well-received by playtesters and contributed to our group winning the first price in the competition for the best project for third semester applied computer science students.

More in-depth information about Gnuman can be found here!

EzConf Configuration Language

GitHub - Maven/Gradle - Javadocs
Topics: parsing, serialization, configuration languages

A simple hierarchical scoped group based key:value storage/configuration format written in Java without any external dependencies. The project features a parser and serializer implementation as well as a data-validation layer that allows to specify custom validation rules if required. Parsing and validation errors are displayed in a human readable manner to prevent frustration when using this for the first time. EzConf has been developed with flexibility in mind, so a custom extension of the configuration format can be done by extending the main interfaces. Extensive tests and a 97% code coverage ensure that EzConf performs at any given moment.

If you need a lightweight and simple configuration format this is for you! I'm personally using it in my other project UpdateTool right now to store implementation configurations of the watchdog daemons.

CYK-Algorithm

Topics: theoretical computer science, formal languages

A Java implementation of the Cocke–Younger–Kasami algorithm to evaluate whether a given input can be derived from a user defined context free grammar in Chomsky normal form.

This tool has been developed in my first semester and aims to provide a way for theoretical computer science students to check if they applied the CYK algorithm correctly. The source code is available via this GitHub repository.