this post was submitted on 01 Dec 2023
334 points (98.0% liked)

Programmer Humor

32549 readers
504 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

I know this isn't any kind of surprise, and yet, well...

top 50 comments
sorted by: hot top controversial new old
[–] 018118055@sopuli.xyz 42 points 11 months ago (8 children)

2100 and 2400 will be a shitshow

[–] SkybreakerEngineer@lemmy.world 35 points 11 months ago (2 children)
[–] 018118055@sopuli.xyz 10 points 11 months ago

Yeah that's a different shitshow but agreed it is likely to be worse - like y2k the effects are smeared out before and after the date.

[–] borth@sh.itjust.works 2 points 11 months ago (2 children)
[–] leo@feddit.de 8 points 11 months ago
[–] Robmart@lemm.ee 6 points 11 months ago* (last edited 11 months ago) (1 children)

32bit systems will stop working. The Unix timestamp, which increases by 1 every second and started the first second of 1970, will reach the max of 32 bit integers. Bad things will follow.

[–] bjorney@lemmy.ca 10 points 11 months ago

This has already been patched on all 64 bit OSes though - whatever 32 bit systems are still in existence in another 15 years will just roll their dates back 50 years and add another layer of duct tape to their jerry-rigged existence

[–] Frederic@beehaw.org 16 points 11 months ago

2038 will certainly be a shit show

[–] flameguy21@lemm.ee 8 points 11 months ago

Yeah but I'll be dead so not my problem lmao

[–] Midnight1938@reddthat.com 3 points 11 months ago (2 children)
[–] 018118055@sopuli.xyz 16 points 11 months ago (1 children)

2100 not a leap year (divisible by 100). 2400 is a leap year (divisible by 400). Developing for dates is a minefield.

[–] Midnight1938@reddthat.com 1 points 11 months ago* (last edited 11 months ago)

Now imagine working on non Georgian, and the year is 2060

[–] xmunk@sh.itjust.works 8 points 11 months ago

Because they're not leap years but are 0 === year % 4

[–] 0x4E4F@infosec.pub 3 points 11 months ago

Luckily, none of us will be there.

[–] deegeese@sopuli.xyz 3 points 11 months ago (1 children)

Nah.

Same thing happened in 2000 and it was a mouse’s fart.

[–] 018118055@sopuli.xyz 18 points 11 months ago (1 children)

Because of months of preparation. I know, I was doing it.

[–] deegeese@sopuli.xyz 3 points 11 months ago (1 children)

And now that every time library has been updated, we're safe until our grandchildren reimplement those bugs in a language that has not yet been invented.

[–] 018118055@sopuli.xyz 8 points 11 months ago (2 children)

I've already seen reimplementation of 2 digit dates here and there.

[–] deegeese@sopuli.xyz 5 points 11 months ago (1 children)
[–] 018118055@sopuli.xyz 4 points 11 months ago (1 children)

Fortunately I will not be involved. Hopefully I can make something from 2038 though.

[–] deegeese@sopuli.xyz 2 points 11 months ago

You’re not the only one forseeing a nice consultant payday there.

[–] JustCopyingOthers@lemmy.ml 3 points 11 months ago

I went to uni in the mid 90s when Y2K prep was all the rage, went back to do another degree 20 years later. It was interesting to see the graffiti in the CS toilets. Two digits up to about 1996, four digits for a decade, then back to two.

load more comments (2 replies)
[–] accidentalloris@lemmy.world 41 points 11 months ago (2 children)

Then there's my code, which didn't even survive the time change.

[–] jubilationtcornpone@sh.itjust.works 15 points 11 months ago (2 children)

In every project I've ever worked on, there's been somebody who must have been like, "HurDur Storing timestamps in UTC is for losers. Nyeaahh!"

And if I ever find that person, I'm going to get one of those foam pool noodles, and whack him/her over the head with it until I've successfully vented all my frustrations.

[–] humorlessrepost@lemmy.world 16 points 11 months ago

I just use a float between 0 and 1 with 0 being 1970 and 1 being the predicted heat death of the universe.

[–] 48954246@lemmy.world 3 points 11 months ago (1 children)

The only time using UTC breaks down is when any sort of time change gets involved.

If I say I want a reminder at 9am six months from now and you store that as UTC, a day light savings change will mean I get my reminder an hour early or late depending on where in the world I am

[–] projectmoon@lemm.ee 8 points 11 months ago (2 children)

But wouldn't you calculate the time in the future in the right time zone and then store it back as UTC?

load more comments (2 replies)
[–] ultratiem@lemmy.ca 3 points 11 months ago (1 children)

Your code made it to the time change!!?

[–] agent_flounder@lemmy.world 4 points 11 months ago

Same... The change from 12 to 1

[–] TootSweet@lemmy.world 18 points 11 months ago* (last edited 11 months ago)

People who haven't had a birthday in almost four years are like

reaction gif of a little boy busting out a funny celebratory dance in the stands of (probably) an unknown sports event.

[–] DieguiTux8623@feddit.it 12 points 11 months ago (2 children)

Programming aside, where I live in Southern Europe we have a tradition according to which leap years bring bad luck. After 2020, I don't know what to expect... nuclear apocalypse maybe?

load more comments (2 replies)
[–] Synthead@lemmy.world 9 points 11 months ago (1 children)

Always, always, always, without taking any shortcuts, use a tzinfo library for your language.

[–] milkjug@lemmy.wildfyre.dev 3 points 11 months ago

Anyone who doesn't use standardized libraries for tz should be summarily tried.

[–] Bishma@discuss.tchncs.de 7 points 11 months ago (1 children)

I'm not worried about my code, I'm (very slightly) worried about all the date libraries I used because I didn't want code that shit again for the billionth time.

[–] perishthethought@lemm.ee 7 points 11 months ago (1 children)

Your comment made me go look at the source for moment.js. It has "leap" 13 times and the code looks correct. I assume they test stuff like this.

[–] Bishma@discuss.tchncs.de 4 points 11 months ago (1 children)

Yeah, I'm generally using the common data/time libraries in most (if not all) languages and I'm pretty sure they've all been through more than 1 leap year at this point. I just never 100% trust the code I don't control - 99.9% maybe, but never 100.

[–] lightnegative@lemmy.world 3 points 11 months ago

I just never 100% trust the code I don't control

I never 100% trust the code I do control. Partially because a lot of it is inherited but also because I know corners were cut but I can't always remember when and where

[–] Frederic@beehaw.org 7 points 11 months ago (1 children)

I worked in broadcasting (programming broadcasting applications), everything is done with PTP (Precise Time Protocol) and TC (timecode) in video. We had to support leap second, it's not as easy, but in the end, insert black frames for 1s and that's it.

[–] TostiHawaii@feddit.nl 4 points 11 months ago (2 children)

I hope leap days are handled a bit more sophisticated!

[–] Scrollone@feddit.it 6 points 11 months ago

Insert black frames for 24 hours and you're good to go!

[–] Frederic@beehaw.org 2 points 11 months ago

Haha yes, no problem with those 😁

[–] DmMacniel@feddit.de 4 points 11 months ago (1 children)

Yeah... I patched some unit tests...

[–] killeronthecorner@lemmy.world 3 points 11 months ago

Before it was 50/50 that they'd fail on leap day, but after the patch it's 50/50.

[–] KISSmyOS@lemmy.world 4 points 11 months ago* (last edited 11 months ago)
[–] superweeniehutjrs@lemmy.world 2 points 11 months ago

I hope the homeassistant guys already have this covered, because I didn't use it 4 years ago to know

[–] xmunk@sh.itjust.works 2 points 11 months ago

I'm not worried at all - I love me some tz database.

[–] rolaulten@startrek.website 1 points 11 months ago* (last edited 11 months ago)

We found an use case with Page duty and it's ical feed already...

load more comments
view more: next ›