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 …
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?
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.
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 🤗
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.
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.
Screenshot
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.
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 🤪
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.
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.
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:
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
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” 😉
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.
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
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 …
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.
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.
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.
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.
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.
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.
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.
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.
Hacker meeting
This time at the Prater Garten Restaurant. Decent “Wiener Schnitzel” and again an inspiring bunch of old nerds having fun.
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 Carthage” release 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.
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:
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.
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.
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 🤣