this post was submitted on 17 Apr 2024
1459 points (98.6% liked)
Programmer Humor
19114 readers
545 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
We've gone too far. Everyone just switch to UTC please. Yes, it means some will go to bed at 2pm and get up at 10pm, so what.
While we are making reasonable demands, stop using 12 hour time. Sincerely, everyone else.
And please, get all countries to actually start properly accepting ISO 8601 format for dates as a mandatory universal standard...
Obligatory reference: https://xkcd.com/1179/
No
tldr - you'll just have to do the conversions in your head now because it's useful to know where the sun is at different points on the earth when trying to communicate across those points.
Maybe this freak should just text uncle steve whatever he wanted, or a "call me when it's convinient" message, and then steve will probably see the notification at some point in his morning routine before too long. If this guy really needed to call steve anyways, for whatever reason, he shouldn't care about time zones, because it's an emergency.
If you were commonly calling whatever place you were calling, you'd probably be able to intuit what time they woke up anyways, so it's all moot.
I dunno. I think it's pretty easy to make a big deal out of time zones and calendar measurements and whatever but I don't think it really, actually matters that much, because the main thing they facilitate is communication. Time zones and timelines should be engineered more around the human condition, I think, than around anything else.
But then, I think, to construct anything around the human condition is kind of paradoxical. If you create a schedule, then you have created a schedule. I.e. if you construct time, then you imply the existence of something that needs to be measured. That implies deadlines.
Frankly, that's too much pressure for me, so I'm going to take the more controversial stance here: Abolish time. No more time, no more numbers measuring when I should do what. You're either gonna tell me whether or not to do something now, or to do it later. The people gotta learn that time is more subjective and contingent, and they gotta start showing up to their work shifts whenever they want to make money, instead of just showing up at a given time when the fuckin steam whistle goes off like it's the 1800s.
I can get behind that
Obviously it would require some getting used to, but already people can't comprehend time zones, so that won't change. My grandma called in the middle of the night all throughout our three year stay in Australia.
It's gonna get much worse when you start to try mapping days of the week onto the new times. Are days gonna be the same everywhere as well, to stay from 0 to 24? If so, have fun saying things like "Let's find a time on Wednesday/Thursday". People likely couldn't be bothered and would probably just use the day that their normal wake-up time falls on to mean the full solar day instead. At which point you could also just say okay, weekdays are still following local solar days. But now what weekday is it halfway around the world? Now you need to look up their solar day.
All this to say - abolishing time zones will introduce the reverse problem for every problem that it seemingly solves. You can't change the fact that our planet rotates and people in different locations will follow different schedules. Turning the lookup-table upside down is just a cosmetic change that doesn't remove the situation that's causing the confusion. I'd rather just stick with the set of problems that we're already used to dealing with.
Fair point!
People comprehend days, they comprehend that their day starts at 00:00 and ends at 23:59. Calling to the other side of the world isn't something most people.do on a daily basis
Not even that. I'm sure you've heard "it's tomorrow when I've slept", no matter what the clock says. Switching terms at midnight will cause confusion more often than not.
Ohh, she knew.
Those that propose moving to UTC should take responsibility and take the +12h offset. Why should we let the brits enjoy +0 offset while the rest of the world got the short end of the stick (especially those living in the pacific)?
Sure, I don't mind. I live in CET.
CEST now...
Obligatory fuck DST
before i let the people win with "summer time all year", i am ready for the 12h offset in the 24h system
If it makes a dev’s life easier there’s no reason not to upend half the planet.
In Europe we've been talking about ending DST for years now and it hinges on countries deciding which zone they want to adopt permanently. Why can't they decide? Because the notion of getting up at six and having lunch at 12 is stronger than the cosmic fact of the sun being in the middle of the sky. We just need to decide how we want daylight to fit into that grind.
I say fuck that. If we can't decide, don't. Since we're changing everything anyway, going to UTC will force everyone to think how THEY want to live their lives. When to open stores, whether to move opening hours in winter or summer, when to go to work (both early birds and night owls are great).
Plus in today's globalized world, 14:00 will be 14:00 everywhere. You decide for yourself if you're working then or not if somebody sends a meeting request halfway across the world.
Britain: hey guys let's just use my time k?
Europe: Fuck you.
No, 14:00 will be 2pm in freedom land.
Fuck em, send them 24h times and let them figure it out.
Why switch? It's not too complicated a concept for the average person to understand and deal with. In fact, it's intuitive. Sure in software the logic has a few nuances that are a bit complex when needing to deal with local time and timezones, but that's why we make the computers do the tricky work.
Personally, I think it's just easier. Yes, computers and stuff, but we've perverted local time long ago with DST and country spanning single time zones, so might as well use one global zone and get rid of the confusion altogether.
required reading: https://www.youtube.com/watch?v=-5wpm-gesOY
That's all good info and explains some of the problems that could be resolved for us programmers if we were on UTC, but for the most part these are programmer problems and the computer handles it for everyone else. Additionally, it makes a few issues clear that won't be resolved with a UTC switch.
First, as mentioned countries all over the world decide for themselves what timezone they're going to follow. Even if countries were to switch to UTC, we know they all won't do it nor at the same time, so programmers will have to deal with that added complexity too having some on UTC, some off, some switching on this date or that... if the movement got serious we'd have another Y2K frenzy, but not one that ended on a specific date.. it'd linger for years as various countries came on-board. Additionally, we'd still have to deal with all the historical calendar, timezone and DST switches he mentioned. Those wouldn't go away... in fact we'd be introducing a bunch of new ones.
Fact is timezones are understandable and work pretty good for normal people and their day-to-day tasks. Normal people aren't going to want to understand UTC and then have to translate their normal day times to and from others around the world. No matter where you are I understand what you mean when you say your morning started at 6am or you eat at noon or you go to bed at 11pm or 23:00 for that matter. With UTC I don't know what 23:00 means in Australia, Germany or India relative to your day... not only programmers but even normal people would have to know how to translate that to a time they can relate too, so you'd have to know timezones anyway. So while I'd know 23:00 was exactly the same point in time for each of us, I wouldn't know how it relates to your day the way it relates to mine... is it morning, night, mid-day? It would actually make today's programmers problems - which isn't too common for most of us - a problem for everyone.
I'm just saying, but we did.
Pretty much every electronic thing you own that resembles a computer (phones, tablets, laptops, desktops, even your damned TV) uses UTC. Every. Single. One. Translates that time to "local" whenever it needs to.
So when your TV goes from 9:32 to 9:33, is just showing the converted time from UTC each time.
Almost every device on the planet is keeping time in UTC.
Just because you don't see UTC time on your device, doesn't mean that's not what's happening. I had an issue where I needed to get into my computer's bios for something, as soon as the BIOS loaded and showed the time, it was "wrong" because it was in UTC. I'm sure plenty of newer BIOS dialogs are configured to account for timezones now, so yeah. I might be unique in this. It's still there.
Almost all computers count time as seconds from the epoch (midnight 1/1/1970). That then gets converted into a readable time, which may go through UTC to be converted first, but that's not how it's storing it.
You're referring to UNIX time. And you're correct.
It's a count of how many seconds from midnight, January first, 1970, UTC.
Local computers update that time, still in UTC, from time servers, usually over NTP, then translate that time reading from UNIX time in UTC, to a human readable format in the local time zone.
All computers are still keeping track of time from Epoch in UTC.
Unix time is far less universal in computing than you might hope. A few exceptions I'm aware of:
Converting between time formats is a common source of bugs and each one will overflow in different ways. A time value might overflow in the year 2036, 2038, 2070, 2100, 2156, or 9999.
Also, Unix time is often managed with a separate nanoseconds component for increased resolution. Like in C
struct timespec
, modern *nix filesystems like ext4/xfs/btrfs/zfs, etc.Because you don't use Windows. Windows by default stores local time, not UTC, to the RTC. This behavior can be overriden with a registry tweak. Some Linux distro installer disks (at least Ubuntu and Fedora, maybe others) will try to detect if your system has an existing Windows install and mimicks this behavior if one exists (equivalent to
timedatectl set-local-rtc 1
) and otherwise defaults to storing UTC, which is the more sane choice.Storing localtime on a computer that has more than one bootable OS becomes a particularly noticable problem in regions that observe DST, because each OS will try to change the RTC by one hour on its first boot after the time change.
That's a nice theory, it would be a shame if I was only running Windows 10 on my desktop.
Spoiler: I am. No Linux or any other os or bootloader in sight.
That's strange. As far as I can tell from any web searches, every version Windows still defaults to storing local time to the hardware clock and there are no reports of that changing with an update, nor is there any exposed setting control to configure this behavior outside of regedit. If you're curious enough, you can check the current setting in the registry at
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
. Windows maintains the current time as UTC if and only if the RealTimeIsUniversal key is present and nonzero.I expect it's more likely some other issue would make the BIOS display an hour that's inconsistent with your local timezone. For example, maybe a bug in the BIOS, maybe a timezone offset setting within the BIOS, or maybe a dead clock battery.
I'm not a typical example. I can check that reg setting later. My PC is a Dell precision 7910 rack that I picked up second hand, running Windows 10 Pro that I self installed.
It's joined to my homelab active directory domain which has a gpo for setting NTP. I don't believe I've set any additional settings for time via policy.
The system is also set up for virtualization. I'm pretty sure hyper-V is installed and I have VMware workstation installed as well (I mainly use workstation for VMs).
The main disappointment I have with this system is split between the limited GPU space and the BIOS, neither of which I can do much about. The GPU issue is that the rack orientation of the system doesn't allow much room for a GPU to breathe so even a "good" GPU can't really get airflow, unless it's a blower style; I don't have the money to be picky about my GPU and I was donated an RTX 2080 Ti founders edition, which is definitely not a blower style cooler. Without hardware hacking the system, the card thermal throttles very quickly and doesn't get very good performance numbers. IIRC it was measuring around the same performance of a GTX 1060 or so. I moved the GPU out of the case temporarily using a PCIe riser which solved the immediate concern, and I'll be doing some minor modifications to the chassis to make it a more permanent option.
The BIOS issues are mainly that the tuning options either don't exist or are extremely limited. The BIOS will tell you about the CPU/RAM speeds and features, but won't necessarily give you options to change anything. I want to adjust my numa configuration on the unit, to better match the hardware so my os makes better threading decisions, but such options are unavailable through the normal means and I haven't dug into the Dell command line tools for the BMC/IPMI which may be able to adjust the settings. For anyone familiar with numa, what I'm seeing is that my first, say 80% of CPUs are all in one numa node, and the last eight are split. As in, the first 80%+ are in both, the next 4 cores are in numa 0 and the last 4 are in numa 1. I have 2x14 core xeon CPUs with HT, so having 20+ pCores in both numa nodes is creating some interesting stuttering issues. They're not super frequent, but they happen when the system is busy.
To my recollection, I have not run any of the windows 10 cleanup scripts available around the internet, mainly because I'm a tech and I don't like not knowing what's happening/changing on my own system, though I did make a string of changes when I first installed Windows 10 related to optimizing for SSDs and other performance improvements. All performance based, nothing to do with the time.
Beyond that, it's a pretty typical Windows 10 professional install running on workstation hardware.
But would the moon work on a 24 hour system at all?
I can’t believe I just typed that as a serious comment
Didn’t Bajor have a 28 hour day? I’m now voting for Universal Bajoran Time
If you're setting moon time to the day/night cycle of the moon, yeah, it would actually have a much longer day, from what I understand.
I might be wrong, but to my best understanding, the moon is tidally locked to the earth, meaning the same side of the moon is always facing the surface of our planet. Which means the rotation of the moon, and the length of a day on the moon would be tied to how fast it orbits the earth.
You can tell the duration of an orbit by simply following the moon cycle ("new" moon (midnight) through "full" moon (noon) and back to a "new" moon. Based on this, unless I've made a serious error in my logic, a moon day would be something like 20-30 earth days.
If I Google it, the moon orbits earth approximately every 27.3 days. Which is about 665h 12m... Give or take a few hours.
Our entire concept of time, days, months, and years, breaks on the moon. On earth, an hour is 1/24th of a rotation of the planet. A day is one full day/night cycle, a year is one orbit around the sun.
When you transpose this principle to the moon, am hour is 1/24th of a rotation of the moon, which happens to be 1/24th of a year, which is one orbital rotation around the earth. So one day = one year on the moon.
So how do we measure time on the moon in a way that isn't completely insane? The only logical thing I can think of is to fundamentally lock the time zone of the moon to the earth. That the date, and maybe even the time, isn't based on the moon, but rather transposed from some definition of the same on earth.
This also leads me into a rant/discussion about time in SciFi. Once you leave the orbit and reference point of Earth, what is a day? An hour? A year? You have no point of reference to base such notions of time. Why is there a "night shift" in programs like Star Trek? Why is there really only one captain? Why does everything on these shows seem to occur during their idea of "daytime"?
Then there negotiating with some alien race and say they'll reconvene tomorrow about something... Tomorrow, based on what? You're in space. It makes sense if they're in orbit of a planet, but then you get to see standoffs in the middle of fucking nothing, and they're like "you have 24 hours to decide". Okay. 24 hours based on what exactly?
I appreciated MiB's take on this in the film. They defined not only how much time they had to return the galaxy, but in what format the time was being counted in. Which they could calculate and adjust to earth time.
This all sets aside relativity, since when you're moving near, at, or beyond the speed of light, you experience time differently (see: interstellar), also gravity can affect this, and other factors. But somehow, they just side-shuffle from the whole time thing and just focus on the drama of it all. Viewers are too enthralled with the spectacle, not realizing that these Romans or boleans, or Klingons, or cardassians, or whatever, probably have a completely different idea of how much time their version of "one hour" or "one day" is.
It's fascinating and frustrating.
I love it and hate it all at the same time.
Time sucks. It's never correct, often ignored, and bluntly, a strange concept that isn't, IMO, well defined. We have the idea pretty well set up here on earth, based entirely on things happening on and to this planet, but if you take that reference point away, everything collapses.
Honestly quote irrelevant. It's hidden away. It's not shown to us. It could use literally any frame of reference, like farts since the beginning of times, if it's converted for you, then it's not.
I'm still technically correct. And we all know that's the best kind of correct.
Because it makes getting an intuitive sense of what solar time it is somewhere harder.
Can I call my grandma in a different country? Hmm what time is average midnight there. Okay 8 (so far, same thing as looking up a timezone), and it's 18:00 now, so 10 hours after midnight, which is like my 23:00. Needlessly complicated with extra steps for the average person.
Sure, you can say, I'll call you X and that will mean the same thing everywhere, but does not have any information about solar time. And these days, it's automatically converted if you use a calendar (which you should). This is the point of programming, to make the USERS life easier, not the dev. The end is more important than the means, I think we can agree.
Or: what time is it where my grandma is? Okay, cool, I have a sense of what that is immediately after knowing the answer.
There are reasons we do things this way. Working roughly to solar times has more benefits than being able to say a time and it mean the same moment everywhere.
I say we leave things the way they are, works okay.
Like when i find a recipe that measures volume in Cups, weight in Stones and temperature i Fucks?
Could you elaborate a little, I'm not quite sure how it's related to timezones
UTC does not account for time dilation.
No, TAI