A friendly tour of process memory on Linux
A deep dive into how Linux manages process memory, page tables, and virtual address spaces
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,822 posts.
A deep dive into how Linux manages process memory, page tables, and virtual address spaces
From two minutes to less than half a second!
As programming languages researchers, we’re entitled to a certain level of mathematical rigor behind the languages we write and analyze. Programming languages have semantics , which are definitions of what statements in the language mean. We can use those semantics to do all sorts of useful things, like error…
“640K ought to be enough for anybody.” - Supposedly Bill Gates, circa 1981.
Ah, the eternal question, straight from the mailbag.
A retro on some of the reasons we chose to build Tracebit in C#.
We are reverting this change for now. More details to follow. The default compression for Git archives has recently changed. As result, archives downloaded from GitHub may have different checksums…
Every day, thousands of developers at Meta are working in repositories with millions of files. Those developers need tools that help them at every stage of the workflow while working at extreme sca…
I recently implemented a Brainfuck interpreter in the Crystal programming language and I’d like to share my honest opinion about working in the language.
I am honored to share that I have joined Google as a member of the Go team and will be primarily based in NYC.
Coherence and the orphan rules are a frequent source of complaints about Rust, and a common topic of language proposals. This post covers most of the existing proposals around coherence and my vision for how we should solve coherence once and for all.
A look at some unfriendly Zig syntax
Porting Yoga (Facebook's CSS flexbox implementation) from C to Go.
I recently got this from the co-founder of Artsicle, a startup I interned for over the summer after my freshman year: From: Scott Carleton Subject: just re
Undebt: How We Refactored 3 Million Lines of Code Evan H., Software Engineering Intern Aug 23, 2016 Peter Seibel wrote that to maximize engineering effectiveness, “Let a thousand flowers bloom....
In this article, I will attempt to convince you that Expect is an extremely underappreciated tool for automating terminal applications in Unix.
Announcing Fly Machines
This blog post will maintain the industry best practices for securely generating random data in Ruby, Node.js, Java, etc.
A quick overview of the most common text processing terminal tools and why they should be part of your day-to-day toolbox.
In April 2021, the Vulkan® Working Group at Khronos® released a set of provisional extensions, collectively referred to as ‘Vulkan Video’ which provide seamless encoding and decoding of video streams using a variety of video coding standards. The December 2022 release of Vulkan 1.3.238 saw the finalization of the…
Stopping a Linux thread is a surprisingly annoying affair. In this post I present common pitfalls and some solutions -- although no truly satisfactory method exists.
Beginning with this release, SQLite will not compile on Windows version prior to Windows Vista (circa 2007), due to a switch to using Slim Reader/Writer Locks (SRWLs) which are faster but which are not available on WindowsXP and earlier.
Designer, researcher, strategist.
Note: This is the talk I gave at Startup School Europe, which was held last Saturday in London. You've heard a lot of great startup advi...
Recently I've become more and more interested in how WebRTC works, so a few weeks ago I decided to add a page to my website where I could set up peer-to-peer video chats. There are plenty of libraries and services out there to make this extremely easy, but knowing that WebRTC is now well supported natively across…