Edinburgh

Spending a day wandering around Edinburgh was a great change of pace. Today I found myself marveling at the beautiful old buildings, and mentally contrasting the weight of history in these ancient stones with the lightness and energy of the young people darting about in their shadow.

It’s as though two species are coexisting at vastly different time scales. In many places the cityscape here changes very slowly if at all, and buildings can last for centuries. If they could observe us, perhaps we would seem very strange to them — energetic blurs flitting through life in the blink of an eye.

Bad mouse

Today, mere hours before I am to get on an international flight, the trackpad on my MacBook suddenly has gone all haywire.

With care and patience I can get it to move to where I want (if you are reading this, then I will have scored a small victory in that direction), but it takes quite a while, and the cursor will often leap of its own accord to random places on the screen.

It occurs to me that this frustrating situation, and the immense frustration I feel in response, is a sort of electronic analog of physical dysfunction, a kind of technologically enabled Tourettes or Parkinsons.

The difference of course is that I can choose to walk away from my computer, or use another computer entirely.

Transitional citations

Sometimes, when read a technical paper, I become curious about some work or other cited in the references. If that work is in my own field, then it is pretty easy for me to read the referenced work.

But often the cited paper will be in a field that I know next to nothing about. Even if it is the correct reference, this sort of cited paper does me little good. What is missing is some sort of graceful transition between the paper I am reading and the papers it cites.

In real life we see graceful transitions all around us: Trains arrive at platforms within train stations, oceans have beaches, cities have suburbs, houses have hallways leading to rooms. In the physical world, you rarely find yourself walking from an open field directly into a deep forest. Generally there is some sort of lightly wooded area between them, a transitional space where the density of foliage gradually increases.

Yet if I am reading a paper on computer graphics and I follow a reference, I might suddenly find myself plunged into a highly technical research discussion about biomechanics, or the physics of vorticity, or the quantum nature of light, written by and for experts in some other field. The problem here is that the cited paper has no concept of where I am coming from, and why I am reading it.

Obviously it would be impractical to manually create contextualized transitions for every cited reference. Yet perhaps tools could be developed to semi-automate the process of creating such transitional descriptions. If such a thing could be made to work, think of the benefits for scholars everywhere!

With any luck, Google is already working on it. 🙂

Context is everything

Usually you go through your day thinking that you are living in some sort of objective reality. Things are the way they are because that’s just the way the world is. All perfectly logical.

But every once in a while something happens that causes that comforting curtain to get pulled back just a little, and you realize that your day to day life is a social construct, a consensual illusion.

I recently got a small reminder of this. In my world — computer science — when you see the initials “ACM” you immediately think “Association for Computing Machinery”. It is, after all, the parent organization for nearly all computer science conferences, including the largest of all computer science conferences, the annual conference in computer graphics known as ACM/SIGGRAPH (which stands for Special Interest Group in Graphics, if you must know).

Earlier this week I was at a meeting at NYU that focused on a very different topic indeed — how to stop the roof from leaking in our building. After all, you’re not going to get much computer science done if your fancy computers end up getting rained on.

One of the building people, when discussing our plaster ceiling, kept talking about the ACM, and I was having a difficult time following. What conference was he referring to? Was there some algorithm involved in this roof fixing business that I had overlooked? Other people seemed to understand just fine, nodded their heads knowingly every time he said “ACM”.

I felt a little shy about announcing to everyone that I had no idea what this man was talking about. So I cheated: I opened up my notebook computer and surfed the web for “ACM”. And then, bingo!

It turns out that “ACM” also stands for “Asbestos Contaminated Material”. Supposedly all the asbestos was removed from NYU buildings years ago, but in some of the older floors there are still trace amounts, often under layers of old paint or plaster. Hence the worry about “ACM”s.

And I realized just how much this man, sitting right across the table from me, lived in a completely different world. And I was reminded just how much our reality — social, technological, existential — is a matter of context. And context is everything.

The first interactive diagrams of October

Rounding out this current crop of interactive diagrams, I’ve put some more together to teach my class various things about ray tracing, including tracing rays to cylinders, how light intensity drops off with distance, creating fog, and intersecting shapes.

This time I’ve really tried to push for more variety in the interactive diagrams, to see if I could create different kinds of looks and ways of interacting. It’s a huge space to explore, but I’m having fun exploring it! Click on the image below to see the latest crop:



Calling card

Today at the end of a large meeting a number of people were handing out calling cards. Most of the cards were crisp and new, but one colleague apologetically gave me one that looked rather worn and beaten up.

“I’ve had them for a while,” she explained, as I politely took the slightly frayed and faded card. As she handed it to me, she ruefully mused “The stories this card could tell.”

“One day,” I replied, almost reflexively, “they will.”

We both pondered that concept — the idea that some future tech will enable your calling card to contain entire narratives.

It’s a cool thought, but in a way a sad one. There is just something about that beaten up old card, given to me today by a slightly apologetic colleague, that is infinitely nicer.

Even more interactive diagrams

I’m really getting into the swing of things with these interactive diagrams. I’m starting to see several distinct categories of interaction emerge, and it’s getting gradually easier to create them, as I learn which common code I can put into libraries, to reuse across different diagrams.

Click on the image below to see my recently posted course notes with some more interactive diagrams:



Connected components

I’m starting to sketch out an idea for a collaborative web project. It’s still a bit vague, but here’s the basic idea:

You go to a web page and you see that it is divided into little squares. In each square some activity is happening, and this activity can affect that square’s neighboring squares. For example, one square might eject a red ball or squirt some paint to its right, and the next square over then does something in response to that.

Here’s the thing: Each of these squares can be authored by anybody in the community. Each author is working with the same API, which ensures that objects and actions can cross boundaries. But other than that, everything is up for grabs.

For example, an author might implement their little square to use some sort of crowd sourcing — what it does depends on stock market prices, or on how many people click YES or NO in some on-line game (which could be written just for this purpose), or with other instances of itself on other web pages.

There can even be wild-card actions. For example, a square might respond to something by swapping its position on the page with one of its neighbors. In this way squares might even be programmed to travel around the page, finding friends.

Any square you author becomes available to everyone else in the community as a component in a kit, so people can create their own web pages by snapping a few (or a lot) together in some novel way, and seeing what happens.

I’m starting to play with prototypes in HTML5, so that this can run everywhere. I’d be happy if someone wanted to collaborate. 🙂

Bits of inspiration

When I was a kid I remember being completely fascinated by binary arithmetic, from the very first moment I found out about it. I think at first I saw it as a secret source of power.

I had already been into cyphers, letter substitution codes, and that sort of thing. I remember when I was about eleven years old I wrote a letter in invisible ink, mostly made from lemon juice. The writing was completely invisible until you held it above a candle (cue spooky music here), at which point it would slowly reveal itself.

But binary numbers were something more. In a way they were a personal evolution for me, a transition from “I can do something nobody else can”, to “I can do something amazingly powerful and beautiful.”

I think it was the “beautiful” part that changed everything. The fact that I could use such a simple and elegant system to represent and combine numbers (a much more elegant system than our own base 10, I might add), was perhaps the first real tug at my heart strings toward the beauty of mathematics.

Now here I am, all these years later, programming computers every day, creating art with math, and having a hell of a time. All because of some ones and zeros. I don’t regret any of it — not one bit.