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.
Neovim 0.11 disabled building translations
by default which means that they’re no longer available in published artifacts
as well. This caught me by a surprise when I tried to update my neovim-mg DEB
package which I build for myself. To me this is accessibility issue for
non-English speakers which I resolved by switching to manual building of Neovim:
make \
CMAKE_BUILD_TYPE=Release \
CMAKE_EXTRA_FLAGS='-DENABLE_TRANSLATIONS=ON'
Neovim team says that building translations was too time-consuming, but to be
honest, I didn’t notice a big slowdown. Maybe it’s different when you build it
many times a day on CI.
Today I’m reading way too many posts that people are blocking whole Alibaba
Cloud IP ranges (for reference: 47.80.0.0/13, 47.74.0.0/15, 47.76.0.0/14) and
I’m thinking: pfff, I already did it a year ago or something. I first wrote
about blocking bots in 2020 and situation got worse since then.
Scrapers don’t care about robots.txt, they fake user agents, attack from
different IPs and generally do anything they can to not be rate limited.
There’s a new nuclear weapon for us, the small web enthusiasts: Anubis
which requires browser to do a proof of work. Maybe I’ll test it on the weekend,
it looks promising.
It’s not funny though. My thoughts are with Drew, domi,
Mikko and many other people who, like me, host bigger or smaller sites
and struggle with AI scrapers bullshit. Fuck these scrapers.
Here’s iptables configuration for Alibaba:
-4 -A INPUT -s 47.74.0.0/15 -j DROP
-4 -A INPUT -s 47.76.0.0/14 -j DROP
-4 -A INPUT -s 47.80.0.0/13 -j DROP
Donald Trump decided to halt US aid to Ukraine. At the same time US imposes
25% tariffs on Canada and Mexico, raises tariffs on China, threatens EU with 25%
tariffs “on cars and all other things” and there are rumors that it plans to
lift its sanctions imposed on Russia. I wonder who US plans to trade with after
Canada retaliates with their own tariffs, because China had already done so
(wink, wink).
George Orwell said that “the quickest way of ending a war is to lose it.” I hate
this perspective but I can’t deny it. This won’t end well.
Jabra Evolve 65 SE are strange wired/wireless headphones. They come with USB
receiver and a possibility to use them wired over USB.(sidenote: TBH wired connection isn’t documented anywhere on the “manual” printed on
the recycled-like box)
While wireless mode is flawless, wired
mode is… oh boy!
First I had to wait ~10 seconds before even hearing anything (although dmesg
detects headphones immediately). Finally there’s sound: the worst, the most
flat sound waves ever heard or produced, even worse than my laptop’s shitty
speakers… for next 10 seconds. Then JamesDSP (equalizer/effects software)
kicks in when it “discovers” Jabras and this changes everything. Sound goes
from ashtray-level trash to something enjoyable. Funny thing that there’s no
such delay for JamesDSP in wireless mode.
When you’re losing your faith with Jabras, you just have to give it a little
time to warm up. I am of people who remember good ole’ dial-up. I have lots of
patience.
Discovering this was fun and I haven’t even touched bluetooth yet.
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.