not quite minimalistic enough  

2019-02-19

Ein Quell der Freude
#include <algorithm>
std::vector<int> spaces = std::accumulate(lines.begin() + 1, lines.end(),
        std::vector<int>(max_length, 1), [](auto acc, auto line) {
    std::vector<int> tmp(acc.size(), 0);
    std::transform(line.begin(), line.end(), acc.begin(), tmp.begin(), 
            [](wchar_t ch, int b) {
        return b && (ch == L' '); 
    });
    return tmp;
});

2019-02-13

Confusion.

It’s Maplebark. Not Marble Arch.

2019-02-01

Great customer service!

I just used Vim’s listchars feature for the first time to make non-breaking spaces visible. Only I found that it did not appear to work correctly; the nbsp item in listchars only worked if I also included trail, on the other hand, including eol would not change the behavior.

Before reporting bugs, one should always try the latest release, and so I did. I was not inconsiderably surprised that the bug was indeed fixed there.

Then I looked at the repo, and found that it had been fixed not 24 hours before I hit it when using the entire feature for the first time.

2019-01-21

Typisch.

Typisch.

Bericht über Luxemburg, aus Brüssel

2019-01-18

Through Fiery Trials

WHAT THE ACTUAL F?

2019-01-17

There's nothing there!

concurrent.future's ProcessPoolExecutor does not work from a venv, at least on Windows. It fails with a lot of “invalid handle” and “access denied” errors.

The reason is the usual one that explains everything that goes wrong on Windows if multiple processes are involved: No fork(). Instead, ProcessPoolExecutor creates a pipe to feed commands to a spawned subprocess. To do that, it lets the subprocess inherit the pipe and uses the command line to tell it about the handle.

Fatally, the venv python.exe in turn invokes the “parent” one, with the same command line, and waits for it to exit to forward the exit code, but without also letting it inherit the handle again (and how should it know to do that?).

So the “base” Python, two layers down, gets a handle value on the command line, tries opening it, and finds nothing, or a handle to something unexpected, and dies.

Workaround? No idea. Get the main installation from the Registry, overwrite sys.executable or whatever concurrent uses to find the interpreter to run, then fake up a PYTHONPATH and cross ten packets of fish fingers. Oh, and do not expect to use the interpreter you do that in for much else afterwards, I suppose.

Update: Fixed!

2019-01-13

Rodney the Mouse Pointer

I just dropped my tablet pen onto the keyboard, and somehow that resulted in an absolutely huge mouse pointer. Huh?

Resetting is simple; just switch to another pointer scheme and back.

What strange key combination did the pen hit to cause this? The list of accessibility shortcuts does not have an entry that fits.

2018-12-27

Hidden treasures

If anyone out there knows the story behind OaEnablePerUserTLibRegistration(), would you mind sharing?

2018-12-22

Deep Fail

The Grauniad at work?

Contradictions in terms

“He will now head to the South Sandwich trench […]. That trench, 8,428 metres below the surface, is unnamed […].”

It’s unnamed? I thought (and at least Wikipedia agrees) it was called the South Sandwich trench? And why does your own map say 8183 m and the article 8428 m?

2018-12-19

That's not how this works.

Yes, well, YouTube, that’s not how classical music works. You can have the same piece played by different orchestras.

YouTube screenshot

But you know that, of course, and do not care the first little bit.

I do, however, recommend everyone watch this concert.