Flaws, Faults, Imperfections
Merely a building
Bells
Roughness
White cloth
The aesthetic potential of flaws
Things that shine and glitter
We find it hard to be really at home with things that shine and glitter. The Westerner uses silver and steel and nickel tableware, and polishes it to a fine brilliance, but we object to the practice. On the contrary we begin to enjoy it only when the luster has worn off, when it has begun to take on a dark, smoky, patina.
A sterile sameness
Another kind of random variation involves the interaction of the craftsman’s skill and the texture of materials. The letterforms of Griffo and Colines were cut with immense care. But the letters they cut were struck by hand in copper or brass, then cast and dressed and set by hand, inked by hand with handmade ink and printed by hand in a handmade wooden press on handmade paper. Every step along with way introduced small variations planned by no one. In the world of the finely honed machine, those human-scale textures are erased. A sterile sameness supervenes.
The computer is, on the face of it, an ideal device for reviving the old luxury of random variations at the threshold of perception (quite a different thing from chaos). But conventional typesetting software and hardware focuses instead on the unsustainable ideal of absolute control – and has been hamstrung in the past by the idea of a single glyph per character. There have been several recent attempts to introduce a layer of random variation, but all have had to work against the grain of technological development.
Delight in the imperfect
An Article by David R. MacIverI think part of the difficulty in allowing ourselves to properly delight in the imperfect, comes from conflating delighting in something with wanting it to happen. This isn’t the case. You can appreciate something as it exists while acknowledging its problems. You can see that a fire is beautiful without becoming a pyromaniac, and you can appreciate the absurdity of your political situation without thinking it’s good.
Even if a delight in the imperfect causes you to want more imperfection in your life (and it should), there is no shortage of imperfection to seek out. The imperfect is not scarce, it’s abundant. If you find imperfection delightful, you will never be short of things that delight you, even if you fix any given problem. Solving problems and smoothing out imperfections doesn’t remove the source of delight, it merely opens up new vistas for it. You could give yourself over totally to delight in the imperfect and never run out of things to explore, even without creating your own.
How the light gets in
A Quote by Leonard CohenThere is a crack in everything.
That's how the light gets in.
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.