It is true that most code simply is not very good, especially at large companies. And we can continue to do not very good software much more quickly and effectively with AI. But AI cannot solve the main systemic problem in the software industry, which is that, in my view, we still haven't quite figured out how to build software well at scale. But to do this requires a sense of craft and real human critical thought.
A port of Tauri to Swift by Miguel de Icaza:
most of the heavy lifting we get directly from the dependencies I brought unmodified from Tauri
It's to Swift what Tauri is to Rust. Wails is to Go. etc.
Only targets macOS and iOS but is open to targeting other platforms.
Interesting (but experimental) sandboxing tool from Anthropic for enforcing filesystem and network restrictions on arbitrary processes at the OS level, without requiring a container.
An almost-too-good-to-be-true kind of tool:
- Deep cleaning: Scans+removes caches, logs, and browser leftovers
- Smart uninstaller: removes apps along with launch agents, preferences, and hidden remnants
- Disk insights: DaisyDisk but for the terminal
- Live monitoring: iStat Menus but for the terminal
An archive of illustration from c.1950-1975, shining a spotlight on pioneering illustrators and their work.
Simon ported a Python HTML5 parsing library to JavaScript with Codex CLI and GPT-5.2. Lots of interesting details but the most interesting part to me is the questions he had at the end:
- Does this library represent a legal violation of copyright of either the Rust library or the Python one?
- Even if this is legal, is it ethical to build a library in this way?
- Does this format of development hurt the open source ecosystem?
- Can I even assert copyright over this, given how much of the work was produced by the LLM?
- Is it responsible to publish software libraries built in this way?
- How much better would this library be if an expert team hand crafted it over the course of several months?
Building a fully-feature docs site with Astro and Starlight, including authentication and CMS support.
To promote the use of native plants in gardens and landscapes, TN-IPC developed a set of three brochures in the 1990s, each designed specifically for East, Middle, and West Tennessee.
Once a semblance of context has been conjured, and through a plentitude of poor attempts, we can finally uncover the solution. The dissonance of bad design must be felt: it’s only when we write repulsive and repetitive code that we realize that there is a better, more succinct, elegant, compositional, and reusable way. It causes pause. A step back to think about the problem deeply. Start over. Rinse repeat. Diametrically, AI Agent work is frictionless; we avoid alternative solutions and can’t know if what we accept is flawless, mediocre, terrible, or even harmful. Quality is crafted by iteration—how else might we imagine good designs if we never explore objectionable ones?
Thought does emerge from writing. Something ineffable happens when you write down a thought. You think something you did not know you could or would think and it leads you to another thought almost unbidden.
What is that something ineffable and how do I know this? I do not belong to some kind of occult organization with special séances on the magic of writing, unless you want to so describe, with some reason, the guild of scholars more generally. Everyone who has written at any substantial length, whether prose or poetry, knows that the process of writing itself leads to previously unthought thoughts. Or to be more precise, writing crystallizes previously half-formulated or unformulated thoughts, gives them form, and extends chains of thoughts in new directions.
Lynn Hunt, in a 2010 essay for Perspectives on History, quoted by Nick Heer
Students, scientists, and anyone else who lets AI do the writing for them will find their screens full of words and their minds emptied of thought.
We define workslop as AI generated work content that masquerades as good work, but lacks the substance to meaningfully advance a given task.
via Simon Willison
Master should always be in a deployable state.
Any commit that lands on master must include unit tests that demonstrate that it works (or at least doesn't break anything).
Incomplete features that will take more than a week or so to develop should be merged to master early protected by feature flags. This avoids long running branches.
I like squash commits: build a feature iteratively in a branch + pull requests, squash to master once it has the tests and documentation bundled together with the implementation. This gives you linear history.
At its best, marketing is a transfer of enthusiasm.
...
At its worst, marketing is a transfer of everything else. Your worst fears, your biggest insecurities, the charades you play. False enthusiasm on display, empty promises, and sloganeering no one believes. It quickly makes you a liar.
A thousand times yes to everything Brent says here. Right inline with what I've been thinking about the past few years regarding what software should be and how we should be able to use it. That this all used to exist in various forms is just salt in the wound of today's mess.
Python ORM that layers on top of SQLAlchemy to provide a simpler, dict-oriented interface.
dataset provides a simple abstraction layer that removes most direct SQL statements without the necessity for a full ORM model - essentially, databases can be used like a JSON file or NoSQL store.
...
The goal of dataset is to make basic database operations simpler, by expressing some relatively basic operations in a Pythonic way. The downside of this approach is that as your application grows more complex, you may begin to need access to more advanced operations and be forced to switch to using SQLAlchemy proper, without the dataset layer (instead, you may want to play with SQLAlchemy’s ORM).
When that moment comes, take the hit. SQLAlchemy is an amazing piece of Python code, and it will provide you with idiomatic access to all of SQL’s functions.
The thing that so many of these AI chat-for-search replacement systems miss is that the browsing part of web browsers.
But more importantly, there’s something else about this whole idea of chatting-with-a-computer-to-get-answers-from-the-web that I find incredibly off-putting: the complete lack of potential for serendipity. Clicking on links and landing on random sites has the potential to take me in unexpected directions. And also the web is filled with creative people who have incredibly interesting sites from a visual point of view. All that is absent in a chat-based world and that’s something I just can’t personally accept for myself. Feels like such a boring way to browse the web.
AI has so much potential and interesting use cases but so far I feel terribly uninspired by what I’m seeing out there.
Bingo.