← Back to team overview

ubuntu-phone team mailing list archive

Re: "Can I use the internet?"

 

On 08/15/2013 12:59 PM, Matthew Paul Thomas wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Tony Espy wrote on 01/08/13 16:05:
>> ...
>>
>> As I mentioned earlier, AFAIK, the only automatic provisioning of
>> time zone information comes from a NITZ message which includes the 
>> following data:
>>
>> "yy/mm/dd,hh:mm:ss(+/-)tz,dt"
>>
>> Furthermore, this message is never received over Wi-Fi, and AFAIK 
>> doesn't require a cellular data connection.
> 
> My mistake, sorry. Fixed.
> <https://wiki.ubuntu.com/TimeAndDate?action=diff&rev2=68&rev1=67>

Thanks for update Matthew!

See comments below...

>> There are problems however with relying on just the NITZ messages. 
>> First, it's not universally supported by operators. Second, some
>> of the fields are optional, so it's possible that "tz" may not be 
>> included in the messages.  Third, although the NITZ messages
>> include "time", the accuracy is only required to be "in the order
>> of minutes". See [a] for more details.
>>
>> AFAIK, this is the only mechanism available to set the "time-zone" 
>> automatically. Again, as mentioned before, Android has a hack that 
>> attempts to set time zone automatically based upon the currently 
>> registered operator in cases where NITZ is not supported and/or
>> known to inaccurate.
> 
> I've abstracted this into the term "informative carrier". A carrier
> might be informative if it provides full time plus accurate time zone
> information itself, or if it provides only accurate time information
> but you've implemented Android-like external knowledge of its time zone.

My gut says this is being over-thought...

My expectation around 'timed' and earlier conversations with Thomas
Voss, was that it would do the thinking for us, and provide time
services in the best way possible.  I'm not sure exposing whether or not
we're connected to an "informative" operator really makes much sense.
Please refer to my comments below about "connectivity".  That said,
maybe I'm jumping to a conclusion too quick.

I also will admit to not knowing the in-depth mechanics used by Android
or timed when an operator is not *informative*. Perhaps when Ricardo
Salveti is back from vacation he can help with this.

> So, here's the new text:
> 
> | In the System Settings “Time & Date” panel, the “Set the time and
> | date:” menu should be followed by radio items for “Automatically” and
> | “Manually”, then an item with the current date and time as its label.
> | These items’ state, and what follows them, should depend on three
> | things: whether the current setting is “Automatically”, whether you
> | have any kind of data connection, and whether you’re connected to an
> | *informative carrier*, one that provides time information of known
> | time zone.
> |
> | * If you have a data connection (cellular or wi-fi) for the phone to
> | access an NTP server, or you’re connected to an informative carrier,
> | then automatic time setting is currently in effect. Nothing should
> | follow the items.

AFAIK, an NTP server can only supply the "date & time", not "time zone".
Is this considered "automatic-enough"?  If not, shouldn't your stated
condition be an AND instead of OR?

> | * If you *don’t* have a data connection (cellular or wi-fi) for the
> | phone to access an NTP server, *and* you’re not connected to a
> | carrier at all, then automatic time setting is not currently
> | possible. The items should be followed by the caption “Setting the
> | time and date automatically requires a cellular or data connection.”,
> | a “Cellular Settings…” button, and a “Wi-Fi Settings…” button.

Again, I'd still argue that adding these settings buttons don't really
add value.  As much as everyone preaches the "always connected" mantra,
there are simply times when environmental conditions temporarily prevent
connectivity ( eg. you're in an airplane, or underground ).  In this
type of scenario, going to the requisite settings will prove no benefit...

> | * If you don’t have a data connection for the phone to access an NTP
> | server, and you’re connected to an ''uninformative'' carrier, then
> | automatic time setting is not currently possible. The items should be
> | followed by the caption “Setting the time and date automatically with
> | {carrier name} requires a data connection.”

I think there are two levels of "uninformative" carriers.

1. A carrier that doesn't send NITZ messages at all

2. A carrier that sends NITZ messages, but doesn't include TZ

The latter case is pretty much the same as having a network connection
and not being registered to a carrier, as time updates are possible, but
not TZ updates.  In these scenarios, you could inform the user that
automatic time zone updates are not possible ( optionally including the
carrier name ), and that the user should select the time zone manually.

> | In either of the cases where automatic time setting is not currently
> | possible, the “Set the time and date:” radio items should be
> | insensitive if “Manually” is already chosen (so you can’t switch to
> | “Automatically” until there’s a suitable connection), but sensitive
> | if “Automatically” is already chosen (so you can switch to “Manually”
> | if you want).
> |
> | When “Set the time and date:” is set to “Manually”, *or* it is set
> | to “Automatically” but automatic time setting is not currently
> | possible, the current datestamp item should be a navigation item that
> | navigates to the “Set Time & Date” screen. When automatic time
> | setting is currently in effect, the current datestamp item should be
> | insensitive.
> 
>> It'd be possible to do a time-zone lookup based upon GPS location, 
>> although this would be complicated...
>>
>> As for automatic "time" updates, besides NITZ, the two mechanisms
>> I'm aware of are GPS, and NTP, the latter being the only requiring
>> a "data" connection.
>>
>> Finally, I'd like my phone to just do this stuff for me
>> automatically, however in the case where my phone is "offline", do
>> I really need the "Time & Date" settings page to tell me?
> 
> In general I think apps should tell you when something fails because
> you don't realize you're offline: opening a Web page, checking mail,
> starting a multiplayer game, whatever. Normally it will be simpler for
> an app to do that than it is in the time setting case, precisely
> because in this case it's not necessarily a data connection that you need.

I agree that apps being able to know connectivity state is a good thing.
 I just think in this case, given the complexities, I just don't agree
with the inclusion of the settings buttons.

>> In general my phone is offline when I tell it to be ( eg. "airplane
>> mode" ), or when I'm away from home and my phone is roaming ( and
>> "data while roaming" is disabled ). In these cases, I may choose
>> manually override the time zone, or leave it as is ( again like
>> when I'm on an airplane ).  I rarely say, "Oh my phone is offline,
>> I need to do something about that...".
>>
>> [a] http://en.wikipedia.org/wiki/NITZ
> 
> In the above text I've said that you can still set the time and date
> manually if the setting is "Automatically" but you don't currently
> have an applicable connection.

OK.

So, a couple other points...

AFAIK, nobody has looked in depth at the Qt networking API and
determined how well it works.

Second, there's really been no work on inclusion/integration of timed
yet.  I also don't know the state of the platform API with respect to
timed integration/time APIs either.

So I think the time is ripe ( no pun intended ) to setup a hangout to
discuss the current state of the network and time APIs in Touch , as
well as the current plans for timed integration.

Regards,
/tony



References