01:00:17 RRSAgent has joined #nfc 01:00:17 logging to http://www.w3.org/2013/11/14-nfc-irc 01:00:39 meeting: NFC working group face to face 01:00:43 scribe: Dave 01:00:57 scribenick: dsr 01:01:39 Present: Jacques Bourhis, Dave Raggett, Jinsong Wang, Adam 01:01:48 jinsong has joined #nfc 01:07:26 kotakagi has joined #nfc 01:09:57 we review the editor's draft http://www.w3.org/2012/nfc/web-api/ 01:10:19 for the use cases, tap tp play to play a peer to peer game, we think this means to initiate a peer to peer game. 01:13:03 or perhaps it is better to add the peer to peer gaming as a use case for the tap to connect and handover, We would then drop the tap to play line. 01:16:20 Jinsong: what about tap to launch an app? 01:17:08 Dave: the operating system will handle that, e.g. smart poster (tag as URL) and operating system prompts and loads the browser on the URL. 01:18:13 ... but what if we have a service worker? We could then handle requests and for example launch a locally installed app. 01:20:02 Jacques: that sounds like something for future discussion. (when service worker matures) 01:21:45 Dave: it might be worth giving slightly longer descriptions for each of the use cases. 01:25:42 We seem to have copied the list of use cases from those submitted by Tran, Dzung D (发件人) to the Device API's mailing list before the NFC WG was chartered, 01:26:30 We could ask Tran directly (via email) for more details, or we could come up with some ideas ourselves and ask for feedback on the NFC WG mailing list. 01:30:07 For tap to control, there are commercial TV remotes that use Bluetooth, and so we could imagine handing over to Bluetooth and using the Bluetooth API being developed by SysApps. 01:30:30 aboyet has joined #nfc 01:31:47 Dave notes that most remotes use infrared, and in future we could envisage a W3C API for controlling infrared. 01:37:32 For tap to connect, this could be just to get the credentials to connect to a WiFi network, but more interesting is to then launch a specific service, e.g. a promotional website for the store that you just entered. 01:38:38 A related example is a wireless charging station built into tables at a cafe. Placing your phone on the icon on the table charges the phone and launches the browser at the promotional website. 01:40:43 Tap to Read could potentially inspect the contents of parts container received on factory floor and automatically initiate the parts tracking system to update counts and locations and potentially kick of other activities/processes 01:49:12 Dave: I reckon we need to expand the introduction to clarify that you are expected to have launched a web app that takes over the NFC hardware, and show how the use cases fit into this context. 01:50:20 I think that service worker will be picked up by the WebApps WG. We should then make sure that the service worker spec can handle the NFC use cases. 02:02:34 Looking at example 1, is it explained in the text that follows? 02:03:57 Dave: I think we need a very brief explanation immediately after example 1. 02:06:18 Dave: I think we need some normative references to the NFC Forum specifications for the things we depend upon. 02:07:45 We could ask the NFCForum for their advice on what normative references to make. 02:09:31 I'm taking action for adding more references on NFC Forum specs 02:10:03 Manu: you should have an acknowledgement section listing the working group members, 02:12:12 manu1 has joined #nfc 02:12:47 We can also think about informative references to external introductions to NFC and longer accounts of use cases, and primers for how to use the API. 02:16:40 Adam: how are errors dealt with? 02:17:20 Manu: for promises there are generally bail outs on errors 02:17:43 Jacques: we need to add some treatment of errors. 02:18:58 Dave: an example could be where powerOn or startPoll methods fail for some reason. 02:20:58 kotakagi has joined #nfc 02:22:27 Dave: we could include an example of catching an error (perhaps a .finally?) 02:23:12 Example 1 indeed shows how to do that, but needs some explanation. 02:24:02 We still need to enumerate just what the errors are and when they occur. 03:02:48 dsr has joined #nfc 03:04:10 jinsong has joined #nfc 03:15:22 manu1 has joined #nfc 03:21:00 manu: combine nfc things with webpayment, webpayment apis, want people to go to website, and click without credit card info 03:21:48 rrsagent, this meeting spans midnight 03:22:47 ...select what you want to buy, put your phone on it, click by the nfc or else 03:23:46 Jack has joined #nfc 03:27:51 ...want a wireless way to make it happen, not care of nfc or bluetooth 03:28:56 dsr: bluetooth low energe for beacon 03:31:54 ... recharter Geolocation, might some case to transfer info over bluetooth/wifi/nfc? 03:35:17 manu: Here are a couple of links for the Web payments work: 03:35:47 manu: Here's the introduction to the Web Payments work: https://payswarm.com/intro 03:36:16 manu: Here's the instructions on how to join the Web Payments work: https://payswarm.com/join 03:40:26 manu: here's the result of the Web Payments workshop: https://payswarm.com/minutes/2013-11-13-workshop/ 03:40:54 manu: here's the result fo the web payments workshop... minutes stored at W3C: http://lists.w3.org/Archives/Public/public-webpayments/2013Nov/0035.html 03:41:57 manu: here are all of the specs we're working on right now: https://payswarm.com/specs/ 03:44:09 manu: Here are the use cases: https://payswarm.com/specs/source/use-cases/ 03:46:38 manu: section 2.8 in use cases doc 03:48:12 ...section 2.10 automated vending 03:48:23 ... the 2 main use cases 03:51:59 manu: Two main use cases are NFC-based payment where the payment is routed through a point of sale device, such as a kiosk. 03:52:30 manu: The other use case is NFC-based payment where the payment is routed through a network-connected device, such as a mobile phone. 03:54:27 manu: Some future use cases - Laura walks into a museum and only wants to pay for the exhibits that she goes to see. When she buys her general admission ticket to the museum (which costs very little), she authorizes the museum to pull funds from her as she walks into each section of the museum. 03:55:51 manu: As she walks into a section, she can wave her phone over a checkin gate that will autocharge her on admission. She doesn't need to unlock the phone or interface with the UI since she already pre-authorized the museum to pull funds (up to a certain amount) from her. 03:56:19 manu: NFC plays a part in this, so does the geolocation API, as well as Secure Element, Web Crypto etc. 03:58:36 manu: Another one is payment for accessing a public transit system. The functionality is the same as above. Travis walks into a subway station, has previously paired his phone to the transit system, and every time they wave the device, a Web Payments request is initiated and processed. The key difference is the protocol for doing all of these purchases (at the museum, on public transit, at the 03:58:36 grocery store) all use a standard open payment protocol running over NFC. 03:59:16 manu: NFC can also be paired to a device with network connectivity. For example, a vending machine that has no network access could perform a web payment by routing the payment through the device that is making the payment (such as a mobile phone). 04:02:42 manu: In this use case, Ben walks up to the vending machine, sees a drink that he wants to buy. He selects the drink and the kiosk asks for him to place his phone on the payment area of the kiosk. The product description is delivered over NFC, he authorizes the purchase, the purchase request goes to his payment processor over his mobile connection, a digital receipt is generated, digitally signed 04:02:42 and returned to his phone. The phone then relays this digital receipt (used as a proof of purchase) via NFC back to the vending machine. This allows the vending machine to process payments over any other network in a secure manner (since the digital receipt is digitally signed and is thus very hard to spoof. The only thing the vending machine needs to implement is a mechanism to verify a digital 04:02:43 signature (and a list of signing keys that it trusts). 04:06:12 Manu: if your browser has multiple tabs open and apps open on different tabs are calling NFC power on and power off, then there needs to be some way to only turn the power off when all the pages that powered on have powered off. 04:10:22 Manu: bikeshedding, perhaps you should replaced the NDEF prefix by NFC to avoid the expectation that people reading the spec have previously read about NDEF and the NFCForum documentation. 04:14:00 Dave: we need to talk to the NFCForum about references and at the same time we should try to get a feeling for their expectations for future changes, e.g. new kinds of messages other than NDEF. 04:14:47 Manu: the interface types should fit into the broader set of W3C interfaces, so something identifying this as a NFC type would fit better. 04:21:14 Manu: you may need to have both low level and high level interfaces for less sophisticated developers. 04:22:17 Dave: library developers like the flexibility of lower level interfaces, and it is better to define high level interfaces once common patterns of usage become clear (paving the cow paths) 04:23:34 The W3C NFC API can be used to interoperate with native apps, so it makes sense to use a shared vocabulary rather than defining a W3C specific one. 04:25:32 Manu: unclear what smart posters are - some explanation would help. 04:26:28 The wording for open needs changing (open for edition --> open for editing). 04:30:45 rrsagent, set logs public 04:31:00 rrsagent, make minutes 04:31:00 I have made the request to generate http://www.w3.org/2013/11/14-nfc-minutes.html dsr 05:45:01 manu1 has joined #nfc 06:02:48 aboyet has joined #nfc 06:03:01 aboyet has left #nfc 06:05:11 jinsong has joined #nfc 06:09:55 dsr has joined #nfc 06:10:15 we resume after lunch 06:10:46 Present+ David Ezell (NACS), Nobuo Saito (W3C) 06:11:41 Jack has joined #nfc 06:18:56 David: how does the W3C NFC API do when cards with secure elements are presented? 06:20:05 Jacques tries this out using an implementation of the API under PhoneGap. The card is picked up by Android and not by the app running the W3C API. 06:21:03 Dave: I was talking with Jinsong this morning and he mentioned that Chinese companies may have use cases and requirements that aren't satisfied by NDEF formatted tags. 06:51:18 jmr has joined #nfc 06:55:30 jmr has left #nfc 07:15:23 David: the two booleans powered and polling could be abused and in any case my give rise to race conditions. It would be better to drop them. 07:16:15 ... the promise on powerOn() and startPoll() likewise make the onpoweron, onpoweroff, onpollstart and onpollstop kind of redundant. 07:18:46 Dave: okay we could drop the two booleans and the 4 events, but we would need to clarify the errors and to provide the status info with the errors. 07:18:49 jmr has joined #nfc 07:19:55 jmr has left #nfc 07:20:05 calling powerOn when power is already on should be safe and likewise for startPoll 07:23:05 David: what is the use case for powerOn without polling? If there isn't one you could make power on implicit with start polling. 07:24:47 dezell has joined #nfc 07:30:12 Dave: with multiple apps running on the phone at the same time and independently calling start and stop polling, then the onstartpolling and onstoppolling would allow an app to recover when another app stopped polling and the first app wants polling. 07:32:18 However, an alternative is for the underlying NFC manager to use a counter and if N apps started polling to decrement the count on stop polling, and only actually apply that when the count is zero. Calling stop polling when the count is zero has no effect on the count. 07:33:49 Jacques: what if an app crashes? 07:34:46 Dave: we should treat that like process file and stream handles in Linux that are closed when a process ends. 07:38:08 Jacques: I think there is an error: the readNDEF method should return an NDEFMessage not an NDEFRecord with its promise. 07:45:53 David: are there any problems if you set the event handler after calling the method? That should work, but what if it doesn't (like the onload method for img) 07:46:29 We should be explicit about queuing events in this spec. 07:46:48 ... implementations must not drop events. 07:51:58 img.src="http://somenewimage.jpg"; 07:52:13 img.onload=callbackForOnload(); 07:53:16 David: this is deplorable and should be taken up with the HTML working group. 07:56:51 Dave: what does the red x mean in the tables in section 10.2? 07:59:05 We think it means "no". 07:59:54 http://www.w3.org/2012/nfc/web-api/ 08:02:14 Our thanks to David Ezell for some excellent feedback. 08:03:30 We break for coffee and end the meeting. 08:03:49 rrsagent, make minutes 08:03:49 I have made the request to generate http://www.w3.org/2013/11/14-nfc-minutes.html dsr 08:04:25 chair: Jacques 08:04:27 rrsagent, make minutes 08:04:27 I have made the request to generate http://www.w3.org/2013/11/14-nfc-minutes.html dsr 08:04:46 rrsagent, make minutes 08:04:46 I have made the request to generate http://www.w3.org/2013/11/14-nfc-minutes.html dsr 09:01:32 JMR has joined #nfc 09:01:41 JMR has left #nfc 09:34:25 manu1 has joined #nfc