Our research

New and notable


Computers are simple: Let me explain them

By James Mickens, researcher in the Distributed Systems group, Redmond Lab

James MickensDanger. Adventure. Cryptic error messages. These are some of the things that inspired me to become a computer scientist. I’ve been a legendary hacker for 98% of my life, but there was a brief period when I did not possess the sum totality of human knowledge. In those formative days, I made mistakes, just like you. I wandered the streets, coding for cheap thrills, dereferencing NULL pointers in front of the police and daring them to arrest me. I used exponential running time algorithms when linear alternatives existed, because you can still raise venture capital for an app that only does half of what it should do before it crashes and wedges your entire phone. I proved that P equals NP, and then I gave the proof to an extra from “Blade Runner” in exchange for what I later

discovered was not, in fact, a lock of Nicolas Cage’s hair. I used object-oriented programming languages but only called static methods because abstraction is oppression and only The Man uses virtual function tables. I’ve lived a thousand lives, and I have the carpal tunnel syndrome to prove it.

When USENIX asked me to write about my experiences as a computer scientist, I immediately accepted the opportunity to bemoan the state of the world and settle old grudges with ancient enemies. I wrote six articles for USENIX, and these articles collectively form a breathtaking magnum opus on science, philosophy, and the reasons why JavaScript is horrible. Like a petty, sarcastic version of Neil deGrasse Tyson, I will explain the universe to you. Let’s science together, for America and for the children.

This World of Ours

Wherein it is revealed that 1024-bit keys cannot prevent people from sending their credit card numbers to Nigerian princes. (I think that 1025-bit keys might solve the problem, but nobody listens to my common-sense advice.)
Read more

The Night Watch

Even as we speak, systems programmers are doing pointer arithmetic so that children and artists can pretend that their x86 chips do not directly expose an architecture designed by Sauron.
Read more

The Saddest Moment

Using linear algebra and a shot-by-shot analysis of “Pulp Fiction,” I prove that any distributed system will be broken 93% of the time. In the remaining 7% of the time, the system will respond to your requests, but it will hang out at skateboard parks and listen to disreputable music.
Read more

Hornet’s Nest

Many people say that mobile devices are the future. Apparently, the future is composed of devices that are shaped like optimally droppable objects, and whose sole purpose is to hold a charge for 17 minutes before transforming into a cellphone-sized pocket stone.
Read more

The Slow Winter

It's difficult to make transistors any smaller because nature hates us and quantum mechanics are stealing our voltage. Perhaps we should return to the abacus; sometimes, the old ways are the best ways.
Read more

To Wash It All Away

Network-accessible applications seemed like a good idea. Then somebody invented JavaScript, HTML, and CSS. THE DREAM BECAME A NIGHTMARE. Unless you like buggy, standards-hating web browsers, in which case, hey, cool dream.
Read more

Try it. Read it. Watch it.