Benchmarking shell pipelines and the Unix “tools” philosophy
From the highly eclectic blog of Mark Dominus
The latest blog posts to take off on Hacker News. 4,389 posts.
From the highly eclectic blog of Mark Dominus
The URL you requested is no longer available. Please contact the site owner directly if you need to access their files. They are responsible for migrating their content to another site.
It’s already been a great reading day for retrospectives on the last ten years / predictions for the next. Here’s to hoping that everyone had a good break (or at least a few days off), set or didn’t set resolutions, and is refreshed and ready for what comes next.
What is the complete path between visiting thepiratebay and sublimating an mp3 file from thin air? In this post, we'll implement enough of the BitTorrent protocol to download Debian. Look at the [Source code](https://github.com/veggiedefender/torrent-client/) or skip to the [last…
(at least on commodity desktop Linux with stock settings)
My last post was about either The SSH protocol or The reason you need to install a karaoke captioning library if you want to change your desktop wallpaper . Find out which .
When building web services, a common wisdom is to try to reduce the number of HTTP requests to improve performance.
Recently, I’ve started to explore RISC-V. I experienced the journey as pretty refreshing, particularly because I’ve been working on x86 low-level software almost exclusively for about 10 years.
An introduction to back pressure in systems and why it matters.
It's funny and equally sad that year 2015 marks the end of the Windows OS for a lot of people. There are several issues with Windows which, at present, make Spyware/ Malware OS 10 inappropriate and even outright dangerous for a lot of people. The most egregious, of course, is a total abandonment of any form of privacy…
This blog post is one of those things that just blew up. From a tiny observation at work about odd behaviors of spinlocks I spent months trying to find good benchmarks, (still not entirely successf…
I blog about random things security, everything is broken, nothing scales, shared memory models are flawed.
In this post, I’m going to go through the process of setting up Apple’s A/UX on a Quadra 610. It’s been a long time in the making - I think I had the hardware for nearly a year before I finally got A/UX running properly!
As WebGPU specification is approaching a usable shape, we are working on prototype implementations in both Gecko and Servo. If you ever wondered about what i...
We all have stories, as engineers, of fixing some crazy thing at the last minute right before the demo goes up. We have all encountered situations where we needed to fix something that was our fault and we needed to fix it now.
If you're a programmer who's become fed up with software bloat, then may you find herein the perfect antidote.
It's well known that if you drag a file from Finder and drop it into Terminal, the full path of the file will output in Terminal. The same behavior occurs with copy and paste too. This has always been a very convenient but innocuous operation… until macOS 10.15 Catalina. I've discovered that on Catalina, pasting a…
This blog is written by Hanno Böck. Unless noted otherwise, its content is licensed as CC0 .
The current article describes a series of Java Virtual Machine (JVM) Garbage Collectors (GC) micro-benchmarks and their results, using a different set of patterns. For the current issue, I included all Garbage Collectors from AdoptOpenJDK 64-Bit Server VM version 13 (build 13+33) :
TL;DR: The how and why of the new 6502 emulator in the chips project.
Your Linux Toolbox: a box set of my free zines
A comparison of ideas behind Dynamo and Cassandra
The following document is an attempt to consolidate down a number of threads spanning separate discussions from around the 'net I have been having on the subject of operating system development models and OpenBSD. I will break up this document into several sections each of which will handle separate pillars of my…
And what that means for the rest of us.
Meet the ZedRipper – a 16-core, 83 MHz Z80 powerhouse as portable as it is impractical. The ZedRipper is my latest attempt to build a fun ‘project’ machine, with a couple of goals in mind:
As a (late) part of the #rust2020 request, I wanted to talk about one of the paper-cuts that has become decently problematic for new and experienced users of Embedded Rust: The size costs of formatting in Rust today are unreasonably expensive for users of Rust on bare metal embedded systems. In particular there are…
I recently hit some multi-minute delays on my workstation. After investigating I found that the problem was due to a lock being held for five minutes, and during that time the lock-holder was mostl…
I think it is safe to state that hash tables (e.g. maps in Go, dicts in Python, HashMap in Java, etc.) are far more common than ordered data structures such as trees for in-memory data structures. One data point is that in a talk about C++ hash table optimization at Google ( available in Abseil ), the speaker noted…
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…