QIP: Quick Isolated Portable WebAssembly components: https://xitter.cf/t.co/fhKA3m9FXV blog: https://xitter.cf/t.co/EtrtGaXYON

Melbourne, Australia
Joined August 2013
My WebAssembly debugger lets you time-travel with your scroll wheel. WebAssembly (and Ghostty) are so fast that a step back just reruns from scratch.
I’m working on a WebAssembly debugger. You can even time-travel backwards!
34
127
9
1,640
119,907
The repo for the Flurry screensaver deserves many more stars: github.com/calumr/flurry
21
Patrick Smith retweeted
Replying to @valvesxyz
I like to look at claims like this in case I can improve Ghostty. I grabbed your source and immediately spotted the issue: your read loop overwrites a 64 KiB ring. Everything older is discarded unparsed per tick. You're faster because you're not actually terminal emulating. It means the number isn't a throughput number. In a kitten benchmark run at the rate you're claiming, roughly 6.6 MB arrives per 60 Hz tick and 64 KiB of it gets parsed. You're read(2)-ing 100% of the data and parsing about 1% of it. There are other minor issues (a small fixed scrollback in a preallocated ring buffer, no grapheme clustering, throwing away data like OSC 8 URIs, etc.), but the major one is simply that you're discarding ~99% of the input. For plain text, e.g. your cat benchmark, the final screen ends up looking right, but the scrollback is missing 99% of the file and each retained chunk starts mid-line. As soon as there are escape sequences in the dropped spans, your emulator is fully out of sync and invalid: a cut inside a CSI prints the parameters as text, and any SGR, mode, title, or alt-screen change in the gap is just... gone. FYI, this is why I don't like when people point at refterm as a terminal benchmark. refterm implements a TINY subset of what a terminal emulator must support, it's closer to a fast file reader, not a terminal emulator. I also don't mean any shade by this. I like to look at technology objectively to try to learn something and improve my own craft and work. So I'm sharing what I found. I modified your code very slightly to parse on every full buffer (rather than per tick). And the results are attached. Both use main commit in each repo at the time of this post. Note the graph is in log scale, the discrepancy between performance for things like Kitty images is measured in GB/s.
32
22
16
1,012
18,131
Patrick Smith retweeted
Buckle up because this is some LinkedIn-quality bullshit. There's a cliche story that goes like this: Henry Ford had a problem with a generator no one could fix so he called in an engineer Charles Steinmetz. Charlie studied the machine for a while, made a chalk mark on it, workers adjusted that spot, the generator sprung back to life, and he handed over a bill for $10,000. Ford was shocked and demanded an itemized invoice. Steinmetz replied: Making a chalk mark: $1 Knowing where to make the mark: $9,999 (and that's what I learned about B2B SaaS) Anyway cool story but the point is that this is the same for software engineering! Code is getting cheaper by the second. Who gives a shit how many PRs you can generate? Any idiot can do this now. The real skill is knowing *what* PR to generate. As of 2026, I think sufficiently hard engineering projects still require these skills that you can only acquire by actually understanding what code is doing.
10
5
1
95
3,976
Patrick Smith retweeted
Gradient: You can ask for a design goal and let the math find the props. “No cut-off descriptions on any common screen, with the shortest page height”, and gradient descent finds the best prop combinations (gap, padding and card width) for that goal.
1
1
44
3,915
Who can beat my implementation for unescape_html? calculated.world/submissions…
102
I’d like to publish qipx to npm. These names do not sounds similar to me at all.
94
Here’s lynn. It combines a shell with agents. Spawning an agent is like spawning a process. You can pipe between agents and different models. You can write `git status` without burning any tokens. Agents are read-only by default and only get write privileges when you decide. cargo install lynn
1
1
328
Patrick Smith retweeted
LLMs make it easier than ever for normal software to get down to zero allocations.
3
2
60
4,584
Is this really a public company then?
1
87
We should think about what Hyrum’s law teaches us about security in the age of AI. Hyrum’s law states: With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody. We can restate this for AI attacks: With a sufficient number of attacks of an API, it does not matter what you verify in behavior: all potential vulnerabilities of your system will be discovered by somebody.
96
Patrick Smith retweeted
Got a cheap embroidery machine off amazon for $300 where the biggest complaint is the mandatory $12/mo app that you’re forced to use. Had ChatGPT create its own app that communicates with the machine. Generative art patches incoming!
127
131
45
4,593
200,642
Patrick Smith retweeted
Corrupt autocracies prefer to do business with other corrupt autocracies because the profits are personal on both sides, not for the state or the country. No oversight, no investigations.
The US is willing to betray its closest allies in Europe, a market of 450 million people and an economy worth nearly $20 trillion, just to cut shady, corrupt deals with Putin's Russia, an economy roughly the size of Italy's. What an absolutely insane foreign policy.
63
1,760
29
5,902
68,126
Patrick Smith retweeted
Yesterday, someone posted a task runner claimed to be 39x faster than Turborepo. I got really excited, thinking they found some edge case in Turborepo and that I could make something way faster. I open the benchmark repo, and its just straight up, flat out incorrect. Like, not even sorta useful. Not only was it not measuring the task runner parts of the script, it was overfit to a highly specific, completely unrealistic workload. 💀 The entire project is obviously Opus 5.5 vibe coded and Opus cheated the goal. Easy to miss if you're not experienced in build systems. Forgivable! So, I open a PR to show that the algorithm being used can also make scheduling slower, by any arbitrary factor, with only a tiny adjustment. I chose 100x slower than Turborepo for demonstrative purposes. The author fixed some of the problems but there are still grave issues. They're still comparing on an overfit bench that doesn't hold up when you insert the slightest variable, and *insisting* that its right. It is very obviously incorrect, but oh, well. After revision, Turborepo is only 1.36x slower. Down from 39x, but a more realistic number nonetheless. So I figure: "Great! There must be something I can learn to make Turborepo faster." I go digging, and it turns out the other tool is only faster still because it has correctness bugs. Once they correct those, they'll be roughly on par with Turborepo. On top of that, the numbers they post now report with a mix of "% faster" and "✗ faster", using "% faster" whenever the difference isn't big enough to make their tool look good. 1.36x gets turned into "36%", which looks like more than it is to a casual observer. This is a story of how I thought I was going to speed up Turborepo by 39x, and got nothing out of it. I'm not mad; I'm just disappointed. 😄
11
7
8
332
29,968
The weight of this feels great.
71
Patrick Smith retweeted
43
2,364
75
30,678
283,923
Patrick Smith retweeted
Actual expertise is the most important thing right now in tech. Knowing how things work, and how they are implemented on a deep level is more important than ever.
13
26
5
380
5,926