<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="https://cgit.chrisoft.org/notekins.git" version="1.1">Notekins</generator><updated>2026-10-13T03:24:03+00:00</updated><link href="https://chrisoft.org/notekins/atom.xml" rel="self" type="application/atom+xml" title="Atom"/><link href="https://chrisoft.org/notekins/" rel="alternate" type="text/html"/><id>https://chrisoft.org/notekins/atom.xml</id><title>Chris' Notekins</title><subtitle></subtitle><icon>https://chrisoft.org/cx.png</icon><logo>https://chrisoft.org/cx.png</logo><entry><title>Not that long ago (well, it's be ...</title><link href="https://chrisoft.org/notekins/?post=1791861843" title="Not that long ago (well, it's be ..."/><published>2026-10-13T03:24:03+00:00</published><updated>2026-10-13T03:24:03+00:00</updated><id>https://chrisoft.org/notekins/?post=1791861843</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1791861843"><![CDATA[<p>Not that long ago (well, it's been a few years actually) there was this conversation on &quot;AI license laundering&quot;, i.e. rewriting code governed by a copyleft license with AI assistance to avoid being bound by its terms.</p>
<p>Now they are straight up vibecoding clones of proprietary software that costs thousands of dollars a year to use... I'm guessing those bigtech assholes will suddenly care about AI-assisted &quot;intellectual property theft&quot; soon.</p>
<p>Oh how the turns have tabled!</p>
]]></content></entry><entry><title>Can't we just stop giving attent ...</title><link href="https://chrisoft.org/notekins/?post=1791618788" title="Can't we just stop giving attent ..."/><published>2026-10-10T07:53:08+00:00</published><updated>2026-10-10T07:53:08+00:00</updated><id>https://chrisoft.org/notekins/?post=1791618788</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1791618788"><![CDATA[<p>Can't we just stop giving attention to worthless opinions from worthless people? The world would be a much better place if we could consistently do so.</p>
<p>Yes, this post is about Linux distros.</p>
]]></content></entry><entry><title>There are a few tracks in Koumak ...</title><link href="https://chrisoft.org/notekins/?post=1789694557" title="There are a few tracks in Koumak ..."/><published>2026-09-18T01:22:37+00:00</published><updated>2026-09-18T01:22:37+00:00</updated><id>https://chrisoft.org/notekins/?post=1789694557</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1789694557"><![CDATA[<p>There are a few tracks in Koumakyou that even Komplete can't salvage ...</p>
]]></content></entry><entry><title>Hey Google, thank you for keepin ...</title><link href="https://chrisoft.org/notekins/?post=1789238262" title="Hey Google, thank you for keepin ..."/><published>2026-09-12T18:37:42+00:00</published><updated>2026-09-12T18:37:42+00:00</updated><id>https://chrisoft.org/notekins/?post=1789238262</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1789238262"><![CDATA[<p>Hey Google, thank you for keeping me up until 6 am trying to compile your stupid web browser.</p>
<p>Warning: this is a rant. Vulgar language will be used.</p>
<details>
<summary>Read it anyway.</summary>

<p>It is not a secret that Google hates Linux distro packagers when it comes to Chromium. Copious
amount of ink has been spilled over this topic, from back when the Google API debacle happened
a few years ago <a href="https://blog.popey.com/2021/02/chromium-on-linux/">like this one</a>, to whatever
this mess we have been experiencing ever since summed up nicely in
<a href="https://liberda.nl/weblog/heres-your-copium/">this post</a>. The patchset is brilliantly named,
by the way.</p>
<p>Like many other distros, Gentoo's chromium ebuilds have experienced loads of challenges in the
past few years. What made this worse is that Gentoo's chromium packaging matters are essentially
an one-man show this entire time. It has changed hands, but this largely remained true. Whenever
the sole maintainer goes on a vacation, falls sick, or otherwise does not have enough spare time
for Gentoo matters, the ebuilds would become stale, since very few other people has the arcane
knowledge of taming this wild beast.</p>
<p>I started maintaining my fork of the official chromium ebuilds towards the end of 2018, for this
exact reason. The official ebuilds were out of date by multiple weeks, and those versions were
hideously buggy. So I decided to take on the problem myself. How hard can it be besides bumping
a bunch of version numbers?</p>
<p>It turned out, the answer to that was &quot;a lot&quot;. Armed with virtually no knowledge of the Chromium
code base or ebuild development whatsoever, it took me over a day of non-stop fiddling and
multiple tries to get things working (mind you that back then everything was done on a terrible
ULV dual-core i7, so even when I was asleep, my laptop was shitting its bed). A tiny bonus I got
out of the deal was that since I was already applying user patches to Chromium at the time (most
notably the vaapi patch from Debian), I was able to incorporate them into the ebuild. Sure I may
have an entire ebuild to maintain now, but at the very least I don't have to use user patches
any more!</p>
<p>I got so excited when this worked out that I
<a href="https://chrisoft.org/nks-twm/?post=1545219650">tweeted about it</a>. Sure I was doing nearly
everything wrong: I started by dumping everything into <code>/usr/local/portage</code> without even setting
up a git repository, and running <code>emerge</code> until it succeeded. I moved everything into git roughly
a year later, but didn't learn the proper ebuild development workflow UNTIL LAST YEAR. Yes I
didn't know <code>ebuild</code> is a command until 7 years into maintaining my own ebuild files, and that is
the reason why the git history is littered with stupid one-line changes.</p>
<p>Now that's enough background information. What's the deal this time?</p>
<p>I will admit something I did wrong up front. I probably shouldn't have tried doing two things at
the same time. I shouldn't have tried building crubit and moving to the &quot;lite&quot; source code
tarballs at once. You will understand what this means as I explain on.</p>
<p>Google has been pushing <a href="https://github.com/google/crubit">crubit</a> within the chromium code base.
It seems like the crubit binary shipped with the official tarball requires the bundled rust
toolchain to function, so it simply wouldn't work with my existing packaging script. Unlike the
official ebuilds, mine never gained the ability to use the bundled toolchain as my ebuilds hard
diverged from the official ones in 2024, soon after a new maintainer took over. So I had to
somehow work around this. Fortunately for me, up until M153, this was relatively easy. Just set
a few gn variables and I'd be all set.</p>
<p>But somewhere in M154 things changed. If I rip out crubit, gn dependencies for something called
&quot;cbor&quot; would break. If I rip out that one too (or rather disabling its rust components) something
buried deeply inside the browser UI code would break. I was running out of time and I figured I
might as well try to somehow make crubit work. In that process, I discovered a few prerequisites
to make crubit work. But I truly ran out of time at that point and decided I'm just going to give
in and use the bundled rust toolchain for this version. So I hastily patched that into my ebuild
and I was done with it for that week.</p>
<p>Another week rolls around and the dev branch is now at M155. I decided to try the crubit thing
again without using the bundled toolchain. And here is where luck started going against me: when
I tried to download the latest official tarball for the dev branch (155.0.8048.0), it 404'ed.
I took a peek at Google's publish tarball CI job, and it was stuck in attempting to publish for
a few ancient versions from 2022, as well as bizarre, non-existent versions like
137.0.7141.1450312. Reminded that the official ebuilds have switched to a much smaller &quot;lite&quot;
version of the tarball generated by a script that I can also run myself, I decided to give that
a go. &quot;How bad can it be,&quot; I thought to myself, &quot;it's not like I'm going to use the bundled
toolchains anyway.&quot;</p>
<p>By this time you have probably realized that whenever the main character says &quot;how bad can it be&quot;,
it usually goes really badly for them. I ran into some insanity within the <code>third_party</code>
directory, most of which I've never seen when I was using the full official tarball. The lite
tarballs must have some other critical differences from the full ones that I do not know of. At
this point it was 2 in the morning, so I decided to retreat to the version that has an official
tarball (155.0.8040.2) and proceed with the crubit stuff.</p>
<p>To make crubit work, I found the following requirements all have to be met:</p>
<ul>
<li><code>//build/rust/std/rules/BUILD.gn</code> must be regenerated for the precise rust toolchain version
used to build chromium. This process uses crubit and something called &quot;gnrt&quot;, whose source code
is included in the chromium tarball at <code>//tools/crates/gnrt</code> and must be built beforehand.</li>
<li>Crubit itself, being a rustc plugin, must be built against the precise rust toolchain version
used to build chromium too.</li>
<li>Crubit also only supports very recent rustc versions (nightlies and two recent stable
releases).</li>
<li>The exact revision of crubit listed in the file <code>//tools/rust/update_rust.py</code> must be used.
Otherwise expect trouble.</li>
<li>When using crubit to generate gn files for the rust standard library with the command provided
in the official documentation, it loads the rust standard library source code from
<code>third_party/rust-src</code>. However in the building process, the rust standard library source code
inside <code>third_party/rust-toolchain/lib/rustlib/src/rust</code> will be used instead. Their content must
match.</li>
<li>And none of this will work at all if I tell the Chromium build system &quot;OK here is my system
rust toolchain. Please use this instead of the bundled one.&quot; The support simply isn't there.
Instead what I had to do is to replace all the rust stuff shipped in the <code>third_party</code> directory
with files from the system toolchain to trick the build system into thinking I'm still using the
bundled ones. The entirety of everything above basically boils down to performing the full
&quot;roll rust&quot; routine, but to a version matching the system toolchain.</li>
<li>To make things less tedious, use a rust toolchain that supports unstable features
(<code>-Z</code> and such). I use the latest stable release but built with <code>rust.channel=nightly</code> for this
and that has been working fine for me. If you decide to try the <code>rustc_nightly_capability</code> gn
variable instead, all I can say is good luck.</li>
</ul>
<p>And don't forget ebuilds don't have access to the network, so all dependencies of <code>crubit</code> and
<code>gnrt</code> must be declared earlier and fetched like other Gentoo rust packages. But all this must
have been completed before the <code>src_configure</code> phase so half the facilities provided by
<code>cargo.eclass</code> wouldn't work and everything just got even more complicated for no good reason.</p>
<p>After all this nonsense, the build did end up succeeding. But I lost an entire night of sleep over
it, which is absolutely not worth it. Each failure that's glossed over in this post took ages to
manifest, sometimes over an hour. Relevant documentation was long-winded, likely written with the
assistance of an LLM and is probably not intended to be read by a human but rather an &quot;AI agent&quot;.
This shit almost broke me. I can now see how maintaining a distro package for chromium is easily
a full-time job that nobody wants to pay for. I might as well follow the steps of countless
former maintainers of this abomination and just quit. Mind you that I never even attempted to
upstream my ebuilds because I can't test them on any setup beyond my own. I simply don't have the
time to do so. This is despite the fact that I now own a 48-core workstation where a full build
doesn't take over 10 hours to complete unlike when I first started.</p>
<p>This is just pure misery.</p>
<p>Fuck you, Google.</p>
</details>

]]></content></entry><entry><title>Today I found out in web browser ...</title><link href="https://chrisoft.org/notekins/?post=1788586612" title="Today I found out in web browser ..."/><published>2026-09-05T05:36:52+00:00</published><updated>2026-09-05T05:36:52+00:00</updated><id>https://chrisoft.org/notekins/?post=1788586612</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1788586612"><![CDATA[<p>Today I found out in web browsers typing a decimal number after the protocol into the address bar causes the number to be interpreted as an IPv4 addres...</p>
<p>Thus entering <a href="http://16777217">http://16777217</a> in the address bar lands you at the cloudflare DNS page.</p>
<p>It even works for text-based browsers like lynx and w3m!</p>
]]></content></entry><entry><title>Dystrophoria: that bad feeling I ...</title><link href="https://chrisoft.org/notekins/?post=1787717008" title="Dystrophoria: that bad feeling I ..."/><published>2026-08-26T04:03:28+00:00</published><updated>2026-08-26T04:03:28+00:00</updated><id>https://chrisoft.org/notekins/?post=1787717008</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1787717008"><![CDATA[<p>Dystrophoria: that bad feeling I get when I am reminded that it takes more than two hours to update chromium on the distro I'm running ...</p>
]]></content></entry><entry><title>Somehow I started REALLY missing ...</title><link href="https://chrisoft.org/notekins/?post=1786685340" title="Somehow I started REALLY missing ..."/><published>2026-08-14T05:29:00+00:00</published><updated>2026-08-14T05:29:00+00:00</updated><id>https://chrisoft.org/notekins/?post=1786685340</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1786685340"><![CDATA[<p>Somehow I started REALLY missing the days when I DIDN'T have access to a computer 24/7 ...</p>
]]></content></entry><entry><title>don't &quot;:3&quot; at me, you  ...</title><link href="https://chrisoft.org/notekins/?post=1780522354" title="don't &quot;:3&quot; at me, you  ..."/><published>2026-06-03T21:32:34+00:00</published><updated>2026-06-03T21:32:34+00:00</updated><id>https://chrisoft.org/notekins/?post=1780522354</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1780522354"><![CDATA[<p>don't &quot;:3&quot; at me, you fool</p>
]]></content></entry><entry><title>This is a goldmine
Please Do Not ...</title><link href="https://chrisoft.org/notekins/?post=1780276478" title="This is a goldmine
Please Do Not ..."/><published>2026-06-01T01:14:38+00:00</published><updated>2026-06-01T01:14:38+00:00</updated><id>https://chrisoft.org/notekins/?post=1780276478</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1780276478"><![CDATA[<p>This is a goldmine</p>
<p><a href="https://github.com/RsyncProject/rsync/issues/929">Please Do Not Vibe Fuck Up This Software · Issue #929 · RsyncProject/rsync</a></p>
]]></content></entry><entry><title>I’m canceling my daily subscript ...</title><link href="https://chrisoft.org/notekins/?post=1779909429" title="I’m canceling my daily subscript ..."/><published>2026-05-27T19:17:09+00:00</published><updated>2026-05-27T19:17:09+00:00</updated><id>https://chrisoft.org/notekins/?post=1779909429</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1779909429"><![CDATA[<p>I’m canceling my daily subscription to testosterone. It's probably the biggest scam that I've ever experienced. Goodbye and see you never.</p>
]]></content></entry><entry><title>Roughly one year ago I predicted ...</title><link href="https://chrisoft.org/notekins/?post=1779515254" title="Roughly one year ago I predicted ..."/><published>2026-05-23T05:47:34+00:00</published><updated>2026-05-23T05:47:34+00:00</updated><id>https://chrisoft.org/notekins/?post=1779515254</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1779515254"><![CDATA[<p>Roughly one year ago I predicted wide-spread degradation in software quality in the near future,
mostly thanks to over-zealous application of generative AI in the development process.</p>
<p>Looks like we are in the middle of it right now.</p>
<p>I'm seeing strange bugs manifest in ways that I've never seen before: wireguard module causing
access violation randomly in linux 7.0 when compiled with clang 22, chromium refusing to show
context menu when it doesn't feel like doing it, etc. Obviously this is nothing but anecdotal
evidence, and I don't even know whether these problems are indeed caused by AI-generated code. But
I can vividly feel the reliability of certain tools I deal with on a daily basis slipping away.</p>
<p>You may say this is nothing but my subjective feelings, or even, &quot;my vibes&quot;. You are correct, and
that's exactly my point. I'm wondering if there's a significant portion of the population feeling
the same vibes of software quality degradation, and when that happens, whether we would finally
reconsider some of the choices we made as a community.</p>
<p>Some folks are forking open source projects that adopted permissive AI policies. I don't know if
these forks will last, or would they mirror the ffmpeg / libav situation. But one thing is clear:
some people are not entertained by the idea of AI-generated code powering our entire infrastructure,
and rightfully so.</p>
<p>Are you feeling the degradation?</p>
]]></content></entry><entry><title>Can't believe I found zunglish i ...</title><link href="https://chrisoft.org/notekins/?post=1778454087" title="Can't believe I found zunglish i ..."/><published>2026-05-10T23:01:27+00:00</published><updated>2026-05-10T23:01:27+00:00</updated><id>https://chrisoft.org/notekins/?post=1778454087</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1778454087"><![CDATA[<p>Can't believe I found zunglish in my code ...</p>
]]></content></entry><entry><title>&quot;It is time to go.&quot;
&quot; ...</title><link href="https://chrisoft.org/notekins/?post=1777962722" title="&quot;It is time to go.&quot;
&quot; ..."/><published>2026-05-05T06:32:02+00:00</published><updated>2026-05-05T06:32:02+00:00</updated><id>https://chrisoft.org/notekins/?post=1777962722</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1777962722"><![CDATA[<p>&quot;It is time to go.&quot;</p>
<p>&quot;Was I a good airline?&quot;</p>
<p>&quot;No?&quot;</p>
<p>(Photo taken 2023-09-01)</p>
]]></content></entry><entry><title>development under the influence  ...</title><link href="https://chrisoft.org/notekins/?post=1776572094" title="development under the influence  ..."/><published>2026-04-19T04:14:54+00:00</published><updated>2026-04-19T04:14:54+00:00</updated><id>https://chrisoft.org/notekins/?post=1776572094</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1776572094"><![CDATA[<p>development under the influence (DUI)</p>
]]></content></entry><entry><title>It just came to my mind that a s ...</title><link href="https://chrisoft.org/notekins/?post=1776291196" title="It just came to my mind that a s ..."/><published>2026-04-15T22:13:16+00:00</published><updated>2026-04-15T22:13:16+00:00</updated><id>https://chrisoft.org/notekins/?post=1776291196</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1776291196"><![CDATA[<p>It just came to my mind that a substantial part of my terrible sense of humor might have come from the book series <em>Horrible Science</em> and <em>Murderous Maths</em> (or should I call it &quot;<em>Murderous Math</em>&quot; now that I'm in North America?), I read both when I was in elementary school ...</p>
<p>Does that mean my sense of humor is partially Bri*ish? Shit.</p>
<p>(not that it's an actual bad thing)</p>
]]></content></entry><entry><title>Random Rosaceae of the year!
</title><link href="https://chrisoft.org/notekins/?post=1776059295" title="Random Rosaceae of the year!
"/><published>2026-04-13T05:48:15+00:00</published><updated>2026-04-13T05:48:15+00:00</updated><id>https://chrisoft.org/notekins/?post=1776059295</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1776059295"><![CDATA[<p>Random Rosaceae of the year!</p>
]]></content></entry><entry><title>&quot;You can't magic a girl out ...</title><link href="https://chrisoft.org/notekins/?post=1772694280" title="&quot;You can't magic a girl out ..."/><published>2026-03-05T07:04:40+00:00</published><updated>2026-03-05T07:04:40+00:00</updated><id>https://chrisoft.org/notekins/?post=1772694280</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1772694280"><![CDATA[<p>&quot;You can't magic a girl out of thin air.&quot;</p>
<p>Not with that attitude!</p>
]]></content></entry><entry><title>I'm late, but ...
(photo courtes ...</title><link href="https://chrisoft.org/notekins/?post=1771262894" title="I'm late, but ...
(photo courtes ..."/><published>2026-02-16T17:28:14+00:00</published><updated>2026-02-16T17:28:14+00:00</updated><id>https://chrisoft.org/notekins/?post=1771262894</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1771262894"><![CDATA[<p>I'm late, but ...</p>
<p>(photo courtesy of r/catfaceplant, as always)</p>
]]></content></entry><entry><title>VOICE TRAINING IS PURE EFFING MA ...</title><link href="https://chrisoft.org/notekins/?post=1770603914" title="VOICE TRAINING IS PURE EFFING MA ..."/><published>2026-02-09T02:25:14+00:00</published><updated>2026-02-09T02:25:14+00:00</updated><id>https://chrisoft.org/notekins/?post=1770603914</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1770603914"><![CDATA[<p>VOICE TRAINING IS PURE EFFING MAGIC!!!!!!</p>
<p>Seriously, why am I addicted to this? Like I was genuinely terrified of doing this when I started two months ago, but now I can't stop doing it until I lose my voice!</p>
<p>Wait this is supposed to go into that document ...</p>
]]></content></entry><entry><title>a constitutional crisis? what co ...</title><link href="https://chrisoft.org/notekins/?post=1769500757" title="a constitutional crisis? what co ..."/><published>2026-01-27T07:59:17+00:00</published><updated>2026-01-27T07:59:17+00:00</updated><id>https://chrisoft.org/notekins/?post=1769500757</id><author><name>Chris Xiong</name></author><content type="html" xml:base="https://chrisoft.org/notekins/?post=1769500757"><![CDATA[<p>a constitutional crisis? what constitution?</p>
]]></content></entry></feed>