not quite minimalistic enough  

2019-10-30

In excess of requirements

Well, Jabra, of course your “Jabra Direct” headset setup application is Chromium based, or whatever enormous rendering engine is en vogue today. After all, the application has at least five pages to show, and ten buttons or so, so clearly you need a full-blown web browser to show this surfeit of UI.

And of course this means that the two-bit application comes in at five processes. Efficiency is for the wimps!

And yes, of course closing the windows only does exactly that, but leaves the five processes running forever, doing God knows what, and with no sign whatsoever of their presence (such as a tray icon or so).

Another entry on the list of sometimes useful applications that nonetheless get installed only when needed and then removed immediately afterwards.

2019-10-22

Oh no, not again ...

The Python-on-Windows people are at it again. This time they have deliberately broken os.path.expanduser() in 3.8.

Until 3.7, expanduser() treated a tilde at the front of the path given to it the same as a *ix shell, i.e. ‘~/’ was replaced by the current user’s home directory, and ‘~user/’ with that of user user. More specifically, it used the value of the HOME environment variable, or USERPROFILE if the former did not exist, or HOMEDRIVE\HOMEPATH as a final fallback (on NT 3.51, perhaps?).

Then someone complained about that, Python bug #36264, and for some reason unknown to the world, it was decided not to consider HOME anymore.

This (and I’m speaking out of a deep personal animus) was the most misguided decision since splitting the Windows distribution into 22 MSI packages per architecture.

Why?

Because the supposed rationale for the change is that HOME is not a “special” variable on Windows, i.e. it is not something the system/shell cares more about than any other environment variable.

So what? It was documented that it was used by expanduser(), and that is what matters. Explicitly mentioning some behavior in the documentation, without a note that it is an implementation detail subject to change, is what interface contracts are made of.

The documentation does not make any claims that HOME is used because it is of any particularly exalted rank, it simply says it is used. The relevant paragraph could even be read simply as “the user’s home directory, unless overridden with HOME”.

In a particularly cruel twist, the original complainant even pointed out that their problem was actually caused by a bug in MSYS, but the Python-on-Windows maintainer apparently felt that this localized problem with a single tool merited breaking part of the Python standard library for everyone. (The tool was Git, but still …)