Weird startup OS X time zone issue

I deployed an app to an OS X (10.6.8) server, and launch time for the
app was shockingly slow, but performance after launch was fine.

The problem turns out to be this line in application.rb:

config.time_zone = /Time Zone: (.*)$/.match(systemsetup -gettimezone)[1]

Yes, that’s right, systemsetup -gettimezone takes a full 30 seconds to
run on this Mac. (Mac Pro, fairly recent, Xeon, tons of RAM, almost
non-existent CPU load). Anybody have any idea wtf that’s about???

I’ve just hard-coded the time zone default and it’s fine. But still,
just wondering if anybody has a clue?


Scott R.
[email protected]
http://www.elevated-dev.com/
(303) 722-0567 voice

Scott R. wrote in post #1091858:

I deployed an app to an OS X (10.6.8) server, and launch time for the
app was shockingly slow, but performance after launch was fine.

The problem turns out to be this line in application.rb:

config.time_zone = /Time Zone: (.*)$/.match(systemsetup -gettimezone)[1]

Yes, that’s right, systemsetup -gettimezone takes a full 30 seconds to
run on this Mac. (Mac Pro, fairly recent, Xeon, tons of RAM, almost
non-existent CPU load). Anybody have any idea wtf that’s about???

I’ve just hard-coded the time zone default and it’s fine. But still,
just wondering if anybody has a clue?

You don’t happen to have “Set timezone automatically using current
location” checked in your “Date & Time” system preference? I have no
idea if this would cause the problem you’re seeing, but it’s the first
thing that came to mind when I saw this.

On Jan 11, 2013, at 8:33 AM, Robert W. wrote:

You don’t happen to have “Set timezone automatically using current
location” checked in your “Date & Time” system preference?

No, I have it set to a fixed location. I tried changing the location,
and I tried a different NTP server as well. Neither changed anything.

Later I tried other systemsetup commands, and hell, systemsetup always
takes 30 seconds, even without a command just to get into it’s “console”
mode takes > 30 seconds to launch. I wonder if it’s doing some reverse
DNS thing at launch???


Scott R.
[email protected]
http://www.elevated-dev.com/
(303) 722-0567 voice

config.time_zone = Time.zone || “UTC”

is what you are looking for.

The Time.zone command looks into the local time zone set for the user
visiting your current page and returns it, if not found it will return
the
UTC Time zone. In your case looking up the timezone of the server it is
running on since its a config. No need to grab it like this because ruby
can do it by itself.

However, if you want to give users access to their local time zones you
should go with an time_zone_select field in user registration and an
application_controller before filter, something like this:

before_filter :settimezone

def settimezone
Time.zone = user.timezone || “UTC” (well, change that to whatever, but
you get the point)
end

Hope this can help you.

Sincerly,
Crispin

Am Freitag, 11. Januar 2013 05:54:37 UTC+1 schrieb Scott R.: