Issue #79
Curated list of blogs, videos, papers, podcasts on programming and distributed systems.
Hold fast to dreams
For if dreams die
Life is a broken-winged bird
That cannot fly.
Hold fast to dreams
For when dreams go
Life is a barren field
Frozen with snow.- Langston Hughes
Posts
Why databases use ordered indexes but programming uses hash tables
when at the end of the day they both do the same thing: accessing data for our code? More than a year ago I asked about this out loud on Twitter, and got many interesting answers. This is my very delayed attempt to distill what I've learned. - #evanjones
API Practices If You Hate Your Customers
A number of industry best practices designed to show customers how much you hate them. All of them are easy to implement. Heck, your company may be doing many of these already. - #queue #acm
Kernel-Bypass Networking
Kernel-Bypass Networking and its application for improving network performance on Linux-based systems. The DNS team at GoDaddy has started researching use cases for a Linux-based network switch to supplement hardware-based options within a DNS point of presence (POP). This post outlines initial conclusions for future research. - #engineering #godaddy
Thinking in React Hooks
but I want to talk about the fundamental mindset change when switching from React class components to function components + hooks. - #wattenberger
Dynein: Building an Open-source Distributed Delayed Job Queueing System
Learn about the background, challenges, and future of Airbnb’s distributed scheduling and queueing system. - #airbnb #engineering #medium
Framework Patterns
I hope this helps developers who have to deal with frameworks to understand the decisions made by these frameworks better. - #blog #startifact
An Introduction to System.Threading.Channels
In software, such a hand-off requires a data structure of some kind to facilitate the transaction, storage that can used by the producer to transfer a result and potentially buffer more, while also enabling the consumer to be notified that one or more results are available. Enter System.Threading.Channels. - #devblogs #microsoft
Tail recursion
This is not because loops are inherently faster, but because every function call generally incurs the cost of a new stack frame in which it executes, sometimes leading to the dreaded stack overflow - where the beloved site of the same name, gets its name. Let's investigate how this works. - #functional
Videos
Correctness proofs of distributed systems with Isabelle/HOL - Martin Kleppmann
#youtube #MartinKleppmann
Prioritizing Technical Debt as if Time and Money Matters - Adam Tornhill
#youtube
Behind the scenes of iOS and Mac Security
#youtube
Paper
Kafka: a Distributed Messaging System for Log Processing
Log processing has become a critical component of the data pipeline for consumer internet companies. We introduce Kafka, a distributed messaging system that we developed for collecting and delivering high volumes of log data with low latency. Our system incorporates ideas from existing log aggregators and messaging systems, and is suitable for both offline and online message consumption. We made quite a few unconventional yet practical design choices in Kafka to make our system efficient and scalable. - #notes #stephenholiday
Book
Basics of Compiler Design - Torben Ægidius Mogensen
#hjemmesider #diku