New
The latest blog posts to take off on Hacker News. 4,390 posts.
Laws of Performant Software
Learning how to write performant code is hard. Here are a few simple laws that I hope will convey the core of the matter. I’m calling them…
GpuScan and SSD-To-GPU Direct DMA
An article for none-Japanese readers....What I'm recently working on is a feature to load data blocks from NVMe-SSD to GPU using peer-to-peer DMA. It allows to bypass the CPU/RAM under a series of data loading process, thus, also allows to reduce number of expensive data copy. Once data blocks are l…
How Chrome ate 21GB of storage
I've been playing with the macOS Sierra Golden Master for a few days and ran into the new storage optimization app that is now included in macOS. It lead me to realise that Chrome was using 21GB of SSH space!
Why the Apple II ProDOS 2.4 Release Is the OS News of the Year
In September of 2016, a talented programmer released his own cooked update to a major company’s legacy operating system, purely because it needed to be done. A raft of new features, wrap-in p…
Five Months of Kubernetes
.....Love 3D Porn? Well you have arrived at the hottest one-stop 3D Porn portal in the Galaxy! We have searched both time and space for the hottest monster porn, extreme 3D Porn and hot virtual babes in the entire porn solar system, and it is all here for you!
Things I Hate About PostgreSQL (2013)
PostgreSQL Talk
Linux debugging tools you'll love
New zine: Linux debugging tools you'll love
Plan9 from?
I have been saying for years that I am seeing the same phenomonon today that I saw thirty years ago when the microprocessor was first invented. At that time I argued a lot with all the computer scientists. They insisted that microprocessors were not really computers because they did not run the same software that…
Think Before You Parallelize: A tour of parallel abstractions
In 2005 Intel release the Pentium D, which began the era of multi-core desktop CPUs. Today, even our phones have multiple cores. Making useof all of those c...
Robin Hood Hashing should be the default hash table implementation (2013)
There’s a neat variation on open-addressing based hash tables called Robin Hood hashing . This technique isn’t very well-known, but it makes a huge practical difference because it both improves performance and space utilization compared to other “standard” hash tables (e.g. chaining ). It also eliminates the major…
A FreeBSD 10 Desktop How-To
A guide to a full-featured modern desktop FreeBSD installation
How to allocate memory
Many programmers use malloc() and free() and pay no more mind to "allocating memory", but I often find 2-20× speed improvements by rethinking memory usage, so it is something I usually want to examine when joining a distressed project.
A Unix Utility to Know About: lsof (2009)
This is the third post in the article series about Unix and Linux utilities that you should know about. In this post I will take you through the useful lsof tool. If netcat was called the Swiss Army Knife of Network Connections, then I'd call lsof the Swiss Army Knife of Unix debugging. Lsof follows Unix philosophy...
How many x86 instructions are there?
It’s surprisingly hard to give a good answer (the question was raised in this article). It depends on how you count, and the details are interesting (to me anyway). To not leave you hanging: …
The One Second Dash
The Amazon Dash is a $5 WiFi button that summons a truck to deliver you water or other stuff. Want your Dash to do something else? The popular approach is to sniff its ARP requests. This requires that Dash connect to your network, putting you perilously close to having some DUDE delivered with your IoT mood lighting.
Does a compiler use all x86 instructions? (2010)
On the Z80 CPU there are so few registers and instructions that you can easily know and use them all and wish there were more of them. However, half of the time it feels like the only on you really use is ld. I imagine that if ld took half the number of clock cycles, average code would run twice as fast.
The Ethernet PAUSE frame
This is a bizarre one. It all started when the internet seemed to go out at my house. My desktop, phone, TV, everything stopped working. The usual solution at a time like this is to power cycle the modem and router. While this fixed the situation temporarily, soon after the problem returned. What made me think this…
Mainframes as a lifestyle choice
I started working at IBM last year on mainframe compilers with the goal of making mainframes feel a little more modern. Hence, a lot of my time is spent in z/OS . The interface I use to z/OS is Unix System Services (USS, a.k.a. the command line), but if I were up for bucking the whole moderm thing, I could break out…
Ideas for getting started in the Linux kernel
Getting new people into OSS projects is always a challenge. The Linux kernel is no different and has it’s own set of challenges. This is a follow up and expansion of some of what I talked about at Flock about contributing to the kernel.
135M messages a second between processes in Java (2013)
Taking a lock free queue off heap and using it as an IPC mechanism to deliver 135M messages a second between processes in Java.
Zero-cost futures in Rust
One of the key gaps in Rust’s ecosystem has been a strong story for fast and productive asynchronous I/O . We have solid foundations, like the mio library, but they’re very low level: you have to wire up state machines and juggle callbacks directly.
Notes on Distributed Systems for Young Bloods (2013)
I’ve been thinking about the lessons distributed systems engineers learn on the job. A great deal of our instruction is through scars made by mistakes made in production traffic. These scars are useful reminders, sure, but it’d be better to have more engineers with the full count of their fingers.