"There are only so many features a program can add until something becomes just good enough. At this point new features add less and less value."
I agree 1000% with this! But even most websites this days add way too many features that you don't simply need. Simplicity is the king in everything! I'm a firm beliaver in long term hardware, when building a computer it needs to last at least 10-15 years between builds or upgrades. Only exception is hardware failure or software no longer supporting some hardware (which is rare on linux) Good article thanks!
That wasn't realistic until very recently, after Moore's law completely died off, but I hope it becomes the standard.
I have an X220 from 2011, i7 processor & 8 gigs of RAM. I payed 180euros for it (best deal I ever made, I know) and I hope I can get 10 other years from it. It chokes on modern uberbloated webapps, but hey, it's not like I want to use those anyway.
I built a gaming computer with an i5 and a gtx 1070 in 2016, and unless I decide to go for something else than 60fps & FHD resolution I still max out every game I play. I don't see myself upgrading in the next 3 years at least. Before that I had a crappy computer built out of low-range parts from 2010, and it was perfect until Dark Souls 3.
I have a 2012 Macbook Pro that's still okay for most of what I do with it, including Android app development. Though the Nvidia GPU driver is terrible and leaks memory copiously, and that's annoying. Web apps are sometimes sluggish, but I got used to the fact that modern web just can't be fast on any hardware unless done by people who know what they're doing which is rare. I'm looking forward to whatever the refined and beefed up M1 successor would be. That would probably last me another decade if not more.
I had to abandon my 2012 macbook pro for a new intel mac earlier in the year after it was overheating and killing keyboard and trackpad input during zoom calls, but before our modern zoom based world, what a beast that computer was. Perfectly performant for typical tasks, unlike computers of old that would struggle to run the latest OS after four years.
I'm eyeing the ARM macs, but I think it would serve me well to wait at least two years for software to become more compatible and kinks worked out. People in my field have been having some issues with ARM and rosetta2, even having to return laptops.
+1 for the i7 x220. I paid £150 for mine a couple of years ago for what I thought would be a throwaway bit of kit at end of life for an experimental Linux build. But what I found was the sheer utility of the thing has been unmatched by any more recent hardware purchase.
I was fortunate enough to buy an x220 in 2011. Don't use it much these days since I have newer machines available (though one of them is also sandy bridge), but it's still perfectly serviceable and to this day my favorite keyboard ever on a laptop.
> every new feature added was worth less than the features taken away
I think this is the core of the issue, not just adding new features. Adding features, especially in the general purpose OS that was chosen as an example, is not a bad thing as long as they stay out of sight and are there as optionals for the people who need them. But removing one feature to add another, or twisting an existing feature into something that can satisfy 100% of the users is bound to make the product worse.
The real obstacle the 100 year computer faces isn't software, there's no reason for it (or a copy) not to run for hundreds of years, providing it has something to run on. it's hardware. Making a complex device that can run for a century is close to impossible unless there's a chain of supply behind it to constantly replace failing parts. That's a big ask over 100 years.
And then there's the philosophical question: if over that 100 years every part is replaced and upgraded to fit the new trends, take advantage of new tech, etc. is it still the 100 year computer? Or the ship of Theseus?
These are all really good points. I do wonder though, is there any combination of parts that will make even the simplest computer last 100 years? (With proper maintenance, ideally not replacing parts that can't be produced for the next 100 years)
I'm defining a computer here as an electronic CPU with some sort of I/O, both user I/O and peripherals.
I'm reminded of something like a Commodore 64. I've been able to get one working after 30 years of it sitting on a shelf before, although many suffer from burst capacitors, bad chips, oxidation of circuits/pin connectors, etc.
I wonder if you could take the idea of a simple, self contained system like the C64, but use ultra reliable, beefy industrial components, like from computer systems in manufacturing factories. Maybe throw a few redundant components the computer can silently switch over to if the first component goes bad.
I imagine you could design and build such a computer (I also thought that the definition of a computer might change in 100 years so much that today's devices no longer fit it). Probably using only solid state components, having it completely self-contained, and having all the components built for longevity may be close to but not quite impossible. But it would be entirely unpractical for anything beyond the proof of concept, certainly not as a mass market device. The "longevity" part of every component likely sacrifices speed, power, and performance in exchange for reliability. Imagine things like much larger features in silicon, duplicated or triplicated (or more?) components and units, use of more non-integrated components, the system as a whole would incorporate far more redundancies that take space and possibly power just for the eventuality they need to take over, etc.
Not to mention that testing and continuous development are challenging to say the least given the timeframe. By the time you discover your design has flaws you start over with a vastly different 100 year computer.
So from all practical perspectives I can't see a 100 year old computer being built with today's tech unless we mean stuff running in hypervisors and emulators that are constantly maintained and developed over that century.
It might be impossible to make a 100 year computer that's practical.
If we look at other "tech" built to last, I think sewing machines. Stand mixers. Cast iron pans. And I'm sure lots of industrial equipment I don't know about.
None of these really changed much in the past 50 years that made it useless, and I can see these being useful for the next 50 years pretty easily.
The only thing I can think of is a base computer with some interface to a breakout box that can be upgraded based on how computers work.
This definitely cheats the idea of a 100 year computer, but you could have a wifi breakout board. Maybe a reader for the next storage format that's popular. Neural whatsit chip that may revolutionize computing. But, again, that's cheating. And at that point just buying modern hardware makes so much more sense.
Keep in mind that the Commodore C64 is "just" 40 years old and the rate of decay is not linear. I imagine the definition of the 100 year old computer probably targets more than "survivors".
The definition of the "100 year old computer" as described in the article is fuzzy and kind of a moving target. In the loosest interpretation anything can be a 100 year computer just as long as you care to maintain it for 100 years. If upgrading parts and building adapters for future technology fits that definition then you can do this with any machine, and the rest of the constraints are just artificial (like "must be offline first"). If you actually want to have as much of the original computer as possible for that century then it's no longer feasible.
As I mentioned in my original comment, they simply become the ship of Theseus. Heck, my own desktop is that, starting 20 years ago with one hardware config and a Windows XP and reaching now with completely different hardware and Windows 10 with no "full reset" in between, just upgrades and updates.
Well, some software used to crash a lot for unknowable reasons, and if you were lucky you got a patch 6 months after release which may or may not fix your problem.
Any software can have an option to upload a bug report when user chooses too. But not automaticly when it want's too.
(EDIT) I agree, everyone should have at leat one air-gap (so called "family garden" in the article) computer in there house when shit hits the fan. Like no internet :-)
(EDIT-2) This article gives a very cool idea about "heirloom computer". The author should come up with such a product based on Raspberry Pi (maybe?). Than sell it with basic custom OS and software for the family. This software should include things like diary, notes, racipts, jokes, photos, video storage. It should be sold relatively cheap so anyone could buy it.
But then offline-first software was held to a higher overall standard because of this exact reason. Nowadays no one gives a crap because "we can always push an update", and so everything is an eternal beta.
You say that like it is different today. We had a slack outage just a few days ago that affected basically everyone who uses the software, multi-year bugs still exist in cloud software, etc.
The only thing the cloud fixes is the problem of convincing people to rent software.
The problem is that people want collaborative editing, and we want our files not to be tied to a single device. If I lose my phone, I don't want to lose my files. And I want to pick up my computer when I get home and resume where I left off.
We know how to implement all that technically using CRDTs and a bit of p2p discovery. But I think its still going to take some elbow grease and a few years to get a new platform working well enough that it can really compete with centralized web software.
Collaborative editing just sort of snuck into workflows. And maybe it's not useful for you, but for me it's revolutionary compared to mailing files all over the place and having to figure out merging edits. If you don't like something like Google Docs, should probably drop GitHub too.
I’m increasingly thinking the opposite - and that GitHub is a clearheaded model of the path forward.
There are very few examples of p2p software like git scaling well. Servers are way too useful. The git model seems like a nice compromise. And by git model, I mean an opensource distributed protocol that anyone can run coupled with some big centralised services run by big tech - so you don’t have to. This has all the benefits of a centralised system with the all important off ramp.
Email more or less works the same way now. A few years ago I moved from Gmail to fastmail and haven’t looked back. That said, I really wish more of GitHub’s features made their way back to git. Issues should be stored somewhere in the git repository - so they can be viewed offline and so competing services like gitlab can be compatible.
The only way to enforce p2p is to forbid servers, it's too useful to have specialized software running somewhere with a fixed IP address, DNS, and fat fiber. Even the most successful p2p protocols, bitcoin and bittorrent, are pretty server-heavy in practice.
That said, I want my version control to contain, locally, everything relevant to software development, and use some sort of pub/sub model to propagate my changes. Here, a server is helpful: gives a fixed domain, a canonical place to retrieve the repo, and so on and so forth.
But it should be more like Fossil, where everything is stored locally and you can spin up your own localhost to access the GUI through the browser. Fossil is too monolithic, I reluctantly had to abandon it on that basis, but it points in the correct direction IMHO.
And if the hub is down, as long as peers and backups haven't changed IP addresses since the last time we communicated, I don't see why work couldn't continue.
Syncthing isn't solving josephg's problem. When two people open an Excel or Google spreadsheet, both people can see the other's cursor position and edits in near real-time. Both apps require buy-in to a singular, proprietary back-end (Excel's collaboration disappears in the file is outside of OneDrive). This is a "Mother of All Demos" level feature and people will suffer portability issues to keep it.
The problem isn't the computers, it is changing requirements.
If you want to edit text files, do some spreadsheets, maybe send and receive messages, an IBM PC will do the job. Just be sure to have a modem, Qmodem, and the numbers of your favorite BBSs.
With an IBM PC, MS-DOS 6.21, Turbo Pascal 7, Qmodem, Edwin, pkZIP, and a stack of floppies for backup, and you could stay in business for a very, very long time, if you don't expect more each year.
Look at what people are managing to fit into a boot sector... BASIC, Games, Demos, etc. We're wasting most of the bounty of Moore's law. Not all of it, of course...the ability to stream video from anywhere on the planet for $50/month is something I only dreamed of back in the 1990s.
We have amazing computers now, but those old machines, like the Model T, can still do their original task, if you invest the time and effort to maintain them.
Yeah. Digikey has them. Presumably for embedded use. Mostly software-compatible with an 8080.
That would probably be one of your best hopes for building a computer today that's likely to have long-lived (in the sense of availability) parts even though it's probably not a drop-in 8088 replacement at the hardware level.
> I wonder if you could build a working IBM PC clone today.
Yes you can! There's the NuXT[1] which is a full system, or you could use PC-104 designs to build something approximating an IBM PC-type system from a later generation.
I'm in love with this concept! I'm wondering about the longevity of storage devices.
> SD Cards won’t last 100 years but the code to talk to one will.
It seems like the article implies that family that owns an heirloom computer would have to backup their data every decade or so, assuming the storage medium lasts that long.
Are there any data storage options that can go decades without being used? From my admittedly cursory research, it seems like M-Disc or solid state storage are the best options so far.
Is that really "SD cards won't last 100 years" or "...won't last for 100 years of read/write operation"?
That's solid state storage. If it won't last 100 years just sitting around, what possibly could? I think we just have to assume some amount of archivist activity is inevitable if we want data to last decades or even centuries: someone must copy the data periodically; and the data needs error correction built in.
I know this is being completely facetious but paper. (Preferably acid-free.) And punch cards.
I doubt any current electronic mass storage medium which has that kind of longevity even under controlled conditions.
I also doubt that storage on traditional physical media is really practical for most things based on both storage density and error rates translating from physical to digital.
Cool. That said this guy is basically describing a notebook. No computer necessary. If his goal was a 1000 year computer that would be something.
Unless every person on earth wants to become a PHD in CS this is a dead end. How do you fix this computer otherwise, hire someone? Yeah its called the market and it sells $150 replacement computers when yours dies. Exactly 1 person on earth would use this and its the author.
It always bothers me a bit when tech people get so wrapped up in a rabbit hole of a pointless obsession. His skills/time could be used much better elsewhere.
...like, a hobby? I don't see any evidence that this author has an unhealthy obsession. And, if the comments here are any indication: a lot of techies would be absolutely charmed to find unearth such a machine from a dusty box. I know I would!
Watching the incredible work of amateur retro-computing enthusiasts today, I have no doubt that whatever Steve Lord creates could find an enthusiastic operator a century from now.
It's really two different paradigms. One is about the hardware and the other is about the data. To me we shouldn't be worrying about the hardware, but rather the heirloom data and where and how it's stored and accessed. To me the implies the cloud and not local. An earth-sized computer, governed by a benevolent VI (not AI), would be ideal IMO. Terminals to access the data could be anything, from RaspPI to an Amiga to a Chromebook.
You can easily distribute hardware around the globe for redundancy, it’s harder to have redundant clouds.
Cloud services allow you to easily and cheaply get to reasonable levels of data integrity and security, but suppose you want a higher threshold. If the data is as important as say the specific text of the US Constitution a single cloud service is clearly inadequate. Presumably your data is less important than that, but plenty of stuff is very important and or valuable.
The 10-key calculator was invented in 1963 and I think it will undoubtedly still exist in nearly identical form in 2063. I'd even say that 2163 isn't that big of a stretch
As part of my job I frequently have to work on very old PCs that are part of manufacturing tools. I started working in this area in the early 90s so I have both nostalgia for the old days but still excited about new stuff we're coming up with.
Things I don't miss:
- Managing IRQs on the ISA bus or more generally messing with the BIOS
- dedicated keyboard/mouse connectors
- physical serial and parallel ports
- large plug-in cards
- incompatible monitors (Hercules, CGA, VGA, ...)
Nowadays most of our external equipment (motion controllers, sensors, barcode readers, etc.) is either USB or Ethernet and I think that transition happened maybe 10 or 15 years ago? It's just so much easier now with fast-enough external busses.
I think part of the problem with a 100 yr scheme is that you really only get economies of scale with highly integrated memory and other support chipsets with physical standards that change as manufacturing capabilities get better.
So at the two extremes there's the hobbyist track (RPi/Arduino) and there's all the amazing tech crammed into our phones for a ridiculously low price.
I think the presence of PS/2 ports is to satisfy gamers – the PS/2 port has a dedicated interrupt line, which (allegedly) gives you lower latency on keypresses than USB, which uses input polling.
In general I agree with you but I do in fact miss the dedicated physical serial and parallel ports (there's more you can do with them than what can be done on a dongle).
EDIT: A couple examples: You can use a dedicated parallel port as GPIO at what I'm remembering to be LS/TTL voltages (and currents). I've also used a serial port with a few diodes and resistors as an RS-485 port (not all that specification can be realized but enough for compatibility with some devices)
I love the idea of an heirloom computer and agree with many of the author's points. But I don't think choosing a microcontroller and virtualizing a fringe operating system are the answers. I still build standard ATX style desktop computers with basically the same architecture as I did in the 90's. I install Linux and other open source software because I know that it won't break because the company selling it wants to force me to buy a new version. I would contend that the heirloom computer exists and has quietly become more and more accessible. It just isn't fashionable.
I think we're already at a point where we have quality open source software that does basically everything we want to do with a computer. The only way forward for big companies is to covert customers to SAAS with monthly rents. We need to keeping pushing for the open standards that allow individuals to build computer systems (hardware and software) outside the walled gardens that can still interact with the larger network.
Imagine if in 1920 someone had written this about "The 100 year Car".
There are 100 year old cars still floating around, and their owner/maintainers love them very much. But they are are of essentially zero interest to the overwhelming majority of all car users.
Building electronics and technology in general to be recyclable/reusable rather than long-term usable seems like the right path to me.
Cars in 1920 were still relatively new and were undergoing massive architectural change as infrastructure, technology, and consumer behaviors developed. On the flip side of that, in areas where the technology and behaviors are mature, it is totally plausible to achieve 100 year lifespans. As an example, I have some woodworking planes that are approaching 100 years which are pretty much the same as what you can buy new today. As another extreme example, the U2 and B-52 planes are over 65 years old and still in active use as they receive updates to meet changes in their customers needs.
I think that my whole point is that in the 2020's, computers are "still relatively new and [are] undergoing massive architectural change as infrastructure, technology, and consumer behaviors develop[ed]"
I think people don't really realize how little actual computing has changed. From the inception of programmable computers that only nation states and huge companies could afford through the mid to late 1980s, computing changed significantly, in all of size, affordability, capacity and actual functionality.
What happened in the mid to late 1980s? Relatively affordable computing became available which fit a lowest common denominator which still exists today:
* CPU
* MMU
* access to mass storage
* access to communications
The Macintosh II came out in 1987 and Amiga 2500 in 1988. You then had a true and proper 32 bit computer which could run a real Unix or Unix-like OS. Everything modern outside of microcontrollers matches this lowest common denominator.
The same is true of 80486 machines (80386 is mostly the same, but modern toolchains now require certain atomic instructions which the 80386 doesn't have).
What's amazing is that you can run a real OS on them NOW. You can run NetBSD on them and run tens of thousands of open source software packages NOW.
These are 33 years old. We're one-third of a way to 100 years.
The M1 is a poor example to lead into an otherwise great post.
The big leap with the M1 is the power efficiency. No amount of optimized code is going to keep Intel from running hot: installing Win95 on a latest-gen Intel laptop would be whip-fast, but wouldn't result in all-day battery life.
An opinionated and lengthy intro like that serves as an invitation for readers to bail out before they get to the meat of the post: which would be a pity in this case, because it's worth reading.
"Urbit OS is a completely new, carefully architected software stack: a VM, programming language, and kernel designed to run software for an individual. Urbit OS is a program that runs on almost any cloud server, most laptops and many phones: anything with Unix and an internet connection.
The main thing to understand about our ‘overlay OS’, as we call it, is that the foundation is a single, simple function. This function is the Urbit OS virtual machine. We call it ‘Nock’. The entire Urbit OS system compiles down to Nock, and Nock is just 33 lines of code.
Nock is similar in spirit to WASM or the JVM: it’s a uniform machine code for every Urbit ship. A frozen foundation makes for some nice features:
The state of your Urbit OS is a pure function of its event history. It’s auditable, inspectable, repeatable. You can actually trust it. Writing decentralized apps becomes vastly simpler than in the old world, since every node computes exactly the same way. The entire Urbit OS stack, from programming language to applications, is upgradeable over the network. For ordinary users, this makes for almost no system administration.
Since Nock is a protocol for computing itself, any two nodes on the Urbit network can easily share data, communicate and connect their software."
As someone who started in the late 80s with Apple II, Commodore 64, and then Tandy 1000, I have decades of perspective on this, and I think that both this article and most of the comments are looking the wrong way.
Hardware fails and changes. Now, in post-Moore's Law land, we can expect a computer to be modern enough for a decade instead of needing upgrades every couple years. That's great. But hardware still fails and changes, and designing it to last 100 years isn't really worthwhile.
Software has become its own mess with the requirement to be online, SAAS, and all that. In that I agree with the author. Offline software will work as long as the hardware works. We need to get back to that. Not needing constant updates and maintenance on our software and being constrained by complex and constantly-changing dependency hierarchies.
The oldest software I have was originally written around 1971 for a mainframe using a teletype as the interface, ported in the 1970s, ported again in the 1990s, and still works just fine on Windows 10 in 2021. (Thanks to the effort of the porters, who took it through at least two different languages along the way.) But most software isn't going to last 50+ years - especially now, we have way too many dependencies, and way too much complexity.
However, one thing can and will last for decades, if not centuries or longer. Data. The key to the '100-year computer' is neither the hardware nor the software, but making sure the data's still accessible and readable 100 years from now. If you eliminate the irrelevant stuff and look at what the author's actual goals are: "a family’s personal history, passed on from generation to generation", neither the hardware nor the software matters for that.
I've had to try to port data from the era when everything was proprietary binary files. Hacking those once the software that made them didn't run wasn't always easy. I don't know if anyone else ever reverse engineered the old Borland Pascal Real48 format (created in a time when most PCs didn't have floating point built in to the CPU and didn't come standard with floating point co-processors) via a hex editor, but it wasn't easy even to identify.
The key to a 100-year computer is really just having all data stored in formats that will always be processable. The hardware and software don't matter, as long as you can copy the data forward to new media in a format that can be processed. We've gotten a lot better about storing data in plain-text files, but that doesn't cover everything.
Really, we just need to make sure we're using future-proof archival data formats, and have a good backup plan using some kind of archival media, and then any computer is a 100-year computer. Never mind that the hardware and software change along the way. The core - the data - can live on.
66 comments
[ 3.5 ms ] story [ 181 ms ] threadI agree 1000% with this! But even most websites this days add way too many features that you don't simply need. Simplicity is the king in everything! I'm a firm beliaver in long term hardware, when building a computer it needs to last at least 10-15 years between builds or upgrades. Only exception is hardware failure or software no longer supporting some hardware (which is rare on linux) Good article thanks!
That wasn't realistic until very recently, after Moore's law completely died off, but I hope it becomes the standard.
I have an X220 from 2011, i7 processor & 8 gigs of RAM. I payed 180euros for it (best deal I ever made, I know) and I hope I can get 10 other years from it. It chokes on modern uberbloated webapps, but hey, it's not like I want to use those anyway.
I built a gaming computer with an i5 and a gtx 1070 in 2016, and unless I decide to go for something else than 60fps & FHD resolution I still max out every game I play. I don't see myself upgrading in the next 3 years at least. Before that I had a crappy computer built out of low-range parts from 2010, and it was perfect until Dark Souls 3.
I'm eyeing the ARM macs, but I think it would serve me well to wait at least two years for software to become more compatible and kinks worked out. People in my field have been having some issues with ARM and rosetta2, even having to return laptops.
Sounds like you're in good company. The author recently upgraded from a 2015 Mac to a heavily modded X230[1].
[1] - https://thedorkweb.substack.com/p/everything-but-the-kitchen...
I think this is the core of the issue, not just adding new features. Adding features, especially in the general purpose OS that was chosen as an example, is not a bad thing as long as they stay out of sight and are there as optionals for the people who need them. But removing one feature to add another, or twisting an existing feature into something that can satisfy 100% of the users is bound to make the product worse.
The real obstacle the 100 year computer faces isn't software, there's no reason for it (or a copy) not to run for hundreds of years, providing it has something to run on. it's hardware. Making a complex device that can run for a century is close to impossible unless there's a chain of supply behind it to constantly replace failing parts. That's a big ask over 100 years.
And then there's the philosophical question: if over that 100 years every part is replaced and upgraded to fit the new trends, take advantage of new tech, etc. is it still the 100 year computer? Or the ship of Theseus?
I'm defining a computer here as an electronic CPU with some sort of I/O, both user I/O and peripherals.
I'm reminded of something like a Commodore 64. I've been able to get one working after 30 years of it sitting on a shelf before, although many suffer from burst capacitors, bad chips, oxidation of circuits/pin connectors, etc.
I wonder if you could take the idea of a simple, self contained system like the C64, but use ultra reliable, beefy industrial components, like from computer systems in manufacturing factories. Maybe throw a few redundant components the computer can silently switch over to if the first component goes bad.
Not to mention that testing and continuous development are challenging to say the least given the timeframe. By the time you discover your design has flaws you start over with a vastly different 100 year computer.
So from all practical perspectives I can't see a 100 year old computer being built with today's tech unless we mean stuff running in hypervisors and emulators that are constantly maintained and developed over that century.
If we look at other "tech" built to last, I think sewing machines. Stand mixers. Cast iron pans. And I'm sure lots of industrial equipment I don't know about.
None of these really changed much in the past 50 years that made it useless, and I can see these being useful for the next 50 years pretty easily.
The only thing I can think of is a base computer with some interface to a breakout box that can be upgraded based on how computers work.
This definitely cheats the idea of a 100 year computer, but you could have a wifi breakout board. Maybe a reader for the next storage format that's popular. Neural whatsit chip that may revolutionize computing. But, again, that's cheating. And at that point just buying modern hardware makes so much more sense.
The definition of the "100 year old computer" as described in the article is fuzzy and kind of a moving target. In the loosest interpretation anything can be a 100 year computer just as long as you care to maintain it for 100 years. If upgrading parts and building adapters for future technology fits that definition then you can do this with any machine, and the rest of the constraints are just artificial (like "must be offline first"). If you actually want to have as much of the original computer as possible for that century then it's no longer feasible.
As I mentioned in my original comment, they simply become the ship of Theseus. Heck, my own desktop is that, starting 20 years ago with one hardware config and a Windows XP and reaching now with completely different hardware and Windows 10 with no "full reset" in between, just upgrades and updates.
>We could make offline-first software if we wanted.
In fact, we used to do that, and we were really good at it too.
(EDIT) I agree, everyone should have at leat one air-gap (so called "family garden" in the article) computer in there house when shit hits the fan. Like no internet :-)
(EDIT-2) This article gives a very cool idea about "heirloom computer". The author should come up with such a product based on Raspberry Pi (maybe?). Than sell it with basic custom OS and software for the family. This software should include things like diary, notes, racipts, jokes, photos, video storage. It should be sold relatively cheap so anyone could buy it.
The only thing the cloud fixes is the problem of convincing people to rent software.
We know how to implement all that technically using CRDTs and a bit of p2p discovery. But I think its still going to take some elbow grease and a few years to get a new platform working well enough that it can really compete with centralized web software.
People also want Pringles and reality TV. Popularity doesn't make something good.
Yes, an email and patch based workflow is possible, and that was what git was originally developed for.
But it should be flexible enough to support an issue/comment/(M|P)R based workflow that's all local, and, it isn't.
Microsoft owns the de facto home of open-source software as a result of this, so it's no minor oversight.
There are very few examples of p2p software like git scaling well. Servers are way too useful. The git model seems like a nice compromise. And by git model, I mean an opensource distributed protocol that anyone can run coupled with some big centralised services run by big tech - so you don’t have to. This has all the benefits of a centralised system with the all important off ramp.
Email more or less works the same way now. A few years ago I moved from Gmail to fastmail and haven’t looked back. That said, I really wish more of GitHub’s features made their way back to git. Issues should be stored somewhere in the git repository - so they can be viewed offline and so competing services like gitlab can be compatible.
The only way to enforce p2p is to forbid servers, it's too useful to have specialized software running somewhere with a fixed IP address, DNS, and fat fiber. Even the most successful p2p protocols, bitcoin and bittorrent, are pretty server-heavy in practice.
That said, I want my version control to contain, locally, everything relevant to software development, and use some sort of pub/sub model to propagate my changes. Here, a server is helpful: gives a fixed domain, a canonical place to retrieve the repo, and so on and so forth.
But it should be more like Fossil, where everything is stored locally and you can spin up your own localhost to access the GUI through the browser. Fossil is too monolithic, I reluctantly had to abandon it on that basis, but it points in the correct direction IMHO.
And if the hub is down, as long as peers and backups haven't changed IP addresses since the last time we communicated, I don't see why work couldn't continue.
1. https://syncthing.net/
https://github.com/jamesmunns/anachro
If you want to edit text files, do some spreadsheets, maybe send and receive messages, an IBM PC will do the job. Just be sure to have a modem, Qmodem, and the numbers of your favorite BBSs.
With an IBM PC, MS-DOS 6.21, Turbo Pascal 7, Qmodem, Edwin, pkZIP, and a stack of floppies for backup, and you could stay in business for a very, very long time, if you don't expect more each year.
Look at what people are managing to fit into a boot sector... BASIC, Games, Demos, etc. We're wasting most of the bounty of Moore's law. Not all of it, of course...the ability to stream video from anywhere on the planet for $50/month is something I only dreamed of back in the 1990s.
We have amazing computers now, but those old machines, like the Model T, can still do their original task, if you invest the time and effort to maintain them.
One of the problems, touched on by the article, is that parts stop being made. I wonder if you could build a working IBM PC clone today.
Military systems are sometimes upgraded without changes in functionality simply because the old parts aren't made any longer.
That would probably be one of your best hopes for building a computer today that's likely to have long-lived (in the sense of availability) parts even though it's probably not a drop-in 8088 replacement at the hardware level.
https://maker.pro/pic/projects/z80-computer-project-part-1-t...
Yes you can! There's the NuXT[1] which is a full system, or you could use PC-104 designs to build something approximating an IBM PC-type system from a later generation.
[1] - https://monotech.fwscart.com/
[2] - https://www.youtube.com/watch?v=ZBsv-jRiIT8
> SD Cards won’t last 100 years but the code to talk to one will.
It seems like the article implies that family that owns an heirloom computer would have to backup their data every decade or so, assuming the storage medium lasts that long.
Are there any data storage options that can go decades without being used? From my admittedly cursory research, it seems like M-Disc or solid state storage are the best options so far.
That's solid state storage. If it won't last 100 years just sitting around, what possibly could? I think we just have to assume some amount of archivist activity is inevitable if we want data to last decades or even centuries: someone must copy the data periodically; and the data needs error correction built in.
They depend on holding electrons within cells, and over time the electrons leak out.
I doubt any current electronic mass storage medium which has that kind of longevity even under controlled conditions.
I also doubt that storage on traditional physical media is really practical for most things based on both storage density and error rates translating from physical to digital.
Unless every person on earth wants to become a PHD in CS this is a dead end. How do you fix this computer otherwise, hire someone? Yeah its called the market and it sells $150 replacement computers when yours dies. Exactly 1 person on earth would use this and its the author.
It always bothers me a bit when tech people get so wrapped up in a rabbit hole of a pointless obsession. His skills/time could be used much better elsewhere.
...like, a hobby? I don't see any evidence that this author has an unhealthy obsession. And, if the comments here are any indication: a lot of techies would be absolutely charmed to find unearth such a machine from a dusty box. I know I would!
Watching the incredible work of amateur retro-computing enthusiasts today, I have no doubt that whatever Steve Lord creates could find an enthusiastic operator a century from now.
Cloud services allow you to easily and cheaply get to reasonable levels of data integrity and security, but suppose you want a higher threshold. If the data is as important as say the specific text of the US Constitution a single cloud service is clearly inadequate. Presumably your data is less important than that, but plenty of stuff is very important and or valuable.
Things I don't miss:
- Managing IRQs on the ISA bus or more generally messing with the BIOS
- dedicated keyboard/mouse connectors
- physical serial and parallel ports
- large plug-in cards
- incompatible monitors (Hercules, CGA, VGA, ...)
Nowadays most of our external equipment (motion controllers, sensors, barcode readers, etc.) is either USB or Ethernet and I think that transition happened maybe 10 or 15 years ago? It's just so much easier now with fast-enough external busses.
I think part of the problem with a 100 yr scheme is that you really only get economies of scale with highly integrated memory and other support chipsets with physical standards that change as manufacturing capabilities get better.
So at the two extremes there's the hobbyist track (RPi/Arduino) and there's all the amazing tech crammed into our phones for a ridiculously low price.
- Big connectors with lots of easy-to-bend pins
- Motherboard jumpers
- Customizing autoexec.bat and config.sys files to have enough program memory
EDIT: A couple examples: You can use a dedicated parallel port as GPIO at what I'm remembering to be LS/TTL voltages (and currents). I've also used a serial port with a few diodes and resistors as an RS-485 port (not all that specification can be realized but enough for compatibility with some devices)
I think we're already at a point where we have quality open source software that does basically everything we want to do with a computer. The only way forward for big companies is to covert customers to SAAS with monthly rents. We need to keeping pushing for the open standards that allow individuals to build computer systems (hardware and software) outside the walled gardens that can still interact with the larger network.
There are 100 year old cars still floating around, and their owner/maintainers love them very much. But they are are of essentially zero interest to the overwhelming majority of all car users.
Building electronics and technology in general to be recyclable/reusable rather than long-term usable seems like the right path to me.
I’ve wondered the same about vacuums but they seem to have become more modular over the years which has made them last longer.
What happened in the mid to late 1980s? Relatively affordable computing became available which fit a lowest common denominator which still exists today:
The Macintosh II came out in 1987 and Amiga 2500 in 1988. You then had a true and proper 32 bit computer which could run a real Unix or Unix-like OS. Everything modern outside of microcontrollers matches this lowest common denominator.The same is true of 80486 machines (80386 is mostly the same, but modern toolchains now require certain atomic instructions which the 80386 doesn't have).
What's amazing is that you can run a real OS on them NOW. You can run NetBSD on them and run tens of thousands of open source software packages NOW.
These are 33 years old. We're one-third of a way to 100 years.
The big leap with the M1 is the power efficiency. No amount of optimized code is going to keep Intel from running hot: installing Win95 on a latest-gen Intel laptop would be whip-fast, but wouldn't result in all-day battery life.
An opinionated and lengthy intro like that serves as an invitation for readers to bail out before they get to the meat of the post: which would be a pity in this case, because it's worth reading.
https://urbit.org/understanding-urbit/urbit-os/
###
"Urbit OS is a completely new, carefully architected software stack: a VM, programming language, and kernel designed to run software for an individual. Urbit OS is a program that runs on almost any cloud server, most laptops and many phones: anything with Unix and an internet connection.
The main thing to understand about our ‘overlay OS’, as we call it, is that the foundation is a single, simple function. This function is the Urbit OS virtual machine. We call it ‘Nock’. The entire Urbit OS system compiles down to Nock, and Nock is just 33 lines of code.
Nock is similar in spirit to WASM or the JVM: it’s a uniform machine code for every Urbit ship. A frozen foundation makes for some nice features:
The state of your Urbit OS is a pure function of its event history. It’s auditable, inspectable, repeatable. You can actually trust it. Writing decentralized apps becomes vastly simpler than in the old world, since every node computes exactly the same way. The entire Urbit OS stack, from programming language to applications, is upgradeable over the network. For ordinary users, this makes for almost no system administration.
Since Nock is a protocol for computing itself, any two nodes on the Urbit network can easily share data, communicate and connect their software."
Hardware fails and changes. Now, in post-Moore's Law land, we can expect a computer to be modern enough for a decade instead of needing upgrades every couple years. That's great. But hardware still fails and changes, and designing it to last 100 years isn't really worthwhile.
Software has become its own mess with the requirement to be online, SAAS, and all that. In that I agree with the author. Offline software will work as long as the hardware works. We need to get back to that. Not needing constant updates and maintenance on our software and being constrained by complex and constantly-changing dependency hierarchies.
The oldest software I have was originally written around 1971 for a mainframe using a teletype as the interface, ported in the 1970s, ported again in the 1990s, and still works just fine on Windows 10 in 2021. (Thanks to the effort of the porters, who took it through at least two different languages along the way.) But most software isn't going to last 50+ years - especially now, we have way too many dependencies, and way too much complexity.
However, one thing can and will last for decades, if not centuries or longer. Data. The key to the '100-year computer' is neither the hardware nor the software, but making sure the data's still accessible and readable 100 years from now. If you eliminate the irrelevant stuff and look at what the author's actual goals are: "a family’s personal history, passed on from generation to generation", neither the hardware nor the software matters for that.
I've had to try to port data from the era when everything was proprietary binary files. Hacking those once the software that made them didn't run wasn't always easy. I don't know if anyone else ever reverse engineered the old Borland Pascal Real48 format (created in a time when most PCs didn't have floating point built in to the CPU and didn't come standard with floating point co-processors) via a hex editor, but it wasn't easy even to identify.
The key to a 100-year computer is really just having all data stored in formats that will always be processable. The hardware and software don't matter, as long as you can copy the data forward to new media in a format that can be processed. We've gotten a lot better about storing data in plain-text files, but that doesn't cover everything.
Really, we just need to make sure we're using future-proof archival data formats, and have a good backup plan using some kind of archival media, and then any computer is a 100-year computer. Never mind that the hardware and software change along the way. The core - the data - can live on.
Impressive stuff, albeit slow. It runs Minix, and you can even telnet into it.
There's a YT video, too: https://www.youtube.com/watch?v=0jRgpTp8pR8