This Year's Y2K20 Bug Came Directly From 'A Lazy Fix' to the Y2K Bug (newscientist.com) 160
Slashdot reader The8re still remembers the Y2K bug. Now he shares a New Scientist article explaining how it led directly to this year's Y2020 bug -- which affected more than just parking meters:
WWE 2K20, a professional wrestling video game, also stopped working at midnight on 1 January 2020. Within 24 hours, the game's developers, 2K, issued a downloadable fix. Another piece of software, Splunk, which ironically looks for errors in computer systems, was found to be vulnerable to the Y2020 bug in November. The company rolled out a fix to users the same week -- which include 92 of the Fortune 100, the top 100 companies in the US....
The Y2020 bug, which has taken many payment and computer systems offline, is a long-lingering side effect of attempts to fix the Y2K, or millennium bug. Both stem from the way computers store dates. Many older systems express years using two numbers -- 98, for instance, for 1998 -- in an effort to save memory. The Y2K bug was a fear that computers would treat 00 as 1900, rather than 2000. Programmers wanting to avoid the Y2K bug had two broad options: entirely rewrite their code, or adopt a quick fix called "windowing", which would treat all dates from 00 to 20, as from the 2000s, rather than the 1900s. An estimated 80 percent of computers fixed in 1999 used the quicker, cheaper option. "Windowing, even during Y2K, was the worst of all possible solutions because it kicked the problem down the road," says Dylan Mulvin at the London School of Economics....
Another date storage problem also faces us in the year 2038. The issue again stems from Unix's epoch time: the data is stored as a 32-bit integer, which will run out of capacity at 3.14 am on 19 January 2038.
The Y2020 bug, which has taken many payment and computer systems offline, is a long-lingering side effect of attempts to fix the Y2K, or millennium bug. Both stem from the way computers store dates. Many older systems express years using two numbers -- 98, for instance, for 1998 -- in an effort to save memory. The Y2K bug was a fear that computers would treat 00 as 1900, rather than 2000. Programmers wanting to avoid the Y2K bug had two broad options: entirely rewrite their code, or adopt a quick fix called "windowing", which would treat all dates from 00 to 20, as from the 2000s, rather than the 1900s. An estimated 80 percent of computers fixed in 1999 used the quicker, cheaper option. "Windowing, even during Y2K, was the worst of all possible solutions because it kicked the problem down the road," says Dylan Mulvin at the London School of Economics....
Another date storage problem also faces us in the year 2038. The issue again stems from Unix's epoch time: the data is stored as a 32-bit integer, which will run out of capacity at 3.14 am on 19 January 2038.
Lazy Vs. Disaster (Score:5, Insightful)
I actually have a lot of sympathy for people that just implemented the windowing solution at the time, rather than trying to change a bunch of probably very fragile systems in a short timeframe.
However, then those companies had 20 years to shift off windowing!! That is a hell of a long time to add two more digits of storage per year kept and adjust whatever systems broke from that change. So anything that breaks now, I just can't have much sympathy for.
And side-note, was Splunk even around in the year 2000? It seems really funny to me they would have this in an issue in the software they have built.
Re:Lazy Vs. Disaster (Score:4, Interesting)
It's a big pain in the ass to futz the fixed-width flat-file databases to shift every damn thing past every date two digits rightward in COBOL. Somewhere, somehow, some monkey wrote his own parser. It's Never Easy.
Re:Lazy Vs. Disaster (Score:4, Interesting)
Re: (Score:2)
Re: Lazy Vs. Disaster (Score:3)
If you created a 4k allocation and didn't leave a couple bytes for an API change, then you are a shitty programmer. Please let someone qualified fix this; don't give it back to the guys who fucked it up in the first place as they are fucking idiots.
Re: (Score:2)
Re: (Score:2)
Re: Lazy Vs. Disaster (Score:2)
The reason the window only extended to 2019 is simple -- values beginning with '20' were assumed to be 4-digit years followed by 2 more digits, while values beginning with 21..99 were 19xx and 00..19 were 20xx.
It wouldn't surprise me if lots of software actually started having problems in 2019, by making the same assumption that a year string beginning with '19' is a 4-digit year as well.
As shocking as y2k-complacency seems now, even circa 1997, it was common for Perl programmers to display years by prepend
Re: (Score:2)
Common for idiotic stupid incompetent perl programmers.
But I guess we said the same thing.
Re: (Score:2)
That was never an "official strategy", its sounds rather stupid.
Re: (Score:2)
Re: (Score:2)
Perhaps you should dig a bit deeper into the problem.
There is no real fix.
That is why we had about four solutions, with their unique problems.
E.g. how to show it on the screen? Hidden dates in "other numbers", like a contract number.
E.g. 100-05-255, department 100, 5th year after founding of the company, day number 255. Or other silly things. migration of old data on tapes etc. Having an old terminal, someone writes a string ending in 98 at certain position, another one knows there is a date and scraps if f
Re: (Score:2)
Re: (Score:2)
Their fix? Add 20-29 to the window. Old:
<define name="_year" extract="year">
<text><![CDATA[(20\d\d|19\d\d|[901]\d(?!\d))]]></text>
</define>
New:
<define name="_year" extract="year">
<text><![CDATA[(20\d\d|19\d\d|[9012]\d(?!\d))]]></text>
</define>
See you in 2030...
Re: Lazy Vs. Disaster (Score:2)
Should have been phased out. (Score:5, Insightful)
The windowing solution wasn't a bad solution per se as it was expected that the computers/software would be replaced in the next 20 years. The fact that it wasn't and that it was never fixed demonstrates pervasive mismanagement of assets throughout the business world. They had 20 years to correct these issues but chose to never address them.
You reap what you sow.
Re: (Score:3)
As I recall, this was all more or less coincident with the dot com boom. All those coders probably quit their boring salaried jobs to instead get rich, just as soon as their in-lieu-of-salary shares of Kozmo.com vested.
Re: (Score:2)
All those coders probably quit their boring salaried jobs to instead get rich { ... }
That was coincident with but not part of Y2k. On the technical front, Y2k was straightforward enough but tedious as hell, so the sorts of people who could groove on that went for it. If'n ya knows programmers, the rest is easy to figure out.
Re: (Score:2)
We had a specialized compiler/data flow analysis and code visualization and automatic transform system ... ... it was actually fun to fix a million line of code in 4 weeks with 4 people working in a kind of pipeline system. I think top performance was about a million line of code per week, but the stupid industry in Germany did not believe us, and rather hired consultants that costed twice as much as we costed and took 50 times as long to fix it. (We did in weeks what others did in
Nothing tedious about that
Re: (Score:3)
Re: (Score:2)
They had 20 years to correct these issues but chose to never address them.
The same thing will be said in a few years about climate issues. This how it works. People rely on what they can enjoy at this very moment.
Re: (Score:2)
The windowing solution wasn't a bad solution per se as it was expected that the computers/software would be replaced in the next 20 years
If the software had to face y2k, it was already old stuff in 2000. If the problem still exists based on the y2k fix, that means this is [a] really old [p.o.s]. Bad software that shouldn't be used nowadays.
Re: Should have been phased out. (Score:2)
It canâ(TM)t be that bad if itâ(TM)s still in use after more than 20 years. Surely itâ(TM)s still solving a problem, most of the issues and quirks are understood, more importantly: whoâ(TM)s going to pay for a complete re-write and yearâ(TM)s more of discovering newly created issues and maintenance costs of fixing them? Want to bet that a nice shiny rewrite with todayâ(TM)s faddy tools wonâ(TM)t even be runnable in 20 years?
Re: (Score:2)
Re: (Score:2)
Re: Should have been phased out. (Score:2)
"worked perfectly" is not how I would describe software with a logic bomb that is so snarled into a mass of unmaintainable code that it's inconceivable to fix the problem in 20 years.
Re: (Score:2)
The biggest software we fixed was a very simple thing: a payroll system, that prepared bank transactions and calculated the taxes and other fees on it. A company ran it as a contractor for a dozens of other companies. That was the only thing they did, or could. WTF would anyone throw that software away, and write it anew for dozens of millions of dollars when I with my team can "fix" it with "sliding windows" forever, for 1 million?
Re: (Score:3)
The windowing solution wasn't a bad solution per se as it was expected that the computers/software would be replaced in the next 20 years.
You might as well make the same excuse for the original Y2K problem. Using 2 digits wasn't a bad solution per se as it was expected that the computers/software would be replaced in the next [n] years.
Of course, if you "fixed" Y2K by windowing only to have your solution blow up in your face 20 years later, it demonstrates that you didn't learn your lesson even given two opportunities.
Re: (Score:2)
You might as well make the same excuse for the original Y2K problem. Using 2 digits wasn't a bad solution per se as it was expected that the computers/software would be replaced in the next [n] years.
If computers had stayed the way they were in the 1970s it's entirely possible they'd have stayed on two digit years forever and manually managed the switch between 00-99 and 50-49, for most businesses a 50 year operating window is ample and those bits were precious. To use a car analogy in year 2000 the same consideration would be like "Hey I'm charging my Tesla off this grid, can I add a LED light bulb too or would that put too much of a strain on the system?". Sometimes having the necessary resources is w
Re: (Score:2)
Oh, yes, and it was perfectly reasonable to use only two digits back then. And, fortunately, enough people were aware of Y2K when it was coming up that they were able to raise awareness enough for something to be done about it.
Today, ISO 8601 dates have the flexibility to add additional year digits, so 9999 isn't even the limit. But even if humanity lasted until 9999, the way we number months and days surely will have changed, making 8601 obsolete before that extremely forward-thinking feature is ever used.
Re: (Score:2)
Re: Should have been phased out. (Score:2)
We already use multiple calendars around the world. It's almost inconceivable to think that over the next 8000 years, no one will add support for the Hebrew and Chinese calendars to the majority of major software. Once you have support for multiple calendars, it's an easy step to change the calendar to something more sensible than an imprecise calendar centered around a Christian myth.
Hell, think what happens if we get people to Mars. It would take a vast amount of willful ignorance to try to port he Earth
Re: Should have been phased out. (Score:2)
change the calendar to something more sensible than an imprecise calendar centered around a Christian myth
The modern calendar (the Gregorian calendar) isn't centered on Christian mythos at all, it's just a refined version of the Julian calendar. And it's based on the orbit and revolution of the Earth. Leap seconds are a result of slight deviations in the orbital period, and leap days are a result of the rotational period not precisely aligning with the orbital period.
Re: (Score:2)
the way we number months and days surely will have changed
Extremely unlikely. Except for a few exotic ones e.g. Mayas, we do that since 6000 - 8000 years, why would we change anything in the near -oops- future?
Re: (Score:2)
Re: (Score:2)
The idea that people used 2 bytes, aka 2 digits to save space, is an internet myth.
People aka programmers used two digits: because on every paper they dealt with, checks they wrote, or received or other things except a birth certificate: had only two digits. For most programmers it was simply natural to use two, digits, still in the late 1980s .... because the idea: oops that will blow us later in the face, did simply not occur to anyone, except the "alarmists".
That is how the human mind ticks, just doing t
Re: (Score:2)
Re: (Score:2)
A lot of places did not put their best and brightest on the problem, or their long term people.. they hired a bunch of contractors to work on it and then fired them all.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Kicking your can (Score:2)
Re: (Score:2)
Re: (Score:2)
Realistically that is the best solution for many systems if a full rewrite isn't an option.
Re: (Score:2)
Not me, I'd go for 60
Re: (Score:2)
Re: (Score:2)
Basically everyone who did _professional_ Y2K fixing, it was the standard method.
Or do you mean "a fixed window"? Most used sliding windows, every year the lower bound and the upper bound moved one year forward.
Re: (Score:2)
All right, how many thought "let's slide the window, 20 to 40" ?!
I'm actually thinking about the conversation they had:
Flunky: "What's the earliest possible legitimate date we'll ever encounter? 1960? 1950? 1940?"
Tech lead/PHB: "Oh, damned if I know, it can't possibly be before 1920. Use that, check the box, and move to the next project."
Re: (Score:2)
All right, how many thought "let's slide the window, 20 to 40" ?!
I thought of that and immediately rejected it. As the historical record being handled expands, you start running into significant past times that are no longer representable, "eaten" by the advancing window.
(Note that it's not safe to advance the window to about the start of computing plus 100 years minus a couple for flags: Some databases were converted from pre-computer written records with pre-computer dates.)
People are living longer now,
bad generalization (Score:5, Insightful)
Re: (Score:2)
While windowing was a bad fix for a few systems, it was a great fix for a shit ton of systems
Sure. But that also means the software had to be replaced / deeply changed in the years after y2k. So, quick-fix to sleep well between 99 and 00, then, the usual "it works so we forget about it". The ugly "don't fix what's not broken" we still hear, usually from people not so tecky, who might nevetheless have decision-making power, unfortunately.
Re: (Score:2)
The tech mantra that ignores attrition (Score:2)
Re: (Score:2)
It also-also means the changed software was changed without a literal deadline hanging over the programmers' heads, which ideally should mean fewer bugs.
Re: (Score:2)
While windowing was a bad fix for a few systems, it was a great fix for a shit ton of systems
Sure. But that also means the software had to be replaced / deeply changed in the years after y2k. .
For some systems. Where the company no longer existed / was bought by another (and everything moved onto the other company's system) / old system was replaced, then the "bad fix" was just enough.
What is left is the "old system not replaced" (which might include company bought by another, but did not integrate into the current system. Or even worse, buying company had a 2020 issue themselves), which is a significantly smaller subset of those that were needing to be fixed for Y2K
Re: (Score:2)
Re: (Score:2)
The irony (Score:2)
Re: (Score:2)
You missed the best part: the game has 2020 in the title, demonstrates the problem with the window solution to the Y2K bug, and is published by a company called 2K.
Really? (Score:4, Interesting)
Honestly, just stop pissing about.
64-bit minimum for everything. We aren't limited by RAM etc. nowadays, you can use the largest primitives available and that means 64-bit on anything in the last 10+ years, and "emulating" those on older platforms is incredibly trivial and we've been doing that for years too.
64-bit gives you until the year 292,277,026,596. Not just "let's knock this down the road a bit", but "let's solve this for the rest of the existence of the human race". For the cost of another 32-bit number in a tiny handful of places. That's 4 bytes. On machines with GIGABYTES, literally billions of bytes of RAM, storage, etc.
We have no need to assembly-optimise a tiny workaround to ridiculous extremes any more.
I also contest that everything should be 64-bit minimum: RAM size counters, file size limits, basic integers holding the number of USB devices, whatever, who cares? Just make it 64-bit. There are 128-bit supporting filesystems out there already.
Rather than waste our time, time and time again, just make everything 64-bit minimum and solve the problem for the rest of humanity's existence.
Re: (Score:2)
Why would I waste so much bandwidth, RAM and storage space by mandating that everything is 64 bits?
We didn't spend decades on signal processing, efficient network protocols and storage compression algorithms to just throw it all away now.
Sure, sometimes you have a machine with gigabytes of RAM. Sometimes you have a machine with kilobytes, sometimes you have 14 hours of latency on the network, sometimes you want to save exabytes of storage overheads.
Those are real world problems in 2020. Mandating a blanket
Re: Really? (Score:2)
If you're saving bandwidth but you can't interpret the data being sent, I'd say that's a dumb-fuck tradeoff.
Re:Really? (Score:5, Insightful)
People also tend to forget just how wasteful 64bit tends to be when dealing with data that is much smaller than that. Doesn't impact desktops, cell phones, or web servers much, but when you start getting into number crunchers it can really add up. I work on software that is still 32 bit because we discovered that even with modern hardware moving over to 64 bit is just too big of a memory/cpu hit.
Re: Really? (Score:2)
If 4k is your performance limit, and you didn't leave 2 bytes of unallocated space, you're a shit developer.
Re: (Score:2)
Re: (Score:2)
and solve the problem for the rest of humanity's existence.
A) Do you REALLY want to rewrite all that existing "legacy" code, databases, and the hardware that that still runs it? And so you're going to pay for the code changes AND economic AND hardware disruption, right?
..." signs.
B) You mean 12 years, right? Link [insideclimatenews.org]. And there are a million others. Also this one [cnn.com], where they're taking DOWN the "in 12 years
I'm (was) a Command Level CICS programmer back in 1986. Using 4K of RAM was an extravagance. And like the web, your program did it's your job, "saved a co
Re: (Score:2)
You're still thinking too small. The smallest possible unit of time is the Planck unit. There are approximately 5.39 * 10**44 Planck time units in a second. Even so, it only takes 202 bits to count every single Planck time unit since th
I think it broke some busses. (Score:2)
Arriva busses in the UK. Payment systems packed in on some of the buses in my area at the start of the year - drivers just waved everyone through after the QR-code readers were rejecting tickets. They fixed it last week though, so all good. I can't find any other reports of it happening though, so maybe it was just local. I spoke to one of the drivers and he just said all the buses he had driven for the first week of the year were affected.
Who are these people? (Score:4, Insightful)
Re: (Score:2)
Who the hell buys a "professional wrestling video game"?
Same people who buy a fifa game, or a nba game.
Or the friends video game:
https://www.amazon.com/Friends... [amazon.com]
thast is to say, people who like the wwf franchise for whatever reason. Be it for the "sporting" aspect, the "soap opera" aspect or the larger than life aspect.
Staggering (Score:2)
I faced the Y2K as fresh faced CS graduate and even with my limited experience had the foresight to turn the two characters/bytes into an unsigned short integer of 16 bits.
I guess I should not be staggered with hindsight given how much bodged trash code I've seen over the last 20 years, usually produced by those who also claim a Computing degree is a waste of time.
Summary is inaccurate about Y2038 (Score:3)
Unix / POSIX time is stored in a 32-bit signed integer (summary incorrectly said integer) on a 32-bit operating system. The issue is that the 31-bit integer part overflows causing the signed bit to be set resulting in time jumping backwards to 1902 because 31 bits can represent about 68 years. 1902 to 1970 = 68 years, 1970 to 2038 = 68 years.
Y2038 will cause systems to use the wrong Unix EPOCH era and misbehaviour is likely. Typical problems with be timer events that span over the Y2038 discontinuity because the timer may never expire or expires way in the future. If the time period is relative then a system reboot would "fix" it but any absolute time calculations are likely to fail.
Y2038 is not limited to just the Unix time clock because various sub-systems and protocols use timestamps. This means that using a 64-bit operating system is not a full solution as external devices and communication links can still have Y2038 issues. In other words, Y2038 is also a communication failure risk between systems.
People should also be aware of the Y2036 rollover of NTP (Internet / Network Time Protocol) that many devices rely on to get their system time and date. This is likely to impact IoT devices. The Y2036 issue occurs because the NTP era moves to the next era. Mitigation is possible if the device keeps track of it's shutdown time and date to prevent the NTP calculations overflowing. However, Y2036 in combination with Y2038 is likely cause systems with no RTC (Real Time Clock) to boot-up with incorrect times and dates.
Y2038 is likely to hit the automotive industry because vehicles last 20 years and Y2038 is just over 18 years from now.
Ask yourself why you cannot set your Apple or Android smartphone past 2038, these devices are restricted to a max date of 2036 to avoid Y2038 failures.
I suggest people look out for the Y2038 Ready stickers like occurred with the Y2K fixing campaign.
2038 bug shouldn't be an issue (Score:2)
2038 bug only really applies to 32 bit machines. If you're still running 32 bit machines, you are completely at fault for letting this bug present itself.
Just like those who chose a windowed implementation to "fix" the issue.
Re: (Score:2)
It applies to filesystems too, ext2 and ext3 filesystems use 32-bit dates, can't handle dates after 2038.
Funnily enough, the ext4 filesystem fixes this with another 'Lazy fix' - adding 2 extra bits for date, which just pushes the problem out by about another 400 years.
Re: (Score:2)
Please stop propagating the myth that 64-bit machines are immune from Y2038. This is untrue. Use of 64-bit machines probably gets you 95% to resolving the issue. But you can still suffer some Y2038 issues on 64-bit machines. It is true to say that unfixed 32-bit machines are 100% susceptible to Y2038.
64-bit operating systems use a signed 64-bit integer for system time which resolves most but not all of the Y2038 issues.
The Linux kernel (since about v5.1) has added a parallel set of system calls to allow 32-
Fix it once, fix it right (Score:4, Interesting)
All this bull about 2 and 4 digit years is just that, bull.
How hard is it to look at the current year and from that decide where the window is. That's the way I did my Y2K fixes and the user gets to continue entering 2 digit years and the fixed code is immune to even the Y10K problem. If your dates can be safely treated as within a 99 year window there is no need for using 4 digit years.
We're missing something really important. (Score:2)
Did they really say the Y2038 problem will occur at Pi AM, 3:14 in the morning?
I assume they mean in UTC so it won't be in my timezone but still.
Actually, I'm surprised we didn't hit this in 2008 when financial systems needed to start computing the end date of 30 year loans. Maybe COBOL is saving our asses because they don't do the computation using time_t.
Smart programmers made it a 21 year window (Score:2)
They're still working at the same companies where their managers are reading about the Y2k20 bug and giving them big bonuses for having the foresight to fix the code "properly" 20 years go. In the fall they'll be putting in their retirement papers thanks to the bonuses.
Re: (Score:2)
Ain't bits, bruh. Em's bytes. COBOL, man.
Re: (Score:2)
Ah, that "C" language with "obol" behind ...
Re: (Score:2)
Ah, that "C" language with "obol" behind ...
C is fine. COBOL... Holy shit someone made something useful out of it when I was being happy that someone invented Dittos jeans and it's still here. I'm actually in the process now of teaching an entire office full of people to use SSH instead of telnet in order to access their most mission-critical COBOL application. Which, BTW, is still actively updated. Go figure.
Re: (Score:2)
COBOL have many many nice features regarding its record structures, moves, and input/output.
And I guess its verboseness is in a modern editor completely irrelevant, or when did you type the last time a '}' ??
Re: (Score:2)
Re: (Score:2)
All files in Unix start with a magic number, except a pure text file.
And hence a good habit is to add scripts with:
#!<space>/
So all scripts have as the first 4 bytes the same magic number .... but well, that is probably not old school but "gruft schule"
Re: (Score:2)
Re:Why 2020? (Score:4, Informative)
Not seven bits: two decimal digits, probably encoded in eight bits with BCD, which had native hardware support in a lot of mainframes back in the day.
Re: (Score:2)
Even a 6502 has native BCD support ...
Re: (Score:2)
Re: (Score:3)
Sometimes it's not that simple, for software that runs more important things than "Marvs marvellous cooking with Marhsmellows" website, testing involves multiple parties and lots of time, and since time=money...
It doesn't get tested, so it doesn't get deployed. Be assured it's on the "Risk Matrix" and all that good stuff, but changing something one would consider "small" but actually has an impact on the entire system, would require system wide testing. Which would require LOTS of testing and LO
Re: (Score:2)
LOL! "windowing" and assuming 19 means 2019 and 20 means 1920! Typical of somebody I know, I bet that they hired that ceremier guy as an intern to "fix" the issue back then.
It's just a terrible implementation of windowing.
I did much the same when working on Y2K fixes for old mainframe systems: in my case, car dealership systems. Our window was 85 years back, or 15 years forward from the current year. You were boned if you were over 85 and trying to get a car loan, or trying to set up a contract more than 15 years long. In practice, it wasn't a problem.
How dumb would you have to be to fix that window on the year you did the fix, instead of the current year?
Re: (Score:2)
How dumb would you have to be to fix that window on the year you did the fix, instead of the current year?
I suspect that you would then end up introducing a new problem caused by the problem you were trying to fix in the first place. With the fix you suggest, newest 85 year-old trying to get a car loan would complain every year instead of every 20 years.
Also, you have to make sure that you follow some kind of standard to deal with all the third party libraries your systems use. Therefore, I understand the move towards everybody kind of accepting 2020 as the pseudo-standard to keep things as simple as possible.
T
Re: (Score:2)
Age of people was most of the time always already an except in dates or more precisely "time ranges", however bugs that 105 year olds got a letter to come to school, nevertheless happened (independent from Y2K problems) all the time (and still do sometimes after Y2K was fixed).
Re: (Score:2)
About as dumb as you'd have to be to implement a windowing 'fix' instead of doing it properly.
Two extra fucking digits. It's not hard. One extra byte. Oh no!
Re: (Score:2)
Given your UID, you should know that it was very unlikely to be that simple for most systems.
Re: (Score:2)
Simple? no. Possible? Yes.
The 80/20 split is inverted from where it should be.
Re:2038 bug = lazy managers (Score:5, Insightful)
Re: (Score:2)
Wish I had mod points, so true.
And for added fun, high level managers did not want to spend extra money on the fix, after being told 10 times per day since 1990 a fix was needed. Many waited until 1999 to start allowing work on a fix when they realized their year end bonus could get hit. Thus shortcuts had to be taken.
Me, I used 80 as the cut-off, at least I knew I would be gone :)
Re: (Score:2)
Then we will see this coming back at other arbitrary dates as well - 2025 and 2030 are probably coming up.
Re: (Score:2)
That is actually not how windowing works ... I leave it to you to figure it. ...
But perhaps you have a typical programmer in mind who got lost there
Re: Nobody remembered (Score:2)
If only! What actually happened is they went from 1BC to 1AD, skipping zero, and created thousands of years of off-by-one bugs and insufferably pedantic posts around century marks.