Patrick Smith

Patrick Smith

@royalicing.com

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

606 followers1K following229 posts

Have developers that are allergic to marketing ever had more of a fantasy fulfilment than build it (with agents) and they (also agents) will come?

Patrick Smith reposted

If you make HTTPS requests or have other TLS clients and care about MITM attacks, you need to update today. If you run Go: go get go@1.27.3 If you run Homebrew: brew update brew install ca-certificates If you run Linux, maybe stay off the internet for now.

Filippo Valsorda@filippo.abyssdomain.expert

🚨 Six WebPKI Intermediate CAs are compromised. This is bigger than Heartbleed, but a client-side issue. Anything that verifies certificates against public roots, like most TLS clients, is/was affected. Details, live test, patched versions and workarounds at emudhra.we-have-a-problem.com Act now.

If we aren’t reviewing code we should review the protocols that interface with users and outside systems, and the shape of data that persists in our own system.

Writing code is now easy, but it remains hard to encode people’s needs (product design) and decode people’s minds (marketing).

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.

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.

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.

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.

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

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!

Is Google Gemini the Macintosh, Google Search the Apple II, Jeff Dean akin to Woz or Bill Atkinson, and Discovery Loop like General Magic?

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.

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.

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.

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.

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.

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.

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?

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.

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.

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.

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.

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!

All my career I’ve had imposter syndrome. It’s a terrible worry of thinking the wrong thoughts, saying the wrong words, deciding the wrong decisions. But I sought knowledge & peers that led to growth. I am concerned that people will redirect so much to AI they never grow.

HTTP’s If-None-Match and If-Match must be one of the widest-deployed synchronization protocols. If-None-Match (GET): server sends 304 if the requested etag is still current. If-Match (PUT/POST): server sends 412 Precondition Failed if the requested etag is _no_ longer current.