/irc-logs / w3c / #webapps / 2009-11-03 / end

Options:

  1. # Session Start: Tue Nov 03 00:00:00 2009
  2. # Session Ident: #webapps
  3. # [00:00] <timeless> a/folrm/form/
  4. # [00:00] <chaals> JS: Do you have an alternate proposal. If GuestXHR is it, how do you build a website that uses it nicely?
  5. # [00:00] * timeless typos a replace :(
  6. # [00:00] <chaals> ... imagine websites would be hesitatnt to ask users to copy strings from one place to another
  7. # [00:00] <timeless> s/hesitat/hesita/
  8. # [00:01] <chaals> TC: A lot of them are possible that look pretty much like existing things. There are existing UIs that are inherently vulnerable to clickjacking, but we could use others which are not vulnerable.
  9. # [00:01] <chaals> MJS: Think the 2-site mechanism is the thing we are interested in.
  10. # [00:02] <chaals> ack sicking
  11. # [00:02] * Zakim sees rob, arun on the speaker queue
  12. # [00:03] <chaals> TC: Would like to see the problem being laid out for existing approach, and I will explain how to fix it
  13. # [00:03] * ArtB mjs example: http://lists.w3.org/Archives/Public/public-webapps/2009OctDec/0350.html
  14. # [00:03] <chaals> ACTION: jonas write a very concrete example of a problem
  15. # [00:03] * trackbot noticed an ACTION. Trying to create it.
  16. # [00:03] * RRSAgent records action 3
  17. # [00:03] <trackbot> Created ACTION-433 - Write a very concrete example of a problem [on Jonas Sicking - due 2009-11-09].
  18. # [00:03] <chaals> ACTION: Tyler to explain how to do it with guestXHR in a nice UI
  19. # [00:03] * trackbot noticed an ACTION. Trying to create it.
  20. # [00:03] <trackbot> Sorry, couldn't find user - Tyler
  21. # [00:03] * RRSAgent records action 4
  22. # [00:04] <ArtB> mjs' example: http://lists.w3.org/Archives/Public/public-webapps/2009OctDec/0350.html
  23. # [00:04] <chaals> ack rob
  24. # [00:04] * Zakim sees arun on the speaker queue
  25. # [00:04] * Quits: darobin (robin@72.254.116.7) (Ping timeout)
  26. # [00:05] <chaals> Rob: Fundamental problem is if manager can be asked to do something by another party, with the authority of the user in the middle.
  27. # [00:05] <chaals> ... question is whether CORS encourages that behaviour
  28. # [00:05] <chaals> [+1]
  29. # [00:05] <tlr> +1 to "are people encouraged" as the key question
  30. # [00:05] <chaals> ... I am not convinced we are encouraging this behavious with CORS. Are we making it any more likely?
  31. # [00:05] <timeless> s/vous/vour/
  32. # [00:06] <chaals> MM: Problem is not encouraging lack of checking, problem is creating a demand for checking that cannot actually be met.
  33. # [00:06] <chaals> ... if authority is carried along then there is no problem.
  34. # [00:07] <chaals> ... Existence of CORS doesn't force servers to make decisions based on origin. If servers make the decision based on extra information carried alongside.
  35. # [00:07] <chaals> Rob: CORS doesn't create the vulnerability, it creates a communication path.
  36. # [00:07] * Quits: Kai (chatzilla@72.254.114.142) (Ping timeout)
  37. # [00:07] <chaals> MM: Creates an conditional path. if it were unconditional there wouldn't be a problem.
  38. # [00:07] <chaals> AvK: It needs to be conditional
  39. # [00:08] <chaals> MM: And therefore it is inherently an access control problem.
  40. # [00:08] <chaals> AR: zakim, close the queue
  41. # [00:08] <chaals> zakim, close the queue
  42. # [00:08] <Zakim> ok, chaals, the speaker queue is closed
  43. # [00:08] * Joins: Kangchan (Kangchan@72.254.83.174)
  44. # [00:08] <tlr> q+
  45. # [00:08] * Zakim whispers to tlr that the speaker queue has been closed
  46. # [00:09] * Parts: Kangchan (Kangchan@72.254.83.174)
  47. # [00:09] <chaals> AR: You have shown a model where Confused Deputy can be createed. I think there are clear scenarios shown where it cannot be a problem. There are use cases CORS addresses that solve badnesses people used in the past.
  48. # [00:09] <chaals> ... there is some case to draw these examples and explain them as bad design.
  49. # [00:09] <chaals> TC: Yes. Ditto HTTP auth, but we saw people actually used it in a way that led to problems, and we suspect that CORS will be used widely to produce such problems.
  50. # [00:10] <chaals> DS: Let's say we keep it as is, and describe carefully how it should not be used and explain the problems.
  51. # [00:10] <chaals> ... nobody wants to create insecure interfaces. Can we show them why not to do A, and why to do B instead, would that work?
  52. # [00:10] <chaals> zakim, open queue
  53. # [00:10] <Zakim> ok, chaals, the speaker queue is open
  54. # [00:10] <chaals> q+ tlr
  55. # [00:10] * Zakim sees arun, tlr on the speaker queue
  56. # [00:11] <chaals> zakim, close queue
  57. # [00:11] <Zakim> ok, chaals, the speaker queue is closed
  58. # [00:11] * Quits: mmani (c6980d43@128.30.52.43) (Quit: CGI:IRC (Ping timeout))
  59. # [00:11] <arun> ack arun
  60. # [00:11] * Zakim sees tlr on the speaker queue
  61. # [00:11] <chaals> MM: yes...
  62. # [00:11] * tlr thx chaals
  63. # [00:11] <chaals> ... point is to enable people to write applications that are useful and secure, and that requires education, any solution we have will require that.
  64. # [00:12] <chaals> ... The question is not whether you can make things secure, the question is whether you can modularise sensible decisions and then compose them to make problems, you have created a fail.
  65. # [00:12] <chaals> DS: There are inherent composition problems. Can we forestall those in practice?
  66. # [00:13] * ArtB note to Chaals: I need to start chairing a widgets meeting at the bottom of the hour; will leave here in a few mins ...
  67. # [00:13] <mjs> q+
  68. # [00:13] * Zakim whispers to mjs that the speaker queue has been closed
  69. # [00:14] <mjs> awww
  70. # [00:14] <chaals> MM: If the token is passed along with the request, and origin is only used for forensics (logging who asked for what) then you don't have a problem because access came from the right token, and you have forensics to find out where bad requests are coming from, you are reacting to having allowed inappropriate access, and then CD is lesser evil.
  71. # [00:16] <chaals> TLR: Hear the argument a lot that X is a bad application design decision - and that is true. Often they are poor decisions under composition. THinking through, what kind of services will use CORS? We will see relatively generic services - data bus, message bus, etc. These may well permit access to other apps, based on a mix of CORS and maybe others. And those sound like things that will get composed and therefore lead to composition problems.
  72. # [00:17] <chaals> ... market isn't just working in tight coordination, but people making building block services, we get into scary teritory. And I am starting to be convinced by Mark and Tyler's argument - I think we need to be really careful of it.
  73. # [00:18] <chaals> CMN: We will wrap here, because we are not getting to resolution
  74. # [00:18] <chaals> ... will look for more time to do this tomorrow
  75. # [00:18] * Quits: ArtB (48fe3886@128.30.52.43) (Quit: CGI:IRC (Ping timeout))
  76. # [00:19] <chaals> DS: Can people try to prepare clear presentations for tomorrow?
  77. # [00:19] <chaals> AvK: Would be good if they can be very concrete.
  78. # [00:19] <chaals> MM: Didn't see in the draft that a requirement is to avoid server-server communication... is that an understood requirement?
  79. # [00:19] <chaals> AvK: Yes...
  80. # [00:20] * Quits: Magnus (chatzilla@72.254.111.212) (Ping timeout)
  81. # [00:20] * Joins: mmani (c6980d43@128.30.52.43)
  82. # [00:21] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  83. # [00:21] * Quits: weinig (weinig@72.254.116.49) (Quit: weinig)
  84. # [00:27] * Joins: Marcos (Marcos@72.254.60.247)
  85. # [00:27] * Quits: johnnyg (johnnyg@216.239.45.4) (Client exited)
  86. # [00:27] * Joins: johnnyg (johnnyg@216.239.45.4)
  87. # [00:33] * Quits: Marcos (Marcos@72.254.60.247) (Quit: Marcos)
  88. # [00:35] * Joins: ArtB (48fe3886@128.30.52.43)
  89. # [00:35] * Joins: darobin (robin@72.254.116.7)
  90. # [00:37] * Joins: Magnus (chatzilla@72.254.111.212)
  91. # [00:38] * timeless is now known as timely
  92. # [00:38] * timeless_mbp is now known as timeless
  93. # [00:39] * Parts: Magnus (chatzilla@72.254.111.212) (I'm not here right now.)
  94. # [00:39] * Joins: weinig (weinig@72.254.116.49)
  95. # [00:39] * Joins: Kai (chatzilla@72.254.114.142)
  96. # [00:40] <chaals> Scribe: Sam
  97. # [00:40] <chaals> Topic: Views
  98. # [00:40] <chaals> ScribeNick: weinig
  99. # [00:41] <weinig> anne: there are a bunch of spec that refer to views
  100. # [00:41] <weinig> anne: rendered view/default view
  101. # [00:41] <weinig> anne: in reality, all implementations always return the default views
  102. # [00:41] <weinig> anne: we should kill the concept of views
  103. # [00:41] <weinig> shepazu: inventor of views thinks it was a bad idea
  104. # [00:42] <weinig> jonas: mozilla has support but it is a pain in the buttox
  105. # [00:42] <weinig> shepazu: does anyone know of any implementations
  106. # [00:43] <weinig> jonas: mozilla uses if for print preview, but it is not accessible from the dom
  107. # [00:44] <weinig> maciej: concept of views seems unnecessary, but there APIs we need to keep (AbstractView, etc)
  108. # [00:44] <weinig> maciej: getComputedStyle
  109. # [00:44] <weinig> anne: we should keep the APIs, but get rid of the concept
  110. # [00:45] <weinig> anne: offsetLeft, etc, will all be relative to the one true view now
  111. # [00:45] <weinig> shepazu: I agree completely
  112. # [00:48] <chaals> [discussion of details about which specs and how we organise them]
  113. # [00:49] <weinig> maciej: UI events need a view
  114. # [00:49] <weinig> RESOLUTION: Remove concept of views
  115. # [00:50] <weinig> MikeSmith: what about DOM Level 2?
  116. # [00:50] <weinig> chaals: we should issue an erratum
  117. # [00:50] * Quits: ArtB (48fe3886@128.30.52.43) (Quit: CGI:IRC (Ping timeout))
  118. # [00:51] <weinig> Paul: we can issue a note on the existing spec
  119. # [00:51] <weinig> Paul: for the TR page
  120. # [00:51] <weinig> chaals: we want to point out that there is an "untruth" in the DOM Level 2 spec which people are reading
  121. # [00:52] <chaals> SW: I implemented some stuff in CSSOM for fun, and we found that CaretRangeForPoint is less useful than we would like
  122. # [00:52] <chaals> s/For/fROM/
  123. # [00:53] * anne and lowercase c, yadayada
  124. # [00:53] <chaals> ... one of the constraints is that it is only over what would be editable. For areas that look/are selectable, they don't necessarily have a DOM range.
  125. # [00:53] <chaals> ... Use case was dictionary popup - want to know what word you are over.
  126. # [00:53] <chaals> DS: Ditto in IMEs
  127. # [00:54] * Quits: pererik (pe@72.254.62.138) (Client exited)
  128. # [00:54] <chaals> AvK: Maciej proposed to change to CaretPositionFrom Point, which is an offset integer from the current node (number of characters...)
  129. # [00:54] * chaals Scribe??
  130. # [00:55] <weinig> chaals: in the case where the parent is an element, it can be an awkward API
  131. # [00:55] * Joins: dom (dom@128.30.52.169)
  132. # [00:55] <chaals> s/chaals/maciej/
  133. # [00:55] <weinig> eek
  134. # [00:55] <timeless> ACTION: ArtB to notify Widgets WG that they have 2 weeks to review WARP
  135. # [00:55] * Quits: arve (arve@213.236.208.22) (Ping timeout)
  136. # [00:55] * trackbot noticed an ACTION. Trying to create it.
  137. # [00:55] * RRSAgent records action 5
  138. # [00:55] <trackbot> Created ACTION-434 - Notify Widgets WG that they have 2 weeks to review WARP [on Arthur Barstow - due 2009-11-09].
  139. # [00:55] * Joins: pererik (pe@72.254.62.138)
  140. # [00:56] <weinig> maciej: there is no way to know all the of the names of the form controls
  141. # [00:56] <weinig> tl: can css change things into form controls
  142. # [00:57] <weinig> maciej: there is css-appearance
  143. # [00:57] <weinig> maciej: there is svg:textarea
  144. # [00:57] <weinig> anne: that has ranges inside it if is editable
  145. # [00:59] <weinig> maciej: 3 cases, 1) if you hit a text node: the containing node is the text node, the offset is the offset into the text node
  146. # [00:59] * Joins: johnnyg_ (johnnyg@216.239.45.4)
  147. # [00:59] <weinig> maciej: 2) if you hit a form control, the container is the control, the offset is the offset in the control
  148. # [01:00] * Quits: aroben (aroben@71.58.77.15) (Connection reset by peer)
  149. # [01:00] <chaals> SW: With range ability to get position you can get a bounding box of the collapsed range
  150. # [01:00] * Quits: johnnyg_ (johnnyg@216.239.45.4) (Quit: johnnyg_)
  151. # [01:01] <weinig> maciej: 3) if you hit an element, you get the element as the container, the offset is the range offset
  152. # [01:01] <weinig> anne: the caretPosition object should have a range attribute, which is null for form controls
  153. # [01:02] * Quits: johnnyg (johnnyg@216.239.45.4) (Ping timeout)
  154. # [01:03] <chaals> SW: do we want to make stuff aware of CSS transforms, or add a new set of APIs that return quads based on 2d transforms except giving quads?
  155. # [01:03] <weinig> anne: dean (apple) asked me about that, people from apple have been asking me about it as well
  156. # [01:05] <weinig> maciej: returning the bounding box seems like the most sensible thing
  157. # [01:05] <weinig> jonas: that is what is done for svg
  158. # [01:05] * Quits: Vladimir (chatzilla@72.254.59.5) (Ping timeout)
  159. # [01:05] <weinig> maciej: but we should have quad apis as well
  160. # [01:06] <weinig> maciej: maybe we only need 3 points, maybe we want 4 for perspective transforms
  161. # [01:06] <weinig> maciej: math is hard
  162. # [01:06] * Joins: Nikunj (Adium@72.254.61.241)
  163. # [01:06] <weinig> s/jonas/anne/
  164. # [01:06] * Joins: johnnyg (johnnyg@216.239.45.4)
  165. # [01:07] * Joins: Marcos (Marcos@72.254.60.247)
  166. # [01:08] * Joins: Travis (48fe7126@128.30.52.43)
  167. # [01:09] <weinig> maciej: all we really need is a way to take the bounding box and convert it page space
  168. # [01:09] <anne> http://www.w3.org/TR/2009/WD-css3-2d-transforms-20090320/#dom-interfaces
  169. # [01:09] * Joins: tlr (tlr@128.30.52.169)
  170. # [01:10] <weinig> maciej: we need a way to convert a point from node to page space (and vice-versa) as well
  171. # [01:10] <weinig> anne: what is the coordinate system of the node
  172. # [01:10] <weinig> chaals: it is the point in the transformed node
  173. # [01:10] <weinig> chaals does something with his hands
  174. # [01:10] * Zakim whispers to weinig that the speaker queue has been closed
  175. # [01:10] <chaals> zakim, open queue
  176. # [01:10] <Zakim> ok, chaals, the speaker queue is open
  177. # [01:11] * Joins: Nikunj1 (Adium@72.254.61.241)
  178. # [01:11] * Quits: Nikunj (Adium@72.254.61.241) (Connection reset by peer)
  179. # [01:11] <weinig> anne: we should probably try and move these apis away from the window if we can
  180. # [01:12] * Quits: soonho (soonho@72.254.114.255) (Quit: soonho)
  181. # [01:12] <chaals> Proposed RESOLUTION: Anne will (get help from some clever guy at Apple to) spec up the ability to get the bounding box, under transformations, and the bounding box of the transformed quad within the page
  182. # [01:12] * Joins: arve (arve@212.251.179.162)
  183. # [01:13] <chaals> RESOLUTION: Anne will (get help from some clever guy at Apple to) spec up the ability to get the bounding box, under transformations, and the bounding box of the transformed quad within the page
  184. # [01:13] <chaals> adjourned
  185. # [01:13] <weinig> adjourned
  186. # [01:13] <chaals> s/adjourned/in recess/
  187. # [01:14] <chaals> s/adjourned/in recess/
  188. # [01:14] * Quits: Nikunj1 (Adium@72.254.61.241) (Ping timeout)
  189. # [01:16] * Quits: Kai (chatzilla@72.254.114.142) (Ping timeout)
  190. # [01:17] * Quits: pererik (pe@72.254.62.138) (Ping timeout)
  191. # [01:18] * Quits: Marcos (Marcos@72.254.60.247) (Quit: Marcos)
  192. # [01:19] * Quits: mmani (c6980d43@128.30.52.43) (Quit: CGI:IRC)
  193. # [01:23] * Joins: soonho (soonho@72.254.114.255)
  194. # [01:23] * Joins: Marcos (Marcos@72.254.60.247)
  195. # [01:28] * Quits: Vagner_W3C_Brasil (chatzilla@72.254.81.150) (Ping timeout)
  196. # [01:30] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
  197. # [01:30] * Quits: timeless (timeless@72.254.57.15) (Quit: timeless)
  198. # [01:31] * Quits: Marcos (Marcos@72.254.60.247) (Quit: Marcos)
  199. # [01:33] * Quits: Travis (48fe7126@128.30.52.43) (Quit: CGI:IRC (Ping timeout))
  200. # [01:33] * Joins: timeless_mbp (timeless@72.254.57.15)
  201. # [01:34] * Joins: Kai (chatzilla@72.254.114.142)
  202. # [01:38] * Joins: Nikunj (Adium@148.87.1.171)
  203. # [01:41] * Joins: Marcos (Marcos@72.254.60.247)
  204. # [01:41] * Joins: ArtB (48fe3886@128.30.52.43)
  205. # [01:51] * Quits: johnnyg (johnnyg@216.239.45.4) (Quit: johnnyg)
  206. # [01:52] * Joins: shepazu (schepers@128.30.52.169)
  207. # [01:53] * Quits: shepazu (schepers@128.30.52.169) (Client exited)
  208. # [01:54] * Parts: soonho (soonho@72.254.114.255)
  209. # [01:58] * Joins: shepazu (schepers@128.30.52.169)
  210. # [02:01] <chaals> Scribe: Maciej
  211. # [02:01] <mjs> avk: ISSUE-33 - should re-entrance be allowed for readystatechange
  212. # [02:01] <chaals> ScribeNick: mjs
  213. # [02:01] <mjs> ISSUE-33
  214. # [02:02] <mjs> js: so are you not allowed to call open? does that throw an exception?
  215. # [02:02] <mjs> avk: in IE yes
  216. # [02:02] <shepazu> trackbot, start telcon
  217. # [02:02] * trackbot is starting a teleconference
  218. # [02:02] <trackbot> RRSAgent, make logs public
  219. # [02:02] <RRSAgent> I have made the request, trackbot
  220. # [02:02] <trackbot> Zakim, this will be WAPP
  221. # [02:02] <Zakim> I do not see a conference matching that name scheduled within the next hour, trackbot
  222. # [02:02] <trackbot> Meeting: Web Applications Working Group Teleconference
  223. # [02:02] <trackbot> Date: 02 November 2009
  224. # [02:02] <shepazu> ISSUE-33?
  225. # [02:02] * trackbot getting information on ISSUE-33
  226. # [02:02] <trackbot> ISSUE-33 -- Shoulld re-entrance be allowed foronreadystatechange? -- OPEN
  227. # [02:02] <trackbot> http://www.w3.org/2008/webapps/track/issues/33
  228. # [02:02] <mjs> tl: if you open from a readystatechange handler on the same object?
  229. # [02:02] <mjs> js: yes:
  230. # [02:02] <mjs> tl: I don't know what IE does
  231. # [02:03] <mjs> avk: other browsers allow it, and restricting it would be weird
  232. # [02:03] <mjs> tl; sounds like it's a synchronous event allowing re-entrancy
  233. # [02:04] <mjs> js: my recollection is it was more a concern with later readystates like 3 or 4
  234. # [02:04] <mjs> js: I know we just allow anything anywhere, I don't remember what IE does
  235. # [02:05] <mjs> ACTION: travis To research what IE does for readystate re-entry (for ISSUE-33)
  236. # [02:05] * trackbot noticed an ACTION. Trying to create it.
  237. # [02:05] * RRSAgent records action 6
  238. # [02:05] <trackbot> Created ACTION-436 - Research what IE does for readystate re-entry (for ISSUE-33) [on Travis Leithead - due 2009-11-10].
  239. # [02:05] <mjs> sw: I think readystatechange is async
  240. # [02:05] <mjs> js: not always
  241. # [02:07] <mjs> avk: (explains details)
  242. # [02:09] <mjs> ISSUE-103
  243. # [02:09] <mjs> ISSUE-103?
  244. # [02:09] * trackbot getting information on ISSUE-103
  245. # [02:09] <trackbot> ISSUE-103 -- accessing status/statusText/getResponseHeader()/getAllResponseHeaders() -- RAISED
  246. # [02:09] <trackbot> http://www.w3.org/2008/webapps/track/issues/103
  247. # [02:09] <mjs> avk: the issue is that IE throws when certain methods are called in a particular state
  248. # [02:11] <mjs> avk: not throwing is generally better
  249. # [02:11] <mjs> tl: unless there's a really good reason to throw
  250. # [02:13] * Quits: mmielke (mmielke@72.254.83.160) (Ping timeout)
  251. # [02:13] <mjs> js: it appears Firefox never throws for status but it might throw more often for statusText
  252. # [02:14] <mjs> js: appears to throw a random number
  253. # [02:15] <mjs> sw: we added throwing to match other browsers (the minimum)
  254. # [02:15] <mjs> js: why did you change, was it b/c websites complained?
  255. # [02:15] <mjs> sw: I don't remember, it might have been to change the spec
  256. # [02:16] <mjs> *general mumbling*
  257. # [02:16] <mjs> *awkward silence*
  258. # [02:16] <mjs> ...
  259. # [02:17] <mjs> avk: what are we going to do - change and not throw?
  260. # [02:18] <mjs> js: I'd like to err on the side of not throwing
  261. # [02:19] <mjs> RESOLUTION: for ISSUE-103, don't throw
  262. # [02:19] <mjs> the other bit for XHR1 was the test suite
  263. # [02:19] <mjs> ^ avk:
  264. # [02:19] <mjs> avk: it would be nice to have some help at some point
  265. # [02:20] <mjs> fo: I've got some notes which I still owe you on that
  266. # [02:20] <mjs> jr: do you have mark nottingham's tests? do they cover different things?
  267. # [02:20] <mjs> avk: probably
  268. # [02:20] <mjs> jr: I think he's got things checking caching
  269. # [02:21] <mjs> avk: the test suite has quite a lot of coverage, especially security stuff and resolving URLs
  270. # [02:21] <mjs> avk: there's definitely more things that can be tested
  271. # [02:21] <mjs> cmn: which things are those
  272. # [02:21] <mjs> avk: methods probably... http verbs
  273. # [02:21] <mjs> avk: there's a bunch of side effects that are not all covered yet, e.g. when you invoke open()
  274. # [02:22] <mjs> avk: *more technobabble about complicated steps*
  275. # [02:22] <mjs> avk: I don't think there's tests for Accept, Accept-Language, conditional GET
  276. # [02:23] <mjs> mjs: are the tests in cvs?
  277. # [02:23] <anne> http://tc.labs.opera.com/apis/XMLHttpRequest/
  278. # [02:23] <mjs> avk: not currently
  279. # [02:23] <anne> http://tc.labs.opera.com/svn/
  280. # [02:24] <mjs> avk: I don't really like working on tests
  281. # [02:24] <mjs> ds: Anne, what's your job title?
  282. # [02:24] <mjs> avk: I work on specs!
  283. # [02:25] <mjs> cmn: any volunteers to write tests?
  284. # [02:26] * Joins: johnnyg (johnnyg@216.239.45.4)
  285. # [02:26] <mjs> Scribe: Nikunj
  286. # [02:26] <Nikunj> avk: Starting on XHR2
  287. # [02:26] <chaals> Topic: XHR2
  288. # [02:26] <Nikunj> Issue 104?
  289. # [02:26] <Nikunj> No serialization defined for structured clones
  290. # [02:27] <Nikunj> avk: Use multi-part MIME for structured clones
  291. # [02:27] <Nikunj> ack: may be JSON support at some time
  292. # [02:27] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
  293. # [02:27] <sicking> ISSUE-104?
  294. # [02:27] * trackbot getting information on ISSUE-104
  295. # [02:27] <trackbot> ISSUE-104 -- supporting structured clones -- RAISED
  296. # [02:27] <trackbot> http://www.w3.org/2008/webapps/track/issues/104
  297. # [02:27] <Nikunj> s/ack:/avk/
  298. # [02:28] <Nikunj> avk: Close 104 for now and revisit when we have a serialization format
  299. # [02:28] <Nikunj> avk: structured clones can include certain data types beyond JSON
  300. # [02:28] <Nikunj> avk: such as images and files
  301. # [02:28] <Nikunj> mw: used for local storage, and others
  302. # [02:29] <Nikunj> avk: used also in post message
  303. # [02:29] * Nikunj in simpledb as well
  304. # [02:29] <Nikunj> avk: waiting until file API to add file upload
  305. # [02:29] <Nikunj> avk: also waiting to append file blobs
  306. # [02:30] <Nikunj> avk: browser would send multipart form-data when you do send
  307. # [02:30] <Nikunj> avk: similar to raw html forms no
  308. # [02:30] <Nikunj> avk: if we can support this API then we don't need a FileList in the API
  309. # [02:30] <Nikunj> avk: could be Jeremy Orlow
  310. # [02:30] * Quits: ArtB (48fe3886@128.30.52.43) (Quit: CGI:IRC (EOF))
  311. # [02:31] <Nikunj> avk: append files or strings on formdata object
  312. # [02:31] <Nikunj> so that we don't need a method on XHR
  313. # [02:32] <Nikunj> avk: its been requested to serialize an html form and pass it to XHR
  314. # [02:32] <Nikunj> avk: so you can asynchronously upload it
  315. # [02:32] <Nikunj> avk: others requested - blob
  316. # [02:32] <Nikunj> avk: WebKit supports FileList
  317. # [02:33] <Nikunj> ar: File is supported in Mozilla
  318. # [02:33] <Nikunj> sw: WebKit also supports a single File
  319. # [02:33] <Nikunj> jonas: do you send the file name anywhere?
  320. # [02:33] <Nikunj> avk: no
  321. # [02:33] <Nikunj> sw: no
  322. # [02:33] <Nikunj> avk: how would you?
  323. # [02:33] <Nikunj> jonas: use some kind of header
  324. # [02:33] <Nikunj> avk: authors can add a headers
  325. # [02:33] <Nikunj> sw: we don't
  326. # [02:34] <Nikunj> arun: send a blob and a hypothetical object
  327. # [02:34] <Nikunj> avk: send would be extended to accept Blob and FormData
  328. # [02:34] <arun> where FormData = hypothetical object
  329. # [02:34] <Nikunj> avk: For FormData, the UA would set the content-type header if the author did not set it
  330. # [02:35] <Nikunj> arun: Is Hixie writing FormData?
  331. # [02:35] <Nikunj> avk: No I will do it - a small edit
  332. # [02:35] <Nikunj> arun: FormData append would accept a Blob?
  333. # [02:35] <Nikunj> avk: It would
  334. # [02:36] <Nikunj> avk: It seems that this would address several requests
  335. # [02:36] <Nikunj> arun: It seems to - a requirement that was not adequately addressed by FileAPI
  336. # [02:36] <Nikunj> avk: MS has a proprietary extension exposed to VBScript called ResponseBody that returns a byte array or byte stream
  337. # [02:37] <Nikunj> avk: we could use it or rename it to ResponseBlob
  338. # [02:37] <Nikunj> avk: Unless MS cares for it
  339. # [02:37] <Nikunj> adrian: we would like to carry on using it
  340. # [02:37] <Nikunj> mjs: It should not be a blob, but rather a byte array
  341. # [02:37] * Quits: DanC (connolly@128.30.52.169) (Client exited)
  342. # [02:38] <Nikunj> mjs: Blob offers only async, and if the data is already loaded then array is better
  343. # [02:38] <Nikunj> mjs: should not do another async
  344. # [02:38] <Nikunj> jonas: only thing is if you are loading a big thing, then ua will be forced to keep it in memory
  345. # [02:38] <Nikunj> mjs: if loading something bigger than address space, then store it
  346. # [02:38] <Nikunj> jonas: not looking for large streams
  347. # [02:39] <Nikunj> mjs: ideally ua should download large files through streaming model
  348. # [02:40] <Nikunj> mjs: assuming its a file object stream to a file
  349. # [02:40] * Quits: mjs (mjs@72.254.93.235) (Quit: mjs)
  350. # [02:40] <Nikunj> avk: and then access the file
  351. # [02:40] <Nikunj> avk: responseText already loads in to memory
  352. # [02:40] <Nikunj> mjs: turn off storing in memory if its large
  353. # [02:40] * Quits: MikeSmith (MikeSmithX@mcclure.w3.org) (Quit: Tomorrow to fresh woods, and pastures new.)
  354. # [02:40] <Nikunj> avk: need ECMA to figure out a binary type array
  355. # [02:40] <Nikunj> avk: should not be that hard - like image data
  356. # [02:41] <Nikunj> mjs: easy to make complicated
  357. # [02:41] <Nikunj> mjs: if its immutable, then it is easy to use the raw bytes as backing store
  358. # [02:41] <Nikunj> mjs: no thread safety issue even if passed to workers
  359. # [02:41] <Nikunj> mjs: immutable is harder to modify
  360. # [02:42] <Nikunj> mjs: most APIs make two versions of APIs available - mutable and not
  361. # [02:42] <Nikunj> avk: ImageData is immutable
  362. # [02:42] <Nikunj> mjs: backing store is canvas
  363. # [02:42] <Nikunj> jonas: byte array building API might be a good way to mutate ResponseBlob
  364. # [02:42] <Nikunj> jonas: look forward to mjs' proposal
  365. # [02:43] <Nikunj> avk: response thing and new things for sending out are new items
  366. # [02:43] * Quits: johnnyg (johnnyg@216.239.45.4) (Quit: johnnyg)
  367. # [02:43] <Nikunj> avk: timeout proposal is also new
  368. # [02:43] <Nikunj> avk: ontimeout listener for milliseconds timeout
  369. # [02:43] <Nikunj> avk: if the server doesn't respond, then do the abort thing and dispatch timeout event
  370. # [02:44] <Nikunj> avk: timeout needs to be sorted out
  371. # [02:44] <Nikunj> jonas: two arguments - sync XHR doesn't allow timeout
  372. # [02:44] <Nikunj> jonas: not allowing timeout doesn't preclude users from using it
  373. # [02:44] <Nikunj> avk: use workers
  374. # [02:44] <Nikunj> jonas: provide timeouts so that user experience is slightly better
  375. # [02:45] <Nikunj> avk: are you providing them?
  376. # [02:45] <Nikunj> jonas: yes
  377. # [02:45] <Nikunj> avk: timeouts are something that you should certainly have
  378. # [02:45] <Nikunj> jonas: almost everyone using XHR uses it anyway, so provide a convenience function
  379. # [02:45] <Nikunj> jonas: MS added it to XDR?
  380. # [02:45] <Nikunj> adrian: yes
  381. # [02:45] <Nikunj> sam: is it a default or an attribute?
  382. # [02:45] <Nikunj> adrian: attribute
  383. # [02:46] <Nikunj> avk: what does it do on getting?
  384. # [02:46] <Nikunj> jonas: its a set only
  385. # [02:46] <Nikunj> avk: does such a thing exist?
  386. # [02:46] <Nikunj> travis: doing a quick test
  387. # [02:46] <Nikunj> jonas: what's a good default value
  388. # [02:46] <Nikunj> travis: or do you timeout at all
  389. # [02:46] <Nikunj> adrian: if not set, it doesn't
  390. # [02:47] <Nikunj> adrian: so the behavior is not changed
  391. # [02:47] <Nikunj> adrian: XHR also has the like named attribute
  392. # [02:47] <Nikunj> jonas: very inclined to add the attribute to XHR2 spec
  393. # [02:47] * Joins: Travis (d8341cc5@128.30.52.43)
  394. # [02:48] <Nikunj> sam: concern - putting in the hands of the user, what is the stall for the ua?
  395. # [02:48] <Nikunj> sam: 10 ms is OK or 100 is OK?
  396. # [02:48] <Nikunj> sam: in the past any amount was OK
  397. # [02:48] <Travis> Reading IE's timeout property (before setting) returns -1.
  398. # [02:49] <Nikunj> avk: testing in different conditions, like a slow network, may find odd behavior but the other person in a good one doesn't
  399. # [02:49] <Nikunj> adrian: common use cases are sites doing click tracking, trying to capture when someone clicked a link
  400. # [02:50] <Nikunj> adrian: OK with losing data when a request is not fired in the timeout
  401. # [02:50] <Nikunj> adrian: here's a request to make and if the request doesn't respond we give up
  402. # [02:50] <Nikunj> avk: better option available - html5 ping attribute
  403. # [02:51] <Nikunj> adrian: there are other issues being raised, that make the option controversial and this WG is not the right forum to discuss
  404. # [02:51] <Nikunj> avk: not opposed to adding it, concerned that it will be abused
  405. # [02:51] <Nikunj> jonas: in what way?
  406. # [02:51] <Nikunj> avk: use sync more
  407. # [02:51] <Nikunj> jonas: what will help most is a test suite guide
  408. # [02:52] <Nikunj> jonas: go through the spec and not follow it closely, although well followed,
  409. # [02:52] <Nikunj> jonas: edge cases are where we differ, otherwise everyone is close
  410. # [02:52] <Nikunj> avk: but that makes it look pretty broken
  411. # [02:52] <Nikunj> jonas: not material adding new features to newer versions to getting bugs fixed
  412. # [02:53] <Nikunj> avk: explicit constructor for XO requests
  413. # [02:53] <Nikunj> jonas: that conversation is sort of CORS-existential one
  414. # [02:53] <Nikunj> avk: agreed
  415. # [02:54] <Nikunj> jonas: interesting idea to have a totally anonymous XHR object, both for X-S and S-S request
  416. # [02:54] <Nikunj> travis: which is XDR
  417. # [02:54] <Nikunj> jonas: but that sends Origin
  418. # [02:55] <Nikunj> avk: proposed resolution on timeouts for XHR2
  419. # [02:55] <Nikunj> avk: to add
  420. # [02:56] <Nikunj> nikunj: would we do it to file?
  421. # [02:56] * Joins: ArtB (48fe3886@128.30.52.43)
  422. # [02:56] * Quits: Travis (d8341cc5@128.30.52.43) (Quit: CGI:IRC (EOF))
  423. # [02:56] <Nikunj> jonas: not required to follow a single style in general
  424. # [02:56] <Nikunj> jonas: hesitant to draw a connection?
  425. # [02:56] <Nikunj> adrian: a case to be made for XHR things to be repeated elsewhere
  426. # [02:56] <Nikunj> adrian: timeout is not one of those things
  427. # [02:57] <Nikunj> adrian: network requests cause timeouts to matter
  428. # [02:57] <Nikunj> adrian: it seems less likely to need them for files
  429. # [02:57] <Nikunj> jonas: much less likely for a file request to time out
  430. # [02:57] <Nikunj> sam: network files time out
  431. # [02:57] <Nikunj> adrian: edge case
  432. # [02:58] <Nikunj> avk: also need resolution on FormData
  433. # [02:58] <Nikunj> jonas: iffy about that
  434. # [02:58] <Nikunj> jonas: seems weird to create a new object for creating an object only to send to another one
  435. # [02:58] <Nikunj> avk: not ugly, can reuse it
  436. # [02:58] <Nikunj> sam: websockets may also want to do it
  437. # [02:58] <Nikunj> jonas: really?
  438. # [02:59] <Nikunj> everyone: laughing loud
  439. # [02:59] <Nikunj> chaals: consensus?
  440. # [02:59] <Nikunj> sam: I don't object, not excited
  441. # [02:59] <Nikunj> jonas: it helps to abort a connection if it takes too long
  442. # [02:59] <Nikunj> sam: agreed, but not a strong enough reason because that might be only one of the ways to do it
  443. # [03:00] <Nikunj> jonas: could use setTimeout
  444. # [03:00] <Nikunj> jonas: risk that people may use sync XHR more
  445. # [03:00] <Nikunj> jonas: we fired timeouts during syncXHR
  446. # [03:00] <Nikunj> jonas: fallback was to wait longer
  447. # [03:00] <Nikunj> jonas: not ideal
  448. # [03:00] <Nikunj> jonas: some people may never switch away from sync XHR?
  449. # [03:01] <Nikunj> adrian: we shipped timeouts
  450. # [03:01] <Nikunj> adrian: good idea
  451. # [03:01] <Nikunj> chaals: any objections?
  452. # [03:01] <Nikunj> sam: risks in either direction
  453. # [03:02] <Nikunj> adrian: also supported for sync XHR
  454. # [03:02] <Nikunj> RESOLUTION: Anne to put timeout attribute in XHR
  455. # [03:02] <Nikunj> avk: Proposal to overload send for Blob objects
  456. # [03:02] <Nikunj> avk: FormData contains a constructor and accepts either Blob or DOMString
  457. # [03:03] <Nikunj> which serializes as multipart/form-data
  458. # [03:03] <Nikunj> sam: support strongly Send Blob with File
  459. # [03:03] <Nikunj> sam: other one need to see a proposal and remove it if that looks terrible
  460. # [03:03] <Nikunj> jonas: feels same way
  461. # [03:03] <anne> http://lists.w3.org/Archives/Public/public-webapps/2009OctDec/0244.html
  462. # [03:04] <Nikunj> RESOLUTION: Copy and paste this into the proposal on FormData and Blobs
  463. # [03:04] <Nikunj> jonas: like to implement streaming
  464. # [03:06] <Nikunj> jonas: loading something means you are adding something constantly to the DOMString, using exponential memory. Having some way where you can store data to the file object or a way to erase the differential read since last event. Impl can throw the rest of the data away
  465. # [03:06] <Nikunj> avk: can we use server sent events?
  466. # [03:06] <Nikunj> jonas: this is not for that, but for large files
  467. # [03:06] <Nikunj> jonas: its started from server sent events, but different
  468. # [03:06] <Nikunj> avk: use cases are required
  469. # [03:07] <Nikunj> chaals: good proposal not quite a finished
  470. # [03:07] <Nikunj> chaals: need a meatier proposal
  471. # [03:07] <Nikunj> jonas: would do
  472. # [03:07] <Nikunj> chaals: how far from XHR?
  473. # [03:07] <Nikunj> avk: ask jonas, sam, and adrian
  474. # [03:08] <Nikunj> avk: if everyone finishes implementation, then we are done
  475. # [03:08] <Nikunj> jonas: start writing test cases
  476. # [03:08] * Quits: darobin (robin@72.254.116.7) (Ping timeout)
  477. # [03:08] <Nikunj> adrian: take it first to LC, then the test suites will happen before CR
  478. # [03:09] <Nikunj> avk: ISSUE-33 needs to be resolved first
  479. # [03:09] <Nikunj> travis: it is already re-entrant
  480. # [03:09] <Nikunj> chaals: so we can close the issue?
  481. # [03:09] <Nikunj> jonas: can we go to LC?
  482. # [03:09] <Nikunj> chaals: we need a formal vote
  483. # [03:09] <Nikunj> avk: need to edit the spec first
  484. # [03:10] <Nikunj> RESOLUTION: Close ISSUE-33 because everyone is re-entrant
  485. # [03:10] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  486. # [03:10] <Nikunj> chaals: should we take anne's draft to LC?
  487. # [03:11] <Nikunj> avk: this is the third LC
  488. # [03:11] <Nikunj> chaals: RESOLUTION: XHR goes to Last Call
  489. # [03:11] * Quits: JonathanJ (hollobit@72.254.116.68) (Quit: JonathanJ)
  490. # [03:11] * Quits: weinig (weinig@72.254.116.49) (Quit: weinig)
  491. # [03:11] * ArtB Note to Chaals -> update the APIs agenda re CORS switch: http://www.w3.org/2008/webapps/wiki/TPAC2009APIs#Monday.2C_November_2
  492. # [03:11] <Nikunj> chaals: meeting is adjourned
  493. # [03:12] * Quits: Marcos (Marcos@72.254.60.247) (Quit: Marcos)
  494. # [03:12] * Quits: timeless_mbp (timeless@72.254.57.15) (Quit: timeless_mbp)
  495. # [03:12] * Quits: Kai (chatzilla@72.254.114.142) (Quit: ChatZilla 0.9.85 [Firefox 3.5.3/20090824101458])
  496. # [03:13] * Quits: Nikunj (Adium@148.87.1.171) (Quit: Leaving.)
  497. # [03:13] * Quits: noahm (noah_mende@72.254.93.185) (Ping timeout)
  498. # [03:13] <chaals> rrsagent, draft minutes
  499. # [03:13] <RRSAgent> I have made the request to generate http://www.w3.org/2009/11/02-webapps-minutes.html chaals
  500. # [03:13] * Joins: jorlow (jorlow@216.239.45.4)
  501. # [03:13] * Quits: arun (arun@72.254.57.36) (Quit: arun)
  502. # [03:15] * Quits: ArtB (48fe3886@128.30.52.43) (Quit: CGI:IRC (EOF))
  503. # [03:17] * Joins: Marcos (Marcos@72.254.60.247)
  504. # [03:17] * Quits: sicking (chatzilla@72.254.59.32) (Ping timeout)
  505. # [03:19] * Parts: shiki (sokasaka@72.254.84.7)
  506. # [03:20] * Parts: anne (annevk@72.254.94.228)
  507. # [03:26] * Quits: Marcos (Marcos@72.254.60.247) (Ping timeout)
  508. # [03:45] * Quits: chaals (chaals@72.254.116.154) (Quit: chaals)
  509. # [04:05] * Quits: jorlow (jorlow@216.239.45.4) (Quit: jorlow)
  510. # [04:16] * Zakim excuses himself; his presence no longer seems to be needed
  511. # [04:16] * Parts: Zakim (rrs-bridgg@128.30.52.30)
  512. # [04:19] * Joins: Nikunj (Adium@148.87.1.172)
  513. # [04:38] * Joins: mmielke (mmielke@72.254.107.105)
  514. # [04:44] * Joins: arun (arun@75.36.190.9)
  515. # [04:51] * Quits: mmielke (mmielke@72.254.107.105) (Ping timeout)
  516. # [04:52] * Joins: mmielke (mmielke@72.254.107.105)
  517. # [04:53] * Quits: Nikunj (Adium@148.87.1.172) (Quit: Leaving.)
  518. # [04:59] * Joins: sicking (chatzilla@69.181.197.163)
  519. # [05:01] * Joins: jorlow (jorlow@216.239.45.4)
  520. # [05:06] * Quits: jorlow (jorlow@216.239.45.4) (Quit: jorlow)
  521. # [05:07] * Joins: jorlow (jorlow@216.239.45.4)
  522. # [05:31] * Joins: Nikunj (Adium@148.87.1.170)
  523. # [05:42] * Joins: jorlow_ (jorlow@67.218.107.6)
  524. # [05:43] * Joins: mjs (mjs@69.181.42.237)
  525. # [05:43] * Quits: jorlow (jorlow@216.239.45.4) (Ping timeout)
  526. # [05:43] * jorlow_ is now known as jorlow
  527. # [06:03] * Quits: mmielke (mmielke@72.254.107.105) (Ping timeout)
  528. # [06:20] * Quits: jorlow (jorlow@67.218.107.6) (Quit: jorlow)
  529. # [06:27] * Joins: jorlow (jorlow@67.180.199.19)
  530. # [06:53] * Joins: jorlow_ (jorlow@216.239.44.65)
  531. # [06:55] * Quits: jorlow (jorlow@67.180.199.19) (Ping timeout)
  532. # [06:55] * jorlow_ is now known as jorlow
  533. # [07:07] * Joins: johnnyg (johnnyg@64.1.210.2)
  534. # [07:29] * Quits: arve (arve@212.251.179.162) (Ping timeout)
  535. # [07:31] * Quits: hober (ted@174.143.153.77) (Quit: ERC Version 5.3 (IRC client for Emacs))
  536. # [07:37] * Joins: Marcos (Marcos@72.254.60.247)
  537. # [07:43] * Joins: DanC (connolly@128.30.52.169)
  538. # [07:44] * Quits: arun (arun@75.36.190.9) (Quit: arun)
  539. # [07:50] * Joins: timeless_mbp (timeless@24.6.182.21)
  540. # [07:55] * Quits: johnnyg (johnnyg@64.1.210.2) (Quit: johnnyg)
  541. # [07:59] * Joins: hober (ted@174.143.153.77)
  542. # [08:11] * Joins: shepazu (schepers@128.30.52.169)
  543. # [08:19] * Quits: DanC (connolly@128.30.52.169) (Client exited)
  544. # [08:25] * Joins: arve (arve@213.236.208.22)
  545. # [08:28] * Joins: weinig (weinig@67.180.35.124)
  546. # [08:31] * Quits: Marcos (Marcos@72.254.60.247) (Quit: Marcos)
  547. # [08:35] * Joins: Marcos (Marcos@72.254.60.247)
  548. # [08:42] * Quits: sicking (chatzilla@69.181.197.163) (Client exited)
  549. # [08:54] * Quits: Marcos (Marcos@72.254.60.247) (Quit: Marcos)
  550. # [09:25] * Joins: Nikunj1 (Adium@24.130.214.77)
  551. # [09:27] * Quits: Nikunj (Adium@148.87.1.170) (Ping timeout)
  552. # [09:39] * Quits: weinig (weinig@67.180.35.124) (Quit: weinig)
  553. # [09:59] * Joins: Nikunj (Adium@148.87.1.167)
  554. # [10:00] * Quits: Nikunj1 (Adium@24.130.214.77) (Ping timeout)
  555. # [10:58] * Quits: Nikunj (Adium@148.87.1.167) (Quit: Leaving.)
  556. # [11:30] * Quits: jorlow (jorlow@216.239.44.65) (Quit: jorlow)
  557. # [12:15] * Quits: shepazu (schepers@128.30.52.169) (Ping timeout)
  558. # [13:04] * Joins: smaug_ (chatzilla@82.181.150.24)
  559. # [13:58] * Joins: arun (arun@75.36.190.9)
  560. # [14:32] * Joins: annevk (opera@72.254.82.30)
  561. # [15:35] * Quits: arve (arve@213.236.208.22) (Quit: Ex-Chat)
  562. # [15:50] * Joins: ArtB (c0646811@128.30.52.43)
  563. # [16:00] * Joins: aroben (aroben@71.58.77.15)
  564. # [16:02] * Joins: johnnyg (johnnyg@64.1.210.2)
  565. # [16:03] * Quits: johnnyg (johnnyg@64.1.210.2) (Quit: johnnyg)
  566. # [16:03] * Quits: ArtB (c0646811@128.30.52.43) (Quit: CGI:IRC (EOF))
  567. # [16:09] * Joins: Nikunj (Adium@24.130.214.77)
  568. # [16:11] * Joins: noahm (noah_mende@12.43.172.10)
  569. # [16:26] * Quits: arun (arun@75.36.190.9) (Quit: arun)
  570. # [16:27] * Joins: shepazu (schepers@128.30.52.169)
  571. # [16:28] * Quits: Nikunj (Adium@24.130.214.77) (Quit: Leaving.)
  572. # [16:28] * Joins: mmielke (mmielke@72.254.124.123)
  573. # [16:36] * Quits: timeless_mbp (timeless@24.6.182.21) (Quit: timeless_mbp)
  574. # [16:46] * Quits: noahm (noah_mende@12.43.172.10) (Ping timeout)
  575. # [16:51] * Joins: Marcos (Marcos@72.254.89.39)
  576. # [17:03] * Quits: Marcos (Marcos@72.254.89.39) (Quit: Marcos)
  577. # [17:03] * Quits: mjs (mjs@69.181.42.237) (Quit: mjs)
  578. # [17:09] * Joins: Marcos (Marcos@72.254.89.39)
  579. # [17:10] * Joins: tlr (tlr@128.30.52.169)
  580. # [17:25] * Joins: weinig (weinig@72.254.102.177)
  581. # [17:28] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
  582. # [17:31] * Joins: ArtB (c0646811@128.30.52.43)
  583. # [17:34] * Parts: dom (dom@128.30.52.169)
  584. # [17:35] * Joins: AdamB (Adam@72.254.102.67)
  585. # [17:37] * Joins: soonho (soonho@72.254.101.50)
  586. # [17:37] * Parts: soonho (soonho@72.254.101.50)
  587. # [17:37] * Joins: darobin (robin@72.254.94.220)
  588. # [17:37] * Quits: AdamB (Adam@72.254.102.67) (Quit: AdamB)
  589. # [17:38] * Quits: mmielke (mmielke@72.254.124.123) (Ping timeout)
  590. # [17:41] * Quits: Marcos (Marcos@72.254.89.39) (Quit: Marcos)
  591. # [17:45] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  592. # [17:47] * Joins: mmielke (mmielke@72.254.93.74)
  593. # [17:47] * mmielke is now known as markusm
  594. # [17:48] * Joins: shiki (sokasaka@72.254.102.153)
  595. # [17:49] * Quits: shiki (sokasaka@72.254.102.153) (Quit: shiki)
  596. # [17:49] * Joins: shiki (sokasaka@72.254.102.153)
  597. # [17:53] * Joins: AdamB (Adam@72.254.102.67)
  598. # [17:53] * Joins: pererik (pe@72.254.103.214)
  599. # [17:57] * Quits: ArtB (c0646811@128.30.52.43) (Quit: CGI:IRC (Ping timeout))
  600. # [17:57] * Joins: timeless_mbp (timeless@72.254.56.103)
  601. # [17:58] * Parts: AdamB (Adam@72.254.102.67)
  602. # [17:59] * Joins: arve (arve@213.236.208.22)
  603. # [18:00] * Joins: chaals (chaals@72.254.82.7)
  604. # [18:00] * Joins: Zakim (rrs-bridgg@128.30.52.30)
  605. # [18:03] * Joins: ArtB (48fe5d4c@128.30.52.43)
  606. # [18:03] * Joins: JonathanJ (hollobit@72.254.93.129)
  607. # [18:05] * Joins: Nikunj (Adium@72.254.104.65)
  608. # [18:06] * Joins: VagnerW3CBrasil (chatzilla@72.254.100.54)
  609. # [18:08] * Quits: annevk (opera@72.254.82.30) (Ping timeout)
  610. # [18:09] * Joins: sicking (chatzilla@72.254.57.85)
  611. # [18:09] * Joins: Marcos (Marcos@72.254.89.39)
  612. # [18:09] <sicking> scribe:sicking
  613. # [18:09] * Joins: Kai (chatzilla@72.254.88.78)
  614. # [18:09] <sicking> scribe:s icking
  615. # [18:09] <sicking> scribe: sicking
  616. # [18:10] * Joins: tlr (tlr@128.30.52.169)
  617. # [18:10] <weinig> [The spec we will discussing is available at http://dev.w3.org/2006/webapi/WebIDL/]
  618. # [18:10] * Joins: Vladimir (chatzilla@72.254.119.66)
  619. # [18:11] * Joins: annevk (opera@72.254.82.30)
  620. # [18:11] * gavin__ is now known as gavin_
  621. # [18:11] * Joins: Lachy (Lachlan@72.254.56.137)
  622. # [18:12] <sicking> topic: WebIDL yo
  623. # [18:13] <sicking> AR: Arun
  624. # [18:13] <chaals> Present: Chaals, Sam, Per Erik, Vladimir, Satoshi, Shiki, Arun, Nikunj, Anne, Rob, Lachlan, Jonas, Travis, Adrian,
  625. # [18:14] * annevk will probably have to leave around 10AM for some CSSOM thingie
  626. # [18:14] <sicking> SW: introduction about webidl
  627. # [18:15] * Joins: Travis (d8341cc5@128.30.52.43)
  628. # [18:16] <weinig> http://dev.w3.org/2006/webapi/WebIDL/
  629. # [18:16] <sicking> AR: there's some things that are still left loose, we should define those stricter
  630. # [18:16] <sicking> SW: ok, got specific issues?
  631. # [18:17] <sicking> AR: how are exceptions done?
  632. # [18:17] <sicking> AR: missing primitives like ByteArray
  633. # [18:17] <sicking> SW: have to check spec re exceptions
  634. # [18:17] <sicking> SW: re bytearray, it's a question of scope
  635. # [18:18] <sicking> SW: spec already big. Contains gramar, some basic primitives like getters/setters/stringifyers, also some types and extended attributes
  636. # [18:18] <sicking> SW: sequences would be useful
  637. # [18:19] <sicking> JS: need to define what exactly a seqnece is
  638. # [18:19] <sicking> SW: sequence is a JS array, array is a host object
  639. # [18:19] * Joins: howard (howard@72.254.122.179)
  640. # [18:19] <weinig> http://dev.w3.org/2006/webapi/WebIDL/#es-sequence
  641. # [18:20] * Joins: shepazu (schepers@128.30.52.169)
  642. # [18:20] <sicking> SW: NodeList seems to map closer to array
  643. # [18:21] <sicking> JS: NodeList is readonly, so can't be a simple JS-array
  644. # [18:21] <sicking> NM: is anyone actually using Array?
  645. # [18:21] <sicking> ...crickets...
  646. # [18:21] * Quits: howard (howard@72.254.122.179) (Quit: User pushed the X - because it's Xtra, baby)
  647. # [18:22] <sicking> SW: don't know of any specs that use it. Maybe NodeList could be expressed as an Array
  648. # [18:23] <sicking> SW: might not be worth putting Array in v1 if no one is using it
  649. # [18:23] * Joins: howard (howard@72.254.122.179)
  650. # [18:23] <annevk> hmm, I think sequence<> needs to map to an object that has item() and length; is that the case?
  651. # [18:24] <sicking> TL: TC-39 is taking interest
  652. # [18:24] * Joins: MikeSmith (MikeSmithX@mcclure.w3.org)
  653. # [18:24] <annevk> well, it would be nice to have a shorthand for NodeList like interfaces
  654. # [18:24] * Parts: howard (howard@72.254.122.179)
  655. # [18:24] <annevk> not sure if it needs to be sequence<>
  656. # [18:24] <sicking> TL: I expressed it to them as an grammar language, and a binding language
  657. # [18:25] <sicking> TL: they took a lot interest in the binding part
  658. # [18:25] * Quits: Lachy (Lachlan@72.254.56.137) (Connection reset by peer)
  659. # [18:25] <sicking> TL: TC-39 expressed interest in owning the JS bindings, claiming they had more expertize
  660. # [18:26] * Joins: Lachy (Lachlan@72.254.56.137)
  661. # [18:26] <sicking> SW: I think the main value of webidl is the bindings, not so much the grammar
  662. # [18:26] <sicking> TL: agreed
  663. # [18:26] <sicking> AvK: also value for spec authors
  664. # [18:26] * Quits: Vladimir (chatzilla@72.254.119.66) (Ping timeout)
  665. # [18:26] <sicking> SW: concerned about splitting out bindings
  666. # [18:27] <sicking> TL: then they should be able to participate
  667. # [18:27] <sicking> SW: most definitely
  668. # [18:27] * Joins: Vladimir (chatzilla@72.254.119.66)
  669. # [18:28] <sicking> DS: I'm also concerned about splitting it. Splitting things in two leads to overhead and poor coordination
  670. # [18:28] <chaals> Present+ Maciej
  671. # [18:28] <chaals> Present+ Doug
  672. # [18:28] <sicking> Present+ Sicking
  673. # [18:28] <MikeSmith> RRSAgent, make minutes
  674. # [18:28] <RRSAgent> I have made the request to generate http://www.w3.org/2009/11/02-webapps-minutes.html MikeSmith
  675. # [18:28] <sicking> SW: there are things we could split, like deprecated features
  676. # [18:28] * annevk ... so now both Jonas and Sicking are present
  677. # [18:29] * Joins: arun (arun@72.254.62.163)
  678. # [18:29] * Joins: mjs (mjs@72.254.84.91)
  679. # [18:29] <sicking> annevk, that's how I roll
  680. # [18:29] <shepazu> s/coordination/coordination... I would be happy to have it worked on jointly, if we can do that, and public-script-coord should help
  681. # [18:29] <sicking> MJS: even such a split is concerning. Similar to how ecmascript leaves host objects largely undefined
  682. # [18:30] <sicking> SW: agreed
  683. # [18:30] <MikeSmith> Present+ MikeSmith
  684. # [18:30] * Quits: Nikunj (Adium@72.254.104.65) (Ping timeout)
  685. # [18:30] <sicking> MJS: explicitly noting that certain things are deprecated could still be done
  686. # [18:30] <annevk> Present+ Julian
  687. # [18:30] <sicking> TL: do we know what we want to mark as deprecated
  688. # [18:31] <sicking> SW: custom deleters
  689. # [18:31] <sicking> MJS: also catch-alls in general
  690. # [18:31] <sicking> MJS: not neccesarily consencus that catchalls are always bad
  691. # [18:32] <sicking> MJS: separately, seems to be consensus that array-like accessors are ok
  692. # [18:32] <sicking> AvK: what does "deprecated" even mean?
  693. # [18:32] <sicking> SW: that a feature shouldn't be used in new interfaces, but is described for legacy reasons
  694. # [18:33] * Joins: Nikunj (Adium@72.254.104.65)
  695. # [18:33] <sicking> MJS: multiple inheritance might not be needed by existing browsers
  696. # [18:34] <sicking> MJS: however SVG uses it
  697. # [18:34] <sicking> MJS: browsers don't seem to implement SVGs stuff as real multiple inheritance. Simply implemented as separate interfaces
  698. # [18:35] <sicking> TL: there is a desire from TC-39: don't allow bindings to do things that aren't allowed by ecmascript itself
  699. # [18:35] <sicking> TL: want to be able to implement DOM in ecmascript
  700. # [18:36] <sicking> MJS: if you look at it as a two-sided converging then it makes sense. I.e. add features to ES to allow it to do more, and deprecate features from webidl that ES can't do
  701. # [18:37] <sicking> TL: want to mark things that will *never* be part of ES as deprecated
  702. # [18:38] <sicking> SW: how to we determine what will never be part of ES?
  703. # [18:38] <sicking> MJS: It's very hard. Not even catchalls are for sure never going to be a part of ES
  704. # [18:38] <sicking> CM: guessing the future is hard
  705. # [18:39] * Quits: Lachy (Lachlan@72.254.56.137) (Connection reset by peer)
  706. # [18:39] <sicking> DS: when do we expect webidl to progress to LC and beyond
  707. # [18:39] <sicking> DS: and all those other fuzzy W3C rules
  708. # [18:39] * Joins: Lachy (Lachlan@72.254.56.137)
  709. # [18:39] <sicking> SW: depends on what people want from spec
  710. # [18:40] <sicking> SW: it's really a tool for spec authors
  711. # [18:40] <sicking> MJS: changing the spec to use ES5 formalisms is a big change
  712. # [18:41] <sicking> TL: ES5 has accessors, rewriting to use those will take work
  713. # [18:41] <sicking> DS: Robin wanted to publish sooner rather than later
  714. # [18:42] <sicking> MJS: there's tradeoffs, there's many specs that want to use it
  715. # [18:43] <sicking> SW: I'm not all that familiar with W3C rules quite yet
  716. # [18:43] <sicking> DS: This is an unusual spec
  717. # [18:43] <sicking> DS: the implementations for this spec are other specs
  718. # [18:44] <sicking> SW: Also testcases. You can produce a lot of tests based only on the idl
  719. # [18:44] <sicking> SW: Want a tool that given an idl produces tests
  720. # [18:44] * darobin confirms I'd like to publish sooner, if possible with a core of solid features and pushing less stable stuff to 1.1
  721. # [18:45] <sicking> SW: browsers are also implementors
  722. # [18:45] <sicking> DS: sort of circular dependency. Won't know that things worked until another spec has used webidl and that spec got implemented
  723. # [18:46] <sicking> MJS: we could take a stable spec, such as DOM Core, and express it using webidl
  724. # [18:47] <sicking> DS: Cameron did that
  725. # [18:47] <sicking> SW: would come close, but doesn't test everything. Might also want to do for example canvas to test overloading
  726. # [18:47] * darobin http://dev.w3.org/2006/webapi/WebIDL/dom/
  727. # [18:48] <sicking> MJS: should start with dom core and see what coverage that gets us. But yes, canvas would cover a lot of nice things
  728. # [18:48] <sicking> RE: has anyone does a matematical analysis of webidl? Would that be useful?
  729. # [18:49] <sicking> SW: don't know. If anyone has done it, cameron has, he loves math. But don't think he has
  730. # [18:50] <sicking> SW: OMG doesn't define enough things. That's why specs had bindings sections. But even those aren't enough, and might not be normative
  731. # [18:52] <sicking> SW: changing spec to use ES5 terminology will be a big change, but not a functional change
  732. # [18:52] <sicking> NM: is it a requirement for going to last call
  733. # [18:52] <sicking> AvK: doesn't make sense to define things in terms of ES3 if everyone implements ES5
  734. # [18:54] <sicking> DS: when you make that change, document how you map old terminology to ES5 terminology
  735. # [18:54] <sicking> SW: good idea
  736. # [18:54] <sicking> SW: not sure about some features in the spec. One is method overloading
  737. # [18:54] <weinig> http://dev.w3.org/2006/webapi/WebIDL/#idl-overloading
  738. # [18:55] <sicking> TL: hard to have an opinion, cause it's hard to understapnd spec
  739. # [18:55] <sicking> SW: that's part of the problem
  740. # [18:56] <sicking> AvK: canvas and XHR uses overloading, though in different ways
  741. # [18:56] <sicking> TL: we have default values for optional arguments
  742. # [18:57] <sicking> TL: we use it for XHR
  743. # [18:58] <sicking> SW: when i started on webkit, we had hand-written code that implemented the bindings. We still have a custom IDL
  744. # [18:59] <sicking> MJS: we currently have one-offs for all overloads. Would like to use webidl to express and implement it instead
  745. # [19:00] <sicking> JS: not sure we can use idl with overloads directly
  746. # [19:01] <sicking> MJS: you can use whatever solution you're currently using
  747. # [19:02] <sicking> MJS: webidl has optional. Limited by that each argument is optional. Can't enforce that either 0 or 2 arguments are provided
  748. # [19:02] <sicking> MJS: if optional could be in batches, then you could require that the other arguments must differ in type
  749. # [19:03] <sicking> JS: errors seem to be ambigious
  750. # [19:05] <sicking> MJS: one problem is that anything that takes a string essentially accepts anything since anything can be converted to string
  751. # [19:06] <sicking> VD: one problem is a function that takes a two ints, or an int and a string. If called with just one int what do you do?
  752. # [19:06] * Quits: Lachy (Lachlan@72.254.56.137) (Connection reset by peer)
  753. # [19:06] * Joins: Lachy (Lachlan@72.254.56.137)
  754. # [19:06] * Quits: ArtB (48fe5d4c@128.30.52.43) (Quit: CGI:IRC (EOF))
  755. # [19:07] <sicking> TL: i think action should be to clarify the spec and then we can discuss what we want behavior to be
  756. # [19:08] <sicking> MJS: in theory you can let the function just take a bunch of optional "any" arguments, and describe in prose what's required. However that's likely more confusing for everyone
  757. # [19:08] <sicking> s/VD/VK/
  758. # [19:09] <sicking> JS: I think TC-39 will have strong opinions on this. I know mark miller did
  759. # [19:09] <sicking> MJS: not sure i understand MMs objection
  760. # [19:11] <sicking> MJS: one issue is that overloads allows overloads to be added in [supplemental] interfaces. Would not match ES5 implementations
  761. # [19:12] * chaals notes that this discussion will get wound up in the next few minutes
  762. # [19:12] <sicking> SW: we could forbid overloading in supplementals
  763. # [19:14] <sicking> ...discussions about XHR...
  764. # [19:16] <sicking> SW: if we're gonna do union types then we should consider what tradeoffs we'd making. I.e. which group are we helping at the cost of another group
  765. # [19:16] <sicking> SW: i'd also like to know how you reference one of the specific overloads
  766. # [19:17] <sicking> TL: philosophical argument. Do you think of it as a single function that can take different things, or is it separate functions that happen to have the same name
  767. # [19:18] <sicking> TL: problem is that we have a spec that's hard to understand. Using union types might make it easier for people to understand it
  768. # [19:18] <sicking> CM: would like to wrap up
  769. # [19:19] * darobin rather liked union types
  770. # [19:19] <sicking> darobin, no union types for you!
  771. # [19:19] * darobin pouts, makes bambi eyes
  772. # [19:19] * chaals always knew darobin was a commo
  773. # [19:19] <sicking> SW: we need to figure out replaceable
  774. # [19:20] <sicking> TL: I'm also concerned about mixin's
  775. # [19:20] * darobin Pinko Bambi
  776. # [19:21] <sicking> TL: TC-39 would like to deprecate callable objects
  777. # [19:22] <sicking> JS: gecko only has a single object that's callable, the document.all object
  778. # [19:22] <sicking> SW: would like to remove getters/setters without name
  779. # [19:23] <sicking> TL: remove it
  780. # [19:24] <sicking> MJS: from javascripts point of view it doesn't have a behavioural difference
  781. # [19:24] <sicking> CM: proposed resolution: nuke it
  782. # [19:24] <sicking> DS: remove it but put a note that you did so, so that people can whine
  783. # [19:25] <sicking> RESOLUTION: remove unnamed getters/setters
  784. # [19:26] <Travis> Action: weinig to clarify method overloading section and make it readable
  785. # [19:26] * trackbot noticed an ACTION. Trying to create it.
  786. # [19:26] * RRSAgent records action 7
  787. # [19:26] <trackbot> Created ACTION-439 - Clarify method overloading section and make it readable [on Samuel Weinig - due 2009-11-10].
  788. # [19:27] <sicking> SW: not sure if supplemental should be an extended attribute or some other type of syntax. Should take it later due to out of time
  789. # [19:27] <sicking> TL: I don't care
  790. # [19:28] <chaals> しき:should be core
  791. # [19:28] <sicking> SO: i'd prefer a separate syntax
  792. # [19:28] <sicking> hands off my editing!
  793. # [19:29] <sicking> s/editing/scribing/
  794. # [19:31] <sicking> SW: who volunteers to provide tests?
  795. # [19:31] <sicking> SO: i do!
  796. # [19:32] <sicking> s/who volunteers to provide tests/who volunteers to provide DOM L2 based tests/
  797. # [19:32] * Quits: smaug_ (chatzilla@82.181.150.24) (Client exited)
  798. # [19:32] <chaals> s/provide/fish out and expand on heycam's/
  799. # [19:33] <MikeSmith> s/じき/史紀
  800. # [19:33] <sicking> JS: I'll do the DOM 2 ones
  801. # [19:34] <MikeSmith> RRSAgent, make minutes
  802. # [19:34] <RRSAgent> I have made the request to generate http://www.w3.org/2009/11/02-webapps-minutes.html MikeSmith
  803. # [19:34] <sicking> s/SO: i do!//
  804. # [19:34] <sicking> SO: I'll do C++ tests
  805. # [19:34] <MikeSmith> s/しき/史紀
  806. # [19:35] <Lachy> http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/0338.html
  807. # [19:35] <sicking> Topic: Selectors
  808. # [19:35] <Lachy> http://dev.w3.org/2006/webapi/selectors-api/#nodeselector
  809. # [19:35] <MikeSmith> RRSAgent, make minutes
  810. # [19:35] <RRSAgent> I have made the request to generate http://www.w3.org/2009/11/02-webapps-minutes.html MikeSmith
  811. # [19:35] <sicking> LH: i need to finish up test suite
  812. # [19:35] * Quits: JonathanJ (hollobit@72.254.93.129) (Ping timeout)
  813. # [19:36] <sicking> LH: spec is ready for CR, can do tests in parallel
  814. # [19:36] <sicking> TL: namespace resolvers still out?
  815. # [19:36] <sicking> LH: yes, may potentially be in selectors L2
  816. # [19:37] <Lachy> http://dev.w3.org/2006/webapi/selectors-api2/
  817. # [19:37] <sicking> BREAK
  818. # [19:38] * Quits: darobin (robin@72.254.94.220) (Ping timeout)
  819. # [19:39] * Joins: root (root@74.201.255.121)
  820. # [19:40] * Quits: markusm (mmielke@72.254.93.74) (Ping timeout)
  821. # [19:42] * Quits: pererik (pe@72.254.103.214) (Quit: .)
  822. # [19:44] * Quits: Vladimir (chatzilla@72.254.119.66) (Ping timeout)
  823. # [19:51] * Joins: smaug_ (chatzilla@82.181.150.24)
  824. # [19:53] * Quits: Kai (chatzilla@72.254.88.78) (Ping timeout)
  825. # [19:54] * Quits: VagnerW3CBrasil (chatzilla@72.254.100.54) (Ping timeout)
  826. # [19:57] * Quits: Marcos (Marcos@72.254.89.39) (Quit: Marcos)
  827. # [19:58] * Joins: markusm (mmielke@72.254.124.123)
  828. # [19:58] * Quits: mjs (mjs@72.254.84.91) (Quit: mjs)
  829. # [20:05] <chaals> Topic: DOM 3 Events
  830. # [20:06] * Joins: mjs (mjs@72.254.84.91)
  831. # [20:09] * Joins: ArtB (48fe5d4c@128.30.52.43)
  832. # [20:10] * Joins: gsnedders (gsnedders@83.252.226.150)
  833. # [20:10] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  834. # [20:11] * ArtB pings hixie re D3E discussion in Salon 1 starting
  835. # [20:11] * ArtB pings msj re D3E discussion in Salon 1 starting
  836. # [20:11] * ArtB pings annevk re D3E discussion in Salon 1 starting
  837. # [20:11] <Hixie> omw
  838. # [20:11] <mjs> won't be there (but thanks)
  839. # [20:12] <chaals> Present+ Ishida, Addison, NorbertL
  840. # [20:12] <chaals> Present+ Hixie
  841. # [20:12] * timeless_mbp is now known as timeless
  842. # [20:12] <sicking> Scribe: Sicking
  843. # [20:13] * ArtB changes topic to 'WebApps agenda Nov 3: http://www.w3.org/2008/webapps/wiki/TPAC2009APIs#Tuesday.2C_November_3'
  844. # [20:13] <chaals> Present+ Mike™
  845. # [20:13] <sicking> DS: suggestion to make key values, instead of being "\\u1234", to be "\u1234". I.e. be the actual character
  846. # [20:13] * Joins: darobin (robin@72.254.94.220)
  847. # [20:14] * Joins: JonathanJ (hollobit@72.254.93.129)
  848. # [20:14] <shepazu> http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#js-escape
  849. # [20:14] <sicking> AP: this results in a surrugate pair being the value
  850. # [20:15] <shepazu> s/"\\u1234"/"U+1234"
  851. # [20:15] <sicking> AP: this problem didn't exist with the old "U+1234" syntax
  852. # [20:16] <sicking> JS: is this a problem?
  853. # [20:16] <sicking> AP: it means to get the actual character value you might need to decode the surrugate pair
  854. # [20:16] <sicking> s/surrugate/surrogate/
  855. # [20:16] <sicking> (i follow standards)
  856. # [20:17] <sicking> AP: there are lots of surrogate characters
  857. # [20:17] <sicking> AP: and more with time
  858. # [20:18] <sicking> DS: maciej wasn't sure that there are keys that result in a non BMP character
  859. # [20:18] <sicking> DS: however there appears there are
  860. # [20:18] <sicking> DS: characters "tree stub" and "untidy" are such characters
  861. # [20:19] <mjs> my old suggestion of "\u1234" was meant to suggest the values should be a string of the actual character
  862. # [20:19] <mjs> so for example the identifier when you press lowercase a would be the string "a"
  863. # [20:19] * Joins: Marcos (Marcos@72.254.89.39)
  864. # [20:20] <sicking> IH: for people that compare with a string, then the fact that it's a surrogate pair then this isn't a problem
  865. # [20:20] <sicking> DS: complicated in some situations
  866. # [20:20] <sicking> IH: when?
  867. # [20:20] <sicking> DS: when people use lots of supplementary characters in the script. Maybe
  868. # [20:21] <sicking> JS: can someone show code that they are concerned about won't work
  869. # [20:21] * Joins: VagnerW3CBrasil (chatzilla@72.254.100.54)
  870. # [20:23] <sicking> ...confusion about what is actually suggested...
  871. # [20:25] <chaals> [Do you get "U+1234" or "æ" or "\u1234" and is there any reason to distinguish the second and third cases?]
  872. # [20:28] <chaals> Scribe: chaals
  873. # [20:28] <chaals> RI: You take a character outside BMP, and your javascript escape is "\1234\5678"
  874. # [20:29] <chaals> PA: The string that is the individual character is length 2
  875. # [20:30] <sicking> RI: why move away from the "U+1234" format?
  876. # [20:31] * Zakim excuses himself; his presence no longer seems to be needed
  877. # [20:31] * Parts: Zakim (rrs-bridgg@128.30.52.30)
  878. # [20:31] <MikeSmith> RRSAgent, make minutes
  879. # [20:31] <RRSAgent> I have made the request to generate http://www.w3.org/2009/11/02-webapps-minutes.html MikeSmith
  880. # [20:31] * Joins: Zakim (rrs-bridgg@128.30.52.30)
  881. # [20:31] <chaals> q+ sicking
  882. # [20:31] * Zakim sees sicking on the speaker queue
  883. # [20:32] * Joins: tlr (tlr@128.30.52.169)
  884. # [20:32] * chaals thinks of name fields that don't let people like me add their real name due to length restrictions
  885. # [20:32] <chaals> q+ rob
  886. # [20:32] * Zakim sees sicking, rob on the speaker queue
  887. # [20:32] <sicking> DS: if i'm trying to limit a form to just one character, i might reject surrogate pair characters
  888. # [20:33] <weinig> q+
  889. # [20:33] * Zakim sees sicking, rob, weinig on the speaker queue
  890. # [20:33] <annevk> q+
  891. # [20:33] * Zakim sees sicking, rob, weinig, annevk on the speaker queue
  892. # [20:33] <weinig> q-
  893. # [20:33] * Zakim sees sicking, rob, annevk on the speaker queue
  894. # [20:34] <shepazu> q+ r12a
  895. # [20:34] * Zakim sees sicking, rob, annevk, r12a on the speaker queue
  896. # [20:34] <chaals> Sicking: We should go with the native format for the language. Unfortunately javascript has a nasty way of dealing with characters outside the BMP. If we give them in other forms tey will just convert and then go on anyway. SO trying to work around the behaviour of the language will frustrate people
  897. # [20:34] <sicking> JS: my concern is that we're trying to work around behavior in ES
  898. # [20:34] * Joins: Kai (chatzilla@72.254.88.78)
  899. # [20:34] <chaals> ack si
  900. # [20:34] * Zakim sees rob, annevk, r12a on the speaker queue
  901. # [20:34] <chaals> ack rob
  902. # [20:34] * Zakim sees annevk, r12a on the speaker queue
  903. # [20:34] <sicking> AP: i just want people to know what the ramifications are, and that we make it clear in spec
  904. # [20:36] * Quits: markusm (mmielke@72.254.124.123) (Ping timeout)
  905. # [20:36] <MikeSmith> q?
  906. # [20:36] * Zakim sees annevk, r12a on the speaker queue
  907. # [20:37] <sicking> RE: when pressing "e", i'll get an "e", but if I press "treestub", i'll get "U+1234". That seems to make i18n harder
  908. # [20:37] <sicking> RE: for keys like "F1" we can use a different field
  909. # [20:37] <chaals> ack annevk
  910. # [20:37] * Zakim sees r12a on the speaker queue
  911. # [20:38] <sicking> AvK: the way javascript deals with i18n should be an orthogonal issue
  912. # [20:39] <shepazu> q+
  913. # [20:39] * Zakim sees r12a, shepazu on the speaker queue
  914. # [20:39] <sicking> AP: we should follow the way that javascript deals with i18n
  915. # [20:39] <chaals> ack r12
  916. # [20:39] * Zakim sees shepazu on the speaker queue
  917. # [20:39] <sicking> AP: even if that isn't perfect
  918. # [20:40] <sicking> RI: i want to know how this is expected to be used
  919. # [20:40] <sicking> RI: if you just want a label for what was pressed then "U+1234" syntax seems better
  920. # [20:40] <chaals> ack she
  921. # [20:40] * Zakim sees no one on the speaker queue
  922. # [20:41] <sicking> RI: so trying to understand what the use cases and expected uses are
  923. # [20:41] <sicking> DS: comparisons often
  924. # [20:42] <chaals> JS: If the characters are described as double-escaped bytes, you can still do comparison with them
  925. # [20:43] <Hixie> '\uFFFF' < '\u10FFF' => false
  926. # [20:44] * Joins: fsasaki (chatzilla@72.254.57.73)
  927. # [20:44] <chaals> Present+ Felix
  928. # [20:45] * fsasaki tx
  929. # [20:45] <chaals> JS: Does any use case run up against that painful gap in practice?
  930. # [20:45] <sicking> DS: range checks might also be common
  931. # [20:46] <sicking> TL: in all the cases we describe now it seems workable to use the current proposal (i.e. the "treestub" proposal rather than "U+1234"). Would it be ok to go forward with that and describe how to do the various use cases
  932. # [20:46] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  933. # [20:47] <chaals> IH: I think we are fine because I don't think we will meet the boundary case
  934. # [20:47] * Joins: myakura (myakura@72.254.84.172)
  935. # [20:47] <chaals> q+ anne
  936. # [20:47] * Zakim sees anne on the speaker queue
  937. # [20:48] <shepazu> q+
  938. # [20:48] * Zakim sees anne, shepazu on the speaker queue
  939. # [20:48] <chaals> ack anne
  940. # [20:48] * Zakim sees shepazu on the speaker queue
  941. # [20:48] <sicking> IH: in fact, the "U+1234" syntax compares even worse for range checks
  942. # [20:49] <sicking> AvK: I don't think we should try to work around ES problems
  943. # [20:50] <chaals> q+ addison
  944. # [20:50] * Zakim sees shepazu, addison on the speaker queue
  945. # [20:50] <chaals> ack she
  946. # [20:50] * Zakim sees addison on the speaker queue
  947. # [20:50] <chaals> ack add
  948. # [20:50] * Zakim sees no one on the speaker queue
  949. # [20:52] <sicking> AP: you can maintain that ES is broken. But what you're doing is developing a key events spec. I don't see a problem with returning the character that was pressed.
  950. # [20:52] <Hixie> q+
  951. # [20:52] * Zakim sees Hixie on the speaker queue
  952. # [20:52] <sicking> AP: if you tie yourself to UTF16, then that could be a problem.
  953. # [20:52] <chaals> ack hi
  954. # [20:52] * Zakim sees no one on the speaker queue
  955. # [20:54] <sicking> AI: if i have a ascii page, how would i use this
  956. # [20:54] * Joins: pcastro (d0735eed@128.30.52.43)
  957. # [20:55] <sicking> AvK: the spec would simply say, U+1234, without quotes
  958. # [20:55] <sicking> AvK: that's what other specs do
  959. # [20:56] <sicking> DS: i was confused, but now i can see
  960. # [20:56] <sicking> IH: WebIDL will handle it
  961. # [20:57] <sicking> DS: will that be clear for authors
  962. # [20:57] <sicking> IH: should have a separate section that describes things for authors. You probably want that anyway
  963. # [20:57] <sicking> DS: i would like to express a resolution
  964. # [20:57] <sicking> s/DS: i would like to express a resolution//
  965. # [20:58] <sicking> RESOLUTION: the value will be a character. WebIDL will clarify how this is mapped to ES
  966. # [21:00] <chaals> s/RESOLUTION: the value will be a character. WebIDL will clarify how this is mapped to ES/RESOLUTION: The return value will be a DOMstring which is the character produced. We add a note explaining to authors what happens/
  967. # [21:00] <shepazu> action: shepazu to add clarification for authors of JS where the gotchas are
  968. # [21:00] * trackbot noticed an ACTION. Trying to create it.
  969. # [21:00] * RRSAgent records action 8
  970. # [21:00] <trackbot> Created ACTION-440 - Add clarification for authors of JS where the gotchas are [on Doug Schepers - due 2009-11-10].
  971. # [21:00] <shepazu> these are unicode scalar values
  972. # [21:00] * Joins: tlr (tlr@128.30.52.169)
  973. # [21:00] <chaals> RATIONALE: WebIDL makes sure that this comes back in the relevant form for whatever language you are using
  974. # [21:01] <Hixie> to aid developers we probably need to make the non-character values (like "F1") be not length-2
  975. # [21:01] <Hixie> e.g. "[F1]" or "*F1" or "F-1" or "Function1" or something
  976. # [21:01] <MikeSmith> q?
  977. # [21:01] * Zakim sees no one on the speaker queue
  978. # [21:02] <chaals> NL: when I do 秀, how many events are there?
  979. # [21:03] <annevk> q+
  980. # [21:03] * Zakim sees annevk on the speaker queue
  981. # [21:03] <chaals> [it took me about a dozen key presses to make that character]
  982. # [21:03] <annevk> q-
  983. # [21:03] * Zakim sees no one on the speaker queue
  984. # [21:03] <annevk> q+ to suggest we declare conversion methods out of scope
  985. # [21:03] * Zakim sees annevk on the speaker queue
  986. # [21:03] <sicking> DS: when you have IME, you have there's a bunch of composition events'n'stuff
  987. # [21:05] <sicking> DS: the whole things is very complicated. Might be best for people to review the spec
  988. # [21:05] <sicking> AP: when should we review
  989. # [21:05] <sicking> CM: over lunch
  990. # [21:05] <sicking> DS: the sooner the better
  991. # [21:05] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  992. # [21:06] <MikeSmith> q+ to mention that i18n group is having IRI discussion from 1pm to 3pm
  993. # [21:06] * Zakim sees annevk, MikeSmith on the speaker queue
  994. # [21:06] <sicking> DS: spec should be pretty stable now. Especially with this latest resolution
  995. # [21:06] <chaals> ack ann
  996. # [21:06] <Zakim> annevk, you wanted to suggest we declare conversion methods out of scope
  997. # [21:06] * Zakim sees MikeSmith on the speaker queue
  998. # [21:06] <sicking> AvK: I propose we drop the conversion methods
  999. # [21:07] <sicking> DS: i would like to keep them
  1000. # [21:09] <chaals> q+ sam
  1001. # [21:09] * Zakim sees MikeSmith, sam on the speaker queue
  1002. # [21:09] <sicking> DS: we want people to deal with characters, so I think it's in scope
  1003. # [21:09] <MikeSmith> q- later
  1004. # [21:09] * Zakim sees sam, MikeSmith on the speaker queue
  1005. # [21:09] * Joins: tlr_ (tlr@72.254.89.250)
  1006. # [21:09] <chaals> q+ chaals
  1007. # [21:09] * Zakim sees sam, MikeSmith, chaals on the speaker queue
  1008. # [21:09] <sicking> AvK: ES needs to solve it in a larger scope
  1009. # [21:09] <chaals> ack sa
  1010. # [21:09] * Zakim sees MikeSmith, chaals on the speaker queue
  1011. # [21:09] <chaals> q- cha
  1012. # [21:09] * Zakim sees MikeSmith on the speaker queue
  1013. # [21:10] * Quits: arve (arve@213.236.208.22) (Ping timeout)
  1014. # [21:10] * Quits: fsasaki (chatzilla@72.254.57.73) (Quit: ChatZilla 0.9.85 [Firefox 3.0.15/2009101601])
  1015. # [21:10] * Parts: pcastro (d0735eed@128.30.52.43)
  1016. # [21:10] <sicking> SW: I think the right place to put it is on the ES String constructor, other languages have it there
  1017. # [21:11] <sicking> SW: there are docs on the web that shows how to take a multibyte character and turn it into a numerical codepoint
  1018. # [21:11] <chaals> q+ chaals
  1019. # [21:11] * Zakim sees MikeSmith, chaals on the speaker queue
  1020. # [21:11] <sicking> DS: the code is HUGE
  1021. # [21:11] <MikeSmith> q- later
  1022. # [21:11] * Zakim sees chaals, MikeSmith on the speaker queue
  1023. # [21:11] <sicking> SW: no it's not
  1024. # [21:11] <sicking> DS: yes it is
  1025. # [21:11] <sicking> SW: no it's not
  1026. # [21:11] <chaals> [it is 15 lines]
  1027. # [21:11] <shepazu> http://rishida.net/tools/conversion/
  1028. # [21:12] * chaals casts aspersions on schepers' other claims about what he has that's HUUUGE
  1029. # [21:12] <sicking> DS: lets continue discussion later
  1030. # [21:13] <MikeSmith> q-
  1031. # [21:13] * Zakim sees chaals on the speaker queue
  1032. # [21:13] <MikeSmith> ack chaals
  1033. # [21:13] * Zakim sees no one on the speaker queue
  1034. # [21:14] * Joins: tlr (tlr@128.30.52.169)
  1035. # [21:14] <sicking> CM: as a browser implementor, i don't see why i should look at a key events spec to see that i should build conversion functions for strings, or how to do it
  1036. # [21:14] * Quits: tlr_ (tlr@72.254.89.250) (Ping timeout)
  1037. # [21:15] <sicking> CM: who would rather move it to ecmascript
  1038. # [21:15] <sicking> ...straw poll is taken...
  1039. # [21:15] <chaals> [Shepazu objects, no resolution]
  1040. # [21:15] * ArtB makes note to himself to ask TBL to fire Shepazu
  1041. # [21:17] * timeless chuckles
  1042. # [21:18] <sicking> DS: Hixie had requested that some events be defined in much greater detail, or be removed from the DOM L3 Events spec
  1043. # [21:18] <sicking> AvK: I can represent hixie
  1044. # [21:18] <sicking> AvK: Problem is that it's very fuzzily defined when certain events are dispatched
  1045. # [21:19] <sicking> TL: it's not expected that DOM Events define exactly when the events are fired
  1046. # [21:20] <sicking> TL: and that the hosting language should define that
  1047. # [21:20] <sicking> q+
  1048. # [21:20] * Zakim sees sicking on the speaker queue
  1049. # [21:20] <sicking> TL: this was also raised with progress events yesterday
  1050. # [21:21] <sicking> TL: resolution was to define what the event looks like, but let hosting specs define when they are fired
  1051. # [21:21] <weinig> q+
  1052. # [21:21] * Zakim sees sicking, weinig on the speaker queue
  1053. # [21:22] <sicking> AvK: mouse events for example can be just generic events. Don't need to be in DOM Events spec
  1054. # [21:22] <arun> q?
  1055. # [21:22] * Zakim sees sicking, weinig on the speaker queue
  1056. # [21:22] <chaals> ack si
  1057. # [21:22] * Zakim sees weinig on the speaker queue
  1058. # [21:23] <sicking> DS: if there's a risk that hixie will raise objections, then i'd rather adress the issue sooner than later
  1059. # [21:24] <chaals> JS: Think what we did with Progress events makes sense - this spec defines what these things look like more or less, and the individual specs define how they fit in various specs in detail.
  1060. # [21:24] <sicking> JS: can we leave it explicitly undefined when certain events are fired, and just define what the event looks like when fired. And then leave that to hosting specs to define when to fire events
  1061. # [21:24] <sicking> oh, thanks chaals
  1062. # [21:24] * Joins: arve (arve@212.251.179.162)
  1063. # [21:25] <sicking> JS: though i don't know who would define mouse events since they seem cross language
  1064. # [21:25] <sicking> AvK: possibly CSSOM could define mouse events
  1065. # [21:25] * smaug thinks we decided in D3E call that events can be defined more precisely in the "host language" spec.
  1066. # [21:25] <annevk> CSSOM View
  1067. # [21:26] <sicking> CM: sounds like a meta-discussion. Would like to see specific proposals
  1068. # [21:26] <chaals> ack wei
  1069. # [21:26] * Zakim sees no one on the speaker queue
  1070. # [21:27] <sicking> SW: DOM Events seem like the wrong place to define when mouse events are fired since it involves hit testing
  1071. # [21:27] <sicking> SW: some other spec or specs could define hit testing
  1072. # [21:27] <sicking> CM: still sounds very meta to me
  1073. # [21:27] * Quits: arve (arve@212.251.179.162) (Quit: Ex-Chat)
  1074. # [21:27] * Joins: arve (arve@212.251.179.162)
  1075. # [21:28] <sicking> RESOLUTION: convertKeyValue will be removed from DOM L3 Events
  1076. # [21:29] <chaals> closing ISSUE-110
  1077. # [21:29] <sicking> if you can't follow that part of this transcript, I don't blame you
  1078. # [21:29] <chaals> in recess
  1079. # [21:29] <annevk> (after further consideration DS withdraw his objection)
  1080. # [21:29] * Quits: ArtB (48fe5d4c@128.30.52.43) (Quit: CGI:IRC (EOF))
  1081. # [21:30] <annevk> close ISSUE-110
  1082. # [21:30] * trackbot attempting to close ISSUE-110.
  1083. # [21:30] <trackbot> ISSUE-110 Should we remove the code-point conversion from the D3E spec? closed
  1084. # [21:30] * Quits: Marcos (Marcos@72.254.89.39) (Quit: Marcos)
  1085. # [21:30] * Quits: weinig (weinig@72.254.102.177) (Quit: weinig)
  1086. # [21:31] * Quits: shiki (sokasaka@72.254.102.153) (Quit: shiki)
  1087. # [21:31] * Quits: Nikunj (Adium@72.254.104.65) (Quit: Leaving.)
  1088. # [21:32] * Quits: Lachy (Lachlan@72.254.56.137) (Quit: This computer has gone to sleep)
  1089. # [21:34] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
  1090. # [21:34] * Quits: Travis (d8341cc5@128.30.52.43) (Quit: CGI:IRC (Ping timeout))
  1091. # [21:34] * Quits: MikeSmith (MikeSmithX@mcclure.w3.org) (Quit: Tomorrow to fresh woods, and pastures new.)
  1092. # [21:34] * Quits: sicking (chatzilla@72.254.57.85) (Ping timeout)
  1093. # [21:35] * Quits: annevk (opera@72.254.82.30) (Quit: annevk)
  1094. # [21:35] * Quits: Kai (chatzilla@72.254.88.78) (Ping timeout)
  1095. # [21:35] * Joins: Marcos (Marcos@72.254.89.39)
  1096. # [21:40] * Quits: mjs (mjs@72.254.84.91) (Quit: mjs)
  1097. # [21:47] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  1098. # [21:54] * Quits: myakura (myakura@72.254.84.172) (Quit: Leaving...)
  1099. # [21:54] * Quits: Marcos (Marcos@72.254.89.39) (Quit: Marcos)
  1100. # [21:56] * Quits: darobin (robin@72.254.94.220) (Ping timeout)
  1101. # [22:02] <Hixie> i'm in i18n but i'd like to attend the database stuff
  1102. # [22:02] <Hixie> so i'll be down when i can
  1103. # [22:05] * Quits: VagnerW3CBrasil (chatzilla@72.254.100.54) (Ping timeout)
  1104. # [22:08] * Joins: Nikunj (Adium@72.254.104.65)
  1105. # [22:09] * Quits: gsnedders (gsnedders@83.252.226.150) (Quit: gsnedders)
  1106. # [22:10] * Joins: MikeSmith (MikeSmithX@mcclure.w3.org)
  1107. # [22:12] <chaals> ok. we start at 13.30
  1108. # [22:13] * chaals notes that we have Ian from Google in the room, and Ian from Google coming here...
  1109. # [22:13] <Hixie> just call me Hixie :-)
  1110. # [22:13] <Hixie> or you can call him the Other Ian
  1111. # [22:13] <Hixie> either works :-P
  1112. # [22:14] <Dashiva> IIan
  1113. # [22:14] * Joins: tlr (tlr@128.30.52.169)
  1114. # [22:15] * Joins: Marcos (Marcos@72.254.89.39)
  1115. # [22:15] <chaals> ageenda+ different storage systems
  1116. # [22:15] <chaals> agenda+ different storage systems
  1117. # [22:15] * Zakim notes agendum 1 added
  1118. # [22:15] * Joins: markusm (mmielke@72.254.93.74)
  1119. # [22:16] <chaals> agenda+ Web DB (sqlite)
  1120. # [22:16] * Zakim notes agendum 2 added
  1121. # [22:16] <chaals> agenda+ WebSimpleDB
  1122. # [22:16] * Zakim notes agendum 3 added
  1123. # [22:16] <chaals> agenda+ datacache
  1124. # [22:16] * Zakim notes agendum 4 added
  1125. # [22:17] <chaals> zakim, allow this agendum 15 minutes
  1126. # [22:17] <Zakim> I do not know what agendum has been taken up, chaals
  1127. # [22:17] * chaals doesn't mind :)
  1128. # [22:18] * chaals hixie, do you want to talk about appcache or other stuff in this?
  1129. # [22:18] <Hixie> i can answer questions, not sure i have much to say though
  1130. # [22:18] * chaals just wanting to get the different pieces in the agenda for this session.
  1131. # [22:19] <Hixie> i'm happy to have a quick q&a
  1132. # [22:19] * chaals can ask again when we start if there are more pieces to put on the table.
  1133. # [22:19] <chaals> ok, we'll see if people have questions and schedule some time if so.
  1134. # [22:20] * Joins: Kai (chatzilla@72.254.88.78)
  1135. # [22:21] * Joins: mjs (mjs@72.254.84.91)
  1136. # [22:27] * Joins: Lachy (Lachlan@72.254.56.137)
  1137. # [22:28] * Joins: sicking (chatzilla@72.254.57.85)
  1138. # [22:32] * Joins: annevk (opera@72.254.82.30)
  1139. # [22:32] * Joins: weinig (weinig@72.254.102.177)
  1140. # [22:32] * Joins: shiki (sokasaka@72.254.102.153)
  1141. # [22:33] * Joins: shepazu (schepers@128.30.52.169)
  1142. # [22:35] <chaals> zakim, room for 4 for 90 minutes?
  1143. # [22:35] <Zakim> ok, chaals; conference Team_(webapps)21:35Z scheduled with code 26631 (CONF1) for 90 minutes until 2305Z
  1144. # [22:36] * Joins: jorlow (jorlow@72.254.58.121)
  1145. # [22:36] * Joins: Vladimir (chatzilla@72.254.119.66)
  1146. # [22:36] * Joins: michaeln (michaeln@72.254.82.239)
  1147. # [22:38] <Zakim> Team_(webapps)21:35Z has now started
  1148. # [22:38] <Zakim> +Widgets
  1149. # [22:38] <chaals> zakim, widgets is really apis-db-stuff
  1150. # [22:38] <Zakim> +apis-db-stuff; got it
  1151. # [22:38] * Joins: pcastro (d0735eed@128.30.52.43)
  1152. # [22:39] * Quits: Marcos (Marcos@72.254.89.39) (Quit: Marcos)
  1153. # [22:39] * Joins: adrianba (adrianba@72.254.111.48)
  1154. # [22:40] <timeless> ScribeNick: timeless
  1155. # [22:40] <chaals> pablo, did you get the code?
  1156. # [22:40] <timeless> Scribe: timeless
  1157. # [22:40] * Quits: smaug_ (chatzilla@82.181.150.24) (Quit: ChatZilla 0.9.85 [Firefox 3.7a1pre/20091015073430])
  1158. # [22:40] * chaals 1.617.761.6200 codde 26631
  1159. # [22:40] <pcastro> yes, thanks, will call in in a minute
  1160. # [22:40] <chaals> zakim, next agendum
  1161. # [22:40] <Zakim> agendum 1. "different storage systems" taken up [from chaals]
  1162. # [22:40] <chaals> zakim, agenda?
  1163. # [22:40] <Zakim> I see 4 items remaining on the agenda:
  1164. # [22:40] <Zakim> 1. different storage systems [from chaals]
  1165. # [22:40] <Zakim> 2. Web DB (sqlite) [from chaals]
  1166. # [22:40] <Zakim> 3. WebSimpleDB [from chaals]
  1167. # [22:40] <Zakim> 4. datacache [from chaals]
  1168. # [22:40] * Joins: pererik (pe@72.254.103.214)
  1169. # [22:40] <timeless> Topic: different storage systems
  1170. # [22:41] <Zakim> + +1.206.369.aaaa
  1171. # [22:41] <chaals> agenda+ filesystem
  1172. # [22:41] * Zakim notes agendum 5 added
  1173. # [22:41] * Joins: eric_uhrhane (48fe5208@64.62.228.82)
  1174. # [22:42] <chaals> zakim, aaaa is Chris
  1175. # [22:42] <Zakim> +Chris; got it
  1176. # [22:42] * timeless Zakim: who is on?
  1177. # [22:42] <Zakim> -Chris
  1178. # [22:42] * Joins: ifette (kvirc@72.254.95.41)
  1179. # [22:42] <Zakim> +Chris
  1180. # [22:43] <ifette> Zakim, who's here?
  1181. # [22:43] <Zakim> On the phone I see apis-db-stuff, Chris
  1182. # [22:43] <Zakim> On IRC I see ifette, eric_uhrhane, pererik, adrianba, pcastro, michaeln, Vladimir, jorlow, shepazu, shiki, weinig, annevk, sicking, Lachy, mjs, Kai, markusm, tlr, MikeSmith,
  1183. # [22:43] <Zakim> ... Nikunj, arve, Zakim, JonathanJ, root, arun, chaals, timeless, aroben, hober, timely, Hixie, smaug, RRSAgent, karl, Dashiva, krijnh, fearphage, gavin_, gsnedders|work, inimino,
  1184. # [22:43] <Zakim> ... trackbot
  1185. # [22:43] <arun> pcastro, are you on the phone as well?
  1186. # [22:43] <ifette> Zakim, next agendum
  1187. # [22:43] <Zakim> agendum 2. "Web DB (sqlite)" taken up [from chaals]
  1188. # [22:44] <chaals> Topic: Multiple storage systems
  1189. # [22:44] <chaals> zakim, allow this agendum 15 minutes
  1190. # [22:44] <Zakim> ok, chaals
  1191. # [22:44] <timeless> chaals: We have a lot of these. how many are in conflict. how many are competing
  1192. # [22:45] <Hixie> IH: none and all respectively
  1193. # [22:45] <timeless> sicking: Web DB and Web SimpleDB are competing
  1194. # [22:45] <timeless> sicking: whatever we come up with for Web DB / Web Simple DB will replace a lot of localStorage
  1195. # [22:45] <Zakim> +[Microsoft]
  1196. # [22:45] <timeless> IanF: Are people trying to throw localStorage out the window or discourage it?
  1197. # [22:45] <timeless> sicking: the way things are going, localStorage is going to be racy
  1198. # [22:46] <timeless> ... even storing the numbers between 1 and 2, you should probably not use it
  1199. # [22:46] <timeless> chaals: at opera, we implemented web db
  1200. # [22:46] <timeless> ... we looked at web simple db. we found web db nice and simple
  1201. # [22:47] <arun> Web DB = The SQLite One
  1202. # [22:47] <arun> WebSimpleDB = The Nikunj One
  1203. # [22:47] <chaals> s/web db nice/the nikunj one/
  1204. # [22:48] <timeless> chaals: we found Nikunj to be more to our liking
  1205. # [22:48] <pcastro> arun: yes i'm on the phone as well, trying to follow
  1206. # [22:48] * Quits: JonathanJ (hollobit@72.254.93.129) (Quit: JonathanJ)
  1207. # [22:48] <timeless> chaals: we have implemented Nikunj internally
  1208. # [22:49] <ifette> s/Nikunj/WebDB/
  1209. # [22:49] * Joins: Travis (48fe5fc5@128.30.52.43)
  1210. # [22:49] <timeless> sicking: we don't have a data point
  1211. # [22:49] <timeless> ... we've had a lot of discussions, primarily with MS and Oracle
  1212. # [22:50] <timeless> ... Oracle stands behind Nikunj
  1213. # [22:50] <timeless> ... we've talked to a lot of developers
  1214. # [22:50] * arun Nikunj is an Oracle employee
  1215. # [22:50] <timeless> ... the feedback we got is that we really don't want SQL
  1216. # [22:50] * timeless nods
  1217. # [22:50] * timeless does remember that
  1218. # [22:50] * timeless just can't keep WebDB / WebSimpleDB straight
  1219. # [22:50] * timeless is also uncertain that chaals consistently used it
  1220. # [22:50] <timeless> IanF: We've implemented WebDB
  1221. # [22:51] <timeless> ... we're about to ship it
  1222. # [22:51] <timeless> MJS: We've implemented WebDB and have been shipping it for some time
  1223. # [22:51] <timeless> ... it's shipping in Safari
  1224. # [22:51] <annevk> IanF: we're also interested in the Nikunj One
  1225. # [22:51] <timeless> ... the Chrome implementation shares some but not quite all of the code
  1226. # [22:51] <timeless> ... beside shipping it, web sites have versions that target the iPhone and use it
  1227. # [22:52] <timeless> ... we can't easily drop it in the near future for that reason
  1228. # [22:52] <timeless> ... In principal, having a storage mechanism that is more sound than localStorage
  1229. # [22:52] <timeless> ... but more simple than WebDB would be good
  1230. # [22:52] <timeless> ... wrt localStorage, the current bits indeed have race conditions
  1231. # [22:52] <timeless> ... but adding APIs could possibly fix it
  1232. # [22:53] <timeless> ... SimpleDB / WebDB is probably impossible because of <too much something>
  1233. # [22:53] <timeless> jorlow: a large percentage of a lot of the web apps that google is looking at
  1234. # [22:53] <timeless> ... would need a large percentage of what is in SimpleDB
  1235. # [22:53] <timeless> ... in order to make an extended localStorage usable
  1236. # [22:54] <adrianba> q+
  1237. # [22:54] * Zakim sees adrianba on the speaker queue
  1238. # [22:54] <timeless> ... it would be fine to make localStorage do it, but it would require a lot of SimpleDB
  1239. # [22:54] <timeless> MJS: [lost]
  1240. # [22:54] * chaals thanks adrianba for using the queue :)
  1241. # [22:54] <timeless> Nikunj: [lost]
  1242. # [22:55] <timeless> Nikunj: (to MJS) do you want to keep the API as is or the functionality as is
  1243. # [22:55] <timeless> ... the localStorage API is synchronous only
  1244. # [22:55] <chaals> s/Nikunj: [lost]/We can make simpleDB do everything localstorage does/
  1245. # [22:55] <timeless> MJS: you would need to do a superset in order to handle locking
  1246. # [22:55] <chaals> q?
  1247. # [22:55] * Zakim sees adrianba on the speaker queue
  1248. # [22:55] <timeless> jorlow: Google is not happy with the various proposals
  1249. # [22:55] <chaals> ack adrianba
  1250. # [22:55] * Zakim sees no one on the speaker queue
  1251. # [22:56] <timeless> AB: Microsoft's position is that WebSimpleDB is what we'd like to see
  1252. # [22:56] <timeless> ... we don't think we'll reasonably be able to ship an interoperable version of WebDB
  1253. # [22:56] <timeless> ... trying to arrive at an interoperable version of SQL will be too hard
  1254. # [22:56] <timeless> ... what people want is a ...
  1255. # [22:56] * Joins: Marcos (Marcos@72.254.89.39)
  1256. # [22:57] <timeless> ... we think that WebDB (?) features is a starting point
  1257. # [22:57] <timeless> ... we don't plan to add to localStorage
  1258. # [22:57] <timeless> jorlow: so you don't plan to change localStorage
  1259. # [22:57] <timeless> AB: localStorage won't go away
  1260. # [22:57] <timeless> ... but we don't intend to extend it
  1261. # [22:58] <jorlow> s/plan to change localStorage/enhance localStorage...for example, implement the storage mutex/
  1262. # [22:58] <timeless> ... we don't think that people will be able to benefit from making it more complicated (?)
  1263. # [22:58] <timeless> sicking: I haven't thought about the idea of extending localStorage
  1264. # [22:59] <timeless> ... before i form a strong opinion, i'd like to see a proposal, but it seems hard
  1265. # [22:59] * chaals notes PC to timeless
  1266. # [22:59] <timeless> PC: [?]
  1267. # [22:59] <Zakim> chaals, agendum 2 was to have been concluded at this time
  1268. # [22:59] * chaals PC is pablo Castro on the phone.
  1269. # [22:59] <timeless> michaeln: SimpleDB doesn't overlap with localStorage
  1270. # [22:59] <timeless> ... there are no events in SimpleDB
  1271. # [22:59] <timeless> MJS: so it isn't a superset of (localStorage) functionality
  1272. # [23:00] <chaals> PC: Don't see that it is interesting to try and extend localstorage
  1273. # [23:00] <timeless> sicking: there's always value in having less features
  1274. # [23:00] <timeless> MJS: localStorage is rather nascent, but it seems rather unfortunate that we're discussing orphaning it
  1275. # [23:00] <pcastro> yes, i agree, extending localStorage to cover the functionality of SimpleDB is the same as introducing a new simpledb API, given the delta...
  1276. # [23:00] <timeless> sicking: I agree, but i haven't seen any workable proposals
  1277. # [23:00] <timeless> PC: localStorage is useful for simple tasks
  1278. # [23:01] <timeless> ... for registry keys (preferences) in windows apis
  1279. # [23:01] <timeless> sicking: the problem with it is the raciness
  1280. # [23:01] <timeless> ... no one working on a multi process browser has safely handled this
  1281. # [23:01] <timeless> chaals: we're out of time.
  1282. # [23:01] <timeless> ... there's a lot of push for Nikunj
  1283. # [23:01] <timeless> ... where does that leave WebDB?
  1284. # [23:01] <timeless> ... Apple can't stop shipping it
  1285. # [23:01] <timeless> ... Google will be shipping it
  1286. # [23:02] <timeless> ... Opera has not yet shipped it
  1287. # [23:02] <timeless> ... but it's likely we will as people have built on it
  1288. # [23:02] <timeless> sicking: I don't think mozilla plans to ship it
  1289. # [23:02] <timeless> DS: you could do the same things with Nikunj as with localStorage
  1290. # [23:03] <timeless> ... except storage events
  1291. # [23:03] <timeless> cwilson: the difference is...
  1292. # [23:03] <timeless> ... you get the ability to have a lot more data in it
  1293. # [23:03] <timeless> ... in a much more organized way
  1294. # [23:03] * Quits: Marcos (Marcos@72.254.89.39) (Quit: Marcos)
  1295. # [23:03] <annevk> (there's also sessionStorage, fwiw)
  1296. # [23:03] <chaals> s/cwilson/PC/
  1297. # [23:03] <timeless> ... you don't need to learn another language to get data in/out
  1298. # [23:03] * timeless cries
  1299. # [23:04] <timeless> chaals: i don't see a conclusion
  1300. # [23:04] * Joins: VagnerW3CBrasil (chatzilla@72.254.100.54)
  1301. # [23:04] <timeless> sicking: I don't have any plans to review WebDB
  1302. # [23:04] * Joins: darobin (robin@72.254.94.220)
  1303. # [23:04] <timeless> IH: I'd rather not spec WebDB if people don't want to ship it
  1304. # [23:04] <chaals> q+
  1305. # [23:04] * Zakim sees chaals on the speaker queue
  1306. # [23:04] <timeless> DS: I was talking with w3c people about the confusion
  1307. # [23:04] <timeless> ... there are several web storage proposals, and we think that it clutters developer mind space
  1308. # [23:05] <arun> q?
  1309. # [23:05] * Zakim sees chaals on the speaker queue
  1310. # [23:05] <timeless> IanF: I don't think people are in disagreement that it's sad
  1311. # [23:05] <timeless> ... it's a bit too late
  1312. # [23:05] <chaals> Topic: WebDB - sql lite
  1313. # [23:05] <timeless> ... let's look at something else, but let's move on
  1314. # [23:05] <timeless> cwilson: I don't know if anyone has suggested on the group of killing off WebDB on the list
  1315. # [23:05] <timeless> DS: except the editor
  1316. # [23:05] <timeless> [ laughs of agreement ]
  1317. # [23:06] <timeless> MJS: it sounds like there will be multiple shipping implementations
  1318. # [23:06] <timeless> cwilson: it seems with multiple interoperable implementations
  1319. # [23:06] <timeless> ... that you can't really call it stillborn
  1320. # [23:06] <ifette> s/q+
  1321. # [23:06] <ifette> q+
  1322. # [23:06] * Zakim sees chaals, ifette on the speaker queue
  1323. # [23:06] <timeless> ... when we started looking at WebDB
  1324. # [23:06] <timeless> ... the reason we liked Nikunj was that it doesn't impose
  1325. # [23:06] <timeless> ... but it has the power
  1326. # [23:07] <timeless> ... the part that concerned us with WebDB is that it presupposes SQLite
  1327. # [23:07] <timeless> ... we're not really sure
  1328. # [23:07] <timeless> IanF: i don't think anyone disagrees
  1329. # [23:07] <ifette> q-
  1330. # [23:07] * Zakim sees chaals on the speaker queue
  1331. # [23:07] <timeless> ... I haven't heard anyone say they don't like Nikunj , i've heard a lot of interest in it
  1332. # [23:07] <timeless> IH: Proposal
  1333. # [23:08] <timeless> ... all the browsers shipping WebDB are WebKit based
  1334. # [23:08] <timeless> ... proposal: we move WebDB to WebKit.org, and we kill it as a deliverable from this group
  1335. # [23:08] <timeless> chaals: I think we're likely to ship it
  1336. # [23:08] <shepazu> q+
  1337. # [23:08] * Zakim sees chaals, shepazu on the speaker queue
  1338. # [23:08] * Joins: Marcos (Marcos@72.254.89.39)
  1339. # [23:08] <chaals> ack cha
  1340. # [23:08] * Zakim sees shepazu on the speaker queue
  1341. # [23:08] <timeless> IH: I don't want to work on a spec without 5/5 impls
  1342. # [23:08] <timeless> DS: Is it possible to take what is speced in WebDB, freeze it,
  1343. # [23:09] <timeless> ... take the interface layer, and stick it onto Nikunj ?
  1344. # [23:09] <timeless> [all] : No.
  1345. # [23:09] <chaals> ack arun
  1346. # [23:09] * Zakim sees shepazu on the speaker queue
  1347. # [23:09] <chaals> q+
  1348. # [23:09] * Zakim sees shepazu, chaals on the speaker queue
  1349. # [23:09] <timeless> arun: suppose the freezing part was taken seriously
  1350. # [23:09] <timeless> ... is that sufficient, or is there more spec needed to be written?
  1351. # [23:09] <timeless> IH: well, there's the SQL part
  1352. # [23:09] <chaals> q+ sam
  1353. # [23:09] * Zakim sees shepazu, chaals, sam on the speaker queue
  1354. # [23:09] <timeless> ... we could say that the SQL part is SQLite 3's dialect
  1355. # [23:10] <ifette> q+ sam
  1356. # [23:10] * Zakim sees shepazu, chaals, sam on the speaker queue
  1357. # [23:10] <chaals> ack she
  1358. # [23:10] * Zakim sees chaals, sam on the speaker queue
  1359. # [23:10] <chaals> ack sam
  1360. # [23:10] * Zakim sees chaals on the speaker queue
  1361. # [23:10] <pcastro> q+
  1362. # [23:10] * Zakim sees chaals, pcastro on the speaker queue
  1363. # [23:10] <ifette> sam: spoke
  1364. # [23:10] * darobin Marcos: can we get your miniDVI to VGA adapter?
  1365. # [23:10] <timeless> Sam: Apple and Google have expressed an interest in added full text search to the api we've used
  1366. # [23:11] <timeless> jorlow: that's extremely important to Google too
  1367. # [23:11] <pcastro> q-
  1368. # [23:11] * Zakim sees chaals on the speaker queue
  1369. # [23:11] <timeless> [ audience squirmed relating to some Xsomething api]
  1370. # [23:11] <chaals> ack me
  1371. # [23:11] * Zakim sees no one on the speaker queue
  1372. # [23:11] <timeless> IH: most of the people are asking me to spec Nikunj (?)
  1373. # [23:12] <timeless> chaals: moving along
  1374. # [23:12] <timeless> ... proposal: WebDB remains as a deliverable
  1375. # [23:12] <pcastro> q+
  1376. # [23:12] * Zakim sees pcastro on the speaker queue
  1377. # [23:12] <timeless> ... we ask IH to do the minimal level to satisfy the implementors
  1378. # [23:12] <timeless> RESOLVED: [above]
  1379. # [23:13] <chaals> zakim, next agendum
  1380. # [23:13] <Zakim> I see a speaker queue remaining and respectfully decline to close this agendum, chaals
  1381. # [23:13] <chaals> q-
  1382. # [23:13] * Zakim sees pcastro on the speaker queue
  1383. # [23:13] <ifette> RESOLUTION: hixie does minimal work to get this to a point the shipping browsers are happy with, if he goes nuts we will put up resources to finish it
  1384. # [23:13] <chaals> q- pablo
  1385. # [23:13] * Zakim sees pcastro on the speaker queue
  1386. # [23:13] * Joins: JonathanJ (hollobit@72.254.93.129)
  1387. # [23:13] <arun> ack pcastro
  1388. # [23:13] * Zakim sees no one on the speaker queue
  1389. # [23:13] <chaals> zakim, next agendum
  1390. # [23:13] <Zakim> agendum 3. "WebSimpleDB" taken up [from chaals]
  1391. # [23:14] <timeless> chaals: do we really want to talk about filesystem?
  1392. # [23:14] <timeless> arun: no
  1393. # [23:14] <timeless> ianf: no, except to remember it exists
  1394. # [23:14] <chaals> zakim drop agendum 5
  1395. # [23:14] <chaals> zakim, drop agendum 5
  1396. # [23:14] <Zakim> agendum 5, filesystem, dropped
  1397. # [23:14] <ifette> s/ianf/ifette
  1398. # [23:14] <chaals> Topic: Web Simple DB
  1399. # [23:15] <ifette> s/DB/DB (nikunj)
  1400. # [23:15] <chaals> s/DB/(Nikunj) DB/
  1401. # [23:15] <timeless> chaals: ack Nikunj
  1402. # [23:15] <timeless> [ Nikunj asks for projection ]
  1403. # [23:16] <ifette> Zakim, allow this agendum 30 minutes
  1404. # [23:16] <Zakim> ok, ifette
  1405. # [23:16] <timeless> [ chaals asks for intros from lurkers ]
  1406. # [23:16] <timeless> Donald from ETH Zurich
  1407. # [23:16] <timeless> Donald: We've implemented XQuery that runs in IE and FF, and hopefully soon in Chrome/Opera/Safari
  1408. # [23:17] * Joins: gsnedders (gsnedders@83.252.226.150)
  1409. # [23:17] <timeless> Ghislain a student of Donald
  1410. # [23:17] <timeless> Dana from Oracle
  1411. # [23:17] <timeless> HTML working group chair
  1412. # [23:18] * chaals satoshi
  1413. # [23:18] <timeless> Satoshi
  1414. # [23:18] <timeless> [?] from Toshiba
  1415. # [23:18] * chaals s/[?]/gondo
  1416. # [23:19] <timeless> s/[?]/Gondo/
  1417. # [23:19] <timeless> Nikunj: there's a new draft, taking input from others and feedback from the mailing list
  1418. # [23:19] <chaals> Magnus, Ericsson
  1419. # [23:20] <timeless> Nikunj: there are some use cases we don't cover
  1420. # [23:20] <timeless> ... JS might want to do boolean expression evaluation
  1421. # [23:20] <timeless> ... the language for the expression isn't important
  1422. # [23:20] <timeless> ... but the necessary bits to efficiently implement this
  1423. # [23:20] <timeless> ... being able to store keys, iterate over keys in the index, operate over multiple keys at the same time
  1424. # [23:21] <timeless> Nikunj: I plan to add appendices to help with this (?)
  1425. # [23:21] <timeless> ... before the next working draft
  1426. # [23:21] <timeless> ... there are some open questions that i haven't addressed in this spec
  1427. # [23:21] <timeless> ... i'd like to lay out things to get feedback for alternate suggestions
  1428. # [23:22] <timeless> Nikunj: first, key types
  1429. # [23:22] <timeless> ... string/number
  1430. # [23:22] <timeless> ... the are fancier things that could be done, supporting structured clone as a key value
  1431. # [23:22] <chaals> [functions that evaluate to a value can be a key, too]
  1432. # [23:22] <timeless> ... there are various ways to make it fancier
  1433. # [23:23] <chaals> q?
  1434. # [23:23] * Zakim sees no one on the speaker queue
  1435. # [23:23] * timeless is kinda outa league here
  1436. # [23:23] <chaals> q+ ifette
  1437. # [23:23] * Zakim sees ifette on the speaker queue
  1438. # [23:23] <timeless> Nikunj: there are multiple ways to address this
  1439. # [23:23] <MikeSmith> RRSAgent, make minutes
  1440. # [23:23] <RRSAgent> I have made the request to generate http://www.w3.org/2009/11/02-webapps-minutes.html MikeSmith
  1441. # [23:23] * chaals wonders if people can help capture this
  1442. # [23:24] <timeless> Nikunj: there are three ways to do indexing
  1443. # [23:24] <timeless> ... 1. no indexing, the application manages the index manually
  1444. # [23:24] <timeless> ... 2. the index only knows about the store, but the useragent doesn't maintain that index
  1445. # [23:24] <timeless> ... it is only used by the application to look up things through the index
  1446. # [23:24] <timeless> ... 3. in addition to 2, the useragent actually maintains the index
  1447. # [23:25] <timeless> Nikunj: option 1 is supported
  1448. # [23:25] <timeless> ... option 3 is supported with constraints on the key path
  1449. # [23:25] <ifette> q+ to ask question aboujt indicies
  1450. # [23:25] * Zakim sees ifette on the speaker queue
  1451. # [23:25] <timeless> ... option 2 is not supported
  1452. # [23:25] <timeless> ... option 3 is a simpler api but more complex implementation
  1453. # [23:25] <timeless> ... there's a contention between reducing the footprint of the api v. the footprint of the implementation
  1454. # [23:26] <timeless> ... there are tradeoffs across different engines
  1455. # [23:26] <timeless> ... i've tried to capture an implementation neutral api
  1456. # [23:26] <timeless> ... i'm requesting feedback to be categorized, api v. footprint
  1457. # [23:26] <timeless> ... i've received feedback on concurrency
  1458. # [23:27] <timeless> ... there are two models for concurrency
  1459. # [23:27] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  1460. # [23:27] <timeless> ... optimistic and pessimistic
  1461. # [23:27] <timeless> ... i've tried to avoid mandating an implementation
  1462. # [23:27] <timeless> ... implementations will choose based on their needs
  1463. # [23:27] <timeless> ... optimistic is better for high performance
  1464. # [23:27] <timeless> ... pessimistic is simpler
  1465. # [23:28] <timeless> ... in the spec, i've tried to identify conditions that can offer deadlock free behavior
  1466. # [23:28] <timeless> ... i believe the main concern, is that the average user will not be very good at recovering from
  1467. # [23:28] <timeless> ... deadlocks or optimistic concurrency failure
  1468. # [23:28] <timeless> ... the approach i've taken is to specify a behavior that is deadlock free
  1469. # [23:29] <timeless> ... and specify two levels of granularity that
  1470. # [23:29] <timeless> ... at the database, or an object store
  1471. # [23:29] <timeless> ArtB: could you document this in a blog?
  1472. # [23:29] <timeless> Nikunj: Object Store = Table
  1473. # [23:29] <timeless> DS: better in a requirements document than a blog
  1474. # [23:29] <chaals> --> http://dev.w3.org/2006/webapi/WebSimpleDB/ editor's draft
  1475. # [23:29] <ifette> q?
  1476. # [23:29] * Zakim sees ifette on the speaker queue
  1477. # [23:30] <timeless> Nikunj: let me start writing it in an appendix, and then we can move it to another document later
  1478. # [23:30] <timeless> q+ sicking
  1479. # [23:30] * Zakim sees ifette, sicking on the speaker queue
  1480. # [23:30] <chaals> ack ifette
  1481. # [23:30] <Zakim> ifette, you wanted to ask question aboujt indicies
  1482. # [23:30] * Zakim sees sicking on the speaker queue
  1483. # [23:30] <ifette> q= ifette,sicking
  1484. # [23:30] * Zakim ifette, if you meant to query the queue, please say 'q?'; if you meant to replace the queue, please say 'queue= ...'
  1485. # [23:30] <ifette> queue=ifette,sicking
  1486. # [23:30] * Zakim sees ifette, sicking on the speaker queue
  1487. # [23:30] <ifette> \
  1488. # [23:30] <timeless> Nikunj: two levels of deadlock free concurrency
  1489. # [23:30] <timeless> ... comparing with WebDB
  1490. # [23:30] <timeless> ... where we only do database level concurrency
  1491. # [23:30] <chaals> scribe: Chaals
  1492. # [23:31] <chaals> ... and object storage level
  1493. # [23:31] <chaals> s/storage/store
  1494. # [23:31] <jorlow> q+ to full text indexes
  1495. # [23:31] * Zakim sees ifette, sicking, jorlow on the speaker queue
  1496. # [23:31] <chaals> ... main pont is that people have asked for even more concurrency where possible.
  1497. # [23:31] <timeless> s/pont/point/
  1498. # [23:31] <chaals> ... optimistic concurrency control and management, but there is a risk of failiures in concurrency management that exposes programmer to requiring recovery
  1499. # [23:32] <chaals> ... proposal is to allow that to programmers through exiting API knowing that can lead to exceptions that need recover
  1500. # [23:32] <timeless> s/exiting/existing/
  1501. # [23:32] <chaals> ... could be left out, would be easy to implement in any DB that allows that leel of concurrency. Question for the working group (and whether people like it)
  1502. # [23:32] <ifette> q?
  1503. # [23:32] * Zakim sees ifette, sicking, jorlow on the speaker queue
  1504. # [23:32] <chaals> ... Propose to leave it in, as an appendix outside the basic part so people don't stumble.
  1505. # [23:32] <timeless> ack ifette
  1506. # [23:32] * Zakim sees sicking, jorlow on the speaker queue
  1507. # [23:33] <chaals> IF: Wanted to jump back to indices. What do the 3 options mean for an app developer with a lot of data
  1508. # [23:33] <chaals> ... assume 20GB database of integers. Which option gives me a Btree in the user agent, instead of in JS
  1509. # [23:33] <chaals> NM: The btree is in the user agent. you only pull out the data you are looking to consume.
  1510. # [23:34] <chaals> ... to find out which pieces of data match the two conditions, you have to do the join yourself.
  1511. # [23:34] <chaals> ... People feel that a user agent implementation of that might be too rigid, and doing it in the app will be almost as performant.
  1512. # [23:34] <chaals> ... Limiting the amount of data you pull out will be easier for the app than the UA to get right - but this is open to feedback
  1513. # [23:35] <chaals> IF: Scares me but I need to go back and get more detail.
  1514. # [23:35] <chaals> ... What base index types do you expect all UAs to support?
  1515. # [23:35] <chaals> NM: Use case for me is a boolean index exression evaluation. Another use case is keyword and context - fulltext.
  1516. # [23:36] <chaals> ... you could create keword/context index, but will not perform as well as done natively.
  1517. # [23:36] <chaals> ... We can include that but it isn't included in the current draft - or we could put it in a v2. There is also hashindex which is not specced - we just have btree.
  1518. # [23:36] <chaals> IF: To use this for gmail we have to be able to do fulltext and we don't think we can do that performant in JS so we would like native code to do that.
  1519. # [23:36] <chaals> ... For v1
  1520. # [23:37] <chaals> NM: In some discussions we can provide keyword/context, but fulltext incoroprates some more concepts that can get hairy in different languages. It should perform aequately with a qiuck index.
  1521. # [23:37] <chaals> ... fulltext is probably a bigger spec than websimpleDB.
  1522. # [23:38] <chaals> [clarification of fulltext vs keyword/context]
  1523. # [23:38] <timeless> q?
  1524. # [23:38] * Zakim sees sicking, jorlow on the speaker queue
  1525. # [23:38] <chaals> IF: If we had a quick index that might suffice... let's come back
  1526. # [23:38] <chaals> ack sic
  1527. # [23:38] * Zakim sees jorlow on the speaker queue
  1528. # [23:38] <chaals> JS: The issue I found most controversial internally has been the concurrency issue
  1529. # [23:38] * Joins: tlr_ (tlr@128.30.52.169)
  1530. # [23:39] <chaals> [ed. Jonas said the unfancy word :P]
  1531. # [23:39] <chaals> JS: In general we aim to avoid race conditions and deadlocks. sql api uses a simple lock - touch it once and everything locks until you leave it - no risk but performance issues.
  1532. # [23:40] <chaals> ... I have argued that there are a range of solutions between the extremes, where we can lock fine-grained without having the risks. Should we try to find such a solution or say people who use this need to be smart enough to deal with such lock/race conditions.
  1533. # [23:41] <chaals> NM: Share your concerns in dumping deadlock recovery on programmer. THink spec as written now has more concurrency than usual - offers a model where readers don't block writers so long as they are not on the same bit.
  1534. # [23:41] <chaals> ... If application doesn't want to choose, we do the safe thing. If they want to choose they can have deadlock-free concurrency. Open to hearing of such mechanisms we can offer, and found 3
  1535. # [23:42] <chaals> IF: 3 options are all guaranteed to be dealock-free. Is that a hard requirement or could we offer low-level locking ???
  1536. # [23:42] <chaals> NM: That is possible and is supported in the spec but doesn't mean that we have to have it. Have been warned that optional behaviours don't get implemented or cause introperability problems.
  1537. # [23:43] <chaals> JS: There had been an idea of allowing a fallback to a locking model, but optional features generally lead to a race to the bottom. Think we should mandate that all locking mechanisms are required.
  1538. # [23:43] <MikeSmith> i/JS: my concern is that/scribenick: sicking
  1539. # [23:43] <timeless> q?
  1540. # [23:43] * Zakim sees jorlow on the speaker queue
  1541. # [23:43] <MikeSmith> RRSAgent, make minutes
  1542. # [23:43] <RRSAgent> I have made the request to generate http://www.w3.org/2009/11/02-webapps-minutes.html MikeSmith
  1543. # [23:43] <chaals> NM: Yes you can add levels of granularity as well as deadlock free mechanisms
  1544. # [23:43] <timeless> ack j
  1545. # [23:43] <Zakim> jorlow, you wanted to full text indexes
  1546. # [23:43] * Zakim sees no one on the speaker queue
  1547. # [23:44] <chaals> JO: Question about joins - sounds like you took them out to keep the implementation simpler
  1548. # [23:44] <chaals> NM: And keep the API smaller
  1549. # [23:44] * tlr_ is now known as tlr
  1550. # [23:44] <chaals> JO: Main concern was implementing joins in Javascript.
  1551. # [23:45] <chaals> NM: Spec was originally written on berkeleyDB which had no way to retrieve object based on key index. had a way to join dbs but we added a way to lookup an object from the index and treating the indices, and use of joins dropped.
  1552. # [23:45] <chaals> JO: So if you have two large parts of the DB with small verlap, doing that in JS is going to be inefficient.
  1553. # [23:45] <chaals> IF: Fulltext is an example - like that.
  1554. # [23:46] <Zakim> ifette, agendum 3 was to have been concluded at this time
  1555. # [23:46] <ifette> Zakim, thank you for the oh so curteous reminder
  1556. # [23:46] <Zakim> I don't understand you, ifette
  1557. # [23:46] <chaals> JO: In Gmail example, if you are searching for a to and from address you might have zillions of addresses so it might be a big burden on the system
  1558. # [23:46] <ifette> Zakim, who's your daddy?
  1559. # [23:46] <Zakim> Ralph is taking good care of me but you all are my family, ifette
  1560. # [23:47] <chaals> NM: there is no expectation in the set that an entire dataset has to go into memory. because itis btree the two indices are sortedin the same order so it reduces the amount you need to work over.
  1561. # [23:47] <chaals> JO: If you have 10k items, that's heavy
  1562. # [23:47] <chaals> NM: Marshalling cost is high
  1563. # [23:47] <chaals> IF: When using the same index repeatedly, how complex?
  1564. # [23:48] <weinig> q+
  1565. # [23:48] * Zakim sees weinig on the speaker queue
  1566. # [23:48] <chaals> NM: if needed it would be an extrsa feature in the spec
  1567. # [23:48] <chaals> SW: concrete question - a person coming from SQL API - how different is the code they have to write, what is the conversion
  1568. # [23:48] <chaals> NM: A user programming against the API?
  1569. # [23:49] <chaals> SW: Sure
  1570. # [23:49] <chaals> NM: In use cases, we don't expect people to program against the spec, but use JS libraries. But we want to make it possible to program against directly.
  1571. # [23:49] <arun> q?
  1572. # [23:49] * Zakim sees weinig on the speaker queue
  1573. # [23:49] <arun> q+
  1574. # [23:49] * Zakim sees weinig, arun on the speaker queue
  1575. # [23:49] <chaals> ... if you are using a mapping laer here there will be no real difference
  1576. # [23:49] <chaals> SW: Is there precedence for adding a new API mostly for middleware?
  1577. # [23:50] <chaals> Timeless: We added a lot of stuff to libraries against APIs
  1578. # [23:50] * Quits: annevk (opera@72.254.82.30) (Quit: annevk)
  1579. # [23:50] <chaals> AR: It is wise to look at this API to make simple things simple, but look at allowing libraries to straddle it.
  1580. # [23:51] <ifette> q+
  1581. # [23:51] * Zakim sees weinig, arun, ifette on the speaker queue
  1582. # [23:51] <chaals> SW: Not sure that this is simpler for a simple query, which is the basic use case for a DB
  1583. # [23:51] <chaals> ack we
  1584. # [23:51] * Zakim sees arun, ifette on the speaker queue
  1585. # [23:51] <chaals> AR: Not sure how much more simpler it will be to use SQL
  1586. # [23:51] * Quits: Lachy (Lachlan@72.254.56.137) (Connection reset by peer)
  1587. # [23:51] <ifette> jonas: most people use XHR via libraries
  1588. # [23:52] <chaals> JS: XHR is generally used through libraires - there are direct usage but a lot of Dojo. The other one is the WebGL, that is meant to be used like that
  1589. # [23:52] * Joins: Lachy (Lachlan@72.254.56.137)
  1590. # [23:52] <chaals> SW: remains to be seen for WebGL
  1591. # [23:52] <chaals> AR: Think XHR is a good answer for Sam's question.
  1592. # [23:52] <chaals> SW: Would like to see simple examples converted and how easy they are
  1593. # [23:52] <chaals> NM: Those are already in the front of the spec.
  1594. # [23:53] <chaals> JS: Depends heavily on the SQL string that you are passing in. Lots of X-table joins will be harder, looking up simple table stuff is just as simple.
  1595. # [23:53] <ifette> q?
  1596. # [23:53] * Zakim sees arun, ifette on the speaker queue
  1597. # [23:53] <arun> ack arun
  1598. # [23:53] * Zakim sees ifette on the speaker queue
  1599. # [23:53] <chaals> ack if
  1600. # [23:53] * Zakim sees no one on the speaker queue
  1601. # [23:54] <chaals> IF: In terms of the world, Mozilla won't implement WebDB, and we want to get Gmail working with a DB and there are others who want to get apps working. Plus or minus some detail, it seems Web Simple Database can do taht
  1602. # [23:54] <chaals> [bike shedding]
  1603. # [23:54] <arun> q+
  1604. # [23:54] * Zakim sees arun on the speaker queue
  1605. # [23:54] <chaals> ... I can make my app work with this.
  1606. # [23:54] <ifette> s/this/this probably/
  1607. # [23:54] * ifette growls at chaals
  1608. # [23:54] <chaals> AR: Would like to see libraries that straddle this
  1609. # [23:55] * chaals notes if wasn't doing the bike shedding
  1610. # [23:55] <chaals> Topic: DataCache
  1611. # [23:55] <chaals> s/[bike shedding]//
  1612. # [23:55] * timeless chuckles
  1613. # [23:55] <chaals> SW: It would be nice to see a performance analysis
  1614. # [23:55] * arun doesn't own a shed
  1615. # [23:56] <chaals> NM: Yes, we need implementation experience to do that.
  1616. # [23:56] * arun but owns some bikes
  1617. # [23:56] * chaals thinks arun should get a simple one
  1618. # [23:56] * arun stuff it chaals
  1619. # [23:56] * ifette thinks the shed should be blue
  1620. # [23:56] * ifette or some other primary color
  1621. # [23:56] * Joins: Magnus (rooms@72.254.104.46)
  1622. # [23:56] <chaals> NM: Bulk of feedback on data caching / http interception seems like appcache but it uses different terminology.
  1623. # [23:56] <chaals> ... people didn't know what they would need to make it happen.
  1624. # [23:57] <jorlow> q+ to ask about why this isn't layered on AppCache
  1625. # [23:57] * Zakim sees arun, jorlow on the speaker queue
  1626. # [23:57] <chaals> ... Working draft published last week uses same mechanisms as appcache to describe it. Not identical. The model by which application ahs access to the cache is similar. There are a few differences
  1627. # [23:57] <arun> ack arun
  1628. # [23:57] * Zakim sees jorlow on the speaker queue
  1629. # [23:57] <chaals> ... appcache doesn't take full headers into account, data cache does
  1630. # [23:58] <chaals> ... When first adding something to the datacache the value was in a cookie and the ambient auth is matched against the cookie value without the app specifying stuff for offline auth.
  1631. # [23:58] <chaals> ... works as expected for online auth. Means there is ont just one datacache - ther are different cookies that authorise different things in the same origin, so different caches.
  1632. # [23:59] * Quits: MikeSmith (MikeSmithX@mcclure.w3.org) (Ping timeout)
  1633. # [23:59] <chaals> MM: Browser has several forms of auth. reason to check cookies seem to apply to http auth as well.
  1634. # [23:59] <chaals> NM: Yes, that is very valid. In this ersion we are only dfoing cookie, but no reason why it has to be that way.
  1635. # Session Close: Wed Nov 04 00:00:00 2009

The end :)