GitLab emailed me about a failed Let’s Encrypt renewal. Had to press the Retry
button to encourage GitLab’s LE stack to do its thing. This has happened a
couple times but not a big deal. It reminded me to check up on my winny.tech
GitLab namespace and see what my last post was all back on October 12, 2025.
8½ months ago.
I’ve been focused on keeping the proverbial boat afloat. Money, where to
sleep, health. Needless to say, I’ve had less focus online and on my blog.
This blog doesn’t have a raison d’être anymore. Competence for tech
employment was one reason. One non-technical manager liked my blog. It’s
existed for over seven years now. In my experiment of n=1 samples, I can
confirm that a blog isn’t an economically practical tool in landing stable
employment.
I’ve experimented with this blog for rants, how-tos, and announcements.
These don’t seem load-bearing as there are other places to shout at clouds,
give directions. Not sure what there is to announce anymore too.
Undecided on what next for the blog. And for my website, for that matter.
PS I started writing this hours ago. Half, if not two-thirds of that time was
spent trying to get my blog to build so I can preview it. Going to abandon
Tailwinds and node.js on further hugo based projects. It’s not worth time, as
demonstrated tonight with the Node permission model butting heads with postcss.
As a studious GNU Units user, I have a small body of notes documenting various
ways to perform calculations with unit conversions. Here are a few select ways
that I found use of GNU units.
But first, a word about using GNU Units
GNU Units is a powerful, free calculator that performs unit conversions for
you. Please check out the examples on GNU Units’ homepage to see what it is
capable of.
I encourage users to read the GNU Units documentation (link to the HTML
multi-page edition). Or read on the command line via info units or in Emacs
via M-x info RET m units RET (or running emacs like emacs -Q --eval '(info "units")'). As a self test, you ought to know what ;, |, _, degC(),
--verbose are for (hint, check the infopages index and this page!).
In order to understand its power, I recommend installing GNU Units on your
phone (using something akin to Termux). Then use it whenever the need comes up
to compute figures with unit conversions.
Calculate Aspartame intake via gum
Bought some especially hard gum to upkeep my jaw health called “Jawz Jaw
Definining Gum Extra Tough Watermelon Gum”. Its ingredients are as follows:
sorbitol, gum base, xylitol, d-mannitol, moaltitol; less than 2% of: natural
and artificial flavors, glycerin, citric acid, aspartame, acesulfame-k, bht to
maintain freshness)
Each stick is 2.7g. Using GNU units, one can determine how much aspartame is
contained in each stick:
units --quiet '2.7g 2%' mg
* 54
/ 0.018518519
From Wikipedia: According to EFSA acceptable daily intake (ADI) is 40mg/kg.
FDA set ADI to 50mg/kg. Err on the side of caution. How many sticks a day can
I consume before this intake approaches ADI?
units --quiet '161lb * 40mg/kg''mg'
* 2921.1349
/ 0.00034233271
Okay, that’s a lot of aspartame per day. Let’s calculate how many sticks:
units --quiet 'floor(161lb * 40mg/kg / 2.7g 2%)'
Definition: 54
So I can chew a ton of gum per day while maintaining ADI.
winston@icarus ~ $ units
Currency exchange rates from exchangerate-api.com (USD base) on 2024-11-25
Consumer price index data from US BLS, 2024-11-24
7290 units, 125 prefixes, 169 nonlinear units
You have: 216.70 CZK
You want: USD
* 8.9405605
/ 0.11184981
You have:
Shipping weight
Weigh myself on scale with then without the package:
You have: 182.7 lb - 172.0 lb
You want: lb;oz
10 lb + 11.2 oz
That a wrap!
I have more examples tucked away in cobwebby folders stored on my less-used
devices. And a lot more notes on unit conversions in general. Might be back
with more unit nerd stuff…
There are probably better ways to do this. I opted to manually build and
install Python 3.14:
./configure --prefix=$HOME/python3.14 && make -j && make install
export PATH="$HOME/python3.14/bin:$PATH"which python3 # Should print out a path equivalent to $HOME/python3.14/bin/python3
python -m json
This is a nice way to pretty-print JSON (both indentation and color).
Previously, one can use python -m json.tool. Now one can simply invoke
python -m json. Personally, I missed the release of python -m json.tool,
so this release note item helped introduce me to this built-in command line
utility. Did you know about python -m json.tool?
Multiple performance improvements
The following areas saw significant performance improvements:
uuid module
garbage collection
import time of a over 20 modules has been improved.
asyncio subsystem performance improvements
compression.zstd
Python 3.14 now has ZSTD compression support built-in! ZSTD has pretty great
characteristics for general use. One less pypi package to grab — hooray!
Attach pdb to a running Python process
Have a run away Python process? Attach pdb to it! In the screenshot, I’ve
attached pdb to a toy roguelike that I created last year.
Formerly you’d catch multiple exception types using a tuple except (ConnectionRefusedError, TimeoutError):. Now one can drop the parenthesis.
It looks cleaner and less busy: except ConnectionRefusedError, TimeoutError:.
Color by default in more places!
Color now appears in argparse generated help messages. In the following
picture, check out python -m http.server’s argparse message.