Hi everyone, Welcome to issue #181. This will be the final issue of 2020. We will be back on January 4th. Happy new year and have a great holiday everyone.
Btw, if you are doing on-call during this holiday seasson, and have issues about on-call, incident management, or need help during on-call, hit me up at [email protected]
I included quite a bit of monitoring tools in this issue, to help you deal with on-call at the end of year too.
Understanding how AES encryption works
I recently had the opportunity to encrypt/decrypt stuff using AES, but I didn’t know it inside out well. I couldn’t help but be curious about how it is working, and I realized my mind could only be satisfied by digging deeper into its implementation. This post walks you through how AES encryption works by reading core implementation written in Go.
Commits are snapshots, not diffs
I believe that Git becomes understandable if we peel back the curtain and look at how Git stores your repository data. After we investigate this model, we’ll explore how this new perspective helps us understand commands like git cherry-pick and git rebase
Generic mitigations A philosophy of duct-tape outage resolution
Do you work on a service that you (and, presumably, your users) would like to keep working? Well, if so, I’m here to convince you that your service should have at least one or two generic mitigations ready to go. If it doesn’t, you’re in for a bad time. If it does, treasure them, maintain them, and use them, lest they rot beneath your feet.
How Facebook keeps its large-scale infrastructure hardware up and running
automation. machine learning to automate the automation. build system that can detect and remediate issues.monitor and remediate hardware events without adversely impacting application performance. use prediction methodology for remediations. automate root cause analysis for hardware and system failures at scale to get to the bottom of issues quickly.
Raft does not Guarantee Liveness in the face of Network Faults
Last month, Cloudflare published a postmortem of a recent 6-hour outage caused by a partial switch failure which left etcd unavailable as it was unable to establish a stable leader. This outage has understandably led to discussion online about exactly what liveness guarantees are provided by the Raft consensus algorithm in the face of network failures.
Causality is Graphically Simple
Events in distributed systems include sending or receiving messages, or changing some state in a node. Not all events are related, but some events can cause and influence how other, later events, occur. For instance, a reply to a received mail message is influenced by that message, and maybe by other prior messages also received. This article brings an introduction to classic causality tracking mechanisms and covers some more recent developments. The presentation is supported by a new graphical notation that allows an intuitive interpretation of the causality relations described.
Life of a Netflix Partner Engineer — The case of the extra 40 ms
Talk about one particularly difficult issue that blocked the launch of a device in Europe.
This wasn’t the last bug we fixed on this platform, but it was the hardest to track down. It was outside of the Netflix application, in a part of the system that was outside of the playback pipeline, and all of the initial data pointed to a bug in the Netflix application itself.
Concurrent programming, with examples
we’ll cover the production workhorses for concurrent software – threading and locking – and learn about them through a series of interesting programs. By the end of this article you’ll know the terminology and patterns used by POSIX threads (pthreads
Code to read
a command line shell that is also a powerful modern programming language.
SMTP Server + Web Interface for viewing and testing emails during development.
A dead simple 2D game library for Go
A terminal interface for exploring and arranging tabular data.
Exploring How Computers Work
A little exploration of some of the fundamentals of how computers work. Logic gates, binary, two’s complement; all that good stuff!
Gui application to monitor postgres database events in real time
Like mytop but for Postgres
high-level API to control Chrome in Ruby. Super clean and simple DSL to do automation in a browser
Golang Desktop Automation. Control the mouse, keyboard, bitmap, read the screen, Window Handle and global event listener.
Support Mac, Window, Linux(X11)
Lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine
Fast, typo tolerant, fuzzy search engine for building delightful search experiences
Open source, self-hosted web app for writing and running SQL queries and visualizing the results. Supports Postgres, MySQL, SQL Server, ClickHouse, Crate, Vertica, Presto, Pinot, Drill, SAP HANA, Snowflake, BigQuery, SQLite, and many others via ODBC.
Open source platform for deploying static sites and frontend applications
strives to be a multi-account AWS swiss-army knife, making AWS easier for your end-users and cloud administrators. It is designed to consolidate the management of multiple accounts into a single web interface
A flamegraph generator for Postgres EXPLAIN ANALYZE output.
Vulnerability Static Analysis for Containers
That's it for this round, have a great day! If you like this newsletter, please tell the world, or
tweet about this