How long would it take to create a Windows 1.0 capable machine from scratch?
worldbuilding.stackexchange.com
worldbuilding.stackexchange.com
As long as there is no single step that requires more than 20 simultaneous workers, I don't see why it's not solvable with these 20 people.
Either way I think that lots of machinery has to be supervised 24/7 and they can work only 12h a day per rules so they would probably be left with only 10 simultaneously active workers. With 10 workers I would say it's just impossible.
At that point, the "you have to build manufacturing machinery to build more manufacturing machinery" gets close to being exponential, and you will spend double the time just to get past the critical mass of IC controlled machinery to do something that looks like a nineties era fab complex.
First ASML steppers required close to no complex parts: nearly fully analog/mechanical they were. The last gen ones however require megatons of electronics, and manufacturing facilities the size of football stadium for nearly every complex part.
You need nineties level for doing useful things that matter: monte carlos, FEM, CFD, molecular kinetics, nuclear physics etc
Or, is your argument that the tasks involved in building an 8086-level computer and prerequisites are not serializable?
I think the top answer radically understates the difficulty of the problem; not only would they need to build all of those things, they would need to build the tooling to build the components needed to build all of those things. And for those components, they would need to build the tooling to build the components used to build the components, and so on.
Honestly, I think that even semi-accurately estimating the complexity of the work to be done would be months of work. To actually do it with 20 people, hundreds of thousands or maybe millions of years?
Similar things are likely true in other steps given that we would have access to a huge breadth of “recipes” for rather-more-optimal chemicals (e.g. doping agents, etchants, electrolytes, etc.) than we started off trying. The reagents of these chemicals frequently don’t take any more effort to dig out of the ground than the ones for the less-efficient products; and they don’t take more sensitive or well-sealed equipment to react together, either. They just took sensitive, well-sealed equipment to discover, or were only accidentally discovered as byproducts or other processes we ended up only starting later on (like petroleum distillation.)
[1]: http://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit
If you're going to have a bunch of humans in a small area (civilization), it's going to be a requirement. Until you have mechanized/highly productive agriculture, more than half of your population's job will be food production.
[1]https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBy...
> For convenience, we assume that the humans would not age or die during their participation in this experiment.
Not dying will come in very handy when handling the chemicals.
This sort of thing is admittedly quite hazardous. But if you look at older chemistry publications, you might be surprised what is possible with relatively crude equipment.
This is the problem, if civilisation collapsed it's never coming back because all those easy to access resources we relied on in the past are gone. It all requires advanced technology to access now.
Indistinguishable From Magic Manufacturing Modern Computer Chips https://www.youtube.com/watch?v=NGFhc8R_uO4
I think the inverse question is also interesting. What technology have we lost, because our current infrastructure has negated our need for it?
I completely agree with you. Wikipedia would be just a start. Having an electronic library with high quality texts (and videos) from all areas would be even better. Whatever information they bring, it will be best if it's free to anyone and everyone there.
We need a few of those in bunkers around the solar system.
When you say robot you imply that the robot would do the world of building the civilization. We'd need dozens to "jumpstart" a civilization. Maybe a single machine could act as a library of knowledge to teach people how to create a civilization. I'm doubtful people would be willing to follow such a machine long enough to generate 8086 CPUs.
The unknown Greek engineer who built/programmed the Antikythera Mechanism in the 2nd century BC could have worked with Babbage in his 19th century Difference Engine. Add the steam-powered Aeolipile of 1st century AD and the basic technical ingredients for the industrial revolution were already present in classical Greece. However, the proper social factors that allowed the exponential growth in science and research that resulted in the development of microelectronics and the information society are extremely difficult to achieve, more so than the merely technical ones.
Apparently it is claimed that no person today knows all the steps required to build a pencil from scratch. It's overwhelming to think further to a Win 1 capable machine.
A more interesting question would be how many volumes the build instructions would comprise.
Future generations will thank you.
have it use Unicode line endings (or, if Unicode has to be recreated, do IT right, and have it use 28 bits for codepoints and 2 bits describing the format).
you can fit all of that information into 4 bits when you just care about minimizing the size of that mini header.
I know that, because I got bored and made up a quick proposal on it, not that I expect anyone else to even look at it.
But I'm not really seeing the value. This is a variable-length format that isn't self-synchronizing, right? And if the header is fixed-length, then won't Latin letters require at least two bytes?
It seems like it just loses to UTF-8 (which can support 31 bit code points, too).
yup and yup.
UTF-8 is capped at 21 bits, theoretically it can support up to 6, but it's not allowed to because of UTF-16.
This format would allow 28 bits to be encoded as 8, 16, and 32 bit code units.
There would be no surrogate pair nonsense, simply write all the non-leading-zero bits into as many code units you need as well as the 4 bit header, and you're good.
I'm not saying it'll ever happen, I know it won't, but if we could go back in time...
If we could go back in time, the important thing would be killing UCS-2, and the false idea of all code points fitting into 16 bits. The encodings with 8 bit and 32 bit code units are just fine, and don't encourage terrible assumptions.
I'd definitely suggest a variable-width header, though. If you remove the extra bits that UTF-8 uses to be self-synchronizing, then your header is a fixed 1/8 overhead, which means you can fit 28-bit code points into four bytes while also fitting ASCII characters into one byte.
What do you mean by variable width? the 4 bit header would be limited to the first code unit, the following ones would just be pure codepoint values.
and that's a good point, I as picturing it as the top 4 bits that describe the format, so the header's byte order would be field, but the actual codepoint value would be encoded with whatever byte and bit order the header indicated.
Kinda? It isn't limited to just the byte order tho, but I can see it.
> Why integrate it into the code unit if you're only going to have one of them?
There would be multiple code units, just 1 of the mini headers/BOM.
With that comment I was trying to contrast it to UTF-8 which has those 2 leading bits of the continuation code units set to `0b10`, it wouldn't have that.
I have to say I really don't see the value of being byte-order flexible, but always requiring the header be in the "first" byte, because that makes it so big-endian and little-endian formats are packed completely differently. 2 and 4 byte code units will be misaligned all the time too, might as well just use a series of bytes in fixed order.
> What do you mean by variable width?
Make the first byte be like UTF-8 (so a prefix of 0, 10, 110, or 1110), and the following bytes be raw data. It compacts a lot better than a fixed-length header, with roughly the same level of complexity.
But now that I think about it a continuation bit is probably the best option here because it regains some ability to self-synchronize.