/irc-logs / freenode / #whatwg / 2008-12-16 / end

Options:

  1. # Session Start: Tue Dec 16 00:00:00 2008
  2. # Session Ident: #whatwg
  3. # [00:05] * Quits: dglazkov_ (n=dglazkov@nat/google/x-b216d96a24a496a0) (Remote closed the connection)
  4. # [00:06] * Joins: dglazkov (n=dglazkov@nat/google/x-ebf802895d05fb72)
  5. # [00:09] * Joins: jacobolus (i=8cf717be@gateway/web/ajax/mibbit.com/x-f039cbe0b8f00299)
  6. # [00:10] <jacobolus> what would this mean, practically? "each of us personally would like to see the XHTML2 and HTML groups brought together or at least the overlaps removed."
  7. # [00:10] <jacobolus> in http://intertwingly.net/blog/2008/12/15/Co-Chair-HTML-WG
  8. # [00:11] <jacobolus> is that just xhtml2 guys being sad at being irrelevant, and wanting to do something useful?
  9. # [00:17] * Joins: sicking_ (n=chatzill@corp-242.mountainview.mozilla.com)
  10. # [00:20] * jcranmer is now known as jcranmer|away
  11. # [00:21] <Hixie> i dunno, ask rubys :-)
  12. # [00:22] <Hixie> oh that reminds me
  13. # [00:22] <Hixie> rubys: i just added the following to that status document:
  14. # [00:22] <Hixie> - the xhtml2 wg has an outstanding action item to suggest some text
  15. # [00:22] <Hixie> for our "relationship with xhtml" section
  16. # [00:23] <Hixie> oh also, the w3c team (specifically plh) has an action to get the spec's license changed to something more open to reuse and derivations (e.g. creative commons)
  17. # [00:24] <Hixie> updated the whatwg.org/status-2008-12 document
  18. # [00:24] * Quits: dolske (n=dolske@firefox/developer/dolske)
  19. # [00:24] <Hixie> jacobolus: (i think rubys said he had a meeting or something, so he might not be around to respond)
  20. # [00:25] <jacobolus> no worries
  21. # [00:25] * Quits: jwalden (n=waldo@corp-241.mountainview.mozilla.com) ("ChatZilla 0.9.82.1-rdmsoft [XULRunner 1.8.0.9/2006120508]")
  22. # [00:25] * Quits: karlcow (n=karl@modemcable168.84-81-70.mc.videotron.ca) ("This computer has gone to sleep")
  23. # [00:30] * Joins: dolske (n=dolske@firefox/developer/dolske)
  24. # [00:30] * fakeolliej is now known as olliej
  25. # [00:35] * Quits: sicking (n=chatzill@corp-242.mountainview.mozilla.com) (Read error: 110 (Connection timed out))
  26. # [00:38] * Joins: jwalden_ (n=waldo@corp-241.mountainview.mozilla.com)
  27. # [00:38] * jwalden_ is now known as jwalden
  28. # [00:39] * Joins: karlcow (n=karl@modemcable057.209-70-69.mc.videotron.ca)
  29. # [00:45] * Joins: dbaron (n=dbaron@corp-241.mountainview.mozilla.com)
  30. # [00:46] * Joins: jruderman (n=jruderma@corp-241.mountainview.mozilla.com)
  31. # [00:48] * Quits: jwalden (n=waldo@corp-241.mountainview.mozilla.com) ("ChatZilla 0.9.82.1-rdmsoft [XULRunner 1.8.0.9/2006120508]")
  32. # [00:55] * weinig_ is now known as weinig
  33. # [01:00] * Quits: famicom (i=famicom@5ED2FF2D.cable.ziggo.nl) ("Leaving")
  34. # [01:01] * Quits: dglazkov (n=dglazkov@nat/google/x-ebf802895d05fb72)
  35. # [01:03] * Quits: jacobolus (i=8cf717be@gateway/web/ajax/mibbit.com/x-f039cbe0b8f00299) ("http://www.mibbit.com ajax IRC Client")
  36. # [01:04] * Joins: jwalden_ (n=waldo@corp-241.mountainview.mozilla.com)
  37. # [01:04] * jwalden_ is now known as jwalden
  38. # [01:05] * Joins: famicom (i=famicom@5ED2FF2D.cable.ziggo.nl)
  39. # [01:06] * Joins: Dorward_ (i=foobar@91.84.53.6)
  40. # [01:09] * Quits: hallvors (n=hallvord@pat-tdc.opera.com)
  41. # [01:18] * Quits: Dorward (i=foobar@91.84.53.6) (Read error: 110 (Connection timed out))
  42. # [01:30] * jcranmer|away is now known as jcranmer
  43. # [01:31] * Quits: roc (n=roc@121-72-208-254.dsl.telstraclear.net)
  44. # [01:34] * Quits: svl (n=me@ip565744a7.direct-adsl.nl) ("And back he spurred like a madman, shrieking a curse to the sky.")
  45. # [01:44] * Quits: yecril71 (n=giecrilj@piekna-gts.2a.pl)
  46. # [02:05] * Joins: Lachy_ (n=Lachlan@85.196.122.246)
  47. # [02:08] * Joins: roc (n=roc@202.0.36.64)
  48. # [02:13] <MikeSmith> Hixie: about workers changes just checked -- are they based on an particular feedback, or just refinements?
  49. # [02:14] <Hixie> they're knock-on effects of all the work on scripts i did last week
  50. # [02:14] * Quits: Lachy (n=Lachlan@85.196.122.246) (Read error: 145 (Connection timed out))
  51. # [02:29] * Quits: Amorphous (i=jan@unaffiliated/amorphous) (Read error: 104 (Connection reset by peer))
  52. # [02:35] * Quits: hdh (n=hdh@118.71.124.217) (Read error: 110 (Connection timed out))
  53. # [02:40] * Hixie ponders how to define the structured-data-over-postMessage() stuff
  54. # [02:42] <rubys> jacobolus: I can't honestly speculate as to the reasons... to be clear: I initiated the conversation, this was not something that they initiated.
  55. # [02:43] * Hixie wonders if that conversation is archived anywhere
  56. # [02:47] * Joins: Amorphous (i=jan@unaffiliated/amorphous)
  57. # [02:48] * Joins: dglazkov (n=dglazkov@c-24-130-144-56.hsd1.ca.comcast.net)
  58. # [02:50] * Joins: dglazkov_ (n=dglazkov@72.14.224.1)
  59. # [02:53] <rubys> nope, that was email from me to the two individuals I mentioned, and I'm sharing the response.
  60. # [02:53] <Hixie> ah ok
  61. # [03:00] * Joins: rubys1 (n=rubys@cpe-075-182-087-110.nc.res.rr.com)
  62. # [03:05] * Joins: ojan (n=ojan@nat/google/x-f162fa13be0d3f24)
  63. # [03:06] <sicking_> Hixie, fwiw, what we implemented is slightly different from what my mail says
  64. # [03:06] <sicking_> Hixie, due to weirdness in the JSON format
  65. # [03:06] * sicking_ is now known as sicking
  66. # [03:06] <sicking> Hixie, what we do is this:
  67. # [03:07] <sicking> Hixie, create a JS object with the following value: { para: X } (where X was the value passed to postMessage)
  68. # [03:07] <sicking> Hixie, serialize using JSON.stringify
  69. # [03:07] <sicking> Hixie, send to destination
  70. # [03:08] <sicking> Hixie, create Y = JSON.parse(str)
  71. # [03:08] <sicking> Hixie, set event.data to Y.para
  72. # [03:08] <jcranmer> sicking: Hixie is not a robot!
  73. # [03:08] <sicking> jcranmer, or so you think
  74. # [03:09] <jcranmer> sicking: it's obvious... Hixie has no big red button saying "Self Destruct DO NOT PUSH"
  75. # [03:10] <sicking> Hixie, or to put it short: event.data = JSON.parse(JSON.stringify({para: X})).para;
  76. # [03:10] <Hixie> sicking: what i'm planning on speccing doesn't mention JSON at all, it'll just check to see if the message is safe, then clone it and pass that into the event.data
  77. # [03:10] <Hixie> sicking: which should be equivalent
  78. # [03:11] <sicking> Hixie, no, such a thing can include cycles, no?
  79. # [03:11] <sicking> Hixie, there is also the issue of infinite and NaN values
  80. # [03:11] <Hixie> i will throw an exception if a cycle is detected
  81. # [03:11] <Hixie> i plan to support JS types natively
  82. # [03:11] * Philip` wonders about the effects on property ordering
  83. # [03:11] <Hixie> booleans, Numbers, etc
  84. # [03:12] <sicking> Hixie, ugh, that means that we can't use the JSON serializer to send cross processes :(
  85. # [03:12] <Hixie> sicking: well i can always do something else
  86. # [03:12] <Hixie> sicking: what should i do with Infinity and NaN?
  87. # [03:12] <Hixie> JSON sucks
  88. # [03:12] <Hixie> it's worse than XML :-)
  89. # [03:12] * Joins: eric_carlson (n=ericc@adsl-67-112-12-110.dsl.anhm01.pacbell.net)
  90. # [03:12] <sicking> indeed
  91. # [03:12] <sicking> well..
  92. # [03:12] * Quits: dglazkov (n=dglazkov@c-24-130-144-56.hsd1.ca.comcast.net) (Read error: 110 (Connection timed out))
  93. # [03:13] <sicking> it errs in the wrong direction
  94. # [03:13] <sicking> it sucks less than XML, but it sucks nontheless
  95. # [03:13] <Hixie> it would suck less than XML if it defined comment syntax and defined error handling syntax
  96. # [03:13] <Hixie> er, error handling rules
  97. # [03:14] <sicking> ah
  98. # [03:14] <Hixie> anyway
  99. # [03:14] <Hixie> the syntax doesn't matter here
  100. # [03:14] <sicking> true
  101. # [03:14] <Hixie> what should i do for NaN an company?
  102. # [03:14] <Hixie> and for property ordering, as Philip` mentions?
  103. # [03:15] <sicking> so i don't care super much, but if you want JSON parity you want this:
  104. # [03:15] <sicking> 1. non-finite numbers are turned into null
  105. # [03:15] <sicking> 2. properties with the value 'undefined' are removed
  106. # [03:16] <Hixie> is that the value |undefined| or the value |"undefined"|?
  107. # [03:16] * dglazkov_ is now known as dglazkov
  108. # [03:16] * Hixie wonders how to do this in a language-agnostic manner
  109. # [03:17] * Quits: tantek (n=tantek@204.9.180.30)
  110. # [03:17] <sicking> |undefined|
  111. # [03:17] <jcranmer> Hixie: series of octets with undefined contents?
  112. # [03:17] <jcranmer> s/undefined/unspecified/
  113. # [03:17] <Philip`> I hope I'll be able to use VBScript to post structured data objects to a JavaScript worker
  114. # [03:18] <jcranmer> pth, use Malebolge to post to a Brainfuck worker :-)
  115. # [03:18] * Quits: rubys (n=rubys@cpe-075-182-087-110.nc.res.rr.com) (Read error: 110 (Connection timed out))
  116. # [03:19] <Philip`> jcranmer: I don't think they have the concept of structured data :-p
  117. # [03:20] <sicking> Hixie, i don't feel strongly regarding if NaN/Inf/Undefined should survive across postMessage though, but i'd imagine the JS people might have more of an opinion
  118. # [03:20] * Hixie wonders what happens when you call .stringify() on some of our more esoteric native objects
  119. # [03:20] <Hixie> s/on/with/
  120. # [03:21] <sicking> Hixie, good question. I *think* that it tries to enumerate all properties and stringify those, but i haven't tried. And for most DOM objects you end up with cyclic graphs
  121. # [03:21] <roc> it would be surprising if non-finite numbers were nuked going through postMessage
  122. # [03:22] <sicking> roc, agree. i was surprised they were nuked going through JSON
  123. # [03:22] <Hixie> sicking: it seems to call [[Get]], but it strikes me that we might well have [[Get]]ers somewhere that do pretty crazy things
  124. # [03:22] * Hixie is thinking he'll just do this for JS for now and screw JSON and screw VB
  125. # [03:22] <Hixie> and then we'll see what feedback is like
  126. # [03:23] <Hixie> if implementors want JSON, then I can always change it back -- but since both of you so far have said it's surprising, i'm reluctant to do it
  127. # [03:23] <sicking> Hixie, don't quote me as having an opinion either way. I'm really undecided at this point
  128. # [03:24] <Hixie> well i wasn't really basing it on your opinion so much as your experience (that you were surprised, as i was for that matter, when learning of JSON's quirks)
  129. # [03:25] <sicking> cool
  130. # [03:25] <dave_levin> hixie: If someone implemented this who supported VB, would it even be possible to create a VB worker?
  131. # [03:25] <sicking> the funny thing is that with our definition (pass {para: X} through JSON) is that |undefined| comes out correctly on the other end
  132. # [03:25] * Joins: erlehmann (n=erlehman@dslb-088-072-002-160.pools.arcor-ip.net)
  133. # [03:25] <Hixie> dave_levin: right now, no, but postMessage() isn't just for workers
  134. # [03:26] <dave_levin> The spec says that it is always Javascript.
  135. # [03:26] <dave_levin> oh ok
  136. # [03:26] <sicking> however { foo: undefined } comes out as {}
  137. # [03:26] <dave_levin> right, thx.
  138. # [03:26] <Hixie> sicking: heh
  139. # [03:26] <Hixie> dave_levin: also i expect we'll change that eventually. i'm just not sure how to do it (arguments to new Worker(), MIME types, something else).
  140. # [03:28] <dave_levin> hixie: That would be nice eventually....
  141. # [03:29] <dave_levin> hixie: but no desire for it anytime soon from me at least :).
  142. # [03:29] <Hixie> yeah well if the js group go along their current path we might be stuck with this problem sooner than either you or i like
  143. # [03:30] <Hixie> because apparently they want future versions of js to not be the same language as current js
  144. # [03:34] <blooberry> hixie: I thought the internal factions made all nice and have backed off the major ecma facelift/overhaul plans. Or is that something else?
  145. # [03:35] <sicking> define "not be the same language" and "major facelife/overhaul" :)
  146. # [03:35] <Hixie> as far as i know the plan, long term, and possibly short term though i really have lost track of their exact plans short term, is still to invent a new language that happens to look a lot like the current language but needs out-of-band signaling to be enabled.
  147. # [03:35] <Hixie> much like VB vs JS in IE today, except more similar in syntax
  148. # [03:36] <Hixie> much like E4X did, for that matter.
  149. # [03:36] <Hixie> (which was a disaster btw)
  150. # [03:36] <sicking> there are new keywords introduced yes, which would require some sort of signaling
  151. # [03:36] <Hixie> such a bad idea
  152. # [03:36] <sicking> not sure it's a big deal
  153. # [03:37] * Parts: rubys1 (n=rubys@cpe-075-182-087-110.nc.res.rr.com)
  154. # [03:37] <Hixie> requiring out-of-band signaling for the web's scripting language is a losing proposition, imho.
  155. # [03:37] <Hixie> if it's in-band, then that's fine
  156. # [03:38] <sicking> note that i didn't say out-of-band or in-band
  157. # [03:38] <Hixie> as i understand it, the js group wants it out-of-band
  158. # [03:38] <sicking> did maciej propose the |use| syntax?
  159. # [03:39] <Hixie> i haven't followed recent developments
  160. # [03:39] <sicking> ok
  161. # [03:39] <Hixie> are arrays in JS ever sparse?
  162. # [03:39] <Hixie> or are they always [0..n] ?
  163. # [03:40] <sicking> mrbkap says yes
  164. # [03:40] <sicking> they are sparse
  165. # [03:41] <sicking> they basically work just like any other object
  166. # [03:41] <sicking> if you set "1" and "10" then those are the properties that exist
  167. # [03:41] <sicking> the exception is a magical "length" property
  168. # [03:41] <Hixie> i wonder how JSON.stringify() handles that
  169. # [03:41] * Hixie looks
  170. # [03:42] <sicking> ['foo', null, null, null...., "bar"]
  171. # [03:42] * Parts: ojan (n=ojan@nat/google/x-f162fa13be0d3f24)
  172. # [03:42] <sicking> did I mention that JSON rocks?
  173. # [03:43] <Hixie> as far as i can tell that is incorrect
  174. # [03:43] <Hixie> it seems it returns ['foo', 'bar'] and the indicies change
  175. # [03:43] <sicking> i don't think that was the intent, unless things recently changed
  176. # [03:46] <sicking> the moz implementation inserts null
  177. # [03:47] <Hixie> it says "For each index in value"
  178. # [03:48] <Hixie> doesn't say anything about inventing new indicies or looking at the length as far as i can tell
  179. # [03:48] <sicking> looking at http://wiki.ecmascript.org/doku.php?id=es3.1:json_support
  180. # [03:48] <sicking> it first creates a |partial| array that contains all indexes
  181. # [03:49] <Hixie> you're looking at JA() right?
  182. # [03:50] <Hixie> JA(value)?
  183. # [03:50] <sicking> uh?
  184. # [03:55] <sicking> ah
  185. # [03:56] <sicking> yeah that doc looks different
  186. # [03:56] <sicking> not sure where i got the reference to looking at http://wiki.ecmascript.org/doku.php?id=es3.1:json_support
  187. # [03:56] <sicking> err s/looking at//
  188. # [03:56] <olliej> Hixie: sicking: I think sparse array syntax is [a,,,,,,b]
  189. # [03:57] <Hixie> that's not what i meant by sparse
  190. # [03:57] <sicking> olliej, that's not what we currently output
  191. # [03:57] <olliej> Hixie: what's an example of what you meant?
  192. # [03:57] <sicking> olliej, we == firefox3.1
  193. # [03:57] <olliej> sicking: oh well, js can parse that ;D
  194. # [03:57] <olliej> sicking: yup
  195. # [03:58] <sicking> olliej, apparently JSON is supposed to not be JS specific
  196. # [03:58] <olliej> sicking: incidentally i have drawImage(video,..) implemented in my local build of webkit :D
  197. # [03:58] <olliej> on canvas
  198. # [03:58] <sicking> olliej, hey, cool
  199. # [03:58] <olliej> sicking: just have some tidying to do
  200. # [03:58] <Hixie> olliej: can an Array object have properties '0' and '8' and nothing else?
  201. # [03:58] <Hixie> (well, other than 'length')
  202. # [03:58] <olliej> Hixie: yes
  203. # [04:00] <sicking> Hixie, ["foo",,,,,"bar"] creates such an array
  204. # [04:00] <sicking> Hixie, (in FF, dunno about specs)
  205. # [04:00] <olliej> Hixie: 2 in ['zero',,,,,,,,'eight']
  206. # [04:01] <olliej> is false, but the length is 9
  207. # [04:01] <olliej> sicking: that's what i was saying earlier
  208. # [04:01] <sicking> olliej, you have to forgive us JS noobs
  209. # [04:01] <olliej> sicking: [1,,3] the double , results in an empty slot
  210. # [04:01] <olliej> sicking: hehe
  211. # [04:02] <olliej> sicking: i just know this because i did the code gen for arrays in squirrelfish :D
  212. # [04:02] <olliej> array initialisers i mean
  213. # [04:02] <olliej> sicking: it gets better
  214. # [04:02] <olliej> sicking: [1,,3] results in an extra slot
  215. # [04:02] <olliej> sicking: but [1,2,,] does not
  216. # [04:02] <sicking> nice
  217. # [04:03] <Hixie> olliej: oh, interesting
  218. # [04:03] <sicking> that actually makes sense though
  219. # [04:03] <Hixie> olliej: i misunderstood
  220. # [04:03] <olliej> Hixie: np
  221. # [04:03] <Hixie> how about 'a', can that be in an array?
  222. # [04:03] <olliej> Hixie: ? as a property?
  223. # [04:04] <Hixie> yeah
  224. # [04:04] <Hixie> 'a' in foo
  225. # [04:04] <Hixie> where foo is an Array
  226. # [04:04] <olliej> Hixie: yup
  227. # [04:04] <Hixie> so the json serialiser just drops that one on the floor?
  228. # [04:04] <sicking> olliej, JSON.stringify([1,,2]) returns "[1, null, 2]" though, in firefox 3.1
  229. # [04:04] <olliej> sicking: i suspect that's actually wrong
  230. # [04:05] <sicking> olliej, what do you think it should be?
  231. # [04:05] <olliej> sicking: inasmuch as such a thing can be wrong
  232. # [04:05] <olliej> sicking: ooh
  233. # [04:05] <olliej> sicking: does json have undefined?
  234. # [04:05] <sicking> no
  235. # [04:05] <olliej> yeah
  236. # [04:05] * olliej just remembered undefined is actually just a global objedct property
  237. # [04:05] <sicking> that's a problem too
  238. # [04:06] <olliej> sicking: my guess is that the problem is
  239. # [04:06] <olliej> sicking: say JSON did produce [1,2,undefined,3]
  240. # [04:06] <olliej> or whatever
  241. # [04:07] <olliej> a person could do undefined="foo!"
  242. # [04:07] <sicking> for the record, i've stopped guessing on this stuff. Because i tend to guess on what I think makes sense. And JSON rarely agrees with me
  243. # [04:08] <olliej> maybe a malicious person could take advantage of that
  244. # [04:08] <olliej> sicking: heheh
  245. # [04:08] <Hixie> in firefox
  246. # [04:08] <Hixie> var a = new Array(); a.b = 2; a[9] = 3; JSON.stringify(a);
  247. # [04:08] <Hixie> returns [null,null,null,null,null,null,null,null,null,3]
  248. # [04:08] <sicking> olliej, only in a poor implementation
  249. # [04:08] <olliej> sicking: yes
  250. # [04:09] <olliej> sicking: i know, i'm just saying maybe that's why json doesn't produce undefined
  251. # [04:09] <sicking> olliej, a decent JSON implementation (even one written in JS) would not be affected by what global.undefined is set to
  252. # [04:09] <olliej> ah right
  253. # [04:09] <Hixie> well anyway
  254. # [04:09] <Hixie> if any of you are JS guys
  255. # [04:09] <olliej> because it could just do
  256. # [04:09] <Hixie> step 8 of JA() is underdefined
  257. # [04:09] <Hixie> because i've no idea what it means:
  258. # [04:09] <Hixie> 8. For each index in value.
  259. # [04:09] <sicking> Hixie, i'm not
  260. # [04:09] <olliej> var myLocalUndefined; if (token == "undefined") return myLocalUndefined; or some such
  261. # [04:10] <olliej> Hixie: url?
  262. # [04:10] <olliej> sicking: weee! i'm currently doing edge detection on the startrek trailer in js :D
  263. # [04:10] <sicking> hehe
  264. # [04:11] <Hixie> http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft
  265. # [04:11] <sicking> olliej, frame rate?
  266. # [04:11] <olliej> <20 would be my guess
  267. # [04:11] * olliej annotates code
  268. # [04:13] <Hixie> bbl food
  269. # [04:17] <olliej> sicking: aieeee, at 640x272 == 7-8fps on my mbp
  270. # [04:17] <sicking> olliej, cool
  271. # [04:18] <olliej> sicking: thankfully there are some real performance issues with SFX in this case
  272. # [04:18] <sicking> olliej, so do you need to first paint it to the canvas, then export from canvas as a dataImage (or whatever its called)
  273. # [04:18] <olliej> sicking: yup
  274. # [04:18] <sicking> ugh
  275. # [04:18] <olliej> then do a 3x3 sobel filter
  276. # [04:18] <olliej> then into a separate buffer
  277. # [04:19] <sicking> would be nice if you didn't have to do that extra roundtrip
  278. # [04:19] <olliej> then copy it back
  279. # [04:19] <olliej> weeee
  280. # [04:20] * sicking heads to dinner
  281. # [04:22] <olliej> Hixie: ping me when you return
  282. # [04:36] * Quits: dglazkov (n=dglazkov@72.14.224.1) (Read error: 60 (Operation timed out))
  283. # [04:45] * Joins: dglazkov (n=dglazkov@c-24-130-144-56.hsd1.ca.comcast.net)
  284. # [04:50] <Hixie> olliej: returned
  285. # [04:50] <olliej> Hixie: i realised a problem with imagedata + createimagedata, etc
  286. # [04:50] <olliej> Hixie: to make something that works safely with high dpi
  287. # [04:51] <olliej> Hixie: i want to do all my work in terms of the width/height of the image data object
  288. # [04:52] <olliej> Hixie: but many filters require a buffer (convolution, etc)
  289. # [04:52] <olliej> Hixie: so i might be tempted (in fact i realised this after noticing i already had) to create a buffer with context.createImageData(inData.width, inData.height)
  290. # [04:53] <olliej> Hixie: but those are device pixels, which will now be treated as css pixels
  291. # [04:53] <olliej> leading to badness
  292. # [04:54] <olliej> Hixie: so i think we need something akin to cloneImageData or some such
  293. # [04:54] <olliej> although i'm not entirely sure
  294. # [04:54] <olliej> Hixie: because that rules out subregions
  295. # [04:54] <olliej> etc
  296. # [04:57] * Quits: weinig (n=weinig@nat/apple/x-adaf7067a851ba34)
  297. # [05:00] <roc> I think I predicted that would be confusing :-)
  298. # [05:00] * Quits: roc (n=roc@202.0.36.64)
  299. # [05:06] * Quits: dave_levin (n=dave_lev@72.14.227.1)
  300. # [05:06] <Hixie> olliej: yeah, maybe. send mail.
  301. # [05:06] <olliej> roc: heh
  302. # [05:07] * olliej has just realised he can vectorise his edge detection code
  303. # [05:07] <olliej> in js
  304. # [05:07] <olliej> :-D
  305. # [05:07] <olliej> it will be *awesome*
  306. # [05:09] * Quits: dolske (n=dolske@firefox/developer/dolske)
  307. # [05:10] * Joins: dolske (n=dolske@corp-241.mountainview.mozilla.com)
  308. # [05:20] * Quits: dbaron (n=dbaron@corp-241.mountainview.mozilla.com) ("8403864 bytes have been tenured, next gc will be global.")
  309. # [05:22] * Quits: famicom (i=famicom@5ED2FF2D.cable.ziggo.nl) ("Leaving")
  310. # [05:26] * Quits: dolske (n=dolske@firefox/developer/dolske) (Read error: 110 (Connection timed out))
  311. # [05:28] * Joins: dolske (n=dolske@c-76-103-41-195.hsd1.ca.comcast.net)
  312. # [05:30] * Joins: dave_levin (n=dave_lev@c-98-203-247-78.hsd1.wa.comcast.net)
  313. # [05:30] * Quits: ianloic (n=ian@76-191-177-157.dsl.dynamic.sonic.net) (Read error: 110 (Connection timed out))
  314. # [05:39] * Quits: jwalden (n=waldo@corp-241.mountainview.mozilla.com) ("ChatZilla 0.9.82.1-rdmsoft [XULRunner 1.8.0.9/2006120508]")
  315. # [05:39] * Joins: roc (n=roc@121-72-208-254.dsl.telstraclear.net)
  316. # [05:46] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  317. # [05:53] * Joins: jwalden_ (n=waldo@c-67-180-39-55.hsd1.ca.comcast.net)
  318. # [05:54] * jwalden_ is now known as jwalden
  319. # [06:07] * Quits: roc (n=roc@121-72-208-254.dsl.telstraclear.net)
  320. # [06:14] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net) (Read error: 54 (Connection reset by peer))
  321. # [06:14] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  322. # [06:18] * Joins: tantek_ (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  323. # [06:18] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net) (Read error: 104 (Connection reset by peer))
  324. # [06:25] * Parts: dave_levin (n=dave_lev@c-98-203-247-78.hsd1.wa.comcast.net)
  325. # [06:26] * Joins: dave_levin (n=dave_lev@72.14.224.1)
  326. # [06:31] * Quits: tantek_ (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net) (Read error: 104 (Connection reset by peer))
  327. # [06:32] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  328. # [06:34] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net) (Read error: 104 (Connection reset by peer))
  329. # [06:34] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  330. # [06:35] * Quits: heycam (n=cam@clm-laptop.infotech.monash.edu.au) ("bye")
  331. # [06:56] * Quits: dglazkov (n=dglazkov@c-24-130-144-56.hsd1.ca.comcast.net)
  332. # [07:16] * Joins: heycam (n=cam@203-217-82-242.dyn.iinet.net.au)
  333. # [07:21] * Quits: MathiasBynens (n=sage@ip-81-11-169-75.dsl.scarlet.be)
  334. # [07:22] * Joins: roc (n=roc@121-72-208-254.dsl.telstraclear.net)
  335. # [07:24] <eric_carlson> Hixie: ping?
  336. # [07:27] <Hixie> hey
  337. # [07:28] * Joins: ap (n=ap@195.239.126.11)
  338. # [07:29] * Quits: annevk (n=annevk@217.174.106.250) (Read error: 110 (Connection timed out))
  339. # [07:29] <eric_carlson> Hixie: what should currentSrc return when src is a url that redirects to another file?
  340. # [07:31] <Hixie> per spec, it should return the resolved url from the attribute, before hitting the network
  341. # [07:31] <eric_carlson> Hixie: OK, that's what I though but wanted to make sure
  342. # [07:31] <eric_carlson> thanks!
  343. # [07:32] * eric_carlson is now known as ec|away
  344. # [07:38] * Joins: zcorpan_ (n=zcorpan@c83-252-193-84.bredband.comhem.se)
  345. # [07:41] * Quits: doublec (n=chris@202.0.36.64) ("Leaving")
  346. # [07:42] * Joins: maikmerten (n=merten@ls5dhcp195.cs.uni-dortmund.de)
  347. # [07:50] * Quits: jruderman (n=jruderma@corp-241.mountainview.mozilla.com)
  348. # [08:01] * Joins: doublec (n=Chris_Do@118-92-151-230.dsl.dyn.ihug.co.nz)
  349. # [08:05] * Joins: zcorpan (n=zcorpan@c83-252-193-84.bredband.comhem.se)
  350. # [08:05] * Quits: doublec (n=Chris_Do@118-92-151-230.dsl.dyn.ihug.co.nz) (Read error: 104 (Connection reset by peer))
  351. # [08:05] * Joins: doublec (n=Chris_Do@118-92-151-230.dsl.dyn.ihug.co.nz)
  352. # [08:06] * Quits: zcorpan_ (n=zcorpan@c83-252-193-84.bredband.comhem.se) (Read error: 110 (Connection timed out))
  353. # [08:10] * Joins: zcorpan___ (n=zcorpan@c83-252-193-84.bredband.comhem.se)
  354. # [08:10] * Joins: weinig (n=weinig@c-69-181-81-233.hsd1.ca.comcast.net)
  355. # [08:14] * Quits: zcorpan (n=zcorpan@c83-252-193-84.bredband.comhem.se) (Read error: 60 (Operation timed out))
  356. # [08:20] * Quits: zcorpan___ (n=zcorpan@c83-252-193-84.bredband.comhem.se) (Read error: 60 (Operation timed out))
  357. # [08:38] * Joins: jruderman (n=jruderma@c-67-180-39-55.hsd1.ca.comcast.net)
  358. # [08:42] * Joins: Maurice (n=ano@a80-101-46-164.adsl.xs4all.nl)
  359. # [09:11] * Joins: aaronlev (n=chatzill@e179201169.adsl.alicedsl.de)
  360. # [09:19] * Quits: ginger (n=nessy@124-171-30-131.dyn.iinet.net.au) ("This computer has gone to sleep")
  361. # [09:25] * Joins: MathiasBynens (n=sage@ip-81-11-169-75.dsl.scarlet.be)
  362. # [09:25] * Quits: MathiasBynens (n=sage@ip-81-11-169-75.dsl.scarlet.be) (Client Quit)
  363. # [09:33] * Joins: pesla (n=retep@procurios.xs4all.nl)
  364. # [09:45] * Dorward_ is now known as Dorward
  365. # [09:51] * Joins: mstange (n=markus@buntes215.wohnheim.uni-kl.de)
  366. # [09:53] * Joins: virtuelv (n=virtuelv@pat-tdc.opera.com)
  367. # [09:55] * Quits: aaronlev (n=chatzill@e179201169.adsl.alicedsl.de) (Read error: 110 (Connection timed out))
  368. # [09:58] * Joins: zcorpan (n=zcorpan@pat.se.opera.com)
  369. # [10:06] * Joins: aaronlev (n=chatzill@e179201169.adsl.alicedsl.de)
  370. # [10:18] * Joins: ROBOd (n=robod@89.122.216.38)
  371. # [10:26] * Quits: heycam (n=cam@203-217-82-242.dyn.iinet.net.au) ("bye")
  372. # [10:29] * Quits: erlehmann (n=erlehman@dslb-088-072-002-160.pools.arcor-ip.net) ("Ex-Chat")
  373. # [10:29] * Joins: deane (n=opera@121-72-204-53.dsl.telstraclear.net)
  374. # [10:30] * Parts: deane (n=opera@121-72-204-53.dsl.telstraclear.net)
  375. # [10:43] * Joins: heycam (n=cam@203-217-82-242.dyn.iinet.net.au)
  376. # [10:44] * Joins: tndH (n=Rob@adsl-87-102-93-106.karoo.KCOM.COM)
  377. # [10:50] * Quits: doublec (n=Chris_Do@118-92-151-230.dsl.dyn.ihug.co.nz) ("ChatZilla 0.9.79-rdmsoft [XULRunner 1.8.0.9/2006120508]")
  378. # [10:59] * Joins: deane (n=opera@121-72-173-193.dsl.telstraclear.net)
  379. # [11:07] * Quits: Lachy_ (n=Lachlan@85.196.122.246) ("Leaving")
  380. # [11:33] * Joins: nessy (n=nessy@124-171-30-131.dyn.iinet.net.au)
  381. # [11:42] * Joins: Lachy (n=Lachlan@pat-tdc.opera.com)
  382. # [11:49] * Joins: hdh (n=hdh@118.71.120.54)
  383. # [11:52] * Quits: virtuelv (n=virtuelv@pat-tdc.opera.com) ("Leaving")
  384. # [12:03] * Quits: hdh (n=hdh@118.71.120.54) (Nick collision from services.)
  385. # [12:04] * Joins: hdh (n=hdh@118.71.120.54)
  386. # [12:14] * Quits: Lachy (n=Lachlan@pat-tdc.opera.com) ("Leaving")
  387. # [12:16] * Joins: Lachy (n=Lachlan@pat-tdc.opera.com)
  388. # [12:21] * Quits: ap (n=ap@195.239.126.11)
  389. # [12:43] * Joins: ap (n=ap@195.239.126.10)
  390. # [12:44] * Joins: WulfTheSaxon (i=meh@cpe-76-178-221-42.maine.res.rr.com)
  391. # [12:46] * Quits: jruderman (n=jruderma@c-67-180-39-55.hsd1.ca.comcast.net) (Read error: 104 (Connection reset by peer))
  392. # [12:47] * Quits: jwalden (n=waldo@c-67-180-39-55.hsd1.ca.comcast.net) (Connection reset by peer)
  393. # [12:58] * Joins: virtuelv (n=virtuelv@pat-tdc.opera.com)
  394. # [13:01] * Joins: WulfTheSaxon_ (i=meh@cpe-76-178-221-42.maine.res.rr.com)
  395. # [13:01] * Quits: WulfTheSaxon (i=meh@cpe-76-178-221-42.maine.res.rr.com) (Nick collision from services.)
  396. # [13:01] * WulfTheSaxon_ is now known as WulfTheSaxon
  397. # [13:04] * Joins: myakura (n=myakura@p4200-ipbf2306marunouchi.tokyo.ocn.ne.jp)
  398. # [13:08] * Quits: aaronlev (n=chatzill@e179201169.adsl.alicedsl.de) ("ChatZilla 0.9.84-rdmsoft [XULRunner 1.9.0.1/2008072406]")
  399. # [13:14] * Joins: yecril71 (n=giecrilj@piekna-gts.2a.pl)
  400. # [13:21] <yecril71> A Javascript plugin is user-specified code that is executed by the browser for each page that the user visits.
  401. # [13:21] <yecril71> It is an equivalent of client-side stylesheet.
  402. # [13:21] <yecril71> Internet Explorer does not provide for this by default, but perhaps other browsers do.
  403. # [13:33] * Joins: wakaba_ (n=wakaba@189.164.210.220.dy.bbexcite.jp)
  404. # [13:33] * Quits: wakaba_ (n=wakaba@189.164.210.220.dy.bbexcite.jp) (Client Quit)
  405. # [13:47] * Joins: jacobolus (i=8cf72833@gateway/web/ajax/mibbit.com/x-cad5f10419a13b12)
  406. # [13:53] * ec|away is now known as eric_carlson
  407. # [14:00] * Joins: svl (n=me@ip565744a7.direct-adsl.nl)
  408. # [14:03] * Quits: karlcow (n=karl@modemcable057.209-70-69.mc.videotron.ca) ("This computer has gone to sleep")
  409. # [14:11] * Quits: tndH (n=Rob@adsl-87-102-93-106.karoo.KCOM.COM) (Read error: 113 (No route to host))
  410. # [14:15] * Joins: karlcow (n=karl@modemcable168.84-81-70.mc.videotron.ca)
  411. # [14:21] * Quits: nessy (n=nessy@124-171-30-131.dyn.iinet.net.au) ("This computer has gone to sleep")
  412. # [14:28] * Joins: nessy (n=nessy@124-171-30-131.dyn.iinet.net.au)
  413. # [14:31] <yecril71> I would object to using attr(data-*) for CSS.
  414. # [14:34] <yecril71> Seems like a backdoor for presentational attributes.
  415. # [14:34] <takkaria> it's really unlikely anyone woud do that, though, given that there are classes and ids for that sort of thing
  416. # [14:35] <zcorpan> <span data-color="red"> span { color:attr(data-color, color) }
  417. # [14:35] <yecril71> I hope so; Giovannis idea got me horrified.
  418. # [14:35] <Dashiva> It's more work than using @style
  419. # [14:35] * Joins: aaronlev (n=chatzill@e179201169.adsl.alicedsl.de)
  420. # [14:36] <yecril71> Evidently.
  421. # [14:36] <yecril71> Except that style is insensitive to media.
  422. # [14:37] <yecril71> (and to conditional processing)
  423. # [14:39] <yecril71> And now Giovanni active promotes that quirk.
  424. # [14:39] <yecril71> actively
  425. # [14:40] <zcorpan> @media print { [style='color: red;'] { color: blue } }
  426. # [14:40] <zcorpan> with !important probably
  427. # [14:41] <yecril71> That would not hit style='color: red; background: green'.
  428. # [14:42] <yecril71> style is a parsed attribute and the parse rules cannot be reinterpreted by CSS selectors.
  429. # [14:42] <takkaria> you could do a substring match with CSS selectors, but I can't remember the syntax
  430. # [14:43] <zcorpan> [style*="..."]
  431. # [14:43] <yecril71> That would not hit style='color: #FF0000'
  432. # [14:43] <zcorpan> right
  433. # [14:44] <yecril71> but it would hit style='background-color: red'
  434. # [14:44] * Quits: eric_carlson (n=ericc@adsl-67-112-12-110.dsl.anhm01.pacbell.net)
  435. # [14:45] * Joins: tndH (n=Rob@adsl-87-102-93-106.karoo.KCOM.COM)
  436. # [14:46] <yecril71> Giovanni says metadata are not displayed and immediately thereafter
  437. # [14:46] <yecril71> he wants to display it with CSS content attribute.
  438. # [14:47] <yecril71> What a mess.
  439. # [14:49] * Parts: jacobolus (i=8cf72833@gateway/web/ajax/mibbit.com/x-cad5f10419a13b12)
  440. # [14:58] * Quits: nessy (n=nessy@124-171-30-131.dyn.iinet.net.au) ("This computer has gone to sleep")
  441. # [15:01] <zcorpan> should eval() do pre-lexer removal of Cf characters?
  442. # [15:03] * Quits: hdh (n=hdh@118.71.120.54) ("Leaving.")
  443. # [15:03] <zcorpan> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0D%0Avar%20Cf%20%3D%20%5B'%5Cu00AD'%2C%20'%5Cu0600'%2C%20'%5Cu0601'%2C%20'%5Cu0602'%2C%20'%5Cu0603'%2C%20'%5Cu06DD'%2C%20'%5Cu070F'%2C%20'%5Cu17B4'%2C%20'%5Cu17B5'%2C%20'%5Cu200B'%2C%20'%5Cu200C'%2C%20'%5Cu200D'%2C%20'%5Cu200E'%2C%20'%5Cu200F'%2C%20'%5Cu202A'%2C%20'%5Cu202B'%2C%20'%5Cu202C'%2C%20'%5Cu202D'%2C%20'%5Cu202E'%2C%20'%5Cu2060'%2C%20'%5Cu2061'%2C%20'%5Cu2062'%2C%20'%5Cu
  444. # [15:03] <zcorpan> 2063'%2C%20'%5Cu2064'%2C%20'%5Cu206A'%2C%20'%5Cu206B'%2C%20'%5Cu206C'%2C%20'%5Cu206D'%2C%20'%5Cu206E'%2C%20'%5Cu206F'%2C%20'%5CuFEFF'%2C%20'%5CuFFF9'%2C%20'%5CuFFFA'%2C%20'%5CuFFFB'%2C%20'%5CuD834%5CuDD73'%2C%20'%5CuD834%5CuDD74'%2C%20'%5CuD834%5CuDD75'%2C%20'%5CuD834%5CuDD76'%2C%20'%5CuD834%5CuDD77'%2C%20'%5CuD834%5CuDD78'%2C%20'%5CuD834%5CuDD79'%2C%20'%5CuD834%5CuDD7A'%2C%20'%5CuDB40%5CuDC01'%2C%20'%5CuDB40%5CuDC20'%2C%20'%5CuDB40%5CuDC21'%2C%2
  445. # [15:03] <zcorpan> 0'%5CuDB40%5CuDC22'%2C%20'%5CuDB40%5CuDC23'%2C%20'%5CuDB40%5CuDC24'%2C%20'%5CuDB40%5CuDC25'%2C%20'%5CuDB40%5CuDC26'%2C%20'%5CuDB40%5CuDC27'%2C%20'%5CuDB40%5CuDC28'%2C%20'%5CuDB40%5CuDC29'%2C%20'%5CuDB40%5CuDC2A'%2C%20'%5CuDB40%5CuDC2B'%2C%20'%5CuDB40%5CuDC2C'%2C%20'%5CuDB40%5CuDC2D'%2C%20'%5CuDB40%5CuDC2E'%2C%20'%5CuDB40%5CuDC2F'%2C%20'%5CuDB40%5CuDC30'%2C%20'%5CuDB40%5CuDC31'%2C%20'%5CuDB40%5CuDC32'%2C%20'%5CuDB40%5CuDC33'%2C%20'%5CuDB40%5CuDC34
  446. # [15:04] <zcorpan> '%2C%20'%5CuDB40%5CuDC35'%2C%20'%5CuDB40%5CuDC36'%2C%20'%5CuDB40%5CuDC37'%2C%20'%5CuDB40%5CuDC38'%2C%20'%5CuDB40%5CuDC39'%2C%20'%5CuDB40%5CuDC3A'%2C%20'%5CuDB40%5CuDC3B'%2C%20'%5CuDB40%5CuDC3C'%2C%20'%5CuDB40%5CuDC3D'%2C%20'%5CuDB40%5CuDC3E'%2C%20'%5CuDB40%5CuDC3F'%2C%20'%5CuDB40%5CuDC40'%2C%20'%5CuDB40%5CuDC41'%2C%20'%5CuDB40%5CuDC42'%2C%20'%5CuDB40%5CuDC43'%2C%20'%5CuDB40%5CuDC44'%2C%20'%5CuDB40%5CuDC45'%2C%20'%5CuDB40%5CuDC46'%2C%20'%5CuDB40%5
  447. # [15:04] <zcorpan> CuDC47'%2C%20'%5CuDB40%5CuDC48'%2C%20'%5CuDB40%5CuDC49'%2C%20'%5CuDB40%5CuDC4A'%2C%20'%5CuDB40%5CuDC4B'%2C%20'%5CuDB40%5CuDC4C'%2C%20'%5CuDB40%5CuDC4D'%2C%20'%5CuDB40%5CuDC4E'%2C%20'%5CuDB40%5CuDC4F'%2C%20'%5CuDB40%5CuDC50'%2C%20'%5CuDB40%5CuDC51'%2C%20'%5CuDB40%5CuDC52'%2C%20'%5CuDB40%5CuDC53'%2C%20'%5CuDB40%5CuDC54'%2C%20'%5CuDB40%5CuDC55'%2C%20'%5CuDB40%5CuDC56'%2C%20'%5CuDB40%5CuDC57'%2C%20'%5CuDB40%5CuDC58'%2C%20'%5CuDB40%5CuDC59'%2C%20'%5Cu
  448. # [15:04] <zcorpan> DB40%5CuDC5A'%2C%20'%5CuDB40%5CuDC5B'%2C%20'%5CuDB40%5CuDC5C'%2C%20'%5CuDB40%5CuDC5D'%2C%20'%5CuDB40%5CuDC5E'%2C%20'%5CuDB40%5CuDC5F'%2C%20'%5CuDB40%5CuDC60'%2C%20'%5CuDB40%5CuDC61'%2C%20'%5CuDB40%5CuDC62'%2C%20'%5CuDB40%5CuDC63'%2C%20'%5CuDB40%5CuDC64'%2C%20'%5CuDB40%5CuDC65'%2C%20'%5CuDB40%5CuDC66'%2C%20'%5CuDB40%5CuDC67'%2C%20'%5CuDB40%5CuDC68'%2C%20'%5CuDB40%5CuDC69'%2C%20'%5CuDB40%5CuDC6A'%2C%20'%5CuDB40%5CuDC6B'%2C%20'%5CuDB40%5CuDC6C'%2C%2
  449. # [15:04] <zcorpan> 0'%5CuDB40%5CuDC6D'%2C%20'%5CuDB40%5CuDC6E'%2C%20'%5CuDB40%5CuDC6F'%2C%20'%5CuDB40%5CuDC70'%2C%20'%5CuDB40%5CuDC71'%2C%20'%5CuDB40%5CuDC72'%2C%20'%5CuDB40%5CuDC73'%2C%20'%5CuDB40%5CuDC74'%2C%20'%5CuDB40%5CuDC75'%2C%20'%5CuDB40%5CuDC76'%2C%20'%5CuDB40%5CuDC77'%2C%20'%5CuDB40%5CuDC78'%2C%20'%5CuDB40%5CuDC79'%2C%20'%5CuDB40%5CuDC7A'%2C%20'%5CuDB40%5CuDC7B'%2C%20'%5CuDB40%5CuDC7C'%2C%20'%5CuDB40%5CuDC7D'%2C%20'%5CuDB40%5CuDC7E'%2C%20'%5CuDB40%5CuDC7F
  450. # [15:04] <zcorpan> '%5D%3B%0D%0Avar%20test%3B%0D%0Avar%20log%20%3D%20%5B%5D%3B%0D%0Afor%20(var%20i%20%3D%200%3B%20i%20%3C%20Cf.length%3B%20%2B%2Bi)%20%7B%0D%0A%20%20try%20%7B%0D%0A%20%20%20%20eval('te'%20%2B%20Cf%5Bi%5D%20%2B%20'st%20%3D%20%22%22%3B')%3B%0D%0A%20%20%7D%20catch(e)%20%7B%0D%0A%20%20%20%20log.push(i)%3B%0D%0A%20%20%7D%0D%0A%7D%0D%0Avar%20passed%20%3D%20log.length%20%3D%3D%200%3B%0D%0Aw(passed%20%3F%20'PASS'%20%3A%20'FAIL%3A%20'%20%2B%20log)%3B%0D%0A%3
  451. # [15:04] <zcorpan> C%2Fscript%3E
  452. # [15:04] <zcorpan> oops
  453. # [15:04] <zcorpan> uploaded
  454. # [15:05] * Quits: mstange (n=markus@buntes215.wohnheim.uni-kl.de) ("ChatZilla 0.9.84 [Firefox 3.2a1pre/20081214020505]")
  455. # [15:05] * Joins: hdh (n=hdh@118.71.120.54)
  456. # [15:07] <yecril71> Mixed content Web pages have to worry about much more than just malformed input.
  457. # [15:09] * Quits: hdh (n=hdh@118.71.120.54) (Client Quit)
  458. # [15:17] * Joins: hdh (n=hdh@118.71.120.54)
  459. # [15:17] <Philip`> Uh oh, the mailing list is getting dangerously close to a discussion of why well-formedness is harder than it seems
  460. # [15:18] <Philip`> http://blog.dieweltistgarnichtso.net/?s=%ef%bf%bf - gosh, that was unexpected
  461. # [15:19] <MikeSmith> oophs
  462. # [15:23] * Quits: tndH (n=Rob@adsl-87-102-93-106.karoo.KCOM.COM) ("ChatZilla 0.9.84-rdmsoft [XULRunner 1.9.0.1/2008072406]")
  463. # [15:25] * Joins: rubys (n=rubys@cpe-075-182-087-110.nc.res.rr.com)
  464. # [15:28] <Philip`> "It might be more accurate to say that HTML5 is a significantly extended subset of HTML4." - that seems almost an information-free thing to say, since any set can be seen as an extension of a subset of any other set, particularly if you take the zero-sized subset and then extend it to contain everything in the first set
  465. # [15:29] <takkaria> where's that from?
  466. # [15:29] <MikeSmith> chaals posting
  467. # [15:29] <Philip`> "[whatwg] Stability of tokenizing/dom algorithms"
  468. # [15:29] * Philip` is probably being too pedantic :-)
  469. # [15:30] <MikeSmith> Philip`: yeah, "significantly extended subset" is a phrase I plan to appropriate for my own use later
  470. # [15:30] <MikeSmith> very handy
  471. # [15:30] <takkaria> ta
  472. # [15:30] <jgraham> Philip`: I did wonder what he meant
  473. # [15:30] <MikeSmith> plus, its abbreviation is SES
  474. # [15:31] <jgraham> Since an "extended subset" at best means "a non-disjoint set"
  475. # [15:31] <MikeSmith> or make that, <acronym>
  476. # [15:31] <Philip`> jgraham: Why would it mean non-disjoint?
  477. # [15:33] <jgraham> Because presumably "extended subset" implies that they have some elements in common
  478. # [15:33] <jgraham> Unless the null set is considered a subset of all sets
  479. # [15:33] <hsivonen> jgraham: the subset can be the empty set
  480. # [15:34] <jgraham> hsivonen: Oh. Well that is just silly :)
  481. # [15:34] <hsivonen> at least, humorous usage of "extended subset" is based on the possibility of the empty set being the subset
  482. # [15:36] <takkaria> Atom is thus a significantly extended subset of HTML4 too, I like it
  483. # [15:36] <rubys> me two
  484. # [15:37] * zcorpan is an extended subset of html4
  485. # [15:38] <Philip`> I'd define subsets as being something like S ⊆ T ⇔ (x ∊ S ⇒ x ∊ T) and so clearly S = ∅ is a subset of anything
  486. # [15:40] <jgraham> Philip`: Can you rewite that in english for people ho can't be bothered to look up formal logic symbols?
  487. # [15:42] <Philip`> S is a subset T if and only if (if x is a member of S, then x is a member of T)
  488. # [15:43] <jcranmer> Philip`: you need quantifiers
  489. # [15:43] <jcranmer> if and only if (for all x, ...)
  490. # [15:44] <Philip`> jcranmer: I'm, uh, leaving it implicitly quantified on purpose
  491. # [15:45] <rubys> jcranmer: I don't think so, a better translation would be: "S is a subset of T" is equivalent to saying "x is a member of S implies x is a member of T"
  492. # [15:45] <Philip`> Okay, so maybe I should have said something more like S ⊆ T ⇔ (∀ x ∊ S. x ∊ T)
  493. # [15:45] <Philip`> (It's hard writing this when my IRC font displays all these symbols as squares)
  494. # [15:48] <yecril71> That was cute, Mirc got it right :-)
  495. # [15:49] * olliej is now known as fakeolliej
  496. # [15:49] <Philip`> rubys: That's a bit too imprecise, because I could take S={1,2} and T={1,3} and x=1 and say that ""{1,2} is a subset of {1,3}" is equivalent to saying "1 is a member of {1,2}"" (and could repeat that for all values of x), which is not right
  497. # [15:49] <yecril71> Browsers do not assume that the author knows the language the document is written in.
  498. # [15:50] <Philip`> Oops, I forgot the "implies ..." bit, but that doesn't make a difference
  499. # [15:50] <yecril71> Just the opposite, they assume she does not.
  500. # [15:50] <jcranmer> my tt font has all these nice symbols
  501. # [15:51] <yecril71> Was that a sexist comment? Perhaps I should use "he" with pejorative statements?
  502. # [15:51] <jcranmer> it even has Japanese hiragana and katakana, although it's missing a fair amouint of kanji
  503. # [15:51] <jcranmer> yecril71: just dehumanize them with "it"
  504. # [15:52] <yecril71> That would be too ambiguous.
  505. # [15:54] <rubys> Philip` I think the word "implies" means more than you give it credit.
  506. # [15:54] <rubys> saying "x is a member of S implies x is a member of T" is a strong statement.
  507. # [15:55] <yecril71> Upon encountering a malformed entry, a shared content server can do one of two things:
  508. # [15:55] <yecril71> It can fix it or it can reject it.
  509. # [15:55] <yecril71> If it rejects, it can return the entry to the author for further processing.
  510. # [15:55] <Philip`> rubys: The problem is that it's ambiguous what "x" means when it's not explicitly quantified
  511. # [15:57] <Philip`> (at least when it's nested in more complex logical statements)
  512. # [15:57] <rubys> OK, I'll grant you that. An "∀ x" in front would help, or in words: "S is a subset of T" is equivalent to saying "for all x, x is a member of S implies x is a member of T"
  513. # [15:58] <Philip`> That sounds about right to me
  514. # [15:59] <Philip`> Now S and T are implicitly quantified, but I suppose that's okay since they're at the outermost level
  515. # [16:00] <yecril71> If the users cannot embed SCRIPT elements, how can they use jQuery.Validate in the first place?
  516. # [16:00] <yecril71> And if ID is not supported, why should CLASS be?
  517. # [16:06] <yecril71> I cannot imagine how submitting invalid HTML content could crash the server.
  518. # [16:06] <yecril71> And in the corporate environment.
  519. # [16:10] <Philip`> yecril71: You can bring the site down by posting ill-formed XML content, if the site is served as XHTML and displays your content to all other users, even though the server is unaffected
  520. # [16:11] * Quits: broquaint (i=f18462fe@spc1-brig11-0-0-cust544.asfd.broadband.ntl.com) (Remote closed the connection)
  521. # [16:14] * Joins: dglazkov (n=dglazkov@c-24-130-144-56.hsd1.ca.comcast.net)
  522. # [16:15] * Joins: eric_carlson (n=ericc@nat/apple/x-ac2deb61eed7a023)
  523. # [16:18] <yecril71> A corporate site that would allow such unsupervised arbitrary manipulation of key elements would be pretty insane.
  524. # [16:18] <Philip`> Not really - it's what happens whenever a site lets a user post comments
  525. # [16:19] <yecril71> That affects only one page, not the whole site.
  526. # [16:19] <Philip`> and even if it's plain text, they'll forget to deal will illegal characters that mean the output will be ill-formed when the text is inserted into their page
  527. # [16:19] <Philip`> The user can post a comment to every page on the site :-)
  528. # [16:20] <yecril71> Not really; key pages should be protected anyway.
  529. # [16:20] * Parts: deane (n=opera@121-72-173-193.dsl.telstraclear.net)
  530. # [16:28] * Quits: myakura (n=myakura@p4200-ipbf2306marunouchi.tokyo.ocn.ne.jp) ("Leaving...")
  531. # [16:41] * Quits: Hish (n=chatzill@mail2.n-e-s.de) (Read error: 104 (Connection reset by peer))
  532. # [16:42] * Joins: Hish (n=chatzill@mail2.n-e-s.de)
  533. # [16:57] * Quits: maikmerten (n=merten@ls5dhcp195.cs.uni-dortmund.de) (Remote closed the connection)
  534. # [16:57] * Joins: tndH (n=Rob@adsl-87-102-46-169.karoo.KCOM.COM)
  535. # [16:58] * Quits: dglazkov (n=dglazkov@c-24-130-144-56.hsd1.ca.comcast.net)
  536. # [17:01] * Quits: Maurice (n=ano@a80-101-46-164.adsl.xs4all.nl) ("Disconnected...")
  537. # [17:03] <gsnedders> How's y'all?
  538. # [17:06] * Joins: broquaint (i=aa4aedcc@spc1-brig11-0-0-cust544.asfd.broadband.ntl.com)
  539. # [17:17] * Joins: hallvors (n=hallvord@cm-84.208.78.204.getinternet.no)
  540. # [17:22] * Quits: aaronlev (n=chatzill@e179201169.adsl.alicedsl.de) ("ChatZilla 0.9.84-rdmsoft [XULRunner 1.9.0.1/2008072406]")
  541. # [17:26] * Joins: jruderman (n=jruderma@c-67-180-39-55.hsd1.ca.comcast.net)
  542. # [17:27] * Joins: dglazkov (n=dglazkov@nat/google/x-6ba0a64f617caeac)
  543. # [17:32] * Joins: erlehmann (n=erlehman@dslb-088-075-216-082.pools.arcor-ip.net)
  544. # [17:35] * Joins: MathiasBynens (n=sage@ip-81-11-169-75.dsl.scarlet.be)
  545. # [17:38] * Quits: Lachy (n=Lachlan@pat-tdc.opera.com) ("This computer has gone to sleep")
  546. # [17:42] * Joins: Maurice (i=copyman@5ED548D4.cable.ziggo.nl)
  547. # [17:44] * Quits: Hish (n=chatzill@mail2.n-e-s.de) (Read error: 101 (Network is unreachable))
  548. # [17:44] * Joins: Hish_ (n=chatzill@mail2.n-e-s.de)
  549. # [17:44] * Hish_ is now known as Hish
  550. # [17:45] * Joins: billmason (n=bmason@ip55.unival.com)
  551. # [17:54] * Quits: jruderman (n=jruderma@c-67-180-39-55.hsd1.ca.comcast.net)
  552. # [17:59] * Joins: pauld (n=pauld@host217-43-109-48.range217-43.btcentralplus.com)
  553. # [18:03] * Quits: pesla (n=retep@procurios.xs4all.nl) ("( www.nnscript.com :: NoNameScript 4.21 :: www.esnation.com )")
  554. # [18:10] * Joins: Mustafa51 (n=mustafa@122.164.164.128)
  555. # [18:20] * Quits: dglazkov (n=dglazkov@nat/google/x-6ba0a64f617caeac)
  556. # [18:21] <Dashiva> "Pointing out the smallest invalid subtree"
  557. # [18:21] <Dashiva> Assuming more than one XML error, is that technically possible?
  558. # [18:23] <Philip`> It's technically vague, so you can't tell - "subtree" only makes sense after you've parsed the document, and you can't parse the document if it's ill-formed, so you can't point out an ill-formed subtree
  559. # [18:23] <Philip`> (and "ill-formed" seems to be what was meant by "invalid", if I remember correctly)
  560. # [18:24] <Dashiva> Ah, there's that angle too
  561. # [18:24] <Dashiva> Then it's even less possible :)
  562. # [18:27] <gsnedders> Philip`: A subtree of the b element exists in the character-stream: <a><b><c/></b><d></a>
  563. # [18:27] <gsnedders> Philip`: Despite that not being well-formed, the XML parser doesn't need to throw a fatal error until the </a>
  564. # [18:28] * Quits: zcorpan (n=zcorpan@pat.se.opera.com)
  565. # [18:29] <Dashiva> gsnedders: Yeah, but we're talking about subtree containing the invalid part
  566. # [18:29] <gsnedders> Dashiva: True
  567. # [18:29] <gsnedders> Dashiva: Which is impossible
  568. # [18:29] * gsnedders is half asleep
  569. # [18:29] * gsnedders has been awake for five hours!
  570. # [18:30] <Dashiva> That's a long time to be half asleep!
  571. # [18:30] * Quits: billmason (n=bmason@ip55.unival.com) (Read error: 54 (Connection reset by peer))
  572. # [18:32] * Joins: billmason (n=bmason@ip55.unival.com)
  573. # [18:34] <Dashiva> I suppose you could parse it as HTML and keep track of where the ill-formed token ends up, but that seems awfully complicated compared to just using HTML :)
  574. # [18:39] * Joins: aroben (n=aroben@unaffiliated/aroben)
  575. # [18:40] * Joins: jruderman (n=jruderma@corp-241.mountainview.mozilla.com)
  576. # [18:46] <Philip`> Dashiva: And awfully user-hostile, if you're going to pop up a dialog box with several options for every error they made
  577. # [18:47] <yecril71> A subtree containing the invalid part is possible: <d/>
  578. # [18:47] <yecril71> This would always be a one-node subtree.
  579. # [18:48] * Joins: maikmerten (n=maikmert@L9f8d.l.pppool.de)
  580. # [18:48] <yecril71> Internet Explorer indicates the error by quoting the text stream.
  581. # [18:49] <yecril71> Are scripts executed in a detached document?
  582. # [18:49] * Joins: Lachy (n=Lachlan@85.196.122.246)
  583. # [18:49] <yecril71> I think they should not be, because there is no window.
  584. # [18:50] * Quits: weinig (n=weinig@c-69-181-81-233.hsd1.ca.comcast.net)
  585. # [18:51] <yecril71> InnerHTML is a poor way to insert a script, DOM manipulation is better.
  586. # [18:57] <yecril71> A document cannot be backward-compliant.
  587. # [18:58] <yecril71> HTML5 does not deprecate.
  588. # [19:02] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  589. # [19:05] <yecril71> Custom scripting engines are out of scope.
  590. # [19:05] <yecril71> CORBA and the like are served by the OBJECT element.
  591. # [19:10] * Joins: dglazkov (n=dglazkov@nat/google/x-0ffe6225a0427ccf)
  592. # [19:11] * Joins: annevk (n=annevk@217.174.106.250)
  593. # [19:11] * Quits: jruderman (n=jruderma@corp-241.mountainview.mozilla.com) (Read error: 60 (Operation timed out))
  594. # [19:12] * Quits: pauld (n=pauld@host217-43-109-48.range217-43.btcentralplus.com)
  595. # [19:15] <yecril71> An ECMAScript array object, being an ECMAScript array object, must carry all properties and methods of an ECMAScript array object.
  596. # [19:16] * Parts: annevk (n=annevk@217.174.106.250)
  597. # [19:17] <yecril71> The way to serialise complex data structures is XML and perhaps JSON.
  598. # [19:17] <yecril71> XML has an advantage of being programming-language-neutral.
  599. # [19:18] <takkaria> JSON is pretty programming-language neutral as well, really
  600. # [19:19] <yecril71> Will you be so kind and point be to a JSON reader implemented in Microsoft Visual Basic Scripting Edition?
  601. # [19:19] <yecril71> (I am not saying it cannot be done)
  602. # [19:23] * Quits: dave_levin (n=dave_lev@72.14.224.1)
  603. # [19:24] <yecril71> Digit-labelled items are not positional properties.
  604. # [19:26] * Joins: jruderman (n=jruderma@corp-241.mountainview.mozilla.com)
  605. # [19:26] <yecril71> OK, the lynching started.
  606. # [19:29] <yecril71> Communicating with remote server is done via cross-domain network requests, not by passing window messages.
  607. # [19:32] * Parts: rubys (n=rubys@cpe-075-182-087-110.nc.res.rr.com)
  608. # [19:34] <takkaria> those four posts are far too long for me to read :)
  609. # [19:34] <yecril71> Do not worry, I shall do it for you :-)
  610. # [19:34] * Joins: ojan (n=ojan@72.14.229.81)
  611. # [19:35] <yecril71> Tunnelling through one dedicated window to save on HTTP connections is utter nonsense.
  612. # [19:37] <yecril71> A Web application should not use more than one window.
  613. # [19:41] * Joins: jwalden (n=waldo@guest-225.mountainview.mozilla.com)
  614. # [19:45] * Quits: gsnedders (n=gsnedder@host86-148-25-197.range86-148.btcentralplus.com) (Client Quit)
  615. # [19:46] * Joins: dave_levin (n=dave_lev@72.14.227.1)
  616. # [19:48] * Quits: dolske (n=dolske@firefox/developer/dolske)
  617. # [19:53] <yecril71> defaultscript is called language in HTML.
  618. # [19:54] <yecril71> Voiding an unsupported script would be harmful for other scripts.
  619. # [19:56] <yecril71> Dynamic attributes and declared attributes should obey the same semantic rules.
  620. # [19:56] * Joins: gsnedders (n=gsnedder@host86-148-25-197.range86-148.btcentralplus.com)
  621. # [19:58] <yecril71> Stranger scripts should be able to access all event handlers as defined.
  622. # [20:01] * Joins: shepazutoo (n=schepers@c-69-139-224-74.hsd1.md.comcast.net)
  623. # [20:01] <yecril71> Since classic event handler attributes are just strings, no harm is done by providing access to them.
  624. # [20:02] * Quits: shepazu (n=schepers@c-69-139-224-74.hsd1.md.comcast.net) (Read error: 60 (Operation timed out))
  625. # [20:06] <yecril71> Detection whether a particular scripting language is easy: just include a script in that language setting some global property.
  626. # [20:07] <yecril71> If it is not set, other scripts can infer that it is not supported.
  627. # [20:08] <yecril71> That way, the scripts can negotiate the preference order themselves, and with a better granularity than the host.
  628. # [20:10] <Philip`> What if it's a pure functional language like Haskell and it's not possible to modify any state?
  629. # [20:10] <yecril71> It has nothing to do in HTML then.
  630. # [20:10] <yecril71> Because HTML DOM is about modifying states.
  631. # [20:11] <yecril71> You could have an analogue of document.write in Haskell, but that is all.
  632. # [20:14] * Joins: dolske (n=dolske@guest-225.mountainview.mozilla.com)
  633. # [20:16] <yecril71> Event handlers are synchronous.
  634. # [20:20] * Joins: dolske_ (n=dolske@corp-241.mountainview.mozilla.com)
  635. # [20:22] * Joins: mstange (n=markus@aixd3.rhrk.uni-kl.de)
  636. # [20:23] * Quits: virtuelv (n=virtuelv@pat-tdc.opera.com) ("Leaving")
  637. # [20:33] * Quits: roc (n=roc@121-72-208-254.dsl.telstraclear.net)
  638. # [20:36] * Quits: dolske (n=dolske@firefox/developer/dolske) (Read error: 110 (Connection timed out))
  639. # [20:38] * Joins: dimich (n=dimich@c-98-203-230-54.hsd1.wa.comcast.net)
  640. # [20:39] * Parts: MathiasBynens (n=sage@ip-81-11-169-75.dsl.scarlet.be)
  641. # [20:45] * Joins: dimich_ (n=dimich@72.14.224.1)
  642. # [20:56] <Dashiva> Hixie: Did you see Philip`'s comment about the structured cloning and multiple references to the same object?
  643. # [20:57] * Joins: pauld (n=pauld@host217-43-109-48.range217-43.btcentralplus.com)
  644. # [20:58] <Hixie> no?
  645. # [20:58] * Joins: annevk (n=annevk@217.174.106.250)
  646. # [20:59] <Dashiva> If you have an object a and send [a, a] through the algorithm, you get [a', a"] out
  647. # [21:00] <Hixie> yes, that's intentional
  648. # [21:00] * Quits: dimich (n=dimich@c-98-203-230-54.hsd1.wa.comcast.net) (Read error: 110 (Connection timed out))
  649. # [21:01] * Joins: tantek (n=tantek@204.9.180.30)
  650. # [21:02] <Dashiva> It seems that since there's no serialization going on, the relationship could be maintained (which would also save work on those cases)
  651. # [21:03] <Hixie> i guess
  652. # [21:07] * Quits: ap (n=ap@195.239.126.10)
  653. # [21:10] * Joins: nessy (n=nessy@124-171-30-131.dyn.iinet.net.au)
  654. # [21:13] * Quits: nessy (n=nessy@124-171-30-131.dyn.iinet.net.au) (Client Quit)
  655. # [21:16] <Philip`> http://krijnhoetmer.nl/irc-logs/html-wg/20081216#l-134 is the aforementioned comment
  656. # [21:17] <Philip`> But I don't see any real value in trying to 'fix' it - UAs will presumably already have to handle out-of-memory conditions when cloning, and this just provides an easier way to trigger that
  657. # [21:18] <Dashiva> I see value in less work while still maintaining the assocations
  658. # [21:19] <Philip`> Is it a pattern that's likely to be common in practice (and not just in malicious cases)?
  659. # [21:20] <Hixie> oh if we did this OOM protection wouldn't be the reason
  660. # [21:21] <Dashiva> Philip`: That's a hard question to ask about a brand new feature :)
  661. # [21:21] <Hixie> we could trivially make loops and non-loop duplicates get preserved
  662. # [21:21] <Hixie> the question is whether we want to
  663. # [21:22] <Hixie> it makes it much harder for UAs to use serialisation mechanisms to do it
  664. # [21:22] <Hixie> e.g. JSON
  665. # [21:22] <Hixie> since they'd have to extend JSON to not only support things like NaN (not hard to do) but also to support labels and references.
  666. # [21:22] <Philip`> Firefox can already serialise cyclic and duplicative data structures in uneval(), using the #1# property syntax or whatever it is
  667. # [21:23] <gavin> "sharp variables"
  668. # [21:23] <Dashiva> Gavin Sharp variables? :)
  669. # [21:24] <gavin> unfortunately not :)
  670. # [21:24] * Quits: hallvors (n=hallvord@cm-84.208.78.204.getinternet.no) (Read error: 110 (Connection timed out))
  671. # [21:24] <yecril71> labels and references can be handled by host application.
  672. # [21:25] <Hixie> i don't understand http://www.w3.org/mid/1229450642.7182.401.camel@pav.lan
  673. # [21:25] <Philip`> I nearly poked my eye out on a sharp variable once
  674. # [21:26] * Joins: nessy (n=nessy@124-171-30-131.dyn.iinet.net.au)
  675. # [21:27] * Quits: drry (n=drry@it17.opt2.point.ne.jp)
  676. # [21:27] * Joins: roc (n=roc@202.0.36.64)
  677. # [21:29] * Joins: drry (n=drry@it17.opt2.point.ne.jp)
  678. # [21:31] * Quits: drry (n=drry@it17.opt2.point.ne.jp) (Client Quit)
  679. # [21:31] * Quits: mstange (n=markus@aixd3.rhrk.uni-kl.de) ("ChatZilla 0.9.84 [Firefox 3.2a1pre/20081216020422]")
  680. # [21:32] * Quits: pauld (n=pauld@host217-43-109-48.range217-43.btcentralplus.com) ("Gone for a burton")
  681. # [21:33] * Joins: hallvors (n=hallvord@cm-84.208.78.204.getinternet.no)
  682. # [21:33] * Joins: drry (n=drry@it17.opt2.point.ne.jp)
  683. # [21:34] * Quits: drry (n=drry@it17.opt2.point.ne.jp) (Client Quit)
  684. # [21:45] <gsnedders> hmm…
  685. # [21:45] <gsnedders> do I go to christmas dance or not?
  686. # [21:50] * Joins: dolske (n=dolske@corp-241.mountainview.mozilla.com)
  687. # [21:54] * Quits: maikmerten (n=maikmert@L9f8d.l.pppool.de) (Remote closed the connection)
  688. # [21:54] <gsnedders> I've been getting more spam in my moderation queue on my blog. Seems spammers are getting less dumb.
  689. # [21:57] * Joins: drry (n=drry@it17.opt2.point.ne.jp)
  690. # [21:58] * Quits: tantek (n=tantek@204.9.180.30)
  691. # [22:01] <hober> that reminds me, I've been meaning to ask DanC about the origins of his [[...]] quoting style.
  692. # [22:06] * Quits: dolske_ (n=dolske@corp-241.mountainview.mozilla.com) (Read error: 110 (Connection timed out))
  693. # [22:08] * jwalden doesn't like sharp variables
  694. # [22:08] <jwalden> !summon abarth
  695. # [22:09] * Joins: mstange (n=markus@aixd3.rhrk.uni-kl.de)
  696. # [22:10] <Hixie> sicking: how do you feel about preserving cycles?
  697. # [22:11] * Quits: nessy (n=nessy@124-171-30-131.dyn.iinet.net.au) ("This computer has gone to sleep")
  698. # [22:36] <jwalden> when did we decide just using JSON to convert to and from strings passed through these APIs wasn't good enough? I'd thought that was what the plan was going to be
  699. # [22:37] <Hixie> roughly when we looked at JSON
  700. # [22:37] <jwalden> when was this? some thread in whatwg@ I missed?
  701. # [22:37] * jwalden is about six months out of the loop, mind
  702. # [22:38] <Hixie> it was discussed last night on IRC, primarily
  703. # [22:38] <jwalden> oh, just then?
  704. # [22:38] <Hixie> (it can't preserve things like undefined, NaN, Infinity, it screws up arrays, etc)
  705. # [22:38] <Hixie> (it stringifies host objects, which seems dangerous)
  706. # [22:38] <jwalden> holey arrays, not especially common I suspect
  707. # [22:38] <jwalden> host objects are an author error, no?
  708. # [22:38] <Hixie> well the point is why would we _want_ to break these things if we didn't have to
  709. # [22:39] <Hixie> i mean, the api here isn't JSON, the JSON would be just an implementation detail
  710. # [22:39] <jwalden> keep things simple to understand
  711. # [22:39] <Hixie> might as well use XML or something else
  712. # [22:39] <Hixie> simple for whom?
  713. # [22:39] <jwalden> authors
  714. # [22:39] <jwalden> you use JSON to push it through, you use JSON to get it out
  715. # [22:39] <jwalden> and I think authors are familiar with JSON nowadays
  716. # [22:39] <Hixie> oh you mean just not supporting it natively?
  717. # [22:40] <Hixie> and only doing strings in the API?
  718. # [22:40] <jwalden> basically
  719. # [22:40] <Hixie> oh
  720. # [22:40] <Hixie> sorry, my bad
  721. # [22:40] <Hixie> different discussion
  722. # [22:40] <Hixie> i added structured data passing because mozilla implemented it
  723. # [22:40] <jwalden> we did? another thing I'm six months behind on, I guess
  724. # [22:41] <Hixie> heh
  725. # [22:41] <Hixie> i was trying to delay it as much as possible, so that implementations would focus on what was in the spec, but no point not speccing it if implementations are doing it anyway
  726. # [22:41] <Hixie> heycam: yt?
  727. # [22:41] <jwalden> sicking: pass me a bug number when you get back?
  728. # [22:42] <jwalden> that changes things somewhat
  729. # [22:45] <Hixie> gsnedders: ou have no idea how much i want support for cross-spec xrefs :-)
  730. # [22:45] <Hixie> maybe i should just code it up myself
  731. # [22:45] <gsnedders> Hixie: :)
  732. # [22:45] <Hixie> i wonder how hard it is to write anolis plugins
  733. # [22:45] <gsnedders> Hixie: The whole design of anolis is based around a single doc,
  734. # [22:46] * Joins: doublec (n=chris@202.0.36.64)
  735. # [22:47] * Quits: hdh (n=hdh@118.71.120.54) (Read error: 104 (Connection reset by peer))
  736. # [22:48] <Hixie> gsnedders: well this would just be a fallback for things that couldn't be xreffed already -- so it would just need a separate bit before to set up fallback references in a separate list
  737. # [22:49] <Hixie> not sure exactly how it would work
  738. # [22:49] <gsnedders> :)
  739. # [22:54] * Joins: tantek (n=tantek@204.9.180.30)
  740. # [22:55] <Philip`> Does it need to be automatic crossreferencing, rather than something explicit like <a href="workers#some-id-value">?
  741. # [22:57] <gsnedders> Hixie: How urgently do you need xdoc xref?
  742. # [22:57] <Hixie> i don't really "need" it, but it would make my life simpler instantly as soon as i could use it
  743. # [22:57] <Hixie> mostly right now i'd use it for web workers -> html5, and for html5 -> webidl
  744. # [22:58] <Hixie> please don't put it ahead of your schoolwork or anything :-)
  745. # [22:58] * gsnedders has the issue of having an English dissertation and computing project to do by the 8th of Jan
  746. # [22:58] <gsnedders> I can't really put much ahead of that :)
  747. # [22:58] <gsnedders> Apart from procrastination, obviously :)
  748. # [22:59] <Hixie> well feel free to use this as procastrination :-)
  749. # [22:59] <gsnedders> I need to ship 1.0 first
  750. # [22:59] <gsnedders> Though I don't foresee anything changing
  751. # [22:59] <gsnedders> Apart from making it possible to install with easy_install
  752. # [23:00] <gsnedders> (i.e., easy_install anolis would install anolis and all dependancies)
  753. # [23:00] <sicking> Hixie, preserving cycles?
  754. # [23:00] <sicking> jwalden, bug# for what?
  755. # [23:01] <jwalden> sicking: this structured-data passing mechanism Hixie says we implemented
  756. # [23:01] <sicking> jwalden, ah
  757. # [23:01] <gsnedders> For either 1.1 or 2.0 (if you nag my enough into doing xdoc xref soon) I want to re-evaluate depending on html5lib at all
  758. # [23:01] <Hixie> sicking: in postMessage(), what do you think of preserving [a, a] as an array referencing the saem object twice? (also lets us preserve cycles)
  759. # [23:01] <Hixie> gsnedders: ah
  760. # [23:02] <Hixie> gsnedders: well html5lib will get faster in time, i expect (and hope!)
  761. # [23:02] <sicking> Hixie, i'm not really the person to ask. I think we need to solve the to JSON-or-not-to-JSON question first
  762. # [23:02] <gsnedders> Hixie: Yeah, but if you're using the libxml HTML parser, should I really require html5lib to be installed?
  763. # [23:02] <Hixie> sicking: do you know who is?
  764. # [23:03] <Philip`> I hope html5lib won't get too much faster, because it should remain pure Python (since there are situations where you can't use C modules)
  765. # [23:03] <sicking> Hixie, brendan, sayrer, and/or maciej
  766. # [23:03] <Hixie> gsnedders: given that the people actually hosting it are also the html5lib implementors, it seems not a problem to rely on it :-)
  767. # [23:03] <gsnedders> Hixie: But for those of us who want our own local copies? :)
  768. # [23:03] <Hixie> Philip`: i hope html5lib will also have a C module implementation if that is the only way to make it faster
  769. # [23:03] <Philip`> html5lib isn't exactly hard to install
  770. # [23:03] <sicking> Hixie, IMHO it comes down to: is JSON a native data-interchange-format for javascript? Or is it just specific to the JSON object
  771. # [23:04] <Hixie> sicking: k, thanks
  772. # [23:05] <gsnedders> Hixie: I think we've more or less reached the limit of pure Python without massively redesigning the codebase and making it less powerful :)
  773. # [23:05] * Quits: tndH (n=Rob@adsl-87-102-46-169.karoo.KCOM.COM) ("ChatZilla 0.9.84-rdmsoft [XULRunner 1.9.0.1/2008072406]")
  774. # [23:06] <Philip`> Is there any reason why html5lib should be slower than sgmllib?
  775. # [23:06] <gsnedders> Because HTML5 is simpler than SGML?
  776. # [23:06] <Philip`> (I'm not actually sure if it is slower or not - maybe I should test that...)
  777. # [23:06] <gsnedders> Or more likely sgmllib is an incomplete implementation of SGML.
  778. # [23:07] <Philip`> Most of the cost is just reading characters while tokenising, which should be pretty much the same in html5lib and sgmllib
  779. # [23:08] <Hixie> any software being slower than instantaneous is a bug almost by definition, not counting time spent waiting for other software, hardware, or user interaction.
  780. # [23:08] * gsnedders blames jgraham for getting him to keep trying to write it in Python and not learning C++ and trying to write Anolis in that
  781. # [23:09] <Philip`> gsnedders: But you wrote it in Python and you have something that works, whereas if you wrote it while learning C++ then you probably wouldn't :-)
  782. # [23:09] <gsnedders> :)
  783. # [23:09] <gsnedders> Philip`: If I tried to write it while learning C++ I'd probably give up trying to learn C++
  784. # [23:09] * Joins: weinig (n=weinig@17.244.17.169)
  785. # [23:09] <gsnedders> Philip`: And thus would have nothing
  786. # [23:09] <Philip`> and even if it did work in C++, you'd think it was ugly since it was the first program you ever wrote in that language and so you'd want to rewrite it immediately
  787. # [23:10] <gsnedders> Philip`: It's the first program I wrote in Python!
  788. # [23:10] <Philip`> Oh
  789. # [23:10] <Philip`> But Python is much more forgiving of first-time programmers than C++ :-)
  790. # [23:10] <gsnedders> :)
  791. # [23:11] * Quits: weinig (n=weinig@17.244.17.169) (Client Quit)
  792. # [23:17] <yecril71> Except that it requires an indentation-aware editor and a wide screen.
  793. # [23:17] <yecril71> So it has some serious hardware/software requirements :=)
  794. # [23:18] <yecril71> I was on the verge on writing an indenting preprocessor when I wrote in Python.
  795. # [23:18] <yecril71> verge of
  796. # [23:19] <jruderman> writing C++ pretty much requires an indentation-aware editor ... even more than python, i'd argue, since you end up writing 3 times as many lines of code
  797. # [23:20] <yecril71> I do not use indentation when I code over Telnet.
  798. # [23:20] <yecril71> In C++, that is.
  799. # [23:21] <yecril71> 80 columns are hardly enough to hold an expression, I cannot afford any indentation.
  800. # [23:24] * Joins: dimich (n=dimich@c-98-203-230-54.hsd1.wa.comcast.net)
  801. # [23:24] * Quits: Maurice (i=copyman@5ED548D4.cable.ziggo.nl) ("Disconnected...")
  802. # [23:26] <Philip`> sgmllib tokenises the HTML5 spec in 2.7 seconds, html5lib takes 10.5 seconds
  803. # [23:26] <Philip`> (Both give the same output when I use them to count the number of start tags)
  804. # [23:26] <Philip`> (The input is a string in both cases)
  805. # [23:26] <Hixie> i wonder what the difference is
  806. # [23:26] <Hixie> and don't say 7.8
  807. # [23:27] <Philip`> sgmllib is pure Python, as far as I can see
  808. # [23:27] <Dashiva> Maybe sgmllib uses byte strings?
  809. # [23:27] * Quits: dimich_ (n=dimich@72.14.224.1) (Read error: 60 (Operation timed out))
  810. # [23:28] * Quits: mstange (n=markus@aixd3.rhrk.uni-kl.de) ("ChatZilla 0.9.84 [Firefox 3.2a1pre/20081216020422]")
  811. # [23:30] * Quits: ROBOd (n=robod@89.122.216.38) ("http://www.robodesign.ro")
  812. # [23:31] <Philip`> html5lib does almost four times as many function calls as sgmllib
  813. # [23:31] <Philip`> Are function calls really expensive in Python?
  814. # [23:32] <Philip`> where "really expensive" means "about a thousand clock cycles"
  815. # [23:32] <Philip`> I can imagine that they possibly are
  816. # [23:35] * Quits: heycam (n=cam@203-217-82-242.dyn.iinet.net.au) ("bye")
  817. # [23:37] <gsnedders> Philip`: They are fairly expensive
  818. # [23:37] <gsnedders> Hixie: 7.8 seconds.
  819. # [23:37] <gsnedders> :)
  820. # [23:38] <gsnedders> Philip`: I concluded on my laptop, IIRC, that a function call cost 1µs
  821. # [23:39] <karlcow> http://wiki.python.org/moin/PythonSpeed/PerformanceTips
  822. # [23:39] <Philip`> gsnedders: I conclude that your laptop is a bit slow, since mine does about 2.5e6 function calls (plus some non-trivial work doing all the tokenisation) in about 1.6 seconds
  823. # [23:40] <gsnedders> Philip`: This was an IIRC case
  824. # [23:40] <gsnedders> karlcow: I think we've got beyond that document, really :)
  825. # [23:40] * Joins: aaronlev (n=chatzill@e179201169.adsl.alicedsl.de)
  826. # [23:44] * Joins: shepazu (n=schepers@c-69-139-224-74.hsd1.md.comcast.net)
  827. # [23:45] * karlcow should take a look again at html5lib
  828. # [23:45] <karlcow> it has been a super long time I have done so
  829. # [23:45] <Philip`> Hmm
  830. # [23:46] <Philip`> I can save about 10% just by replacing "class X(object):" with "class X:", for X in ('HTMLInputStream', 'HTMLTokenizer')
  831. # [23:46] * fakeolliej is now known as olliej
  832. # [23:46] <gsnedders> New style classes are slow?
  833. # [23:48] <Philip`> Apparently so
  834. # [23:48] <Philip`> (at least in Python 2.5 on x86)
  835. # [23:49] <Philip`> (on classes that aren't doing any inheritance)
  836. # [23:55] * Quits: jruderman (n=jruderma@corp-241.mountainview.mozilla.com)
  837. # [23:59] * Joins: weinig (n=weinig@17.244.17.169)
  838. # Session Close: Wed Dec 17 00:00:01 2008

The end :)