Sign in

Patrick Smith

@royalicing.com
604 followers 1K following 226 posts

webassembly in elixir: useorb.dev · components everywhere: components.guide · blog: royalicing.com · he/him

PostsRepliesMedia
Patrick Smith @royalicing.com · 28/09/2026
Writing code is now easy, but it remains hard to encode people’s needs (product design) and decode people’s minds (marketing).
000
Patrick Smith @royalicing.com · 27/09/2026
I mocked up if the Finder _was_ the Siri app and I think it could work pretty great! The name is a natural fit.
A mockup of the features from Golden Gate’s new Siri app integrated into the Finder
000
Patrick Smith @royalicing.com · 26/09/2026
Steve Jobs likened computers to a bicycle for the mind. AI is a rocket for the mind. Directed, it can accelerate you to the moon. Undirected, it can noisily consume energy and explode into nothingness.
000
Patrick Smith @royalicing.com · 25/09/2026
Much of the appetite for agents exists because the web added so much friction like Subscribe to Our Newsletter, Accept All Cookies, Open in App, Enable Notifications, Share on X, Your Session Has Expired, Sign In With Google, Verify It’s You. We desire that friction gone.
000
Patrick Smith @royalicing.com · 25/09/2026
Good software helps people make order from chaos. Unconstrained coding agents create chaos from orders.
011
Patrick Smith @royalicing.com · 10/09/2026
help me I’m addicted to social media posts turning 90s games into pastries. It’s got me DOOM scrolling
010
Patrick Smith @royalicing.com · 10/09/2026
I hope the iPhone Duo supports Sidecar — the feature that lets you use an iPad as Mac’s external display. I currently carry around a MacBook Air and iPad Pro. Being able to use my iPhone as an external display would be a killer feature.
020
Patrick Smith @royalicing.com · 26/08/2026
The fallacy of agentic coding is believing you don’t need to understand the fallacies of distributed computing.
021
Patrick Smith @royalicing.com · 22/08/2026
Prototype in one programming language, ship in another. A great way to make state smaller, APIs more obvious, implementations simpler.
010
Patrick Smith @royalicing.com · 20/08/2026
Coding agents are infinite state machines. Your job is to make them produce useful finite state machines.
010
Patrick Smith @royalicing.com · 18/08/2026
Henry Ford supposedly said: “If I had asked people what they wanted, they would have said faster horses.” Faster pull requests sounds to me like a faster horse. We need to find the automobiles for the agentic coding age, and master their manufacturing. royalicing.com/2026/faster-...
royalicing.com
Faster pull requests are faster horses
120
Patrick Smith @royalicing.com · 17/08/2026
Markdown specs are a laundering scheme for decision-avoidance.
000
Patrick Smith @royalicing.com · 16/08/2026
“Nothing is overdue.” A perfect example of how fewer features can make a better product. marco.org/2026/08/14/u...
marco.org
Unforgetful – Marco.org
010
Patrick Smith @royalicing.com · 14/08/2026
Making informed decisions is the bottleneck, and you can use AI either to help make informed decisions, or clog the bottleneck with even more decisions.
000
Patrick Smith @royalicing.com · 14/08/2026
Being a systems programmer is a bit like being a crackpot dictator Finally you get to run the state Only to be brought down by resource management
000
Patrick Smith @royalicing.com · 11/08/2026
Reading “Steve Jobs in Exile” what’s surprised me most is how he doesn’t sound too different to the post-1997 Jobs from “Apple in China”. There’s still obsessiveness that leads to people endlessly toiling. It’s not until iPod on Windows that his approach seems to succeed!
000
Patrick Smith @royalicing.com · 10/08/2026
(Someone looking at my PR) “Maybe she’s born with it. Maybe it’s Fable-line”
010
Patrick Smith @royalicing.com · 09/08/2026
Everyone talks about web scale but not enough people talk about web rotate
010
Patrick Smith @royalicing.com · 09/08/2026
Is Google Gemini the Macintosh, Google Search the Apple II, Jeff Dean akin to Woz or Bill Atkinson, and Discovery Loop like General Magic?
000
Patrick Smith @royalicing.com · 21/07/2026
QIP lets you write cross-platform components in Zig or C, which are imperative languages. But I love opening a file and seeing how declarative it feels. Here we see clearly what the memory capacity is and what the input/output types are.
A self-contained Zig file to convert a JPEG to a BMP. The input JPEG can be a maximum of 8MB, and the output BMP can be a maximum of 32MB.
000
Patrick Smith @royalicing.com · 15/07/2026
Indispensable atoms of the computing universe: - Transistor - Datagram - TCP segment - Transaction - URL - S3 object - Token Each invention carefully draws a boundary around essential complexity, encapsulated as a dependable unit with a stable contract and clear failure modes.
000
Patrick Smith @royalicing.com · 11/07/2026
I think the BEAM really excels at I/O. If an Elixir process crashes you can be assured any files and sockets it has will be cleaned up for you. And Zig and WebAssembly excel at pure computation. If you constrain the contract you get determinism and this makes testing and composability easier.
000
Patrick Smith @royalicing.com · 10/07/2026
Article link: royalicing.com/2026/agents-...
royalicing.com
Agents of Our Own Illiteracy
010
Patrick Smith @royalicing.com · 10/07/2026
I’m concerned our software industry is drifting towards illiteracy.
I worry our software industry is drifting towards illiteracy.

We don’t want to read changelogs. Dependabot just opens a PR we mindlessly merge.

We don’t want to review PRs. Codex can digest them, highlight concerns, and write the alterations.

We don’t want to code up prototypes. Claude Code can explore five ideas before breakfast.

We don’t want to learn what new capabilities our platforms have. We want to watch a video of someone reading and download a set of Markdown skills.
100
Patrick Smith @royalicing.com · 08/07/2026
I think wasm is a perfect target for coding agents because of its determinism and portability. Making the module interface constrained is key: qip.dev
qip.dev
QIP: reproducible rendering
110
Patrick Smith @royalicing.com · 08/07/2026
The official sqlite3.wasm takes 146ms, my custom WebAssembly module takes 3.5ms. And one is 849 KB, the other is 19 KB.
110
Patrick Smith @royalicing.com · 08/07/2026
Here are the numbers running in Chrome to convert a SQLite table to CSV:
Phase	QIP component	Official sqlite3.wasm
Download (uncompressed)	19 KB	849 KB + JS glue
Compile + instantiate	0.3 ms	46.6 ms
Open database (68 KB)	0.0 ms	0.6 ms
Read table → CSV (891 rows)	1.3 ms	8.8 ms
Total	3.5 ms	146 ms
✓ Both readers produced the identical 891-row CSV (31,420 bytes).
110
Patrick Smith @royalicing.com · 08/07/2026
Yes I think there’s been a mistake where the language features that authors want (I want to import a JSON file from disk and have it be inlined) and that browsers need have been conflated. The import spec should be broken into multiple levels or be its own thing IMO.
000
Patrick Smith @royalicing.com · 08/07/2026
Like with REST it would seem ambiguous to me if the endpoint wasn’t found (as it not known by the server) or the resource wasn’t found (as it might have been deleted). I personally think using HTTP status for extra meaning is a leaky abstraction
100
Patrick Smith @royalicing.com · 08/07/2026
Isn’t the point of these import assets to be a common syntax bridge for build tools that would load from disk? And if the file was missing it would be build error?
110
Patrick Smith @royalicing.com · 08/07/2026
Is the “proper rest way” documented in an official specification?
100
Patrick Smith @royalicing.com · 08/07/2026
I’m exploring reading SQLite databases via custom WebAssembly vs using the official sqlite3.wasm
100
Patrick Smith @royalicing.com · 07/07/2026
Ask not what your country can do for you, ask Claude what you can do for your country when you’ve been replaced by AI
000
Patrick Smith @royalicing.com · 24/06/2026
If programming languages are said to be Turing-complete, are coding agents Turing-autocomplete?
030
Patrick Smith @royalicing.com · 24/06/2026
Instead of primarily more code what about using coding agents to reduce state? Less state means fewer moving parts, fewer possible failure modes, and fewer bugs. The code will be easier to digest and understand as a reviewer.
000
Patrick Smith @royalicing.com · 18/06/2026
Coding agents offer a reset of software orgs. Over years we’ve separated frontend from backend, devops, ux, etc. Zoom out and you’ll see latency, durability, consistency & simplicity are what makes good software. We can bypass silos that lead to these qualities being worse.
431
Patrick Smith @royalicing.com · 16/06/2026
Getting excited by coding agents because they’ll let you write way more code is a bit like flooding a lake and getting excited because you’ll be bit by way more mosquitoes.
010
Patrick Smith @royalicing.com · 31/05/2026
QIP Components: - Quick for AI to make & quick for users to run. - Isolated sandbox with no file system, network, or environment access. - Portable components that work identically on web, server, and native.
010
Patrick Smith @royalicing.com · 04/05/2026
Agree with this. The everything upfront spec approach just doesn’t sense to me. I need to run and use what I’ve made to know to do next. youtu.be/IZRWzXjaXxM
youtu.be
Sculpt, not Spec
YouTube video by Scott Hanselman
010
Patrick Smith @royalicing.com · 02/05/2026
What if the power of AI-generated UIs is not in assembling bespoke UI components on the fly, but in accelerating the user to navigate and knowing which parts to *remove* to help them focus?
010
Patrick Smith @royalicing.com · 13/04/2026
AI coding agents can add more entropy to your project. The hard things are: - Adding value for users. - Removing entropy.
110
Patrick Smith @royalicing.com · 13/04/2026
Bragging about your AI token spend is like boasting how much fuel you used driving to the gym.
000
Patrick Smith @royalicing.com · 04/04/2026
The purpose is not to make the world more complicated. We don’t want to be a parasite that the user wants to remove. We don’t want to use ever more resources because it allowed us a shortcut. It’s to simplify and ease. To one day be happily removed because the job is done.
001
Patrick Smith @royalicing.com · 04/04/2026
The purpose of my software is to remove entropy from the world. A person uses my software and their life is simpler so they can focus on what matters to them. We do this by consuming a little electricity and a little storage space. This is design *and* engineering of systems.
110
Patrick Smith @royalicing.com · 27/03/2026
I’ve been over time rethinking opinions of event systems and observable property pubsub as now being overkill. Rather than adding an immediate-mode API over a retained-mode API like React does over the DOM, let’s start with immediate-mode. youtu.be/2Tjh3cr_8d4
youtu.be
Jonathan Blow on event system
YouTube video by Jonathan Blow highlights
010
Patrick Smith @royalicing.com · 26/03/2026
- Avoid caching, just recompute by default and try to make that fast. - Strong invariants where you assert on function inputs are crash fast when they fail. No clever error recovery. - Iterating towards the simplest contracts I and the agent can design.
010
Patrick Smith @royalicing.com · 26/03/2026
More constraints for me at the moment looks like: - Static memory allocation, so avoiding dynamic allocation especially based on inputs. - Linear flow of code, reducing control flow, conditional edge cases, many granular states. Try to put everything through the same general path.
110
Patrick Smith @royalicing.com · 21/03/2026
Increasing constraints is the best way to maintain momentum long term. Fewer, more-focused features. Fewer edge cases due to stricter data communication and reduced state. Improved security from simpler overall system design. We can use AI to help with these things!
110
Patrick Smith @royalicing.com · 21/03/2026
Fewer constraints sounds freer: we can build whatever we like! As fast as we can! But that freedom then restricts what you can do later. More features to support. More edge cases to consider. Greater chance of security holes or data corruption. Each entangling one another.
110
Patrick Smith @royalicing.com · 21/03/2026
AI coding presents us a fork in the road to increase or decrease constraints. More constraints means stricter security, tighter tolerances, fewer lines of code, less moving parts and state. Reduced constraints means more lines of code, laxer security, more state and complexity.
220