A common problem I encounter with computers is the everyday minor friction in workflow: the repetitive but only occasional task, or the tedious multi-step process.
Perfect example: the other day I wanted to batch resize and compress a bunch of images. It’s something I’ve had to do before, but not an everyday problem.
When you have a problem software can solve, it has to be painful enough to warrant the effort and overhead required to build something. Given my level
of knowledge, I could thrash my way through writing a shell script to do this resizing operation (probably). But it’d take me a couple hours of
Googling and trying and retrying to eventually get something that works — all for an operation that might take 7 minutes to just do manually. So
rather than automate, I just deal with it.
This means dozens of daily nags go on nagging —they don’t nag enough to warrant the cost of solving. And they aren’t painful enough to search for and
buy software to fix. So I go on muddling through with hacks, workarounds, and unanswered wishes.
But yesterday with a few prompts Cursor, in 15 minutes I made (or the AI made) a shell script to handle images that I can reuse next time. I didn’t even look at the code it wrote. Just typed 3 bullets of a description of what I wanted in a readme file, and out comes the code. An annoying process goes away, never having to search around for existing tools. Even if a solution did exist, it’d probably be part of a bundle of other features I don’t need; I’d pay for the Cadillac when I only need a taxi.
We’re moving into a new phase where personal software like this might often be the simplest path to a solution. In a world where we’re used to going to Google or GitHub, it’s now even faster to make your own. It’s cracked open new possibilities for people formerly incapable of creating their own tools.
Software used to be costly enough that those “hey this might be cool” ideas were quickly set aside when the cost/benefit wasn’t there. There’s
potential for this new paradigm of digital goods production to radically alter the landscape of what gets built.
Antonio Garcia-Martinez interviews Austen Allred, founder of Lambda School. Lambda charges no tuition and builds its program on the ISA (income sharing agreement), in which you only pay when you get a salaried position in your field of study.
The cool thing about the incentive alignment is that we’re not going to train you to be a sociologist, because it just doesn’t work. A common critique of the ISA model is: oh, now people aren’t going to study poetry anymore. And my response to that is: yeah, we’re not a university, we’re a trade school. The university has 18 million things that it does for you, and we cut cut off a tiny sliver of that, which is: we’re going to help you get a better job, we’re going to help you improve your state in life. That’s all we do.
There are actually more high-paying jobs available than there are people to fill those roles. And that’s true all over the place. I think about it as an optimization problem. You’ve got all this latent human potential, and it’s just kind of bouncing around. Sometimes it goes to school, and it picks stuff at random to study, and you know what you know because of who you’re surrounded by.
Lenny Rachitsky gets into different types of content marketing by startup, plotted on two dimensions: user-generated to editorial, and vitality-driven to SEO-driven. Useful structure here for thinking about where you want to be and what types of content and tactics fit.
Someone in the Fifth Column podcast community put together an archive of all the books mentioned on the show over the years. This’ll greatly extend the reading list, nice mix of classics and modern stuff.
Paul Ford with short piece about low-code tools and the importance of working with data versus writing code:
Code culture can be solipsistic and exhausting. Programmers fight over semicolon placement and the right way to be object-oriented or functional or whatever else will let them feel in control and smarter and more economically safe, and always I want to shout back: Code isn’t enough on its own. We throw code away when it runs out its clock; we migrate data to new databases, so as not to lose one precious bit. Code is a story we tell about data.
I refreshed myself this evening on Bret Victor’s amazing talk from 2012, “Inventing on Principle.”
He’s been working on and promoting his ideas on interactive, responsive tools for creativity are still ahead of their time. We’re gradually getting major improvements with products like Observable, but there still aren’t that many out there. Check out his current work at Dynamicland, a research group working on new interactive tools.
This guide is a great example of how a lot of introductory walkthroughs of technology should work. Every time I’ve worked with new users to help them understand using the command line, Unix commands, or git, people only mimic the individual commands they’re supposed to type without a fundamental understanding of what’s happening.
This’ll now be the first place I send anyone new to git. I know this would’ve helped me a ton in wrapping my mind around how it all worked, and I already had some familiarity with the SVN “trunk” versus “branch” structure. The sketches throughout help especially to visualize the abstractions.
An entertaining talk from Rich Hickey, creator of the Clojure programming language. He talks about the value of simplicity in software design, and spends a decent amount of time refining the semantic differences between “simple” and “easy”. My biggest takeaway: simple is objective, easy is relative.
It gets pretty technical in the CS realm, but good principles for building anything.