The Dangers of Unstoppable Code

  •   Comments

With real-time, interconnected, self-executing systems, sometimes when things wrong, they go really wrong.  I wrote about this general idea previously here.

Yesterday, while I was writing my post on Trusted Brands, I was doing a little searching through my blog archives, so as to link back to all the posts categorized under “Trust”.  In the process of doing that, I went back and actually re-categorized some older posts that fell under that category, but weren’t appropriately marked.  In the process of doing that, I came across a whole bunch of posts from 2013 that I had imported from my old Tumblr blog, but were still just saved as drafts rather than published posts.

So, I did a little test with one of them — hit Publish and checked that it looked right.  Then, after that, I did a bulk-edit with about 15 posts, selecting all of them and changing the status from “draft” to “published”.

This did not have the intended effect.

Rather than those posts showing up in the archives under 2013, they were published as of yesterday.  So now I have 15 posts from 2013 showing up at the top of the blog as if I wrote them yesterday.  

That would not have been a real problem on its own — the real problem stemmed that because of our automated “content system” (that I built, mind you) within the USV team, those posts didn’t just show up on my blog, they showed up on the USV Team Posts widget (displayed here, on Fred’s blog and on Albert’s blog), they showed (via the widget) in Fred’s RSS feed, which feeds his daily newsletter, and blast notifications were sent out via the USV network slack.  Further, some elements of the system (namely, the consolidated USV team RSS feed, which is powered by Zapier) is not easily changeable.  

Because of the way this happens to be set up, all of those triggers happen automatically and in real-time.  As Jamie Wilkinson remarked to me this morning, it is unclear whether this is a feature of a bug.   

Of course, as all of this happened, I was on a plane to SF with spotty internet, and was left trying to undo the mess, restore things to a previous point, monkey patch where needed, etc.  

Point is: real-time automation is really nice, when it works as intended.  Every day for the past few years, posts have been flowing through this same system, and it’s been great. No fuss, no muss, everything flowing where it should.

But as this (admittedly very minor) incident shows, real-time, automatic, interconnected systems carry a certain type of failure risk.  In this particular case, there are a few common sense safeguards we could build in to protect against something like this (namely: a delay in the consolidated RSS feed in picking up posts, and/or an easy way to edit it post-hoc) — maybe we will get to those.

But I also think about this in the world of crypto/blockchain and smart contracts, where a key feature of the code is that it is automatic and “unstoppable”.  We have already seen some high-profile cases where unstoppable code-as-law can lead to some tough situations (DAO hack, ETH/ETC hard fork, etc), and will surely see more.

There is a lot of power and value in automated, unstoppable, autonomous code. But it does absolutely bring with it a new kind of risk, and will require both a new programming approach (less iterative, more careful) and also new tools for governance, security, etc (along the lines of what the teams at Zeppelin, Aragon and Decred are building).

Trusted Brands

  •   Comments

Today is election day.  I’m on a plane today, so I voted early, a few days ago.  I cast my vote and it felt good. I marked my paper ballot with a marker (for optical scanning) glued it shut into a sealed envelope, and handed it to a volunteer who placed it in a secure… Read more »

Suffering, Self, and Service

  •   Comments

The massacre in Pittsburgh is heartbreaking and awful, and another example of the extent to which society seems to be fraying. The Pittsburgh attacker spent a lot of time on social media sites that stoked his fear, isolation and anger.  I think about the internet a lot, and while the internet has the ability to… Read more »

Building a meditation routine

  •   Comments

I wrote recently about the challenge of turning plans into routines.  One of the activities that is the most impactful for me is meditation.  I cannot say that I have a perfect meditation routine, but I can absolutely say that when I do do it, it makes me feel great, immediately. There are a bunch… Read more »

Trauma

  •   Comments

Just about two years ago, my wife’s parents were hit by a truck while crossing the street. The past two years have been both difficult and wonderful.  Wonderful in that two people who were on the brink of death following the accident are still with us (her mother in particular has had a miraculous if… Read more »

Plans vs. Routines

  •   Comments

Sunday night over dinner, my son, parents and I were discussing the saving / investing system we set up for our kids in the spring. The idea was/is: set a monthly budget for purchases (in their case, mostly online movies, tv shows and games), and include a really healthy interest rate (20% monthly) to encourage… Read more »

The Adjacent Possible

  •   Comments

Dani and I have been spending a bunch of time recently thinking about the relationship between applications and infrastructure.  It’s a little bit of a chicken and egg situation.  You need infrastructure to build apps, but often times you don’t really know what kind of infrastructure is needed until you build some apps. For example, we… Read more »

Getting the Chills

  •   Comments

One of the greatest things Frannie and I have in common is that we get the chills from music — typically at the exact same time, triggered by the same musical… something. For me it starts  at the back of my neck, and if it’s really good, it spreads all over my back, head, and… Read more »

The Utility Infielder

  •   Comments

My favorite baseball player is Brock Holt, and has been since his first season with the Red Sox back in 2013.  Here is me last month wearing my Holt jersey that I wear to every game (note the #26 that he started out with, before it was retired for Wade Boggs a few years ago… Read more »

Fear

  •   Comments

I have been helping my son, who is in 4th grade, with his math — specifically, multiplication.  He feels like he is a little bit behind, so we are working on it so he can get more comfortable.  It is going well now — we have gotten into a routine of spending 15 minutes per… Read more »

Form factor

  •   Comments

Over the past few weeks, I have varied up my computing habits a bit.  For a laptop, I have been using a Pixelbook, and I have also been spending more timing using an iPad Pro for work (vs my default of using a Mac laptop for everything). What I have discovered is that the form… Read more »

A little, and then a little more

  •   Comments

Back in May, I had what ended up being a major hand surgery — repairing a torn tendon and in the process reconstructing the end of my pinkie by grafting tendons borrowed from my ring finger.  As a result, I am now recovering from two injuries — the pinkie itself and the ring finger that… Read more »

Layers

  •   Comments

A central concept on the internet is Layering.  Each of the protocols in the internet stack talks to the layer directly above and below it — new protocols can be added as long as they speak the language of their layer.  Protocols at one layer can be upgraded so long as they don’t break compatibility… Read more »

Minimum Viable Economy

  •   Comments

One of my favorite things about the cryptocurrency / blockchain space is that our conception of “what it all means” is still very much in flux. Nic Carter just published a nice analysis of how the functional narrative around bitcoin has changed over time – (roughly) from e-cash, to e-gold, to private currency, to a… Read more »

The path to decentralization: self-destructing companies

  •   Comments

In June, the SEC gave some of its most concrete guidance to date that cryptoassets can start out as centralized projects, possibly initially sold under securities laws, and eventually become “decentralized” and thus no longer sponsor-controlled, and no longer sold or transferred under securities laws. It makes sense that a decentralized protocol does not fit… Read more »

Trust and fairness

  •   Comments

I was at an event last night, where the moderator, Preeti Varathan from QZ observed that there seemed to be a lot of cynicism in the blockchain / crypto space — in other words, that the whole thing was essentially premised on a distrust of existing systems (fiat currencies, large internet companies, etc). It’s an… Read more »

Compound interest goes in both directions

  •   Comments

There is no shortage of writing and punditry about the power of compound interest. As usual Naval has a pithy tweet about it: Play iterated games. All the returns in life, whether in wealth, relationships, or knowledge, come from compound interest. — Naval (@naval) May 31, 2018 I have been thinking about this a lot… Read more »

just_work = true

  •   Comments

One of my former colleagues, Rob Marianski, and I used to have a running joke — we would be building and debugging something, and he’d finally say, “Oh, so you just want me to set just_work = true?”.  That was over 10 years ago, but it still gets me every time for some reason.  (as… Read more »

Focus

  •   Comments

Ryan Caldbeck is on fire on Twitter right now.  Ryan is the CEO of our portfolio company CircleUp, and he just joined Twitter for the first time earlier this year and is, I may say, feeling very comfortable in the medium.  Over the weekend he put up a great diagram-oriented tweetstorm with a bunch of gems… Read more »