See also: IRC log
<gmandyam> Mounir: WebIntents dependency on two-way messaging between to open webpages results in UI problems.
<gmandyam> jungkee: I think Sysapps should work with DAP/WebApps to come up with use cases, and similar property names, with respect to Contacts.
<JonathanJ1> Scribe: gmandyam
<JonathanJ1> ScribeNick: gmandyam
Suresh: From a W3C perspective, we don't want to have two different API's for the same functionality. DAP specs are not frozen, so we can collaborate between the two groups and not confuse developers.
eduardo: (Presenting SysApps
Contacts API) The basis of this draft is the FF OS Contacts
API.
... (Presenting SysApps Contacts API) ContactsManager has the
following methods: find(), clear(), save(contact),
remove(contact). There is also an oncontactschange event
handler.
<mounir> mounir: (to summarize) SysApps should rely on Web Intents or a similar mechanism to happen but we do not know if this is going to be exactly the same. Web Intents have been stopped for UI issues and those UI problems do not all apply in the current usage of Web Activity (apps + mobile). While meeting Google, we found some solutions but those issues being UI related, we need to experiment. This is why it is taking so long. The main problems are related to t[CUT]
Zoltan: There is an assumption that there is only one address book in the system. Why this limitation?
eduardo: We don't have a requirement to deal with multiple address books.
<JonathanJ1> http://contacts-manager-api.sysapps.org/
<JonathanJ1> http://www.w3.org/TR/2012/WD-contacts-api-20120712/
<scribe> ScribeNick: gmandyam
zoltan: Remove the constraint of
a system address book and this could make the API more
flexible.
... Implementation can keep track of origins.
eduardo: What do you think of dsr's suggestion of a partial I/F?
zoltan: We still need appropriate notifications when contacts change.
chris: How about a 'service ID' field in the contact?
zoltan: The contacts manager will now be managing all the stores.
thinker: I am concerned about properly identifying the origin of contacts derived from multiple sources. Will a 'service ID' be sufficient? Do the different contact sources provide consistent fields?
zoltan: I believe the API is sufficient with an origin field, but a partial I/F could be necessary for prioritizing contact stores, discovery of available contact stores.
<scribe> ScribeNick: gmandyam
Josh_Soref: I wonder about the usefulness of this API. As Chris stated, it is expected that only one privileged app will be managing contacts through this API. I believe all apps who require contacts info can speak directly to the contacts manager app.
zoltan: That could be done via a Web Intents mechanism.
Sakari: How does this work with a
hybrid implementation of Contacts API (part native, part web
layer) like Tizen?
... How does a native contacts manager get integrated into such
a mechanism?
<mounir> mounir: (scribing what I said earlier): we should be careful in allowing any implementation to extend an API by using a magic string like serviceID. If tomorrow we have an implementation that allows you to use Facebook APIs by using serviceId='facebook', you might require everyone to implement this. It would be added to the Web Platform. We could imagine content that uses the same interfaces but not any implementation to plug anything in the Web Platform.
Josh_Soref: If a Web Intents feature becomes popular, then all web apps should be expected to use it.
<mounir> mounir: (scribing what I said earlier): I would like to see applications like Twitter or Facebook that would provide an address book and applications could access it, a way or another - which would need to be defined.
<zkis> @mounir: you don't standardize the serviceId's, so you don't mandate implementing magic strings
<zkis> the value of serviceId is implementation specific
Sakari: We have a problem in that we have a native access to a contacts DB, and we need to provide a non-native (web way) to access this DB in absence of a privileged contacts manager app.
Josh_Soref; You will need to implement a privileged contacts manager app.
<zkis> it is unique in the device, but not globally unique
Sakari: Contacts API is how we solve the problem.
Josh_Soref: I don't see the use
case for having multiple contacts applications managing a
single store.
... I don't believe specific implementation issues should drive
the API requirement.
Chris: It may not be just management of the store - it could also be synching.
Josh_Soref: Do you really want multiple apps doing simultaneous synching? It would be better to have a single app handling synching on behalf of all other apps.
<gmandyam_> Josh_Soref: Every native system has a way of a single app providing notifications to subscirbing apps. We would have to define an API for broadcasting 'mutations'.
<gmandyam_> Mounir: We (Mozilla) want this API, and Tizen (Intel) wants this API (Contacts API).
<Zakim> anssik, you wanted to note that DAP hashed out the same issues two years ago
<anssik> AK: The same discussion happened in the DAP working group two year ago. You (esp. the editors) may want to take a look at the now obsoleted version of the Contacts API and Contacts Writer API from DAP for inspiration, use cases, security and privacy considerations etc.
<anssik> http://www.w3.org/TR/2011/WD-contacts-api-20110616/
<anssik> https://dvcs.w3.org/hg/dap/raw-file/default/contacts/Writer.html
<anssik> AK: The DAP proposal used a concept of 'categories' -- think them as tags/labels associated with each Contact object.
<mounir> ScribeNick: dsr
SC: there was a concern that the
web would be forced to implement the contact API, but that
isn't the case.
... we have common use cases to manage contacts in multiple
places, and a service id would be valuable for distinguishing
the source of the contact.
<Zakim> mounir, you wanted to ask what the hybrid mode changes exactly
ML: asks Chris to explain how the Tizen hybrid implementation effects the API.
<jplyle> ML: DO native applications access contacts through an API too? Chris: yes.
CD: we need to make contacts consistent, I want to change the remove method to use an id instead of contact to match other APIs
<chris> https://github.com/sysapps/contacts-manager-api/issues/9
AK: Cordova have implemented the DAP contacts API and wonder if you have any developer feedback to share with us, and has this resulted in any changes?
<anssik> http://docs.phonegap.com/en/edge/cordova_contacts_contacts.md.html
FM: It is based upon the DAP spec from 2 years ago. Not much feedback, some problems on deletion and changing category labels. The common usage is querying.
AK: do you expose contacts from Facebook or twitter through this API?
FM: I would need to go back and check.
EF: continuing with the review of the spec, looking at section 8 (ContactField)
CM: I sent an email on the list and don't think we reached an agreement. I would like to change the type field which currently holds both the marker for a preferred address and type of contact address based upon VCard.
<jplyle> ML: DAP was using a boolean.
It would be better to split them, and I am in favour of a boolean.
<mounir> type: ["home", "pref"]
<mounir> value: "foobar"
ZK: technically, the field is a set of tags.
<jplyle> Josh: How do you have a PREF=home and a PREF=work in the current system? Where is PREF? Chris: VCard does not restrict it.
SC: the use case for PREF is to simplify dialing for the user by avoiding having to pick from a set of addresses.
<jplyle> ML: Should we copy what DAP is doing for this? It makes things simpler to understand. Boolean for Pref. Two entries: one for voice, one for text. The application can merge entries.
[ Discussion centers on moving PREF into separate boolean attribute.
<jplyle> EF: I'm fine with moving PREF to a separate attribute. ] Differences in versions of vCard - not the only change. PREF has been added to a number of additional fields.
ML: we should look at how this was handled in DAP.
<wonsuk> I add alignmenet issue with DAP WG to GH
<wonsuk> https://github.com/sysapps/contacts-manager-api/issues/10
EF: most of the implementations are not VCard 3, but instead VCard 2.1
<anssik> for pref support by platform, search "pref" at: http://docs.phonegap.com/en/edge/cordova_contacts_contacts.md.html
<chris> https://github.com/sysapps/contacts-manager-api/issues/11
FM: On Android, always false as PREF is not supported. Windows phone would have it.
ML: most people these days have more than one phone number, so PREF is valuable?
<jplyle> JS: What happens when I try to set PREF to true on Android?
Answer no effect.
<jplyle> JS: Assuming that you decided not to support PREF, would you do it such that when you tried to write to PREF you could find out that it didn't do anything?
<jplyle> JS: An event should be fired? Listening for the absence of an event is hard :)
You could listen for the contact changed event...
ML: lets open an issue on splitting PREF off to a boolean and keeping type as an array
<jplyle> CD: Only one element in the array must be marked as PREF
SC: does the contact manager enforce that there is only one address marked as preferred.
answer yes [but it's underspecified how that happens, and if you discover that it happened ]
<jplyle> ZK: It is not possible to unmerge merged contacts. Type field would help?
<jplyle> ML: Doubt the spec will allow this.
ZK: what if the user is allowed to put whatever he likes?
<Zakim> mounir, you wanted to ask why we want to follow vcard so much
Josh: can the user put home and work together into the type field?
<jplyle> Add an example to show that you can select both home and work
ML: yes, that would be fine.
<jplyle> ML: Why was following vCard so important?
ML: why is VCard compatibility so important?
Chris: a lot of work on standardization has already been done, and we believe that compatibility is important for merging.
<jplyle> ML: Could imagine a tool to transform objects TO vCard?
ML: this draft follows Vcard for naming, even when it is not needed [except for the Name field which is 'fn' in vCard].
<jplyle> ML: vCard was tried to be followed even when unnecessary? Even though suggested by Mozilla.
Chris: adr for address is very confusing for example.
<jplyle> ML: Should be able to export to vCard, but following the API exactly is a bad idea. "Because vCard is doing it" is a bad idea
ML: the rationale is when you
want to import and export contacts.
... so long as you can map correctly between this and VCard,
that is sufficient.
<jplyle> JS: Is there a round-tripping requirement from vCard to internal back to vCard?
Josh: is there a requirement for round tripping without loss?
Suresh: loss will be inevitable in some cases.
ML: I don't believe we have a requirement for lossless round tripping
<jplyle> EF: In some cases, if we don't follow the same name, import and export wont work/ Birthday is straightforward, but 'name' is harder - Pick/vCard/Other APIs have different semantics.
EF: I compared the Mozilla definition and VCard and had quite a bit of trouble
<timeless> Josh_Soref: +1
ML: we should have a requirement for how the fields map to VCard.
Marcos: we could do this as an informative spec
Suresh: yes, we could have this as a table in an appendix
<jplyle> In who's interest is it to follow vCard? JS: No user will actually use it.
Josh: 99% of people haven't read the VCard spec and won't want to
ML: can we state that we are trying support import and export to VCard, but not lossless roundtripping.
Suresh: there will be compatibility but not 100%
<chris> https://github.com/sysapps/contacts-manager-api/issues/12
<Zakim> Josh_Soref, you wanted to say "because tantek demands it"
<Zakim> anssik, you wanted to ask if vCard export via this API is an UC we want to support, if not, we can simplify
AK: do we want to support a use case for vCard export?
Marcos: do we want to make import/export to vCard part of the API?
ML: no.
EF: I am fine with the change of PREF to a boolean, but want to also allow it in type for now.
Chris: you also don't support type for those fields
<jplyle> Chris: I've never seen a carrier follow it.
<jplyle> ML: FirefoxOS Will because Telefonica asked for it.
<timeless> Suresh: how do you find it out?
EF: customers want to find out what the carrier is for a given number
<timeless> chris: you often cannot
<timeless> scribe: timeless
marcos: that's ok
chris: this you won't be able to export to vCard
mounir: you wanted to have `origin` in vCard
gmandyam: there are extension fields in vCard for Twitter
chris: there's so reason to export the origin
mounir: you have a valid point that you can't export this (carrier)
chris: i'm sure there's some UC
eduardo: for an operator, it's important
chris: there will be a UI
marcos: i see a lot of people
very concerned
... in Portugal
... I can see them importing this data themselves
... caring if it's on Vodafone or Telefonica
mounir: in Brazil
... a lot of users have more than one plan
... and depending on the people, they'd call on different
phones
... or multisim
... using specific sim
chris: you can already store this in the `type` field
mounir: storing that in the
type
... is losing the real information
... you have no idea it's a carrier
... you have to know that the second item in the array is a
carrier
... it could be a blob/picture
... i would listen to the fact, that this could actually be
saved
... but you can't have the info in all contacts
application
... if you have two contacts applications, they should both
share
Josh_Soref: US calling plans also
discriminate by carrier
... but in NAm, people change carrier randomly -- why not have
the carriers provide an API to look up carrier by phone number?
-- this exists in NAm [partially for number portability], and i
believe there's DNS like system that operators use for this
anyway]
lgombos: i'm assuming a lot of solutions assume you're connected to the network
Josh_Soref: i'm concerned that the information will be stale
gmandyam: is any application allowed to set this value, or only privileged?
chris: we don't have per-field permissions
gmandyam: is the intention that any app with write permissions to have this
mounir: you can do way more nasty
stuff
... you could remove, change the number, replace it w/ a
fee-number
... there's no mention of permissions for the api
gmandyam: there's a permission model for this in the runtime security spec
Suresh: on the carrier
field
... it's sort of almost tying it to a service
... without that, it's almost useless
... i don't think systems have this built in
... does it fit into the 80-20?
chris: the user could enter the value in the phonebook
<anssik> [I added a suggestion to vCard import/export issue : "To clarify, we should mention in the spec that a vCard import/export API is out of scope as parsing and serializing can be efficiently done in JavaScript, and libraries are readily available." added to https://github.com/sysapps/contacts-manager-api/issues/12 ]
dcheng3: there's 411.com
<chris> https://github.com/sysapps/contacts-manager-api/issues/13
Marcos: it's weird having an
object that extends a field
... can it be merged back in
chris: Carrier isn't specific to
ContactField
... it's specific to the ...
Marcos: can we merge this stuff
together
... every time you add something, you add it to the Window
object
... you have this `contact thing`
Suresh: putting it in the type field makes sense
mounir: more general issue of not polluting the window scope w/ objects
<chris> https://github.com/sysapps/contacts-manager-api/issues/14
Suresh: where does this fit in
the 80-20 rule?
... or is it a corner case
anssik: can you provide a couple of UCs that are the most valuable
eduardo: the main UC is user
knowing the carrier of a contact
... because it affects carrier billing for connections
Suresh: but if you aren't relying
on a service
... and it's just me relying on the user, i could put it in the
note field
eduardo: but that's not standard, if there's a standard, you can build a UI around it
anssik: can you expand on the charging
eduardo: it depends on the region
and operator
... many charging plans are linked to the carrier of the
callee
... a plan w/ unlimited minutes to users on the user's
carrier
... but a pay-per-minute for other plans
anssik: is this sufficient?
Josh_Soref: does the user know which plan they're on?
chaals: in lots of the world where this is an issue, users do know which plan they're on
anssik: is the real question "how expensive is this"?
mounir: we don't have that
anssik: i'm wondering if charging is the UC
mounir: calling Orange is 2x calling Vodafone
chris: isn't the question
... are you going to have several phone numbers for the same
contact
chaals: yes
eduardo: but they have multiple sims
chaals: the api for charging info
doesn't exist
... you have 4 sim cards
... you have so many minutes by next tuesday
dcheng3: I'm asking people at our company
eduardo: "MoviStar" is the
Telefonica brand
... the billing plan is 100 pages
lgombos: i understand the
UC
... i'm not sure it's the right abstraction
mounir: i want to move on
lgombos: i disagree
<eduardo> http://contacts-manager-api.sysapps.org/#idl-def-ContactAddress
eduardo: type includes pref [same issue as before]
chris: wouldn't it be useful to have GPS coords for the address
gmandyam: no
... GeoLoc v2 had a reverse api
... and they shelved it
... because there was no demand
mounir: if you're not online?
gmandyam: developers can do it themselves
chris: not a big deal
mounir: seems like a good UC to
me
... i don't see how you have GPS application working
chaals: device can know where it
is
... but not have a network connection
chris: offline routing is rare
mounir: it exists in the car
gmandyam: i understand what you're saying
<mounir> ContactProperties interface
eduardo: most are dom
strings
... things requiring Type are ContactField
... tel is ContactTelField [this is the Carrier object]
... the others are ContactAddress
... birthday, anniversary are dates
Josh_Soref: what about date of
death?
... I have to go to their gravesite
... or not want to write on their facebook wall
... or go to synagogue
chris: on naming
... name i agree
... (except fn)
... but `adr` for address
... and `org` for organization
... `bday` for birthday
... `adr` isn't readable
... vCard isn't meant to be developer facing
... it's a serialization format
eduardo: for things related to
name except fn, we should
... stick to vCard
chris: it's a serialization format
<mounir> Interesting doc regarding internalionazitaion naming: http://www.w3.org/International/questions/qa-personal-names.en
<thinker> https://wiki.mozilla.org/WebAPI/AppDefinedTeleophony#Contacts_API
<gmandyam> gmandyam: Last year the Geolocation WG rejected adding reverse geocoding (mapping of lat/lon to address) in the API due to lack of developer demand. Having geocoding (mapping of address to lat/lon) in the Contacts API would seem to also lack developer demand.
<chris> a+
thinker: we have we don't include Facebook/Skype in this interface
chris: `impp`
mounir: impp can be type `twitter`, value {twitter-handle}
thinker: we know how to handle a
phone number or sip
... but a new service, we don't know how to handle that
... i think we should add an activity name in the contact
field
... so we could later call skype to handle it
chris: you could do an intent
call
... pass the impp and the system would resolve it
mounir: if you add info that will
know how to call it
... the user unlikely knows more about the system
... the user is writing that stuff
... if you write an activity name, the user would have to know
that
thinker: you add a new friend in
skype
... you want to add that in your contacts
... when you add the friend in skype
... skype would ask the contacts application to add this
chris: you can use impp
thinker: but how does the contacts know how to call the impp
mounir: i believe this is an
orthogonal problem
... how to call
... is outside this api's scope
chris: (i agree, [ the Intent or similar api can handle this w/ the impp field ])
Suresh: if you look at Address,
there's an object
... but for name, it's flat
... if you take the 5 or six attributes
... either you make everything flat of everything objects
... whereas the others are objects
... for name, you don't need the five flat things
... for Sex/GenderIdentity, do we really need this?
chris: +1
... what are the values for GenderIdentity
mounir: i see the UC of this
chris: that's 80%
... San Francisco
Josh_Soref: what's the UC for having this in the address book
chris: what's the UC for having this in the address book
mounir: good example of trying to check what vCard did, and why
<chris> https://github.com/sysapps/contacts-manager-api/issues/17
mounir: i'm pretty sure for naming they did good a job
[ scribe coughs ]
Suresh: the gender might be unknown
<chris> https://github.com/sysapps/contacts-manager-api/issues/18
Suresh: you have a friend, he's a man, but would prefer to be something else
sicking: i don't think anyone in this room has an answer
mounir: some people might have
different values
... but i don't know a UC for using it
eduardo: it's a corner case
... for the majority of people, it's not important
Josh_Soref: why is it a domstring and not an enum?
mounir: good point
... we should check more what it means
... if sex is biological, then there aren't that many
<Zakim> mounir, you wanted to ask what anniversary is
mounir: but for gender identity, i don't know how many there might be
<wonsuk> ?q
Josh_Soref: for men, they need to remember this to send flowers to their wife
chris: for address, nickname,
they should use plural form
... when they're arrays
Josh_Soref: +1
Suresh: for pick contact, we
tried to use plural
... to be very clear
gmandyam: back to impp
... we're rejecting all extension fields?
... because there are im-service-specific extension fields for
vCard
... that are widely used
... that could be used instead of impp
mounir: as long as impp can cover the UC, i don't see why
<Suresh> Strongly recommend looking into Pick Contacts for the naming of attributes
chris: vCard supports extensions, and some are widely used
mounir: as long as you can import/export
gmandyam: some are used widely
chris: they are used widely, i agree
Josh_Soref: sex has "U" ....
<chris> https://github.com/sysapps/contacts-manager-api/issues/20
<anssik> AK: extensions to the schema were discussed in DAP too, please refer to the links I provided earlier
mounir: clearly a case where we shouldn't follow vCard, it was saving bytes
chris: it should be readable strings
eduardo: whether something is readonly or not
<chris> https://github.com/sysapps/contacts-manager-api/issues/21
Josh_Soref: are there places in the world where `readonly` is spelled as such?
Suresh: can you collapse contact and contact properties
<jplyle> Regarding gender/sex fields, this has been discussed with relation to vcard4 here: http://www.ietf.org/mail-archive/web/vcarddav/current/msg01784.html
mounir: this was done to construct an object
<lgombos> Josh_Soref - see HTMLInputElement.idl: [Reflect] attribute boolean readOnly
<anssik> http://www.w3.org/TR/html5/forms.html#attr-input-readonly
<mounir> Contacts Interface
sicking: that doesn't actually do what you want
Marcosc: it's worse than that
mounir: what's the UC for
readOnly
... say i have google contacts
... and i'm taking them and want to leave google
chris: the serviceid
... since the spec says it's a system address book
... originally this was for SIM contacts
mounir: i think we should drop it unless there's a UC
<chris> https://github.com/sysapps/contacts-manager-api/issues/22
chris: why isn't the ID nullable?
eduardo: you get an id...
chris: why isn't the ID from when you call save()
eduardo: id is created when you create the contact
chris: but it isn't saved yet
Marcosc: the algorithm it isn't defined in the spec
chris: there's an algorithm
... there was a need to have it
... and we wanted to export as vCard
... and we needed to have a unique-id
... but we don't have vCard
... what about lastUpdated
... is it when it's created or when it's saved
mounir: it could be modification time
chris: we want to know the last
time it was saved
... not the last time it was updated
... name is one thing, as long as it's clear
... does it need to be Nullable?
mounir: if it should be creation time
chris: if you want creation
date
... then we want another field for saved time
[ goes around in circles until mounir gets it ]
Marcosc: algorithm doesn't define when `id` is calculated
chris: when you call the
constructor, those fields should be null
... and we should define a default value
Marcosc: i can't find the steps
for when you call the constructor
... there should be an algorithm to
chris: please file this one, i'm filing the other
mounir: ContactRequest becomes DOMFuture
<chris> https://github.com/sysapps/contacts-manager-api/issues/24
<mounir> ContactsChangeEvent Interface
eduardo: three arrays: added, modified, removed
Josh_Soref: how does anyone know that this is an id (without reading the spec)?
chris: did that change?
... i thought the two others were full contact objects
... since usually the application wants to retrieve them
... to update the ui
... and i don't think we even have fetch by id
mounir: good reason to pass a contact object is that for removed, there's no way to get it back
sicking: that should be obligation of application to retain
mounir: ...
sicking: we don't want to
construct all these objects when we're deleting a lot of
them
... i agree that it's more work for the implementation
mounir: you'd need to store all contacts in the application, to use this
sicking: what's the UC?
Marcosc: accidental delete - undo?
mounir: if you want to be
notified that something has been removed
... either pass the full contact, or a `things changed`
chris: another app might remove
contacts
... and you might want to update your ui
... and you want to stop showing it
... but for added/modified, you want to use the objects
sicking: we should have
fetch-by-id
... if the implementation has to do a lot of work
... we could make added/removed domfutures
... but that's not friendly
chris: with your current
model
... each application will have to fetch the objects
sicking: is it separate events for added/removed?
chris: if you have several listeners, then the perf is worse
sicking: knowing when we have extra work/when we're saving work
chris: you're never just
interested in the id
... either you don't care, or you want the contact
sicking: i'm not entirely convinced
mounir: why do we have this in batches?
chris: because the backend might do batches
mounir: it isn't very common
eduardo: the database can change for synchronization
chris: synchronization can change for a lot of events
mounir: it's clear you save 5 events when you do a sync
chris: for sync it is
... we had issues w/ native sync
... where the web app gets hundreds of events and freezes for a
while
mounir: i wonder if modify should
happen
... you can listen to contact change on the manager
... you get event for every change
... you might just want only adds
... or modifying specific contacts
... we should at least have modify events on contacts
chris: there are some UCs where you want it on global
mounir: but contact should be
useful
... 2 issues
... split this into 3 events
... add, modify, remove
... still a batch, but 3 events
<chris> https://github.com/sysapps/contacts-manager-api/issues/25
sicking: what's the advantage of splitting?
mounir: you can choose not to
listen for add or for modify or remove
... withdrawn
... add modify event to contact interface
eduardo: do we need constructor?
chris: common in specs
Marcosc: consistency in the platform
chris: implementation of api might be in js
Marcosc: is sequence right there?
chris: in dictionaries, you can't use arrays
<chaals> [actually, having to have a github account to work on a W3C project is pretty annoying IMHO. Different tastes I guess]
Josh_Soref: if ArtB were to ask
what's your work mode
... what would you say?
... you're inconsistent
<chaals> ack
<chaals> [working with github links in an organisation (say, a typical W3C member) *isn't* convenient nor is it helpful]
<Marcosc> MC: if you have meta issues about infrastructure, please use: https://github.com/sysapps/sysapps/issues
<dsr> I will work with Marcos to add links from the working group home page to the sysapps repositories and some guidelines covering the things Marcos was saying to the wiki
<JonathanJ1> +1 chaals
<Zakim> chaals, you wanted to point out that W3C's persistence policy is pretty valuable, so having a new domain seems like a bad precedent. (and to show mounir how not to forget what you
<gmandyam> Please see: http://lists.w3.org/Archives/Public/public-media-capture/2013Mar/0030.html. The Media Capture TF is maintaining both WD's and living specs on dev.w3.org. This is in contrast to Sysapps approach which keeps the living doc on Github.
<gmandyam> It would be nice to commonalize approaches to document archival across W3C WG's.
<Zakim> dsr, you wanted to mention W3C Team plans for keeping backed up copies
<gmandyam> It should be entered into the minutes: Marcos has stated that Google search rankings will usually place the W3C archive ahead of the Github version.
<dsr> We are discussing plans for backing up working group github respositories on the W3C systems
<gmandyam> It should be entered into the minutes: Chaals has countered that Google is not the most popular search engine in all parts of the world, and we can't count on search rankings preventing developer confusion as to official copies of the spec.
<gmandyam> It should be entered into the minutes: Marcos has suggested that the W3C take over the living document archival issue, and Chaals countered that this would come with a cost.
[ There is no scribe for any of this, and it's an interesting discussion ]
Josh_Soref: two amusing
cases
... 1. Nokia bought Symbian and open sourced it using Mercurial
on opensymbian.org
... eventually they closed it down
<gmandyam> Josh, mention the QT example too
Josh_Soref: and i doubt you can
find most of the repositories at anything close to the latest
versions
... 2. KDE suffered massive dataloss of all of their Git
managed (and heavily mirrored) repositories
... ->
http://itnews2day.wordpress.com/2013/03/25/kde-almost-lost-all-1500-of-their-git-repositories/
... As a result of the incident, the KDE developers had nearly
lost the contents of the 1500 Git-repository project.
... It all started with the damage to the contents Ext4 file
system on the primary Git-server after a failed virtual machine
is restarted after the updates are applied to one server
project.
... An error occurred and the file system was the integrity of
the primary Git-repository, the contents of which were
destroyed and many data repositories lost.
... The situation began to resemble a disaster, when
administrators began to restore data from a backup. The fact
that the backup practices a mirror Git-repository.
... Fingering mirror administrators was terrified – mirroring
managed system automatically synchronize the erroneous data on
all secondary servers, content repositories, which have also
fallen into disrepair or been removed.
<gmandyam> Respec versioning on Github should be accounted for as well.
Josh_Soref: [there was a happy ending, because they lucked out, there was one mirror server that failed to mirror the dataloss, so they recovered, but that was dumb luck]
<jplyle> ZK: "it was very painful to use Anolis"
<jplyle> MC: Doesn't mind either way - happy to use ReSpec or Anolis
<jplyle> Anssik: in ReSpec you can use a noLegacyStyle config flag to to get rid of some of the unnecessary boilerplate
<chaals> [Marcos: Different editors choose different tools based on what they are comfortable with]
<jplyle> MC: This is an editing issue
<jplyle> FM: This whole discussion is similar to a discussion that was had when joining Apache. Apache's infrastructure is considered 'blessed' but want to maintain a link to GitHub to expand developer reach. Defining general guidelines - canonical specs exist somewhere - etc, would be valuable.
<jplyle> MC: ML and I generated some rules.
<jplyle> FM: There's probably a middle ground. Not much happening on Github right now, but in the future it may be very popular
<jplyle> Josh: Sending patches to Cordova can be frustrating
<jplyle> Subject: testing
<jplyle> DSR: Introduce the topic.
<mounir> ScribeNick: jplyle
DSR: I have started a wiki page -
approaches to testing
... Tobie Langel is on assignment to help with testing efforts.
This is ramping up.
... Don't want to block waiting for Tobie. There's some info on
tools on the wiki page
... What about pages that are not automatable? Some things are
very hard to test - do we want them in the spec? What do we do?
Need to think about early?
... Please add to the page if you know of good tools that
aren't listed
MC: Lots of testing and QA
experience in the group
... Robin has already written "using test harness"
... Does Mozilla use the Test Harness?
ML: We use that for some W3C imported tests but not extensively.
MC: IVL Harness for generating
tests from IDL also good. The annoying stuff - is it readonly?
- will happen for free. 40% coverage in one click.
... Testing algorithms is still manual.
DSR: Don't make reviewing the bottleneck
<anssik> [an example of a spec with noLegacyStyle flag set: https://dvcs.w3.org/hg/dap/raw-file/default/battery/Overview.src.html -- notice no Attributes and Methods sections below the IDL blocks]
MC: For algorithmic tests, need
to link assertions to tests. Need to create a bug or
implementation report.
... Need to present the report to the director of W3C at some
point
ML: Lots of APIs are highly
linked to hardware - this might be hard to test with
testharness
... Use VMs and Marionette -fakes receiving SMS, etc
... Hard to do something equivalent on the browser
MC: Need to show the test results once, but can't be repeated
JS: W3C make a Web Socket server available for testing. All the testharness doesn't need to live in the browser
MC: The W3C isn't going to
provide an SMS gateway, so it doesn't translate?
... Goal is just to get to Rec, not further yet
JS: My goal is to make sure crappy APIs aren't created
MC: The goal of the WG is to get to Rec quickly!
<anssik> https://developer.mozilla.org/en-US/docs/Marionette
MC: Any questions - ask MC or ML. We can help guide you.
DSR: Page is just a draft, please edit.
<filmaj> timeless: http://www.highcharts.com/demo/pie-gradient
ML: Proposal for a new phase 2 item
GM: Brief history - geolocation
API. W3C introduced it in 2008.
... Implementations appeared ... big with the three major web
runtime engines
... Geolocation WG is responsible.
... Group has not improved specifications. Recently shelved
changes to the specification
... Most changes in this proposal were proposed last year, but
not acted upon.
... Feeling that the group has gone dormant
... is venue shopping!
... Is the current API meeting the charter for SysApps?
... Proposal: prior to w3c work, most mobile apps had much
richer location access. Pre-smartphone - BREW Iposdet, J2ME
JSR-179
... Originally got involved in this through BONDI, these two
were the influences. Subsumed by Geolocation, these examples
ignored.
... Qualcomm SnapDragon SDK provides Java APIs
... Don't have similar counterparts for Windows 8 / iOS
... Geofencing and indoor location
<anssik> scribeNick: anssik
GM: a geo-fence is a virtual perimeter for a real-world geographic area
[ questions re use cases ]
DKA: if devices move outside a
specified area, you'll get an alert
... think kids' devices, "kids tracker"
JS: these are better UCs
DKA: there are scary UCs
too
... e.g. you and your friend will get an alert if you move
within a same area
GM: you can do this with existing
API
... see geoloc ML for some history
[ GM showing a slide with some hardware specifics ]
GM: running on a hardware is more
power-efficient
... able to increase the polling frequency
... using hardware
... from Firefox OS experience, we had problems getting this
right
DSR: question that was not audible?
MT: what is the developer-facing interface?
<dsr> I asked whether the modem-based geofencing was limited to circles or also supported richer boundary descriptions e.g. polygons.
[ GM walks through the current Geolocation API ]
GM: setting the accuracy is
unspecified
... or limited
[ GM showing the IDL ]
GM: currently you define position
options, high accuracy
... cached position
[ GM showing a slide on proposed modifications to the API ]
<wonsuk> http://lists.w3.org/Archives/Public/public-sysapps/2013Apr/0104.html
<Github> [13runtime] 15jplyle opened pull request #52: Change 'trusted applications' to 'privileged applications'. (06gh-pages...06remove-trust-terminology) 02http://git.io/QjauxQ
[GM showing code examples]
GM: thinks indoor location is
ubiquitous on smart phone hardware
... when the developer enabled the high accuracy flag, the
indoor location feature is invoked by the implementation if
supported
... also introducing additional building information
[ GM showing proposal details, an "enhanced" Position interface ]
[ GM wraps up the presentation ]
GM: common API across web apps,
packaged apps
... current API cannot bridge native and web apps
... privacy model is different, and SysApps could take up
extensions to the Geolocation API for installed apps
... recommendation: take this extension up as a Phase 2
deliverable
ZK: are the threat models listed somewhere?
Josh_Soref: can do the same
already with the current API
... only difference this is more power-efficient
GM: I know Chrome supports Device Orientation
JS: we need a special security
model for this
... nice feature set, wrong working group
... the current security model should work
... perhaps use system messages
... continue work in Geolocation WG
<jplyle> +1 for not needing a new security/privacy model for this proposal, therefore SysApps is probably the wrong group.
<jplyle> Jonas: We're not doing everything regarding apps - we're not doing IndexDB, for example. We don't need to cover everything that might need a different security model.
GM: last year we tried to make
Web Workers stay alive even if the browser is closed, to work
with this proposal and geo-fencing
... use cases
mounir: you can do this in JavaScript
JS: that proves we do not need a new security model
<jplyle> ML: Your API may use some APIs that SysApps is specifying, but this API doesn't need SysApps necessarily. The fact that you *can* do this inefficiently in JavaScript is proof that you don't need a new security model.
GM: the goal is to make sure web apps have the same set of functionality than native apps
mounir: this particular feature (system messages) is within the scope of SysApps
<jplyle> GM: Does not expect a resolution on this. Can concerns be reproduced?
<jplyle> Jonas: Ok.
<jplyle> DA: Sympathetic to the geofencing usecase
<jplyle> DA: Waking up the application and doing an action when breaching a geofence boundary is handy
<jplyle> DA: Uses this all the time, e.g., Starbucks usecase
<jplyle> DA: Really good example of bridging the gap between native and web app developers.
<jplyle> DA: Having a tab constantly open to constantly call geolocation doesn't allow anyone to achieve the Geofencing usecase.
<jplyle> DA: This should be *considered*. Should not be in the initial scope, but should not be rejected out of hand.
<jplyle> DA: was involved in Geolocation working group initially - many privacy issues came up originally, will happen again.
<jplyle> GM: Assuming Sys Apps has a level of privilege.
<jplyle> DA: Geolocation is a target for privacy activists. Both good comments and a lot of controversy
<jplyle> GM: Has been negative on the Geolocation API, but only in the context of meeting native app functionality levels.
<jplyle> GM: The trust model has its own set of challenges.
<jplyle> ML: The real feature is having something running in the background. A way for my phone to let me know about things... that problem we can solve in SysApps, but not the specific Geolocation issue.
chaals: I'd like to see more
Geolocation
... Geolocation API is a web-facing API
... should be done by web people
... was first planned for WebApps WG
... but was moved into its own group for certain reasons
... you can join the Geolocation WG and do this work
there
... don't think SysApps would be rechartered to accommodate
this work, instead of doing the work in the existing
Geolocation WG
ZK: belongs here as much as Telephony, Messaging (e.g. SMS)
mounir: you can send an SMS in JavaScript, interacting with a SMS gateway that provides an HTTP API
GM: Geolocation does not have active charter currently
<mounir> s/mounir: you can send SMS in /Josh_Soref: you can send SMS in/
<Zakim> mounir, you wanted to say that location to address feature should be proposed separatedly
Marcosc: working groups are formed by people who want to work together, no magic
mounir: services such as Google Maps provide much of this functionality already
GM: floor number is something that cannot be provided currently
DSR: which companies would like
to see this work happen?
... secondly, where to make this happen?
... question re closing the gap with native is not specific to
this WG
... this group just has a different trust model
GM: AFAIK the manifest should not declare permissions to features that are already exposed to the web platform
Marcosc: right
<chaals> [Yandex provides reverse geocoding for various places in the world - http://api.yandex.com/maps/doc/geocoder/desc/concepts/input_params.xml (terms of use: http://legal.yandex.com/maps_api/ …)
<jplyle> JPL: The fact that the group is supporting existing Web APIs does not mean there cannot be a different set of security controls applied. E.g., giving Geolocation its own permission in a manifest. This might be reasonable in a SysApps context even though it is not necessary in a browser context.
GM: summary, I would like to 1) hear if these changes to the API have support; 2) find out the right WG for this work
<JonathanJ1> http://lists.w3.org/Archives/Public/public-sysapps/2013Apr/0104.html
<mounir> RESOLUTION: no traction for this proposal in the group for the moment.
<JonathanJ1> http://lists.w3.org/Archives/Public/public-sysapps/2013Apr/0064.html
[ presentation by Sunghan Kim, Jonghong Jeon / ETRI ]
SK: purpose, mobility management
of handover tech to enable web apps
... current status: no API available
... UC1: mobile web app with vertical handover
[ SK showing a figure ]
SK: MxN mixed-network client
UC
... 3G WWAN, Wi-Fi, WiMAX, GPS mentioned
... VCC, SIP, IMS for call continuity, 3G WWAN <->
Wi-Fi
... dependencies: mobile service environment, mobility mgmt
standard tech
[ SK showing an overview of the mobile service environment ]
ZK: question about how the handover is handled
SK: inside one provider's network
GM: could you contrast what you
are asking here?
... this has been presented in OMA?
Marcosc: we have offline events
API already
... there are privacy issues
... how would this interact with what we have for the Web
currently
... are you planning to expose network information to the
Web
... if so, what's the use case?
... or is this more about having more reliable online/offline
event
SK: there are many restrictions currently on the Web
<gmandyam_> What is being asked for here may be addressed by the OMA OpenCMAPI initiative. AT&T (Bryan Sullivan) has a proposal for web bindings on OpenCMAPI. CM = Connection Manager.
SK: dependencies cont'd, relevant mobility mgmt standards
[ SK showing a slide with SDOs listed ]
SK: open considerations: a) is mobility API necessary for web apps? b) is this API a proper item for SysApps WG?
ZK: what is a mobility API
[ SK described the API ]
ZK: shouldn't this be abstracted away from web apps?
GM: there was a W3C headlights
activity how to expose info on the air interface
... presented by Brian Sullivan of AT&T
ZK: concern: IP
connectivity
... IP address overlaps
... could be fixed by providers properly configuring their
network
<gmandyam_> I will send a follow-up email to the SysApps WG pointing them to the Headlight Activity from the last TPAC
Mounir: overlaps with the Network
Interface API of Phase 2
... question what is the difference with that work and this
proposal
<Zakim> dsr, you wanted to ask about differences between mobility API and the chartered network interface API
ZK: voice call continuity
GM: QoS such as radio state
<JonathanJ1> OMA OpenCM API Enabler 1.0 - http://technical.openmobilealliance.org/Technical/release_program/OpenCMAPI_v1_0.aspx
GM: we do not expose that information currently
Mounir: could you describe what is needed on top of the Network Interface API?
GM: get more state information
about the radio status
... such as are you in the middle of a handover, idling
... QoS related to a call
ZK: summarizing, we can extract
some requirements for our other APIs
... currently support domain selection in Telephony API
... could alter the design of that API
... esp. re future-proofing the API
... I took an action to re-open the conference call in
Telephony, look at the presented UCs
... I still do not know what this Mobility API is about
<mounir> RESOLUTION: use those UC to design the Network Information API (phase 2) and the Telephony API (phase 1)
Marcosc: exposing more granular network state information
Wonsuk: we need more detailed
UCs
... this is a bit vague currently
GM: one thing you did not cover
is fast dormancy mode
... can say keep the networking session on even if the apps are
not using the network currently
mounir: good to get Phase 1 in a good shape before moving to Phase 2
JS: runtime spec will need quite a bit of work
mounir: people are welcome to collect use cases for Phase 2 deliverables already now
[ ??? introducing the Security Elements API ]
???: SIM toolkit needs to be addressed as part of the Security Elements API
ZK: should be part of telephony services
<jplyle> [blatant advert] For more information about secure elements from web applications, consider attending or submitting to the Workshop on Web Applications and Secure Hardware (WASH) in London, June 20th. http://wash2013.wordpress.com/ - might be a source of use cases.
mounir: need to nail down
scoping
... wondering if anyone is interested in accessing SIM
contacts, messages via a Web API
???: exposing NFC
mounir: for NFC, there's a separate working group for that
DSR: where does the NFC fit in the terms of the permission model
JS: depends totally on what the API does
DSR: other groups can add declaration to the manifest?
JS: yes
<jplyle> JS/ML: Other APIs from other groups can add themselves to the manifest permission list
GM: this functionality is not available to a typical developer
mounir: I'd like to go through all the currently proposed Phase 2 deliverables
ZK: proposals 1) multimedia resource policy 2) telephony services, e.g. an API for SIM TK 3) secure elements
GM: these would require rechartering
ZK: what is the bottleneck for not working on Phase 2 right away?
mounir: manpower
<zkis> @anssik correction: what is the bottleneck for including more items to Phase 2?
[ mounir walking through deliverables Bluetooth API, Browser API ... ]
scribe: Firefox OS has a Browser
API
... as does Chrome
<zkis> @mounir: the assumption is that new people will do many of the Phase 2 items
scribe: Idle API, get a
notification when the user is idle
... Media Storage API, Network Interface API
Claes: q re Media Storage
API
... think that sharing media between devices should not be part
of the spec
... example: I have a media file and want to send it to another
device
http://www.w3.org/wiki/System_Applications_WG:_Media_Storage_API
for capturing use cases for Phase 2 deliverables, use the wiki: http://www.w3.org/wiki/System_Applications#Phase_2
<JonathanJ1> http://lists.w3.org/Archives/Public/public-sysapps/2013Mar/0161.html
DSR: looking at the feedback provided, proposes to pass that to OMA
spoussa: what's the benefit?
Josh_Soref: the main benefit is to let OMA know they should not do work that overlaps with this group in the Web domain
DSR: what's the group's standing
on this?
... we need consensus on the response
eduardo: could we refer to the charter that this overlaps with SysApps Phase 2 deliverable?
<gmandyam_> DAP liaison response: http://lists.w3.org/Archives/Public/public-device-apis/2013Mar/0012.html
<mounir> RESOLUTION: refer to the charter that this overlaps with SysApps Phase 2 deliverable
+1
mounir: could get feedback from
the larger standards community on parts that are relevant to
traditional web apps
... such as manifest part from runtime
... Jonas to present the plan at the WebApps f2f two weeks from
now
... any concerns?
JS: Runtime and Security Model
spec would go into the Task Force
... the high-level goal is to leverage web platform for
building apps, so it is important to get feedback from browser
vendors that participate in WebApps
... but are not part of SysApps
chaals: this sounds like a good
step
... basically the runtime is already in the WebApps charter
Suresh: how about SysApps-DAP
alignment?
... more collaboration between the groups would be
beneficial
... like joint meetings
<mounir> RESOLUTION: try to improve the collaboration with DAP, maybe by having a joint F2F or same-location F2F
<mounir> RESOLUTION: propose to create a TF to the WebApps F2F for the runtime work
Wonsuk: the next TPAC in China in
November
... we probably need one f2f meeting in between
<JonathanJ1> I'd like to offer to F2F meeting in Seoul - http://www.w3.org/wiki/System_Applications#Face_to_Face_Meeting (July or September)
DSR: f2f helps keep the group going
This is scribe.perl Revision: 1.137 of Date: 2012/09/20 20:19:01 Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/ Guessing input format: RRSAgent_Text_Format (score 1.00) Succeeded: s/flexibile/flexible/ Succeeded: s/ScirbeNick/ScribeNick/ Succeeded: s/XXX/marker for a preferred address/ Succeeded: s/YYY/type of contact address/ Succeeded: s/contacts/addresses/ Succeeded: s/Discussion/[ Discussion/ Succeeded: s/attribute./attribute. ]/ Succeeded: s/On/FM: On/ Succeeded: s/yes/yes [but it's underspecified how that happens, and if you discover that it happened ]/ Succeeded: s/into/into together/ Succeeded: s/into together/together into/ Succeeded: s/needed/needed [except for the Name field which is 'fn' in vCard]/ Succeeded: s/carrier randomly/carrier randomly -- why not have the carriers provide an API to look up carrier by phone number? -- this exists in NAm [partially for number portability], and i believe there's DNS like system that operators use for this anyway]/ Succeeded: s/addres/address/ Succeeded: s/extensions/AK: extensions/ Succeeded: s/timeless,/Josh_Soref - see / Succeeded: s/mutable/nullable/ Succeeded: s/and/nor is it/ Succeeded: s/2/... 2/ Succeeded: s/Qt/KDE/ Succeeded: s/Respec doesn't generate all the necessary boilerplate/in ReSpec you can use a noLegacyStyle config flag to to get rid of some of the unnecessary boilerplate/ Succeeded: s/Apache/Cordova/ Succeeded: s/Don't think so/We use that for some W3C imported tests but not extensively./ Succeeded: s/"Mayonet?"/Marionette/ Succeeded: s/doesn;t/doesn't/ Succeeded: i/ML:/Topic: Discussion of Geolocation Succeeded: s/think/this/ Succeeded: s/specific/specifics/ Succeeded: s/modem/hardware/ Succeeded: s/... currently/GM: currently/ Succeeded: s/... running/GM: running/ Succeeded: s/XXX/Device Orientation/ Succeeded: s/JS: can/Josh_Soref: can/ FAILED: s/mounir: you can send SMS in /Josh_Soref: you can send SMS in/ Succeeded: s/ETSI/ETRI/ Succeeded: s/contract/contrast/ Succeeded: s/away/on/ Succeeded: s/Information/Interface/ Succeeded: s/concensus/consensus/ Succeeded: s/ a/ / Succeeded: s/charter/WebApps/ Succeeded: s/WebApps/WebApps charter/ Succeeded: s/up to speed/going/ Found Scribe: gmandyam Found ScribeNick: gmandyam Found ScribeNick: gmandyam Found ScribeNick: gmandyam Found ScribeNick: dsr Found Scribe: timeless Inferring ScribeNick: timeless Found ScribeNick: jplyle Found ScribeNick: anssik Scribes: gmandyam, timeless ScribeNicks: gmandyam, dsr, timeless, jplyle, anssik Present: Jonathan_Jeon Wonsuk_Lee Mounir_Lamouri Ming_Jin Dan Appelquist Fil_Maj Anssi_Kostiainen Jungkee_Song WARNING: No meeting title found! You should specify the meeting title like this: <dbooth> Meeting: Weekly Baking Club Meeting Agenda: http://www.w3.org/wiki/System_Applications:_1st_F2F_Meeting_Agenda#3rd_day_.2811th_April.29 Got date from IRC log name: 11 Apr 2013 Guessing minutes URL: http://www.w3.org/2013/04/11-sysapps-minutes.html People with action items:[End of scribe.perl diagnostic output]