/irc-logs / w3c / #webapps / 2010-03-24 / end

Options:

  1. # Session Start: Wed Mar 24 00:00:00 2010
  2. # Session Ident: #webapps
  3. # [00:05] * Joins: shepazu (schepers@128.30.52.169)
  4. # [00:43] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
  5. # [01:12] * Quits: smaug (chatzilla@82.181.150.24) (Quit: ChatZilla 0.9.86 [Firefox 3.7a3pre/20100307190058])
  6. # [01:32] * Joins: smaug (chatzilla@82.181.150.24)
  7. # [01:46] * Joins: dydz (dydz@75.37.27.246)
  8. # [02:44] * Quits: Nikunj (Adium@64.186.167.205) (Ping timeout)
  9. # [03:07] * Quits: anne (annevk@83.85.115.123) (Ping timeout)
  10. # [03:56] * Joins: Nikunj (Adium@98.234.66.20)
  11. # [04:08] * Quits: Nikunj (Adium@98.234.66.20) (Quit: Leaving.)
  12. # [05:23] * Joins: Nikunj (Adium@98.234.66.20)
  13. # [05:51] * Joins: shepazu (schepers@128.30.52.169)
  14. # [06:29] * Quits: Nikunj (Adium@98.234.66.20) (Ping timeout)
  15. # [06:54] * Quits: hober (ted@174.143.153.77) (Ping timeout)
  16. # [06:55] * Quits: gsnedders (gsnedders@204.232.194.186) (Ping timeout)
  17. # [06:56] * Joins: gsnedders (gsnedders@204.232.194.186)
  18. # [09:39] * Joins: anne (annevk@83.85.115.123)
  19. # [09:53] * Quits: dydz (dydz@75.37.27.246) (Quit: dydz)
  20. # [12:28] * Joins: ArtB (chatzilla@192.100.124.219)
  21. # [13:05] * Quits: Marcos (Marcos@213.236.208.22) (Ping timeout)
  22. # [13:07] * Joins: Lachy (Lachlan@124.171.250.216)
  23. # [13:17] * Quits: Lachy (Lachlan@124.171.250.216) (Ping timeout)
  24. # [13:24] * Joins: Lachy (Lachlan@124.171.250.216)
  25. # [13:26] * Joins: aroben (aroben@71.58.77.15)
  26. # [13:47] * Joins: MikeSmith (MikeSmith@128.31.35.229)
  27. # [14:03] * Joins: dydz (dydz@75.37.27.246)
  28. # [14:18] * Quits: MikeSmith (MikeSmith@128.31.35.229) (Ping timeout)
  29. # [14:19] * Joins: MikeSmith (MikeSmith@128.31.35.229)
  30. # [14:29] * Joins: Marcos (Marcos@213.236.208.247)
  31. # [14:30] * Quits: Marcos (Marcos@213.236.208.247) (Connection reset by peer)
  32. # [14:30] * Joins: Marcos_ (Marcos@213.236.208.247)
  33. # [14:34] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
  34. # [14:34] * Quits: Marcos_ (Marcos@213.236.208.247) (Connection reset by peer)
  35. # [14:34] * Joins: Marcos (Marcos@213.236.208.247)
  36. # [14:45] * Quits: Marcos (Marcos@213.236.208.247) (Ping timeout)
  37. # [14:46] * Joins: Marcos (Marcos@213.236.208.247)
  38. # [14:50] * Quits: dydz (dydz@75.37.27.246) (Quit: dydz)
  39. # [14:51] * Quits: Marcos (Marcos@213.236.208.247) (Quit: Marcos)
  40. # [15:21] * Joins: Nikunj (Adium@98.234.66.20)
  41. # [15:24] * Joins: tlr (tlr@128.30.52.169)
  42. # [15:39] * Quits: Nikunj (Adium@98.234.66.20) (Ping timeout)
  43. # [15:43] * Joins: Nikunj (Adium@98.234.66.20)
  44. # [15:47] * Quits: Nikunj (Adium@98.234.66.20) (Quit: Leaving.)
  45. # [16:04] * Joins: shepazu (schepers@128.30.52.169)
  46. # [16:18] * Joins: dydz (dydz@75.37.27.246)
  47. # [17:09] * Quits: MikeSmith (MikeSmith@128.31.35.229) (Quit: Till kicked and torn and beaten out he lies, and leaves his hold and crackles, groans, and dies.)
  48. # [17:18] * Joins: Nikunj (Adium@64.186.167.205)
  49. # [17:28] * Quits: dydz (dydz@75.37.27.246) (Quit: dydz)
  50. # [18:01] * Joins: hober (ted@174.143.153.77)
  51. # [18:24] <timeless_mbp> Nikunj: ping
  52. # [18:27] * Joins: MikeSmith (MikeSmith@128.31.35.229)
  53. # [18:48] <Nikunj> yes
  54. # [18:48] <Nikunj> Who is that?
  55. # [18:53] <timeless_mbp> it's me :)
  56. # [18:53] <timeless_mbp> technically we met at TPAC
  57. # [18:53] <timeless_mbp> i can't remember if i was minuting when you were speaking, it's possible
  58. # [18:53] <Nikunj> I am not very familiar with your alias
  59. # [18:53] <Nikunj> Oh yeah I remember that
  60. # [18:54] <timeless_mbp> well, i'm officially just timeless, the _mbp is my mac
  61. # [18:54] <timeless_mbp> http://dev.w3.org/2006/webapi/WebSimpleDB/
  62. # [18:54] <Nikunj> Did you have a question for me?
  63. # [18:54] <timeless_mbp> at the beginning, there's an example
  64. # [18:54] <timeless_mbp> > If an exact match is not found, the next matching author is located.
  65. # [18:54] <timeless_mbp> the last part of that 'the next matching author is located' ...
  66. # [18:55] <timeless_mbp> i don't see that in the sample code
  67. # [18:55] <Nikunj> Ah I se
  68. # [18:56] <timeless_mbp> sorry, i'm one of the pickier reviewers, so it'll take me a while and well… this is the kind of stuff i spot
  69. # [18:56] <timeless_mbp> i presume that fragment just needs to be replaced
  70. # [18:56] <Nikunj> Actually, this is a remnant from prior versions
  71. # [18:56] * timeless_mbp nods
  72. # [18:56] <Nikunj> This needs to go. Thanks for pointing out
  73. # [18:56] <timeless_mbp> it seemed likely
  74. # [18:57] <timeless_mbp> oh gah
  75. # [18:57] <timeless_mbp> out of curiosity, have you checked your xref's recently?
  76. # [18:57] <Nikunj> I checked them the last time we did a WD pub
  77. # [18:57] <timeless_mbp> (and do the owners of the xref'd documents know you're xref'ing to them)
  78. # [18:57] <Nikunj> I am not sure about the second part
  79. # [18:58] <timeless_mbp> if you're (relatively) confident they're right, then i'll skip checking them
  80. # [18:58] * timeless_mbp tries to be lazy
  81. # [18:59] <Nikunj> I see that there are some broken anchors inside the document
  82. # [18:59] <Nikunj> Seem to have crept up since the last WD
  83. # [19:00] <Nikunj> The last WD doesn't have those errors
  84. # [19:00] <Nikunj> And I committed the fix to the example text
  85. # [19:01] <timeless_mbp> > 3.1 Constructs
  86. # [19:01] <timeless_mbp> > Each record consists of a key and some value.
  87. # [19:01] <timeless_mbp> is there a reason you use 'some' instead of 'a' ?
  88. # [19:01] <Nikunj> not really
  89. # [19:01] * Quits: ArtB (chatzilla@192.100.124.219) (Client exited)
  90. # [19:01] <timeless_mbp> > a user agent needs to organize each record by its key.
  91. # [19:02] <timeless_mbp> i'd change 'by' to 'according to', i think
  92. # [19:02] <timeless_mbp> (and change that 'some' to 'a' ...)
  93. # [19:02] <Nikunj> got both
  94. # [19:03] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  95. # [19:03] <timeless_mbp> > Conforming user agents must support the use of values of IDL data types [WEBIDL] DOMString and long as well as the value null as keys.
  96. # [19:03] <timeless_mbp> hrm
  97. # [19:03] <timeless_mbp> you have an 'and' and 'as well as', which kinda bothers me
  98. # [19:04] <timeless_mbp> but the only easy fix for that would be 'null and the IDL data types [WEBIDL]DOMString and long'
  99. # [19:04] <timeless_mbp> and i'm not really sure that's much better
  100. # [19:05] <timeless_mbp> > For purposes of comparison, a DOMString key is always evaluated higher than any long key.
  101. # [19:05] <timeless_mbp> > Moreover, null always evaluates lower than any DOMString or long key.
  102. # [19:05] <timeless_mbp> i think you want 'greater' and 'less'
  103. # [19:06] <timeless_mbp> > Only data types with natural ordering can be used as keys. The ECMAScript undefined cannot be used as a key.
  104. # [19:06] <timeless_mbp> should you use RFC MUST/MAY/ instead of 'can/cannot' ?
  105. # [19:06] <Nikunj> sorry I had to step away
  106. # [19:06] <timeless_mbp> no problem, i'm going to run through the document linearly
  107. # [19:07] <timeless_mbp> i don't require synchronous responses :)
  108. # [19:07] * Joins: tlr (tlr@128.30.52.169)
  109. # [19:07] <timeless_mbp> > A database may choose to derive a key from the contents of the value being stored. In such a case, only Object instances may be stored as values.
  110. # [19:07] <timeless_mbp> is the 'may' here RFCish?
  111. # [19:07] * Quits: tlr (tlr@128.30.52.169) (Client exited)
  112. # [19:07] * Joins: tlr (tlr@128.30.52.169)
  113. # [19:07] <timeless_mbp> > Only the direct enumerable properties of a stored Object instance can be used to derive a key value.
  114. # [19:08] <timeless_mbp> is the can here an rfc 'should' ?
  115. # [19:08] * timeless_mbp looks for a third party
  116. # [19:08] * timeless_mbp tries to tag MikeSmith
  117. # [19:08] <timeless_mbp> > An object store is a persistent storage that ...
  118. # [19:09] <MikeSmith> can is not should
  119. # [19:09] <timeless_mbp> the 'a' here feels somewhat odd to me
  120. # [19:09] <MikeSmith> yeah, "storage" is not countable
  121. # [19:09] <timeless_mbp> (drop 'a')
  122. # [19:09] <timeless_mbp> yeah, i'm aware can!=should, the question is about intent :)
  123. # [19:10] <MikeSmith> it should be maybe, a "persistent storage mechanism", probably
  124. # [19:10] <MikeSmith> timeless_mbp: exactly
  125. # [19:10] <timeless_mbp> > An object store is a persistent storage that holds key-value pairs, also called records.
  126. # [19:10] <MikeSmith> "can" is ambiguous
  127. # [19:10] <timeless_mbp> is the complete sentence for reference
  128. # [19:10] <MikeSmith> what I said
  129. # [19:10] <MikeSmith> add "mechanism", I think
  130. # [19:10] <timeless_mbp> ok, what MikeSmith said :)
  131. # [19:11] <timeless_mbp> > An object store's records are sorted by keys so as to enable fast insertion and look up as well as ordered retrieval.
  132. # [19:11] <timeless_mbp> drop 'so as'
  133. # [19:11] <timeless_mbp> > An object store must have a unique key generator, if it uses keys generated from a monotonically increasing sequence.
  134. # [19:11] * timeless_mbp finds that sentence to be backwards
  135. # [19:12] <timeless_mbp> or just terribly confusing?
  136. # [19:12] * timeless_mbp goes to make more tea
  137. # [19:12] <MikeSmith> it tech writing, it's usually recommended to start conditional sentences with the "If" part
  138. # [19:12] <MikeSmith> if you just mean the wording
  139. # [19:13] <Nikunj> I caught up to a point
  140. # [19:13] <Nikunj> Let me ask a question
  141. # [19:13] <Nikunj> you said: "is the complete sentence for reference"
  142. # [19:13] <Nikunj> The answer is yes
  143. # [19:14] <Nikunj> alright
  144. # [19:15] <Nikunj> made changes based on all the comments so far
  145. # [19:16] <timeless_mbp> sorry, making tea :)
  146. # [19:16] * Joins: Travis (836b0055@128.30.52.43)
  147. # [19:16] <timeless_mbp> "is the complete sentence for reference" was for MikeSmith
  148. # [19:17] <timeless_mbp> > An object store must have a unique key generator, if it uses keys generated from a monotonically increasing sequence.
  149. # [19:17] <timeless_mbp> > Alternatively, if an application provides keys, they can either be identified as a part of the value being stored, also called in-line keys, or be identified separately, also called out-of-line keys.
  150. # [19:17] <Nikunj> I have changed both
  151. # [19:18] <Nikunj> Here's the new text
  152. # [19:18] <Nikunj> If an <a>object store</a> uses keys generated from a monotonically
  153. # [19:18] <Nikunj> increasing sequence, it MUST have a unique <dfn>key generator</dfn>.
  154. # [19:18] <Nikunj> Alternatively, if an application provides keys,
  155. # [19:18] <Nikunj> they MAY either be identified as a part of the value being stored,
  156. # [19:18] <Nikunj> also called <dfn>in-line keys</dfn>, or be identified separately, also
  157. # [19:18] <Nikunj> called <dfn>out-of-line keys</dfn>.
  158. # [19:18] <timeless_mbp> i worry about the parsing of 'unique key generator'
  159. # [19:19] <timeless_mbp> one parsing is that each store must have its own unique way of generating keys, instead of a way to uniquely generate keys for its store
  160. # [19:19] <timeless_mbp> but otherwise, i believe your new text is better
  161. # [19:20] <timeless_mbp> > No two records in an object store may be identified by the same key.
  162. # [19:20] * timeless_mbp really should re-read the rfc for must and friends
  163. # [19:21] <timeless_mbp> btw, my spell checker says that you didn't spell check this document
  164. # [19:21] <Nikunj> > If an <a>object store</a> uses keys generated from a monotonically
  165. # [19:21] <Nikunj> increasing sequence, it MUST have a <dfn>key generator</dfn> that produces
  166. # [19:21] <Nikunj> unique keys for records in that <a>object store</a>
  167. # [19:21] <timeless_mbp> much better :)
  168. # [19:21] <timeless_mbp> is 'key path' defined somewhere? (i'm reading a plain text version from my mail composer because it's easier for me)
  169. # [19:23] <Nikunj> yes
  170. # [19:23] <Nikunj> An http://dev.w3.org/2006/webapi/WebSimpleDB/#dfn-object-store must have a key path if it uses http://dev.w3.org/2006/webapi/WebSimpleDB/#dfn-in-line-keys. The key path must be the name of an enumerated property of all objects being stored in that http://dev.w3.org/2006/webapi/WebSimpleDB/#dfn-object-store.
  171. # [19:26] <Nikunj> Is deserializing OK?
  172. # [19:26] <Nikunj> or is it considered misspelling?
  173. # [19:26] <timeless_mbp> it's a word as far as we're concerned
  174. # [19:26] <timeless_mbp> > Concurrent access to an object store may be isolated in one of three modes.
  175. # [19:26] <timeless_mbp> > Any number of readers may concurrently access an object store.
  176. # [19:26] <timeless_mbp> > A writer is not allowed if there is any reader concurrently accesing the object store, unless the reader is detached, i.e., looking at a snapshot view of the data that does not change once created.
  177. # [19:27] <timeless_mbp> accessing, otoh, needs 2 s's
  178. # [19:27] * timeless_mbp goes to retrieve tea
  179. # [19:28] <Nikunj> What about conformant?
  180. # [19:28] <timeless_mbp> yeah, we treat that as a word
  181. # [19:28] <Nikunj> *doing a global spellcheck*
  182. # [19:28] <timeless_mbp> good idea :)
  183. # [19:28] <Nikunj> I found two or three typos
  184. # [19:28] <timeless_mbp> :)
  185. # [19:28] <Nikunj> but thanks for pointing out
  186. # [19:29] <Nikunj> In your last batch of comments, did you have anything other than "accessing"
  187. # [19:29] <timeless_mbp> so, the paragraph i quoted says 'three' modes
  188. # [19:30] <timeless_mbp> i'd kinda hope they'd be numbered
  189. # [19:30] <timeless_mbp> because i hate counting by hand :)
  190. # [19:30] <timeless_mbp> and atm, i'm failing miserably
  191. # [19:31] <timeless_mbp> so, what are they? :)
  192. # [19:31] <timeless_mbp> > The detached reading behavior may need more explanation.
  193. # [19:32] <timeless_mbp> i wouldn't write that in a spec
  194. # [19:32] <timeless_mbp> The IDBObjectStore interface is used to access the metadata of an object store.
  195. # [19:32] <timeless_mbp> err
  196. # [19:32] <timeless_mbp> > The IDBObjectStore interface is used to access the metadata of an object store.
  197. # [19:33] <timeless_mbp> s/is used to access/provides access to/ ?
  198. # [19:34] <timeless_mbp> > indexNames of type DOMStringList, readonly
  199. # [19:34] <timeless_mbp> > On getting, provide a list of the names of indexes on objects in this object store.
  200. # [19:34] <timeless_mbp> i need to look at another spec to see how it defines IDL getters
  201. # [19:34] <Nikunj> OK
  202. # [19:36] <timeless_mbp> http://dev.w3.org/2006/webapi/WebNotifications/publish/ to pick the first example that popped up into my inbox
  203. # [19:36] <timeless_mbp> > permissionLevel of type unsigned long
  204. # [19:36] <timeless_mbp> > Has value either PERMISSION_ALLOWED, PERMISSION_UNKNOWN, or PERMISSION_DENIED, which indicates the permission level granted to the origin of the script.
  205. # [19:37] <timeless_mbp> roughly i'm objecting to 'on getting'
  206. # [19:37] <timeless_mbp> also, for the specific properly DOMStringList, i wonder if you have to indicate if it's live or dead
  207. # [19:37] <timeless_mbp> i probably need to go look at the definition of DOMStringList :(
  208. # [19:38] * timeless_mbp is too lazy to do that now
  209. # [19:38] <timeless_mbp> > mode of type unsigned short, readonly
  210. # [19:38] <timeless_mbp> > On getting, provide the mode for isolating access to data inside this object store
  211. # [19:38] <timeless_mbp> this thing didn't end with a period, the ones before it did :)
  212. # [19:39] <timeless_mbp> (i believe i'm asking you to rewrite them all though, so that's a minor bit)
  213. # [19:39] <Nikunj> I have considered how these are documented. Don't object to your approach, though
  214. # [19:39] <timeless_mbp> i actually like the way the webnotifications thing has a definitions group
  215. # [19:39] <Nikunj> The On getting comes from another draft - ReSpec
  216. # [19:40] <timeless_mbp> with the constants before the other things
  217. # [19:40] <timeless_mbp> url? (sorry, i'm lazy, and search engines don't like me atm)
  218. # [19:40] <Nikunj> I see it in Section 5
  219. # [19:41] <timeless_mbp> sorry, 'another draft' = someone else's specification, or some other version of yours?
  220. # [19:41] <Nikunj> someone else's spec
  221. # [19:41] <timeless_mbp> if i'm looking at an old version of your doc, give me a new url and tell me where you think i am, and i'll start over from there :/
  222. # [19:42] <timeless_mbp> anyway, i'll defer to MikeSmith (or someone else)
  223. # [19:42] <timeless_mbp> i suspect i'll just try to send feedback to ReSpec :)
  224. # [19:43] <MikeSmith> again, I'm not reading the conversation, but if you ask me a specific question, I can reply
  225. # [19:43] <MikeSmith> like Eliza
  226. # [19:43] <timeless_mbp> would you avoid 'on getting'?
  227. # [19:43] <MikeSmith> (or what is Elisa)
  228. # [19:43] <Nikunj> I could
  229. # [19:43] <Nikunj> I suppose the behavior for both setting an attribute and getting an attribute would need to be specified
  230. # [19:44] <timeless_mbp> if it isn't readonly? yes :)
  231. # [19:44] <timeless_mbp> > Records in an object store can be retrieved by means of the record's key.
  232. # [19:45] <timeless_mbp> "by means of" => "using" or "with" ?
  233. # [19:45] <Nikunj> http://dev.w3.org/html5/spec-author-view/urls.html#reflecting-content-attributes-in-idl-attributes
  234. # [19:45] <Nikunj> This has an example of "on getting" that may meet your needs
  235. # [19:46] * timeless_mbp sighs
  236. # [19:46] <timeless_mbp> Hixie: ping :(
  237. # [19:46] * timeless_mbp blames someone at netscape
  238. # [19:47] <timeless_mbp> <body onload> (on loading)
  239. # [19:47] <Nikunj> :)
  240. # [19:47] <timeless_mbp> imo it's terrible English
  241. # [19:47] <Nikunj> OK. Seriously, just point me to a good one. I guess WebNotifications, and I will write in that style
  242. # [19:47] * timeless_mbp waits for someone to strike self down
  243. # [19:47] <timeless_mbp> so, i think for now i'd suggest you make a note about changing it
  244. # [19:48] <timeless_mbp> i'd rather not point you to that one, it's on my 'to review' list
  245. # [19:48] <Nikunj> *stepping away*
  246. # [19:48] <timeless_mbp> i'll try to get back to you w/ a definite example soon, although… i'm not very good about that
  247. # [19:49] <timeless_mbp> > However, that may not be always adequate to recall records.
  248. # [19:49] <timeless_mbp> s/be always/always be/
  249. # [19:50] <timeless_mbp> > An index may allow duplicate values for a key, unlike an object store, only if its unique flag is not set.
  250. # [19:50] <timeless_mbp> imo the sentence is too complicated (the 'if' is too far away from what it controls)
  251. # [19:51] <timeless_mbp> If an index's unique flag is set then it must not allow duplicate values for a key
  252. # [19:51] <timeless_mbp> (or is that really not the rfcish way)
  253. # [19:57] <Nikunj> *back*
  254. # [20:02] <Nikunj> That is fine
  255. # [20:02] <Nikunj> less pedantic and more semantic
  256. # [20:04] * Quits: Travis (836b0055@128.30.52.43) (Quit: CGI:IRC)
  257. # [20:09] <timeless_mbp> sorry, my latency will increase, i'm watching a movie
  258. # [20:09] <timeless_mbp> oh, and in an hour, i get to monitor a meeting :(
  259. # [20:09] <Nikunj> Aha
  260. # [20:10] <Nikunj> Ping me when you have more stuff
  261. # [20:22] <timeless_mbp> > An auto-populated index must have a key path, which must be the name of an enumerated property of all objects being stored in the referenced object store.
  262. # [20:23] <timeless_mbp> that's complicated, and i don't understand what it means :)
  263. # [20:25] <Nikunj> can break the sentence into two
  264. # [20:26] <Nikunj> If an <a>index</a> is <dfn>auto-populated</dfn>, then the user agent populates
  265. # [20:26] <Nikunj> records using the values stored in the <a>referenced</a> <a>object store</a>.
  266. # [20:26] <Nikunj> An <a>auto-populated</a> <a>index</a> MUST have a
  267. # [20:26] <Nikunj> <dfn title="index key path">key path</dfn>. This <a>key path</a> MUST be the
  268. # [20:26] <Nikunj> name of an enumerated property of every object to be stored in the
  269. # [20:26] <Nikunj> <a>object store</a> <a>referenced</a> by that <a>index</a>.
  270. # [20:28] <timeless_mbp> that's better, but can you explain the last bit to me? imagine i have an object store with "hello"=>"world", "good"=>"bye", "no"=>"tomorrow"
  271. # [20:28] <timeless_mbp> what could the key path look like?
  272. # [20:30] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  273. # [20:31] <Nikunj> in this case you are not storing objects and, hence, won't be using an index
  274. # [20:31] <Nikunj> So not a good example
  275. # [20:33] <timeless_mbp> ok, sorry, what i'm trying to understand is whether there is one key path for the entire database
  276. # [20:33] <timeless_mbp> (err object store?)
  277. # [20:34] <Nikunj> but if you had, say [{greeting: "hello", subject: "world"}, {greeting: "good", subject: "bye", {greeting: "no", subject: "tomorrow"}]
  278. # [20:34] <Nikunj> there are two key paths possible - "greeting" and "subject"
  279. # [20:35] <Nikunj> You could use one in the object store and the other in an index
  280. # [20:55] * Joins: tlr (tlr@128.30.52.169)
  281. # [20:59] <timeless_mbp> so, i think that instead of 'the name of an' you mean 'a name of an'
  282. # [20:59] <timeless_mbp> the implies there's only one, and you've shown there are two
  283. # [20:59] <timeless_mbp> but i'll defer to someone else
  284. # [20:59] <timeless_mbp> > The IDBIndex interface is used to access the metadata of an index.
  285. # [21:00] <timeless_mbp> if you could rewrite this to match the style i suggested earlier, that'd be great :)
  286. # [21:01] <Nikunj> that is a global comment
  287. # [21:14] * Quits: gsnedders (gsnedders@204.232.194.186) (Quit: leaving)
  288. # [21:14] * Joins: gsnedders (gsnedders@204.232.194.186)
  289. # [21:31] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  290. # [21:44] <timeless_mbp> ok, movie over, that just leaves the meeting to distract me :)
  291. # [21:45] <timeless_mbp> so, the problem is that the questions are good
  292. # [21:45] <timeless_mbp> but they're mostly misdirected :)
  293. # [21:46] <timeless_mbp> oops, wrong window
  294. # [21:46] <timeless_mbp> meeting is clearly distracting me :(
  295. # [21:49] <timeless_mbp> > Each database has a valid name and a human readable description A valid name is any string including the empty string.
  296. # [21:49] <timeless_mbp> you're missing a period before 'A'
  297. # [21:50] <timeless_mbp> > An exact match of names means that their UTF-8 encodings are identical.
  298. # [21:50] <timeless_mbp> i wonder if there's a better way to write that
  299. # [21:53] <timeless_mbp> > Implementations can support this even in environments that only support a subset of all strings as database names by mapping database names (e.g. using a hashing algorithm) to the supported set of names.
  300. # [21:54] <timeless_mbp> i had trouble identifying 'this'
  301. # [21:54] <timeless_mbp> w/ a bit of effort, i figured it out, but...
  302. # [21:54] <timeless_mbp> perhaps If an implementation does not support all sets of strings, it should (?) still implement this, e.g. by ...
  303. # [21:57] <timeless_mbp> > Each database has one version at a time; a database can't exist in multiple versions at once.
  304. # [21:57] <timeless_mbp> change 'at once' to 'at the same time' i think...
  305. # [21:58] <timeless_mbp> > When a database is opened, that creates a connection.
  306. # [21:58] <timeless_mbp> [The act of] Opening a database creates a connection.
  307. # [21:58] <timeless_mbp> or something like that...
  308. # [21:59] <timeless_mbp> > A connection that is attempting to read a given piece of data in a database is called a reader and one that is attempting to write that piece of data is called a writer.
  309. # [21:59] <timeless_mbp> change 'to write that piece' to 'to write a piece'
  310. # [22:01] <timeless_mbp> > There may be zero or one active transaction in a connection.
  311. # [22:01] <timeless_mbp> transaction_s_
  312. # [22:01] <timeless_mbp> and i think "in" is wrong, but i don't know how to fix it at this time
  313. # [22:08] * Joins: tlr (tlr@128.30.52.169)
  314. # [22:15] <timeless_mbp> > A IDBDatabase object represents a connection to a database.
  315. # [22:15] <timeless_mbp> An
  316. # [22:15] <timeless_mbp> > There is no way to enumerate the databases available for an origin from this API.
  317. # [22:15] <timeless_mbp> I'd rather 'This API does not provide a way to ....
  318. # [22:17] <timeless_mbp> > An individual record can be retrieved from an object store using either the record's key or the key applicable for some index that references that object store.
  319. # [22:27] <Nikunj> caught up
  320. # [22:32] <timeless_mbp> sorry, meeting's heating up
  321. # [22:41] * Quits: MikeSmith (MikeSmith@128.31.35.229) (Quit: This computer has gone to sleep)
  322. # [22:46] * Joins: MikeSmith (MikeSmith@128.31.35.229)
  323. # [22:58] <timeless_mbp> so, i had trouble following the last part
  324. # [22:59] <timeless_mbp> 'the key applicable for some index that references that object store'
  325. # [22:59] <timeless_mbp> i don't see how that precise thing actually gives me the right individual record
  326. # [23:00] <timeless_mbp> it maybe be 'some applicable key for an index that references it in its object store'
  327. # [23:00] <timeless_mbp> but i'm not sure
  328. # [23:00] <timeless_mbp> > A key range is a continuous interval over some data type used for keys.
  329. # [23:01] <timeless_mbp> can you write 'some key <ref>data type</ref>' ?
  330. # [23:02] <timeless_mbp> > A key range may be left-bounded or right-bounded if there is a value that is, respectively, smaller than or larger than all its elements.
  331. # [23:02] <timeless_mbp> i think less/greater, but i'm not certain
  332. # [23:02] <timeless_mbp> (it's midnight, i'm exhausted, and sick, and have a headache)
  333. # [23:03] <timeless_mbp> > A key range is said to be bounded if it is both left- and right-bounded and unbounded otherwise.
  334. # [23:03] <timeless_mbp> 'otherwise unbounded'
  335. # [23:03] <timeless_mbp> > A valid key range must be either half-bounded or bounded.
  336. # [23:03] <timeless_mbp> i don't think you've defined 'half-bounded'
  337. # [23:06] <timeless_mbp> > The storage operations are performed on the underlying index or an object store.
  338. # [23:06] <timeless_mbp> I think you can omit 'The'
  339. # [23:06] <timeless_mbp> > A cursor comprises a range of records in either an index or an object store. A cursor maintains a position over this series, which moves in a direction that is either monotonically increasing or decreasing order of the record keys.
  340. # [23:07] <timeless_mbp> you start by talking about a 'range' and then switch to a 'series'
  341. # [23:12] <timeless_mbp> > If the scope is static, it can cover either all the object stores and indexes in a database or it may include a subset of them.
  342. # [23:12] <timeless_mbp> … and if it's dynamic?
  343. # [23:14] <timeless_mbp> > A connection may have at most one transaction at any given time.
  344. # [23:14] <timeless_mbp> i think you need a word before 'at'
  345. # [23:14] <timeless_mbp> something like 'open' or 'running' or 'active'
  346. # [23:19] * Quits: MikeSmith (MikeSmith@128.31.35.229) (Quit: Till kicked and torn and beaten out he lies, and leaves his hold and crackles, groans, and dies.)
  347. # [23:21] <timeless_mbp> > Moreover, there may not be any overlap among the scopes of all open connections to a given database.
  348. # [23:23] <timeless_mbp> this is confusing
  349. # [23:24] <timeless_mbp> if scopes are limited to transactions, then i think it'd be better to say 'among the scope of all (active?) transactions to a given database'
  350. # [23:25] <timeless_mbp> or perhaps scopes
  351. # [23:25] * Joins: MikeSmith (MikeSmith@128.31.35.229)
  352. # [23:25] <timeless_mbp> > Conforming user agents may terminate transactions that take too long to complete in order to free up storage resources that are locked by a long running transaction.
  353. # [23:37] <timeless_mbp> the may is interesting, as a useragent, i'd be tempted to terminate transactions that take too much ram :)
  354. # [23:37] <timeless_mbp> > 3.2.1 Opening the database
  355. # [23:37] <timeless_mbp> should it be 'a' ?
  356. # [23:38] <timeless_mbp> > The steps for opening a database are as follows.
  357. # [23:38] <timeless_mbp> the first thing that follows isn't a step
  358. # [23:38] <timeless_mbp> > These steps must be run with an origin, a database name and description.
  359. # [23:38] <timeless_mbp> drop 'a' from before 'database', or add 'a' before 'description'
  360. # [23:38] <timeless_mbp> > All the steps must be run atomically:
  361. # [23:38] <timeless_mbp> drop 'the'?
  362. # [23:39] <timeless_mbp> note that i'm not sure what 'All' means here
  363. # [23:39] <timeless_mbp> does it mean that each step is atomic, or the effect of the entire set of steps is atomic?
  364. # [23:39] <timeless_mbp> > If there is already a database with the given name from the origin origin
  365. # [23:39] <timeless_mbp> origin origin :(
  366. # [23:40] <timeless_mbp> > 3.2.2 Object Store Storage steps
  367. # [23:40] <timeless_mbp> 3.2.1 didn't include 'steps', why does 3.2.2?
  368. # [23:44] <timeless_mbp> > These steps must be run with four parameters: the object store, a value, an optional key, and an optional no-overwrite flag.
  369. # [23:44] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
  370. # [23:44] <timeless_mbp> 'must'/'four' seems odd given that two are optional
  371. # [23:45] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
  372. # [23:47] <timeless_mbp> > If store uses out-of-line keys but no key generator, then a key must be passed to these steps. If not, terminate these steps and set error code DATA_ERR.
  373. # [23:48] <timeless_mbp> i think it'd rather this be one if condition If (store.uses(out_of_line_keys) & !store.has_(key_generator) & !key) then terminate(…)
  374. # [23:49] <timeless_mbp> > If store uses in-line keys, then let key be the property of object at store's key path.
  375. # [23:49] <timeless_mbp> what happens if 'key' was an argument?
  376. # [23:50] <timeless_mbp> > Using store's key generator, produce the next key and store it as key.
  377. # [23:50] <timeless_mbp> i'd avoid using the phrase 'store it'
  378. # [23:52] * Quits: MikeSmith (MikeSmith@128.31.35.229) (Quit: Till kicked and torn and beaten out he lies, and leaves his hold and crackles, groans, and dies.)
  379. # [23:58] <timeless_mbp> > If store uses in-line keys, then store key as the property value for object at store's key path.
  380. # [23:59] <timeless_mbp> using 'store' 3 times in a sentence with sometimes different meanings is really confusing :(
  381. # [23:59] <timeless_mbp> > If any indexes are auto-populated for store, then store a record in that index according to index maintenance conditions.
  382. # [23:59] <timeless_mbp> 'any indexes' is plural
  383. # Session Close: Thu Mar 25 00:00:00 2010

The end :)