We agreed to our kids’ request to buy mice (2-3 females). Turns out, it’s super hard to find them in our area (at least when you care to not buy snake food). I found a single nearby breeder but to get in touch I had to… create a Facebook account. And this makes me a little sad, a little angry and a little disappointed. Screw this, we should have agreed for a dog.
Hi! My name is Michał Góral, I am software developer (currently at Nokia) and this is my personal website. You can read more about me on a separate page if you’re curious.
Changelog
Isles of the Emberdark
, .Huh, it seems I missed that few months ago Brandon published his 5th secret project, “Isles of the Emberdark”. Instant buy, but now I’m torn, because I’m deep in the first volume of his “Alcatraz” series and at the same time I want to read “Isles” so badly… Maybe I’ll read a chapter from Isles and then a chapter from Alcatraz?
Brain Coding
, .I just stumbled upon a term of “brain coding”. (sidenote: In contrast to “vibe coding” which means writing an application with help of AI/LLM.) Oh, the irony, I love it! And I’m stealing it.
Jucho 2
, .I bought an album: 2 by Jucho. (sidenote: Justyna Chowaniak) Spoiled by near-instant deliveries of internet marketplaces, I had nervously waited for 2 weeks until it arrived. The wait was worth it. The music is great, lyrics are incredible, and release quality is superb. My whole family loves both Jucho and her previous project, Domowe Melodie.
But the best part is QR code attached to the album which allows download of MP3s. It’s… just a link. No password, no personalised download, no session, no tracking. Ordinary a link. Oh, but it includes a “secret” phrase! I love it!
Little things like this makes me feel more like a human being. I feel that there’s a person on the other end of the cable who trusts me to not share the link with whole internet. In return this person respects me and doesn’t make my life miserable with DRM or some other bullshit. No EULAs or privacy policies. I don’t have to accept anything or sell my kidney. This small link feels like the original spirit of Free Software translated to the world of music.
I love supporting people like this.
Jucho - 2
Latest
Important
- I Blocked Bots
- Two Phones
- When I Die
- Cursed [in progress]
- Fuck AI Scrapers
- Life is Creating
Creations
Monochrome Vim Color Scheme
Monochrome colorschemes are good and pleasant for eyes. That's why I created one for Vim.
Synchronization
I synchronize a lot of things, each of them differently. Let's take a look how to write a simple Bash script which automates and parallels that.
Master-stack layout for i3
DWM-like master-stack layout for i3 is possible by using i3's IPC mechanism.
Generacja wersji [PL]
Presentation of simple scripts and techniques allowing automatic generation of program's version.
Working on TWC Formatting
Formatting is one of these parts of TWC which I disliked the most. This has finally changed with release of TWC 0.9 and complete rewrite of formatting strings syntax.
Commenter [PL]
Presentation of my program for toggling file comments depending on a list of keywords in a language similar to preprocesor.
Singleton w i3 [PL]
With markorapp, a script which I wrote, it's easy to create "singletons" in i3. Singletons are applications which should have only one instance, like a particular terminal.
Deployment aplikacji internetowych [PL]
Writing and using webhooks to automate deployment of web applications.
Creations: Release Notes
SubConvert 0.8.2 [PL]
I released a new version of SubConvert, a program to convert between various video subtitle formats.
Software Design
Thoughts on using OSC codes to automate changing terminal color schemes
Operating System Controls as escape sequences which can be used to change the background of both terminal and programs running in it.
Computer Tools
LSP Configuration in Neovim 0.11
Description and example of vim.lsp.config() for configuring language servers in Neovim
Describe Merges!
-Changelog is important, but we can simplify our lives and generate it, at least partially.
Don't change alternate file in Vim
Every once in a while I learn something new about Vim. This time it's :keepalt command.
Desktop Systems
Using systemd for X sessions [in progress]
We can use user-level systemd services to run X sessions.
Xsession in Debian
Xsession is a default way of starting X sessions in Debian, but for some reason it remains a mystery for many people. Here I try to shed some light on it.
Configuring msmtp on Debian Buster
Configuring one of the best SMTP clients on Debian and some caveats which we must remember.
Workaround for Floating Windows With Borders
Workaround for a problem with how Sway draws borders around floating windows
Git Credential Helper [PL]
Git has capabilities of writing custom credential helpers, which can fill passwords for accessing HTTP repos for us.
Zmiana monitorów w i3 [PL]
I did it! I forced a buggy xrandr to toggle screens and not kill X session!
Sysadmin
Enabling Wireguard on a Router Behind CGNAT
-How to configure VPS and peers so they can talk to each other via Wireguard
Persistent Synology Configuration
-How to mutate immutable Synology configuration and persist these changes
Home Automation
Parametrized Entities in Home Assistant Scripts
-Using fields and templates in Home Assistant scripts
Configuring Persistent Zigbee Device Name
-How to configure udev rules on Synology to create persistent device names in /dev/serial/by-id
Replacing Haier Wi-Fi Modules
-How I replaced 2 types of wi-fi modules for Haier air conditioners with ESP8266
In Praise of Home Assistant
Home Assistant is one of my most beloved selfhosted applications. Here's why.
C++
Najważniejszy const [PL]
There is one const usage in C++ which is a little different than the others. Andrei Alexandrescu called it the most important const.
std::move [draft]
-A short introduction to one of the most breakthrough features of C++11: rvalue references and move semantics.
Zwracanie wartości z funkcji [PL]
The article about Return Value Optimization - one of the most important features of C++ compilers.
Structured Bindings [PL]
Structured Bindings is a new way to decompose values returned from functions. It's similar to some other programming languages and greatly simplifies the code.
Przypisać nieprzypisywalne [PL]
How can we live with types which do not implement assignment operator?
Problem dependant names [PL]
How C++ handles dependant names and why we must use typename keyword everywhere.
Name hiding [PL]
Name hiding is a surprising feature of C++. Here we'll learn a little more about it.
Konwersja const_iteratora na iterator [PL]
A trick which allows us to easily convert from const_iterator to iterator. Please don't do that.
Nieskończenie wiele argumentów... [PL]
It's possible to create a functions in C, similar to printf and scanf, which accept infinite number of arguments.
Python
Conversion Descriptor
Clever descriptor which automatically converts assigned values to the annotated type.
Zamykanie aplikacji PyQt [PL]
Graceful shutdown of PyQt applications might be harder than it looks like. This article presents the problem and a way to resolve it.
Bash
Process substitution [PL]
Process substitution in Bash is a powerful technique which allows us to redirect command's output to programs which only accept files.
Technology
Accessibility testing by non-disabled developers
Obstacles I encountered while testing accessibility of this blog's theme.
Computer Science
Efekt Droste pokazany przy użyciu gry w życie [PL]
A video presenging Droste Effect which is a recursive image.
Software Freedom
Philosophy
Politics
Your Pain Is Bigger Than Mine
Even though I almost entirely stopped listening to it, I can't stay silent about recent events in Polish Radio Trójka.
Books
Reviews
Writing
Cross References in Notes
Notes should be pretty too, because why not? Here I'll show you my method of rendering them to HTML.
I Want a To-Do App
It seems that we have a curse of abundance: so many to-do apps and methodologies that we can no longer choose one.
Personal
Migadu [in progress]
Trying something new for mail provider: a small company from Switzerland called Migadu.
Personal: Site
New Year's resolution
It's a little late to make a New Year's resolution, but I'll make one nevertheless.
Parenthood
Practical
Changing ink color in fountain pen
Simple Fix for a problem when you have one pen and too many inks.
Photography
Niesulice
Niesulice is a small village over Niesłysz lake.
Exotic Animals in Kaszuby
Photos from our visit to Exotic Zoo in Kaszuby during our 2019 trip.