Widget Wednesdays #7

Some years ago a colleague asked me whether I could create a 3D character that was also a musical note. The idea was that the character would walk up and down a virtual piano keyboard, playing music.

I came up with a 3D creation that I feel conveys both “character” and “musical note”. You can check it out here.

Infinitely stupid

I distinctly remember a particular moment in middle school, talking to an older friend about computers. He had taken a computer programming class, and I hadn’t.

I asked him “How does the computer know how to do what you tell it to do?” I was imagining some sort of intelligence inside the computer. You would somehow explain to it what you wanted done, and it would do it for you.

Then in ninth grade I took Mr. Haggerty’s intro to computer science class. The very first thing he did was have us program a “paper computer”. There was no real computer, just pencil and paper and some simple rules.

On your piece of paper you wrote numbers into little boxes, which were arranged in a row like in a board game. The rules dictated what happened next.

Each number represented a different rule. One number might mean “add two numbers.” Another might mean “skip forward two boxes if the answer is zero.”

It soon became clear that if you started by writing the right sequence of numbers into the boxes, you could make the “computer” calculate all sorts of interesting things. And that’s when I realized the secret of computers.

Which is that they are infinitely stupid. They have no brains at all. Computers will only do exactly what you tell them do, and nothing else.

Once you wrap your head around that, you start to see why programming works, and why programming is so powerful.

Valentines to technology

I wonder whether it is a coincidence that so many interesting markers of technological advancement happened on Valentine’s Day.

On Valentine’s Day in 1876, Elisha Gray filed for a patent on his invention of the telephone. So did another guy.

On Valentine’s Day in 1899, the United States officially switched over to voting by machine. Things haven’t been the same since.

On Valentine’s Day in 1924, IBM was born.

On Valentine’s Day in 1990, the Voyager I spacecraft made history by taking a photo of our little planet from very very far away.

On Valentine’s Day in 2000, one of our earth spacecrafts started orbiting an asteroid for the first time ever.

On Valentine’s Day in 2005, a certain popular video sharing website was launched. I’ll let you guess.

Gamified

In a recent post I showed a simulation of particles. Andy commented that with a few modifications, my simulation could be turned into a really interesting game.

That got me thinking about the general idea of “gamification”. I suspect all sorts of things can be turned into games. In fact, I suspect that you can you turn anything into a game.

Take any random category: movies, flowers, opera, real estate, poetry, piano lessons, spelling, luggage. It really doesn’t matter — you can start with any topic.

With a little imagination, whatever you are interested in can be turned into a game. And if it’s good game, people will play it, and will learn something that they didn’t know before.

That can’t be a bad thing.

The minimal example

This morning I wrote some code to show a colleague an example of a programming feature. The goal was to make it easier for my colleague to follow up.

Which means that my goal was to make sure the example was as simple as possible. It had to tell the right story, but no more than that.

And that calls for a kind of discipline. It’s sort of like the programming equivalent of a haiku.

Sometimes I get it really right, manage to strip off all the fat, and end up with the perfectly minimal yet expressive example. When that happens, it feels oddly satisfying.

Like writing a perfect haiku.

Scientific methods

My mother tells me that when I was 3 years old there used to be a problem in our apartment. The ceiling in the bathroom was often wet and she couldn’t figure out why.

One day she was in the bathroom, I was there with her, and she wondered out loud “Why is the ceiling in the bathroom always so wet?” Apparently, according to her, I said “I show you mommy,” and I walked up to the sink.

I turned on the tap and I put my finger under the nozzle so that the water was directed upward. It sprayed all over the ceiling.

I have no memory whatsoever of this incident. However I did grow up to be a scientist.

Widget Wednesdays #6

Sometimes it’s nice just to stop whatever you are doing and take a moment for reflection. Which leads me to today’s Widget Wednesday.

When I teach computer graphics, I usually start with ray tracing. Some people think of it as an advanced topic, but I find that it really helps students to understand how things work.

It’s kind of like if you were teaching architecture, and you started the course by saying “Let’s build a simple house”. At the end of that project, the reasons for everything would be a lot more clear.

Sometimes I like to use the same tools that I’m using for teaching to make something for myself, just for fun. Today’s widget is something I made while teaching ray tracing to students.

Ray tracing is very good for making reflecting surfaces, so I focused on that. I also incorporated my noise function in the various reflections, to make the scene prettier.

You can see the result here.

New media vs old media

Just because a “more advanced” communication technology comes out, doesn’t mean we should always use it. What often ends up happening instead is that it takes is place beside existing technologies.

One obvious example is theater and cinema. I love movies, but I still go to the theater. Another is books. Ebooks and on-line documents are incredibly convenient, but there is still nothing like curling up with an old fashioned book made of paper and ink.

I think something similar is going to happen with the spectrum between writing letters, writing emails, video chats, and whatever will be coming after Zoom. In another ten years we are going to be able to “beam into” each other’s physical space. It will feel less like video chat and more like the Jedi Council.

But there will be many occasions when people will choose not to use the latest and greatest form of immersive interaction. Depending on who you are meeting with and why, you might decide instead to opt for a video chat.

Or you might just get on a phone call or send an email. Or, if you want to say something important to somebody you really care about, you could choose to sit down, pick up a pen and write an old fashioned letter.