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.
You can contact me by e-mail: dev@goral.net.pl. My PGP key
fingerprint is: 0423 DE59 98D1 2C33 E599 CDCF E3DD DA4D C45F 58CB.
With direction Android is heading, I see more and more software developers
considering buying two phones. They’re going to keep one in Faraday’s cage and
use it infrequently for banking or age verification,(sidenote: In
European Union)
while the other one will be the actual personal
computing device — a “Linux phone”. This is cool idea and I hate it, because it
throws away needs of everyone else. “I’ll get my privacy no matter what and
fuck everyone else, especially the poor, kids, elders and non tech-savvy, so
circa 95% of smartphone users”. It also doubles the environmental cost of
producing 2 phones instead of one.
We mustn’t agree to limit rights of people to develop and install software on
the phones which they rightfully own. We mustn’t agree to lock down apps only
because we installed OS not affiliated with Google and its partners. It’s
developers’ duty to protect the rights of users, as they are inherently less
privileged ones, even without taking their social standing into account.
Strength before weakness.
It’s a shame that during technical interviews we spend exactly no time
discussing ethics of software development.
Unsurprisingly, upgrade to Debian Trixy (on server) and Debian Forky (on laptop)
went without issues. The biggest “problem” was switch from my custom-built
podman package on server to the version inculded with the distro: I forgot to
reinstall some dependencies so containers initially didn’t start and there were
problems with hostname resolution from within containers (apt install
aardvark-dns).
Today, after at least 4 years of using
yaxo, when fixing MIME types for
directories, it occurred to me that having application/octet-stream for all
files (and directories) without extensions might be actually a bug of yaxo
rather than deficiency of QMimeDatabase, a Qt’s interface for MIME types.
Turns out, I understood what a local file is differently than Qt maintainers.
QMimeDatabase::mimeTypeForUrl turns on deep file inspection only for local
files, i.e. files which have a “file” scheme as per QUrl documentation.
QUrl("foo.txt") doesn’t have a “file” scheme, but QUrl("file:foo.txt") does.
The meaning of relative/absolute URLs for QUrl with absolute file paths is as
well different than my common sense, but this is another story.
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.
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.
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.
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.