Polymath Engineer Weekly #103
Story Points, Unix, Multithreading, LISP, B-Trees, Protobuf and Big Things
Hello again.
Links of the week
story points are pointless, measure queues
The problems come when people hear, "This will take 2 weeks." Inevitably, this creates confusion because when a dev team estimates the time they often mean "This will take 2 weeks with our entire team if we have no interruptions once we start on the work next month after this other dependency has been resolved..." which isn't written into the criteria. Other work is going to come up on a live system. When you say 2 weeks to people on the business side of the house, they often hear "2 weeks" without any of the other ceremony.
Hiding in plain sight: Modifying process names in UNIX-like systems
Ok, time to get back to the land of Linux. Let's take a look now "under the hood". The intention of here is to understand the internal data structures at play. Refer to the following diagram which depicts various internal structures within the Linux kernel when a python script was run from the command line.
Two Threads, One Core: How Simultaneous Multithreading Works Under the Hood
Simultaneous multithreading (SMT) is a feature that lets a processor handle instructions from two different threads at the same time. But have you ever wondered how this actually works? How does the processor keep track of two threads and manage its resources between them?
Do you want to be the first to know about new posts? Subscribe now for FREE. Just cool content, no SPAM!
John McCarthy based Lisp on general recursion, but devised it to operate on symbols rather than numbers. He was interested in AI, where concepts, the way humans manipulate them, occupy the center stage. A symbol can stand in for any idea, whether code or data. Just today we've seen just how expressive symbolic expressions are, effortlessly encoding the formulas of primitive recursion. Somehow we have made Lisp revisit its conceptual ancestor. We've traveled in time like in the grandfather paradox. Not with the intent to kill the progenitor, but rather to embrace him, bring him back to life, even if for a moment.
I was reading along with the book as Petrov explained how B-trees work, and nodding my head. But there’s a difference between feeling like you understand something (what the philosopher C. Thi Nguyen calls clarity) and actually understanding it. So I decided to model B-trees using TLA+ as an exercise in understanding it better.
Parsing Protobuf Definitions with Tree-sitter
If you work with Protocol Buffers (protobuf), you can really save time, boredom, and headache by parsing your definitions to build tools and generate code. […] In the process I realized how awesome the Tree-sitter parsing library is and that it probably was going to support extracting everything I wanted to get from our protobuf definitions. Neovim uses Tree-sitter extensively.
I have created a survey to get feedback from you. It takes only 2 minutes.
Book of the week
Have a nice week. 😉
Have you read last week's post? Check the archive.