Clickhouse: Import compressed JSON fast

The MVG Observatory Project collects real-time departure data from Munich鈥檚 public transport system. The data is organized hierarchically: the top level contains date-based folders, each containing subfolders named after station IDs. These station folders hold multiple JSON files that capture departure information throughout the day. Each station鈥檚 data is stored in two types of files: *_body.json and *_meta.json. The body files contain either API error messages or JSON arrays of responses, which are imported into the mvg.responses table in Clickhouse. The corresponding meta files store request metadata (sharing the same timestamp as their body files) and are imported into the mvg.requests table. ...

October 21, 2024 路 7 min 路 1444 words 路 Robert

Fly with Sensible Photo Equipment

I got dragged into the rabbit hole of taking analog photos about a year ago and enjoying it since. But when you want to board a plane with your camera and a bunch of film rolls you might ask yourself: What to do with it during the x-ray at the security check. Will it harm or destroy my film? Film condition This concern is valid for a film that is either new or exposed and winded back which therefore is unprocessed. A film that has already been processed by a lab and you have been handed the negatives back is unaffected and safe. ...

April 22, 2024 路 5 min 路 937 words 路 Robert

TIL: 'dot_clean' in macOS

When switching between multiple systems including macOS you may have notices thoses strange looking files starting with ._. They regularely break Switch firmware upgrades and might be in the way during other filesystem operations as well. There are multiple solutions out there in the wild including removing them or moving them away using rsync. The most convinient way on macOS is using the dot_clean command which is shipped with macOS by default. ...

April 7, 2023 路 1 min 路 103 words 路 Robert

Advent of Code - RocketLang Edition

This years Advent of Code is a little special because I use my own language RocketLang to solve the puzzles. I鈥檒l probably explain this in a seperate post at some point so lets have a look at the first puzzle of the year: Problem The task is to calculate the amount of calories they are carrying. For example: 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 This shows us 5 elves with different amount of items (with different calories each). ...

December 1, 2022 路 2 min 路 394 words 路 Robert

馃 Blumentopf - Automated Plant Watering #2

This post misses a lot of technical details as I reconstruct the changes and implementations out of my memory and my image archive. The latest Blumentopf iteration will contain all technical details you need. In 2020 I remembered a Self-Watering Planter I printed a few years ago and thought it would be nice to reuse this one to replace my chunky prototype with a cleaner and more aesthetic version. ...

May 1, 2022 路 2 min 路 401 words 路 Robert

馃 Blumentopf - Automated Plant Watering #1

This post misses a lot of technical details as I reconstruct the changes and implementations out of my memory and my image archive. The latest Blumentopf iteration will contain all technical details you need. Four years ago I started working on a never ending side project with which I wanted to automate the watering of some of my plants. I fiddled around with a few modules from Tinkerforge which I love for jumping into a project. The modules are relatively pricey but have an excellent documentation and are working very well. ...

May 1, 2022 路 2 min 路 373 words 路 Robert

Sous Vide Steak 1.0

Recently we tried out sous vide cooking and needed quite some time to find well-sounding parameters in the internet or cookbooks. To preserve the tweaks we did to them I wanted to put them up here, also some of you might want to give it a try too. Baseline Parameters The following parameters can be used for a cold start and might need adjustments depending on your tools and taste. ...

October 18, 2021 路 1 min 路 206 words 路 Robert

Shenzhen I/O #3 - Diagnostic Pulse Generator

Another day another Shenzhen I/O puzzle. In order to test some of our new manufacturing equipment, we need a pulse generator with certain requirements (specifications). However, instead of buying one at the market price, I thought we could simply create our own. For this project you will need to make use of conditional execution. Please continue your study of the language reference. As a refresher, checkout the Language Reference Card in the first post. ...

March 18, 2021 路 1 min 路 140 words 路 Robert

Shenzhen I/O #2 - Control Signal Amplifier

Today we鈥檙e doing another Shenzhen I/O puzzle. As this is the second task, the puzzle is again quite simple. As a reminder, we do have the following command documentation: The task is to amplify a signal. As we can see from the verification tab the output has to be higher than the input - twice as high, to be precise. This seems fairly easy, we just need to multiply the input signal with 2 and output the result. If we take a closer look on our commands we can find a mul operator which can take one argument. It is documented with the following: ...

March 14, 2021 路 2 min 路 246 words 路 Robert

Printer of Catan #1

I recently stumbled over the Catan style boardgame 2.0 from Dakanzla and thought it would be nice to print my own version of it. Doing this I noticed how hard it was to collect all information, find the right models for the version I wanted and finally printing it. Therefore I am writing this post helping others to create their version of Catan. This is an ongoing series of posts during the building/printing of the game and is likely to change. While new blog posts will cover the process I鈥檒l keep the specs in this post up to date when I change a color or similiar. ...

February 27, 2021 路 3 min 路 543 words 路 Robert