Projects

As a software engineer and (sometimes) OSS developer, I have the occasional project. Most of them are open source, if there is some sort of (potential) benefit with wider use. This page aims to highlight them, provide a basic description of what they do and why they were created.

If any of my projects interest you, please feel free to contribute on my GitHub!

libsockcanpp

libsockcanpp is a CAN wrapper written in and for C++.
libsockcanpp handles connecting to other devices via CAN in a simple and easy to understand manor, which allows application developers to quickly integrate CAN bus architectures with their software without having to faff around with the POSIX/Linux socket functions, figuring out which settings to use, etc.
libsockcanpp has several pre-requisites, though. This library assumes that the CAN interface is already active and set to the correct baud rate.
This is a design choice, because experience has shown that some platform manufacturers (looking at a very specific European company here) opt into using proprietary means of enabling/handling CAN, instead of using tried-and-true standards.
Interested in libsockcanpp? Check out the documentation at https://documentation.simonc.eu/libsockcanpp, and the source at https://github.com/Beatsleigher/libsockcanpp

EndlesshReportGenerator (endlessh-report)

endlessh-report is a simple C++ program that scans a Linux server’s syslog for entries written by endlessh – an SSH tarpit – and compiles two types of output.

The first type of output is markdown-compatible and can be transpiled into a variety of other languages, such as HTML.
This is useful for providing daily statistics of your server(s).

The second type of output is useful for many sysadmins who’d like to report IP addresses to abuseipdb. With a simple flag, your syslog entries will be transformed into a fully compatible (v2) CSV which can be uploaded directly!

For more information, check out my GitHub repository!

fail2abuseipdb

Yet another sysadmin tool used to report IP addresses to abuseipdb, this small tool will allow you to dump your entire fail2ban jail contents to a CSV-file, which can be uploaded directly to abuseipdb!

If you’re interested, check it out here!

isotp-c

A popular fork of GitHub user lishen2’s isotp-c, my fork is regularly maintained and allows for easy communication via CAN networks using the ISOTP protocol!

Check it out here.

Waveshare 8ch Raspi Relay Board examples

This small project contains example code, usable for the Waveshare 8 channel relay board for Raspberry Pis. The examples provided by the manufacturer are lackluster at best, and so I set out to create better (working) examples for them!

The GitHub repository can be found here.

libborr

libborr – named after the Norse god of language – is a small C++ file parser which allows easy translation of your C++ application! Compile the translations into your application or serve them as files during installation.
Whichever you choose, libborr will help you read and use them.

It’s open source and licensed under the Apache 2.0 License; check it out on GitHub!

getopt.net

As the name implies, getopt.net is a cleanroom port of the GNU getopt library (and functions).

getopt.net allows your .net application to use getopt-like options with support for both getopt() and getopt_long().
getopt.net is available on NuGet or can be viewed on GitHub.
Support documentation can be found here.