I think about this a lot and the world seems more and more like this every day.
I think about this a lot and the world seems more and more like this every day.
He mentioned Bob Colwell, who was the chief microprocessor architect at Intel, once encountering some issues with chips from TI. He went to TI, and those people told him they couldn't figure it out either because those fundamentals were done by first-generation magicians. And it's not just TI, Motorola, and Fairchild all have this kind of problem.
I remember there was an old Intel fellow who understands Fabs, designed CPU, has experience with OS, wrote VM and does Web Programming for his hobby. ( He gave a talk somewhere but my Google fu is failing me )
Now everyone is so specialised in their domain no one has a good overview of anything. And no one understand how all the puzzle were fitted together in the first place.
And after one or two generation, the Why it was crafted in the first place was lost. And we are left with people specialise in that domain to "Maintain" it. Or reinventing the Flat tire as Alan Kay calls it.
Obviously it's a little more complex then that, but the importance and value of education and documentation is very much in that realm: drop the next generation in a desert, and we go back to the stone age instantly.
https://en.wikipedia.org/wiki/Complaint_tablet_to_Ea-nasir?w...
We do this all the time with technology. It's because we're addicted to change, and we have no judgment about how much change we need and where.
Whether we are addicted to change or not, might be another question though.
Indeed, the problem is that the user of the machine faced a choice between 3 possibilities: replacing the machine as expertise in the old tech dwindled; building and maintaining that expertise over the course of decades; or doing neither, and letting the equipment inevitably lapse into its inevitable disrepair; and they chose the latter.
Change is constant, which is good, because there is no progress without it. The only choice we have as individuals is how, and how well, we adapt to it.
^ this
Tell me more about how people hate writing documentation, and then tell me how they can't shut the fuck up about not having it when they need it.
This is a peeve of mine.
What do you expect?
A better approach is to learn just enough to do it yourself, but it's not easy to document things well.
I like to think about documentation like this: Without it your work will be almost wasted as nobody can make use of it. That helps a bit :)
Simple things like a linter that yells at you if a class has an undocumented method would probably at least be a step in the right direction. People may complain that it would lead to overdocumentation but I'd argue that it's probably better than underdocumentation.
Even something as simple as providing a warning when there appears to be an long code block without documentation would probably be a step in a decent direction. What seems trivial and obvious today likely will not in a matter of weeks - and it generally just gets worse from there.
Of course that can lead to developers just adding a single line comment with the name of the type ... but it's still a nice feature.
IME, the only thing that works is to attack it from a Project level: make usable documentation (needs a review before being signed off) a deliverable or the project isn't done.
The thing is, I don't this happens in isolation. At least not for me. I hate writing documentation because time is not allotted for it. So I have to rush it, and in the process I feel like I'm doing a poor job, which is demoralizing. I'm gonna dread it next time I have to do it.
The choice, really, was "hire some ludicrously expensive COBOL devs, or replace the entire system". Replacing the entire system failed on every sane business evaluation: high-risk, hugely expensive, no guarantee that the new system will even work. So they hired the ludicrously expensive COBOL devs (because the devs needed to understand 1970's-era COBOL, and they were rare in the OO-frenzied 1990's) and patched up the old system.
But as time wears on, those systems fall further and further behind, and the COBOL devs who actually know how to maintain them get more and more expensive (or actually unavailable). The costs and risks of replacing the system is still too high for any given marginal change, but the marginal changes are getting very, very expensive.
And then 2038[0] rolls around and they'll face the same choice. And the same risks will come up. It'll be interesting to see what they do, and what choices are available. Because patching the old system may well not be possible at this point, because there's nobody left who understands it. And migrating the complex business logic to a new system may well not be possible, because there's no-one left who understands the old code.
If anything, I think having a separate, archaic, mostly frozen system base for critical infrastructure is a good thing. The current ancient COBOL abandonware situation is probably not the simple and mostly standardized solution one may wish for, but it's a lot closer.
COBOL doesn't actually pay that well, no matter how badly the business depends on it. The law of supply and demand would suggest that it should, but it still really doesn't.
This is fine as long as the "in maintenance only" portion of the industry remains small. Which will only remain true while the industry is growing exponentially. However like industrials, there will eventually be a physical limit to how much better computer networks, microchips, web search, cameras and other activities can get.
Once this happens growth in the core parts of the industry will slow, and more software will be in maintenance. However software components are both opaque and orders of magnitude more complex than physical parts. As an example, Losing practical knowledge of the linux kernel involves losing knowledge of ~27.8 million lines of code.
There may come a time in a number of decades that getting a driver patched is an impractical activity due to the scarcity of knowledge ( or potentially even the ability to build the driver... )
e.g. why update the nic drivers if the nic hasn't changed in 20 years? this could easily turn into "how do we even modify and release our companies nic driver?"
Could you please elaborate why?
I would agree that such business has relatively low ROI. Still, for example, Linux distros and *BSD foundations are to an extent a maintenance business.
Build something new, affect bottom line directly vs maintenance.
Blame the tax structure for placing an emphasis on new.
COBOL still runs the world, despite what many on this board think.
The example that springs to mind is the social security check printers. I think they wound up reading the wire voltages as checks were printing to duplicate the behavior for the y2k fix. Was urgent as many people relied on that income.
There are rare events that you can't do much about up front, they're external. A pandemic might be a good example. There are other rare events you can simply avoid, but it's often tempting to just skip the maintenance and let someone else deal with it when it breaks. It's rare right? Not like we're going to get blamed, or even be around to have to deal with it.
Now guess what happens if we forget how to make something intrinsic to modern farming.
Not being snarky; just want to point out that current soil erosion rates due to modern farming mean the world will run out of dirt by the end of the century.
http://large.stanford.edu/courses/2015/ph240/verso2/ https://world.time.com/2012/12/14/what-if-the-worlds-soil-ru... https://www.theguardian.com/us-news/2019/may/30/topsoil-farm...
"Imagine that the natural sciences were to suffer the effects of a catastrophe. A series of environmental disasters are blamed by the general public on the scientists. Widespread riots occur, laboratories are burnt down, physicists are lynched, books and instruments are destroyed. ...Later still there is a reaction against this destructive movement and enlightened people seek to revive science, although they have largely forgotten what it was. But all that they possess are fragments: a knowledge of experiments detached from any knowledge of the theoretical context which gave them significance; parts of theories unrelated either to the other bits and pieces of theory which they possess or to experiment; instruments whose use has been forgotten; half chapters from books, single pages from articles, not always fully legible because torn and charred. Nonetheless all these fragments are reembodied in a set of practices which go under the revived name of physics, chemistry and biology. Adults argue with each other about the respective merits of relativity theory, evolution theory and phlogiston theory, although they possess only a very partial knowledge of each...
In such a culture men would use expressions such as 'neutrino', 'mass', 'specific gravity', 'atomic weight' in systematic and often interrelated ways which would resemble in lesser or greater degrees the ways in which such expressions had been used in earlier times before scientific knowledge had been so largely lost. But many of the beliefs presupposed by the use of these expressions would have been lost and there would appear to be an element of arbitrariness and even of choice in their application...What would appear to be rival and competing premises for which no further argumentation could be given would abound. Subjectivist theories of science would appear and would be criticised by those who held that the notion of truth embodied in what they took to be science was incompatible with subjectivism."
Suppose humanity were set back to the stone age. In the sense that all working technology is 100% destroyed into ash. We don't even have a proper hammer or knife. What we do have is written documentation about how the modern world works, and an army of the brightest engineers.
How long would it take to re-create modern tech? And with the documentation/academic papers we currently have, could we even do it? What I mean is, what are all the steps we need to take from building a forge out of mud and flint and steel, to producing an i9 intel chip, 5g networks and space ships?
Think of this as an ansible script that bootstraps cavemen to modernity.
One thing I found interesting is that apparently many metals used to be collected from ores just laying around. Those sites are all exhausted today. So a full 'reset' of the earth wouldn't be possible today. Of course metals could be scavenged from the machines we have now (in a nuclear disaster style scenario), but we could never fully 'redo' the technical evolution we did over the last 10's of k's of years.
We would lose access to modern tech and ancient tech is lost completely already.
How many people can farm without access to machinery at all?
How many would be able to produce any hammer from scratch? How you would ensure that they are heard and followed?
How many draft animals are present in your area, for example oxen and horses?
Rebuild time just to restore food supply is too long, we would collapse to prehistoric stage with some pockets of places where food stockpiles were not destroyed.
And maybe even worse as animals are not available for hunting!
We would survive as species, but with nearly total population, cultural and technological loss.
There is no conceivable scenario in which we lose access to modern technology. OK, in some far-fetched case we can't use complex electronics. Then what?
Well, no one need draft animals because there are still many gasoline and diesel engines around that run without electronics. Since we're not all driving cars around any more, our supplies of fuel will last at least until we can get pumpjacks and small refineries running again.
Believe it or not, the farmers can farm just fine without their $500k tractors, it just means they have to farm a lot smaller area with less output, but their skills will transfer just fine.
This is akin to "preppers" learning to make fire by rubbing sticks together: in what situation do they think they'll run out of matches and cigarette lighters?
I think that noone here was thinking that this scenario is likely?
> all working technology is 100% destroyed into ash. We don't even have a proper hammer or knife. What we do have is written documentation about how the modern world works, and an army of the brightest engineers.
Preparing for such scenario is waste of time, but thinking about it may be interesting. Actual complexity and importance of various infrastructure is interesting.
> This is akin to "preppers" learning to make fire by rubbing sticks together: in what situation do they think they'll run out of matches and cigarette lighters?
This one is actually possible to be directly useful, and not an example of something useless.
One thing to mention, though, is that all the easy-to-dig carbon fuel has been dug, so "use coal to power X" just isn't quite as feasible. Biomass just doesn't work for a lot of it.
this reminds of a recent article on the Tartarian empire conspiracy theory I posted
https://news.ycombinator.com/item?id=27013834 - no discussion - actual article https://www.bloomberg.com/news/features/2021-04-27/inside-ar...
In a few generations of nobody knowing how their technology works anymore will there be conspiracy theories regarding how that technology came to be and then became impossible to replicate.
It's very easy for people to slip into self-indulgence and pleasant illusions but when something important breaks then nobody has a clue what to do. This happens more and more around me.
I never thought I'd live to see something like this. And I am only 41.
But really, can anyone really explain how computers work nowadays? Look at how optimisations in cache stuff on the CPU led to horrible security flaws, surely that should be obvious if anyone really knew what was happening under the hood?
Ubiquitous software delivery from questionable sources is the problem, that's what invalidated the design assumptions underlying the cache optimisations. You might argue that it is the hardware designer's fault to not see how the software world would change in the next 20 years, but you can similarly argue that it's the software designer's fault to not keep in mind the security limitations of the processor it's running on.
Timing attacks are not all that hard to understand - if the timing (or anything else) a user sees depends on information they shouldn't be able to see, then there's a (theoretical, at least) information leak and that's a security flaw.
I'm not a security expert, and this is something that's always in the back of my mind when considering security. It's ... one of the only things in the back of my mind - you need a constant time string compare for passwords is the most obvious example (and one that literally any decent programmer should be somewhat aware of). I only know the basics of security, and this is one of the basic principals. It's up there with "escape strings".
People simply don't think about every layer of the stack. If they did, then it would be obvious (but there's so much in the stack that this is infeasible).
JavaScript came out in 1995. Timing attacks on the CPU have been feasible since them (and heck, if you go back further then everything was terminals and multi user operating systems anyway). There's never been a time when CPUs haven't run potentially hostile operations. But virtually no-one (myself included) thought "can a timing attack happen"? despite timing attacks being a very common type of attack.
then I thought... could this happen to knowledge repositories too? could knowledge degrade under "need source" for this and other administrative controversy?
What if we sort of devolve to https://simple.wikipedia.org over time?
Fun times.
Also originally a scathing commentary on Thatcherism and British society, similar to Judge Dredd, but that has been toned down a lot over the years, unfortunately.
(I do know there have been a Tau and Necron Exterminatus, but I did said partially justified)
It's funny. In Warhammer 40k lore, any society that didn't practice witch burning was essentially wiped out by daemonic incursion. Therefore Warhammer 40k human world evolved to a racist, xenophobic, psyker-hating society.
This "industrial literacy" is dominated by Asia today.
This isn't even just a hobbyist phenomena. Electronics design itself is becoming more and more "turn key hardware", where you just slap chips on a board, string them together, then get chugging on the software.
The difference between tech and other machines like cellular life, is that we built it from scratch in a giant writing civilization so to absolutely lose the ability to reverse engineer or reproduce by copy would require quite a dumbing down of the humans or a catastrophic loss of resources.
Something I saw somewhere is that in engineering you can copy without even looking at the thing. If you know it s possible, all countries seem to somehow access it the next decade. Sometimes it's just a psychological block.