Author Archives: Jim

The “lie-to-children” concept

Here’s an interesting concept: the lie-to-children:

“A lie-to-children is a statement that is false, but which nevertheless leads the child’s mind towards a more accurate explanation, one that the child will only be able to appreciate if it has been primed with the lie.”

Thinking of a user program being sequential execution of steps seems like this lie-to-children, within the reality of a multi-tasking / multiprocessor / distributed cloud-based world.

Hats off to the CME Developers

Oil futures went negative on the CME’s exchange this week, and it seems that the exchange software handled it flawlessly.

Of course we expect it to, and languages handle that fine, but still I’d say it’s not certain that it would have, unless their people designed for it and tested it.

If it wouldn’t have, we’d have a huge mess on our hands. And since it did, we take it for granted.

Hats off to them.

G++ 5.3 Bug

I was just thinking to myself recently that I haven’t found a compiler bug in a while. It’s because I’m doing so much in Python, and I’ve never found a bug in Python (the language).

But I’ve never worked with a C++ compiler where I didn’t find a bug.

And sure enough, just came across one, in GCC 5.3 (Qt 5.8).

auto Zip5 = hasFIPS?
    [&file](size_t row) { return file.Field(row, 6); } :
    [&file](size_t row) { return file.Field(row, 5); };

That fails with:

error: operands to ?: have different types ‘ZipCatalog::Load(const boost::filesystem::path&, const boost::filesystem::path&, const boost::filesystem::path&)::<lambda(size_t)>’ and ‘ZipCatalog::Load(const boost::filesystem::path&, const boost::filesystem::path&, const boost::filesystem::path&)::<lambda(size_t)>’

Compiler bug. Those two types are the same.

(I’ve never found a bug in a C compiler either, though it’s been decades since I wrote any C code.)


11th-Hour Surprise

This morning, 10:01AM, our regional electric company sends:

Introducing the newly redesigned [redacted] page — an even easier and faster way to refer your friends …

This morning, 10:44AM:

UPDATE: The launch of the page is currently delayed. We apologize for this inconvenience and will contact you via email when the new page is ready.

That sure seems like a late-in-the-game software project surprise.



Wireshark is going Qt

Wireshark is moving their user interface away from GTK+ to Qt.

Making such a large change wasn’t an easy decision. It means rewriting thousands of lines of code and requires a lot of careful design. We might be the largest standalone application to make this transition (feel free to correct me below). However, I think it’s well worth it and that it’s important to the long-term direction of the project. Ultimately it came down to one thing:

Wireshark’s job is to show you what’s happening on your network. If it can’t run on your system then it’s not doing that job.