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.
This website is 100% AI-free (no content was generated by any kind of AI/LLM/you
name it).
I’m writing todomd: terminal task
manager for quick capturing of tasks into markdown files. One of main features
is preservation of file formatting: it (hopefully) should keep whitespaces,
blank lines, line endings, indentations, even when moving tasks between
sections. My handmade markdown parser became so ridiculous that I seriously
considered renaming the project to ELMM: Empty Line Management Machine. After 3
days of constant testing/fixing/refactoring of main parser, I want to just lie
and cry.
But I just did a test run of todomd archive on my 6 year old, >1.5k lines of
horrible, scribble-quality quicknotes.md file and in 80 ms todomd made a
beautiful new archive section and didn’t break a single line. I almost cried,
but this time these were the tears of joy.
I’m sick of effortless AI-generated crap. Like t-shirt designs that all look
exactly the same and repeat the same mistakes. Guitar that have 5-7 strings
depending where on the fretboard you look? Check. Hands without thumbs? Check.
Hilarious mistakes in text? Check.
Another one: plastic-looking images that replaced stock photos. I thought that
stock photos were bad, but at least they were photos! Now they’re “plastic box
which looks like PlayStation 5 + plastic controller which resembles Xbox pad”,
or a “classroom with periodic table with elements that don’t exist”.
And don’t let me start about “AI-assisted” emotionless, one-size-fits-all prose.
With forced suspense. By breaking sentences. In strangest. Places. (read with
deep male voice in your head of course)
I noticed that in git log I’m always interested in commit date, not author
date. The difference is that author date shows when author finished their work
and commit date shows when it actually landed (was merged by someone else, like
CI bot). Commit dates are arguably more useful because they preserve the
chronology of git log. As there’s no built-in log formatting which would give me
a combination of author (not committer) + commit date, I had to become a little
bit creative:
# This goes e.g. to ~/.gitconfig[pretty]# format:/tformat: controls spaces between commitscommitdetails="format:\%C(yellow)commit %H%C(auto)%d%Creset%n\Author: %an <%ae>%n\CommitDate: %cd%n%n\%w(0,4,4)%B"[format]pretty=commitdetails
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.