progress
You can get anywhere from anywhere
You need to make the step forward
To do something well you have to like it
If you can't beat the classics
The Evolution of Useful Things
The Structure of Scientific Revolutions
The Usefulness of Useless Knowledge
The illustrated guide to a Ph.D.
Stepping stones in possibility space
An Article by Gordon BranderIf we try to cross this lake by following only the stepping stones that lead toward our objective, we’ll soon get stuck. But what if we let go of our objectives? What if we focused on trying to find new stepping stones instead? This is novelty search. Instead of looking for something specific, you look for something new.
Novelty search isn’t just random, it’s chance plus memory. Together, these ingredients do something interesting.
...Stepping stones are also combinatorial. Each new stepping stone we discover expands our potential to find even more stepping stones. Collecting stepping stones is a luck maximization algorithm. By collecting and combining stepping stones, we might arrive at our destination by accident, or somewhere more interesting!
Stepping out of the firehose
An Article by Benedict EvansIn 1800, if you’d said that you wanted something ‘made by hand’, that would be meaningless - everything was handmade. But half a century later, it could be a reaction against the age of the machine - of steam and coal-smoke and ‘dark satanic mills.’ The Arts and Crafts movement proposed slow, hand-made, imperfect craft in reaction to mass-produced ‘perfection’ (and a lot of other things besides). A century later this is one reason I’m fascinated by the new luxury goods platforms LVMH and Kering, or indeed Supreme. How do you mass-manufacture, mass-market and mass-retail things whose entire nature is supposedly that they’re individual?
...we keep building tools, but also we let go. That’s part of the progression - Arts and Crafts was a reaction against what became the machine age, but Bauhaus and futurism embraced it. If the ‘metaverse’ means anything, it reflects that we have all grown up with this now, and we’re looking at ways to absorb it, internalise it and reflect it in our lives and in popular culture - to take ownership of it. When software eats the world, it’s not software anymore.
How do you know when your paintings are finished?
A Quote by Gerhard RichterWhen nothing disturbs me and I have no idea what to do more, what I could add or destroy. This is very surprising, often, when I’m painting, again and again, every day and it feels like it is never-ending […] and it will never become a good painting. And suddenly, it’s finished. Oh! Good. Thanks.
One Tenth of a Second
An Article by Venkatesh RaoThe details are fascinating, but the central argument — that the birth of modernity can be traced to a meta-crisis spawned by the 0.1s problem — is worth understanding and appreciating whether or not you’re a time nerd like me.
There is no convenient leitmotif, comparable to the 0.1s problem, for our contemporary version of the rhyming conditions, but something very similar to the “tenth of a second crisis” is going on today. I suspect our Great Weirding too involves some sort of limiting factor on human cognition that we haven’t yet properly wrapped our minds around. It isn’t reaction time, but something analogous.
Become a person who actually does things
An Article by Neel NandaIf there’s one thing you take from this post, let it be this: notice the next time you agonize over a choice, or pass up an opportunity. And ask yourself not “what is the right decision” but rather “which decision will get me closer to the kind of person I want to be”.
Four stages of competence
An IdeaIn psychology, the four stages of competence, or the "conscious competence" learning model, relates to the psychological states involved in the process of progressing from incompetence to competence in a skill.
- Unconscious incompetence
- Conscious incompetence
- Conscious competence
- Unconscious competence
Life-friendly design
An Article by Ralph AmmerI suggest that our industrial heritage has been an important preliminary stage. The next step is to carefully examine and implement design values that nurture our joy of life. Just like our “industrial design” illustrated our industrial values, a life-friendly design could express our biophilic values.
This optimistic design approach differs from naive nostalgia or fear of extinction. There is no way back to nature but only forward to nature.
The small web is beautiful
I believe that small websites are compelling aesthetically, but are also important to help us resist selling our souls to large tech companies. In this essay I present a vision for the “small web” as well as the small software and architectures that power it.
Why aim small?
Why aim small in this era of fast computers with plenty of RAM? A number of reasons, but the ones that are most important to me are:
- Fewer moving parts. It’s easier to create more robust systems and to fix things when they do go wrong.
- Small software is faster. Fewer bits to download and clog your computer’s memory.
- Reduced power consumption. This is important on a “save the planet” scale, but also on the very local scale of increasing the battery life of your phone and laptop.
- The light, frugal aesthetic. That’s personal, I know, but as you’ll see, I’m not alone.
Features and complexity
Niklaus Wirth of Pascal fame wrote a famous paper in 1995 called A Plea for Lean Software. His take is that “a primary cause for the complexity is that software vendors uncritically adopt almost any feature that users want”, and “when a system’s power is measured by the number of its features, quantity becomes more important than quality”.
Solving the problem of software bloat
But instead of just complaining, how do we actually solve this problem? Concretely, I think we need to start doing the following:
- Care about size: this sounds obvious, but things only change when people think they’re important.
- Measure: both your executable’s size, and your program’s memory usage. You may want to measure over time, and make it a blocking issue if the measurements grow more than x% in a release. Or you could hold a memory-reduction sprint every so often.
- Language: choose a language that has a chance.
- Remove: cut down your feature set. Aim for a small number of high-quality features. My car can’t fly or float, and that’s okay – it drives well.
- Say no to new features: unless they really fit your philosophy, or add more than they cost over the lifetime of your project.
- Dependencies: understand the size and complexity of each dependency you pull in. Use only built-in libraries if you can.
Raw size isn't enough
A few months ago there was a sequence of posts to Hacker News about various “clubs” you could post your small website on: the 1MB Club, 512KB Club, 250KB Club, and even the 10KB Club. I think those are a fun indicator of renewed interested in minimalism, but I will say that raw size isn’t enough – a 2KB site with no real content isn’t much good, and a page with 512KB of very slow JavaScript is worse than a snappy site with 4MB of well-chosen images.
...[Instead, it's about] an “ethos of small”. It’s caring about the users of your site: that your pages download fast, are easy to read, have interesting content, and don’t load scads of JavaScript for Google or Facebook’s trackers.