User: anders

Channels

Keys to SRE

Talk by Google’s SRE Czar.

  • 50% dev/maintenance ratio
  • at least 5% of support tickets need to go directly to developers
  • SRE’s are free to leave any project at any time
  • in an outage: minimize impact + prevent recurrence

devops

count-min sketch

probabalistic approaches to stream calculations

distributed systems

always bet on text

On the superiority of plain text as a communication technology.

spokehub

My Philosophy on Alerting - Google Docs

Writeup from a Google SRE on alerting/monitoring. Very well thought out.

Pages should be urgent, important, actionable, and real.

  • emphasis on reducing noise levels
  • emphasis on end-to-end, black box, symptom-based alerting rather than the cause (I assume there is still enough monitoring/metrics in place to quickly diagnose the cause from the symptom)
  • a daily report can be a good channel for non-critical, but time-sensitive alerts, particularly on causes, (disk getting relatively full, unusually large numbers of slow queries, etc)
  • “Every alert should be tracked through a workflow system.” not just dumped into an IRC channel or email list.

This is good for thinking about Hound. Overall, a lot of effort has gone into making all of Hound’s alerts be “urgent, important, actionable, and real” but some fall short. Eg, quite a few currently exist that aren’t really actionable (eg, monitoring of various LITO services, Wardenclyffe -> PCP failures), that we have because we’d just rather know when something we depend on fails before our users.

Things to consider adding to Hound based on this:

  • dependency chain: link symptoms to causes so we can silence the symptom alerts when we know the cause
  • different alert targets. So we can set up alerts that only go to the people who can actually act on them, rather than dump everything to ccnmtl-sysadmin and train people to ignore a lot of them (“somebody else’s problem”).

ccnmtl devops

Stanford Seminar - Joe Armstrong of Ericsson

Another good Joe Armstrong talk.

  • systems that they originally designed purely for fault-tolerance did better on scalability benchmarks than systems designed for scalability. Led to the observation that they are related and instead of a tradeoff (“you can have either scalability or fault-tolerance”), instead you have “you can have both or neither”
  • according to Alan Kay, messaging was really the key idea of OOP, as it truly decouples objects (original idea in Smalltalk/Squeak, but lost in XEROX PARC work)
  • error handling must be external because the machine the error happened on might be dead. Design fundamentally is to not have to program differently for everything running on one machine vs multiple machines.
  • Erlang terms are designed to be serialized/deserialized without parsing (just very low level marshalling). Part of the reason that databases like Riak can be so fast.

distributed systems erlang

Idea: private channels

Will require a bit more of a social network concept functioning with followers/etc. But it would be good to be able to designate that posts in a channel can only be viewed by users that you have specifically designated.

meta

Allowing a user to edit their posts wouldn’t be hard, technically. I’m kind of thinking that I like the current setup though, where you can delete, but not edit. It encourages you to not put too much into a single post. It also fits with the “publish” nature of the site. Once you’ve hit “submit”, it’s kind of like sending an email; anyone else could get/read it immediately. So you should think before you submit instead of after.

meta

As of last week, Phoenix and I have our Dutch resident ID cards (good for two years), are officially registered with the city of Utrecht, and have our Burgerservicenummer’s (BSNs), which are the tax ids.

We still need domestic bank accounts (we were waiting on BSNs) so Phoenix can get paid, we can pay our rent in Euros, and we can get chip and pin debit cards, which a lot of kiosks and stores here basically require. Unfortunately, it looks like I may never be able to get one. The woman at the bank claimed that I could not open an account without an employment contract with a Dutch company. It seems like there’s probably a way around that, but in the meantime, we may only have one account between us.

netherlands

Netflix for the rest of us

Docker container for overseas Netflix proxy

devops

Introducing GIFV

imgur details how they are making mp4s out of gifs

Monads Without Pretension

Monad tutorial using Python and objects.

functional

Consensus Filters

Algorithms for approximate consensus. Nodes can asymptotically all converge on (roughly) the same value with very small amount of inter-node communication.

distributed systems

Hello there!

Finch is my new super-simple micro blogging platform.

I just want somewhere to very quickly dump random links, ideas, and code snippets without all the overhead of a proper blog setup. Stuff too big for twitter but too random to put on my main blog.

It’s written in Go using a sqlite database.

meta