First thought

Today I received an announcement in my email inbox. It was from our University, discussing the issue of students using ChatGPT, and offering to give seminars on how to navigate this difficult topic.

My very first thought was, how do I know this was written by a person?


I was curious to see whether ChatGPT could write yesterday’s intersection program for me. So I told it:

“Write a Javascript program to intersect two convex polygons by checking whether any vertex or the center of either polygon is inside the other polygon.”

It responded with a perfectly correct Javascript program. I then asked the question again, and it responded with a different Javascript program, also perfectly correct.

When I compared the code it produced those two different times, it appeared as though it was stealing pieces from different programmers who had very different styles of coding. I could recognize the thinking of the programmers who wrote the original code that it was using.

The final programs it produced tended to be kind of clumsy and inelegant — although definitely functional and correct. I am guessing that this was because it was stitching together parts of programs that it had found in different places. The result was a kind of Frankencode.

This is pretty much the impression I get when I read prose generated by ChatGPT. Just beyond the text, I can perceive the half-digested bits and pieces of the creative thoughts of unnamed humans.


A student asked me yesterday how to intersect two boxes. He wants to do it in 3D, but it occurred to me that if you take the right approach, there might be a “good enough” algorithm that would work equally well in any number of dimensions. Which means I could just give a 2D version as an example, and the student could then easily extend that to 3D.

By “good enough”, I mean it might fail on really difficult cases, like extremely long and skinny boxes, but it would do just fine on the more common kinds of boxes that are roughly equal in size and not extremely distorted in shape.

This is the example I ended up writing this morning and sharing with the student. If you’re a code developer and you’re interested, feel free to view source. The entire algorithm is just a few dozen lines of Javascript code.


Today is the birthday of Zeppo Marx. I am celebrating it here partly because Zeppo just never seems to get proper credit for his contribution to the Marx Brothers.

It’s one of those unfortunate situations. Here are four talented guys working as a group, and one just does not get the same credit for his contributions that he should.

By the way, today is also George Harrison’s birthday. Mere coincidence? Or is that the sound of the Universe laughing at us?

Oldest living

I have gotten into the habit of looking at the Wikipedia each morning to see the list of people they consider to be notable. So I get to silently celebrate a lot of birthdays.

I also find myself noting, in particular, who is the oldest notable person still living. And I often then check out their page on Wikipedia, where I usually find an interesting story.

Today that person is Hans Herrmann, the race car driver. If I was looking for an interesting story, I was not disappointed. His exploits and adventures from his racing days make for great reading.

The man is long retired, but still with us at 95. And like everyone in this category, if you really wanted to, you could probably talk to him first hand about his fascinating life.

Upside down, part 1

I was looking at license plates on cars today. Somehow it randomly occurred to me that it would be cool to encode a message upside down in a license plate.

The plate would read like an ordinary jumble of letters and digits. Until, that is, you turned it upside down, and then a secret message would appear.

There are only certain letters and digits that this works for. I think I now have the complete list.

In the chart below, the first line is the character you would use, and the second line is how that character would read when the message is flipped upside down.

The matches aren’t all perfect, but then they don’t need to be. The message just needs to be readable:

A b d H I M N n O P q S u V W X Z 3
V q p H I W N u O d b S n A M X Z E


I was teaching my class this evening and going through all sorts of advanced techniques. I was feeling pretty good about showing the students all of these arcane secrets of the craft.

Then a student asked me a question about a much more basic technique. And I realized that in my enthusiasm I had skipped right over it.

It’s important to remember that you can’t always jump right to the advanced stuff. Sometimes you need to go back to the ABCs.


My post yesterday touched glancingly on some dark topics. Today’s post is a kind of response to myself, with a little twist of SciFi.

Presumably, at some point research in artificial intelligence is going to go beyond its current mimicry stage. In one scenario, researchers will start to get a handle on deep modeling of human cognition and eventually sentience.

If that occurs, it might be possible to create a kind of psychic clone of yourself. It would be you in every way, except in a computer rather than in a biological brain.

The big existential question then is “Who exactly is that?” The computer will most likely say “Yep, it’s still me. I’m right here, inside this machine.”

But the biological version of you might not agree. You might not view this particular continued existence of your “self” as a solution to your own desire to continue to exist, but rather as a replacement.

This dilemma will continue as long as your biological self is still around. Ironically, the moment the “real” you goes away, the dilemma goes away as well.

The “you” that is in the computer will happily affirm that you are still here, and that you are doing just fine. You might even find it amusing that for a brief time there were two of you in existence.

And you will have all of eternity to appreciate the joke.