From A to B
Like trying to cure obesity by loosening your belt
A sensitively tailored combination of modes
Induced demand
Choked by their own redundancy
51. Green Streets
Putting the streets to use
Roads to nowhere
A gradual refinement
The steel rail is an artifact whose form has been carefully optimized. This gradual refinement of the design was done not by a single brilliant engineer but by more than a century of industrial evolution. The rail was never meant to be an object of beauty, but its cross section has all the elegance of fine typography.
Hyperart: U.S. Rail
The steepest grade on U.S. main-line track is at the small town of Saluda, on a Norfolk Southern route between Spartanburg, South Carolina, and Asheville, North Carolina. The grade goes on for three miles at a slope of 4 or 5 percent. Trains have not been running on the line since 2001, but the tracks are still maintained.
Speaking people
Surely those who oversee and guide municipal transportation systems ought to use public transit during their work days. Why not put a clause to that effect in their job description or contract?
Requiring those whose work has a major impact on people's lives to experience some of the impact is really not too much ask. It means that they speak "people" rather than French, Cree, or Spanish.
Penn Station
In the same way that physical architecture can affect a mind, so too can software. Slower, less reliable software is like Penn Station: Sure, you can catch a transfer from one train to another but the dreary lowness of the place, the lack of sunlight or sensible wayfinding will make you feel like a rat, truculent and worthless, and worse: You’ll acclimate to that feeling and accept it as a norm.
Tokyo
Anatomical Drawings of Staircase Spaces
A Book by Tomoyuki TanakaWhy buses represent democracy in action
A Talk by Enrique PeñalosaAn advanced city is not one where even the poor use cars, but rather one where even the rich use public transport.
Snowpiercer
A FilmIn a future where a failed climate-change experiment has killed all life except for the lucky few who boarded the Snowpiercer, a train that travels around the globe, a new class system emerges.
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.