Basti’s Buggy Blog

Poking at software.

Projects

Here is an incomplete list of some projects I did over the last years.

Desktop

active i3 Window Manager Fork: Layers

  • Author
  • Since: 2020
  • Source: GitHub
  • C
A personal fork of the i3 window manager to cope with large amounts of workspaces. Workspaces can be organized in "layers", which allows for a separation of groups of workspaces. The idea is to simplify access to workspaces in your current layer (e.g. work).
i3 layers fork demonstration

active i3 Workspace Names Daemon

  • Contributor
  • 2020
  • Source: GitHub
  • Python
A very useful daemon which renames the workspaces according to the windows inside them. Names and icons can be assigned.
workspaces with dynamic names

done xsecurelock: Lock Screen

  • Author
  • 2019
  • Source: GitHub
  • C
A deep-dive into the world of Linux X11 desktop graphics using xcb and cairo for drawing text. I'm very happy with the simplistic style of the lockscreen.
literal screen-shot of the lockscreen

in development Deterministic Semantic Version Manager: Demver

  • Author
  • Since: 2020
  • Source: GitHub
  • Rust

Aimed at deterministically freezing and updating versions of ecosystems following the SemVer scheme. The main use-case is to freeze the hashes of docker image labels (as they can update arbitrarily).

Web

active Webpack Plugin: Context Map

  • Author
  • Since: 2019
  • Source: GitHub
  • JavaScript, Webpack
A tiny plugin for statically bundeling dynamic dependencies using webpack. Mostly used by me (as the problem does not seem to be too common). It is very useful for bundeling JS/TS into a single node-executable file.

active Vue Library: vue-step-progress

  • Author
  • Since: 2018
  • Source: GitHub
  • JavaScript, Vue.js
A very simple and extensible Vue.js component for creating a step-by-step Wizard. The main value of the project is to understand how to maintain and update a JavaScript library on npm.
vue-step-progress demonstration

active Docker + Nginx + Let's Encrypt: Yet Another Image

  • Author
  • Since: 2020
  • Source: GitHub
  • Bash
A tiny (< 100 LOC) understandable bash script in a docker container handling Let's Encrypt certificate updates. (Yes, another one of those.) Why? Because all the popular existing ones suffer from feature-overload and complexity which I don't need.

in development Several Small Websites

  • Author
  • Since: 2015?
  • Source: Private
  • JavaScript, Node.js, Vue.js
Development and management of several small websites (mostly DevOps). Including some homecrafted content management systems.

Full Stack

discontinued Math Tutoring App for High-School Pupils

  • Author
  • 2016-2019
  • Source: Private
  • JavaScript, Node.js, MongoDB, Android/Kotlin, SQL(ite)

Small startup aimed at replacing in-person high-school math tutoring with an interactive app experience with a team of 5. Did not succeed.

Lessons learned (some of them):

  • Use more paid service providers, development from scratch wastes valuable time 💵
  • Don’t accidentally rebuild Stripe from scratch 😅
  • MongoDB is great for storing stuff, but terrible for querying 🙃
  • Do some more market analysis before starting 🙂

Reverse Engineering

very beta RE'd Kettler Exercise Bike Bluetooth Protocol

  • Author
  • Since: 2018
  • Source: Private
  • Android/Kotlin

Due to the exercise bike’s incompatibility with new Versions of Android (5+) and the lack of features, I reverse engineered the communication between the bike and several third party apps. After reversing the protocol, I found an existing protocol implementation. I focused on creating an Android app that is able to control the bike’s resistance according to structured user-defined trainings.