How Gitlab diagnosed and resolved Redis latency spikes with BPF and other tools
It is hard to debug intermittent issue, since it is usually doesn’t follow any pattern. Usually to debug them we need low level tool to hook up and extract more metrics. In this post, Gitlab shared how they deal with an intermittent issue for 2 years, but getting worse recently so they go to bottom of its with BPF and other techniques
The architecture of Mastodon
take a high-level look at the architecture of a single Mastodon instance and how different instances communicate. Specifically, we’ll be looking at how the Mastodon network-of-instances might scale.
Color Formats in CSS
Everytime it comes up I just bite the bullet and use hex format. But what is hsl, rgb, lch? how they really work?
Nibbler 4 Bit CPU
As a software engineer I always try to dabble into hardware, the knowledge of CPU/RAM how they work help me a lot when dealing with IO, performance in softwarwe.
Nibbler is a 4 bit CPU built from standard 7400 series logic chips – individual counters, registers, buffers, and gates. It’s an educational example of a simple CPU that’s easy to understand and build, but still capable of running games and other interesting programs. Nibbler is built using wire-wrapping on a 5 x 4 inch (127 x 102 mm) perfboard. The CPU contains 17 chips in total.
How to estimate an SSD’s working life
Spin HDD working life is hard to predict because of their physical part movement.
SSD on other hand have no such part, so should be easiser to predict based on Wear leveling and Total Bytes Written.
optimizing performance for 1000 units
How to get intense multiplayer combat with 1000 units to use just 50kb/s bandwidth. Push JS Perf to the extreme.
The result is that with a simple “collision cells” optimization scheme, the overall CPU time of the server thread has been brought down by about 90%.
Code to read
an easy-to-use immediate mode GUI in Rust that runs on both web and native
an interpreter for λ-calculus implemented in ruby
Fast, powerful, yet easy to use template engine for Go.
Normally template engine work by parse a template file, process macro, replace certain placeholder with the right data
So if there is an error in template engine, its hard to catch at compile time.
What if we convert the template to Go function and execute it? This is the same approach Elixir/Erlang use.
Cross-platform application to monitor your network traffic with ease
Distributed in-memory object store. It can be used both as an embedded Go library and as a language-independent service
a CLI tool to Identify malicious PyPI packages
That's it for this round, have a great day! If you like this newsletter, please tell the world, or
tweet about this