About:

Software and articles by John Millikin.

Website:

Specializations:

Incoming Links:

Outgoing Links:

Dan Luu
Subscribe to RSS:
The text discusses the differences between Rust and C in handling dynamically-sized types (DSTs). It explains how Rust uses thick pointers for DSTs, the drawbacks of thick pointers, and how C handles DSTs. It also discusses the ch...
The text discusses the need for variable-length integers, the popular use of TLV formats such as Protocol Buffers, and the development of a new TLV format called vu128. The author describes the vu128 format and its benefits over L...
The text explains the basic approach to writing a TUN/TAP client for Linux, including opening the /dev/net/tun device, allocating a virtual network interface, configuring the network interface's address and link state, and process...
The text provides a guide on running SunOS 4 in QEMU (SPARC). It includes information on the installation media, preparing the SunOS mini-root, installing SunOS itself, and installing a web browser (Netscape). It also offers an ap...
QEMU 7.2 quietly introduced two new network backends, -netdev dgram and -netdev stream, which directly support AF_UNIX socket addresses without the need for an intermediate wrapper tool. The -netdev socket network backend sends/re...
The text provides a guide on debugging Win32 binaries in Ghidra via Wine. It includes steps to build a simple Win32 binary on Linux, debugging with gdbserver.exe, shimming the GDB memory map, and injecting a linux_getpid function ...
The text provides a guide on how to run BeOS 5 in QEMU, an operating system from the '90s known for its technical decisions and business failure. It includes information on the installation media, booting the installer, post-insta...
The author received a forged email from YouTube that passed Gmail's DKIM/DMARC checks. The email was accepted as coming from youtube.com, despite being received from robtoledoyour.com. The domain is registered to an address in Ind...
The text describes the process of compacting Lunr search indices, which is a small JavaScript library for full-text search. It explains how to reduce the serialized index size by about 40% and the process of compacting the inverte...
The text explains that JSON is not a subset of YAML and it is not safe to parse JSON using a YAML parser. It highlights the differences between JSON and YAML and the issues that arise when parsing JSON using a YAML parser.
The text describes an overlay network based on stateless IPv6 tunnels, which have better reliability and scalability characteristics than stateful IPv4 overlays. It uses IETF protocols that are natively supported by the Linux kern...
The text discusses the addition of WebAssembly support in VSCode extensions, providing a 'hello world' LSP-based extension that loads a WASM module. It also outlines the process of creating a WASM file in C and Rust, and implement...
The text discusses cross-compiling Rust using Rustup and Cargo. It explains the process of cross-compilation and the issues encountered during the process. It also discusses the use of Bazel as a language-agnostic build system and...
The author discusses their first impressions of Rust, a systems programming language. They talk about their background in programming, their experience with Haskell, and their discovery of Rust. They also discuss the Rust language...
The article 'Stop Using Encrypted Email' by Latacora argues that existing end-to-end encryption systems for email do not provide useful protection against interception. The article suggests that if a message needs end-to-end encry...

0By any other CNAME

2020-02-05

Google engineers are issued workstations with names that they choose. Workstations have a fully-qualified hostname and are tracked in various databases and synced to DNS. A DNS issue caused a new hire's workstation named 'ldap' to...
The text discusses the concept of 'haunted forests' in codebases, which refers to bad code that negatively affects everything around it. It provides guidelines for identifying and clearing haunted forests, and highlights common fe...

0(More) Effective Go

2018-08-05

The text discusses effective Go programming practices, including unbounded iteration, option interfaces, POSIX flags, dynamic flag defaults, error handling, and avoiding mutable globals and parameters.
The text discusses the discovery of a 'cursed WAV' that consistently prevents perfect rips on different brands of optical drive, ripping software, and operating system. It explores the root cause of the issue, which is likely 'wea...
The author discusses the challenges of digitizing music from physical CDs, particularly when the CDs are self-published or have defects. The article details the process of ripping CDs, the errors that can occur, and the methods us...