Yes. Another one.
Let’s have another (little) Python packaging rant. It’s been a while.
I just made a mistake. I thought I had told my deployment software to
remove a Python installation, when I had actually only removed one
third-party package that I had repackaged as MSI. Then I deleted the
whole installation directory (which I believed had only leftover
bits).
Oops. How do I clean this up?
Well, let’s just install the whole thing again, from the original
– shudder – burn bundle.
Won’t work. Takes but a second, then claims success. No wonder, all
the metadata is still there; for the bundle it looks like all its
little constituent parts are already installed.
So we uninstall the bundle? Error 1603.
So we repair it? Gets up to pip (having done nothing to the actual
file system), then fails, “no installation detected”. You don’t say.
Fix? Download the whole set of MSIs, install them in an order that
works, uninstall them in reverse order, then install the bundle and
uninstall it again.
Ceterum censeo: This mess would have been avoided had I thought before
typing. OTOH, it also would have been avoided by using MSI as the
distribution package format because then a repair installation would
have actually worked.
Weltschmerz
Currently converting a Django project that was using ZPT via Chameleon
to Django’s own template language.
No, I don’t think this is a good idea.
Unfortunately, Django’s developers make it increasingly difficult to
generate XHTML, and recent versions have essentially made it
impossible without rewriting a good bit of the framework itself.
For some reason, the Django project has decided to embark upon a
crusade against XHTML, and my poor little ZPTs are its victims.
Honestly now. Which is better?
This:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
...
<body>
<h1 tal:content="section"/>
<p tal:repeat="item items" tal:content="item.label"/>
...
Or this:
<!DOCTYPE html>
<html>
...
<body>
<h1>{{ section }}</h1>
{% for item in items %}
<p>{{i item.label }}</p>
{% endfor %}
...
When done adequately, ZPT are well-formed XML. When done correctly,
they are valid XHTML (the templates themselves, not just [but also!]
their output).
Django templates, on the other hand, are line noise when done
completely wrong, and still line noise when done “right”.
I'll just keep talking here ...
Imagine you work in a support call center, and right now have to try
and make yourself understood to callers over the earsplitting speakers
above you –
Bong! Bong! Attention! Attention! An incident has been
reported within the building. Please wait for further
announcements.
Over, and over, and over again, all the time.
If this is not difficult to imagine, because you are living it right
now, then you work at Bloomberg.
A short leave from normality.

I’m tempted. My current face is getting a bit worn out.
Schnabelschnabel
Der Einfluß der deutschen Mundart auf die Verteilung von Namen für
allerlei technisches Spielzeug ist nicht zu unterschätzen. Nach dem
großen Erfolg des Mobiltelefons (»Hänn di doch die Schnur vergeß’!«)
kommt nun aus dem sogenannten »Smart Home«-Sektor der nächste
Aspirant.
AVMs neues »FRITZ!OS 7.01« unterstützt nun den
»herstellerübergreifenden Standard DECT-ULE/HAN-FUN« (von »mir ha’n
Fun!«).
Na bravo.
Da dreh' ich doch lieber am Rad
Hm. Das könnte man jetzt natürlich so interpretieren, daß Amazon
künftig für jede Anweisung einzeln – und großzügig – bezahlt werden
will.
Hätte sich vielleicht nochmal jemand anschauen können, das Design.

class Rock extends Throwable
Q: What do you call things that can be delivered by ballistae?
A: Usually, “ballista balls”. If you’re an audiobook narrator who
tends to imprecise pronunciation, however, “ballistables” is also an
option.
Jetzt oder ... nie?
So, so, die SPD
fordert jetzt
also “ultimativ” die Entlassung von BfV-Präsident Maaßen. Da wäre es
doch ganz nützlich, mal zu erfahren, worin das “Ultimatum” denn
besteht. Oder nicht, liebes tagesschau.de?
Leider – und nicht unerwartet – läßt der Artikel diese Frage
sperrangelweit offen. Das einzige Zitat zum Thema beschränkt sich auf
die Erkenntnis, daß “völlig klar” sei, daß “Maaßen gehen muß”.
Wenn das ein Ultimatum sein soll, dann kann ich es nur so verstehen,
daß die SPD damit droht, kräftig mit dem Fuß aufzustampfen, wenn ihre
Forderung nicht erfüllt wird.
(Oder ist das mit-dem-Fuß-aufstampfen seit gestern auch nicht mehr
gesellschaftsfähig?)
Doctor, it hurts when I do that.
“Whenever I click into this field, the application crashes.”
“Have you tried moving into it with the keyboard?” (Tab from the
previous field.)
“…”
“Oh, it works!”
In a mirror, everything is twice as long.
Old:
co mi a p 1:22
...
co mi d por 1:22
New:
mo s 1 s i ge1/0/36
...
no mo s 1 s i ge1/0/36
That is … unwieldy.