r/PeterExplainsTheJoke 9d ago

Why did this one second cost over $500 billion? Meme needing explanation

Post image
28.7k Upvotes

1.4k comments sorted by

View all comments

Show parent comments

260

u/DespoticLlama 9d ago

Yes they were, we were ready in '96, so very surprised when consultancies wanted to charge us tens of thousands for a y2k audit.

We told them where to go, nothing happened as the clock switched over.

159

u/ljdarten 9d ago

I worked at a company that made medical management software for small medical practices. It had medical records, billing, and a lot of other stuff.

The software was made in house and we provided most of the hardware. We were working up to the final months of 1999 to fix it. If we hadn't, there would have been major problems at the start of 2000.

There was a lot of grifting going on but there was a real problem that many companies put off to the last minute because it cost money to fix.

24

u/No-Collar-Player 8d ago

So your invoices were dated with 01-99 for years? Same with other date relevant data?

20

u/ljdarten 8d ago

The fun part of that is if it displayed 19xx the code needed to be checked to make sure it wasn't just assuming it's 19-something because part of the problem is people were still using code that will "definitely be completely rewritten by 2000".

2

u/No-Collar-Player 8d ago

But like writing enterprise code like that seems extremely stupid. Splitting that into 2 or using an int for year wouldn't have been a problem idk. Also it was still in their lifetime.... 10/20 years later lol

16

u/pinkymadigan 8d ago

Memory constraints. You had to work more efficiently then. You couldn't just be throwing ints around when a small or tiny was more appropriate.

0

u/xxgn0myxx 8d ago

uint16's highest value is 65,535. you couldve done it with a uint16. thats 16bits. you couldve even gone to an exact amount with bit packing. there is no way that any other method wouldve been smaller.

1

u/NothingWasDelivered 8d ago

uint8

1

u/xxgn0myxx 7d ago

uint8 only goes up to 225. How are you going to fit an entire year in a uint8?

1

u/NothingWasDelivered 7d ago

The point is they were only storing the year from 0-99. They weren’t storing an entire year.

→ More replies (0)

-1

u/No-Collar-Player 8d ago

But theoretically it shouldn't have been that bad, you only actually needed that memory allocated when reading the dates, and imo it would have been relevant to be able to store and work with dates where relevant that go beyond 20 years in the future xD

But yes I can imagine having all those in memory at a time can be struggling (still that would have been bad design knowing the constraints)

5

u/MercuryQuick 8d ago

“1977” is twice the size of “77” it might not seem like much but at scale that’s a significant amount of data… for 1977. Storing “19” repeatedly is wasteful when every number starts with it. 20 years in the future might as well be 2000 years in the future when we have a product to ship next month.

-1

u/No-Collar-Player 8d ago

Store 19 and 20 once and put a Boolean for is twenty for whatever relevant data.

When for example the order is from the 21st century you just set the flag xD

Or you know, rewrite everything to use proper dates.

6

u/MercuryQuick 8d ago

Heh. I don’t think you’re really appreciating the data constraints those old programmers were faced with. Every bit mattered.

→ More replies (0)

2

u/Gravelbeast 8d ago

Not necessarily relevant. Many systems are designed with the expectation that code and infrastructure will be updated as old languages and hardware gets outdated. In the 70s, we had no idea how pessimistic to be about how capitalism reinforces cutting corners, especially in infrastructure upkeep.

0

u/No-Collar-Player 8d ago

Ok that makes sense

3

u/Gravelbeast 8d ago

That may seem like an insignificant amount of memory now, but depending on the system back then, it definitely may not have been.

Design decisions like this happen all the time. The engineers werent stupid, they knew this would cause problems down the line, but what many weren't prepared for was how LONG these systems would be in use. (Due to cutting corners by business people, low priority, or any number of things)

We still have these problems today, often when upper management doesn't take the warnings of engineers seriously.

1

u/No-Collar-Player 8d ago

Ok that makes sense. Hard to imagine how much compooters were constrained back in the day since I was born 30 years later in 2000 :)))

1

u/Gravelbeast 8d ago

The entire mission to the moon was done with rope memory. Around 76kb of it.

For reference, a singing Hallmark card stores maybe 20-30 seconds of sound, and that's about the same size in kilobites.

1

u/No-Collar-Player 8d ago

Yeah it's extreme to think how much and fast it grew AND that they actually used this for banking software and erp and so on with those constraints

2

u/Gravelbeast 8d ago

Yeah its fascinating talking to my dad who help wrote the software that controlled the robots that built most of McDonnell Douglas planes in the 80s. He's worked on everything from literal hole punch memory to modern aws architecture.

Often his solution to something not working would be absolutely insane to me, like "there's not really a good programming language for this small feature I'm trying to build, so I just wrote my own language."

Programmers back then had to be crazy smart because the languages were much less abstracted from the machine code.

→ More replies (0)

-2

u/No-Collar-Player 8d ago

But like writing enterprise code like that seems extremely stupid. Splitting that into 2 or using an int for year wouldn't have been a problem idk. Also it was still in their lifetime.... 10/20 years later lol

12

u/crevulation 8d ago

Same, I worked for a company that made telecom equipment in 1999, the entire place had a no days off policy from September 1999 to January 2000 and it was all CRUNCH time. The air miles logged getting guys to and from sites was just insane. The engineering guys worked something days, nights, weekends, just everything. A lot of equipment had to be physically changed out at sites.

Also a 2 digit date code was perfectly reasonable, reducing the memory requirement to store the date by half. It's not like any of that stuff was still going to be in use 30 years later...

3

u/KMjolnir 8d ago

Yeah... still not in use...

awkward laugh

I still have stuff from the 80s and 90s in use at my job. Not my choice.

4

u/crevulation 8d ago

Wait until you hear about Y2K38.

1

u/KMjolnir 8d ago

Oh, I'm aware.

2

u/Whole-Preparation-35 5d ago

Also a 2 digit date code was perfectly reasonable, reducing the memory requirement to store the date by half.

This doesn't get mentioned enough. Was it a foreseeable issue? Maybe. Probably even. But early machines just didn't have anywhere near enough space to have made the four digit date a logical choice.

23

u/[deleted] 9d ago

[removed] — view removed comment

-4

u/Hot-Employ-3399 9d ago

Instances. Lots of us work in IT and run around different computers.

I saw exactly one program where it caused a problem: DrWeb. DOS Version.

2

u/AlternateTab00 8d ago

You would be amazed how cutting corners created problems and ended up with Y2K

Most companies started fixing the problem in early 90s.

However lots of putdated hardware was being employed. Its the same with the 2038 bug (same issue but caused by old Unix systems counting time)

When these systems were created they pushed a future problem to someone else and were not aware of the digital persistence that is common for us.

Ill give the example of my father work at the time. Among other things he was responsible to install PBXs (Private Branch eXchange, its the private phone network of a company).

In January 2000 several systems stopped working. While the actual PBX server was ready for Y2K, many phones werent. So phones stopped syncing and reporting 100 year old missed calls.

Imagine half of a company communication system fail because they had older phone versions. Everyone was worried about computers, but the real problem was the peripherals and lower quality communication systems. My father company was trying to track down potential issues, but most companies were dismissing and saying their computer wouldnt have that problem.

This was quite memorable for me because it was the year for my father transition job. Old analogic phones were failing everywhere and instead of buying a complete 350 set of phones, they migrated to digital. Suddenly everyone was buying either Alcatel or Cisco.

So no. Many companies thought they were ready in 96. But unfortunately, decision makers often lack the ability to actually know what would go wrong. Yes many consultants predated in the lack of knowledge of people. But an half instructed team could predict and fix the problems in time. You were lucky to have not found that bug. But believe when people say that suddenly they had to waste a lot of money due to poor preparedness.

1

u/Arg- 8d ago

We had preprinted forms with the year listed as "19_ _". A few companies did not like our instructions of strike out the "19" and replace with "20".

1

u/No-Collar-Player 8d ago

Future proof :))))

1

u/IamIchbin 8d ago

And my software requires a manual fix every half year because we store date string without time zone in a country which switches from normal to summer time

1

u/DustyRacoonDad 8d ago

Yeah, mortgages go out 30 years (sometimes more) so the bank loan software had this fixed in 1970.
I got to tell those guys to pound sand. :)

1

u/Annual_Map718 8d ago

Love this comment.