engineering
Live your ten years
I'm sorry, I love engineers
Strength from both mass and form
Warmed by the afternoon sun
Textbooks on water-system engineering state that supply mains are generally installed on the north side of the street in the Northern Hemisphere and on the south side in the Southern Hemisphere, so that the sun will warm them. In both hemispheres they are supposed to be on the east side of north-south streets, on the premise that the afternoon sun is warmer than the morning sun.
An emblem of friendship
Bridges make connections; they bring people together—a role that has made them a traditional emblem of friendship. Consider the town of Mostar in Bosnia-Herzegovina. When fighting between ethnic factions broke out there in the 1990s, nothing symbolized the social disintegration more clearly than the destruction of a sixteenth-century stone-arch bridge that had linked the two parts of the town on opposite banks of the Neretva River. And the emblem of efforts to heal the divisions is a rebuilt bridge, opened with fireworks and fanfare in July of 2004.
Routine design
When we think of bridges, it is the dramatic and monumental long spans that come to mind first, especially the lithe suspension bridges such as the Golden Gate and the pure geometric arches such as Sydney Harbour. But the majority of bridges are not such spectacular structures. Most of them are ordinary overpasses, with spans of 30 or 40 feet, carrying roadways or rails across other thoroughfares or over small streams. You see such bridges by the dozen on any drive down the Interstate. They may be lacking in glamour, but they are more representative of a bridge builder's art.
The engineering and construction of girder bridges are pretty routine these days, but the bridges are not quite standard items you order from a catalogue. The girders, whether of steel or concrete, are custom-build for each bridge, then trucked to the site and hoisted into place with a crane. The designer still has scope for variation and creativity, and it shows out on the highways: some overpasses are prettier than others.
The Art of Doing Science and Engineering: Learning to Learn
A Book by Richard HammingThe Art of Doing Science and Engineering is the full expression of what "You and Your Research" outlined. It's a book about thinking; more specifically, a style of thinking by which great ideas are conceived.
Design Links & Learning
A Blog by Nick TrombleyCollections of articles, links, and other material from around the web, relevant to software design and engineering.
“Design” is now “Product”
An Article by Dorian TaylorDesign has very little to do with what tools or methodologies you use, or what your job title is, or what you have a degree in, or even anything like “creativity”; design is about your relationship to constraints. Rather: to what extent are you defining constraints rather than just obeying them? Design is about taking a universe of possibilities and converging onto exactly one outcome. Being handed a set of constraints which you treat like immutable laws of physics (because many of them are) and solving within that envelope is what engineering is. To wit: what most designers are doing most of the time is actually a form of engineering, and engineers are always doing at least some design.
This is because genuine design—the power to define constraints—is a privileged political position within an organization, and not everybody can occupy it. In other words, the “seat at the table” comes first. Design is Steve Jobs infamously dropping an iPod prototype into his fish tank, pointing at the bubbles coming out and yelling at his staff to make it thinner. It doesn’t matter what your title is; Jobs is the designer in that scenario.
Are We Really Engineers?
An Essay by Hillel WayneInnovation in Structural Art
A Book by Eladio DiesteDieste's unique and innovative method of design, a melding of architecture and engineering, elevated these often humble buildings to masterworks of art.
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.