Streaming Online Radio with Shortwave on GNOME

As an expat living in Germany, online radio has become a good daily companion. I enjoy listening to news from my home country (and connect to my mother tongue), practice German language or just discovering music and stories from a random place around the globe. I found a GNOME app that is a genuine gem: Shortwave, which can be installed via Flathub. Shortwave is an online radio app for GNOME that has a great and clean design, cool features and a built-in search that makes finding radio stations around the world effortless. Just search, tune and listen, super easy. ...

26 August 2026 · 1 min

Chafa

After reading What software do you use daily in 2026? on Lobster, I learned about Chafa. Described as: The premier UX of the 21st century just got a little better: With chafa, you can now view very, very reasonable approximations of pictures and animations in the comfort of your favorite terminal emulator. The power of ANSI X3.64 compels you! As a heavy shell user, I decided to install and had a lot of fun opening my images in the terminal :-) ...

18 August 2026 · 1 min

Bubbles

I recently came across Bubbles, a really nice IndieWeb aggregator. It’s great to see the IndieWeb ecosystem getting better and better, and I love the idea of having something like Lobsters or Hacker News for the IndieWeb community.

30 June 2026 · 1 min

Newsflash and Miniflux

After writing about my self-hosted RSS workflow, I’ve found the perfect desktop companion for Miniflux. It’s Newsflash — a polished, native GNOME newsreader that connects directly to your Miniflux instance via API. It’s been my daily driver ever since. What’s next: evaluation Android apps to connect to Miniflux, I’ll post the research in a future post :-)

27 April 2026 · 1 min

Gradia: The Ultimate Screenshot Tool for GNOME

I’ve been hunting for a screenshot tool that’s actually good for GNOME, and I’m pretty sure I found my new go-to: Gradia. I’ve been using it for a while now, and it’s fantastic. You can add notes, highlight sections, add arrows, very helpful when you’re working on documentation or teaching a tech class.

17 January 2026 · 1 min

Postgres null character in psql

In psql, null values are displayed as blank strings by default, which can be confusing to read. However, you can customize this behavior by setting a specific character to represent null values, making your output more readable and easier to interpret: \pset null '-x-' All null values will become -x-, which is much more convenient. anderson=# select * from test1; name | surname ------+--------- A | -x- (1 row) Bonus It’s possible to choose an emoji as a replacement: ...

9 October 2025 · 1 min

LSD - ls replacement

I have a new ls replacement! I was using eza (see Eza on Fedora 42 ) for a while, but I’ve found something even better: lsd. This tool is a nice because it displays icons for file types, making it so much easier to navigate files directories. The default settings are great, but the date format mm/dd/yyyy is a bit odd. Changing this is the only modification needed to make the tool perfect. ...

29 June 2025 · 1 min

Eza on Fedora 42

In my previous post, I wrote about using Eza on Fedora 41, which works well and it can be installed via dnf. This week, I upgraded my main computer to Fedora 42 and noticed that the Eza package is no longer available and couldn’t be installed using dnf. I looked into the rust-eza and discovered that the maintainer has orphaned it due to time constrains. To keep using Eza, I downloaded the latest release from the project’s Github page, and installed the binary directly to the /usr/local/bin ...

18 April 2025 · 1 min

Replacing ls with eza

Eza is a modern replacement for ls, it’s written in Rust, small, fast and just a single binary. How to replace in Fedora with Fish Shell sudo dnf install eza alias --save ls eza Done!

15 March 2025 · 1 min

Merging two tables in PostgreSQL

I often have to merge data from different tables in PostgreSQL, this is a code snippet I use: MERGE INTO users u USING new_users n ON u.user_uuid = n.user_uuid WHEN NOT MATCHED THEN INSERT VALUES (n.user_uuid, n.first_name, n.last_name) WHEN MATCHED THEN UPDATE SET first_name = n.first_name, last_name = n.last_name RETURNING u.*;

12 February 2025 · 1 min