6 ms·
Common Calendrical Fallacies
- allemagne 5y agoPretty cool reminder that calendars and time in general are one of those troublesome domains of fractal complexity. Even this seems to just scratch the surface of regional variations of certain traditional calendars, how people's ages can be determined differently, etc.
- atoav 5y agoSome of these are quite interesting, e.g. that Oceania has an offset from ITC >12 hours. Others are coming of more like pedantic "gotcha" questions where the answer is that some more or less obscure calendar system is the exception here. Yeah sure it is, why wouldn't the year in the japanese calendar depend on the death of their emperor. That just isn't something my small software tool is likely willing to support anyways. So I think instead of "scolding" the reader with a False here, maybe a Depends would be both more friendly and more well suited.
- nulbyte 5y ago> So I think instead of "scolding" the reader with a False here, maybe a Depends would be both more friendly and more well suited. I like this. False suggests it is objectively false, but you're right, it really depends on more information. And it's important that people working with dates and times understand that they need more information.
- atoav 5y agoAt least they need enough i formation to realize they don't wanna handle this entirely by themselves. The point however is that every dev sometimes needs to make assumptions about an calendar — even those who are smart enough not to write their own calendar. E.g. if you think about a typical fitness tracker of course the devs will have to make assumptions about weeks and months, instead of supprting every calendar under the sun. This is why a Depends makes a lot more sense here: Knowing that it exists is good, but you might not have to support it in an 1.0 release
- Daishiman 5y ago> So I think instead of "scolding" the reader with a False here, maybe a Depends would be both more friendly and more well suited. It's a blog post, how can a "false" make you feel scolded?
- atoav 5y agoNot sure if scolded is the right word (non-native speaker), but I think "False" as an answer to an rethorical question is only worth much if the point you are making after the false is one that is really obviously false. If it is false only if you pinch hard and look from the right angle it comes of as "Oh come on, you just don't want me to get this right" — which in this case runs counter to the whole idea of the blog post as I understood it. I had a teacher once who was like that: whenever someone he didn't like got something wrong he would pull out some pedantic detail to still make it look like the person was false, even though they really really were not. I kinda think this is just a little bit unproductive in an educational context.
- dahfizz 5y agoThis comes off as very "well akchtually"; more snarky than helpful. A great example: >It is normal that the Sept-, Oct-, Nov-, and Dec- months are numbered 9, 10, 11, and 12 >False. This is very weird. They used to be months 7, 8, 9, and 10, but some reform to the Roman calendar back in the day resulted in the creation of January and February, which messed everything up. No software project cares what the calendar looked like during the roman empire. Sure, its quirky that OCTober is month 10 instead of 8. Doesn't affect anything at all. > The current year is 2020 > False. It’s the year 5780 in the Hebrew calendar. Obviously, anyone who says "the current year is 2020" is talking about the Gregorian calendar that everyone is familiar with. If your wife asked to have dinner at 7pm, are you going to scold her for not specifying the implied UTC offset? Its silly to even bring up. That said, I will never willingly write code that deals with times / calendars.
- noneeeed 5y agoYou say "No software project cares"... but I'm sure there are pieces of software out there used for dealing with historical/archeological data and have to deal with stuff like this :) I would not want to have to work on it. Archeologists must spend a lot of time reconciling different calendars and all the changes that have happened over the years. And yeah, if I go the rest of my career never having to work with calendars or scheduling I'll be a happy man.
- wbl 5y agoAnd astronomers. A lot of work goes into matching up eclipses to pin down exact dates and then reconstructing regal years. Even with this there is some uncertainty in the timeline of the Assyrian empire.
- allemagne 5y agoIt might be a context-specific thing, but I didn't really find the tone snarky or off-putting. Those pedantic historical edge-cases are pretty interesting even though I will probably never have to worry about them.
- 5y ago
- noneeeed 5y agoI like this. I've seen a number of "Falshoods programmers believe about X" and they almost never provide examples or explanations, which is rather frustrating for some of the more obscure or weird cases.
- DylanSp 5y agoAgreed, having examples is a big step up from the usual "Falsehoods" list.
- TehShrike 5y agoI wish there was a version of this that only contained examples relevant to e.g. the Gregorian calendar, or even within the subset of the Gregorian calendar specified within POSIX. I get whiplash going back and forth between "relevant thing I need to care about" and "obviously irrelevant" in this list
- clusterfish 5y agoI'm not sure if this is the original, but here: https://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time https://infiniteundo.com/post/25326999628/falsehoods-program...
- krallja 5y agohttps://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-... is two years older
- 6510 5y agoAh that one is more useful. yourcalendricalfallacyis.com should have categories. General > Generic Programming > language specific
- thinkharderdev 5y agoBack in the dark ages, my first project as a professional software engineer was working on a web app for something or other. I had to write a JS function to figure out whether the current year was a leap year. It didn't go well.... It was a painful experience but it aught me a valuable lesson. To this day I would sooner write my own bootloader than roll my own date/time library.
- shazar 5y ago> So if you’re writing code and are trying to use the time 00:00:00 to represent “no time”, you will be wrong in these countries. Well, obviously using `00:00:00` as no-time is a terrible idea, but isn't that statement just wrong? If it's used to represent no-time, it would actually have a very low chance of doing what it's supposed to do in those countries, but fail all the time at all other time zones.
- krallja 5y agoFogBugz calculated “daily task” times based on the site’s time zone. If this was set to a timeline like Chile, the daily tasks processor would crash in a loop, until the next day, which did have a 00:00:00. This caused horrible alerts to plague the systems engineer on call.
- modeless 5y agoHow about "the sun is approximately overhead at noon", "the sun is at its highest point in the sky at noon", "the sun rises each day", "noon is approximately the time that people eat a midday meal", or "midnight is a good time to switch which day 'tomorrow' refers to". I've made many mistakes attributable to "tomorrow" switching at midnight according to computers when in common human usage "tomorrow" really switches closer to sunrise, and certainly not before one goes to bed unless one is staying up all night.
- fomine3 5y agoI like this JavaDoc https://docs.oracle.com/javase/8/docs/api/java/time/chrono/ChronoLocalDate.html https://docs.oracle.com/javase/8/docs/api/java/time/chrono/C...
- Fnoord 5y ago> The current year is 2020 False, the current year according to the Grogorian calendar is 2022. Disappointing an article as pedantic as this one fails itself. (Yes, I am aware it was likely written in 2020. That is the point: it assumed the reader read it in 2020.)
- cutler 5y agoHe omitted a really big one - the beginning of spring. Most people are convinced spring begins at the equinox around 20th March but are also quite happy to talk about Mid-Summer's Day at the summer solstice around 20th June. Sorry, ya can't have it both ways. If the summer solstice is mid-summer then the spring equinox 3 months earlier must be mid-spring. It all boils down to how seasons are defined and here I find even astronomers can be really lazy in their thinking. Seasons are defined by the intersection of the Sun's apparent path and the equator so equinoxes are where the Sun's path crosses the equator and the solstices (Sun standing still) are the maxima and minima of the Sun's path. However, a maxima/minima can only be the mid-point of a season since points either side of a maxima/minima are equal in terms of the relative amounts of daylight. Seasons are defined by the amount of daylight, hence the summer solstice in the northern hemisphere, around 20th June, is the mid-point of summer when we celebrate "Mid-Summer's Day". All else follows from this and spring begins around 5th February in the northern hemisphere.
- charcircuit 5y agoI thought summer started on the summer solstice. I've never heard it called "midsummer's day" Spring: March April May Summer: June July August Fall: September October Novmeber Winter: December January February
- cutler 5y agoThat's exactly the fallacy I'm referring to. Mid-Summer's day (https://en.wikipedia.org/wiki/Midsummer https://en.wikipedia.org/wiki/Midsummer) is a calendrical festival observed in many cultures around 24th June close to the summer solstice. How do you define a season? What single factor determines how a season is measured? It's the relative amount of daylight. The summer solstice is the longest day.
- charcircuit 5y ago>How do you define a season? I define it as a period of time between a equinox and a solstice.
- 6510 5y ago~ No one uses week numbers ~ Events always start and end on the same day ~ Any event has a start and end time ~ All events are on a specific day
- 6510 5y agoThere is one in the article too! > The current year is 2020 > False. It’s the year 5780 in the Hebrew calendar. Like an Easter egg.
- ksaj 5y agoThis is like the problem with astrology, since there are actually 13 sidereal months. You can even see that in the charts that show the star and planet locations on any given day, but somehow they are ignored by "psychics" everywhere.
- alexdbird 5y agoI was relieved to read the final paragraph. I have found NSDate/NSCalendar to be the best designed API for date and time calculations, and I never knew it was built on top of ICU. It discourages bad assumptions while many others try to make a more 'fluent' interface that encourages them. When I first tried Joda in Java it had a builder interface that stank, I was able to easily write tests that produced the wrong date or threw an exception simply by changing the order of construction. But I think that's long gone.