Set Up Analytics with Hugo
In this post, I’ll walk you through how I set up an analytics solution for my Hugo-based blog. I wanted to avoid using Google Analytics or other invasive services that collect excessive data, so I opted for a simple, self-hosted alternative.
Common Docker Pitfalls and How to Avoid Them
Docker is a fantastic tool that I use regularly, but over time, I’ve encountered a few pitfalls. Below is a collection of common issues you may face and how to address them.
Set Up Isso for Comments on Hugo
On my blog, which uses Hugo as a static site generator, I wanted to offer a comment system. However, I didn’t want to use the paid Disqus service, so I looked for a simple, self-hosted solution.
The first solution I came across was CusDis. While it was relatively easy to integrate, the layout was not ideal. It looked outdated and didn’t scale properly to the current page width and height. This issue is documented, for example, in a GitHub issue.
First Impressions of gpt4all
The main reason I rarely use LLMs (Large Language Models) like ChatGPT is privacy concerns. The data you share can often be used by the providers in a more or less arbitrary way.
I had looked into gpt4all some time ago. At that time, however, there didn’t seem to be any usable models. In my initial tests, the output was extremely slow (sometimes several seconds per word) and the content was also unusable.
Hello World Throughput with Spring Boot
I wondered how many request a simple hello world endpoint would be able to serve with Spring Boot out of the box.
By default Spring Boot uses Tomcat and the setting server.tomcat.threads.max defines the number of threads available for concurrent request handling. By default up to 200 threads can handle requests.
To limit or not to limit Docker with Spring Boot
I recently asked myself what the difference would be between running a Spring Boot Application in a Docker Container with a limit on resources like CPU or RAM between running it without limit.
Hibernate Validator Performance
Recently I was investigating a performance problem in a Spring Boot application using Spring Data and Postgres. A request to load a list of items took half a minute. I quickly realized that loading 1'600 items issued 20'000 database requests. After a quick optimization that brought down the number of queries to less than 200 the request still took 15 seconds. I decided that it was time to use a profiler and was surprised to see that almost all time was spent in methods of the Hibernate Validator.
The items were nested and there might be something like 20 annotations in the tree but most of them were just NotNull. I would never have expected this to be so slow.
Nextcloud encryption is dangerous
Recently I decided to maintain an old Nextcloud installation of mine. I moved it to a new server and upgraded it from version 20 to 24 (step by step). I also enabled the groupfolders feature and moved some folders and files from a user to the new groupfolders.
At first everything seemed to work. After a while I got some complaints about files that could not be opened with the web interface. Upon further investigation I saw that the file was encrypted (this is quite easy to see as its content starts with “HBEGIN:oc_encryption_”). There were more and more reports about such files.
Nokia 3310 Import contacts from Nextcloud
I bought a Nokia 3310 3G. In the feature list it found that it supports importing contacts from a vcf file. However in practise it didn’t work. To save you some time researching, here the procedure: