#weeklyreview 10/2025

Last week was a week of crazily beautiful sundowns. Clear skies and city scenery made for some spectacular photos.

Hacker Stammtisch

Tuesday was this month session of the old nerds. There were animated discussion about a IT cooperative. One friends bugs us since years with that idea. It sounds nice and some of us kinda do have this with our self-hosting efforts at a small and family scale. But I doubt this can take off commercially. If you offer IT services to companies and need to respect SLAs and all the regulatory requirements it quickly becomes involved and expensive. Or someone is being exploited …

Plate of breaded schnitzel topped with a lemon wedge, served with potatoes. A glass of beer and a mug with utensils are in the background, alongside a bowl of salad.

Crocusses

On Friday I used to good whether to have a walk over the nearby cemetery. We can see it from our balcony and I could tell it’s full or crocuses.

Glorious mug

A friend gifted me this glorious golden mug for always bringing tea for our winter swimming group. Isn’t it gorgeous?

A reflective, gold-colored mug held in a hand, filled with frothy beverage, against a blurred outdoor background of grass and trees.

Rust programming

I also continued working on my little Rust program to batch upload images to Pixelfed. Adding support for various options to generate the image descriptions.

I gave up on trying to write the whole thing with help of tools like ChatGTP, Claude or Copilot. It just doesn’t work in my eyes. As soon as stuff gets more complex, one spends more time explaining context and functionality to the tools than writing code. I’m only using some help for short functions and lines that needs fixing or alternatives. But just doing the good old RTFM and reading blog posts with examples and explanations seems still a more effective way to get this moving forward.

It’s not fully done yet, but the code is available in the branch “Ollama” on my repo.

#weeklyreview 03/2025

Ice swimming

A few weeks too late for a white christmas it was snowing on the weekend and actually cold enough for the snow to stay. Nevertheless went running with a friend on Sunday and of course swimming. This time there was about 3-5m of ice on the shore before the open water started.

Thats always a bit tricky as the ice shards are quite sharp. And it’s really frickin’ cold to break them and push them away with bare hands. But we managed and it was a beautiful swim in the cold water and the sun was shining. Water temperature was about 2º C.

Still got some cuts and bruises from the ice, but not as bad as last year.

Ice shower

The shower in the gym still doesn’t have warm water. So the week continued with cold showers after the exercise 😉

18 at last

Our 2nd child turned 18 this week. Time flies …

Kiddo doesn’t like presents nor a party. So a family coffee was all that was tolerated. 🤷

At least my wife payed us a visit in Berlin for this occasion 🤗

Dunkin' donut box on a table, encircled by lit tea candles. On the box, there is an easel holding a small canvas painted with a blue and yellow design.

Pixelfed – another attempt

Since the enshittification of the commercial networks goes on many of their users seems to be migrating currently to Pixelfed.

I had an instance in the past, but were not happy with the buggy setup and flaky support. So eventually deleted my instance.

But with this new influx of users and the native iOS being available now I thought I give it another chance and did a new installation. Not without hiccups of course. But I think I’ve got it running reasonably well.

I’ve also downloaded my data archive from Instagram. Then I saw a friend posting batches of photos from his Insta Backup and thought that’s a nice idea, to post them month wise. But a tool to do that posting from the backup folder would be nice.

So I asked ChatGPT for help and came up with https://repos.mxhdr.net/maxheadroom/insta-import-pixelfed

This does the job ob posting all images in a certain folder in batches of configurable size.

This looks like this:

Meshtastic

Finally had ordered a Meshtastic device and got it delivered. That was inspired by the tinkering of Jan Wildeboer and is stories about the mesh networking capabilities oft the OLPC. I went with a LILYGO T-Echo

↬social.wildeboer.net/@jwildeboer/113137588284826911

↬social.wildeboer.net/@jwildeboer/113191557900339340

This is a protocol on top of the free 868MHz packet radio frequency that can be used for message exchange and routing. The good thing about the mesh network is, that there is no central infrastructure. The messages are just passed from node to node in a store/forward fashion. It resembles a little bit the robustness of the early Internet with multiple paths and redundancy and resilience in mind.

I can see dozens of nodes in Berlin and if the weather conditions are right, then even nodes from Poland, Hamburg, Halle (Saale), Zeitz etc. This is pretty amazing.

This can be seen on https://meshmap.de/

confused

overall I was little thrown off this week as there were so many unusual events and meet-ups that I got confused with the weekdays. We also didn’t went to the countryside on the weekend, which added to the confusion 🤪

#weeklyreview 02/2025

First full work week of the new year. Of course I started with proper gym sessions. The gym but had some surprises in store. The hot water wasn’t going on Monday so I could combine gym and ice bathing 😁

Had some good rowing sessions this week and also did some high-intensity interval sessions on the rowing machine.

Meta -> MAGA

Zuckerberg caved in proactively and declared Meta is no longer doing content moderation for their services (Instagram, Facebook, Threads, WhatsApp etc.). So the shitshow that is their social media platforms will turn even worse. That’s surely gonna work out. It worked great for Twitter under first lady Musk turning it into a right-wing cesspool.

I saw first Mastodon instance admins already announcing that they’ve now finally blogged the threads.net domain from federation with the Fediverse. Threads was meant to properly federate with Mastodon and the likes via ActivityPub. But looks like that’s not going to expand much further with their current trajectory.

I’m not yet blocking Threads on my instance but rather leave it up to the individual users to set up a block for their own account.

Cold Brew

When it’s cold outside (It was snowing in Berlin this week) one can use the balcony to make cold brew coffee 😉

It wasn’t too cold though. No risk of the water freezing and cracking the jar.

A glass jar filled with amber liquid sits on a slatted wooden table on a balcony, with an out-of-focus cityscape and a blurred plant pot in the background.

fiddling with CSV files

I recently found a great tool for playing around with CSV files. Often I have to export some data from a tool to CSV format to process it further. Sometimes I just want to answer a relatively simple question. Like how many lines match a certain value in column C?

Probe is helping with that exact problem by providing an SQL like interface for CSV files (and even Parquet files). Simple binary that use open the CSV file with and start writing your queries.

↬mastodon.xyz/@johl/113775818903147100

Monitoring NextCloud All-In-On Containers

I’m running my NextCloud instance with the AOI Mastercontainer setup. To monitor such an instance, you can call a special monitoring URL that is displayed for the administrator under System Info.

However, you need to authenticate your request to the monitoring URL. For this you’re supposed to generate an access token. I was searching in the user interface for that option and couldn’t find it. Turns out that the access token is just a random string that you then have to configure as access token via the occ command line tool.

Now how to get to that occ tool on the AIO installation?

First you generate that random string using openssl:

openssl rand -hex 32

The result should be a 32 character string of hexadecimal numbers.

On the machine where your AIO containers run, you then call the main next cloud container like this:

docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:app:set serverinfo token --value <your random hext string goes here>

That should set the Token for the server info URL and you can now call your monitoring endpoint with curl if you like to verify it:

curl -H "NC-Token: <your random hext string goes here>" https://nextcloud.example.com/ocs/v2.php/apps/serverinfo/api/v1/info

It should give you an XML document (unless configured to produce JSON output) with a whole bunch of NextCloud status information.

Winter finally

it had snowed already several times this week. But at least at the beginning of the week the snow didn’t last long as it was too warm still.

Tuesday evening on our way to the „Hacker Stammtisch“ there was proper rain/snow mix. Fortunately I got my rain coat „Friesen-Nerz“ and rain trousers and arrived dry. Moellus wasn’t dressed for the weather but still used the bike. R.E.S.P.E.C.T.

On Thursday the snow snow started to stay and it looked like Berlin was wildly unprepared. There roads were not cleared of the snow from what I could tell.

It did start to look rather nice on the weekend in the countryside. 3 weeks too late for a white Christmas though.

Herbstgold

On Saturday there was a documentary film evening organized in our village. Two films were on display. A short animation film by Adrienne Zeitler called “Die Frau und Landschaft” and a documentary by Jan Tenhaven called “Herbstgold“.

The latter was about really old people still competing in Sports. Very lovely movie with unique characters and touching stories. Really funny at times.

Studio Ghibli Mucke

and last, not least some tunes from Joe Hisaishi that K2 was practising

#weeklyreview 50/2024

gyming too hard

Went a bit too long on the rowing machine and bruised my bum. Probably also due to improper wardrobe (sitting on a seam or something). So rest of the week was more stepper, strength and gymnastics

Shell history tool

Found a tool that help managing the shell command history slightly better: atuin.sh

The tool provides sort of a GUI for browsing and search the command history. You can see stats for individual commands and also sync your shell history across machines if you feel fancy. The syncing can be done either via atuin main server (E2E encrypted), or via a self-hosted backend.

Banana!

More fruit dehydration fun. I tried Bananas and they come out crips and delicious after about 12hrs and 50º C.

Christmas concert at school

The annual Christmas concert of K2s school took place on Wednesday. Of course kiddo only told me one day before. Fortunately I didn’t had any meetings that day. So I could attend and witness the progress the kids made – or made not 😉

Let’s be frank … sometimes the music can only be loved by parents. Some kids simply just don’t practice enough or don’t like to play at all. But hey, that’s OK. At least they tried and improve over time. Most of the performances were actually good and impressive. Especially the string instruments (violin and such) are really difficult to play. Even more stunning that they manage to get something reasonable out after just half a year with their instruments.

Farewell

Thursday I attended yet another farewell dinner for a dear friend who’s leaving for Australia for a few month. Awesome people and delicious food. Can’t put in words.

Feuerzangenbowle

On Friday I was invited for a traditional German christmas event of “Feuerzangenbowle“. For this you have a pot of red wine with spices and you soak a cone of sugar with high percentage Rum and set that on fire. The fire will melt the sugar and let it drip into the spicy wine. Making for a spectacular “Glühwein” 😉

#weeklyreview 49/2024

More Gymming

totally enjoying to be back in the gym. Of course over exercising according to my fitness apps. But it’s so good to use and feel the body work.

It was also raining quite a bit this week so that I had to dress up properly to not arrive completely soaked in the office. But you know I like weather 🙂

grey beard gathering

This month hacker gathering was smaller than usual. But nevertheless fun. Learned about TypeScript and an Intel 8080 hardware debugger.

BnB crew Christmas party

Our famous Beer’n’Burger crew met to cheat on the burgers and have goose instead at the Prater Garten restaurant. Awesome as always and delicious.

Farewell party

On Friday evening we had the farewell party of my best friend. She’s leaving for Australia for a few week. It was just mind blowing 😉

Event Hoppping

On Saturday we went event hopping. There was of course the living advent calendar in the village that we attended. Also visited an exhibition opening in the MKC in Templin and eventually joined the open studio of the lovely Silke Schmidt where I took the selfie with my spirit animal :D.

A man with a beard, wearing a beanie and colorful scarf, is smiling next to a large polar bear sculpture.

new gadget

Got a new gadget from one of the villagers for free. A food dehydrator 🙂

Wanted to get one for quite a while already but never committed to buy one. Now I can make my own dried fruits and maybe even dried meat

A food dehydrator with sliced apples arranged on the transparent drying trays, set on a workbench surrounded by tools and wires.

#weeklyreview 47/2024

Of course the week started with swimming (for this series of weekly reviews I’ll take the Sunday as start of the new week). Not all the way across the lake as it’s getting a little chilly in the water now and we didn’t had that much time.

Coding

while writing on last weeks review it nagged me that the WordPress blog posts don’t have image descriptions. I know it’s just me being lazy to put them in in the first place. But I’m meanwhile spoiled by IceCubes app which can autogenerate image descriptions.

So I started chatting with ChatGPT about writing a little helper program in Rust which would get an image description from the OpenAPI API and then upload the picture to my WordPress and put the description as well. It slowly took shape but didn’t quite get there apart from it getting late in my day …

A cartoon polar bear sits at a desk using a laptop, with a chalkboard in the background featuring a mix of symbols, drawings, and indecipherable text.
generated illustration with DiffusionBee

I was about to give up and sent a toot before closing my laptop. But then someone replied that they had more success with Claude.ai instead of ChatGPT for Rust programs.

↬mas.to/@ingenieur/113506074188779262

And indeed. The code seemed much better and I got a first working version that night. You can find the code and some pre-compiled binaries on my Forgejo instance.

To process multiple files I used a simple shell loop:

No thinking where to take this next. I’d like to update the image descriptions of the existing images in WordPress. Could do this from remote as well. But an actual WordPress plugin probably makes more sense here.

Other idea is to use a local LLM to generate the image description so you don’t need to upload the images to OpenAI.

This is really a rabbit hole. But programming is much more satisfying the herding cats as a project/program manager ….

And because self-hosting is fun … I also set up an instance of Asciinema. The “shell cast” above is an example of this.

Walking

Since the office gym is still closed I’m missing out on a lot of exercise 🙁

Started walking to the office more often. It’s a 4.5km walk in one direction. So adding up close to 10km of walking per day. Not too shabby. Now that the weather is turning colder and more rainy it’s even more fun 😉

Updated my nails again as the color faded and crackled.

A hand with bright red and rainbow-painted nails rests on a wooden table near a full beer bottle and a glass of beer, both placed on branded coasters. Another person's hand is visible in the background.

First snow

This week we finally had some snow. It didn’t stick in Berlin, but the on the countryside one actually had a thing white blanket over everything. Even when we arrived there on Friday evening there was still some snow on the sides and roofs. The low sun made for some incredible sundowns in the late afternoon.

A vibrant sunset illuminates the sky with shades of orange and pink above a dense cluster of trees with varying foliage colors, including dark greens and yellows. Some bare branches are visible, indicating a transition into autumn. The overall scene evokes a calm, serene atmosphere.

On Saturday we had our annual “Vereinsfeier” at the house of some friends. Always lovely to see the people from the village and have them bring all sorts of food and chat away into the night.

A pink deer head sculpture with lit candles on its antlers is placed on a wooden table beside a bowl filled with cables and papers.

#weeklyreview 46/2024

it’s getting cold outside

Swimming on Sunday was again a little colder than the weekend before. The whole week had rather low temperatures even during the day. So this Sunday the lake water had around 8º C while the air was around 0º C.

Still managed to cross the lake without dying 😉

Procrastination finished

I finally finished my blog post about setting up SSH access with FIDO keys. That was in the drafts folder for a couple of months now. I’m using my two Token2 hardware tokens wherever possible now. Also for SSH connections. Tiny bit annoying to enter the PIN all the time, but better getting used to this additional layer of security.

Cleaning the cemetery in the village

On Saturday the people of the village joined forces to clean the cemetery of the fallen leaves and other stuff. We were also again cutting down some trees that have grown too much. Always a fun event working with these people. It’s a lovey mixture of old residents who spent almost their entire live in this tiny village and then “immigrants” of various age and place that either moved their or have a weekend home in the village. Everyone gets along really well and helps the community. Of course it’s celebrated with some beverages (mostly beer ) in the end.

The kids had fun jumping and diving into the large piles of leaves. The adults had fun using their machinery to cut and shred the trees :D.

In the afternoon some friends and I did an additional brief swimming session in the lake. The water hasn’t cooled much since last week. Was good enough for a short dip.

Calm lake with clear, shallow water in the foreground, surrounded by tall reeds on both sides. The distant shoreline features a forest of leafless trees under a cloudy sky.

PopChor is rocking on heavens door

Saturday evening we were attending a concert of the PopChor Templin. That was really nice. If it hadn’t started an hour later than originally scheduled, we would probably have stayed even longer for the two bands after the PopChor. Some impressions from their previous concerts this year can be found on YouTube.

#weeklyreview 45/24

Frost

Finally Winter seems to be closing in. On Sunday the temperature fell below the freezing point (of water) and we had -4º C in the countryside. But we were rewarded with beautiful sunshine and colourful autumn foliage.

Temperature in the lake also dropped a bit over last weekend. I tried out my new digital surface thermometer. That showed 11.4º C. Another thermometer that measured at a depth of about 10cm into the water showed 9º C.

Crossed the lake nevertheless. Still now issue with that.

Back in Berlin I met with my friend Sam for beers. Hadn’t had beers for several weeks … so it was about time. Fun conversations 😉

Winter tires

This year I made the appointment to change the winter tires back in September already. Before the first snow 😀 Free choice of schedule … But they actually advised to not have the tires changed if it’s still above 7º C average. Thats why I only now got the appointment.

Driving through the city is insane. It was always crazy, but it seems in the last quarter the city has added construction sites to EVERY road. In our area one of the main 6 lanes roads is now reduced to two lanes and also all the side roads are blocked. Apparently this will take at least 2 years to finish. But of course you never see anyone actually working…

proper coffee

On Tuesday I decided to take my coffee gear to the office to enjoy a proper coffee without spending 4 EUR on it outside.

A bunch of coffee gear lined up on a wooden tabletop. Left to right: metal jug with coffee, a cup of ready cappuccino, a Subminimal milk frother, AeroPress chamber and grid lid, AeroPress piston and Coretto permanent steel filter for the AeroPress, Hario Travel Grinder and finally Hario Mill stick.

This nicely fits into an old camera bag

I might do this more often now (or eventually get a copy of the gear for the office…)

Shortly before I was supposed to get my yearly flu vaccination by the company doctor a fire alarm had us exit the building. Quite a spectacle with police, emergency cars, fire engines and even a helicopter. But fortunately it turned out to be a false alarm and we were allowed back in after about 15 min.

a helicopter, slightly blurry, in front of a blueish sky.

Hacker meeting

This time at the Prater Garten Restaurant. Decent “Wiener Schnitzel” and again an inspiring bunch of old nerds having fun.

↬wandzeitung.xyz/@moellus/113431974931326324

CryptPad Installation

I finally took the time to look into installing CryptPad. That’s a secure online editor for documents where multiple people can work on the same document, chat and comment while collaborating. Focus is on security here as all connections and storage of the documents is encrypted.

They meanwhile provide a working docker-compose.yaml and I only had to add the labels for my Traefik reverse proxy.

There some initial challenges in getting the container properly connected to Traefik. One has to get the config.js of CryptPad right.

I’ll share my docker-compose.yaml and my config.js here, so you can take these as inspiration. I basically only put in my domain names in the config.js and docker-compose.yaml. One important piece is to set the httpAddress: 'cryptpad' in the config.js because the docker-compose.yml sets this as the hostname of the container. If you leave this at localhost, Traefik will not be able to connect and you’ll just get a “Bad gateway” error when trying to connect.

Next quest is to the get OnlyOffice stuff running to support Spreadsheets and Presentation documents as well…

[Update 2024-11-11] got the OnlyOffice extension working. Had to execute the ‘install-onlyoffice.sh’ from the GitRepo inside the running application container and restart once.

Art Forest hiking

On Saturday we had organised a hike from our neighbour village through the art forest to the “Mittelpunkt der Erde” (middle of the earth) restaurant in Kurtschlag. That was a nice hike with funny and insightful information shared by one of our neighbours.

The restaurant was really lovely as you would imagine an old small village restaurant that fell out of time. There were 3 dishes on the menu and the max price was 7.95 EUR. You could have eaten all 3 and were still cheaper than a normal meal in Berlin. Amazing.

Fall of Carthage

Sascha and his band “Fall of Carthagerelease their new album “Kernel Panic” a few days ago. Of course I had to listen in although I never really like their earlier albums. Not because they were not good. Quite to the contrary. But the previous albums were just not my taste at that time.

The new album however I really do like. The style is still more on the heavy metal side. But I like the arrangements on the new album.

If you like their music and want to support the band, make sure you either buy on Bandcamp or if you’re streaming, then consider donating directly to the band via PayPal. As a small band, there is virtually no revenue for the band from the commercial streaming services.

#weeklyreview 41/24

Beer’n’Burger

On Monday we had another instalment of our infamous beer & burger crew meetings. This time we finally met at the Brewdog restaurant at the Frankfurter Tor. The burgers were surprisingly good. The beer was good not surprisingly. But on the costly side with around 7 EUR per 0,5L glas.

Cold

I guess two times swimming on the last weekend and two sick kids at home last week took a toll on me. Woke up with a severely soar throat on Tuesday and it went downhill from there. So bad that I actually called in sick for Wednesday and Thursday.

Originally this Tuesday I was scheduled for the company sponsored flu vaccination. But fortunately that had to be rescheduled due to the doctor herself being sick.

Tried to stay in bed really and rest/sleep. Of course got interrupted several times by phone calls and family emergencies.

But eventually managed to get through and felt much better on Friday already. Almost no symptoms on Saturday.

big mastodon update

On Tuesday version 4.3.0 of Mastodon came out. Almost a major release if you ask me. The update required some manual intervention. They’ve split the container images into one for the web app and one for the streaming app. The docker-compose.yml had to be adjusted accordingly and a second container image built. I also had to rebuild the patch or the source code to allow for longer postings. This is now a little bit easier and can be achieve by just changing one variable value:

From d04253848c2d53cc732e3cb0c6e31be91dd6107c Mon Sep 17 00:00:00 2001
From: Falko Zurell <email>
Date: Tue, 8 Oct 2024 15:27:02 +0200
Subject: [PATCH] adjust post character limit to 5000 chars for 4.3.x

Signed-off-by: Falko Zurell <email>
---
 app/validators/status_length_validator.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb
index dc841ded3..9cb1ec94b 100644
--- a/app/validators/status_length_validator.rb
+++ b/app/validators/status_length_validator.rb
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 class StatusLengthValidator < ActiveModel::Validator
-  MAX_CHARS = 500
+  MAX_CHARS = 5000
   URL_PLACEHOLDER_CHARS = 23
   URL_PLACEHOLDER = 'x' * 23
 
-- 
2.39.5 (Apple Git-154)

All in all the upgrades of all three of my instances went perfectly smooth and the new web interface looks slightly fresher.

Dinosaurs and Future

The weather on Saturday was so good and we stayed in Berlin for quarantine (not pass on the cold/flue on to my wife in the countryside) reasons. Kiddo and me decided to go to the museum of natural history to see the dinosaurs and other stuff again. We took the bikes and happily pedalled there through marvellous Mitte.

I was surprised to find Knut the famous Berlin Zoo polar bear there on display.

After the museum we felt fancy enough to drive down the road to the FUTURIUM. A new building new the river and Hauptbahnhof where some vision of the future stuff is on display. There was a spectacular view from the skywalk on the roof over sunny Berlin.

We rounded the trip off with lunch at Sanku Maots’ai 三顾冒菜 柏林 a Chinese style restaurant at Friedrichstrasse. It’s quite popular among the natives and you get to choose your ingredients for your hot pot yourself. And yours truly doesn’t shy away from the weird stuff like duck blood or tribe 😀

In the evening we watched the original Tim Burton “Betelgeuse” movie and afterwards James Bond – Goldeneye. Good ol’ stuff.

#weeklyreview 40/24

Ted Lasso

I’m a big fan of the Ted Lasso TV series. So I had to improve one of our meeting rooms

let’s see how long this lasts

Nerd meet up

On Tuesday I attended gathering of some old hacker dudes. All famous names in the Berlin scene and beyond. Hard fanboy moment to meet Tim Pritlove in person. He’s an icon in the Podcast world and has single handedly established and nurtured podcasts over the decades now with famous formats like Chaos Radio Express, Logbuch Netzpolitik and many more.

Realised we’re getting old and you hardly find people with this depth and breadth of computer knowledge anymore.

flu season

Both kids were off sick for a few days this week. Looks like flu season has started. Fortunately I’m scheduled for my flu shot next week in the company.

At least that gave us some time for a walk in the park and enjoy the autumn.

Swimming

went for a swim in the lake on Saturday. Water is already quite cold. But still comfortably managed to do the large triangle. Of course had the whole lake for myself 🤣