New
The latest blog posts to take off on Hacker News. 263 posts.
IOHIDeous OS X Local Kernel Vulnerability
Siguza’s Blog
Three Years on Google App Engine
For the last 3 years I worked on an application that runs on Google App Engine. It is a fascinating, unique piece of service Google is offering here. Unlike anything you’ll find elsewhere. This is my in-depth, personal take on it.
PostgreSQL Benchmark on FreeBSD, CentOS, Ubuntu Debian and OpenSUSE
In this post, I’m going to show benchmark results of the recently released PostgreSQL 10.1. I’ve benchmarked the DB on these OSes (all are 64-bit):
Building a Distributed Log from Scratch: Data Replication
In part one of this series we introduced the idea of a message log, touched on why it’s useful, and discussed the storage mechanics behind it. In part two, we discuss data replication. We have our log. We know how to write data to it and read it back as well as how data is persisted. The caveat to this is, although we…
The state of netbooting Raspberry Pis
Let's take a look at the state of netbooting for Raspberry Pis including how and why you'd build a cluster and how well containers play with network booting
Computer latency: 1977-2017
I've had this nagging feeling that the computers I use today feel slower than the computers I used as a kid. As a rule, I don’t trust this kind of feeling because human perception has been shown to be unreliable in empirical studies, so I carried around a high-speed camera and measured the response latency of devices…
How to Print Integers Really Fast
Paul Khuong's personal blog. Some Lisp, some optimisation, mathematical or computer.
Building a Distributed Log from Scratch, Part 1: Storage Mechanics
The log is a totally-ordered, append-only data structure. It’s a powerful yet simple abstraction—a sequence of immutable events. It’s something that programmers have been using for a very long time, perhaps without even realizing it because it’s so simple. Whether it’s application logs, system logs, or access logs…
Netstat without netstat
Recently I was doing an assessment in a locked down and restricted environment. One of the first actions you tend to do when landing a shell on a [linux] box is to do some reconnaissance. This is both on host and network, as you want to determine what new access this host has given you. Normally you would run netstat…
Tokio internals: Understanding Rust's async I/O framework
Tokio is a Rust framework for developing applications which perform asynchronous I/O — an event-driven approach that can often achieve better …
OpenBSD 6.2 and CDE
If you've noticed a disruption in the time-space continuum recently, it is likely because I have finally been able to compile and install ...
Kernel debugging for newbies
This week, I’ve been working on an application that sets up IPsec connections. PF_KEYv2 is the standard interface for configuring IPsec. PF_KEYv2 is widely-available; even systems with more advanced IPsec stacks (like XFRM on Linux) provide a PF_KEYv2-compatible wrapper. I want my application to work on OS X and…
High Performance Z80 Emulation
…wherein I talk about my latest Z80 emulation adventures.
Apple's CVDisplayLink Doesn't Link to Your Display
Edit 2017/12/10: So I screwed up, I thought I was safe confirming it in two different ways but I was using an external monitor and all of the below is accurate only for a specific multi-monitor case. Skip to the bottom to read about my new results.
What Have We Learned from the PDP-11?
This post is a slightly edited version of my November presentation to the San Francisco chapter of Papers We Love.
Debugging an evil Go runtime bug
From heat guns to kernel compiler flags
The Peculiarly Quiet Decline and Fall of the KVM
Yes, that familiar little PC peripheral. The one that toggles a single keyboard/mouse/display ensemble between two or more connected machines.
AWS EC2 Virtualization 2017: Including Nitro
AWS EC2 Virtualization 2017: explaining the different virtualization types, from emulation and binary substitution, paravirtualization and Xen, PV, HVM, and PVHVM modes, and the new Nitro hypervisor
How Stylo Brought Rust and Servo to Firefox
Two weeks ago, we released Firefox Quantum to the world. It’s been a big moment for Mozilla, shaping up to be a blockbuster release that’s changing how peopl...
Disable transparent hugepages
tl;dr “Transparent Hugepages” is a Linux kernel feature intended to improve performance by making more efficient use of your processor’s memory-mapping hardware. It is enabled ("enabled=always") by default in most Linux distributions. Transparent Hugepages gives some applications a small performance improvement (~ 10%…
Designing a Lock-free, Wait-free Hash Map
Wait-free algorithms attract vast interest and are an area of intense research, the motivation being that true lock-free algorithms and data structures provide great …
Run the First Edition of Unix with Docker
In this article you'll see how to run a PDP-11 simulator through Docker to interact with Unix as it was back in 1972.
Desktop compositing latency is real
Update: Note that the capture method I use needs to read pixels back from the GPU which can be slow. This means the Windows 10 results are probably worse than they should be. However, without external hardware this seems to be the only way to measure keyboard to screen latency.
Reviving the 1973 Unix Programmer's Manual
The 1973 Fourth Edition of the Unix Programmer’s Manual doesn’t seem to be available online in typeset form. This is how I managed to recreate it from its source code.