SystemTap Syntax Highlighting in LaTeX listings

While writing a report about SystemTap in LaTeX I had to figure out how to get LaTeX to nicely color my listings, because the report featured some source code. By default, the Listings package does not support SystemTap (see chapter 2.4 of the Listings Package user guide). Since SystemTap syntax is very similar to C, I first tried that option, but alas no luck. The problem lies in the fact that SystemTap does not use semicolons to end a statement, therefore the C syntax highlighter gets very confused.

Go: Dump HTTP Request

Recently, I was implementing a Webhook for Gogs in Go. Unfortunately, the documentation is not one hundred percent complete and could be a bit more specific at times. Also, neither reading Gogs source code nor other people’s implementation is what anyone really wants here. What I ended up doing was dumping the complete request (including all HTTP Headers and Body) with the following, simple Go program: package main import ( "fmt" "net/http" "net/http/httputil" ) func main() { http.

LED Strip with Motion Sensor

LED strips are nothing new today. They come in in different lengths (up to 10m), types (waterproof and non-waterproof, 30 or 60 LEDs per meter, …) and colors. You can choose between warm or cold white LEDs and even RGB LED strips, which use three independent LEDs (Red, Green and Blue), are available. Best of all: they are ridiculously cheap! With this project I want to create a custom lighting under my bed, triggered by a motion sensor.

Go: Verify Cryptographic Signatures

Recently, I was implementing a webhook for Travis CI in Go. When a build finishes (depending on the settings), Travis POSTs to a previously specified URL. That requires the URL of the webhook to be publicly accessible (you can still Travis-encrypt the URL, but that’s just security-by-obscurity). To give you the possibility to verify the POST query actually came from Travis, they not only send the payload but also a signature (as an HTTP header).

LXC Containers with separate IPs

LXC (LinuX Containers) are kind of Chroot Enviroments on Steroids. They allow OS-level virtualization by using cgroups (control groups) provided by the Linux kernel. OS-level virtualization is not as resource-hungry as normal virtualization (there is almost zero overhead) but offers less isolation. For more details check the Wikipedia Page of LXC and OS-level virtualization. For me personally, LXC is the perfect middle ground between heavy, full-blown VMs and microservices architectures like Docker.

Kanboard Installation on Debian Jessie

In this guide I’m describing how to set up Kanboard on a Debian Jessie system with Nginx, MySQL and OpenLDAP. What is Kanboard? Kanboard is a Project Management Software utilizing the Kanban methodology, it visualizes your workflow and limits your work in progress. For a complete documentation of how to use Kanboard and utilize Kanban, please visit https://kanboard.net/documentation . Requirements Requirements for Kanboard itself can be found here: https://kanboard.net/documentation/requirements