Code nostalgia

You wouldn’t think that programming languages could provoke a feeling of nostalgia. After all, programming code is the epitome of machine-like expression. Its coldly logical construction is in some ways the very opposite of natural language’s focus on mood, feeling, human connection and frailty.

Yet today I found myself looking at some code written in a computer language I had not encountered since college, and was swept back in time to an earlier era of my life, remembering people, places, sounds, smells and feelings that had long been dormant.

I suppose that on some level the mind treats code like any other textural experience — like the intricate veins of a leaf, the sunlight that glistens through a snow frosted window, the smell of fresh mown grass on a summer morning. Anything you’ve experienced can be a trigger for deep memories.

It just seems strangely ironic when that trigger turns out to be, of all things, computer code.

Sleep mode

After arriving back home last night from the airport at round 2am, and then needing to jump right into my first meeting this morning, I have been in a bit of a fugue state. It’s not that I haven’t been able to function, but that at any given moment today when nothing is going on, I fall asleep — sometimes for just a few seconds — and then wake back up again as needed.

The apotheosis was my subway ride from a meeting on 59th Street this afternoon. On the local R train, I feel into what felt like a deep and restful sleep between every two subway stops — between 59th St/5th Avenue and 57th/7th Avenue, then again before every subsequent stop: 49th Street, Times Square, 34th Street, 28th Street 23rd Street, 14th Street/Union Square. Finally, at 8th Street I woke up from a deep slumber that had apparently occurred in the three or four minutes since we had stopped at Union Square, sprang out the doors, and went on to my meeting at NYU.

All in all, a bit of a crazy day, and I am sure I will sleep very soundly tonight.

But what I want to know is this: How did my subconscious mind handle all of this? At what level was there cognitive processing? Clearly it couldn’t have been a very high level, or my subconscious would just have let me sleep for the entire journey from 59th Street down to 8th Street.

Those three years

I was invited today to a meeting of a philosophy club. Every week the club picks a topic of conversation. This week the topic happened to be “childhood”. The discussion around this topic was thoughtful and far-ranging, roaming from thoughts about earliest childhood memories to the question of when childhood ends.

Another distinguishing quality of this club is that all of its members are between the ages of seventeen and eighteen (I was invited by a seventeen year old friend — these people are clearly not ageist).

One thought I came away with, after this experience of deep and thoughtful conversation, is that by the time you have reached the age of seventeen, you have already, in many ways, completed the journey from childhood to adulthood.

Those three years seem to make a world of difference. The distance that separates, say, fourteen and seventeen can be vastly greater than the distance that separates seventeen from any other age of adult.

Love insurance

Today I was talking with some Canadian friends about what is now in Canada called “employment insurance” — insurance in the event one fails to remain employed. In the U.S. this is called “unemployment insurance”.

One of my friends argued that we in the U.S. have this backwards. After all, health insurance is not called “sickness insurance”, and life insurance is not called “death insurance”.

It then occurred to me that couples should be able to take out insurance in the event they have a falling out that leads to divorce. If my Canadian friend is right, this should be called “love insurance”.

Perhaps there could be lower priced alternatives, if you can’t afford the high premium payments for full-on love insurance. One could imagine a descending scale, to insure the maintenance of more problematic relationships.

For perhaps half the rate of the premium policy, you could take out “`You could do worse’ insurance”.

Below that would be “`I am really not going to argue with you about this’ insurance”.

And if you are seriously strapped for cash, you can always get the bargain basement “`What am I, chopped liver?’ insurance”.

Religious discussions

This evening I found myself drawn into a conversation about religion. During much of the conversation, I tried as much as possible to maintain a respectful silence, knowing that we were wading into dangerous waters.

Yet I came to understand, as I navigated the dangerous shoals of someone else’s fraught and intense description of their lifelong spiritual journey, that there was a deep schism between the intellectual and the emotional sides of what I was hearing.

You can make all the intellectual arguments you want for or against a particular religious view of the world around you. And there’s nothing wrong with that. One could easily build several worthwhile and intellectual exciting university courses around this very topic.

But the hold of a religion upon the minds of those who were raised with it is something else entirely. It is not a question of right or wrong, of logic or of deductive inference.

No, it’s much wilder than that, both fiercer and more intense. As far as I can tell, people carry with them the religion of their childhood — seared into their minds at some deep level — even long after they may have renounced that religion. We can argue all day about God, but the bedrock emotional truth is this:

You do not possess the religion you grew up with. It possesses you.


Quite often my students will come to me and say “I have a really cool idea for an algorithm”. Most of the time, after hearing the student out, I will make suggestions about something similar but different to try.

The only reason I can do this is that, in most cases, I’ve already tried something similar to what the student is proposing — sometimes quite a few years earlier. Rather than make the student go through a month or six of pain, frustration and failure, I draw upon my own past experience to steer the student toward an approach that is much more likely to produce a positive initial result.

None of these experiences upon which I am drawing are publishable. You won’t find them in the literature under my name or under anybody else’s name. These are the research failures, the approaches that at first seem plausible but which prove, after hours of hard work, to be dead ends.

It’s a shame that there is no academic forum for sharing this valuable lore. You don’t get published for reporting things that do not work.

On the other hand, the very fact that you cannot find out these things on your own means that we professors are a valuable part of the process. I don’t know if this is good in the larger sense, but it certainly helps me to feel useful.

Sticky music

The other day I was walking along the street and I passed a shop that was playing one of my favorite songs. I wanted to stop and linger, just to enjoy the rest of the song, but I was on my way to meet some people, and I didn’t want to keep them waiting.

Yet I thought to myself “Why can’t I take the song with me?” I know there is software that can recognize a song from just a few bars, so there is no technical barrier that would prevent, say, a smart phone from “picking up” any music in the vicinity.

Wouldn’t it be nice if you were walking down the street, and whenever you heard a song you like, you could just pick it up and take it with you, so that it continues to play on your own portable music player?

Of course this defeats the goal of the store owners, who are playing that yummy music precisely to entice you to go into their store and linger a while. But somehow I think they would survive. 🙂

True story

True story: I was having dinner at a friend’s house this evening, and a guy we both know called her on the phone with a riddle, specifically for me. He asked “What is a unit?”

“I give up,” I said, “What is a unit?”

“It’s a sweater you make yourself,” he said.

And that was it. He had called her house only so he could tell me that joke.

I thought it was a really funny joke, but my friend, she wasn’t so sure.

“Well,” I said, “at least we know he came up with the joke himself.”

“Why is that?” she asked me.

“Because,” I explained patiently, “If it’s a sweater you make yourself, then it has to be original material.”

The pliable pawn

Taking just a small step today, I’ve changed the behavior of the pawn.

Now when you hit the keys 1…5, rather than making the different parts of the pawn appear and disappear, you just change their shape.

Because there are five keys 1,2,3,4,5, this means that you can create 32 different pawns (since every key multiplies the possibilities by two). None of these 32 pawns look like each other, yet each on is unmistakably a pawn.

Click on the image below to try it for yourself:


Of course this is going to get much more interesting when the other five chess pieces are added into the mix.

Generalized fonts: manual design versus machine learning

Building on a comment by Douglas, one approach to automating generalized fonts could be to create them by example via statistical machine learning.

Imagine, when I was walking by those chess stores in Greenwich Village that started this line of thinking, if I had taken the pawn from every chess set, and had fed all those shapes in to a computer program, with the instruction “this is a pawn”. Now imagine I had done the same for all the bishops, etc.

The software would have two kinds of labeling information to work from: (1) These are all pawns, and (2) This group of pieces (knight, bishop, etc.) are all from the same set.

It would be interesting to see whether statistical machine learning could make use of that labeling. Not just to be able to assert, given a new piece, “this is a bishop”, or “these two pieces belong to the same set”, but to make the more interesting assertion: “Here is a chess set that nobody has ever seen before, which is a weighted mix of these other example sets”.

And it would be interesting to compare this automated approach to the old fashioned one of manually analyzing the structural parts of a chess piece (as I have been doing), in order to build new variations.

Each approach would have its advantages. The statistical machine learning approach could potentially get a lot further faster, but it would be unlikely to ever be able to tell us how and why it made its choices. For actual insight, I believe the manual labeling analysis/synthesis approach will win hands down.