It's about time March 15, 2016 8:13 AM   Subscribe

Chrono-pony request - can we have better timekeeping on MeFi?

Ir's that time of the year when different parts of the world do the raggedy-arsed dance of time zone switching in honour of our planet's twisty slanty twirly orbitings. As one tiny side effect of humanity as a whole not getting it quite right, post times on Meta are an hour out for me.

I know that -

* I can just ignore it, it doesn't matter
* I can just fix it in preferences...
* ... and then just fix it again in a couple of weeks time when EU zones change
* This is an old issue, regularly covered in MetaTalk
* Time and date is hard

But... it's just not very nice. I love MetaFilter and want it to be shiny, and having actual time zones in preferences (rather than a +/- n hours setting from an unnamed (I assume Pacific) time zone), together with summer/daylight saving zone tracking would just be a nice, shiny, proper grown-up 21st century computing thing to have. Why, it could even automatically grok my clock from my geographic location. Jetpacks!

There are libraries that do this sort of thing. I'm the last person in the world to imagine that a conceptually simple fix translates to uncomplicated, cheap implementation, especially in this area, but if it can be tacked onto a to-do list in the underground bunker HQ, I would be a happier chap.
posted by Devonian to Feature Requests at 8:13 AM (77 comments total) 2 users marked this as a favorite

I completely understand the frustration. It's frustrating on our end too because the fix is not a simple one. If it was we would have done it years ago.

Time is fundamental to everything at MetaFilter and to handle it correctly we need to restructure how we store dates and times. I think I've said this before, but it's a bit like fixing the foundation of a building while it's in use. It doesn't help that the tools we use to build the site are in a similar situation.

It is on our to-do list in a sense. It's something we want to do but we haven't found a way to justify the time and resources that would be involved with doing it I'm sorry to say.
posted by pb (staff) at 8:16 AM on March 15, 2016 [6 favorites]


...but we haven't found a way to justify the time and...

I see what you did there.
posted by Wordshore at 9:01 AM on March 15, 2016 [4 favorites]


Look, it's really quite simple. When the Sun shines upon Earth, 2 – major Time points are created on opposite sides of Earth – known as Midday and Midnight. Where the 2 major Time forces join, synergy creates 2 new minor Time points we recognize as Sunup and Sundown. The 4-equidistant Time points can be considered as Time Square imprinted upon the circle of Earth. In a single rotation of the Earth sphere, each Time corner point rotates through the other 3-corner Time points, thus creating 16 corners, 96 hours and 4-simultaneous 24-hour Days within a single rotation of Earth – equated to a Higher Order of Life Time Cube.
posted by languagehat at 9:02 AM on March 15, 2016 [63 favorites]


Time is fundamental to everything at MetaFilter

I thought that time was money.
posted by Melismata at 9:21 AM on March 15, 2016


Looks like Devonian's request got Lochkovianed out of the gate.

No matter what genius pb posseses, he can't make time go back 419.2 million years, Devonian.

Devonian Givetian a request, pb makes it go extinct.

Pb makes the air go out of the this request, making it rather. . .anoxic.

Turns out this MeTa is rather jawless.

i'm so sorry, I Hangenberg my head in shame

ok now I actually am sorry

posted by barchan at 9:32 AM on March 15, 2016 [14 favorites]


STOP THAT
posted by wenestvedt at 10:04 AM on March 15, 2016 [1 favorite]


Time is fleeting.
posted by AugustWest at 10:07 AM on March 15, 2016 [2 favorites]


Time is fleeing from barchan's comments, more like.
posted by Etrigan at 10:08 AM on March 15, 2016 [1 favorite]


You know, there's only one way to handle the Daylight Savings Time blues...
posted by nubs at 10:08 AM on March 15, 2016


Time waits for no comment, Etrigan.

no matter how awesomely terrible they are
posted by barchan at 10:34 AM on March 15, 2016


Time is on my side.
posted by klarck at 10:45 AM on March 15, 2016 [2 favorites]


Can't you just do everything on your end in UCT and use javascript to display the date stamp according to whatever the pc/device thinks is the right adjustment? I don't understand why on the server side you'd worry about timezones/DST at all and therefore why you wouldn't just place all the display -- and DST -- adjustments on the client.

This isn't anything I've experience with in over sixteen years, so I'm probably way out of my depth. If so, apologies for being glib.
posted by Ivan Fyodorovich at 10:55 AM on March 15, 2016 [1 favorite]


Metafilter should just change to Coordinated Universal Time for all posts. Even better, change to International Atomic Time and forget about correcting for leap seconds.
posted by Rob Rockets at 11:10 AM on March 15, 2016 [1 favorite]


Good solution here
posted by cnelson at 11:14 AM on March 15, 2016 [1 favorite]


everybody just needs to stop worrying and get in the right time zone

also ... eleven
posted by philip-random at 11:16 AM on March 15, 2016


Time keeps on slippin (slippin, slippin) into the future.
posted by nubs at 11:54 AM on March 15, 2016 [1 favorite]


For April Fool's Day, y'all should keep time like Star Trek.
posted by Brandon Blatcher at 11:58 AM on March 15, 2016 [2 favorites]


Someone at work sent this to me as I was lamenting DST and timezones. It's so simple!
posted by Gorgik at 12:33 PM on March 15, 2016 [1 favorite]


Madness takes control....
posted by zarq at 12:34 PM on March 15, 2016 [4 favorites]


Time is an illusion. Lunchtime doubly so.

Adopting UCT is the only reasonable “solution,” though I doubt that would make very many people happy either, except those countries in Western Africa that use UTC(0) and do not observe DST (Western Sahara, Mauritania, Mali, Gambia, etc.). But I’m up for it because it is at least the real international standard way of expressing time and most of the Internet is already using internally anyway.
posted by Quinbus Flestrin at 12:51 PM on March 15, 2016 [1 favorite]


Well, OSs and browsers these days are aware of what time zone they're in, if DST applies where they are, and such. This is even more true recently with smartphones that move around geographically. So it no longer makes any sense to expect a geographically remote server to do the work about what is the proper offset when displaying on a particular device -- the device already does that work. It knows and it's much more trustworthy with regard to what the end-user expects.
posted by Ivan Fyodorovich at 1:04 PM on March 15, 2016 [1 favorite]


Given that time is a flat circle, what we should really do is get all of comments timestamped only with two comment numbers, one indicating how far along we've gone (the standard id) and a new one indicating how many more comments we have to make until we reset (either by creating a BND or relaunching MetaFilter).
posted by Going To Maine at 1:11 PM on March 15, 2016


Bar none the easiest way to solve this is require all users move to US Pacific time zone.
posted by Mitheral at 1:24 PM on March 15, 2016 [1 favorite]


There is only one true time.
posted by billiebee at 2:10 PM on March 15, 2016 [5 favorites]


Time is money, friend.
posted by Drinky Die at 2:23 PM on March 15, 2016


Bar none the easiest way to solve this is require all users move to US Pacific time zone.

But...but..but what if that causes the West Coast to slip into the Pacific Ocean?
posted by Michele in California at 2:30 PM on March 15, 2016


Beware the Ides of Time.
posted by clavdivs at 2:54 PM on March 15, 2016 [1 favorite]


As an ex-developer and antique code base maintainer, I completely understand that there can be ancient monsters in there...

It's not the biggest thing in the world. One day, I hope.
posted by Devonian at 3:19 PM on March 15, 2016


The frustrating thing about MetaFilter time isn't that it has to be manually changed. It isn't that it should be automated. It's that you have to be aware of when other countries change their time zones. If it just used UTC and relied on the user to manually adjust the offset, there would be no problem. When you go through your house resetting clocks, you'd just have to remember that one of the clocks you have to reset is the MetaFilter clock. But the way it is now is precisely the opposite. If you live in an area where everyone around you is talking about changing clocks, you don't have to do anything because it automatically changes. If you live in an area where nobody is talking about changing clocks, you have to remember to change this one clock.

Given that apparently changing the code is deep wizardry due to MetaFilter being built on a foundation of ColdFusion errors and Matt's blood, sweat, and tears, I've got an easy proposal that's totally technologically feasible:

Mods, whenever the server time changes, could you just post a quick heads-up in Meta? You could even lock the thread immediately to ensure that it serves as just a notice and not a random discussion thread. Think of it as being like a server maintenance notification or scheduled downtime notification or the like.
posted by Bugbread at 4:08 PM on March 15, 2016 [3 favorites]


Time -- in quaaludes and red wine
Demanding Billy Dolls
And other MeFi ponies of mine
Take your time
posted by the return of the thin white sock at 4:14 PM on March 15, 2016


Time is fundamental to everything at MetaFilter

I thought that time was money.


Reading is fundamental.

Therefore reading = money.

Also, we should all switch to Swatch Beats.
posted by Celsius1414 at 5:14 PM on March 15, 2016


(Late to the party, so of course all the best quotes have been claimed.)

They say time is the fire in which we burn.
posted by radwolf76 at 5:19 PM on March 15, 2016 [1 favorite]


Look, it's really quite simple. When the Sun shines upon Earth, 2 – major Time points are created on opposite sides of Earth – known as Midday and Midnight. Where the 2 major Time forces join, synergy creates 2 new minor Time points we recognize as Sunup and Sundown. The 4-equidistant Time points can be considered as Time Square imprinted upon the circle of Earth.

I can follow this up to a point and see how you get from the Earth to Time Square, but how do you get to Carnegie Hall?
posted by ActingTheGoat at 5:25 PM on March 15, 2016


pb: "I think I've said this before, but it's a bit like fixing the foundation of a building while it's in use."

Just shut the site down for two weeks again.
posted by Chrysostom at 5:38 PM on March 15, 2016 [4 favorites]


Time is an illusion. Lunchtime doubly so.

Very timely. You should send that in to Timer's Digest - they have a time for people like you.
posted by Greg_Ace at 8:35 PM on March 15, 2016 [1 favorite]


I can follow this up to a point and see how you get from the Earth to Time Square, but how do you get to Carnegie Hall?

PRAXIS
posted by Harvey Kilobit at 8:39 PM on March 15, 2016 [18 favorites]


One of the things that I love about MetaFilter is realizing we're driving this clunky old beater car around, and that even though everything has been shined and buffed and polished to perfection, it's still vintage, you know? Mint condition vintage 1999 website with the world's first permalinks

Classic.
posted by anotherpanacea at 9:04 PM on March 15, 2016 [11 favorites]


Look, it's really quite simple. When the Sun shines upon Earth, 2 – major Time points are created on opposite sides of Earth – known as Midday and Midnight. Where the 2 major Time forces join, synergy creates 2 new minor Time points we recognize as Sunup and Sundown. The 4-equidistant Time points can be considered as Time Square imprinted upon the circle of Earth.

I agree! We'd want to leave in place the fallback condition where users above the Arctic circle/below the Antarctic circle use Old Time during 24+ days/nights.
posted by sebastienbailard at 1:31 AM on March 16, 2016


The time is gone, the thread is over, thought I'd something more to say.
posted by dg at 3:40 AM on March 16, 2016


Time isn't holding us
Time isn't after us
Time isn't holding up
Time is a pony ride
posted by scruss at 5:24 AM on March 16, 2016 [1 favorite]


billiebee, I tried clicking the link but I couldn't touch it.
posted by Too-Ticky at 5:33 AM on March 16, 2016 [2 favorites]


pb, one idea might be to start collecting UTC in duplicate database columns (post_date_utc etc.), even though you're not planning to do anything with it any time soon.

Then in a year or five if this starts seeming like a priority, you'll know that any conversion problems won't affect anything that still feels current to people.
posted by john hadron collider at 7:15 AM on March 16, 2016 [4 favorites]


T.R.E.A.M.
posted by maryr at 9:19 AM on March 16, 2016


T.R.E.A.M.

Trump Rules Everything Around Me?
posted by Going To Maine at 10:12 AM on March 16, 2016


Ir's that time of the year when different parts of the world do the raggedy-arsed dance of time zone switching in honour of our planet's twisty slanty twirly orbitings Kaiser Wilhelm.
posted by homunculus at 11:16 AM on March 16, 2016


Time and the Mods are at strife; ye dwell in the midst thereof.
posted by comealongpole at 1:57 PM on March 16, 2016 [1 favorite]


Mods, whenever the server time changes, could you just post a quick heads-up in Meta?

That is not a terrible idea and I will keep it in mind.
posted by cortex (staff) at 3:00 PM on March 16, 2016 [4 favorites]


Whoohoo! I got a Schroedinger's Pony!
posted by Bugbread at 3:51 PM on March 16, 2016 [4 favorites]


(Small digression about the site but not timestamps: do the fonts look a little different tonight? The main header and the post title fonts look smaller and more compressed.)
posted by maudlin at 8:18 PM on March 16, 2016


If it just used UTC and relied on the user to manually adjust the offset, there would be no problem.

And if ifs and ands were pots and pans, there'd be no need for timezones.

This is MetaFilter's original sin. If you want to run a crowdfunded campaign that will cover the time and effort and intensive post-implementation therapy that pb will need, I invite you to go forth and do so, and you should also sign up to the Unicode mailing list while you're at it.
posted by holgate at 9:47 PM on March 16, 2016


Or, you know, I could just make an alternate, easier suggestion which a mod could say is not terrible. Either or.
posted by Bugbread at 10:03 PM on March 16, 2016


> do the fonts look a little different tonight? The main header and the post title fonts look smaller and more compressed.

Times Knew Roamin'
posted by ardgedee at 2:05 AM on March 17, 2016 [3 favorites]


T.R.E.A.M.

Trump Rules Everything Around Me?


Trump Reveals Enormous Animated Manhood?

I ... need to stop reading the more tawdry parts of the US election. And possibly seek help.
posted by Wordshore at 3:44 AM on March 17, 2016 [1 favorite]


I come to you from the future. This is still not fixed. Uh, has will not be been fixed.
posted by Splunge at 7:34 AM on March 17, 2016 [1 favorite]


Could you add a new time field in the database table that immediately starts using a better time format, do tests and stuff, and then have a switch at some point to say, if this post/comment has a value in the new time field, use that, else use the old time field? That way it can be swapped hot while users are still using the site?
posted by jillithd at 8:19 AM on March 17, 2016


These are all great ideas that we'll chew on. Our development environment (an older version of ColdFusion and an older version of SQL Server) doesn't make it easy to translate UTC into a particular timezone. It also doesn't make it easy to keep the tz database up to date. That doesn't mean we'll be on our current setup forever, we just haven't found the cost of moving to a new environment worth it to fix this problem alone.

We don't currently store a UTC timestamp. That's something we can weigh. It would save the historic UTC calculation going forward, that's true.
posted by pb (staff) at 10:46 AM on March 17, 2016 [2 favorites]


Trump Rules Everything Around Me?

Time. Time Rules Everything Around Me. Because time is money and money is cash and... oh nevermind.
posted by maryr at 11:08 AM on March 17, 2016


The obvious solution is to do away with fucking Daylight Saving Time. I don't understand why a country that won't adopt the metric system is OK with getting out of bed an hour early for most of the year.
posted by double block and bleed at 3:59 PM on March 17, 2016 [1 favorite]


Looks like Microsoft only added TimeZone handling for timestamps to SQL Server 2016, but I did find this project on github to add IANA TimeZone support to older versions.
posted by pharm at 3:25 AM on March 18, 2016 [1 favorite]


Our development environment (an older version of ColdFusion and an older version of SQL Server) doesn't make it easy to translate UTC into a particular timezone.

That's why you leave that to the web browser. It even knows what timezone the user is in.

(recipe: keep UTC in database, ship to browser as time element with UTC time in datetime="YYYY-MM-DDThh:mm:ssZ" attribute and today's default rendering as text, use tiny amount of JS to re-render time element properly in client. fix up old entries w/o UTC timestamp off line, as time permits.)
posted by effbot at 2:12 PM on March 18, 2016 [2 favorites]


Handling transformation in the client is an interesting idea. It goes against the old philosophy of not trusting clients to be configured properly. We also want to degrade gracefully for browsers that don't support JavaScript. Having a flash of unstyled dates as pages load would also be a drag. It would be a shift in philosophy for us but it's interesting to think about.
posted by pb (staff) at 3:08 PM on March 18, 2016


The graceful degrading and momentary unstyled dates are something to take into consideration, but as far as trusting clients, keep in mind that you already trust users to properly perform reconfiguration twice every year.
posted by Bugbread at 4:25 PM on March 18, 2016 [1 favorite]


Another option would be to auto-update the serverside timezone preference using javascript. Here's an example of calculating my +3 offset on the East Coast:
> serverDate = new Date(2016, 2, 18, 16, 42, 0); // copied from "current server time" on the prefs page
> localDate = new Date();
> offset = (localDate - serverDate)/1000/60/60;
3.000821666666667
It'd be a very small hit (both server and client side) to run this calculation at the bottom of every page, and post an update to the server if it changes. Could be an opt-in preference to start with.
posted by john hadron collider at 4:50 PM on March 18, 2016


The obvious solution is to do away with Daylight Saving Time and Javascript.

(I am an old fart and instinctively read 'implement it in the client with Javascript' as 'fuck things up for slight edge cases, and for the future', not least because too-clever Javascript is what stops me from using the USPS site to print a fucking shipping label because I have dates set to dd/mm/yyyy .)
posted by holgate at 6:20 PM on March 18, 2016 [1 favorite]


Every page seems like over kill; putting it on your profile change page would be sufficient. After all if your time display isn't right that is where you are going to go.
posted by Mitheral at 11:06 PM on March 18, 2016


'implement it in the client with Javascript' as 'fuck things up for slight edge cases, and for the future', not least because too-clever Javascript is what stops me from using the USPS site to print a fucking shipping label because I have dates set to dd/mm/yyyy

If you make sure you 1) control what you send over the wire, and 2) only parse things you've generated yourself, your JS doesn't have to pretend it's clever.
posted by effbot at 3:51 AM on March 19, 2016 [1 favorite]


pb: "Our development environment (an older version of ColdFusion and an older version of SQL Server)..."

I work in a Rails shop, but we have three guys supporting our legacy ColdFusion application. They all have the thousand yard stare as they smoke together in the designated smoking area. No one speaks a word as each quietly reconsiders his life choices.
posted by double block and bleed at 5:28 AM on March 19, 2016


"I know, I'll write a simple fix for time zones."

It's a classic blunder, about like using regular expressions or getting involved in a land war in Asia.
posted by fifteen schnitzengruben is my limit at 4:08 PM on March 19, 2016 [1 favorite]


It's a classic blunder, about like using regular expressions or getting involved in a land war in Asia.

You're giving me ideas.
posted by effbot at 7:57 PM on March 19, 2016


Keep away from Sicilians.
posted by maryr at 8:10 PM on March 19, 2016 [1 favorite]


It's about time
posted by homunculus at 10:04 PM on March 19, 2016


This issue is a MeFi perennial.

I gave up and set my profile time offset to zero. If I don't expect MeFi time ever to line up with my local time, it's less maddening than having it suddenly fail to do so by one or two hours.
posted by flabdablet at 8:31 AM on March 21, 2016


Could you add a new time field in the database table that immediately starts using a better time format, do tests and stuff, and then have a switch at some point to say, if this post/comment has a value in the new time field, use that, else use the old time field?

That's better than something I suggested a few years ago, which I still think is a reasonable idea.

Storing and supplying both UTC and legacy timestamps would allow clients without javascript turned on to work exactly as they do right now; clients with javascript active would replace the legacy timestamps with localized versions of the UTC ones.

Any scheme where the server stores and supplies UTC times that get adjusted client-side doesn't actually need server-side tzdata for anything other than the server's own timezone.
posted by flabdablet at 8:52 AM on March 21, 2016 [1 favorite]


Actually I had to implement something for this at work, and yes, it's kinda horrible because time zones aren't just country by country, but can literally be state by state or event county by county in some places, especially if you don't want everything to break without javascript.

That said I managed a working version of it with Moment.js and Moment-timezone with time stored in UTC. The problem for Metafilter that makes it hard is that there isn't a way to select every place the front end posts time in a clean way, so managing it on the server side is indeed more sensible for now.

That said, starting by adding classes to the html templates/fragments where time is represented indicating that time is represented and information about how would make future front end display work better, and wouldn't cost anything until and unless you actually do something with that code.
posted by gryftir at 2:51 PM on March 22, 2016


it's kinda horrible

Sure, but if you set things up so you have to deal with that part of the problem yourself, you're doing it wrong. Make sure you ship UTC to the client, and then everything gets trivial. HTML5 has mechanisms for this.
posted by effbot at 3:59 AM on March 23, 2016


trivial

There is no such thing as trivial time-related code. Time-related code always has bugs. Always.

if you don't want everything to break without javascript

then pre-rendering all timestamps using the existing method, and adding hidden UTC elements for client-script to localize and expose, is by far the least bad option.
posted by flabdablet at 4:27 AM on March 23, 2016


There is no such thing as trivial time-related code. Time-related code always has bugs. Always.

Yeah, and that's why you shouldn't write the time-related code yourself. Whoever wrote the library code may not be smarter than you in absolute terms, but I can guarantee that their brains are better adapted to the problem.
posted by effbot at 6:56 PM on March 23, 2016


« Older Make moderation posts more distinctive   |   2016 MeFi March Madness Bracket Newer »

You are not logged in, either login or create an account to post comments