Category Archives: tech


How large is 52!?

This Thanksgiving I was hanging out with my little cousin, who was dealing cards from a standard 52 card deck. I asked her the question:

“How many times could you deal the whole deck and see a unique order of cards – different than every other time you dealt the deck in the past?”

Or to put it another way,

“How many unique deals (‘permutations’) of all 52 cards are there?”

If you’ve done any number theory (or looked at the title of the post), you know the answer – 52! (Aka 52 factorial. I would be equally excited about 52 being the answer, however – that would be very strange and interesting)

I looked up ways to try to grok that number online, and got variations of the same answer, which were pretty un-explainable to my cousin. So instead I’ve decided to make a try myself.

Imagine you stopped everything you were doing, and for the rest of your life, every second of your life, night and day, you dealt a new, magically shuffled hand of all 52 cards. This magic makes it so that you’ll never get a hand that you’ve seen before. You want to know how many unique deals there are, and have a deep distrust of mathematicians – you need to see it with your own eyes.

You first have a hand that happens to start with the Jack of Clubs, then the Jack of Hearts, then the Jack of Spades and then the 49 other cards. “Hmm, interesting one!” You think… to yourself, as you probably don’t have many friends if this is your hobby.

The next second, you have a hand that starts with the Ace of Hearts, then has the 51 other cards.

You keep going, and by the next week you’re pretty bored. When am I going to be done? That Tuesday you see a deal which has the Jack of Hearts, then the Jack of Clubs, then the Jack of Spades and all the rest of the cards in the exact same position as you got in the first deal.

“Wow, that’s super interesting, and super close to the first hand, but still a new hand!” You exclaim to a room full of empty pizza boxes, and at this point imaginary friends as you haven’t slept in a week.

You realize you’ll need some help to keep doing this. So you manage to convince every other person on earth, all 7 Billion of them, to do it with you, every second of every day. You must figure this out! For some reason you aren’t able to convince the mathematicians to work on your project, but again you’ve never been big fans of them anyways.

Still, things aren’t progressing fast enough. You decide to invent a time machine, and a Fountain of Youth, and everyone goes back to the beginning of the universe, starting again with all 7 Billion people all dealing hands of cards, all day, every day, once a second per person. You think this will certainly work, and then you’ll get to see dinosaurs! There are a lot of seconds between now and the beginning of the universe – you asked an Astronomer and they told you there were 4×10^27 seconds since then, or 4 followed by 17 zeros. The mathematicians come with you, but still refuse to help deal cards. They’re just in it to see dinosaurs, they say. One shouts: “Good luck with your little project!” and they all giggle.

This makes you a bit uneasy, but you don’t have time for their antics, and quickly forget them as you return to dealing cards.

The Big Bang happens, and the universe expands. The galaxies are formed and the first stars are created and explode, seeding the cosmos with iron and other heavy elements. The solar system is formed, and ever so slowly the planets. Earth cools, an ocean forms and life is sparked. All the while, 7 billion people, every day, all day, every second, are dealing unique hands of cards. Dinosaurs roam the earth, then are wiped out. Many eons ago you’ve become the most hated person in existence for creating this project and convincing everyone to join you. Time keeps passing and people keep dealing cards until we arrive back at today’s date.

You look back at all the progress you’ve made. Wow! We’ve been able to do 3×10^27th combinations, that’s amazing! That’s a 3 followed by 27 zeros. So many different deals of the deck, all unique.

“We must be close!”, you say confidently to the nearest exhausted card-flipping humans. They look at you with pure hatred in their eyes. You wish that maybe you had just tried to ask a mathematician in the first place to figure out if it’s even possible to find all the unique deals (the mathematicians call these ‘permutations’).

The smartest and most kind mathematician taps you on the shoulder. You asked her to chart the progress you’ve been making towards collecting all the different possibilities, since she didn’t seem to giggle as hard as the others when she walked by and saw you dealing cards. She hands you a chart.

“What is this, some kind of sick joke?” You demand, enraged as she’s handed you a chart of a progress bar that’s blank.

“We have to time travel again to the beginning of the universe… you need more time to finish…” She cautiously suggests.

“Okay, well, fine. How many more times?” You shoot back, still furious.

“10^40 times…” There’s a pause as you stare blankly at her.

“Let me say the number”, she says, “I don’t think that scientific notation really hit home for you… It’s: Three, zero, zero, zero, zero, zero, zero… “

“Just write it down”, you cut her off, muttering under your breath about how you never really liked mathematicians anyways.

She writes it on a piece of paper, explaining: “You’ll have to continue this experiment with all 7 billion people, repeatedly returning to the beginning of the universe to get more seconds to deal cards.”

“You’ll have to travel back in time this many times”, she repeats confidently, with a note of pity in her voice.

The slip of paper says: “30,000,000,000,000,000,000,000,000,000,000,000,000,000 times”.

Your knees give out as you slump to the floor.

In the depths of despair, you look up at the mathematician. She smiles.

“You know, you could have just asked us mathematicians in the beginning. The number of combinations is 52!, which is just 52*51*50…*3*2*1. This equals about 8×10^67, or 8 with 67 zeroes after it.”

You nod, feeling relieved that you know the answer. Then you look up. You see 7 billion people, all of whom have just abandoned their work and looking strangely at you. You don’t like their look. As they start standing up and moving towards you, you run towards your time machine, setting it to transport only yourself to the Jurassic period.

“I should have trusted the mathematicians …. !” Your voice fades as you begin the time travel. You’re still not sure you understand how large numbers or probability works, but you think it’s wise to take your chances with the terrible lizards instead.

In the background, the mathematicians start giggling again.


  • Age of universe = 4×10^17
  • 7,000,000,000 = 7×10^9
  • 52! = 8×10^67
  • 52! / 7 Billion / age of universe in seconds = 3×10^40
green politics tech

Three ways to fight climate change that Bret Victor missed

Bret Victor just put out a great post about various projects one could work on as a technologist to help with the climate crisis. Many of these are great suggestions for an individual’s ~5 year project, but it might be hard to see how a normal engineer working in the industry could start working on climate change problems.

I’m here to show that you can help fight climate change even if starting a clean tech company or working on a new programming language is out of reach.

Up and to the right, faster and faster

Up and to the right, faster and faster

The three actions seem small, but given our industry’s future trajectory (up and to the right, of course), these can have a huge compound effect into the future:

  1. Choose carbon-efficient server hosting, from the start
  2. Change tech culture around climate change from passive to active
  3. Work for a company tackling an aspect of the climate challenge

We often see climate change as something for other industries to handle – after all, those other industries are moving crops or making steel or feeding cows and we are “just moving bits”. How bad can moving bits be for the environment? Aren’t we already doing well?

It’s true that the tech industry is less carbon-intensive than other industries. However, we are only as “green” as the power our servers draw. While some companies have spent massive efforts on clean energy (kudos, Google!), no one expects or should reasonably expect companies to work outside their core competency.

Luckily for the environment, the more accurately carbon is priced, the better the tech industry does as a whole (see item #2), and so the entire tech industry should be united in working for a solution to climate change.

1) Use carbon-efficient server hosting

Again, we don’t need to smelt aluminum, move wheat, or drive a tractor to do our jobs. But if cloud computing were a country, it would rank 6th in the world for energy usage. This gives us an outsized impact on the energy sector, about the same size as Germany!

cloud & germany

If tech demands clean energy, utilities will have to start providing the clean option, and economies of scale and political barriers start to tip in favor of non-carbon energy sources.

If you’re in one of the green bubbles in the image below, skip to the next section, you’re doing great. However most of us when starting a business just opt for AWS, and while they have some efforts to improve their carbon footprint, there’s little transparency.

If you do use AWS, set your default to us-west-2/Oregon or another carbon-neutral datacenter. At least for the US, us-west-2 has consistently been the cheapest datacenter so this also helps your business. Of course you may need to use some east-coast centers for web latency, but it makes complete sense that data processing should be done with cheap, water-powered, renewable energy.

When you have 100% carbon-neutral servers, your salespeople will happily use this as a selling point, another positive impact to your business. Go ask them how useful that point would be – just send a single email

Some things you personally can do:

  • Use Google or Rackspace to host your servers if it’s easy or you’re starting out. AWS is pretty pricey these days, so it might be a good move for the future
  • If using AWS, use one of the carbon-neutral datacenters
  • Ask your sales team how effective “our servers are 100% carbon neutral” is as a selling point
  • Bug your AWS rep to release their plans for achieving sustainability goals – they won’t continue the program if they think no one is watching, and they’ve been very secretive so far
  • If you work at these companies, start pushing internally for cleaner power:
    • Oracle
    • EBay
    • HP
    • IBM
    • Microsoft

    At the next all-hands, submit a question: “How is X working to reduce the carbon content of our electricity?”. Don’t be appeased by promises to reduce carbon footprints of campus buildings, etc – these are not as effective at changing the energy sector, which is the most important contributor to climate change.

2) Change the tech industry from politically passive on climate change to politically active

Dirty energy allows the old industries (which we often are pushing to change) a free ride at the expense of our future world. For instance, the negative externality of emissions pollution from a gas-powered delivery truck compared to an electric-powered truck (or drone!) isn’t yet priced into the market.

If carbon were correctly priced, this will happen sooner

If carbon were correctly priced, this will happen sooner

A quick list of the technologies which face headwinds without a carbon price:

  • LyftLine and UberPool vs taxis and cars
  • Electric cars (Tesla, Nissan Leaf, BMW i-series) vs gas cars
  • Cloud computing vs self-hosted computing
  • Amazon’s delivery vs Walmart stores
  • Airbnb using unused rooms over excess capacity built into hotels for peak times
  • Netflix vs Blockbuster (obviously Netflix is stronger than the headwinds…)
  • Nest vs traditional thermostats
  • Obviously any green tech targeting energy production like OPower, Mosaic, SolarCity, etc

We’ve united to fight for Net Neutrality, but we haven’t lobbied as hard to end carbon-emission corporate welfare. Again, in this case I’m not even talking about the direct ~$10 billion/year subsidies of fossil fuels in the US alone, but just the invisible negative externality that we’ll all have to pay down the road for each gallon of gas burned and each ton of coal sent up a chimney.

Obligatory renewable energy picture

Obligatory renewable energy image

One of the issues holding back cleaner power for our datacenters is a lack of renewable energy available where we need to place datacenters. I’m looking at you, mid-atlantic states

Some tech companies are spending millions building out their own renewable power because local utilities are fighting against even providing clean energy as an option. Only this year, after years of lobbying, has Google succeeded in changing policy in North Carolina. Our industry should have the ability to purchase the cleaner power we want – reactionary politics shouldn’t stop us from paying for something that is actively better for the community.

So how do we change the culture of tech?

For one – fight the idea that companies and employees should stay apolitical on climate change issues. I believe that companies should not try to support democrats over republicans (or vice versa, etc) or even speak out on less economically focused issues such as gun rights. However, that climate change exists and will be damaging is not a scientifically seriously debated phenomenon, and the health of the economy and the climate is important for the well being of all tech companies.

Do you want your company to thrive for decades? A global economy under pressure, spending billions to fix basic infrastructure issues from climate change is not the best environment to grow a business in. Let’s start acting like the future of the economy matters to our industry, simply because it’s the truth.

So if we’re united, what can we actually do to change policy?

You may not believe it, but politicians listen to us. Yes, the big tech companies have lobbyists with cash briefcases on Capitol Hill and that helps, but there are also a lot of small donations which come from the tech industry employees and executives.

Less cynically, politicians also listen to us because they believe we have some sort of innovation “secret sauce” that keeps American competition alive. This might be true, or it might have been something ad-libbed to get funding from DARPA at some point and everyone’s in on the joke. Doesn’t matter: they believe it!

DARPA loves the tech industry's Sriracha

DARPA loves the tech industry’s Sriracha

  • On Davos/TED/Atlantic panels, talk about how carbon pricing would help your innovative business
  • At Obama fundraising events, ask awkwardly-well-researched questions on renewable energy standards
  • If you happen to rub shoulders with the Washington DC power crowd, chit-chat about Tesla or clean energy, and make it clear that the tech industry expects carbon emissions to be fairly priced, soon

They’ll trust that you can see your way around corners that they can’t, and will start thinking about how they’ll transition their own constituencies to the future that we in the tech industry already take for granted.

If you personally don’t have that kind of access, framing carbon emission pricing as welfare to fossil fuel companies is sure to score a point with your annoyingly-political uncle Joe at the Thanksgiving table. Also, I’m sure you have friends who one day will be a part of the power structure in DC – make sure they understand this idea!

3) Work for a company which is trying to solve the problem

You, personally, have skills which can be literally impossible to purchase. While Bret Victor lays out a number of new projects to tackle, there are also tons of existing organizations out there working on solutions to the crisis. Let’s face it – the job you currently have is unlikely to be your last job. Why not use your skills in the next job to help tackle the climate problem?

Obligatory picture of Elon Musk

Obligatory picture of Elon Musk

Some examples (after 5 minutes of Googling) of places to apply your skills:

You may have to accept a lower paycheck, but I’d argue that the intangible benefits are worth it. You have the means to work on one of the most important projects in human history; consider this an invitation to join the project.

All three points have some common elements:

  • Tackling climate change is good business for the tech industry
  • Your company can help, even if it isn’t directly working on cleantech, and even if you’re only a regular employee
  • There are plenty of ways to earn your paycheck fixing climate issues. You don’t have to try to squeeze it in as a side project

Of course, there is always donating and side projects / volunteering. Those are great options, but make sure you’re actually being effective when doing so! Otherwise, enjoy the rest of your Thanksgiving, thankful for the opportunities you have to not just make a living, but also to make an impact on a crisis critical to solve for the well-being of centuries of human life.

Climate protests happening around the world on November 28th, 2015

Climate protests happening around the world on November 28th, 2015

politics tech

Schimmy’s Hierarchy of Jobs

Imagine your ideal job. No, really – give it a shot…

I’ll bet more than a few of the people reading have imagined being a scuba instructor in the caribbean, or just being paid to play Super Smash (which I still can’t believe is now real job – I love the internet!). While it might be an improvement from your current position, I believe the job you imagined wouldn’t keep you happy for long.


After three full-time jobs and five years out of college, I’ve come to (what I believe are) some truths to what makes a job worthwhile. These truths were built up after looking in the mirror in the morning and realizing that what I was doing that day was not what I wanted to be doing if it was the last day of my life. When you find yourself thinking that, the response is not to immediately leave your job, but instead to reflect on why you feel that way. Ultimately, why are you getting out of bed in the morning to go to work?

The Hierarchy:

I present “Schimmy’s Hierarchy of Work Needs”, a guide to answer this question:
Schimmy's hierarchy of work needs

#1: Basic

The first reason why you get out of bed is obvious: having a roof over your head and food on your plate is a responsibility you have to your family and to yourself. When sick, you need the money to see a doctor. Also buying clothes is a necessity, at least in other cities where clothing is less optional than in San Francisco. You could categorize all of these needs as ‘Basic’.

That’s fine, but as we can see from the movie Office Space or any number of other sources, that motivation only gets you so far. Given the choice between janitor and video game tester, I think most would choose video game tester even if it paid less – this is a signal that our model is not complete.

#2: Daily Enjoyment

The second reason you’ll get out of bed in the morning is because, hopefully, work is enjoyable in some way. Maybe your coworkers are fun to joke around with and you’ll miss the banter (pleasant coworkers), or you really want to learn golang and you enjoy a real problem to learn it with (personal growth), or you love telling your former high school bully that he uses your messaging app (status). You could categorize all of these needs as ‘Daily Enjoyment’

By now, it starts to sound a little like Maslow’s hierarchy of needs, and this connection has been noticed before. There’s been a lot of work in this area, most notably Herzberg’s Two-Factor theory. The theory splits the “Daily Enjoyment” factors into “Hygiene” and “Motivation” – a useful distinction between benefits that keep you from leaving, and benefits that cause intrinsic forward creativity and engagement. You can categorize all of the perks in Silicon Valley into these categories:


  • Amazing office
  • Delicious food
  • Ping pong table
  • Laundry
  • Shuttle bus
  • Internal tools which aren’t a pain to use
  • Standing desks


  • Hierarchy advancement / achievement rewards
  • Status (I work on the most challenging problems, or my work is used by the most people)
  • Learning opportunities
  • Enthusiastic, engaged, intelligent coworkers

However, while Herzberg put overall impact of a person’s work into the “Motivation” category, I think it deserves its own level of the hierarchy.

#3: Humanist

The third reason to get out of bed in the morning corresponds to the missing top level of the pyramid I would describe as ‘Humanist’. This level concerns the ‘meaning’ that people find in their work, the positive impact that it has on others. This focus on impact might be something which is different in our time, as when Herzberg was developing his theories (the late 1950s and early 1960s) your day job seemingly was less important to self-identity.

At this point I could describe more about what I mean, but I think you’ve already heard the descriptions of what to look for in commencement speeches and sentimental Facebook posts. Instead, I’m going to tell what not to look for.

How can you tell the fakers?

At this point, I imagine many reading this will think to themselves that their job satisfies all levels of the pyramid. After all, their company is changing the world, and making it a better place:

In that clip from the show Silicon Valley, we can see that individuals value humanistic goals in the tech industry, and companies find it important to claim they fulfill these goals. As Mike Judge shows, often the claim is shallow – only put forth to gain status.

To judge the claim for a company suggesting positive social good, there’s an easy test: would the company claim a positive social good if there were no recruiting, PR, or status gains to come of it? If the answer is no, the company is simply behaving as the mimicking actor and the claim should be ignored. A company who truly has that positive social good as a mission will, simply in stating their reason for existence, claim the social good. As examples: OPower, Stellar, Khan Academy, Mosaic, SpaceX, etc. (note that I don’t work for nor own stock in any of these companies)

Does Scientific Discovery Count?

I do have one final question: does pure scientific discovery belong at the top of this pyramid as well? For instance, pushing boundaries of current engineering (at certain divisions of Tesla, Google, Ripple, etc) seems to also provide that higher meaning.

I hesitate to add this, however, as technology is always a double-edged sword. While you may be advancing humanity’s knowledge, it may be a toss-up whether that knowledge was beneficial. There is the usual example of Oppenheimer discovering knowledge which can be used ambiguously, but also drones, Tor, cryptocurrency and even simple number theory can end up being used in ways unimagined ahead of time.


I’ll argue that, no matter how pleasant being a scuba instructor is, or how amazing it would be to play Super Smash all day, ultimately that dream job is going to lose its shine. While those jobs have satisfied the first two levels of the hierarchy, they miss the crucial tip of the pyramid. They lack the purpose that gives meaning to life, or at the very least gives meaning to the 8+ hours you spend under fluorescent lights every day. Find this last piece for yourself and getting up in the morning will be even easier, I guarantee it.


Clever (YC 12) is hiring

This one will be brief: the company I’ve been at for the last year, Clever, is hiring like crazy after getting a series B. We’re doing ambitious things in the education space: tech in schools has been very broken for a very long time, and way too much class time is wasted on logins.

We’re inviting you to help us – come join the team!

Drop me a line if you want to know more.

– Schimmy

tech Uncategorized

Music that is ironically good to code to

I was chatting with someone the other day who loved the soundtrack from TRON: Legacy. (This person is awesome, he is part of the amazing band Knower and creates their very-TRON-inspired visuals). He got a kick out of how I will sometimes put on that TRON soundtrack when I really need to crank out some code. This is ironic, as the main plot point relies on a computer-programmer protagonist getting so wrapped up with what he is doing that he ends up in the computer. I then realized that all the music I rely on for serious coding focus is just as ironic:

  1. TRON: Legacy Soundtrack (Daft Punk)
  2. The Social Network Soundtrack (Trent Reznor and Atticus Ross). Pretty obvious why this is a perfect fit, given that I’m usually listening to this while coding at a startup founded by ex-Harvard students.
  3. The soundtrack to Koyaanisqatsi. This is a little more subtle – Koyaanisqatsi is a movie with no words which is scenes (usually slow-mo or time-lapse) of the intersection between humans, technology, and the environment from the late 70s into the early 80s. The title is a Hopi word that literally translates to ‘life out of balance’, and the film generally takes a very negative outlook on the frenzied pace of technological change on humanity and ecology. If you have not seen it, I highly recommend watching. If nothing else, the images of this time of rapid industrialization and mechanization are fascinating.

I suppose I do have two artists I use to focus who are not as ironic, so for full disclosure (and to promote their amazing but weird work), I also love to work to Michal Menert and John Talabot. What about you?


meta politics tech

The Limit of Acceptable Terribleness (and coding)

This article about how awful programming is has been making the rounds, amongst my non-coding friends as well. It’s a great article, using witty analogies to describe the absurd underpinnings of the technical systems we take for granted. For instance:

“Not a single living person knows how everything in your five-year-old MacBook actually works. Why do we tell you to turn it off and on again? Because we don’t have the slightest clue what’s wrong with it, and it’s really easy to induce coma in computers and have their built-in team of automatic doctors try to figure it out for us.”

At times, it’s so true and slightly terrifying that it becomes more alarming than funny:

You can’t restart the internet. Trillions of dollars depend on a rickety cobweb of unofficial agreements and “good enough for now” code with comments like “TODO: FIX THIS IT’S A REALLY DANGEROUS HACK BUT I DON’T KNOW WHAT’S WRONG” that were written ten years ago.

Now, when reading this, you might think that we should stop the world, pay down our tech debt (what programmers call this backlog of work that we’d need to do to feel good about ourselves and sleep soundly at night), and then have a big party because the internet is Fixed! As awesome as that sounds, unfortunately you’d end up hitting The Limit Of Acceptable Terribleness (TM). That is, in any system there is a line of ‘good’ness below which people will address the problem but above which people will take shortcuts and procrastinate and generally decrease the ‘good’ness of the system. Thus, our system invariably ends up at the Limit Of Acceptable Terribleness.

That was a bit abstract, but this limit occurs in many places other than code quality. For instance, the cleanliness of an apartment will be just at this level; any messier than the Limit and a roommate will bite the bullet, tidying up and throw the gross bulging tupperware out from the back of the fridge. Above that level, the roommate will think nothing of leaving the cream cheese knife in the sink, even though the dishwasher is a few feet away.

So how is this different from a generic optimization problem? Well, it’s a subset of optimizations in which there’s sort of a ‘kink’ in the optimization, caused by an inelastic desire for the system to be ‘better’ than the Limit.

My favorite example (and one I’ll write a blog post on in the future) is commute times. People will continue to go for the cheaper house, the larger backyard, etc as long as their commute is shorter than about 2 hours. This causes a problem when you update a highway, for instance – within a decade or two, the average commute time creeps back up to what it was as more and more buy houses farther away, counting on the fast transit time. The engineers were trying to achieve shorter commute times for everyone, but hit the Limit. However, even if you could get land for much cheaper 2.5 hours away from the city, people who have to regularly commute won’t build a house there – the commute would be worse than the Limit and no amount of stainless steel kitchenware can persuade the commuter. Their commute would simply be an Unacceptable Terribleness. Again, the reason this is interesting is that tradeoff is not continuous between house location / size / price and commute time, causing a situation of Just-Barely-Acceptable-Terribleness.

The reason that the internet is so bad behind the scenes is that it is just barely Acceptably Terrible and if it were any less terrible we’d make a new language like Ruby for fun or profit and just end up right back at the Limit of Acceptable Terribleness. For those of us who haven’t achieved the zen of the Limit, everything is terrible. For those of us who have, “It’s just the way things are”. For those of us who think everything is awesome, please stop coding. Please?

politics tech

Climbing is the new golf, and kiteboarding is the new yachting

The other day I was at Dogpatch Boulders and a realization struck me: At least for the tech industry, climbing is the new golf.

What does this mean? Well, for decades golf has been the sport of business. You could catch up with a business partner, pitch a deal, have a low-key brainstorming session, develop your plan to kick Larry off the board, etc. while hitting small balls in acres of green fields set aside from the real world.

Exclusive, collegial, challenging – but no one gets left behind, you can see why it ended up as the default game of business. It comes in handy as well with regular meetings in the office as a source of smalltalk. It is seen as so crucial to business success that there has been a strong movement by women to break into the golf clubhouse, which has only very recently gotten into the final stages.

So golf worked for the Mad-Men-era and the Boomer generation… but so did white picket fences and homophobia. As usual, the Millennials are doing their own thing, and it seems so far that the new ‘gioco franco’ for the tech-set is rock climbing. (‘Gioco franco’ is ‘lingua franca’, but for games. Yes, I just made it up, it’s not a real term… yet) By ‘rock climbing’, to be clear, I don’t mean upside-down halfway up K2 as much as hanging out at Mission Cliffs and pushing to go from a V2 to a V3 on the bouldering wall.

Climbing has the advantages in that it is:

  • cheaper, more inclusive, and doesn’t have the baggage of racism / classism / sexism etc (wow, that’s a lot of isms golf has issues with…)
  • more compact – we don’t live in the suburbs and our leisure activities need to fit into our urban footprint
  • less of a time commitment
  • more forgiving of people joining and leaving groups at the climbing gym

I’ve been at Mission Cliffs and have met old colleagues, friends from a different neighborhood, and new friends who have immediately tried to get me to join their startup. Most seem to be ‘techies’ in at least the loose sense of the word. It is definitely the top sport techies play, with the possible exception of hiking (I’d argue that hiking does not fit well as a business / networking activity, and is hard to classify as a ‘sport’).

Even though it may be better than golf, we should think about what it means that our industry is creating some norms that are very familiar from the old business world. Also, while cheaper than golfing, it’s still $80 / month – a barrier to someone who isn’t already making tech salaries, and requires you to be in decent shape to start getting on the wall. Lastly, while vastly better than golf in this regard, those who climb tend to match already-privileged demographics*.

Is it right that there should be a benefit to your career if you like to climb? Are all demographics equally prepared to hop onto the wall? Do you have a membership? Should you get one even if you’re not passionate about climbing? I don’t have the answers, but I’ll keep thinking about it.

Lastly, I’ve heard from a few sources that while climbing is the new golf, kiteboarding is the new yachting. Expensive, more exclusive, and apparently beloved by VCs. Somehow I’m less sure this trend will continue as strongly as climbing overtaking golf…

TL;DR: The role golf has played in business is now played by rock climbing. This is probably a good thing, but we should think about it anyway.

* Unfortunately I could not find solid data on this, but I think in this case we can go by common sense / vast overwhelming anecdotal evidence. Please point me in the direction of data if you have it.

P.S. I’ll also include the other perspective that, at least in Australia, road biking may actually be the new golf instead of climbing!


Very simple algorithm for keeping track of doing something 50% of the time

So one of my New Year’s Resolutions is to eat meat less than 50% of days. However, I’ve been having trouble tracking it, and therefore have not been doing a good job of sticking with it. It’s hard to remember to update a calendar. You have to remember the days you did or did not eat meat that week, and there’s no easy way to see if you are doing better than 50%.

Yet, there is a shortcut we can use that my coworker pointed out to me that is very simple and elegant, although only because we have the simplification of 50%. Think about it for a minute…

If you’re like me you probably just jumped to this paragraph. Really, think about how you could track it!




Well, if you’ve given up, the very simple way of tracking this is just to add one when you make a day, and subtract when you miss one. You then only have one number, and that number tells you how far in the hole you are, or how well you are doing. Additionally, you are using psychology to benefit you, as humans (or at least the western-educated college students they run experiments on) hate losing things, even if the ‘things’ are imaginary points.

Right now I’m at -2 after 4 days. Which is not good, but at least I know now and can fight it!

politics tech

Thoughts About Recent Books I’ve Read

Average is Over, by Tyler Cowen

“Tyler Cowen may very well turn out to be this decade’s Thomas Friedman” was a quote on the back of the book. This quote is accurate.

In a more serious vein, while I have a ton of problems with his conclusions and writing, his heuristic for how to choose a career is very valid:
In your work, are you competing directly against something a slightly smarter machine could do (aka assembly line worker)? Yes? You’re screwed.
In your work, are you augmenting what the computer does and providing the human input necessary to ‘translate’? Yes? Ok, good, you’ll do great.

He doesn’t go into the deeper ramifications of this, however- what does society look like when we are listening to machines that we can’t even understand the inner workings of? (There is actually some good sci fi on this…) Is this different from what has been taking place since the beginning of the Industrial Revolution, or is this a real, very different change? I’d just like more critical analysis.

I would read this, but only because people are going to reference it forever and you might need to know what they are talking about. OTOH, they are probably just going to say something like “Average is over” and you can nod your head and continue with your life without having to read this. Your pick.

Cloud Atlas by David Mitchell

This is a great novel. It’s hard to not spoil it, but it’s amazing what he does and it is definitely something that at every page keeps you wanting to know what happens next. There are a million questions in your mind as you read this, and Mitchell lets you keep some questions still up in the air- very satisfying in a frustrating way! I absolutely hate when novels (and TV and movies) have no questions open- this is what makes the 6th season of the X-Files terrible, for instance. I should see the movie, although I doubt it can match the book.

You should read this book.

Future Perfect by Steven Johnson

This book speaks pretty strongly to how I believe problems should be solved in the world today. It in fact is pretty much intellectual wanking to read it, as I agree with everything there. I imagine that most of the people who are reading these words also agree, but I’ll summarize just in case.

Essentially, the models for how to organize human endeavors have traditionally been either a central state-based model or a market-based, anything goes model. The central model he refers to as a “Legrand Star”, after the French railway model. The market-based / libertarian model he refers to as the “Hayek” model. This gives us the usual conservative/liberal breakdown of suggestions to solve problems. Liberals have tended to favor centralized, controlled programs to (for instance) end poverty, while conservatives have tended to favor individual actions. However, neither works too well and in other parts of our society we have seen the benefits gained by another model: peer-to-peer, modeled after the internet.

Johnson argues that we should learn the lessons the internet has been teaching us and apply the same types of structures to our political realm. He coins the term “Peer Progressives” to label those who (like me) believe in various forms of social justice and who believe that the internet gives us better tools than the traditional duo to work with. He gives the example of art funding. The classic progressive way of promoting art is the NEA- large government bureaucracy. The libertarian way is private benefactors (hey, worked for Michaelangelo). The Peer Progressive way is Kickstarter, which currently passes on more funds than the entire NEA budget to artists every year, and arguably does a much better job at funding art that could never have gotten a grant.

I would recommend reading Future Perfect, but like most business books, you could read a long blog post and get the gist. The book is a fast read, though, and wonderfully self-validating, if you happen to be a “peer progressive” at least…

finance politics tech

Thoughts about “Technological Revolutions and Financial Capital”

This is a totally eye-opening view of how capitalism and technology advances interact. This is going to be on my list of must-read books for anyone, especially anyone working in or investing in tech.

In “Technological Revolutions and Financial Capital”, Carlota Perez argues that the technological advances and financial capital interact to create “surges”, what others generally call “long waves”. This surge encompasses the lifecycle of an entire “techno-economic paradigm”, a fancy word to describe how a society and its capitalist organization is underpinned by a set of technologies including processes, and that one form of this capitalist organization is very different from another. It is easiest to use an example, such as the “mass production” techno-economic paradigm. This started with Henry Ford et al, and is essentially waning as the “Information Age” (society’s term for the current techno-economic paradigm) emerges and dominates.

These surges have a lifecycle of the stages:

  1. Incubation/gestation
  2. A “big bang” of societal awareness of the new technology
  3. “Irruption”: A “frenzy” of investment and installation of the new tech
  4. Crash/Recession/Depression as the investment was over-hyped compared to the installed base
  5. “Synergy” as the paradigm is accepted and rolled out
  6. “Maturity” of the paradigm as the major gains are tapped out and capital goes in search of the next shift

Perez backs up this theory with examples of the 5 capitalist paradigms:

  1. The Industrial Revolution
  2. Age of Steam and Railways
  3. Age of Steel & Heavy Engineering
  4. Age of Oil, Autos, and Mass Production
  5. The Information Age

This theory seems to hit the data points very well, and it will be very interesting to see how the next stages of the Information Age play out. Perez wrote the book right after the Tech Bubble burst in 2001, identifying that event as the crash in the lifecycle. It seems so far that the lifecycle is holding: as the broadband deployment and cell phone service extends, business models are finding traction in all areas of the economy. This seems to follow the “Synergy” phase and validate those claiming that “this time it’s different” because of such widespread adoption. For instance, online ordering of takeout food is normal to the point where people will not order from a restaurant who does not use Seamless/Eat24Hours/etc. What was once a fringe service that could not gain traction is now the norm.

Once almost every routine thing can be done online, we will be in the “maturity” stage and you can expect profitableness of new tech ventures to decrease. Note that I am not saying that everything will be done online, just routine things. Shopping for a gift? Still in person, if you want. But a new pair of jeans? Bonobos has seemingly cracked that one, and there’s no sentimental or community-building reason to keep going to Kohls and buying Levis. You might as well just order over the internet. Groceries are probably going to be handled online, as the supermarket is a big hassle for everyone.

You might think, isn’t this what everyone thought the last time? Again, yes, but that is somewhat of the point- a lot of decent ideas were floated during the bubble that were too early for their time, horribly executed, and way overvalued. As this techno-economic paradigm rolls out, we can hopefully avoid “Internet Mania” with constant reminders of the turn of the century.

So what’s the next paradigm? I’d guess robots who can navigate the real world, but we will see. The advances in battery technology and machine learning are allowing potentially explosive growth in useful applications of robotics. Or does cloud computing count as a separate paradigm? It seems as though that is not the case, but perhaps it is revolutionary enough. Perez does not seem to set defined limits for how different a paradigm can be, seemingly setting them once it is clear a technology is on a track to replace as a paradigm.

Right now I’m borrowing Paul’s copy of the book, but I think I might buy myself a copy- it is that important to think about these things! Look also for a followup in which I think about which things might be totally different this time around.

politics tech

Bret Victor’s ‘driving principle’: necessary but not sufficient

A little while ago I finally got around to watching Bret Victor’s “Inventing on Principle”. Transcript here.

The main realization that Brett is trying to get across is that the most successful and most satisfied humans are those who have devoted their life to a driving principle. An example of this is would be Richard Stallman with free software, Alan Kay with a goal to ‘amplify human reach, and bring new ways of thinking to a faltering civilization that desperately needed it’, and Elizabeth Cady Stanton with Women’s Suffrage / equal rights for all. I can see how the stress between the world’s present, imperfect implementation of these ideas and the unrealized, perfect world where the ideal is practiced would give meaning to your life’s work. With this tension, you have a purpose, to fix this divergence.

I have some issues with the talk, but first, I did take his instruction to try and find your own driving principle seriously. I’ve found that my own driving principle is a desire to reduce waste of all kinds. This is perhaps an unsurprising principle for someone who is an engineer, but I think that this desire is one reason why I am a software engineer in the first place! Thinking back into my past, one incident stands out as a perfect example. I was about 13 years old at a summer camp, and I could hear these two other campers from New Jersey around the corner from me who were finding something totally hilarious – laughing and giggling continually. I turn the corner and see the amusing thing: they were pressing the soap dispenser and watching globs of pink gooey soap drop onto the bathroom tile floor. I remember getting very angry at the waste of it all, which of course made the campers start taunting me with the waste far longer than they otherwise would have if I hadn’t come along. I had a grudge against people from New Jersey for a very long time after that, although I have gotten over it! Something about entirely frivolous waste really got me. At least other times people can justify waste of material through the need to not waste time, but in this case their enjoyment could have been gotten by doing any number of non-wasteful things at camp.

So what does this principle to reduce waste mean? Well, it’s not just for CPU cycles. In fact I am willing to burn as many  cycles as necessary to reduce larger causes of waste: waste of people’s lives, their time, their potential, the waste of nature for frivolous reasons, suffering as a cause of a waste of people’s and animals’ lives, etc. When I was traveling in India I can’t count the number of people I saw working worthless jobs or working no job at all. This would be fine if the people were not miserable doing such- in some people’s versions of utopia humans need to do no work at all, and I have no problem with that vision if there is no suffering. However India has many hundreds of millions starving and undereducated; when banks hire a guard to sit in an ATM and open the door for people, it strikes me as wasteful and morally wrong. It is clear that our priorities (and we are a truly global world now, ‘our’ refers to Western Capitalism) are badly skewed from the most beneficial and decent true path, where the lives, health, potential, and time of hundreds of millions are not written off as how the world works. Even in the developed world, you can see others coming to the same conclusions about our modern desk jockey jobs. The conclusion that these jobs are a waste of so many things, and an ideal world would be without them.

It felt good to find this out about myself, and explained some things about why I am interested in some jobs and projects over others in my own career. I would highly recommend trying this out yourself, to give yourself a guiding line to follow in your career. It has also pushed me to get a little more serious about my own inefficiencies. One thing I’ve been trying to do is reduce meat consumption, a hugely wasteful in many ways choice over vegetable alternatives. As I always say, if I was a better person I would be a vegetarian. Well, I won’t get there yet, but I’ll now promise that by the end of December I will eat meat on 3 days or less a week.


Finally, I would like to strongly disagree with some aspects of Bret’s talk. While inspiring, I found the talk way too tech-self-centered and arrogant. Bret seems to think that we can simply choose some pet peeve in the technical space and this will translate to a positive, world-changing (even if in a small way) contribution to society. He uses moral terms to describe working on these chosen principles:

My point here is that these words that I’m using: Injustice, Responsibility, Moral Wrong, these aren’t the words we normally hear in a technical field. We do hear these words associated with social causes. So things like censorship, gender discrimination, environmental destruction. We all recognize these things as moral wrongs. Most of us wouldn’t see a civil rights violation and think “Oh good, an opportunity.” I hope not.

Instead, we’ve been very fortunate to have people throughout history who recognized these social wrongs and saw it as their responsibility to address them. And so there’s this activist lifestyle where these persons dedicate themselves to fighting for a cause that they believe in. And the purpose of this talk is to tell you that this activist lifestyle is not just for social activism. As a technologist, you can recognize a wrong in the world. You can have a vision of what a better world could be. And you can dedicate yourself to fighting for a principle. Social activists typically fight by organizing but you can fight by inventing.

I find this misguided. This formulation of the problem totally avoids responsibility of the wider moral implications of creating better tools, and Bret gives no advice to make sure that following your principle does not cause unforeseen issues. At the very least there should be advisement to first, do no harm. You could see a young Oppenheimer hear this talk and decide to devote his life to “unlocking the power within physical materials for human use”, or for a contemporary software developer to follow a principle to “help machines perceive the world in all ways” and end up programming military drone cameras. Without this thoughtfulness towards the greater good of human society, there is no authority whatsoever to use the words “Injustice, Responsibility, Moral Wrong”. Anyone who thinks that these moral words are valid for Bret’s morally agnostic principles have fallen prey to the arrogance of the tech world: that whatever is beautiful and right in our world must be beautiful, proper, and needed in the wider world. So while I enjoyed the talk and found it very personally useful, I would ask Bret to think about the greater implications of such a narrow focus in your life without thinking about the surrounding context. I would encourage other software developers to make sure that they are also not falling into the software engineer’s fallacy of a beautiful technical system translating to a morally beautiful real-world result. Yet, I would still encourage others to try this exercise and spend some time watching Bret’s talk.



A great talk, this helped me discover deep-seated beliefs I hold. It can help us all direct our careers- watch his talk and perform the exercise he asks of us, to try to find your own driving principle. However, the moral weight Bret attributes to following these principles is totally unwarranted – you need to closely watch the external effects of following your own driving principle and first, do no harm. If you do this at the same time you are answering your own driving principle, however, I think you are well on your way to a rewarding life.

green tech

Automated monitoring of web pages using Page2RSS, Feedly and IFTTT

So you are an activist trying to keep a pulse on the community you’re serving. Unfortunately, you have little time and a lot of web pages, groups, and updates to keep track of. Luckily, by using a few simple tools, you can automate away much of your busy work, leaving you more time to tackle the hard stuff.

This post will show you how to use these tools to automatically monitor any web page to notify you when there are changes you might be interested in.

The steps to monitor any page are:

  1. Identify what changes on the page, and what keywords always are present during the change
  2. Create a Page2RSS for that page
  3. If simple enough, subscribe with Feedly. If not, create an IFTTT that filters based on one of the keywords and send to Feedly.

At step 3, you can also email yourself with a change, post to twitter, etc- anything that you can do in IFTTT.

Quick question, Colin: what does all that jargon mean???

Yes, there are some new terms here. Let’s make a quick glossary:

RSS feed: a way to organize updates to websites in easily-automatable and simple, bite-sized chunks

Page2RSS: An awesome web service that checks in on a page every now and again and packages the difference between the versions of the website into an RSS feed

Feedly: A service like (the now dead) Google Reader which you can use to collect items from RSS feeds. It takes care of reading the RSS feed and presenting the update in a human-readable form.

IFTTT: “If this then that”, a simple service that can hook together parts of the internet to make you a super-activist. It is worth learning this tool very well.

What you’ll need:

  • An IFTTT account, with the ‘Email’ and ‘Feedly’ channels activated
  • A Feedly account or an email account
  • A Page2RSS account (optional, but useful to organize)


page notify workflow

Three different options to get notified about changes

The examples below follow these three tracks. The simplest is subscribing to all changes to the page using Feedly, while the most complicated is using IFTTT to filter out only the changes you want to be notified by. Don’t worry, once you get the hang of things it’s really very simple!


Herman, MO – simple any change to page and email:

In this case, we are just checking for any change to the city council page, and we want an email any time it changes. This represents the  yellow track above.

Here’s the Herman, MO page:

Herman, MO City Council Page

Herman, MO City Council Page

We want to be notified of any change to this page. Let’s first turn the page into an RSS feed, using Page2RSS:

create rss monitor

Paste in the URL of the page you want to monitor here, or use the Chrome extension

(If you install the Chrome extension you can cut down your manual work even more – log into Page2RSS and download the extension to boost your productivity!)

Herman City Council to RSS

Turning the city council page into an RSS feed

Now, if we want to just add this to our Feedly stream, we can just click on the ‘Feedly’ button on that page and we’re done! This is the purple track in the workflow above.

However, for this example, we want an email every time this page changes. Click on the ‘RSS’ button and copy the url:

herman rss feed url

Copy the URL here

Now head over to IFTTT. Let’s create a new ‘recipe’ choosing the RSS ‘channel’. The icon looks like this:

rss icon

Look for this icon when choosing a trigger ‘Channel’

We can paste the URL saved from Page2RSS into the creation box:

add rss trigger in IFTTT

Paste the RSS feed URL from Page2RSS

IFTTT Choose Action

What you should see after creating the RSS Feed trigger

IFTTT is a tool that allows you to automatically take action without human intervention. You can specify different ‘Triggers’ which then kick off ‘Actions’. If <Trigger happens> then <Take action>. “If this, then that”. In our case: “If the RSS feed is updated, email me”. So choose the ‘Email’ Channel for our ‘Action’. You will then see:

choose email

After choosing the ’email’ channel

edit email action

Edit this to suit your preferences

There will be some confusing text already entered into this page for you. Don’t delete what’s here but:

  1. Add a subject that makes sense to you before the “EntryTitle” text in the subject line. In this case, I added “Herman, MO City Council”
  2. Make a link directly to the city council page in the email- this will save you time later

Click ‘Create Action’, and you’re done! Whenever that page changes, you’ll get an email. This is the yellow track in the workflow above.

Columbia, MO – filter by ‘Minutes’ and post to Feedly:

I want to know when the minutes from the latest city council meeting of Columbia, MO, are updated. In this example, I’ll show how to only alert when the page changes in a specific way. I will also have the update post to Feedly instead of emailing. This is the red track in the workflow above.

Let’s take a look at the city of Columbia, MO:

Columbia, MO City Council

Columbia, MO city council page

We can see that there are three likely items that change on the page on a regular basis:

  1. New meeting dates (e.g. December 16, 2013 | Columbia City Council Regular Meeting)
  2. Agendas are posted, as a link with the word “Agenda”
  3. Minutes are posted, as a link with the word “Minutes”

Let’s say we only care about when minutes are posted, so we don’t want to just subscribe to any changes on the page.

First we grab the URL and go to


Get page2rss link from council page

Press the ‘to RSS’ button, and you should see:

Page2RSS Results

Page2RSS Results

Great. If we wanted to just subscribe to this feed, we could click on the “Feedly” button on this page (the purple track). However, in this case we don’t want an update when Agendas or future events are posted, so we need to grab the RSS link and head over to IFTTT. You can press the ‘RSS’ button in the “Subscribe to Feed” section and copy the link:

Page2RSS RSS link

Page2RSS RSS link

Head over to and create a new ‘Recipe’ using the RSS ‘Channel’:

IFTTT create

Create a new recipe in IFTTT

Choose “New feed item matches”

Filter RSS in IFTTT

Filter RSS match in IFTTT

We’ve completed the ‘this’ portion of IFTTT, now we need to make the ‘that’ action:

IFTTT Choose Action

Choose the ‘then’ action. Any ‘Channel’ is possible.

Let’s choose to publish to Feedly, although you could also have it send you an email you, tweet at you, text you, whatever you want!

Choose your IFTTT Action

Choose your IFTTT Action

Choose “Add new source”, and perhaps edit the URL to make it easier for you to read. In this case I added ” – Columbia City Council – Minutes”:

Change title of Feedly URL in IFTTT

Change the title of Feedly URL in IFTTT to be easier for you to understand

Finally, accept the new recipe, again perhaps changing the ‘description’ field to be a little more human-readable.

Accept IFTTT recipe

Accept IFTTT recipe

That’s it! Whenever the Columbia, MO city council updates their minutes, a post will appear in your Feedly stream.

You now only need to look at your Feedly page to see which city councils have updated their minutes- no more clicking though to each town and scanning the site to see if there’s been an update.


Using Page2RSS, IFTTT, and Feedly/Email, we can automate away some of the most tedious parts of activism. This helps you stay on top of any situation more quickly, and saves you time to work on more important things. Share this with your fellow activists- let’s use technology to improve our reach for the same amount of effort!

If you have any questions, please comment below- I’d love to have feedback on how to improve this guide.

politics tech

Change the narrative: privacy should be considered as a type of property to protect it

Thinking about the recent Verizon/PRISM/Muscular releases, the StopWatchingUs protest, and seeing the same “I’ve got nothing to hide” argument come up again, I’ve been thinking that perhaps the way to solve this from a public image perspective is to change the narrative in society. Instead of fighting for privacy arguing about privacy’s intrinsic value, we can discuss privacy as a form of personal property and gain some of property’s protections for privacy. That idea may have some cons, but perhaps could be useful to deflect the “nothing to hide” argument and to get moderates to join the fight for privacy online. I would apologize to my law school friends for the bending of legal frameworks for my own ends, but after Citizens United I don’t feel so bad doing it…

Let’s think about the units we’d be talking about. I’ll define privacy as the ability to control who knows certain things about you, whether it is basic information like your address, or who you talk to (NSA-Verizon-ATT, Chevron and email), or exactly what you look like naked (TSA scanners), to your inner beliefs and thoughts (unease with behavioral targeting).

In our idea of a ‘privacy property’, each receipt of this information by a new individual or organization would be a new property transaction. You should have control over your own ‘privacy property’, regardless of who is communicating your information. For instance, if Google is handing over your data to an advertiser or the NSA, you would have control over whether that transaction is allowed. Similar to property, the government could appropriate your privacy in an emergency or a war situation, but everyday privacy violations would be illegitimate takings by the government.

Now, let’s be clear, this regime would be very difficult to implement technically, but we are discussing how to change the public’s perception of the issue, not necessarily advocating that this framework should be implemented.

Quick Brainstorm of Pros and Cons:


  • Appeals to moderates
  • Can demonize NSA by painting it as un-American since they are now anti-public property and potentially ‘socialist’ by appropriating privacy for the state
  • Much clear, longstanding law on property can be used in the fight for privacy


  • De-sanctifies privacy
  • Government has precedent to take away property by eminent domain
  • Not a perfect mapping to conventional property, and thus potentially confusing
  • Uses a similar argument to the one record companies lost with during the 2000s

While I was thinking about this, I came across this ten-year-old article from Lessig trying to outline a viable framework.

In the article, Lessig talks about Amazon changing the terms of service retroactively to be able to sell information about their customers, even if those customers had indicated that Amazon should not sell their information:

If it were taken for granted that privacy was a form of property, then Amazon simply could not get away with announcing that this personal information was now theirs. That would be “theft,” and this is my point: “theft” is positively un-American.

Property talk would give privacy rhetoric added support within American culture. If you could get people (in America, at this point in history) to see a certain resource as property, then you are 90 percent to your protective goal. If people see a resource as property, it will take a great deal of converting to convince them that companies like Amazon should be free to take it. Likewise, it will be hard for companies like Amazon to escape the label of thief.

Lessig talks a lot about what a property system would look like for privacy, but I think this is unnecessary and for the short term, distracting. If instead we change the public perception about privacy, we can gain the cultural protections of associating privacy with property and change the discourse amongst moderates. We can change the discussion from “I’ve got nothing to hide, the NSA can see who I’m talking to” to “I don’t think the NSA should be allowed to commandeer so much property for so little benefit to America. If they can’t justify the benefits with specific examples of thwarted plots, etc, my ‘privacy property’ should not be taken. The NSA is an un-American institution if they continue this spying.”

I think we can even go further to gain the protection of not only the fourth amendment, which is somewhat confusing and endlessly debatable, but with the third amendment, probably the least controversial amendment in the bill of rights:

No Soldier shall, in time of peace be quartered in any house, without the consent of the Owner, nor in time of war, but in a manner to be prescribed by law.

In a time of relative peace, the NSA is stealing some of our ‘privacy property’ every day with no compensation. Their justification for stealing is for defense of the country, however this defense is against undefined, undefeatable foes with no end time table. Thus, if privacy is considered property, it can be argued that the NSA is committing the exact crime that inspired the 3rd amendment.

While I don’t think a case could be successfully argued in the supreme court right now, we only need to win in the court of public opinion.

Yet, as a friend points out, the NSA reading your email does not feel like the British government posting a soldier in your spare room. However, if there is a mental shift to each new recipient of your personal information counting as a property transaction, it may very well start to feel like that.

There is the final complication that it seems as though the argument is very similar to the argument record companies failed to ‘win’ with during the 2000s, that data online is property and must be treated as such. While everyone seems to take it for granted that the record companies lost this battle:

  1. The law is clear that piracy counts as at least copyright infringement punishable by serious fines and jail time
  2. When you poll the general public, people still do consider piracy to be theft, although probably a ‘less severe’ form of theft

Quick note on that Rasmussen poll I linked to- yes, this is likely voters who were reached by land-line telephone. Nate Silver has written a ton on how Rasmussen polls are biased but this is bias is actually a boon for us. Generally the younger generation has been less receptive to the security argument, and to expand the fight against spying we need the support of the older, less urban generation which Rasmussen is biased towards. These polls suggest that this older group is more likely to respond well to the “privacy is property” narrative, and could be allies in the struggle against government surveillance.

Let’s go out in the world (and on the internet) and try to emphasize that:

  • Privacy is a form of property, where each new receipt of your information is a property transaction
  • The NSA is therefore stealing your property every day, in relative peacetime
  • While there may be a national security justification in some cases, broad collection in peacetime violates the fourth and third amendments and are a serious danger to the first amendment

Especially as the holidays come up, let’s see if our currently-less-concerned relatives can be swayed by this argument. If the connection to the third amendment is a stretch, at least that privacy should be afforded some of the protections of property.

Example Interactions from the thanksgiving table:

“Doesn’t matter to me, I have nothing to hide”

Neither do I, but it should be my choice to provide information to the government, as private information is my ‘privacy property’. Without the ability to give consent to spying, the government is stealing from you, whether you support the program or not.

“But the government needs to protect us from terrorists”

Yes, but at what cost? Your privacy is your property, and while we accept that the government sometimes needs to take property to protect the country, our country’s founders specifically rejected the equivalent of the NSA’s spying. The British used to post soldiers in houses (quartering) without paying the owners of the house, effectively appropriating the house’s private property. The NSA is stealing your private property day-in, day-out just like the British stole our forefathers’ spare rooms. It goes against the ideals of America to support this spying program.

“What about child predators, hackers, etc?”

These are police matters and should be handled through the regular justice system. Just because something is online does not mean it is up for grabs, and the constitutional protections given to you in real life should follow you onto the internet. As it is, we are spending more and more time on the internet so we need to ensure we protect our rights online as well as offline.

“But you give data to Facebook, don’t they own that information now, and could give it to the government if they wanted?”

Perhaps, but just like you can’t go and print off copies of Harry Potter and sell them on the street, institutions who I’ve given my data to should not be allowed to resell my information without my consent. Just as you would go to jail for stealing from JK Rowling, Facebook should be liable if it passes on my information to anyone, not just the NSA. Start thinking about each time a new organization receives your information as a transaction that you should have to authorize – it is your data!

git tech

Git’s empty tree

It’s late. You’ve been coding up a greenfield project and it needs to be done by tomorrow. Yes, the team could have gone with a similar tool that has some of the necessary features, but damn, that thing written in PHP! This is your chance to write a totally new project and to show the company that python/ruby/go is the future. I mean, PHP, really? No, didn’t think so.

Ok, ready for reviewboard.
diff --full-index --oh-crap-you-forgot-to-make-an-initial-commit

Oops. This is dumb. You can’t believe you forgot to do an initial commit, and your first commit was only after 2 hours of work- totally useless to your coworkers… Damn it, why didn’t you create an alias for git init?

Here’s my stream-of-consciousness from solving this one:

Hmm- if only there was a way to diff against a totally empty commit, a magic empty git repository…

Well, how about we check out the first commit in the internals of git:

> cat .git/logs/refs/heads/master
0000000000000000000000000000000000000000 a7726d5201b0e56bf6e15e9ed72ea42192013d09 Colin P. Schimmelfing <> 1369722239 -0700 commit (initial): adds money-printing functionality to our app. biz-dev should be happy

those zeros look good as some sort of magic original empty commit… lets try that:

> git diff 0000000000000000000000000000000000000000
fatal: bad object 0000000000000000000000000000000000000000

Nope, no go.

What if we init a new repo and see what a blank repo is like:
> git init test2
Initialized empty Git repository in /Users/cschimmelfing/code/blog/empty_git/test2/.git/
> cd test2
> git show
fatal: bad default revision 'HEAD'
> git log
fatal: bad default revision 'HEAD'
> cat .git/logs/refs/heads/master
cat: .git/logs/refs/heads/master: No such file or directory

Damn, no commits means normal ways I’d look at the repo are pretty useless. Looking elsewhere in the .git directory gives just as little insight.

At this point, you hit up stackoverflow, and when I ran into this problem I was able to find a few items mentioning the magic commit I was looking for. (From this thread or this Stack Overflow post)

drum rolllllllll:


Huh. Well that’s random.

> git show 4b825dc642cb6eb9a060e54bf8d69288fbee4904
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904

Well, let’s try it out:
diff --git a/test1.txt b/test1.txt
new file mode 100644
index 0000000..95f29d0
--- /dev/null
+++ b/test1.txt
@@ -0,0 +1 @@
+hi HN

So now you are thinking: “Colin, that looks good, but where does this magic hash come from?”

Well, we can see that it’s a tree, so let’s try:

> git init test2
Initialized empty Git repository in /tmp/test3/.git/
> cd test3
> git write-tree

Aha! there it is, the hash is simply the value git creates when you ask for the hash of an empty directory. For more on this, check out this breakdown on the internals of git .

In both of the links that mentioned the special hash, it looks like there is another way to find the magic value, a little faster:

> git hash-object -t tree --stdin < /dev/null

So there we go! A little window into the internals of git, and a useful trick. If you don’t use review board (or always remember to touch an empty README, etc), you may also find it useful in other contexts, for instance creating a patch that can recreate the whole repo. Yes, you could tar the whole repo up, but maybe there are some embarrassing commits you’d like your colleague not to see, or a FUBAR-ed history that you might want to totally nuke before starting to collaborate.

Of course, this is git, so there are probably three other ways to do the same thing. Please comment, internet points will be awarded to the best answer!