Archive for Random

Nuclear Irrationality

I was recently thinking about my college studies of nuclear warfare. At the time it seemed like a relevant topic, and I took two courses on it. Like everything, the more you look into it the more complex it gets. The depth of the thinking in nuclear warfare planning was both impressive and appalling.

One of the more interesting cases was driven by the fear of a Soviet invasion of Western Europe. In retrospect we know there was never a danger of that, but at the time it was a real concern. The western strategists feared that in a conventional war, the Soviet tanks would rapidly rout the smaller European armies. The use of nuclear weapons, or at least their potential use, was an obvious way to counter this threat.

However, most of the nuclear weapons were in the U.S. It was clear that no U.S. president would launch nuclear weapons at the Soviet Union in order to forestall an invasion of Europe. The U.S. promised to support Europe, but if the war actually started, a nuclear attack on the U.S.S.R. could only end in a nuclear counter-attack on the U.S. That would never happen. England and France had a few nuclear weapons, but would their leaders really launch them, knowing that they would face certain death in the overwhelming nuclear counter-attack? A bold and calculating leader of the Soviet Union might be willing to risk that nobody would take the nuclear option, and be willing to gamble that they would win a conventional war (again, this was the fear of the U.S. and Europe, the Soviet Union knew perfectly well that they could not win such a war). How could the U.S. and Europe use nuclear weapons as a credible deterrent to a conventional invasion?

The answer was, as I said, both impressive and appalling. NATO distributed low-yield nuclear weapons throughout Europe (they even had nuclear landmines). In the event of an invasion, complete control over the weapons was handed over to local commanders. The decision to use nuclear weapons would not be in the hands of an elected leader far from the war zone. It would be in the hands of a local colonel facing the immediate loss of his command. The Soviet Union might gamble (so the thinking went) on the reactions of a few political leaders they could study closely. They would never gamble on the reactions of several hundred local military commanders. Although the weapons were relatively low-yield, the expectation was that once a war went nuclear, the only thing that would stop it from escalating would be a quick complete cessation of hostilities.

This is a nice example of achieving your goal by explicitly giving up your ability to act rationally.

Comments (7)


I’ve interviewed a lot of people looking for jobs at places where I work. I don’t think I’m a particularly good interviewer, but I have developed a few rules of thumb. The purpose of an interview is to see whether somebody can do the job. In my case, the job is programming.

Past experience by itself is not a good guide, as many people can slide through a company without accomplishing very much. Academic experience is also not a good guide, as the experience and goals of programming in an academic setting are very different from working in industry. The ideal way to find out whether somebody can program is to ask them to write a program. Unfortunately, writing a real program takes time, and the interview is time-limited. it would in any case be unfair to candidates to ask them to undertake a serious piece of work in order to get a job. Since most programming is tweaking, maintaining and debugging large existing pieces of software, it would also be good if one could ask a candidate to debug some large program. Unfortunately that too takes time, and it doesn’t allow for the knowledge about a program one would naturally gain on the job. Despite these drawbacks, I do usually ask people to write a short program, simply to verify that they are able to write some kind of code. But I don’t put too much weight on it, unless of course they can’t do it. I’ll add that when writing a program in the stressful interview situation, whether they make any mistakes when writing it is not important, but not being able to see mistakes is a concern.

In any case, I find it more important to know whether they understand the complex layers of software which comprise modern systems. A good programmer understands all the layers of the machine from the processor up to the application. Knowing all the details is not important. But knowing how it fits together is. Here the challenge is distinguishing people who just know the terminology from people who really know how it works. One of the things to look for with these questions is a quick ability to see that they don’t know something, coupled with knowledge of how to find out.

Unfortunately, all the knowledge in the world combined with great programming skills does not mean that the candidate can actually do the job. This gets into much fuzzier areas like whether they can take direction when necessary, whether they can work on their own when appropriate, whether they will make forward progress or get stuck. I don’t know how to figure these things out. The best I can do is ask about their past experiences, and listen closely to the way they talk about things. Are problems ever their own fault, or always the fault of someone else? How long does it take them to accomplish tasks? Have they finished things in the past or always moved on before completion?

A final lesson I’ve learned is that as an interviewer, I don’t have to be fair. Good candidates will find a job somewhere even if they had an off-day when I spoke with them. Hiring the wrong person will be costly every day until they leave. If somebody seems intuitively wrong somehow, then it’s better to trust that intuition than to hire somebody who won’t work out.


Monetization of Public Space

The current rumors say that Facebook has a paper valuation of $50 billion and Twitter has one of $10 billion. Those numbers are certainly part of a mini-bubble today, but they may be supportable tomorrow. It’s interesting to note that the only service these companies do is provide a space for people to do things, a space for people to provide their own information. This is not nothing, as it involves paying for the space to host photographs and videos and for network costs. But Facebook and Twitter are not being valued for being hosting providers. They are being valued for creating a shared public space which many people choose to enter. (WordPress and LiveJournal are other examples of online companies that simply create a shared space; Google and Bing are examples of online companies which provide a service, providing real information beyond what people do on their sites.)

Is there anything comparable in the real world? The real world is full of shared public spaces, but they are not generally money making operations. I think of places like parks or shared urban spaces like Times Square. These are typically built by the government or by some public cooperative at a cost, rather than being built by a private corporation as a source of revenue.

What’s the key difference? It’s that it is much cheaper to create an online space which can hold several million people than it is to create a physical space that large. It’s cheap enough that even the relatively small returns you get from billboards may be enough to pay for creating that space. And, since it is online, you can have targeted billboards, which may pay somewhat more.

I think this becomes an interesting difference between the online world and the real world. In the online world, the shared public spaces are not paid for by society, they are paid for private companies. There is no notion of a right of public access on the Internet. There is no equivalent of the homeless person on the corner or the busker singing for change. I don’t know if these differences are good or bad.

People are already working on goggles which bring the online world into the real world, adding annotations for the objects that we look at. It will be a simple further step for these goggles to edit out the things we don’t want to see, and to add targeted billboards in their place. As the goggles would be sold by private corporations, that will bring the monetization of public spaces in the online world into the real world as well. This is obviously a very speculative idea, but it would in some ways be the logical culmination of people’s withdrawal from cities and shared society into an increasingly private life. Again, I don’t know if this would be good or bad, but if it happens it has the potential to be truly different.

Comments (8)


Apologies for the long gap between postings. It’s been a busy month.

Like everybody else, a look back at some things worth noting in 2010.

The Gone-Away World, by Nick Harkaway. A surrealistic quasi-comedy masquerading as an SF novel. The writing style often reminded me of Neal Stephenson. Taking apocalyptic SF one step further, most of the world literally goes away. The novel goes into how and why and what happens after, but it’s mostly an examination of a person rather than of an idea. Plus there is lots of kung-fu.

Surface Detail, by Iain M. Banks. Banks get back to form with another Culture novel, building on what can happen when societies can simulate reality. Not ground breaking but I thought it was his best novel since The Algebraist.

Cryoburn by Lois McMaster Bujold. Basically a mildly entertaining Miles Vorkosigan novel, I thought the last few pages, which don’t have anything to do with the rest of the novel but have a lot to do with the ongoing story of Vorkosigan, were truly excellent writing.

John C. Wright has been around for a while but I first started reading him in 2010. His novels are slow-moving but packed with ideas and I would recommend them highly for the SF or fantasy fan. He wrote a sequel to Van Vogt’s Null-A novels which replicates the style of the originals precisely while being both more coherent and more strange.

The Name of the Wind by Patrick Rothfuss. Another book I first read in 2010. A truly excellent fantasy, writing at the level of Gene Wolfe. Unfortunately it’s written as the first of a trilogy, and the next book has been postponed several times.

Winter’s Bone, directed by Debra Granik. An incredible movie about poor families in the Ozarks. The teenage heroine faces a believable threat of violence from every male character, but interestingly all the actual violence is committed by women. Jennifer Lawrence gives an incredible performance.

The Town and The Fighter. Both good movies in general, but also both good Massachusetts movies. There is a strange small surge in Massachusetts movies these days.

Love and Other Drugs. Not a good movie, but interesting because it was almost soft-core pornography attached to a movie that was little better than disease-of-the-week with good actors. It seems like the easy access to pornography on the web is pushing movies toward being more explicit when it comes to showing sex.

On to 2011!



I’ve noticed that I have a bias toward complexity. I tend to try to look at problems from all the angles I can think of. Most problems are complex from at least some points of view; otherwise, they would not be problems at all. Looking at problems from all angles encourages a focus on their complex aspects rather than their simple ones.

I do profoundly believe H.L. Mencken’s classic quote: “For every complex problem, there is a solution that is simple, neat, and wrong.” For any problem, it’s very tempting to shear away the complexity and push forward with a solution that solves the simpler part. Unfortunately solving the simpler part of the problem tends to make the complex part both worse and harder to solve later.

This is a common problem in programming. I think it is the primary reason that programs become harder to maintain over time. It is very hard to keep a focus on solving complex problems rather than ignoring the complexity in order to solve a simpler problem. This is also a common problem in politics, and I’m sure we can all find our favorite examples there.

At the same time, I’ve come to realize that focusing too much on complexity is a different and more subtle trap. It encourages you to focus on the specific issues rather than the general ones. Sometimes a complex problem can be solved by solving a different, larger, problem. Sometimes you need to take a step back. The trick is to not ignore the complexity, but to be open to the possibility that it simple doesn’t matter.

When I was younger, I always felt that Alexander cheated when he simply cut the Gordian Knot. He didn’t actually solve the problem, and indeed I think the analogy is often used poorly, to suggest that it’s somehow smarter to not solve the problem. However, I’ve slowly come to realize that there is a good use of the analogy. I don’t know whether Alexander’s solution was a good one; he didn’t live long enough to prove it one way or another. But there are times when that is the right approach.

I apologize for the abstract nature of this post. I’ve been thinking of this in the context of working on Go. I think that working on the project has helped me a lot in terms of looking for the larger simplicity without ignoring the real complexity.

Comments (1)

« Previous entries Next Page » Next Page »