Code/Projects
This page is a showcase for some of my software projects. Source code is available on my GitHub page. My main programming language is Python, but I’ve also worked with Lua and a bit of C++.
sb4dfritz
— Tools for AVM FRITZ! Home Automation Systems
- GitHub Repository: github.com/SB4D/sb4dfritz
sb4dfritz
provides specialized functionality to interact with home automation devices connected to AVM FRITZ!Box routers. This is mainly a learning project for object oriented programming in Python and network communication using HTTP and SOAP. Originally, the communication was handled by the fritzconnection library, but I have written my own library sb4dfritzlib
to remove this dependency. As a next step, I’m planning to add a browser-based frontend.
sb4dportfolio
— Python and LaTeX for Job Applications
I took quite some pleasure in designing my application material whilst honing my computer skills. I was looking for a solution that is visually appealing, especially on computer screens, and easy to use (for me). In particular, I wanted to separate design aspects and content as much as possible. This requirement made LaTeX and Python a natural choice. As a bit of eye candy, I had the idea for a subtle watermark image fading into the page, with the added personal touch of transitioning from mathematics into code.
- Watermark Design: To get the watermark exactly right, I wrote a Python library for image processing (based on PIL and NumPy) which offers blending and fading effects with fully customizable gradients.
- LaTeX Template Design: I then designed LaTeX templates for cover letters and CVs with my watermark embedded.
- Automatic Document Generation: Having created the CV template, I wrote a Python script that automatically generates a LaTeX CV from data stored in a YAML file.
Now all I have to do is write cover letters in plain text, keep my CV data up to date in the suitably structured YAML file, and run the scripts. No more fussing around with annoying table structures and formatting options in Word or LaTeX.
How did I do? — A MIDI Drum Practice Tool
While I’m not a drummer myself, I picked up finger drumming for sketching songs. This brought me to Melodics, which I’ve briefly used. While I liked its concept, it was too expensive and felt too much like a toy. I wanted a real practice tool that would allow me to evaluate my finger drum performances and help me to improve my sense of rhythm and timing accuracy. As a quick fix, I developed a rudimentary implementation as an extension for REAPER written in Lua using the ReaScript API. The goal is to make this a self-contained web application using Python, FastAPI and a bit of JavaScript for the Web MIDI API.
sbehrens4d.com
— This Website
Lastly, there’s my website. I know, exactly what the world needed… Well, I felt like I needed one. In part, it’s meant to serve as an extension of my application material, so that potential employers can get a better idea of who I am and what I (can) do. The website is based on Quarto. I started with a template and added a few tweaks here and there. Two notable features: