W3C home > Mailing lists > Public > public-webapps@w3.org > April to June 2010

Re: Pre-LC Review Requested: System Information API

From: Max Froumentin <maxfro@opera.com>
Date: Mon, 10 May 2010 14:23:07 +0200
Message-ID: <4BE7FAAB.4080405@opera.com>
To: timeless <timeless@gmail.com>
CC: Robin Berjon <robin@berjon.com>, public-device-apis@w3.org, WebApps WG <public-webapps@w3.org>
Hi timeless,

Thanks for your very valuable comments. I have made the suggested
changes in the document, except for what I add below.

On 10/05/2010 11:12, timeless wrote:
> Please note, that like Jonas, I'm not endorsing any of this.

What do you mean by that?

>> Therefore, a conforming implementation of this specification MUST
>> ... SHOULD
>
> Wow, that's incredibly expensive. I'm pretty sure this will be death
> by a thousand papercuts to the computer user, and we'll suffer from
> the same problems that the java security dialogs gave us in 1996.

The text was taken from geolocation (I'd recommend you sent that part of
your comments to that group, too), but is waiting to be rewritten once
the policy and privacy scope of the DAP WG is better defined and some
standard text is chosen for all the group's specifications.

>> user's express permission
>
> Please end sentences (and paragraphs) with periods :).

I have instructed emacs (bless its regexp replace) to fix the broken
punctuation.

>> The URI or name of the property to retrieve.
>
> ... requested property.
>
> can I pass http://www.w3.org/2010/../2009/dap/SysInfo/Power?

No, it's not a known URI should raise an error exception (and I've added 
a mention that if the URI is unknown, the error type should be UNAVAILABLE)


>
>> PendingOp watch()
>
> Object.watch is taken, please don't step on it.
> https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference:Global_Objects:Object:watch
>
>
>
 > monitor() if you mean continuous, inspect(), if this is merely a one
> time polling operation.

well spotted. I've changed it to monitor()

>> If both highThreshold and lowThreshold parameters are specified,
>> the success callback is triggered if and only if the property value
>> is either lower than the value of lowThreshold or higher than the
>> value of highThreshold.
>
> It's odd that you've stuck this into lowThreshold but not high

What do you mean?

>> navigator.system.watch("Power",success,null,{lowThreshold:0.2,
>> thresholdTarget:"level"}); function success(power) { alert("Low
>> battery level: "+power.level);
>
> So, there's no timeout, to me "watch" implies continuous, is the UA
> supposed to call success repeatedly until it does succeed in running
> out of power?

Sorry for the oversight. Added.

> The n900 can't tell you anything about its power level while
> charging. What would one do if implementing this interface on the
> n900?

set the level to null (I added some words to that effect)

>> Indicates whether the internal power source is currently charging.
>> A value of true, indicates that the battery is being charged. If
>> false then the battery is not being charged.
>
> What if I have an external battery which is being charged?

then both isExternal and batteryBeingCharged are true.

>> This attribute indicates the current CPU load, as a number between
>> 0.0 and 1.0, representing the minimum and maximum values allowed on
>> this system.
>
> CPU load in Linux is roughly the number of tasks waiting on a cpu,
> it goes from 0 to +INF. -- There is no fixed maximum for CPU load.
>
> You probably mean usage.

I've looked for a reference that explained the meaning of all the terms 
that I considered, and failed to find one. Do you know if there is 
something out there that would indicate what those terms mean?

>> The list of all the network connections
>
> Sentence.

Why?


  If I have a network adapter with an unplugged cable, do you
> want me to list it?

No, as it's not a connection (literaly speaking)

>
>> attribute Connection activeConnection The connection currently used
>> for network access.
>
> What if I'm using 2 or more connections concurrently?

That's very advanced for this API. See previous discussions on this topic.

> The VPN case worries me.

Sorry to hear. Why?

> The Connection Property const unsigned short TYPE_UNKNOWN=0 const
> unsigned short TYPE_WIRED=1 const unsigned short TYPE_WIFI=2 const
> unsigned short TYPE_PLMN=3
>
> TYPE_BLUETOOTH?

or IRDA, RS-232, USB, WAP, etc. I wasn't sure where to draw the line and 
include standards that define a whole protocol stack, or ones that 
merely act as tethering protocols, or ones that just encapsulate 
Ethernet. I'd very much welcome a comprehensive list.

>> The type of network connection. The value is one of the constants
>> defined for this attribute.
>
> Or a UA defined type?

As a free-form string? It's tricky because they're basically not usable.

>> A value of true indicates that the connection is roaming
>
> No distinction between local roaming and international roaming?

No, see the previous discussions on this list.

>> const unsigned short TYPE_RAM=4 ... this device uses solid-state
>> RAM technology (chip, memory card)
>
> This is not what I think about when I read RAM. I'd rather "FLASH"
> even if it's terribly inaccurate.

I'd rather something accurate, so any suggestion is welcome.

>> The list of microhones available on this system. The list of
>> microhones available on this system that are currently in use.
>
> micro[][p]hones
>
> My colleagues have only seen Mirophones and Micorophones, I'll have
> to tell them to be on the look out for Microhones.

lol!

>> The number of image sensor elements (pixels) of this camera
>
> camera[][.]
>
> This is a strange way to write what you're trying to say.


What's a better way?

Cheers,
Max.
Received on Monday, 10 May 2010 12:23:55 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:38 GMT