Jan-Lukas Else

Jan-Lukas Else

Tech, life and everything else

Tags: GoBlog


European AI

Published on in 💬 Micro

To reduce my dependence on USA-based products, I switched from using the OpenAI API to Scaleway’s Generative API for my blog. Not only is it cheaper, but it’s based on open-source models, hosted in Europe. 🇪🇺

It was straightforward to just add an option to change the REST endpoint in my GoBlog plugins, and then use Scaleway’s API for creating the post summaries and the image descriptions. For the post summaries, I am now using llama-3.3-70b-instruct, for the image descriptions pixtral-12b-2409.

Let’s hope that there will also be a model that supports audio transcriptions until April 2026, so I don’t have to renew the credits on the OpenAI API for my Telegram Voice-To-Text bot. 🤞

View

AI-powered image descriptions on my blog

Published on in 💬 Micro

My blog still has a long way to go when it comes to accessibility, but I’m excited about two new plugins I’ve just added to make things better.

The first plugin uses AI to generate image descriptions for me – far better than I could write myself. It even works in multiple languages, adapting to the blog’s language settings. The second plugin improves how these descriptions can be accessed on mobile devices. Now, you can simply tap on an image to read its description (on desktop, the descriptions are still available as tooltips when you hover over the image).

Since image descriptions aren’t created automatically for older posts and I haven’t manually updated all of them yet, you can check out this post as an example of how it works.

View

Blocking AI bots ⛔

Published on in 💭 Thoughts

Every few months, I inevitably catch a cold or some other virus and end up stuck at home for a few days. Right now, I’m in one of those phases again. Thankfully, this time hasn’t been too bad, and I’m already on the mend. After a lot of Netflix marathons, I realized I couldn’t just sit around doing nothing – I’m the kind of person who needs to feel productive, even when I’m under the weather.

View

Published on in 💬 Micro

It’s not a winter wonderland out here, but with Christmas and winter coming soon, maybe a little snow on my blog isn’t a bad idea. I’ve just programmed a snow animation for another project and thought I could reuse the code in the form of a simple GoBlog plugin. ❄❄❄

View

My next Fediverse migration?

Published on in 💭 Thoughts

I currently use GoToSocial (with my numeronym domain) next to my blog, but it always confuses me where to post what. That’s why I want to move to my blog as my sole Fediverse identity. But before that, I wanted to implement another Fediverse feature in GoBlog: support for the new fediverse:creator meta tag.

View

My first passkeys implementation 🔑

Published on in 💭 Thoughts

Something I wanted to implement already for a long time, but always seemed too complicated for the occasional programming session here or there, was support for WebAuthn or Passkeys for GoBlog. I noted it down two years ago and also already started to work on the implementation, but never got around to finish it.

🖼️ View

GoBlog can show GPX tracks as SVG now

Published on in 💭 Thoughts

After my bike tour on Monday, I first felt the usual exhaustion, but later that evening and night, more symptoms joined and showed me, that I, again (third time already this year), caught some infection. Nothing too bad, but it forced me to relax and recover the last two days.

🗺️ View

Published on in 💬 Micro
Updated on

It took me so long to find the cause of a memory leak in GoBlog. I thought it was smart to use a cache for prepared database statements. But I didn’t read the documentation and didn’t know that prepared statements need to be closed when they are no longer needed to free up the allocated resources. 🤦‍♂️ I finally fixed it by removing the prepared statement cache altogether. Less code, fewer problems in the future, and the cache wasn’t much of an improvement anyway. I also learned about the usefulness of memory profiling.

View

Published on in 💬 Micro

It seems like I finally fixed a memory leak in GoBlog yesterday, that sometimes made my blog crashing. How? I used Anthropic’s new Claude 3.5 Sonnet to write me a new HTTP compression middleware that compresses HTTP responses using zstd or gzip when possible. I needed to instruct a few changes and modify some code lines as the initial implementation was wrong, but thereafter, it finally seems to work better than my original implementation that probably leaked some objects anywhere. Claude also helped me to write unit tests (which I adapted a bit, though) and increase code coverage.

View

Blogroll Network Map

Published on in 🔗 Links

Robert Alexander built a pretty cool Blogroll Network Map. Based on scraped blogrolls, it builds and visualizes a map of blogs. It contains almost 500 feeds, a lot to explore for boring days!

View

Jan-Lukas Else