At some level all of us are virtuous, powerful and wise.
– Seth Godin in Linchpin

Heroes have superpowers. In many ways, heroes are defined by their superpowers. The good news is, as Seth Godin tells us, superpowers are everywhere. The more sobering news is that they’re not as glamorous as in the movies (probably closer to the gritty-reboot recent Batman movies than anything else). The perhaps not-so-good news is that superpowers don’t come easy.

The hacker culture in particular has a curious fascination with superheroes and superpowers. That’s why I’m writing these distinctly self-help-like posts on what is ostensibly a technology blog. I hope it’s justifiable why – we build entire worlds and universes out of pure thought. This isn’t Tetris we’re playing here, it’s full blown Matrix-style world creation. We have no dearth of people to look upto in awe and reverence – Turing, von Neumann, Ada Lovelace, Kernighan and Ritchie, Ken Thompson, Rob Pike, Linus Torvalds, Jamie Zawinski, Richard Stallman, hell even Bill Gates and Steve Jobs (reality distortion field anyone?) – they’ve got mad skills as they say. They’re superstars, sure, but more importantly they’re superheroes with superpowers, which is to say they don’t just wow audiences on a regular basis – they get stuff done. Note that this list is necessarily incomplete. Heroes are made, not born, and thanks to the awesome depth and breadth of the technology industry new heroes are made each day.

The coolest thing though, is not that these superheroes exist, but that their powers are out there for the taking. What they know about computing, we can learn (to shamelessly paraphrase Alan Perlis and SICP). As Joe Armstrong one of the creators of Erlang tells us, “Then buy a decent book and type in the programs by hand. One at a time thinking as you go.” It really is that easy.

Ok, I lied, no it’s not. It’s going to take you ten years to get anywhere near superpower status (10000 hours to be more precise). And at some point it’s probably going to hurt like hell. At some point you’re actually going to have to use your brain and spend hours and hours thinking. But seriously, would rather spend ten years doing something that imbues you with superpowers or would you spend ten years doing something that leaves you the way you are, just older? Your choice.

Now, of course superpowers aren’t limited to hackerdom. Jeff Bezos, Tony Hsieh and Derek Sivers for example have the amazing superpower of figuring out what people want and giving it to them. Jonathan Ive has design superpowers a lot of people would kill for. Stephen King, Haruki Murakami and Stephen Pressfield have writing superpowers I would love to have someday.

For me, my superpowers equal absolutely zero. Nada. Zip. Squat. I mean just look at my Github page for example. And I’ve already been playing this game for four years. As annoying as that may be, it’s ok. Luckily for me lack of superpowers is a temporary state of being. After all, I have ten years ahead of me to get it right.


I have an awful tendency to go back and reread things I find interesting. Mostly they’re articles on the web but sometimes they’ll be chapters in books or even scenes in novels. Not entirely sure why, but maybe it’s because I sense (or hope) that there is an important lesson to be learned from whatever I’m reading. if I read it over and over enough times maybe I’ll figure out what that lesson is. Something I’ve been rereading in the last few days is an article from 2008 called “Done and Gets Things Smart” by Steve Yegge. It’s partially about hiring and becoming a better programmer. But it’s also about heroes – people who are genuinely “superhumanly godlike”. Not superhuman in the sense that they can fly or have laser vision (though that would certainly qualify) but rather in the sense that they seem to be just like you and me, except that they get amazing things done, often in amazing quantities.

One thing you learn growing up as a child is that all people are equal. It’s a fundamental tenet of our society, written into democratic Constitutions around the world. But gradually we come to realize that’s not strictly true. We don’t mean equal in literal, definite terms. I think what we mean is equal in terms of potential and basic humanity. What we do with that potential is extremely varied. We may be created equal, but we don’t stay equal for every long. It’s becoming increasingly obvious to me that some of us manage to leverage and build upon this potential to become seemingly superhuman while most of us don’t (if we all did everyone would be superhuman, which is to say no one would be superhuman because superhuman would be the new normal).

For me personally, superhuman doesn’t mean becoming President of a country or the richest man on the earth or the fastest runner or the strongest weightlifter. Not to say that all those aren’t tremendous accomplishments, but the breed of superhuman I’m looking for right now are superhumanly creative. I’m interested in people who seem to be capable of building incredible systems, creating beautiful works of art, writing powerful pieces of literature. And many of them do it not just once or twice, but over and over again. The good news is that these people seem to be everywhere, if we just care to look. With the Internet they’re even easier to find and learn from.

Steve Yegge talks about incredible engineers in his post – people who almost single-handedly built and maintained a strong engineering culture in their respective organizations. Then there are people like Charlie Stross – a British author who seems to keep churning out critically aclaimed science fiction novels. There’s Cal Newport – a former graduate student at MIT’s computer science department while being a popular blogger as well as a best selling non-fiction author. Recently I read about Don Stewart, another graduate student who has an impressive list of projects in addition to being a very active member of the Haskell community. And I’m not even talking about the famous superstars that we all know and hear about.

How do they all do it? I don’t know for certain, but there seem to some common trends – the main one being what I call “maniacal consistency”. It’s a deep focus on a small set of activities (writing novels, doing research), but backed up by a ironclad habit that ensures that they get something done everyday. The habit part is important because you can’t sustain pure willpower for very long. Secondly they all seem to do something else on the side – they’re never just doing one thing. I’m not entirely sure why that’s important, maybe because you need a release and a distraction to keep peak performance on your day job. The final thing I’ve noticed is that such people are generally not obvious – they’re not bragging about how much they do and they’re not bitching and moaning about how hard they have to work, probably because they’re busy getting stuff done.

I’m deeply fascinated by these superhuman creators because I think they’re great examples to learn from, especially when they’re people in my field. Coming back to the question of equality I’ve been growing to think that it’s a mistake to squander our potential, it feels wrong not to be the best that we can be. The people I talked about are making the most of their potential – they’re making the world a better, more interesting place and having a good time while they’re at it. That sounds like a pretty good way to live life.

The Age of the Maker is here

Last week a friend sent me a link to the world’s first sub-$1000 PCR machine. PCR stands for Polymerase Chain Reaction, it’s a method of replicating a section of DNA it billions of times. This means you can now study the building blocks of life to your hearts content, in your basement, for less than the price of a top-of-the-line computer. As the announcement says: DNA is now DIY.

OpenPCR joins a list of recent technological milestones including 3D printing, cheap embedded microcontrollers, ubiquitous computing and broadband Internet connections. The technological scene is supported by social phenomena like the open source movement, coworking and hacker spaces and organizations like Kiva and Kickstarter. The rise of increasingly powerful DIY technology and the surrounding social systems is pushing us toward what can best be described as the Age of the Maker.

Going from idea or innovation to self-sustaining product doesn’t require large factories or upfront investments anymore. As projects like OpenPCR and Coffee Joulies show it’s feasible to create a truly novel, popular product combining nothing more than talented, hard-working creators and willing customers. I’d like to believe that this is the beginning of a new industrial age, one that produces a similar improvement in the quality of human life without many of the bad side-effects of the last one. This revolution focuses on the individual and the small team rather on the factory. Sure, there are businesses and there is manufacturing, but the point of it all is not just profit. Profit is important, but a lot of people and groups I just mentioned are doing it largely because it’s fun and exciting.

Technology and the means of production are becoming increasingly democratic. What can be accomplished by small groups of focussed individuals leveraging modern technology is truly amazing. The software industry has already shown that small groups of people can create products and services that change the world. Today’s generation of makers and hackers are taking that a step further – showing that such world changing innovation doesn’t have to be limited to software.

I’m not an economist, but I’d argue that in many ways we’re seeing a reinvention of capitalism. Financial capital doesn’t have to be concentrated in the hands of a few – it can be widely distributed among the masses – millions of customers around the world. What is needed are people with ideas and skills that can bring that capital together just-in-time to create a product – the makers. And we now have the services required to bring the capital in (the Internet, Kickstarter, Kiva) and the cheap infrastructure needed to get the product out (UPS, FedEx, etc.). With OpenPCR, Arduinos, 3D printers and the we’re democratizing and distributing the means of production.

If you’re someone who likes building cool, interesting things there has never been a better time to be alive. The Industrial Revolution brought about mass production and cheap commoditized goods. But it also decimated independent artisans and craftsmen. Today we’re just getting ready to put all the manufacturing power of modern industrializaton back in the hands of individuals with ideas and skills. With today’s technology Leonardo da Vinci may have been able to build his flying machines.

What have you made today?

The cloud is not secure

We’re getting closer and closer to an age where our data is separate from the machines that we use to manipulate and interact with it. A stepping stone to that future is the “cloud” – a remote, server-based repository of your information that can be accessed by a variety of applications and interfaces. In some ways the cloud has been around since the beginning of computing (dumb terminals plugging into mainframes) but the new, shiny, consumer cloud is both similar and indifferent. And there are many incarnations.

Apple’s iCloud is a complex, powerful solution for remotely storing your data and making it accessible to your apps whether on any of your devices. A simpler solution is Dropbox which syncs your files between devices (and offers a decent web interface). In recent weeks Dropbox has become quite controversial. Dropbox had a serious security breach that allowed people to log into any account using any password. It was a very serious flaw and a serious oversight on Dropbox’s part. They’re currently being sued over the matter. More recently they made an important addition to their terms of service which gives them broad-reaching rights over your data. However they have made efforts to make it clear that they have no interests in rights greater than what they need to run the service.

While services like Dropbox are great and convenient (and probably have the user’s best interest at heart) one thing needs to be made very clear: The cloud is not secure. Having a strong password is no guarantee of security. Putting copyright licenses on your work is no guarantee of security if the TOS give the hosting company rights to it. It is safest to assume that at some point in the near future any data you keep on a cloud storage service can and will be compromised. Under “compromise” I include perfectly legal government seizures as well.

The only data that I put in Dropbox is stuff that I will be making public anyways – copies of school projects, essays or reports that I intend for people to see and distribute. I would never put anything I consider even remotely private in the hands of a service like Dropbox. You should only put private, personal data in the cloud if you first encrypt it locally with a proven encryption algorithm and the encryption algorithm is implemented by an open source, trusted piece of software. The open source is important otherwise there is no way to know that there isn’t a backdoor of some sort. To access the data you should download the encrypted version and then decrypt locally. Anything unencrypted that goes over the wire (or the air) is probably wide open to the world to see. For most people this already includes their email and Facebook data.

I keep my online backups in an encrypted Amazon S3 bucket. I also keep some code on a remote server and make sure to connect over SSH. However, I also don’t keep things like passwords, PINs and account numbers in any written form. The only really secure data is data that doesn’t exist. That being said, modern encryption techniques are still a pretty good defense in most cases. In this age of the cloud you should keep in mind that any data you put unencrypted on someone else’s servers (whether they be files in Dropbox or photos on Facebook) is essentially public.

Three types of work

As a starting graduate student I’ve been thinking of what my work habits should be to get the most out of graduate school. I certainly want to put in as much time as I can but I also don’t want to be spending all day and night and weekends working. Graduate school is a really bad misnomer — it’s not really school because my main goal is to do research and produce something novel. However, it’s not like a real job either because my timings are more flexible and for the first few years I will be taking classes (and exams and doing projects). Personally I’m going to view it as a research job where I get to take classes to learn what I need.

Last night I was listening to Derek Sivers being interviewed about his work and life. Derek Sivers is a musician-turned-businessman-turned-millionaire who has a very minimalist philosophy on life and work. I suggest you listen to the interview and check out his blog. It’ll be an hour (or two) well spent. Listening to the interview helped crystallize some of the thoughts regarding work and productivity that have been swirling in my mind for the last few weeks.

Starting from the assumption that you know what you want to do with your life (computer science research for me), there are three categories that your work can fall into:

The first is work that is absolutely core to your goal and that you love doing. For me this is writing code, building systems and observing their properties and behaviors.  This is the main reason I’m in graduate school. Though I love doing it, it is also important that this is what I get paid to do, this is what sustains me in a quite literal way. It is important enough that I’ve built my life so that I can get paid to do it full time. If what you consider to be your core work is not the same as what sustains you, then you should probably be looking to change that.

The second type of work is work that is not absolutely core to your goal but you enjoy anyway. For me this is speaking and giving presentations about my work. Writing blogs and papers also falls in this category (not all the time, but often enough). I think (and hope) that being a TA and taking classes will also go here. This is all stuff that is important and I generally like doing it, but it comes second to my core work. I won’t have papers to write or conferences to go to if I don’t get the research done first.

The third type of work is stuff that you don’t enjoy, is not core to your goals, but needs to get done anyway. For me this includes paperwork I need to do, forms to fill up, bills to pay, taxes to file and so on. This is stuff that is not core to my work at all, but I still need to get it done or there will be problems down the road. It makes more sense for me to do this stuff up front and get it out of the way than to let it sit until it becomes a big issue.

Anything that does not fall in this category is not work even if it seems like “work”. Replying to email or clearing out my list of RSS feeds is not work, no matter how much interesting information might come through. Agonizing over which Macbook to get is also not work even if I will be using it to get work done later. Reading books or listening to music or going for walks also do not fall into the “work” category. This does not mean that they are not important, it just means that they aren’t central to what I want to be doing with my life right now.

What this means is that I want to maximize my time (and energy) doing work while leaving enough space for non-work things so that I don’t burn out, be miserable or go crazy. I have to maximize investment in work types I and II (because they have the greatest return) while not procrastinating on type III (because that needs to get done). It also means that for my non-work things I need to decide what is actually important to me and helps me re-energize from work. I’d rather be reading the Hitchhiker’s Guide to the Galaxy than catching up on Slashdot. I’d rather be calling home than hitting delete in my inbox. At the same time, I think it’s important to spend some time just lying in the sun and letting the world go by. I’m not entirely sure how this idea of work and non-work will affect my lifestyle and habits but I think it’s a good set of guidelines to start off with.