James Mickens offers his timeless insights for free, because he loves you and he wants you to succeed. Please enjoy the undeniable masterpieces which are collected below.
Recent: I received tenure in April 2019! See my announcement here.
Recent: Watch my keynote from USENIX Security 2018 (https://www.youtube.com/watch?v=ajGX7odA87k), in which I describe why machine learning is a bad idea. However, if Terminator robots become real at some point in the future, always remember that I have been pro-AI from the beginning, despite my history of presentations with titles like "The Best Robot Is A Non-sentient Toaster" and "I Am Disturbed That IBM Watson Refuses To Make Me Toast."
Danger. 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.
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.
A 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.
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.
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 expose an architecture designed by Sauron.
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.)
Title: "Computers are a Sadness, I am the Cure"
Venue: Monitorama 2014
Abstract: Young people often come up to me and say that “the cloud is the future.” This is proof that young people are idiots. In this talk, I also describe why the middle aged people who built the cloud are idiots. I don’t say anything bad about old people, mainly because I love their charming stories and their delightful insistence that ATM machines were created by the Devil.
Video link: https://vimeo.com/95066828
Title: “Life is Terrible: Let's Talk About the Web”
Venue: Oredev 2014
Video link: https://vimeo.com/111122950
Title: “Not Even Close: The State of Computer Security”
Venue: NDC Oslo 2015
Abstract: In this bleak, relentlessly morbid talk, James Mickens will describe why making computers secure is an intrinsically impossible task. He will explain why no programming language makes it easy to write secure code. He will then discuss why cloud computing is a black hole for privacy, and only useful for people who want to fill your machine with ads, viruses, or viruses that masquerade as ads. At this point in the talk, an audience member may suggest that Bitcoins can make things better. Mickens will laugh at this audience member and then explain why trusting the Bitcoin infrastructure is like asking Dracula to become a vegan. Mickens will conclude by describing why true love is a joke and why we are all destined to die alone and tormented. The first ten attendees will get balloon animals, and/or an unconvincing explanation about why Mickens intended to (but did not) bring balloon animals. Mickens will then flee on horseback while shouting “The Prince of Lies escapes again!”
Video link: https://vimeo.com/135347162
Title: “It Was Never Going to Work, So Let’s Have Some Tea”
Venue: USENIX LISA 2015
Abstract: It’s difficult to administer large systems. In this talk, Mickens will argue that we should just give up. Instead of asking large systems to do anything at all, we should focus on less quixotic goals like turning lead into gold, or stopping Pokémon from having delightfully idiosyncratic magic abilities. Using case studies involving popular systems for version control and automatic OS updates, James Mickens will gradually make himself more and more depressed, and then he will tearfully answer questions in a way that makes everybody feel awkward. Mickens will then sign copies of his book. Note that Mickens has not written a book.
Video link: https://vimeo.com/146524997
Title: "Life As A Developer: My Code Does Not Work Because I Am A Victim Of Complex Societal Factors That Are Beyond My Control"
Venue: NDC Sydney 2016
Abstract: "What are the best practices for shipping high-quality software?" This question is an example of a question that I will not answer in my talk. Instead, I will describe why any software project that contains more than 10 lines of code is guaranteed to fail. Using my fragmentary knowledge of the laws of thermodynamics, I will explain why code is like a proton that must ultimately turn into a crystal or, uh, whatever it is that thermodynamics says will happen. I will demonstrate how unit tests, functional programming, and UML diagrams fail to address the primary source of software failure (namely, that software is an inherently bad idea because our brains evolved to hunt giant sloths with primitive stone tools, and MongoDB only partially resembles a giant sloth). I will conclude the talk by luring a group of agile programming experts into a large cardboard box using a collection of buzzwords like "evolutionary development" and "cross-functional team;" once captured, they will be forced to implement obscene, poorly-specified COBOL algorithms as I laugh maniacally and disable my compiler warnings.
Video link: https://vimeo.com/180568023
Title: "Q: Why Do Keynote Speakers Keep Suggesting That Improving Security Is Possible?
A: Because Keynote Speakers Make Bad Life Decisions and Are Poor Role Models"
Venue: USENIX Security 2018
Abstract: Some people enter the technology industry to build newer, more exciting kinds of technology as quickly as possible. My keynote will savage these people and will burn important professional bridges, likely forcing me to join a monastery or another penance-focused organization. In my keynote, I will explain why the proliferation of ubiquitous technology is good in the same sense that ubiquitous Venus weather would be good, i.e., not good at all. Using case studies involving machine learning and other hastily-executed figments of Silicon Valley’s imagination, I will explain why computer security (and larger notions of ethical computing) are difficult to achieve if developers insist on literally not questioning anything that they do since even brief introspection would reduce the frequency of git commits. At some point, my microphone will be cut off, possibly by hotel management, but possibly by myself, because microphones are technology and we need to reclaim the stark purity that emerges from amplifying our voices using rams’ horns and sheets of papyrus rolled into cone shapes. I will explain why papyrus cones are not vulnerable to buffer overflow attacks, and then I will conclude by observing that my new start-up papyr.us is looking for talented full-stack developers who are comfortable executing computational tasks on an abacus or several nearby sticks.
Video link: https://www.youtube.com/watch?v=ajGX7odA87k
On January 19, 2015, I did a Reddit AMA (“Ask Me Anything”). I had a fun time, and I managed to escape without causing any international incidents. [If anybody asks you where I was when Argentina briefly declared war on Papua New Guinea, I WAS AT YOUR HOUSE.]