Useful idiots, part 3

To sum up: What is happening in Ukraine is horrific and tragic, but I think we should all be on guard to the possibility that it is even worse. My worry is that this invasion looks very much like the result of a prearranged back-room deal.

All Xi Jinping needs to do now is make vague disapproving noises, while letting events unfold. Whatever the outcome, his country will come out ahead.

If the invasion succeeds, two things happen: (1) A 21st century precedent is established for a large autocratic country annexing, by military force, a smaller neighboring democracy. (2) Russia, being economically isolated, will have only one large customer left to purchase its reserves of natural gas.

If the invasion fails, Russia will still be economically isolated, and also very weakened. To remain economically viable, it will have little choice but to turn to the only big friend it will still have.

Either way, China wins. But if the invasion succeeds, then Taiwan is in a perilous position.

And that doesn’t just mean immense human tragedy. Because of Taiwan’s position as a global supplier of high-tech components, it will also cause enormous economic disruption throughout the West.

So for many reasons, let’s hope Putin fails. But in any case, my greatest fear is that he is, in the end, no more than someone else’s useful idiot.

Useful idiots, part 2

So what is happening now is that the autocrat presiding over a failing economy, wanting to secure his grip on his country, is doing a classic “Wag the Dog”. And in the process causing immense human suffering and loss of life, while aiming to destroy a democratic nation.

But Putin must have thought through what will happen when Europe no longer buys his country’s natural gas. Who will he sell to? The answer is pretty clear, and I am frightened by the thought that this may have all been worked out beforehand.

Who most stands to gain from establishing a precedent of a large autocratic country getting away with invading a smaller democracy next door? Who most stands to gain from wresting economic power from the NATO countries?

Useful idiots, part 1

It’s pretty clear that Vladimir Putin thinks of a certain orange haired con man as a useful idiot. For four years, our U.S. president presided over the weakening of NATO, the hero worship of brutal autocrats, a clear distain for friendly democracies, and the enabling of the engine of Russian disinformation.

But what if there is more to the story? What if Putin himself is merely a useful idiot? If so, the terrible tragedy unfolding in Ukraine might be just the beginning of something even more tragic.

More tomorrow.


There is a substantial Ukrainian community in NYC. Over the years I have gotten to know quite a few first and second generation Ukrainian Americans.

They are a diverse group, with very different opinions on many topics. There is literally only one thing about which they invariably agree.

Their one point of universal agreement? They all hate Russia. Not the Russian people, but the government.

The hatred is passionate and visceral, and I have been told that it goes back for generations. From what I know, I can’t imagine the people from this culture ever acquiescing to this particular invasion.


Like everybody else I know, I have been glued to the news. What is happening today is so horrible and tragic. I did not think things like this invasion would actually happen in this day and age. I had naively thought that the world had moved past this.

Widget Wednesdays #8

Around seven or eight years ago I was trying all sorts of things to enhance the look of my Chalktalk interactive drawing program. One thing that was really important to me was line quality.

I wanted to be able to render beautiful 3D lines, which tapered and had rounded ends, as though you were drawing with a high quality magical paintbrush in 3D. But I also wanted it to run very fast.

So I wrote a special shader just for drawing those sorts of lines. My first test was just to see if I could render two curved tapered lines in space, as seen from different points of view.

Once I got that working, I tried ramping things up a bit. I generated a more ambitious test, with lots of squiggly tapered 3D lines.

When that seemed to work ok, I really went for it. I modified the program to generate 1000 tangled up squiggly lines in 3D.

To my surprise, it still looked great, and it still ran really fast. Hardware accelerated shaders are really amazing, aren’t they?

Multiple projects

Today I found myself working on three different projects. For one of them, today was the publication deadline.

On first blush, this seems problematic. How can you divide your attention among three different things and still get anything done?

But in practice it turned out to work really well. Whenever I would get stuck on one project, I could switch to another one. And usually when I returned to the first project, I found that I was unstuck.

I realize that I do this a lot. The occasional change in context turns out to be just what I need to avoid hitting roadblocks.

It still seems slightly unintuitive to me that working on multiple projects in parallel can actually be more productive than focusing on one. But hey, it works.


Some years ago I was having a conversation at a conference with an artist. The topic got around to the classic computer game of Asteroids.

I was talking about how cool it was that when your ship goes off to the right of the screen, it always come back again from the left. And when it goes off the top of the screen, it comes back in on the bottom. So you never need to hit a wall.

“Basically,” I said, “the game is played on the surface of a torus.”

“No,” he said, “that means it’s on the surface of a sphere.”

I needed a way to convince him. So I came up with the following explanation. “Imagine,” I said, “that one person playing is traveling in an endless loop horizontally [the blue line in the image on the left], and another person is traveling in an endless loop vertically [the red line in the image on the left]. Those two people will meet in only one place.

“But if it were on a sphere, they would meet at two places: In both the front and the back of the sphere [like in the image in the middle]. But since they only meet in one place as they loop around, it’s just like a torus [like in the image on the right].”

He thought about it for a moment, and then said “Yes, I see it now. You’re right, it’s on a torus.” Which made me very happy, because the entire conversation had been just words — no pictures necessary.

Later that day I relayed this conversation to Vi Hart, who was also at the conference. She just looked at me for a moment, and then said “You know, that’s the definition of a torus.”

That was good to know.


I am very happy to see that today’s date is a palindrome. The digits read the same forward and backwards. This leads to a number of interesting questions.

An easy question is, when is the next date that is a palindrome?

How much more challenging question is, what percentage of all dates are palindromes?

Better tools

In the last few days, I was working on a software project and I gradually realized that the tools that I was using were not up to the task. So I made myself a new set of tools, and then progress was very rapid.

But then I realized that the new tools that I had just made were probably more valuable than the original project itself.

There’s a lesson in here somewhere.