22 June 2016

Reading list: 1

Basiri et al., "Chaos Engineering," IEEE Software 33: 3

Abstract: Modern software-based services are implemented as distributed systems with complex behavior and failure modes. Many large tech organizations are using experimentation to verify such systems' reliability. Netflix engineers call this approach chaos engineering. They've determined several principles underlying it and have used it to run experiments. This article is part of a theme issue on DevOps.

For me, the most interesting bit of the paper is this: Rather than simply measuring "is it up or down?" Netflix uses continuous-variable, time-dependent metrics to determine whether system availability has been affected by a test manipulation. For instance, they have a curve that predicts SPS (stream starts per second) over the course of any 24-hour day, based on past performance.

24 May 2016

Firstest

Len Shustek explains why writing the history of computing is harder than it looks. He discusses the recent book by Thomas Haigh et al., ENIAC in Action: Making and Remaking the Modern Computer.

22 May 2016

Read a book

J. Bradford Hipps answers a rather parochial and oft-cited post by Vinod Khosla:
[I]f anything can be treated as a plug-in, it’s learning how to code. It took me 18 months to become proficient as a developer. This isn’t to pretend software development is easy — those were long months, and I never touched the heights of my truly gifted peers. But in my experience, programming lends itself to concentrated self-study in a way that, say, To the Lighthouse or Notes Toward a Supreme Fiction do not. To learn how to write code, you need a few good books. To enter the mind of an artist, you need a human guide.

19 May 2016

Block that button!

David Sleight provides some inside-baseball info about ProPublica's revamped mobile apps, including the yogic contortions required of this non-profit to satisfy Apple.