Sign in

Paul Butler

@paulbutler.org
3.7K followers 686 following 266 posts

I build jamsocket.com and write digest.browsertech.com

PostsRepliesMedia
Paul Butler @paulbutler.org · 31/12/2025
It sucks how a few bad cults give all cults a bad name.
080
Reposted by Paul Butler
Anya Prosvetova @anyalitica.dev · 31/12/2025
A #Genuary design becomes a Xmas card. These cards are now on the way to participants of #ptpx25! Thank you @paulbutler.org for organising it! Happy New Year! #ptpx #creativecoding #p5js
0122
Paul Butler @paulbutler.org · 13/12/2025
6th annual #ptpx by country 🇺🇸 USA — 34 🇩🇪 Germany — 16 🇫🇷 France — 13 🇨🇦 Canada — 5 🇳🇱 Netherlands — 5 🇬🇧 United Kingdom — 3 🇨🇭 Switzerland — 3 🇮🇹 Italy — 3 🇵🇹 Portugal — 2 🇪🇸 Spain — 2 🇦🇹 Austria — 1 🇫🇮 Finland — 1 🇧🇪 Belgium — 1 🇹🇭 Thailand — 1 🇮🇪 Ireland — 1 🇳🇿 New Zealand — 1 🇸🇪 Sweden — 1 🇸🇮 Slovenia — 1
070
Reposted by Paul Butler
Local-First Conf @localfirstconf.com · 18/06/2025
Watch @paulbutler.org talk about CRDTs as a temporal data structure. youtu.be/b4fDzmNE50U?...
youtu.be
Paul Butler - CRDTs as a temporal data structure
It's often useful in applications to have a historic view of data (e.g. "revision history" in GDocs, or the commit log in Git). Storing this efficiently requ...
071
Reposted by Paul Butler
Local-First Conf @localfirstconf.com · 27/05/2025
"CRDTs as a temporal data structure" @paulbutler.org gave a brilliant talk, explaining how to use the Yjs CRDT toolkit to store temporal data.
192
Paul Butler @paulbutler.org · 11/05/2025
When I was getting my BMath people would ask “oh, what will you do with that, teach?” and I’m jealous of people taking math now who can come back with “yeah that or pope”.
Born in Chicago, Illinois, in 1955, Pope Leo XIV graduated from Villanova with a bachelor's degree in mathematics in 1977. The pope is a member of the Augustinian religious order and was elected the top leader of the order twice.
0393
Paul Butler @paulbutler.org · 07/05/2025
My pet peeve is when people use “misnomer” in a way that is in itself a misnomer.
030
Paul Butler @paulbutler.org · 01/05/2025
Claude Code now supports resuming sessions, which means that session logs (including tool/llm calls) are stored locally. My curiosity got to me, I figured out the format and wrote a CLI tool to dump specific conversations github.com/paulgb/claud...
github.com
GitHub - paulgb/claude-viewer: A tiny Rust CLI app to dump the full tool call history of a Claude Code session.
A tiny Rust CLI app to dump the full tool call history of a Claude Code session. - paulgb/claude-viewer
0163
Paul Butler @paulbutler.org · 30/04/2025
I replaced all my fancy notetaking tools with a vibecoded bash script called `note` that opens ~/notes/{date}.md in an editor, and it's been great.
7320
Paul Butler @paulbutler.org · 28/04/2025
Now that it's so easy to create software for personal use, I want a way to have a bunch of personal mini apps in a monorepo and automatically deploys all of them behind basic password auth. Before I build it, does this exist? Ideally something I can self-host on a VPS.
3111
Paul Butler @paulbutler.org · 25/04/2025
This is a talk I've wanted to give for a while, and I can't think of a better place to give it!
080
Reposted by Paul Butler
Chris @chris.blue · 22/04/2025
Today marks SlateDB’s one year anniversary! It’s been a lot of fun. Thanks to @rohanpd.bsky.social @flaneur2024.bsky.social @almog.ai @vigneshc.bsky.social @paulbutler.org Jason Gustafson, David Moravek, and many others for joining the project. 😀
slatedb.io
SlateDB - An embedded storage engine built on object storage | SlateDB
Description will go into a meta tag in <head />
0165
Paul Butler @paulbutler.org · 14/04/2025
I met a couple who introduced themselves as engineers but instead of writing JavaScript they drive trains.
190
Reposted by Paul Butler
e.w. niedermeyer @niedermeyer.online · 09/04/2025
markets soar as investors realize that mommy didn't actually disappear, she was just hiding behind her hands
75125952321
Paul Butler @paulbutler.org · 07/04/2025
Years in, WebAssembly on the server remains incredibly secure because you still can't do anything with it.
3577
Paul Butler @paulbutler.org · 04/04/2025
Always nice getting surprise #ptpx mail! Bottom left is @verytiredrobot.bsky.social’s exploration of latent space of a facial autoencoder. Top and right, Daniel Catt’s work using a stamp with a plotter, and a nice photo booklet of the process!
Two post cards, one in the left has two faces plotted in a pointillist style, and the one on the right has variations of the word “FUCK” stamped in different colors. A booklet on top shows a picture of the stamping process.
171
Paul Butler @paulbutler.org · 02/04/2025
Never ask a barber if you need a haircut or a foundation model company how long your tool call descriptions should be.
020
Paul Butler @paulbutler.org · 02/04/2025
Very speculative question for people smarter than me: if we ran 100 replays of humanity from 1955 or so, in many is there a manned moon landing before y2k? Thinking about failure scenarios like a series of failures dampening political support, or global events destroying the necessary conditions.
160
Reposted by Paul Butler
Jake Lazaroff @jakelazaroff.com · 25/03/2025
are there really so many people expensing onlyfans that it needs to be in the autocomplete dropdown 🫣
Reimbursement form with a "Merchant" dropdown. "Lyf" is entered as a search query and the results are "Lyft" and "Onlyfans"
1162
Reposted by Paul Butler
Jake Lazaroff @jakelazaroff.com · 24/03/2025
working on some forevervm experiments for @jamsocket.com… ever wanted your AWS account to diagram your infrastructure for you?
151
Paul Butler @paulbutler.org · 20/03/2025
This was fun to host! We’re doing it again in NYC next week, it’s full but I’ve saved a few spots for people building things on MCP ;) lu.ma/mcp-nyc
lu.ma
MCP Lightning Talks NYC · Luma
Anthropic's Model Context Protocol is bridging the gap between agents and applications. Join us for technical talks and hear what people are building with…
081
Reposted by Paul Butler
Ian @woolie.meowmeow.city · 18/03/2025
"Speed" but it's a software update
212132
Reposted by Paul Butler
Chris @chris.blue · 17/03/2025
SlateDB 0.5.0 is out! Features: - Checkpoints - Clones - Read only client - Split/merge database foundation - TTL filtering on reads - Last version with breaking byte format changes By the numbers: - 62 commits - 2 new contributors - 10 total contributors github.com/slatedb/slat...
github.com
Release v0.5.0 · slatedb/slatedb
What's Changed Refactor Block Tests to Use Table-Driven Test Cases by @samsond in #410 Update await calls in README.md by @criccomini in #425 chore: Apply table driven test for sst.rs by @jeffreyl...
2213
Paul Butler @paulbutler.org · 14/03/2025
Thinking of doing a Cursor vs. Windsurf video where I just use Claude Code in the terminal of both, as a bit.
1161
Paul Butler @paulbutler.org · 12/03/2025
People who primarily don't use Windows, how do you test things on Windows? Thinking of getting a cheap Windows machine, but wondering if there's a cloudy way.
640
Paul Butler @paulbutler.org · 11/03/2025
Setting clocks for DST. My microwave clock has AM/PM. How down bad do you need to be to want to know what half-day it is from a microwave?
3100
Paul Butler @paulbutler.org · 08/03/2025
It seemed impossible to me that Gemini was able to decode a hidden message this fast. I finally had a chance to reconstruct the chain of thought and tool calls from logs and figure out how it did it.
150
Paul Butler @paulbutler.org · 22/02/2025
Sorry guys, mom says I’m not allowed to vibe code on school nights.
050
Paul Butler @paulbutler.org · 22/02/2025
A Bluesky feed that only shows posts with external links from people you follow would be fun, does anyone know if one exists?
180
Paul Butler @paulbutler.org · 22/02/2025
One take-away from AI Engineering Summit: people are pretty excited about Model Context Protocol. A two-hour MCP talk got moved to a 2x sized room to meet demand and still filled up.
0122
Paul Butler @paulbutler.org · 20/02/2025
TIL Berkshire Hathaway is a trillion dollar Fortune 5 company because Buffet bought it for revenge in 1965. en.m.wikipedia.org/wiki/Berkshi...
In 1962, Warren Buffett began buying Berkshire Hathaway stock for his investment fund, Buffett Partnership Ltd., at $7.50 per share, anticipating that as the company liquidated textile mills there would come a tender offer when he could sell the shares at a profit. A year later, Buffett's fund owned 7% of the company.[17] In 1964, Buffett offered to sell his shares back to the company for $11.50 each.[17] Seabury Stanton, the manager of Berkshire Hathaway, told Buffett orally that he had a deal.[17] A few weeks later, Warren Buffett received the tender offer in writing, but the tender offer was for only $11.375 per share. Buffett later admitted that this lower, undercutting offer made him angry.[18] Instead of selling at the slightly lower price, Buffett bought more of the stock at an even higher price to take control of the company and fire Stanton; Stanton and his son resigned in 1965.[19] However, this left Buffett's fund with a major interest in a declining textile business.
080
Paul Butler @paulbutler.org · 17/02/2025
Go ahead, include anything I write in your AI training set. I prefer if you do. I don’t want to have to use an LLM that isn’t familiar with my canon.
070
Paul Butler @paulbutler.org · 14/02/2025
Someone asked me about the difference between UTF-8 and Unicode, here's my explanation in case others find it helpful.
Hi! The way to think about it is that Unicode is just a way to encode text as a series of numbers (codepoints), but Unicode itself doesn’t specify how those numbers are stored on disk or sent over the wire in a network.

One obvious way to store the numbers is to encode them as four-byte integers (Unicode codepoints will never exceed the limit of what can be stored in four bytes), which is what UTF-32 does.

That’s inefficient though, because frequently-used and infrequently-used codepoints all take up four bytes. UTF-8 is an encoding scheme for Unicode that lets you encode frequently-used codepoints with as little as one byte (in the case of ASCII chatacters).

UTF-16 falls in between, representing everything as either two bytes or four bytes.
14511
Paul Butler @paulbutler.org · 14/02/2025
ForeverVM is open for business! (well, free for now, but you can sign up and try it out)
061
Paul Butler @paulbutler.org · 13/02/2025
After my post on smuggling arbitrary messages through unicode, some people asked me if AI could decode it. Gemini Flash is pretty fast at it! Have had good luck with Claude too. So far no dice with OpenAI models. This uses block.github.io/goose/ and forevervm.com
1143
Paul Butler @paulbutler.org · 12/02/2025
My post is on the front page!
3290
Reposted by Paul Butler
Just Vervaart @datajournalist.nl · 10/02/2025
This is really clever and fun! @paulbutler.org found a way to hide text 'in' an emoji by hacking the way unicode works. paulbutler.org/2025/smuggli... He also build a tool to encode en decode your own messages. 😎󠅇󠅟󠅧󠄑󠄐󠅃󠅟󠄐󠅩󠅟󠅥󠄐󠅑󠅢󠅕󠄐󠅤󠅘󠅕󠄐󠅓󠅜󠅕󠅦󠅕󠅢󠄐󠅟󠅞󠅕󠄐󠅤󠅘󠅑󠅤󠄐󠅖󠅙󠅗󠅥󠅢󠅕󠅔󠄐󠄹󠄐󠅘󠅙󠅔󠄐󠅑󠄐󠅝󠅕󠅣󠅣󠅑󠅗󠅕󠄐󠅙󠅞󠄐󠅝󠅩󠄐󠄲󠅜󠅥󠅕󠅣󠅛󠅩󠄐󠅠󠅟󠅣󠅤󠄯󠄐󠄻󠅥󠅔󠅟󠄗󠅣󠄐󠅤󠅟󠄐󠅩󠅟󠅥󠄑 emoji-encoder.vercel.app?mode=decode
44814
Paul Butler @paulbutler.org · 08/02/2025
New blog post: smuggling arbitrary data through an emoji paulbutler.org/2025/smuggli...
paulbutler.org
Smuggling arbitrary data through an emoji
6259
Paul Butler @paulbutler.org · 30/01/2025
Two nice updates to foreverVM today thanks to @jakelazaroff.com: - charts! If a Python call returns a matplotlib chart, we render it. - new example buttons on forevervm.com
291
Paul Butler @paulbutler.org · 29/01/2025
I finally get to share what we've been up to at @jamsocket.com! We built the code execution abstraction I've always wanted: a REPL that “runs forever”, using memory snapshots to hibernate behind the scenes so that it costs almost nothing to preserve state while idle.
2292
Reposted by Paul Butler
Jake Lazaroff @jakelazaroff.com · 29/01/2025
we've been cooking
1121
Paul Butler @paulbutler.org · 28/01/2025
The hardest part of working with model context protocol server is counseling Claude through his learned helplessness.
2181
Paul Butler @paulbutler.org · 26/01/2025
Private equity gets a bad rap, but is there anything inherently bad about it, or is it just that if you make a lot of bets on companies that were headed for bankruptcy some of them will fail in spite of your efforts?
420
Paul Butler @paulbutler.org · 26/01/2025
You can hide arbitrary messages in one emoji character by abusing unicode variation selectors emoji.paulbutler.org
3305
Paul Butler @paulbutler.org · 24/01/2025
When someone introduces themselves as Jason I like to say “oh, like the human-readable language independent data interchange format?” and see how long they just stare for.
4182
Paul Butler @paulbutler.org · 15/01/2025
Cheat codes in video games are neat but did you know if you are in an argument with someone on the internet you can just hit command+w and walk away without taking damage?
0100
Paul Butler @paulbutler.org · 13/01/2025
A little peek at something we're working on at @jamsocket.com
092
Paul Butler @paulbutler.org · 05/01/2025
I like how they lock some of the levels until you complete missions.
2252