RSSAmplifier

Blog

Waldeinsamkeit

A blog with thoughts about technology, privacy, retrocomputing.

city17.xyzRSS feed ↗63 posts

Latest posts

Blaugust

I've read on a small part of the Fedi that August is "Blaugust Festival" as in "blogging August", a month inviting people to blog more. Since this in German sound more like "blue August", I've changed two small things in the CSS to make it more blue and I'll revert this at the end of the month. I'm curious if someone will pick this up :-)…

Concerns about the current state of LLM tools

In this article I'll try to pin down what irks me about LLMs (Large Language Models, sometimes called "AI") tools, a topic that seems unavoidable if you are in IT. I want to take a screenshot of what's in my head at the time of writing (February 2026) in order to compare what will happen in the next 12 months. In the past 12 months there was a tangible evolution in the output of these…

Shrinking my Matrix (Synapse) database

During my routine backup procedures I wanted to investigate why the Synapse database dump was so big (about 740 MiB), for a Matrix server instance basically used just by me and a few acquaintances. Little I knew that I would dive into a rabbit hole. Assisted by a useful blog post , I started looking around on the Synapse admin documentation and found these links containing all I had to learn…

Happy Trixie Day

2025-08-17 UPDATE : added a comment about an upgrade issue I've encountered. Hello everyone, Debian 13 (trixie) has been released. I just wanted to join the party from my little silent corner of the web and cheer the news. Debian Linux is simply one of the most reliable piece of software I've ever used and this is a quality I've learned to appreciate with time. Since I moved my…

Open mailto links with emacsclient

In a previous article I mentioned the ability to handle mailto: URI (described in RFC 6068 ) from Emacs. In this article I'll detail how I configured and connected the bits to make it work. Today these links are much less in use (due to spam concerns 1 ), however when one such link is found it's useful to correctly handle it, sometimes they're pretty complex (for example reply-to…

Quirks about Emacs as a systemd service

I've recently investigated again how to run Emacs as a systemd service. The goal is to start using the emacsclient more consistently, it's a faster way to work with Emacs. The short version of it is: if you want to run emacs as a server without headaches, the easiest option is: emacs --fg-daemon then connect to the server with emacsclient -t . You're done. Running Emacs as a systemd…

Back to the origins: vanilla Emacs

After an intense but complicated love story with Doom Emacs started in 2021 I'm back to vanilla Emacs. Here are some thoughts after 4 years of Doom Emacs use. Note: this article was written at the end of August 2024. After having used vanilla Emacs again for 4 months, I am publishing the final revision. Reading again why I had switched to Doom Emacs at the time (it's great keeping a…

De-googling my life: 6 years in

In this article I'll review my ongoing experiment using alternative software applications and services out of the well-known offer of Google, Microsoft and other big corporations. I'm writing while on a long train ride so I have all the time to indulge in a verbose prose. Approximately 6 years ago, in what it seems almost another life, I decided to embark on a quest to free myself of…

An experiment: A Raspberry Pi 4 for daily computing

Recently I've started a small experiment: I want to try answering the question whether a modest Raspberry Pi 4 with 4gb RAM could be my daily computing device. This is a highly subjective topic, so the answer varies a lot depending on anyone's needs, don't take these opinions as a reference. So, for a start I've formatted an SD Card using the latest Raspberry Pi OS 64bit (July…

Owning your own online content

In this article I'm going to draft some points on the topic of "owning your own online content". Before getting to the point I'll mention three incidents that recently passed through my radar. § A few incidents A while ago I was commenting with a friend of mine this post found on the Mastodon instance https://aus.social ( link ) in which the author complains that Duolingo…

A life spent updating

While I was doing the routine weekend maintenance of my electronic devices, I paused and thought for a second about what I was doing. How often do I update my stuff? How much stuff do I update regularly? A laptop: Debian/testing system updates Firefox updates Firefox extensions updates Rust compiler updates A desktop: Debian/testing system updates Rust compiler updates A smartphone: OS…

A Commodore Amiga in 2024

In this article I'll share some thoughts about using a computing platform which commercially died about 30 years ago, that still survives today in a niche market, thrives thanks to its dedicated fanbase and what we can learn from all this. The computing platform object of this article is the Commodore Amiga , which for a lot of people will likely trigger nostalgic memories. A fact commonly…

I did a bit of fullstack development

Last weekend I did a bit of "fullstack" development (i.e. a bit of frontend, backend and deployment) using supposedly modern tools in JavaScript (namely NextJS , Prisma for the DB backend and Docker for the deployment). These tools for this project were somewhat thrown at me without a lot of discussion, so I just shrugged and said OK. It was a longtime I hadn't touched that stack and now I…

How do I use a search engine?

I was reading about Kagi , a search engine you pay a monthly subscription to use for. Our world is so fucked up, that explicitly paying with money for a service is the only hope to avoid having your data slurped for profit. So I asked myself: how do I actually use a search engine? § Gathering the data Open Firefox, press CTRL+H (to open the history), copy the past month data (e.g. November…

About

Hi, I am a software developer and this website is a bit of a braindump for topics I care. Writing about them helps me clarify my thoughts and avoids forgetting about them. This website is generated using Zola and a slightly custom version of the After Dark theme. Hosted on Sourcehut Pages . Feel free to contact me at jman at city17 dot xyz (Deutsch / English) GPG public key

Strange Loop conference talks I watched

With the end of the Strange Loop series of conferences, I decided to watch some talks from a number of years and write down here some notes. The conference looks interesting and not as mainstream as others. As a starting point, I'll follow some random suggestions found on the internet: a blog post of a friend of mine (a bit unrefined but it has some tips) and this other best of list and…

Poorman visitor counter

This website is hosted on Sourcehut Pages , a minimalistic static web hosting offered by Sourcehut . Among the limitations ( listed here ), there is a also a draconic Content Security Policy that blocks all resources not hosted on the server where this website is. All content from CDN or embedded third-party content is blocked. This has the interesting consequence that one cannot host a visitor…

Behind a simple Linux shell script

Today I wrote a simple shell script to scratch an itch: trimming away advertisements from podcasts files I download. After spending half an hour fixing up a version I liked, I decided to spend another half an hour writing about it, because even such a simple task has a lot more context than it seems. Here is the script: #!/usr/bin/env sh # Trims a number of seconds from the start of…

The end of the free-with-ads-down-your-throat business model

In the last weeks I have been reading news about content media owned by corporations; services that we usually give for granted. I am starting to think that the media world panorama is changing. Let me first list some articles that might be familiar to a tech audience: YouTube seems it's starting blocking browsers equipped with ad-blockers (JPG, 62kb) X/Twitter changed their privacy…

Happy 30th birthday, Debian

I'm not a Linux distro fanboy nor a distro-hopper , I just use what is reliable. Today I'll pause for a few minutes because 30 years ago, the Debian GNU/Linux distribution was first released (see the announcement , kindly posted by Lars Wirzenius ). I want to set in stone the moment I switched to Debian before it's forgotten. It was circa 2019 and I was using Ubuntu/eoan,…

Talks worth rewatching

While rummaging and tidying up my backups I've found some archived talks that I watched (and then archived) after suggestions from friends, so now I am going share them again hoping they can be interesting also for someone else. They are all related to programming and F/LOSS (Free/Libre Open source Software). The context of the specific conference they are delivered is not very…

Selectively install Debian experimental packages

I'm using Debian testing with the Sway window manager without the Xwayland translation layer : this means that I am forcing myself to use only pure Wayland application (it's a way to test how the ecosystem is evolving). Gimp 2.10.x does not support this configuration so I need to install the unstable version Gimp 2.99. Since the Debian experimental release channel has Gimp 2.99,…

Alle Tage

Last week I've found this poem, the author is Ingeborg Bachmann (1926 – 1973), Austrian poet and author. Alle Tage Der Krieg wird nicht mehr erklärt, sondern fortgesetzt. Das Unerhörte ist alltäglich geworden. Der Held bleibt den Kämpfen fern. Der Schwache ist in die Feuerzonen gerückt. Die Uniform des Tages ist die Geduld, die Auszeichnung der armselige Stern der Hoffnung über dem Herzen. Er…

A modern mouse for the Commodore Amiga

06-04-2024 UPDATE : Looks like the disconnection issue mentioned at the end of the article could be caused by interferences from other BT/Wireless devices (see this comment on the kickstarter page - requires login) or in general by batteries near to be empty. The mouse seems to eat up batteries quite fast, especially when using the trackpad scrolling. Project owner now replies quite…

WKD added for my email

Inspired by this toot on Mastodon , I have added the Web Key Directory files for my email address: this will make easier for smarter email clients to retrieve my PGP public key without having me sending it around or having the email sender retrieve it manually. The Web Key Directory (WKD) is stupidly simple to configure. There are two ways to do that, a "Direct" way and an "Advanced" way, both…

Debian: Configuring exim4 for local mail delivery

In a previous article I did an overview of how I learned a few tools to tune my emails storage (mostly how to classify them based on their provenance). Today we will do a quick dive into how to tweak a bit the configuration for exim4 for local mail delivery. exim4 is one of those old UNIX services that exists since the dawn of time: it's a mail server service and an MTA (basically it can…

Filtering incoming emails

In this article I'll explain my learnings about implementing a filtering system for incoming emails. The level of yak shaving I had to go through to reach the final goal has no precedent in the entire human history. I don't use a webmail or the IMAP protocol, I stick to the classic POP3s (which means download emails from the server and keep a local copy). It all started with an innocent…

Rust: DB connection threadpool

This is the 4th article in the series of learning more about Postgres and applying it to a Rust backend. Here is a index of them all . In this episode we are going to explore how to build and use a connection threadpool. Using a DB connection threadpool is one of the first thing that is likely to be planned in any application that will sustain a constant stream of users and therefore many DB…

Bye bye Guix, see you in 12 months

In this post I'll detail my attempt to install and play a little bit with Guix, how I failed to become friend with it and why. A bit of context first (as usual, courtesy of Wikipedia ): GNU Guix System (previously GuixSD) is a rolling release, free and open source Linux distribution built around the GNU Guix package manager. It enables a declarative operating system configuration and allows…

Use Postgres with Rust

This is the 3rd article in the series of learning more about Postgres and applying it to a Rust backend. Here is a index of them all . Starting from this article (in the series of Postgres) we now abstract from the database, move one level up and start looking at how to interact with Postgres using Rust. Previous entries of the series focused on the Postgres JSON fields and custom data types . In…

Handling Postgres custom data types

Hi, welcome to the second article of the series about using Postgres. The first article, where we explored a bit the JSON fields, is available at this link . Go read it to have an introduction to the series. Here is a index of them all . In this article we will see a quick summary on how to use Postgres custom data types. The basic idea is that with Postgres we are not confined to the standard…

Using Postgres JSONB data types

With this article I'd like to start a series of technical posts about things I've learned in (more or less) the last year while working on a project. It's a kind of braindump of technical documentation, for things that I need to know and tend to forget. Here is a index of them all . I often find myself referencing my own code to pick up again how to do something. I'm quite sure…

Thoughts on "Bullshit jobs" by David Graeben

"Bullshit jobs" is a book from David Graeben: I'll drop here some quick notes about it before I forget them for good. I won't introduce the author because I want this article out quickly; if you're interested please do your own research. First of all, I echo the words of a friend of mine: the author writes in a pleasant way. Easy to follow, just like listening to a friend. The…

Flashing LineageOS on LG/Google Nexus 5 (hammerhead)

Unfortunately the smartphone I was using since 2018 died. Long story short, tried to replace the battery but it does not charge anymore. I'm not sure if this can be fixed but now I have a more urgent problem to solve. I need another smartphone quickly. Buy a new one? Maybe, but first let's try to put an old friend back on its feet. I'll document the process for my reference. §…

Windows placement in Wayland workspaces

I am a Sway user since quite some time. I'd say a happy user but from time to time I encounter some rough edges that most of the time can be solved with some scripting or with a better understanding of the documentation (RTFM!). I will illustrate the latter case as I tried to answer the question "How can I open a Firefox window and place it into a specific workspace?". Since quite some time I…

The conference I'd like to attend to

I'd like to pin down some thoughts I had during a conversation with a friend about technical conferences in 2023. Thinking to the past +2 years, I realize that my conference content consumption has gone to almost zero. Before the pandemic I enthusiastically participated to conferences, enjoying meeting people and picking their brains about a lot of subjects. Gossiping and sharing a dinner was…

GitHub to Sourcehut migration tool

Hello! I'd like to introduce a new tool. The goal of this tool is to export from GitHub issues, comments and labels and migrate them to Sourcehut issues tracker, todo.sr.ht . Binary releases are at this link: Release v0.1.0 ( sources ) At its core, this tool is simply a GraphQL client that pulls stuff from GitHub and pushes them to Sourcehut, just using HTTP calls and interfacing to both…

Cargo usage tips

Cargo is the package manager to install libraries in a Rust project, it's the equivalent of pip for Python, npm for NodeJS and so on. Using cargo is easy but its ergonomics can be improved a little bit. This is a short note for the purpose of creating a reference for my future self. One of the useful properties of library dependency management in Rust is that you can choose which optional…

Measuring seniority

Sometimes I think about what "senior" means when I read this word in job titles. There are some obvious implied connotations and others not so obvious. Sometimes companies mean the former and overlook the latter. Let's have a look at the not so obvious ones because they are more interesting. When I read job postings the general meaning I infer for a senior role is the expectation that this…

Rust code documentation like you never imagined

Documenting source code is the friend and at the same time foe of many developers. We, as developers, constantly ignore this practice (especially in closed-source projects when the team is small and the onboarding of a new member is an afterthought). So let's see two ways - perhaps not very well known - to add documentation in our Rust code. They might not be suitable for everyone but there…

On being a maintainer

I've watched a couple talks from the Emacs Conference 2021 , one in particular struck me as a very powerful witnessing from the open-source world. The speaker is Bastien Guerry , maintainer of Org mode (an Emacs mode for keeping notes, authoring documents, computational notebooks, literate programming and so on) and this is the link to his talk: how to help Emacs maintainers? . The thing that…

A rewatch of Star Trek TNG

I took on the herculean effort (for my relatively low span of attention) to rewatch ALL 7 seasons of "Star Trek - The Next Generation". I am not a fan of the series but it helped coping with many weeks of medium-to-intense work followed by mental exhaustion on the sofa. A quick context copypasted from Wikipedia : "Star Trek: The Next Generation (TNG) is an American science fiction television…

Dear Github, can you please stop it?

Dear Github, can you please stop changing the CSS every fucking second? Can you please find something else to do for your UI designers if they're really so bored? Also, while we're here, please fix your APIs (issues and pull requests search, in case you're wondering) and stop adding broken features like this: (The copy widget stays over the log line) Thanks.

Doom Emacs: steroids and demons

It happened. I'm not using Emacs anymore. Or am I? § Motivation: when enough is enough I've been an Emacs user since only about 5 years, which on the Emacs timeline makes me barely a newcomer . I've always loved the all-around experience of using Emacs and at some point I had realized to be a prisoner of it . And while I stubbornly refuse to learn elisp, I have this hate/love…

More keyboard shortcuts to improve your Firefox experience

Since we are forced to spend most of our time using a web browser, it becomes natural to try improving the ergonomics of this tool in any way possible, to the point that even a single small improvement has a devastatingly positive effect in the long run for this Holy Grail we all long for: productivity. What if we could improve most of the browser "hot paths" usage patterns? The multiplier in…

Design fail: Exhibit No. #754

The following screenshot is the current version of the "Notifications and Offers" page of the Google Play App for Android, localized in German. Can anyone explain me what kind of American-centric designer thought that that hand is an understandable way to convey the meaning for "ok, everything is done"? Example of dumb design. Please don't do this. Sometimes I read about "inclusive design";…

Static compiling in Rust with musl: an overview

I've recently gave a small talk at a local meetup about static compiling in Rust. I'd like to drop here some thoughts, the topic is really interesting. The slides are available here (org-mode file exportable to HTML via revealJS). It all began when I began deploying a Rust application server on remote servers. One of the problems of compiled languages (such as Rust) is that the binary…

Building Emacs native-comp with Docker

Emacs has recently merged into the master branch a long-awaited feature: native compiling of Lisp modules using libgccjit (just-in-time compilation with GCC). I was curious to try it without waiting the official Emacs 28.x branch release so I copied a Docker file "template" found at this link and adapted to my needs. Changes I applied to that template: Since I use Debian, I changed the base image…

Rust 2021: tone down the fanboyism

Since a couple of years the Rust programming language core team has a tradition of publishing a survey and gather feedbacks about various aspects of the language and the community around it. This call is generally called "Rust 20xx" and has a yearly cadence (generally happening in the last quarter). I don't know and can't measure how these feedbacks are taken into account but I always…

Social coding platforms are poisoning the developer's experience

Or: How removing peoples' avatars surprisingly improved my productivity and reduced my mental strain. 2021-04-20 UPDATE : I didn't even finish writing this article that Github announced another anti-feature: an achievements panel . Great to see that now Github will become a role-playing board. I've been experimenting for the last few months how removing a specific feature of some…