Object-oriented design patterns in the kernel
Despite the fact that the Linux Kernel is mostly written in C, it makes broad use of some techniques from the field of object-oriented programming. Essentially, method dispatch and data inheritance are what we need. Part 1(this article) focus
on method dispatch. Part 2 focus on data inheritance.
An introduction to approachable threat modeling
Charming to read. I’m sure you will feel been there done that to those 2 tales of threat models in this article.
We explore how pairing our existing knowledge and experience with a few simple questions can help us build better systems and keep them safe.
How to Design Software Good
This post is written to highlight Haiku OS. However, they are general rule. And they are really good rule.
It read more like GUI design rule. But at the end of the day, our software are all about serving a need to
end-user through some user interface.
Dissecting Apple's Meta-CDN During an iOS Update
A very well analysis on how Apple design their CDN. How iOS devices discover and download updates, how download requests are mapped to CDNs, and the architecture of Apple’s content cache infrastructure. It’s just 7 pages to skim.
Scaling the Monolith
More and more get on microservice trend, while it solve certain problems, it comes with its own issue.
Before you decide to split apart your app, there are a number of tactics you can use to scale it majestically. Spend a significant amount of time trying to solve your existing problems before making big changes.
PostgreSQL Performance Tuning Tutorial
Default setting of a databse cannot fit everyone. Depend on what kind of query and access pattern
we need to tune our db. However, diving into vast amount of postgres doc to find what we want isn’t
easy. This article summarize some settings and strategy to tune the db.
Causal guarantees are anything but casual
Traditional databases usually server read/write from a single node so natually provide sequential ordering guarantees.
Distributed system like MongoDB must coordinate and order related events across all of its nodes, and limit how fast certain operations can complete to do so. MongoDB 3.6 passed Jepsent test, verify that MongoDB 3.6.4’s sharded clusters offer comparable safety to non-sharded deployments.
A Netflix Web Performance Case Study
Masscan as a lesson in TCP/IP
masscan can scan entire internet within 6 minutes. it contains its own network stack.
Masscan will not using laptop’s IP address, it has its own network stack and its own IP address,
eve the IP is “wrong”. How routing work since the IP address is invalid?
How to deploy modern TLS in 2018?
TLS 1.3 was finally released. Previous version has few attack vectors one has to
aware to address when deploying TLS such as CRIME, BREACH, DROWN…A must-read if
you want to deploy TLS the right way.
Generating Software Tests
Catching bugs can involve lots of effort. This book addresses this problem by automating software testing, specifically by generating tests automatically. You will learn about fuzzing, basically generate random input to funcion to try break thing and measure how much code are actually executed during test
Beating hash tables with trees? The ART-ful radix trie
Tries are an unloved data structure for building key-value stores and indexes, after search trees (like B-trees and red-black trees) and hash tables. In this paper, the authors show how to reduce the memory cost of a regular radix trie by adapting the data structure used for each node to the number of children that it needs to store.
Writing a Frontend Web Framework with WebAssembly And Go
WebAssembly maybe another way for us to deo front-end dev. This series build the base of an incredibly
simple frontend framework written in Go that compiles into WebAssembly. I think some similar effort are
made with Rust too. If you know some good links, please share so I can include in next issue.
Code to read
UTC time in log is annoying. Tztail solve that, allow us to view logs in any timezone
Event-Sourced Autonomous Services
A single-header incremental garbage collector library
Linux shell for iOS
Multi-platform Nintendo Game Boy Color emulator
Declarative UI for iOS and tvOS
a Python library for implementing GraphQL servers
Bulk port forwarding Kubernetes services for local development
Open Source Tool For PostgreSQL Database Management
A rule based tunnel in Go
A tool to do sanity check for container. It spins up container and assert condition like
HTTP request, installed packages, file existence.
C/C++ debugging tool for Linux, replacing — well, enhancing — gdb
command line json processing tool
That's it for this round, have a great day! If you like this newsletter, please tell the world, or
tweet about this