New
The latest blog posts to take off on Hacker News. 6,949 posts.
Filesystem error handling
We’re going to reproduce some results from papers on filesystem robustness that were written up roughly a decade ago : Prabhakaran et al. SOSP 05 paper , which injected errors below the filesystem and Gunawi et al. FAST 08 , which looked at how often filesystems failed to check return codes of functions that can…
An ode to pack: gzip’s forgotten decompressor
The latest 4.13.9 source release of the Linux kernel is 780MiB, but thanks to xz compression, the download is a much more managable 96 MiB (an 88% reduction)
UEFI Programming – First Steps (2009)
In this article, I will describe steps needed to start on with development of real UEFI applications on x86 PC, and share some practical experiences with problems doing so. I will focus on 64-bit version of UEFI, because the 32-bit version isn't much used in this area (most likely due to Microsoft decision not to…
The First PS4 Kernel Exploit: Adieu
Now we will step back a bit and explain how we managed to jump from the browser process into the kernel such that ps4-kexec et al. are usable.
HolyJit: A New Hope
tl;dr: We believe there is a safer and easier way of writing a Jit. Current State Today, all browsers’ Jits share a similar design. This ...
Writing a Bootloader
This post describes how to write a simple Hello world bootloader
Using cgroups to limit I/O
Developers running their apps on tsuru can choose plans based on memory and cpu usage. We were looking at adding I/O usage as one of the plan’s features, so one could choose how many I/O operations per second or bytes per second a container may be able to read/write. Being able to limit I/O is particulary important…
URG
If you asked software engineers some of their “least hated” things, you’ll likely hear both UTF-8 and TCP. TCP, despite being 35 years old, is rock-solid, stable infrastructure that we take for granted today; it’s hard to sometimes realize that TCP was man-made, given how well it’s served us. But within every single…
Why we switched from Python to Go
Deciding on a programming language is always a difficult choice, learn why Stream switched from Python to Go as our language of choice.
Hotswapping Haskell
Bluesky: @simonmar.bsky.social Github: simonmar Email: marlowsd@gmail.com LinkedIn: Simon Marlow
Keyboard latency
If you look at “gaming" keyboards, a lot of them sell for $100 or more on the promise that they’re fast. Ad copy that you’ll see includes:
DragonflyBSD 5.0
DragonFly version 5.0 brings the first bootable release of HAMMER2, DragonFly's next generation file system.
Unbalanced reads from SSDs in software RAID mirrors in Linux
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Traceroute Lies: A Typical Misinterpretation Of Output
Traceroute can points to a link having terrible latency, but despite what it appears, it's easy to misread the output and jump to the wrong conclusion.
Exploiting the Wi-Fi Stack on Apple Devices
Posted by Gal Beniamini, Project ZeroIn this blog post we’ll complete our goal of achieving...
Atom's new concurrency-friendly buffer implementation
We are archiving Atom and all projects under the Atom organization for an official sunset on December 15, 2022.
Containers and Distributed Systems: Where They Came from and Where They’re Going
Tips from experts, thoughts from leaders, news from the front line. Join the conversation beyond hyperconverged infrastructure to the enterprise cloud.
Cthulhu: Organizing Go Code in a Scalable Repo
Helping millions of developers easily build, test, manage, and scale applications of any size - faster than ever before.
Broken packets: IP fragmentation is flawed
As opposed to the public telephone network, the internet has a Packet Switched design. But just how big can these packets be?
Event-Driven Architecture
Using events to design applications is a practice that seems to be around since the late 1980s. We can use events anywhere in the frontend or backend. When a button is pressed, when some data chang…
The web at maximum FPS: How WebRender gets rid of jank
The Firefox Quantum release is getting close. It brings many performance improvements, including the super fast CSS engine that we brought over from Servo. But there’s another big piece of ...
Persisting state between AWS EC2 spot instances
Persisting state between AWS EC2 spot instances using Docker on an external volume