Hi all, There's a movie on the web called "Evacuate Earth" at https://www.youtube.com/watch?v=kpkzxT2Ntto
The premise is that a neutron star is coming to eat Earth, and a quarter million humans must go to a planet 5 lightyears away in order to preserve our species. The only part of this movie on-topic to this mailing list is the part on assembling the spacecraft, 55:15 to 1:02:30. They're shooting the sections up into space orbit and joining them in space, mostly via robotics but some human intervention involved. By this space assembly the spacecraft needn't gobble energy just leaving Earth. Can you imagine the opportunity for failure? These sections are made in factories all over the planet, and when they get up there, tab A must fit into slot 1, every time. How in the world do you get that kind of perfection. Really think about it. I thought about it. The space ship is a 16 mile long, 2 mile diameter cylinder. I'd put it together with interlocking and weldable cylinder arcs, **all the same**. To the extent possible, I'd make the major parts conform to one of a few templates. I'd make each template as simple as possible, but with fittings and furniture sufficient to cover all anticipated needs. Such simplicity makes perfection doable. I'd design the templates from the ground up to be built by robotics, but still reasonably assemblable/disassemblable by real humans with reasonably simple tools. For every template, I'd specify and build a test jig (perhaps call it a unit test). Every piece that's built would be unit tested on earth, before spending the time and opportunity cost to send it to space. I'd make sure test jigs built in one factory are used in another, to limit instrumentation errors that pass bad units. Inevitably, the initial template designs will forget provisions for a few features. Unless these features are a life and death thing, once building commenced, I would neither change the design nor make complex workarounds to accommodate those features. The crew and passengers would just live their lives to make those features unnecessary. I look at GNU/Linux (and BSD and POSIX in general) and see a lot of such design. A startup script looping through the script files of whatever.d/ is a perfect example of simple and openended design. Runit, s6 and daemontools are another example. Even sysvinit is an example, although sysvinit left out enough that those scripts in /etc/rc.d/rc5.d/ must be overly complicated. In the movie, parts get launched to the ship and bolted/welded on. What is NOT done is to monolithically build huge megasections comprising dozens of differing functionalities, and send those up. This was one of the first lessons I had to learn when switching to GNU/Linux: My days of building the single-executable-does-it-all were over. The new catchphrase was do one thing and do it well. I found out that executables are the best places to divide, and they can naturally be made to have very thin and understandable interfaces. If I had only one chance to save humanity, I'd build my spaceship like GNU/Linux, not like Windows. And I wouldn't hire Poettering to be part of the effort. SteveT Steve Litt January 2018 featured book: Troubleshooting: Why Bother? http://www.troubleshooters.com/twb _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng