contact Me

Use the form on the right to contact me.

You are welcome, to contact me regarding the topics of this page, my open source projects, or my work. Please use the contact form and leave a valid email address for me to respond to.

Thank you.

Egidestr. 9
44892 Bochum

A fun week full of experiments


Random thoughts, bright ideas and interesting experiments. In short the ramblings of a fulltime nerd.


A fun week full of experiments

Jakob Westhoff

During the last week I have been away on a hackathon with friends. We rented a big vacation home and made ourselves comfortable there. We didn't have any special topic or project to work on. Everybody just met there to have fun playing around with whatever he wanted to test, learn or discuss. As always it hasn't only been a lot of fun, but quite a productive week as well.

An experimental Grid of L8s

After receiving further L8s. I planed on integrating a Grid feature into my node-l8smartlight library. I wanted to control a grid of multiple L8s, as if they were one big matrix with a greater amount of pixels. In order to do that I introduced an abstraction layer, which transparently maps between a matrix of the available L8s pixels, and their respective local coordinates and operations. The whole process is completely transparent to the user. I took a small video of it during the hackathon, which demonstrates the first working implementation of it.

Before releasing a new version of the library I will have to cleanup and document the created code further. However you are welcome to play around with what is there already. You will find the current state in the master branch of the node-l8smartlight repository over on github.

An experimental FTP2HTTP gateway in Go

After my initial work on the L8s was finished I wanted to do something new. Learning a new programming language? I have been curious about Go for quite some time now. Therefore I started to fiddle around with it. After a short period of time I was comfortable with the basics of the language. In order to further explore it I needed a simple, but yet interesting little project for me to realize. After a discussion with a friend about the fact, that a lot of people still use FTP for import/export of data in and out of there systems (especially ERP-Systems). I realized I could ease the pain in a certain project myself by having a HTTP2FTP bridge. The idea was born: Create an application, which acts as a FTP-Server to the outside world, while querying a HTTP-Backend, once a file is requested for download, a folder listed, or something uploaded. This would allow me to directly integrate a FTP interface into a web application without pain or the maintenance overhead of a real FTP server, which is then synced via cron or some other worker with the real web application.

FTP Access to the virtual files and folders which map to HTTP endpoint

FTP Access to the virtual files and folders which map to HTTP endpoint

I decided that this project would be ideal, to allow to learn further things about the Go language. One and a half days later, the first version was ready and mostly worked as I wanted it to be. If you want to take a peak at the project head over to my http2ftp repository on github. Or simply install the tool inside your Go environment with the following command:

$ go get

As I potentially will use this gateway myself I might change and update it in the future. However you should think of it as an experiment in its current state, which is most likely not ready for production use ;). As I said I developed it with 1 1/2 days of Go knowledge.

An experimental update of my JavaScript Seeds

Some time ago I published an article on the basic setup I use for new JavaScript projects. Since then I adapted and refined this setup while using it during my day to day work. I used the last day of the hackathon to integrate a lot of the changes and updates, which accumulated during the last months in different projects back into my JavaScript Seeds. Furthermore I realized, that I am using specialized versions of those bootstrapped environments for different use cases. For example I created a modified version, which integrates Facebooks React framework, to allow smooth and easy development in conjunction with all the other technologies I like to use. Therefore I reorganized those environments and put them into their own organization on github: BootstrapJS.

This organization hosts all the different versions of my environments. Currently there is one for vanilla JavaScript as well as the afore mentioned React variant.

As the build file (Gruntfile.js) got more and more complex, to the point, where it afflicted pain on me during updates ;), I decided to split it up into different files, each reflecting one build scenario. Those scenarios can now be found inside the Build Support folder. In addition the main build steps are now executed in parallel to speed things up a little. Further changes involve a more semantically correct naming of folders, package updates as well as configurable build Parameters(.json) and some minor tweaks.

Just head over to the repositories and take a look. Pull requests are always welcome. If you have similar setups, maybe involving another technology stack, like browserify instead of requirejs, drop me a line and we can give it a separate repository inside the BootstrapJS organization. The more the merrier.

Other Experiments

Besides the experiments detailed in this post I used the time to work on some aspects of the Qafoo Profiler together with my fellow co-workers. I had a lot of fun developing solutions for certain aspects of this project. I am already looking forward to publicly announce some of them in the near future. Stay tuned!

Thanks for this great week

On a personal note I wanted to thank all the awesome people I had the chance to meet and talk to during the last week. As always it has been a blast. Thanks for the fun times. Hopefully see you all again next year :).