New
The latest blog posts to take off on Hacker News. 4,387 posts.
Hosting a Public Website on MS-DOS (2022)
Shopislot adalah situs game online yang menghadirkan berbagai pilihan permainan slot dengan tampilan 3D yang tajam dan detail. Nikmati pengalaman bermain yang lebih menarik dengan visual realistis, navigasi sederhana, serta koleksi game yang lengkap dalam satu platform.
An unusual 7400-series chip implemented with a gate array
When I look inside a chip from the popular 7400 series, I know what to expect: a fairly simple die, implemented in a straightforward, cost-e...
Garbage collection for systems programmers (2023)
Yet another programming blog. Thoughts on software and related misadventures.
Ethereum has blobs. Where do we go from here?
On March 13, the Dencun hard fork activated, enabling one of the long-awaited features of Ethereum: proto-danksharding (aka EIP-4844 , aka blobs). Initially, the fork reduced the transaction fees of rollups by a factor of over 100, as blobs were nearly free. In the last day, we finally saw blobs spike up in volume and…
Flipping Pages: New Linux vulnerability in nf_tables and exploitation techniques
A tale about exploiting KernelCTF Mitigation, Debian, and Ubuntu instances with a double-free in nf_tables in the Linux kernel, using novel techniques like Dirty Pagedirectory. All without even having to recompile the exploit for different kernel targets once.
Bump Allocation: Up or Down?
Back in 2019, Nick Fitzgerald published always bump downwards, an article making the case that for bump allocators, bumping “down” (towards lower addresses) is better than bumping up. The biggest reasons for this are bumping up requires 3 branches vs 2 for bumping down and rounding down requires fewer instructions…
Backpressure explained – the resisted flow of data through software (2019)
Backpressure is something nearly every software engineer will have to deal with at some point, and for some it’s a frequent problem. But…
Who killed the network switch? A Hubris Bug Story
A Hubris Bug Story
Why choose async/await over threads?
A common refrain is that threads can do everything that async/await can, but simpler. So why would anyone choose async/await?
ARM64EC (and ARM64X) Explained
ARM64EC (and ARM64X) Explained Probably the most confused looks I get from other developers when I discuss Windows and ARM64 is when I used the term " ARM64EC ". They ask is the same thing as ARM64? Is it a different instruction set than ARM64? How can you tell if an application is or ARM64 ARM64EC?
TCP connection timeout mystery
For over a year, I’ve been investigating a strange issue with the internet in my apartment. I’m posting the details here in case someone more knowledgeable than me can solve the mystery. I live in graduate student housing with internet provided by the university campus. Usually things work reasonably well, with one…
Hyprland Crash Course
For the past week I have been configuring hyprland and using it as my daily driver. Coming from major Desktop Environments like KDE or Gnome, this was definitely quite challanging, specially when implementing features that we take it for granted on these DEs, like screen sharing or screenshot annotating.
The Intel 8088 processor's instruction prefetch circuitry: a look inside
In 1979, Intel introduced the 8088 microprocessor, a variant of the 16-bit 8086 processor. IBM's decision to use the 8088 processor in the I...
Bug hunting in Btrfs
The other day I was implementing multi-threaded stat() calls in bfs . When I ran some benchmarks, I saw something that made my heart skip a beat:
Why does an extraneous build step make my Zig app 10x faster?
For the past few months, I’ve been curious about two technologies: the Zig programming language and Ethereum cryptocurrency. To learn more about both, I’ve been using Zig to write a bytecode interpreter for the Ethereum Virtual Machine. Zig is a great language for performance optimization, as it gives you fine-grained…
RP2040 Boot Sequence
This document has been assembled to supplement a set of instructions about writing one's own bootloader for the RP2040. Writing a bootloader requires some understanding of the boot sequence, but it became a bit too cumbersome to include that explanation in the bootloader documentation.
How web bloat impacts users with slow devices
In 2017, we looked at how web bloat affects users with slow connections . Even in the U.S., many users didn't have broadband speeds , making much of the web difficult to use. It's still the case that many users don't have broadband speeds, both inside and outside of the U.S. and that much of the modern web isn't…
What part of Rust compilation is the bottleneck?
Rust compilation times is an ongoing topic that generates many discussions online1. Most people don’t really care about what exactly takes time when compiling Rust program; they just want it to be faster in general. But sometimes, you can see people pointing fingers at specific culprits, like LLVM or the borrow…
What's worked in Computer Science: 1999 vs. 2015 (2015)
In 1999, Butler Lampson gave a talk about the past and future of “computer systems research” . Here are his opinions from 1999 on "what worked".
Improving cursor rendering on Wayland
A programming blog written by Vaxry.
Pi 5 overclocking: Silicon Lottery
Silicon lottery. Now that the Raspberry Pi 5s been readily available (at least in most regions) for a few months, more people started messing with clocks, trying to get the most speed possible out of their Pi 5s. Unlike the Pi 4, the Pi 5 is typically comfortable at 2.6 or even 2.8 GHz, and some Pi 5s can hit 3.0 GHz…
Cloning a Laptop over NVMe TCP
Recently, I got a new laptop and had to set it up so I could start using it. But I wasn't really in the mood to go through the same old steps which I had explained in this post earlier . I was complaining about this to my colleague, and there came the suggestion of why not copy the entire disk to the new laptop…
Build Initramfs Rootless
Let's create an hello world init program that the kernel can execute to show that everything works correctly:
The CAP theorem. The Bad, the Bad, & the Ugly
The CAP theorem is too simplistic and too widely misunderstood to be of much use for characterizing systems.