Philip Z

Philip Z

@philz.dev

263 followers944 following113 posts

Certificate revocation is cool. Have we built software/library revocation? So you can prevent, say, libbrotli from running after the fact?

TIL: hovering over the preview in the menu bar green video icon is how you change your Mac camera's zoom

Some notes on mapping the topology of agents up at blog.exe.dev/topology. No epsilon proofs, continuity, open or closed sets here; just straight up what's running where and what's talking to what.

Also, my bespoke drawing program (based on the excellent Excalidraw) has an agent now.

CI, ideally, is a deterministic function from your source tree to a boolean: are the tests passing or not? To make it fast, parallelize, isolate, visualize, analyze. It need only be as slow as your slowest test. My notes here— blog.philz.dev/blog/what-is...

It's "write (vibe code) your own e-mail client" o'clock over here. Trying to implement "unsubscribe and archive all messages from same sender." Google throwing up speed bumps every step of the way.

If I were to (as the story goes) get a job at Google, fix one bug, and quit, this is the bug: a given calendar event should only be shown once! I went through the motions; Calendear for iOS is on the App Store: apps.apple.com/app/id681658...

New prompting technique in Shelley: talk at your computer while it records your screen. I grossly underestimated how effective this would be. Here's a recording from a boring bug I fixed. It’s that easy. blog.exe.dev/show-and-tel...

I recently reverted to old habit and wrote a "Jenkins job" (it was Buildkite, but pot-ay-to pot-ah-to) to nag me about Fireworks model updates. Eventually, I came to my senses, and used a VM with a timer and an agent instead. So much better.

blog.exe.devTales from the Software Factory: The Cron and the VM - exe.dev blog"My old mindset was wanting a bot to nag me into doing the thing. The new mindset is to have the bot take the task as close to the finish line as possible."

Handy prompt of the day: Produce a mermaid diagram or similar with a full sequence diagram of how <X> happens including all the players and rpcs and such

TIL from @commaok.xyz: git plumbing to synthesize a commit equivalent to resetting to main and cherry-picking a single commit c. git commit-tree -p main \ $(git merge-tree --write-tree --merge-base c^ main c) c^ as "merge-base" "subtracts" the delta b/w main and c^. philz.dev/blog/git-vir...

A wise person once told me that the best wireless microphone is almost as good as a wired microphone. I got a new wireless split keyboard, and really feeling that right now. The right half drs es e craz My kingdom for a split traditionally staggered keyboard with a trackpoint for the index finger.

Gave Shelley (gpt-5.6-sol, in this case) a pointer to www.texttocad.dev and English instructions of a keyboard tilt thingamajig, and it one-shot it. (Keyboard is NocFree&; not my favorite.)

TIL: memfd_create will let me ship a single file binary that needs to bundle a different single file binary without unpacking it to tmp. As the joke goes, I had one problem. I used an obscure Linux syscall. Now I have two problems.

Friends don't let friends complicate their deploys with Spinnaker. Build the 5% you need; having your own deployment console and CD system is fantastic. It's been a game-changer for our deploys at @exe.dev. turbopuffer has one too: turbopuffer.com/blog/control...

turbopuffer.comHow to ship a database every dayWe deploy many database upgrades every day across ~100 public, single-tenant, and BYOC clusters. It would be insane to use Terraform or Helm to do that, so we built our own control plane.

If you use gRPC this is your reminder that the default max message size fits on a very short stack of floppies.

An under-appreciated benefit of running sqlite is seeing your query execution in the same profiles as your application logic. If running a database separately, you have to work to connect the dots when the database is busy.

SaaSpocalypse happens like bankruptcy: gradually first, then all at once. Just this past month, I’ve built several bots/agents for work that correspond to products I’m “supposed” to have bought. Sam Schillace wrote “what if I can just do it faster than talking to you?” That applies to SaaS.

ssh -R and -L are so powerful. Needed to let agent on my VM connect to iOS sim on Mac, far behind a NAT. 1. ssh exe.dev ssh-key add --vm vm ... 2. mac: cat >> authorized_keys 3. mac: ssh -R 1111:localhost:22 vm.exe.xyz 4. vm: ssh -p 1111 user@localhost 5. Shelley happily driving the simulator

Philip Z reposted

A rapidly increasing share of the software I use on a daily basis is bespoke. It makes bugs and papercuts in other software ever more exasperating. Once you've experienced mutable software there's no going back. I think blog.exe.dev/customizing-... may be most important thing ever on the exe blog.

blog.exe.devCustomizing Shelley, Customizing Software - exe.dev blogWith a coding agent living next to your software, customizing it is as easy as asking. Shelley even rebases your changes onto each upgrade.

As far as I can tell, S3 charges you based on the uncompressed size, but surely they compress. It is a failure of their APIs that uploading uncompressed is easier than compressed. LLM providers will also eventually compress your tokens (eg call out to another model to reduce tool output).

Philip Z reposted

We 🐡🐡🐡 exe.dev -- simple, effective, fast. If you've noticed improvements in our user experience over the last 6 months, they were accelerated by how simple exe.dev made things.

exe.devexe.dev - ssh exe.devBuild apps or SSH into a persistent Linux VM. ssh exe.dev.
exe@exe.dev

"I just realized what I wanted was, like, a computer." How @antithesis.com uses exe to give agents real machines, safely: blog.exe.dev/how-antithes...

For an api that’s essentially f: string -> string, the LLM providers have managed to break coding agents at basically every model release.

Always such a delight when folks use your product for cool stuff. bsky.app/profile/exe....

exe@exe.dev

We're going to be sharing more about how people use exe to build cool stuff. First up—a conservationist who turned 40 terabytes of public data into a video game: blog.exe.dev/meet-the-con...