Hi everyone, Welcome to issue #172.
This week, I want to introduce starship again. I linked to it in issue 119. Recently my zsh prompt is too slow. I want to have all information like git repo, kube context, cli version etc but I also do not want my prompt takes a few seconds to load. Switching to starship makes it run faster. You also deal with nice config language instead of shell :-).
We used compression every day, in tar, gzip, zip files. What is the exact algorithm to power them? Today, much of the relevant work to compression is in an obscure corner of the internet between lengthy PhD thesis papers and hard-to-find gems.
Big-O notation, time complexity, space complexity? But what is the abosolute number to do a thing? How long does it take to access RAM, read SSD, or send network package?
Eventually any large-scale website will have to deal with bot, crawler, who usually just consume your resource without bringing any benefit. How we prevent them? HAProxy may not well-know like Nginx because it only does load balancing, cannot do static file servering like Nginx. But it does its job very well and supports many primitives for advanced load balancing such as rate-limiting, which is helpful when dealing with bots.
Find and fix tricky memory leaks caused by detached windows.
DropBox rewrite and 12,000 loc from jQuery to React to solve an issue of rendering pdf different between 3 places. The lesson is: Don’t fix it in UI, fix what’s behind it. A software engineer’s job is not to write code, it’s to solve problems, by writing code when necessary.
A technique that saved BrainTree payment approximately 10% of disk space with very little effort beyond existing processes. In short, carefully choosing column order when creating a table can eliminate padding that would otherwise be needed.
This talk is designed for PostgreSQL administrators. It covers all aspects of PostgreSQL administration, including installation, security, file structure, configuration, reporting, backup, daily maintenance, monitoring activity, disk space computations, and disaster recovery. It shows how to control host connectivity, configure the server, find the query being run by each session, and find the disk space used by each database.
The Linux TCP stack is a finite state machine. So when closing a connection, 2 sides need to coordinate so the state can be advanced. TIME-WAIT is when the local server close the connection already, the connection is kept around so that any delayed packets can be matched to the connection and handled appropriately. It also helps the remote side know that the connection is closed, so remote can close as well otherwise it is stuck in LAST-ACK state. And it exit this state in 4 minutes. Needless to say, keeping these around on a busy server is expensive, you need CPU, memory to handle them.
Have you ever receive a message with square or question mark character while it shows up fine on sender side? Font fallback is just complex, filled with quirks and unexpected side effects. Font enthusiast Marcin Wichary decided to dig into the issue and prepare an exhaustive guide to font fallback, its beauty, and all the pitfalls.
Writing DNS server is like hello world for networking to me. DNS is small enough, not massive like HTTP, also relying on UDP, so I think it’s a good exercise to learn UDP and the DNS protocol. The language is Rust, despite that I’m not a Rust programmer, I only toy with Rust and I was able to follow just fine so I think you can do the same and learn a few thing about Rust and DNS at the same time.
PG Extras is a tool that allows you to spot common PostgreSQL pitfalls. Ruby, Rails, Elixir, and NodeJS implementations are currently available. In this blog post, I present a step by step guide on using PG Extras library to spot and resolve common PostgreSQL database performance issues.
An interesting project from Microsoft to transform old, low resolution photo into sharp, modern, high resolution image
PythonA proof-of-concept for WebRTC signaling using sound. Works with all devices that have microphone + speakers. Runs in the browser.
An old talks in 2014 explain event loop, one of core concept of JavaScript/NodeJS
Wireflow - user flow chart real-time collaborative tool
a build automation tool for the post-container era. It allows you to execute all your builds in containers. This makes them self-contained, reproducible, portable and parallel.
Build and deploy Go applications on Kubernetes
measures and compares the execution time of one or more SQL queries.
Scan, Analyze your website to see what you need to do to make it run faster
Copy tabular data between databases, CSV files and cloud storage
A Real-Time Website Privacy Inspector. Open source on Github if you want to see how they peform scanning.
Disk Usage/Free Utility. Kind of like htop but for your du/df.
BetterDev Link
Every Monday