Recent Links
Deconcentration of Attention: Addressing the Complexity of Software Engineering - interesting article on the complexity of software systems and the thinking that is required, and promoting the idea of deconcentration.
post-mortems - a hopefully growing collection of software project post-mortems, most of them modern.
Performance without the event loop - good if basic talk on scalable software architecture and how Go fits in, mostly about network dispatch.
gb, a project based build tool for the Go programming language - describes a project-centric build tool, meaning all your source (including vendor code) is present but clearly separated.
Ask HN: Books with a high signal to noise ratio? - a surprisingly good curated list of books.
How We’re Predicting AI—or Failing To - article by Stuart Armstrong and Kay Sotala analyzing all the (wrong so far) predictions about AI.
MIRI blog - blog from Machine Intelligence Research Institute. Also see papers.
A kerfluffle between Steven Pinker and Nicolas Nassim Taleb over Pinker’s book The Better Angels of Our Nature (Pinker comes off the better):
- The “Long Peace” is a Statistical Illusion - Taleb’s attack on the book and Pinker.
- Fooled by Belligerence - Pinker responds to Taleb broadside.
HydraBase&emdash;The evolution of HBase@Facebook.
ZooKeeper vs. Doozer vs. Etcd - evaluating systems used to share configurtion across a cluster of servers. With commentary on Hacker News. TLDR: ZooKeeper complex and written in Java implementing Paxos, Doozer is dead, etcd is a very young project written in Go and implementing Raft.
Apache ZooKeeper: the making of.
Youtube uses Zookeeper: see package zkocc.
Raft lecture on Youtube from John Osterhout. Probably more videos, look for them.
Arakoon is another distributed key-value store.
Open-Source Service Discovery. Covers Zookeeper, Doozer and Etcd, but also looks at other solutions.
A Hacker’s Guide to Risk Talk at DefCon.
Seaweed-FS. Simple and highly scalable distributed file system. Based off of Haystack.
Finding a needle in a Haystack: Facebook’s photo storage.
C++ Internals :: STL vector, Part III.
MQTT is a machine-to machine connectivity protocol, intended to be very lightweight.
utf8rewind - the size of it seems insane.
Working Hard to Keep It Simple 2011 talk by Martin Odersky.
Userland Slab Allocator. Uses bitvectors, looks interesting.
Verdi proves Raft correct. Verdi is a framework for formally verifying distributed systems using Coq. This is the pull request that contains the Raft verification.
The Log: What every software engineer should know about real-time data’s unifying abstraction
Distributed systems for fun and profit
Practicalities of Productionizing Distributed Systems Talk by Jeff Hodges at RICON West 2013.