bytecode.news

MethodHandles: Why You Actually Care

MethodHandle has been in the JDK since Java 7, and most Java developers have a vague sense that it exists somewhere near invokedynamic and lambda internals. David Lloyd's ongoing series covers the mechanics thoroughly. What it doesn't cover is when you'd actually reach for it - and why.

netwatch - htop For Your Network

Terminal Trove mentioned Matt Hartley's `netwatch` tool as its "tool of the week:" netwatch is a network diagnostic tool for the console, and it's pretty comprehensive, showing a ton of information about network traffic in a quite reasonable, useful interface.

Trust is Not An Opinion

Most teams don't trust their code - they trust the people who wrote it, or the streak of days without incident. That's not the same thing, and the difference is becoming harder to ignore. Trust in a system isn't social capital or accumulated momentum: it's demonstrated, repeatedly and verifiably, by the system itself. If you have to read the code to know it works, you don't know it works.

MOS 6502 CPU Emulator Implemented Entirely in PostgreSQL

pg_6502 is a fully functional MOS 6502 emulator running in pure PostgreSQL - registers, memory, and all 151 opcodes implemented as stored procedures. It passes functional test suites. Could you load a Commodore 64 ROM into it? Probably. Should you? That's not our call. But someone's going to port DOOM into PostgreSQL eventually, and this is how it starts. Has anyone seen SkyNet around?

Bring Back Idiomatic Design

John Loeber wants idiomatic design back, and he's right - but the loss of idiom wasn't laziness, it was physics. IBM's Common User Access standard worked because the OS enforced it and the hardware was fixed; move to the browser, then mobile, then AR, and the contract doesn't bend, it voids. We're not in a period of design failure; we're in the same chaotic pre-standardization phase that preceded CUA in the first place. The question isn't how to restore what we had - it's how to recognize the improvised patterns that are already winning, and hold the line when we find them.

GitButler: An Approach to Git Branch Management

Scott Chacon and Markus Feilner have introduced GitButler, a tool that changes how developers work with branches in Git: instead of working on a branch, possibly introducing changes that belong in other issues, developers can work on a cohesive codebase and split changes into lanes that make more sense in context, which can make working with git much cleaner.

Performance Whack-a-Mole

Optimization isn't a single measurement and a fix. It's whack-a-mole: find the loudest problem, fix it, then look at what the problem was hiding. Jonathan Vogel's second installment in his Java performance series shows this process live, with JFR recordings and flame graphs - including a contention bug that was completely invisible until he pushed the concurrency high enough for it to matter.

The Economics of the Modern Web: The Three Percent Problem

We've decided, collectively, that the things we love should be free and paid for by someone else. Thunderbird just put a number on how that's working out: 3% of their users actually invest in the project. We want good software, honest journalism, and open source tools that last, but we just don't want to be the ones paying for them. That's a problem.