/irc-logs / freenode / #whatwg / 2009-06-02 / end

Options:

  1. # Session Start: Tue Jun 02 00:00:00 2009
  2. # Session Ident: #whatwg
  3. # [00:01] * Joins: othermaciej (n=mjs@c-69-181-42-237.hsd1.ca.comcast.net)
  4. # [00:05] * Quits: weinig (n=weinig@17.246.17.109)
  5. # [00:08] * Parts: steve__ (n=chatzill@33.43.32.207.sta.southslope.net)
  6. # [00:11] * Quits: annevk2 (n=annevk@5ED2D22C.cable.ziggo.nl)
  7. # [00:18] * Quits: Kura[gone] (n=faruk@17.226.23.52)
  8. # [00:26] * Quits: drostie (n=hopkins@5ED17066.cable.ziggo.nl) ("even marathon runners need to nap / i ran all the way there and then ran back / but back was gone...")
  9. # [00:30] <ezyang> gsnedders: (a very late response) Put it in HTMLParser. That should be the "public interface"
  10. # [00:31] <ezyang> gsnedders: Godawful libxml bug == "Namespace Error" when you try to set a namespaced attribute.
  11. # [00:32] <jwalden> so, looking at the websocket protocol, what constraints are enforced on the server regarding processing of the input? is it an error if tab-delimited "header" lines are received? what if "multi-line headers" are received? basically, websockets looks like HTTP, but at what point does accepting HTTP input that's more lax than the websocket client input constitute a violation of the protocol...
  12. # [00:32] <jwalden> ...requirements?
  13. # [00:34] <Hixie> what do you mean by "enforced"?
  14. # [00:34] <Hixie> the protocol spec says what you're expected to suport
  15. # [00:34] <Hixie> support
  16. # [00:34] <Hixie> as a server-side author
  17. # [00:35] * Joins: weinig (n=weinig@17.246.17.109)
  18. # [00:35] <jwalden> s/enforced/required/, then
  19. # [00:35] <jwalden> the client is required to follow the exact steps given in the draft
  20. # [00:35] <Hixie> http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-12#page-15
  21. # [00:36] <jwalden> the server, it seems, has latitude to accept more than that
  22. # [00:36] <jwalden> is the server required to accept input from a client that doesn't actually follow the strictures of the client-processing section?
  23. # [00:36] <jwalden> yes, I've been looking at that
  24. # [00:37] <ezyang> gsnedders: My idea is to implement SimpleTree and watch our performance problems melt away ^_^
  25. # [00:37] <Hixie> jwalden: the server doesn't have to do any error handling, if that's what you mean
  26. # [00:37] <jwalden> okay
  27. # [00:38] <jwalden> that seems...dangerous
  28. # [00:38] <jwalden> not in any tangible sense
  29. # [00:38] <Hixie> the ability to control authors is basically nil
  30. # [00:38] <Hixie> so getting them to implement particular error handling behavior... forget it
  31. # [00:38] <jwalden> but in the sense of I-can-plausibly-believe-this-will-bite-us-at-some-point
  32. # [00:38] <jwalden> no, this is error handling server-side
  33. # [00:39] <Hixie> right
  34. # [00:39] <Hixie> authors write the server side
  35. # [00:39] <jwalden> oh, there are authors on both sides
  36. # [00:39] <jwalden> hum, this might work then
  37. # [00:40] <Hixie> i could write a new section
  38. # [00:40] <Hixie> which is "full requirements for server-side implementors that actually follow specs"
  39. # [00:40] <Hixie> if you like
  40. # [00:40] <Hixie> might not be a bad idea
  41. # [00:40] <jwalden> dunno, yet
  42. # [00:40] <Hixie> if you do think that would be useful, send a mail to whatwg, and i'll add it
  43. # [00:41] <jwalden> I'm just looking at this from the POV of the Mozilla bug, in which our HTTP server is being lightly hijacked to support all this, worried about being more generous in accepting input than it should be
  44. # [00:41] <Hixie> is this for testing or for production?
  45. # [00:42] <Hixie> for regression testing, it doesn't matter what the server does, it just has to check that the client sends exactly the right bytes
  46. # [00:42] <jwalden> I try not to differentiate the two when I write servers (or rather, when I write the one server I've written so far)
  47. # [00:42] <Hixie> a regression test suite server and a production server are completely different
  48. # [00:42] <Hixie> you can't, e.g., use apache to do serious regression testing of client-side http behaviour
  49. # [00:42] <jwalden> yes, but that doesn't mean one shouldn't make an effort not to make it safe-by-default
  50. # [00:43] <Hixie> i don't really see how a regression-testing server framework can be unsafe -- it has to accept any input whatsoever
  51. # [00:43] * Joins: olliej (n=oliver@17.203.15.178)
  52. # [00:44] <jwalden> hm, I think we're talking about different meanings; "production" to me is use in which inputs are unconstrained, "regression-testing" in the sense of inputs are constrained but may intentionally be random junk
  53. # [00:44] <jwalden> constrained by whatever's in the test suite using it
  54. # [00:47] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  55. # [00:48] <jwalden> on an unrelated note, reading RFC-style formatting rather than whatwg-style formatting is no fun :-(
  56. # [00:48] <jwalden> especially since things like "find" don't work due to ASCII text-decorations
  57. # [00:50] <Hixie> jwalden: an "in production" server is one serving end-user traffic
  58. # [00:50] <jwalden> we agree on that
  59. # [00:50] <Hixie> jwalden: a regression testing server is one used to test another tool's implementation
  60. # [00:51] <jwalden> sure, just say that I like my regression testing servers to have as rigorous an implementation as a production server must have
  61. # [00:51] <Hixie> so an in-production server can do things like disconnect if the input is bogus
  62. # [00:51] <Hixie> but a regression testing server needs to report pass/fail for all inputs
  63. # [00:53] * Joins: nessy (n=nessy@203-166-243-94.dyn.iinet.net.au)
  64. # [00:58] * Quits: othermaciej (n=mjs@c-69-181-42-237.hsd1.ca.comcast.net)
  65. # [01:03] <gsnedders> http://larry.masinter.net/versioning-html.html
  66. # [01:03] <gsnedders> (from www-tag)
  67. # [01:04] <ezyang> 'lo gsnedders
  68. # [01:04] <ezyang> Did you see my late late late msgs?
  69. # [01:04] <gsnedders> ezyang: yes
  70. # [01:05] <gsnedders> ezyang: I've fixed another test case (actually, I've fixed the test runner).
  71. # [01:05] <ezyang> Makes sense
  72. # [01:05] <ezyang> The strDom() function is hack on hack on hack
  73. # [01:08] <ezyang> Hixie: ping?
  74. # [01:13] * Joins: doublec (n=doublec@202.0.36.64)
  75. # [01:16] * Quits: tndH (n=Rob@james-baillie-pc083-229.student-halls.leeds.ac.uk) ("ChatZilla 0.9.84-rdmsoft [XULRunner 1.9.0.1/2008072406]")
  76. # [01:21] * Joins: dimich_ (n=dimich@72.14.227.1)
  77. # [01:24] <Hixie> ezyang: here
  78. # [01:25] * Quits: dglazkov (n=dglazkov@nat/google/x-aa7c1b98247e5eda) (Read error: 104 (Connection reset by peer))
  79. # [01:25] <ezyang> Hixie: Can you comment on what IN_FOREIGN_CONTENT is supposed to do when we are processing an HTML element as "in body", and that element wants us to change the mode?
  80. # [01:26] <Hixie> um
  81. # [01:26] <Hixie> nothing beyond what the spec says as far as i can tell
  82. # [01:26] <Hixie> how do you mean?
  83. # [01:27] <ezyang> As far as I can tell, the spec doesn't record that you were originally in "in foreign content" when it hops to another mode, so when you pop out of that, you stay in "in body", and don't go back to "in foreign content"
  84. # [01:27] <ezyang> I just wanted to verify that this was true before sending mail
  85. # [01:29] * Joins: dglazkov (n=dglazkov@nat/google/x-caec6c0046adfc08)
  86. # [01:30] * Joins: thomaslee__ (n=tom@203-217-75-64.dyn.iinet.net.au)
  87. # [01:31] * Quits: thomaslee_ (n=tom@124-168-16-185.dyn.iinet.net.au) (Read error: 101 (Network is unreachable))
  88. # [01:40] <theMadness> Augh, damn user agents.
  89. # [01:40] <theMadness> They create a plethora of <a> nodes when I wrap some block item inside an <a> tag.
  90. # [01:41] <theMadness> I guess I have overestimated the current support of html5.
  91. # [01:42] <Hixie> ezyang: minimal testcase? do you mean like <svg><table> ?
  92. # [01:42] * Quits: aroben|meeting (n=aroben@unaffiliated/aroben) (Read error: 104 (Connection reset by peer))
  93. # [01:48] * Quits: thomaslee__ (n=tom@203-217-75-64.dyn.iinet.net.au) ("Ex-Chat")
  94. # [01:48] * Joins: wakaba (n=wakaba@EM114-51-138-211.pool.e-mobile.ne.jp)
  95. # [01:49] <ezyang> <svg><foreignObject><table></table></foreignObject></svg>
  96. # [01:50] <ezyang> Uhh, make that <svg><foreignObject><table></table></foreignObject><g/></svg>
  97. # [01:51] <Hixie> ezyang: wouldn't you switch back to foreign content when you reset after the </table>?
  98. # [01:52] <ezyang> Possibly. Let me check that part of the spec again
  99. # [01:53] <ezyang> Yep, looks like it.
  100. # [01:55] * Quits: wakaba_ (n=wakaba@EM114-51-141-8.pool.e-mobile.ne.jp) (Read error: 60 (Operation timed out))
  101. # [01:57] <Hixie> anyone here understand RDF/XML?
  102. # [01:59] * Quits: dglazkov (n=dglazkov@nat/google/x-caec6c0046adfc08)
  103. # [02:01] <Dashiva> I figured RDF/XML would be mostly self-explanatory, but if you're asking that question, I guess not
  104. # [02:06] * Quits: olliej (n=oliver@17.203.15.178) (Read error: 104 (Connection reset by peer))
  105. # [02:06] * Joins: olliej (n=oliver@17.203.15.178)
  106. # [02:16] <ezyang> Is there any good way of just getting messages about changes to the html5lib spec that are w.r.t. tokenization/tree-building?
  107. # [02:16] <ezyang> erm, s/html5lib/html5/
  108. # [02:17] <Hixie> yeah, look for 't' in the first field
  109. # [02:17] <ezyang> Hm... so I still have to sign up for html5-commits, and just filter out things w/o t in the first field?
  110. # [02:18] <Hixie> or you can use the tracker
  111. # [02:18] * Joins: othermaciej (n=mjs@nat/apple/x-86001afba8a0be29)
  112. # [02:18] <Hixie> it has little check boxes that filter out everything else
  113. # [02:18] <Hixie> note that i often screw up
  114. # [02:18] <Hixie> so don't rely on it too much :-)
  115. # [02:18] <ezyang> So, "Affects Tools" is what I want?
  116. # [02:19] <ezyang> Man, I wish this had an RSS feed
  117. # [02:19] <ezyang> (and an easier way of unchecking everything)
  118. # [02:20] <Hixie> yeah
  119. # [02:20] <Hixie> you can provide patches, i believe
  120. # [02:21] <Hixie> the code is in code.google.com/html5
  121. # [02:21] <ezyang> Sweet.
  122. # [02:21] <ezyang> Assuming it's not too grody, I'll take a stab
  123. # [02:21] <ezyang> ftr, it's http://code.google.com/p/html5/
  124. # [02:21] <ezyang> Aw, it's still svn
  125. # [02:22] <ezyang> Can I get commit access?
  126. # [02:24] <Hixie> sure
  127. # [02:25] <Hixie> what's your account?
  128. # [02:25] <ezyang> edwardzyang@thewritingpot.com
  129. # [02:25] <ezyang> (same as html5lib)
  130. # [02:26] <Hixie> i'm not an html5lib admin :-)
  131. # [02:26] * Quits: ZombieLoffe (n=e@unaffiliated/zombieloffe)
  132. # [02:27] <Hixie> done
  133. # [02:27] <Hixie> don't break anything :-)
  134. # [02:27] <ezyang> Aye-aye, captain!
  135. # [02:29] * Quits: webben (n=benh@dip5-fw.corp.ukl.yahoo.com) ("Lost terminal")
  136. # [02:33] * Joins: hdh (n=hdh@58.187.207.6)
  137. # [02:36] <ezyang> Uh oh... html5 is using a svn:externals of testdata, which means it's old.
  138. # [02:37] <Hixie> i think most of the stuff in there is stale
  139. # [02:37] <ezyang> Heh.
  140. # [02:37] <Hixie> it's just a place for us to throw stuff related to html5
  141. # [02:37] <ezyang> Ok.
  142. # [02:37] <Hixie> if it's useful it usually moves on to live elsewhere
  143. # [02:43] * roc is now known as rocAFK
  144. # [02:46] * Quits: arun__ (n=arun@corp-241.mountainview.mozilla.com)
  145. # [02:46] <ezyang> Meh, after looking at the Python code I decided I don't care enough
  146. # [02:47] <Hixie> hah
  147. # [02:53] <jwalden> Hixie: seems to me that "Basic d2FsbGU6ZXZl" is missing some caps and a hyphen, no? :-)
  148. # [02:53] * jwalden pat-pats window.atob
  149. # [02:54] * jwalden runs the other authstrs through atob for entertainment
  150. # [02:54] <jwalden> guess that's just stylistic :-)
  151. # [02:55] * Joins: ojan (n=ojan@220.109.219.244)
  152. # [02:57] <ezyang> Hmm... should I setup some require_once's, or setup the entire HTML Purifier style autoloader shish-kebab
  153. # [03:12] * Joins: mgrdcm (n=mgrdcm@69.246.244.191)
  154. # [03:15] <ezyang> Barring any objections, I'd like to release 0.1.0.
  155. # [03:15] <ezyang> (of the php html5lib)
  156. # [03:18] <Hixie> jwalden: :-)
  157. # [03:24] <ezyang> Uploaded
  158. # [03:24] <ezyang> I can't figure out how to update the project summary
  159. # [03:24] * Quits: rocAFK (n=roc@222-152-170-20.jetstream.xtra.co.nz)
  160. # [03:29] * Quits: ojan (n=ojan@220.109.219.244) (simmons.freenode.net irc.freenode.net)
  161. # [03:29] * Quits: drry (n=drry@dd25.opt2.point.ne.jp) (simmons.freenode.net irc.freenode.net)
  162. # [03:29] * Quits: jtcranmer (n=jcranmer@ltsp1.csl.tjhsst.edu) (simmons.freenode.net irc.freenode.net)
  163. # [03:29] * Quits: eighty4 (n=eighty4@eighty4.se) (simmons.freenode.net irc.freenode.net)
  164. # [03:29] * Quits: Rik` (n=Rik@pha75-2-81-57-187-57.fbx.proxad.net) (simmons.freenode.net irc.freenode.net)
  165. # [03:29] * Quits: campd_ (n=dave@li5-166.members.linode.com) (simmons.freenode.net irc.freenode.net)
  166. # [03:30] * Quits: othermaciej (n=mjs@nat/apple/x-86001afba8a0be29) (simmons.freenode.net irc.freenode.net)
  167. # [03:30] * Quits: Lachy_ (n=Lachy@85.196.122.246) (simmons.freenode.net irc.freenode.net)
  168. # [03:30] * Quits: dave_levin (n=dave_lev@72.14.227.1) (simmons.freenode.net irc.freenode.net)
  169. # [03:30] * Quits: hamaji (n=i@w133104.ppp.asahi-net.or.jp) (simmons.freenode.net irc.freenode.net)
  170. # [03:30] * Quits: mpt (n=mpt@canonical/launchpad/mpt) (simmons.freenode.net irc.freenode.net)
  171. # [03:30] * Joins: campd_ (n=dave@li5-166.members.linode.com)
  172. # [03:30] * Joins: ojan (n=ojan@220.109.219.244)
  173. # [03:30] * Joins: drry (n=drry@dd25.opt2.point.ne.jp)
  174. # [03:30] * Joins: jtcranmer (n=jcranmer@ltsp1.csl.tjhsst.edu)
  175. # [03:30] * Joins: eighty4 (n=eighty4@eighty4.se)
  176. # [03:30] * Joins: mpt (n=mpt@canonical/launchpad/mpt)
  177. # [03:30] * Joins: Rik` (n=Rik@pha75-2-81-57-187-57.fbx.proxad.net)
  178. # [03:31] * Joins: othermaciej (n=mjs@nat/apple/x-86001afba8a0be29)
  179. # [03:31] * Joins: Lachy_ (n=Lachy@85.196.122.246)
  180. # [03:31] * Joins: dave_levin (n=dave_lev@72.14.227.1)
  181. # [03:31] * Joins: hamaji (n=i@w133104.ppp.asahi-net.or.jp)
  182. # [03:41] * Joins: dglazkov (n=dglazkov@69.181.143.54)
  183. # [03:49] * Joins: dglazkov_ (n=dglazkov@72.14.224.1)
  184. # [03:58] * Quits: jwalden (n=waldo@corp-241.mountainview.mozilla.com) ("ChatZilla 0.9.82.1-rdmsoft [XULRunner 1.8.0.9/2006120508]")
  185. # [04:03] * Quits: gsnedders (n=gsnedder@host86-164-130-180.range86-164.btcentralplus.com) (Remote closed the connection)
  186. # [04:09] * Quits: dglazkov (n=dglazkov@69.181.143.54) (Read error: 110 (Connection timed out))
  187. # [04:21] * Quits: jruderman (n=jruderma@corp-241.mountainview.mozilla.com) ("Leaving...")
  188. # [04:30] * Joins: cying (n=cying@adsl-75-41-114-136.dsl.pltn13.sbcglobal.net)
  189. # [04:37] * Quits: KevinMarks (n=KevinMar@nat/google/x-7f507d82b80385ea) ("The computer fell asleep")
  190. # [04:37] * Joins: KevinMarks (n=KevinMar@nat/google/x-886c9d68376933c0)
  191. # [04:44] * Quits: dolske (n=dolske@firefox/developer/dolske)
  192. # [04:46] * Joins: roc (n=roc@222-152-170-20.jetstream.xtra.co.nz)
  193. # [04:50] * Joins: MikeSmith (n=MikeSmit@tea12.w3.mag.keio.ac.jp)
  194. # [04:53] <MikeSmith> irc.mozilla.org down?
  195. # [04:54] * Joins: boblet (n=boblet@p1254-ipbf304osakakita.osaka.ocn.ne.jp)
  196. # [04:54] <Hixie> wfm
  197. # [04:55] * Quits: KevinMarks (n=KevinMar@nat/google/x-886c9d68376933c0) (Read error: 110 (Connection timed out))
  198. # [04:57] <boblet> Hey all, I’d like to ask about the id attribute ‘opaque strings’ comment (3.3.3.1); what is meant by ‘Particular meanings should not be derived from the value of the id attribute’? Is this intended for browser makers?
  199. # [04:57] <Hixie> yes
  200. # [04:57] <Hixie> it means that id="header" doesn't mean the element is a header
  201. # [04:58] <Hixie> it could just as easily be a footer, or a link, or a duck
  202. # [04:59] <boblet> aah, that makes sense. So as authors we’d be encouraged to use meaningful names (as the class attribute spec specifically states), but that meaning shouldn’t affect how the browser treats the element with the id huh
  203. # [05:00] <Hixie> yeah
  204. # [05:00] <Hixie> if you can come up with a better way for the spec to say that, drop me a line :-)
  205. # [05:02] <boblet> How would this sit with eg microformats? eg if the text specifically said “User agents should not derive particular meanings from the value of the id attribute” (which would remove the ambiguity for me), wouldn’t this also be problematic for eg Operator, Optimus et al?
  206. # [05:03] <boblet> Hrm, perhaps adding your example “eg id="header" should not be interpreted as <header>” is clearest?
  207. # [05:06] <Hixie> do they use id="" attribute values?
  208. # [05:06] <Hixie> i'd rather not define things by examples, though i could certainly _add_ examples if you want
  209. # [05:07] <Hixie> drop me a mail if you do
  210. # [05:07] * Joins: arun__ (n=arun@67.218.104.123)
  211. # [05:09] <boblet> Microformats plugins/bookmarklets just look for the matching value, which could be class="vcard" or id="vcard". Using class="" is most common, but it’s possible an author might use id="". I’ll email you these comments. Thanks for the clarification
  212. # [05:14] <Hixie> k
  213. # [05:15] * Quits: roc (n=roc@222-152-170-20.jetstream.xtra.co.nz)
  214. # [05:17] * Joins: dolske (n=dolske@c-76-103-40-203.hsd1.ca.comcast.net)
  215. # [05:19] * Quits: weinig (n=weinig@17.246.17.109)
  216. # [05:21] <othermaciej> I think the justification I just sent for the Design Principles may be longer than the actual Design Principles
  217. # [05:22] <othermaciej> not sure how to feel about this
  218. # [05:24] * ezyang turns on obnoxious flag
  219. # [05:24] <ezyang> Anyone want to update the html5lib status page?
  220. # [05:24] * ezyang turns off obnoxious flag
  221. # [05:34] <othermaciej> aaaand I self-replied twice
  222. # [05:34] <othermaciej> should have planned more before sending
  223. # [05:40] * Quits: arun__ (n=arun@67.218.104.123)
  224. # [05:43] * Joins: othermaciej_ (n=mjs@17.246.19.241)
  225. # [05:44] * Quits: othermaciej_ (n=mjs@17.246.19.241) (Read error: 104 (Connection reset by peer))
  226. # [05:45] * Joins: othermaciej_ (n=mjs@17.246.19.241)
  227. # [05:45] * Quits: othermaciej (n=mjs@nat/apple/x-86001afba8a0be29) (Read error: 60 (Operation timed out))
  228. # [05:47] * Quits: dimich_ (n=dimich@72.14.227.1)
  229. # [06:07] * Quits: ojan (n=ojan@220.109.219.244)
  230. # [06:09] * Joins: weinig (n=weinig@c-67-180-35-124.hsd1.ca.comcast.net)
  231. # [06:14] * Joins: jruderman (n=jruderma@c-98-248-40-206.hsd1.ca.comcast.net)
  232. # [06:15] * Quits: hdh (n=hdh@58.187.207.6) (Remote closed the connection)
  233. # [06:16] * Joins: hdh (n=hdh@hdh-1-pt.tunnel.tserv20.hkg1.ipv6.he.net)
  234. # [06:35] * Quits: bzed (n=bzed@devel.recluse.de) (simmons.freenode.net irc.freenode.net)
  235. # [06:35] * Quits: mgrdcm (n=mgrdcm@69.246.244.191) (simmons.freenode.net irc.freenode.net)
  236. # [06:35] * Quits: JohnResig (n=JohnResi@ejohn.org) (simmons.freenode.net irc.freenode.net)
  237. # [06:36] * Joins: bzed (n=bzed@devel.recluse.de)
  238. # [06:37] * Quits: boblet (n=boblet@p1254-ipbf304osakakita.osaka.ocn.ne.jp)
  239. # [06:40] * Joins: JohnResig (n=JohnResi@121.255.201.74.static.ey03.engineyard.com)
  240. # [06:41] * Quits: JohnResig (n=JohnResi@121.255.201.74.static.ey03.engineyard.com) (Killed by reynolds.freenode.net (Nick collision))
  241. # [06:41] * Joins: mgrdcm (n=mgrdcm@69.246.244.191)
  242. # [06:41] * Joins: JohnResig (n=JohnResi@ejohn.org)
  243. # [06:41] * Joins: JohnResi1 (n=JohnResi@121.255.201.74.static.ey03.engineyard.com)
  244. # [06:41] * Quits: JohnResig (n=JohnResi@ejohn.org) (Read error: 104 (Connection reset by peer))
  245. # [06:49] * Joins: boblet (n=boblet@p1254-ipbf304osakakita.osaka.ocn.ne.jp)
  246. # [06:52] * Joins: roc (n=roc@121-72-202-1.dsl.telstraclear.net)
  247. # [06:54] * Quits: doublec (n=doublec@202.0.36.64) ("Leaving")
  248. # [06:57] * Joins: dglazkov (n=dglazkov@69.181.143.54)
  249. # [07:04] * Joins: ojan (n=ojan@220.109.219.244)
  250. # [07:10] * Quits: dglazkov_ (n=dglazkov@72.14.224.1) (Read error: 104 (Connection reset by peer))
  251. # [07:18] * Parts: boblet (n=boblet@p1254-ipbf304osakakita.osaka.ocn.ne.jp)
  252. # [07:25] * Quits: dglazkov (n=dglazkov@69.181.143.54)
  253. # [07:37] <Hixie> othermaciej_: you should just put your e-mail into the design principles
  254. # [07:38] <othermaciej_> all of it?
  255. # [07:38] * othermaciej_ is now known as othermaciej
  256. # [07:38] <Hixie> more or less
  257. # [07:38] <Hixie> i mean it'll need editing
  258. # [07:38] <othermaciej> yeah
  259. # [07:38] <Hixie> but it would give the context people are asking for
  260. # [07:38] <Hixie> even if they don't agree with it
  261. # [07:38] <othermaciej> obviously the part where I say which principles are better or worse shouldn't be pasted in
  262. # [07:38] <Hixie> sure
  263. # [07:38] <Hixie> i'd just drop the ones that didn't work
  264. # [07:39] <Hixie> or fix them so they can
  265. # [07:39] <othermaciej> sections 1 and 2 seem like the best fits
  266. # [07:39] <othermaciej> though they are awfully long
  267. # [07:40] <othermaciej> anyway, I guess that seems like a good idea
  268. # [07:40] <othermaciej> or at the very least I could write an introductory section that addresses the same points
  269. # [07:42] <othermaciej> by the way, the prediction that "you can't please everyone" would draw objections was fulfilled
  270. # [07:42] <othermaciej> though I was surprised that the objection came from Sam
  271. # [07:49] * Quits: othermaciej (n=mjs@17.246.19.241)
  272. # [07:51] * Joins: wakaba_ (n=wakaba@EM114-51-31-251.pool.e-mobile.ne.jp)
  273. # [07:53] * Joins: othermaciej (n=mjs@17.246.19.241)
  274. # [07:53] * Quits: othermaciej (n=mjs@17.246.19.241) (Remote closed the connection)
  275. # [08:00] * Joins: olliej_ (n=oliver@17.246.16.186)
  276. # [08:01] * Joins: olliej__ (n=oliver@17.203.15.178)
  277. # [08:01] * Quits: olliej (n=oliver@17.203.15.178) (Read error: 54 (Connection reset by peer))
  278. # [08:05] * weinig is now known as weinig|zZz
  279. # [08:07] * Quits: olliej_ (n=oliver@17.246.16.186) (Read error: 60 (Operation timed out))
  280. # [08:08] * Quits: wakaba (n=wakaba@EM114-51-138-211.pool.e-mobile.ne.jp) (Read error: 110 (Connection timed out))
  281. # [08:09] * Joins: maikmerten (n=merten@ls5dhcp196.cs.uni-dortmund.de)
  282. # [08:13] * Joins: dave_levin_ (n=dave_lev@72.14.224.1)
  283. # [08:20] * Joins: wakaba (n=wakaba@EM114-51-158-88.pool.e-mobile.ne.jp)
  284. # [08:27] * Joins: tndH (n=Rob@james-baillie-pc083-229.student-halls.leeds.ac.uk)
  285. # [08:28] * Joins: Mrmil (n=ut_ollie@host-77-236-204-8.blue4.cz)
  286. # [08:28] * Parts: Mrmil (n=ut_ollie@host-77-236-204-8.blue4.cz)
  287. # [08:31] * Quits: dave_levin (n=dave_lev@72.14.227.1)
  288. # [08:32] * Joins: ap (n=ap@194.154.88.38)
  289. # [08:34] * Joins: jwalden (n=waldo@c-98-248-40-206.hsd1.ca.comcast.net)
  290. # [08:38] * dave_levin_ is now known as dave_levin
  291. # [08:39] * Joins: Maurice (n=ano@a80-101-46-164.adsl.xs4all.nl)
  292. # [08:40] * Quits: wakaba_ (n=wakaba@EM114-51-31-251.pool.e-mobile.ne.jp) (Read error: 110 (Connection timed out))
  293. # [08:42] * Joins: Mrmil (n=ut_ollie@host-77-236-204-8.blue4.cz)
  294. # [08:45] <heycam> if i read the spec correctly, the load event dispatched once a document is loaded does not bubble. (same for most (all?) other "fire a simple event" things.)
  295. # [08:45] <hsivonen> the HTML5 version indictor is charset=utf-8, mmkay?
  296. # [08:47] <heycam> but event handler attributes (including onload="") are listeners for bubbling
  297. # [08:47] <heycam> unless: bubbling listeners get AT_TARGET phase events, and events that don't bubble are still dispatched AT_TARGET
  298. # [08:47] <heycam> which i think is true
  299. # [08:48] <heycam> so never mind
  300. # [08:50] * Quits: olliej__ (n=oliver@17.203.15.178)
  301. # [08:55] * Joins: othermaciej (n=mjs@c-69-181-42-237.hsd1.ca.comcast.net)
  302. # [09:00] <othermaciej> seems so quiet here tonight
  303. # [09:08] <hsivonen> could a html5lib admin add my hsivonen@iki.fi account to the project in addition to or in place of the @gmail.com account?
  304. # [09:11] * Joins: pesla (n=retep@procurios.xs4all.nl)
  305. # [09:11] * Quits: expensivelesbian (n=expensiv@78-86-157-220.zone2.bethere.co.uk) ("Leaving.")
  306. # [09:12] * Joins: annevk2 (n=annevk@5ED2D22C.cable.ziggo.nl)
  307. # [09:18] * Joins: pauld (n=pauld@92.40.18.58.sub.mbb.three.co.uk)
  308. # [09:20] * Joins: pauld_ (n=pauld@92.40.31.247.sub.mbb.three.co.uk)
  309. # [09:24] <annevk42> heycam, that's true
  310. # [09:25] <annevk42> hsivonen, done
  311. # [09:25] <hsivonen> annevk42: thank you
  312. # [09:28] * Joins: pauld__ (n=pauld@94.197.228.213.threembb.co.uk)
  313. # [09:30] <hsivonen> $ hg outgoingabort: Python support for SSL and HTTPS is not installed
  314. # [09:30] <hsivonen> what macports incantation do I need?
  315. # [09:32] <hsivonen> how do I make hg tell me which python interpreter it is using?
  316. # [09:33] <Hixie> use lsof :-)
  317. # [09:35] * Joins: KevinMarks (n=KevinMar@c-67-164-14-96.hsd1.ca.comcast.net)
  318. # [09:37] * Joins: pauld___ (n=pauld@92.40.36.251.sub.mbb.three.co.uk)
  319. # [09:37] <hsivonen> is there a way to leave lsof waiting so that I can first start lsof and then start hg?
  320. # [09:41] <jgraham> hsivonen: Does less `which hg` followed by reading the line at the top not answer your question?
  321. # [09:42] <hsivonen> jgraham: yes. thanks
  322. # [09:42] <hsivonen> for the log: the incantation is sudo port install py25-socket-ssl
  323. # [09:43] <hsivonen> but now I get a 404 for hg outgoing
  324. # [09:43] <hsivonen> hg outgoing https://hsivonen@iki.fi@html5lib.googlecode.com/hg/abort: HTTP Error 404: Not Found
  325. # [09:44] * hsivonen wonders if Google's hg support has a bug with non-Gmail accounts
  326. # [09:44] <hsivonen> with the two @ signs
  327. # [09:44] * Quits: pauld (n=pauld@92.40.18.58.sub.mbb.three.co.uk) (Read error: 110 (Connection timed out))
  328. # [09:45] * Joins: zcorpan (n=zcorpan@c83-252-196-43.bredband.comhem.se)
  329. # [09:45] <zcorpan> Hixie: "CSS properties respectively" is marked up as a dfn
  330. # [09:45] <jgraham> hsivonen: s/@/%40/
  331. # [09:45] <jgraham> hsivonen: They do have a bug
  332. # [09:45] <hsivonen> jgraham: thanks
  333. # [09:46] * Quits: pauld_ (n=pauld@92.40.31.247.sub.mbb.three.co.uk) (Success)
  334. # [09:46] <jgraham> (only the first @)
  335. # [09:46] <Hixie> zcorpan: thanks
  336. # [09:47] <hsivonen> jgraham: how should I escape % in hgrc? Python interprets % as something magic
  337. # [09:47] <hsivonen> %%?
  338. # [09:47] * Quits: pauld__ (n=pauld@94.197.228.213.threembb.co.uk) (Read error: 60 (Operation timed out))
  339. # [09:47] <hsivonen> yes, %%
  340. # [09:48] <hsivonen> yay for overlapping escapes
  341. # [09:50] * Joins: olliej (n=oliver@17.246.16.186)
  342. # [09:56] * Joins: ZombieLoffe (n=e@unaffiliated/zombieloffe)
  343. # [09:57] <Hixie> holy crap, shelley managed to write an entire blog post about html5 without saying i was wrong about anything
  344. # [09:57] <othermaciej> no wai
  345. # [09:58] <Hixie> i really don't understand why people have so much trouble with the design principles
  346. # [09:58] * Quits: hdh (n=hdh@hdh-1-pt.tunnel.tserv20.hkg1.ipv6.he.net) (Read error: 54 (Connection reset by peer))
  347. # [09:58] <Hixie> are people really that desperate for black-and-white rules?
  348. # [09:58] <Hixie> language design isn't something you do by following a flowchart
  349. # [09:58] <Hixie> you have to weigh all the various goals, etc
  350. # [09:59] <othermaciej> haha, she hates the Design Principles because they are against RDFa
  351. # [09:59] <Hixie> i just don't get why every time we find the need to create new technologies, someone says "you're ignoring the don't reinvent the wheel principle", especially when we documented why we were doing so for that feature
  352. # [10:00] <Hixie> or why every time any one principle is overriden by some other concern, people assume that means we should always ignore that principle
  353. # [10:00] * Quits: pauld___ (n=pauld@92.40.36.251.sub.mbb.three.co.uk) (Read error: 110 (Connection timed out))
  354. # [10:00] <Hixie> e.g. i mention that the design principles are merely guidelines, and shelley's response is to tell hsivonen that he's wrong about caring about dom consistency
  355. # [10:00] <Hixie> but that's just stupid
  356. # [10:00] <Hixie> because you have to care about dom consistency
  357. # [10:01] <Hixie> just like you have to care about everything else
  358. # [10:01] <Hixie> why do these people find this so challenging to grasp?
  359. # [10:01] * Joins: hdh (n=hdh@2001:470:18:88:0:0:0:2)
  360. # [10:02] <othermaciej> I am not sure
  361. # [10:03] * Joins: virtuelv (n=virtuelv@pat-tdc.opera.com)
  362. # [10:04] <ojan> where is this thread going on?
  363. # [10:05] <othermaciej> I don't know how to explain it any further without getting repetitive
  364. # [10:05] <othermaciej> but yeah
  365. # [10:05] <Hixie> ojan: public-html is where most of it is, shelley's blog was what most recently triggered by confusion though
  366. # [10:05] <othermaciej> there could be valid reasons to override the DOM Consistency principle
  367. # [10:06] <Hixie> sure
  368. # [10:06] <Hixie> just look at the xml:lang disaster
  369. # [10:06] <othermaciej> for example, the need to Support Existing Content leads to some differences already
  370. # [10:06] <Hixie> we had to override it for that
  371. # [10:06] <othermaciej> right, like xml:lang vs lang
  372. # [10:06] <Hixie> xml:lang is the main reason we HAVE the principle, in fact :-P
  373. # [10:06] <Hixie> so we never have to repeat that disaster
  374. # [10:06] <zcorpan> would be nice to drop xml:lang and make lang equivalent to xml:lang for all elements
  375. # [10:07] <zcorpan> likewise with id
  376. # [10:07] <othermaciej> but just because you feel like it is not a good reason to override it
  377. # [10:07] <Hixie> holy crap! windows 7 just launched in a vm in the background and played its startup sound at full volume in stereo, sounded like a spaceship had landed in my hall or something!
  378. # [10:07] <othermaciej> and I would even say your counter-argument doesn't have to be based on any Design Principle
  379. # [10:07] <othermaciej> but you have more odds of being convincing if it is
  380. # [10:07] * Philip` tried to explain HTML5's lang vs xml:lang rules to someone implementing an RDFa parser, and they didn't seem to entirely think it was a lovely elegant idea
  381. # [10:08] <Hixie> well people have clearly failed to notice that i never refer to the design principles explicitly
  382. # [10:08] <Hixie> and that i've been applying them completely independent of whether we have the design principles doc or not
  383. # [10:08] <Philip`> (I think the spec is probably less confusing now than it was a few days ago, though)
  384. # [10:09] <Hixie> the spec doesn't mention the string "xml:lang" any more (with a couple of exceptions)
  385. # [10:09] <Hixie> which might make it clearer
  386. # [10:09] <othermaciej> I think the Design Principles are more useful for those who disagree with the direction of the spec than those who largely agree
  387. # [10:10] <zcorpan> Hixie: i guess now you can remove the part in terminology starting "When an XML name, such as an attribute or element name, is referred to in the form prefix:localName"
  388. # [10:10] * Quits: MikeSmith (n=MikeSmit@tea12.w3.mag.keio.ac.jp) ("Tomorrow to fresh woods, and pastures new.")
  389. # [10:10] <Hixie> zcorpan: really? there's none left?
  390. # [10:10] <Hixie> othermaciej: yeah, but i don't think they see it that way :-)
  391. # [10:10] <zcorpan> Hixie: i think xml:lang was all there ever was (ignoring examples in that section) but i might be wrong
  392. # [10:11] <Hixie> i'm sure there are others
  393. # [10:11] <zcorpan> xml:base maybe
  394. # [10:14] <zcorpan> "Similarly, if the newly created element has an xmlns:xlink attribute in the XMLNS namespace whose value is not the XLink Namespace, that is a parse error."
  395. # [10:14] <zcorpan> is "xmlns:xlink" the local name or qualified name?
  396. # [10:14] <Hixie> qalified
  397. # [10:15] <Hixie> qualified, even
  398. # [10:15] <Hixie> it gets complicated with xmlns: attributes
  399. # [10:15] <Hixie> e.g. xmlns="" is in the XMLNS namespace iirc
  400. # [10:15] <annevk42> yes it is
  401. # [10:15] <hsivonen> Hixie: WCAG, unlike design principles, have litigable precision for exceptions
  402. # [10:16] <hsivonen> WCAG 2.0 that is
  403. # [10:16] <Hixie> WCAG 2.0 has precision?
  404. # [10:16] <Hixie> of any kind?
  405. # [10:16] <hsivonen> except where WCAG is incomprehensible without informative supporting materials
  406. # [10:16] <Hixie> good to know
  407. # [10:16] <annevk42> you can make things somewhat confusing too
  408. # [10:16] <annevk42> data:text/xml,<test x:xmlns="x" xmlns:x="x"/>
  409. # [10:16] <Hixie> that's only confusing because the order of the attributes is backwards :-P
  410. # [10:17] <zcorpan> "PS: Interestingly, this behavior could be used to send xhtml (and get it shown on IE) without sending different headers to each browser: Content-Type: text/html Content-Type: application/xhtml+xml"
  411. # [10:17] <zcorpan> why hasn't anyone thought of that before?
  412. # [10:18] <annevk42> violates HTTP?
  413. # [10:18] <Philip`> Because it's insane?
  414. # [10:18] <Hixie> does apache even let you do that?
  415. # [10:18] <othermaciej> I was thinking if there continues to be debate on whether the principles should be absolute, I could cite some examples from other domains
  416. # [10:18] <zcorpan> the PHP content negotiation scripts also violate HTTP and are insane
  417. # [10:18] <hsivonen> zcorpan: I see a new meme for all the cool people coming up
  418. # [10:18] <Philip`> and perhaps unlikely to survive proxies
  419. # [10:18] <othermaciej> Math: Every natural number is either prime or composite - except 1.
  420. # [10:19] <zcorpan> Hixie: i guess not in a simple way
  421. # [10:19] <othermaciej> Perl: There's more than one way to do it. -- but sometimes there is only one way, does this undermine the very foundations of Perl?
  422. # [10:19] <Hixie> when is there only one way?!
  423. # [10:19] <Hixie> that i want to see
  424. # [10:19] <othermaciej> Python: none of the principles are absolute, all are extremely vague: http://www.python.org/dev/peps/pep-0020/
  425. # [10:20] <othermaciej> Hixie: I guess it would depend on what the definition of "one" is
  426. # [10:20] <Philip`> If there's one way to do it, call that way X; then you can do eval("X") and now there's two ways to do it
  427. # [10:20] <Hixie> even by a reasonable definition such that Philip`'s two things are considered the same
  428. # [10:20] <othermaciej> I think there's only one way to add two numbers, short of adding no-op layers of wrapping
  429. # [10:20] <jgraham> I think the difference between the python "design principles" and the HTML ones is rather telling
  430. # [10:20] <Hixie> adding two numbers... hmm
  431. # [10:20] <philipj> Hixie, where do keep that list of mails you have on your backlog where one can vote for important issues (but doesn't)? Google fails me.
  432. # [10:21] <Philip`> You can add two numbers with a lookup table
  433. # [10:21] <Hixie> philipj: whatwg.org/issues
  434. # [10:21] <othermaciej> jgraham: telling in what way?
  435. # [10:21] <philipj> thanks
  436. # [10:21] <Hixie> philipj: but if you have a specific request, just let me know :-)
  437. # [10:21] <Hixie> philipj: it'll be quicker for you :-)
  438. # [10:21] <othermaciej> jgraham: I wish we had enough community consensus that our design principles could be one-liners
  439. # [10:21] <philipj> just wondering if you forgot about the media resource selection algorithm feedback
  440. # [10:21] <othermaciej> but with a higher level of dissent, it's more useful to add some explanation
  441. # [10:22] <jgraham> othermaciej: e.g. the line "Although that way may not be obvious at first unless you're Dutch.
  442. # [10:22] * Joins: webben (n=benh@nat/yahoo/x-7bc2749f78c5d366)
  443. # [10:22] <Hixie> philipj: "In the search loop, step 6 can never be reached because step 5 either goes to 1 or aborts the task. Simply removing "Otherwise, abort the task." should
  444. # [10:22] <Hixie> do the trick."
  445. # [10:22] <Hixie> philipj: ?
  446. # [10:22] <Hixie> philipj: or something else?
  447. # [10:22] <hsivonen> Hixie: example of WCAG 2.0 precision: zooming has a precise percent requirement: 200%
  448. # [10:22] <othermaciej> jgraham: you mean the fact that readers are expected to have a sense of humor?
  449. # [10:23] <philipj> not only that, but the part about async/sync inconsistencies with when src attr or <source> element is selected
  450. # [10:23] <annevk42> "Although that way may not be obvious at first unless you're Dutch."
  451. # [10:23] <hsivonen> Hixie: example of WCAG 2.0 imprecision: you can't tell without supporting materials if browser-native zoom satisfies the req
  452. # [10:23] <annevk42> Python is nice
  453. # [10:23] <Hixie> philipj: i thought i fixed that
  454. # [10:23] <philipj> let me have a look
  455. # [10:23] * Joins: pauld (n=pauld@194.102.13.2)
  456. # [10:23] * Quits: olliej (n=oliver@17.246.16.186)
  457. # [10:23] <Hixie> philipj: oh you mean src vs <source>
  458. # [10:23] <Hixie> philipj: i don't know of a way to fix that
  459. # [10:23] <othermaciej> annevk2: do you find it obvious?
  460. # [10:24] <Hixie> philipj: i have an e-mail from you starting "This is an improvement in predictability"
  461. # [10:24] <philipj> Hixie, is there a problem with the solution I suggested?
  462. # [10:24] <jgraham> othermaciej: The fact the community accepts humour and the fact that one of the design principles points out that perfect design is ulikely to happen
  463. # [10:24] <hsivonen> Hixie: my favorite is "Interruptions can be postponed or suppressed by the user, except interruptions involving an emergency."
  464. # [10:24] <annevk42> That I always make the right design decisions when writing Python because I'm Dutch seems very obvious and logical to me :)
  465. # [10:24] <othermaciej> heh
  466. # [10:25] <Hixie> philipj: i guess it might work, i'll have to look closer
  467. # [10:26] <philipj> I've implemented basically by ignoring step 5 "let src equal the first value that was assigned" and some minor changes
  468. # [10:26] <Hixie> philipj: k. i expect we can make that work. i'll get to it probably before the end of the month (unless you need the spec updated before then)
  469. # [10:27] <philipj> well as I said it's all in my mail, I just wanted to check if you had it in your backlog
  470. # [10:27] <philipj> there's no big rush as far as I'm concerned
  471. # [10:27] * Quits: archtech (n=stanv@83.228.56.37)
  472. # [10:28] <Hixie> othermaciej: lol "Namespaces are one honking great idea -- let's do more of those!"
  473. # [10:28] <Hixie> philipj: yup, definitely got it
  474. # [10:29] * Quits: cying (n=cying@adsl-75-41-114-136.dsl.pltn13.sbcglobal.net)
  475. # [10:29] <othermaciej> Hixie: not applicable in our context!
  476. # [10:31] <jgraham> With that exception (and a few others), I actually think that a lot of the Python design principles are things that we should be striving for
  477. # [10:33] <annevk42> just due to sheer complexity of the Web platform we sort of fail on "If the implementation is hard to explain, it's a bad idea."
  478. # [10:33] <jgraham> annevk42: But we should aim for that in new features
  479. # [10:33] <jgraham> At least at a high level
  480. # [10:34] <jgraham> I mean details of web security and so on will always be hard to explain so the details of new features will never be obvious
  481. # [10:34] * Philip` wonders if there is a principle like "ignore principles that seem inconveniently contrary to our view of the world (e.g. ones that promote namespaces)"
  482. # [10:35] <annevk42> Philip`, I guess that principle is that not all programming principles apply to those of markup languages
  483. # [10:36] <Philip`> How does one decide which ones do apply?
  484. # [10:37] <jgraham> Philip`: Given an arbitary set of possibe principles?
  485. # [10:38] <jgraham> The ones that make sense based on experience, etc. If you get it wrong then it just means that the result will likely be bad
  486. # [10:38] <annevk42> Philip`, somewhat informed judgment?
  487. # [10:38] <othermaciej> jgraham: many of the new features fail
  488. # [10:38] <othermaciej> jgraham: for instance Workers - no way any implementation is going to be easy to explain
  489. # [10:39] <othermaciej> but hopefully the *interface* can remain easy to explain
  490. # [10:40] <annevk42> the difference is that Python is just a programming language, not so much an API to all kinds of features
  491. # [10:40] <Philip`> It's an API to an interpreter
  492. # [10:41] <annevk42> (and Python is also going to violate that principle once they get further with JIT'ing)
  493. # [10:41] <jgraham> othermaciej: Possibly that means that workers is too complex. Possibly it just means that the complexity is inevitable if you want that feature.
  494. # [10:41] <jgraham> But if we had a principle like that we would at least look to minimise internal complexity whereever possible
  495. # [10:41] <jgraham> (DOM consistency is rather similar)
  496. # [10:42] <jgraham> (but obviously more specific)
  497. # [10:42] <Hixie> i wonder if julian realises that complaining that i haven't replied to his e-mail is delaying my replying to his e-mail because i end up reading and responding to his e-mails complaining about it...
  498. # [10:44] * Joins: ROBOd (n=robod@89.122.216.38)
  499. # [10:46] <othermaciej> jgraham: I think there is inherent implementation to concurrency
  500. # [10:47] <othermaciej> but also, the message-passing model should have the least implementation complexity of various concurrency models
  501. # [10:48] <othermaciej> however I think Workers / MessagePorts may have more complexity than expected, as we are learning in the course of implementing in WebKit
  502. # [10:48] * Quits: hdh (n=hdh@2001:470:18:88:0:0:0:2) (Remote closed the connection)
  503. # [10:48] * Joins: hdh (n=hdh@58.187.207.6)
  504. # [10:48] <othermaciej> jgraham: there is Avoid Needless Complexity
  505. # [10:49] <othermaciej> jgraham: but in general, I think it's more important to avoid interface complexity than implementation complexity
  506. # [10:49] <Hixie> i should go to bed
  507. # [10:49] <othermaciej> unless the implementation complexity required is truly excessive, and beyond what is reasonable for the feature in question
  508. # [10:51] <hsivonen> I should try to invoke Avoid Needless Complexity and Solve Real Problems against table taint
  509. # [10:52] <hsivonen> having a writable datum in stack nodes means speculative parsing needs to copy the nodes instead of holding references to the nodes from different speculations
  510. # [10:53] <hsivonen> woohoo! <datagrid> content model got sane
  511. # [10:53] <zcorpan> hsivonen: hmm i can't reopen your bug, but now it has more info
  512. # [10:54] <hsivonen> zcorpan: which bug?
  513. # [10:54] <zcorpan> http://www.w3.org/Bugs/Public/show_bug.cgi?id=6978
  514. # [10:55] <zcorpan> maybe it should be a per-document flag so that when it gets set, all further </script> tags are omitted in the serialization
  515. # [10:56] <zcorpan> but you could still make it run by inserting <style></script></style>
  516. # [10:56] <zcorpan> so not worth it i guess
  517. # [10:56] <zcorpan> maybe the whole script should be omitted instead
  518. # [10:57] * Quits: maikmerten (n=merten@ls5dhcp196.cs.uni-dortmund.de) (simmons.freenode.net irc.freenode.net)
  519. # [10:57] * Quits: mgrdcm (n=mgrdcm@69.246.244.191) (simmons.freenode.net irc.freenode.net)
  520. # [10:57] <zcorpan> i.e. instead of serializing <script>contents, serialize <script></script> (or nothing)
  521. # [10:57] <zcorpan> i guess nothing is better considering <script src>
  522. # [10:58] * Joins: maikmerten (n=merten@ls5dhcp196.cs.uni-dortmund.de)
  523. # [10:58] * Joins: mgrdcm (n=mgrdcm@69.246.244.191)
  524. # [10:58] <zcorpan> maybe script elements shouldn't be inserted in the dom until the end tag is seen?
  525. # [10:58] <zcorpan> during parsing
  526. # [11:00] <hsivonen> zcorpan: Deferring insertion would be annoying
  527. # [11:00] <zcorpan> yeah
  528. # [11:02] <Hixie> what is this solving, anyway
  529. # [11:04] <zcorpan> does IE do it?
  530. # [11:04] * Joins: mat_t (n=mattomas@nat/canonical/x-8b8ab794049e23bc)
  531. # [11:07] <zcorpan> nope
  532. # [11:07] <zcorpan> that opera does it might be a side-effect of wanting to be ie-compatible
  533. # [11:08] <zcorpan> though we emit more tags than ie does at the moment
  534. # [11:09] <Hixie> ok well i'm going to bed.
  535. # [11:09] <Hixie> nn.
  536. # [11:16] <hsivonen> Hixie: nn
  537. # [11:16] <othermaciej> gnight Hixie
  538. # [11:29] * annevk42 thought Hixie was going to bed
  539. # [11:29] <annevk42> LIES!
  540. # [11:31] * othermaciej wonders if chaals will eventually conclude that he's not saving any time by repeatedly making his same argument that getting rid of the design principles would save time
  541. # [11:32] <annevk42> time will tell -- harharhar
  542. # [11:43] <othermaciej> did my explanation/justification of the document make sense btw?
  543. # [11:43] <othermaciej> I know it ended up a bit close to TL;DR territory
  544. # [11:48] <annevk42> ok, let that be the last thing I read before I start packing for the CSS meeting
  545. # [11:48] * annevk42 has a flight in 3 hours
  546. # [11:52] <othermaciej> ah, wouldn't want to miss that
  547. # [11:53] * Quits: dave_levin (n=dave_lev@72.14.224.1)
  548. # [11:53] <zcorpan> Hixie: <a href="&copy="> is equivalent to <a href="©=">
  549. # [11:54] <annevk42> othermaciej, looks good
  550. # [11:54] <annevk42> othermaciej, I agree with Hixie that some of that should probably go into the introduction
  551. # [11:54] <othermaciej> annevk42: yeah, that suggestion made sense to me
  552. # [11:54] <annevk42> othermaciej, I also I agree with removing and adding principles as suggested in the end
  553. # [11:54] <othermaciej> annevk42: I will see what happens in the email discussion for a day or two before I do that
  554. # [11:55] <othermaciej> (either of those things)
  555. # [11:55] <annevk42> cool
  556. # [12:08] * Quits: hdh (n=hdh@58.187.207.6) (Remote closed the connection)
  557. # [12:23] * Quits: ojan (n=ojan@220.109.219.244)
  558. # [12:25] * Quits: pauld (n=pauld@194.102.13.2)
  559. # [12:28] * Joins: pauld (n=pauld@194.102.13.2)
  560. # [12:31] * Quits: pauld (n=pauld@194.102.13.2) (Client Quit)
  561. # [12:32] * Quits: Lachy (n=Lachy@pat-tdc.opera.com) ("Leaving")
  562. # [12:38] * Joins: ciaran_lee (n=ciaran_l@83-70-243-34-dynamic.b-ras1.prp.dublin.eircom.net)
  563. # [12:47] * Joins: gsnedders (n=gsnedder@host86-164-130-180.range86-164.btcentralplus.com)
  564. # [12:48] * Quits: mat_t (n=mattomas@nat/canonical/x-8b8ab794049e23bc) ("This computer has gone to sleep")
  565. # [12:49] * Joins: mat_t (n=mattomas@91.189.88.12)
  566. # [12:54] * Parts: annevk42 (n=annevk@5ED2D22C.cable.ziggo.nl)
  567. # [12:56] * Quits: mat_t (n=mattomas@91.189.88.12) ("This computer has gone to sleep")
  568. # [12:57] * Joins: mat_t (n=mattomas@nat/canonical/x-6a3a5323ae4d0d81)
  569. # [13:03] * Joins: pauld (n=pauld@194.102.13.2)
  570. # [13:03] * Quits: annevk2 (n=annevk@5ED2D22C.cable.ziggo.nl)
  571. # [13:06] * Quits: karlcow (n=karl@nerval.la-grange.net) ("This computer has gone to sleep")
  572. # [13:11] * Joins: harig (n=opera@59.90.71.35)
  573. # [13:15] * Joins: ciaran_lee_ (n=ciaran_l@83-70-243-34-dynamic.b-ras1.prp.dublin.eircom.net)
  574. # [13:15] * Joins: Lachy (n=Lachy@pat-tdc.opera.com)
  575. # [13:18] <zcorpan> my browsers have less spacing for <isindex> than what the spec gives (with implying <p>)
  576. # [13:20] * Quits: ciaran_lee (n=ciaran_l@83-70-243-34-dynamic.b-ras1.prp.dublin.eircom.net) (Read error: 60 (Operation timed out))
  577. # [13:24] <zcorpan> <isindex type=checkbox>
  578. # [13:29] <zcorpan> the spec matches ie at least
  579. # [13:30] <zcorpan> except for the p and the label
  580. # [13:33] <Mrmil> mmm coffee...
  581. # [13:34] * Parts: zcorpan (n=zcorpan@c83-252-196-43.bredband.comhem.se)
  582. # [13:34] * Joins: zcorpan (n=zcorpan@c83-252-196-43.bredband.comhem.se)
  583. # [13:38] * Quits: gsnedders (n=gsnedder@host86-164-130-180.range86-164.btcentralplus.com)
  584. # [13:39] * Joins: myakura (n=myakura@p4050-ipbf3009marunouchi.tokyo.ocn.ne.jp)
  585. # [13:39] * Joins: gsnedders (n=gsnedder@host86-164-130-180.range86-164.btcentralplus.com)
  586. # [13:58] * Quits: pauld (n=pauld@194.102.13.2) (Read error: 104 (Connection reset by peer))
  587. # [13:58] * Joins: pauld (n=pauld@194.102.13.2)
  588. # [13:59] * ap is now known as ap|away
  589. # [13:59] <gsnedders> ezyang: http://stuff.gsnedders.com/phphtml5lib/
  590. # [14:01] * Quits: webben (n=benh@nat/yahoo/x-7bc2749f78c5d366) (Read error: 110 (Connection timed out))
  591. # [14:01] * Quits: pauld (n=pauld@194.102.13.2) (Read error: 104 (Connection reset by peer))
  592. # [14:01] * Joins: pauld (n=pauld@194.102.13.2)
  593. # [14:13] * Joins: webben (n=benh@nat/yahoo/x-d6c214ec3df03d2f)
  594. # [14:18] * Joins: pmuellr (n=pmuellr@nat/ibm/x-38fb5dbe8394eb50)
  595. # [14:20] * Joins: MikeSmith (n=MikeSmit@EM114-48-230-10.pool.e-mobile.ne.jp)
  596. # [14:20] * Quits: wakaba (n=wakaba@EM114-51-158-88.pool.e-mobile.ne.jp) (Read error: 104 (Connection reset by peer))
  597. # [14:24] * Joins: wakaba (n=wakaba@EM114-51-60-85.pool.e-mobile.ne.jp)
  598. # [14:25] * Joins: annevk2 (n=annevk@77.241.230.242)
  599. # [14:30] <Philip`> gsnedders: Why JPEG?
  600. # [14:32] <Philip`> Also, how did it spend 101.70% of its time inside {main}?
  601. # [14:33] * Parts: harig (n=opera@59.90.71.35)
  602. # [14:39] * Quits: annevk2 (n=annevk@77.241.230.242)
  603. # [14:39] <gsnedders> Philip`: Because it's sanely small :P
  604. # [14:39] <gsnedders> Philip`: Because it's not 100% reliable :P
  605. # [14:41] * Joins: harig (n=opera@59.90.71.35)
  606. # [14:43] * Joins: hdh (n=hdh@hdh-1-pt.tunnel.tserv20.hkg1.ipv6.he.net)
  607. # [14:48] <zcorpan> is it 101.70% reliable?
  608. # [14:48] <gsnedders> zcorpan: Totally.
  609. # [14:52] * Quits: philipj (n=philipj@88.131.66.80) (Read error: 110 (Connection timed out))
  610. # [14:52] <Dashiva> Well, ponder that statement. Is something that is 101.70% reliable a) more than 100% reliable, b) the same as 100% reliable, it makes no sense to speak of more, or c) less than 100% reliable, because it makes no sense to speak of more
  611. # [14:56] <Lachy> Dashiva, it means it performed better than expected or possible
  612. # [15:04] <Lachy> I'm a little confused about the changes regarding conformance of unescaped ampersands that are being discussed on the list. AFAICT, the spec still says that unescaped ampersands in attribute values are still ambiguous
  613. # [15:04] <Lachy> is it only the parsing section that has been changed to not emit a parse error?
  614. # [15:05] <zcorpan> Lachy: "or, if the character is in an attribute value, one or more characters in the ranges U+0030 DIGIT ZERO .. U+0039 DIGIT NINE, U+0041 LATIN CAPITAL LETTER A .. U+005A LATIN CAPITAL LETTER Z, and U+0061 LATIN SMALL LETTER A .. U+007A LATIN SMALL LETTER Z, followed by a U+003D EQUALS SIGN character (=)."
  615. # [15:05] <hsivonen> now I'm confused whether "RT" on twitter means re-tweet or reply to
  616. # [15:05] <hsivonen> I thought it was the former, but I see usage that looks like the latter
  617. # [15:05] <Lachy> hsivonen, it's supposed to mean re-tweet
  618. # [15:06] <hsivonen> ok. good
  619. # [15:06] * Quits: zcorpan (n=zcorpan@c83-252-196-43.bredband.comhem.se)
  620. # [15:06] <Lachy> some people must be misusing it
  621. # [15:08] * Joins: philipj (n=philipj@pat.se.opera.com)
  622. # [15:08] <Lachy> that part zcorpan just quoted is what confused me. It's quite difficult to comprehend
  623. # [15:10] * Philip` has non-fun trying to get Perl and Python implementations of YAML to interoperate
  624. # [15:10] <Lachy> and, after rereading it, I think it means that href="foo&bar=" not ambiguous, but href="foo&bar" is because it explicitly says it needs to be followed by an equals sign
  625. # [15:10] <Philip`> (particularly for handling Unicode characters)
  626. # [15:10] <Lachy> (though, I would'nt be surprised if I still got that wrong, since the paragraph is so badly written)
  627. # [15:16] * Joins: allanmac (n=allanmac@static-68-236-124-210.bos.east.verizon.net)
  628. # [15:20] * gsnedders blames Hixie
  629. # [15:24] <Philip`> Doesn't it just mean an ampersand is ambiguous if it doesn't match /&(\s|<|&|[0-9A-Za-z]+=)/?
  630. # [15:24] <Philip`> (which would be odd because &amp; would be defined as ambiguous, I guess)
  631. # [15:27] <jgraham> Philip`: Do they interoperate on non-Unicode characters?
  632. # [15:27] * Joins: philipj_ (n=philipj@pat.se.opera.com)
  633. # [15:28] <Philip`> jgraham: Not quite
  634. # [15:28] * gsnedders wonders how long `git blame -L '/>Tokeni/,/>Tree construct/' source` will take to run
  635. # [15:28] <Philip`> One library outputs strings like "foo \
  636. # [15:28] <Philip`> bar"
  637. # [15:28] * Quits: philipj (n=philipj@pat.se.opera.com) (Read error: 110 (Connection timed out))
  638. # [15:28] <Philip`> (using the slash to escape the newline because it's just there for pretty wrapping)
  639. # [15:28] <Philip`> and a different library parses that as a literal \ in the string
  640. # [15:29] <Philip`> I should probably use a different interchange format, like JSON
  641. # [15:29] <Philip`> but I think it works now so I'm not going to change it
  642. # [15:35] <jgraham> http://blog.digitalbazaar.com/2009/05/31/admitting-that-javascript-was-a-mistake/ makes the exciting claim that Javascript was a mistake because it is a functional programming language
  643. # [15:42] * Joins: dbloom-work (n=futurama@nat/google/x-656e8927d1e19bb3)
  644. # [15:42] * Parts: dbloom-work (n=futurama@nat/google/x-656e8927d1e19bb3)
  645. # [15:42] * Quits: virtuelv (n=virtuelv@pat-tdc.opera.com) ("Ex-Chat")
  646. # [15:42] * Quits: harig (n=opera@59.90.71.35) (Read error: 110 (Connection timed out))
  647. # [15:44] <Philip`> jgraham: and that we should use a procedural language like Python instead
  648. # [15:45] <Lachy> "Debugging in general (which would be impossible without Firebug)." -- clearly, that's not true. Venkman was a great debugger well before firebug
  649. # [15:52] <Lachy> using python in browsers instead of JavaScript would be an even bigger mistake, cause then we'd have to deal with the insane, unintuitive design of python
  650. # [16:00] * Quits: mgrdcm (n=mgrdcm@69.246.244.191)
  651. # [16:00] * Joins: hallvors (n=hallvord@cm-84.208.127.109.getinternet.no)
  652. # [16:02] <Philip`> Lachy: Why is that worse than the insane, unintuitive design of JavaScript?
  653. # [16:02] <jgraham> Lachy: There is really nothing wrong with Python
  654. # [16:02] <jgraham> It's not really designed to go in browsers though
  655. # [16:02] <Philip`> I imagine one serious problem would be either the language would fork, or the language in one environment (in-browser vs out-of-browser) would have to make huge sacrifices for the other
  656. # [16:03] <Philip`> where nobody sensible uses JS outside of browsers, so there aren't widely-diverging demands on it
  657. # [16:03] <jgraham> Philip`: Indeed. JS-as-a-language has basically taken success in the browser at the expense of no success outside the browser
  658. # [16:04] <Lachy> Philip`, the design of javascript is more intuitive than python, though I admit it does have some concepts like closures and prototype chains that can be difficult to grasp
  659. # [16:05] <jgraham> Lachy: I would toatlly love evidence backing up that statement
  660. # [16:05] <Lachy> jgraham, which part of the statement? The complexity of closures and prototype chains, or that it's more intuitive than python?
  661. # [16:06] <jgraham> Because I think basically exactly the opposite; python has a few tough features but is basically sane whereas js is basically complex all the way through
  662. # [16:06] <jgraham> Lachy: The intuitivemenss part
  663. # [16:07] <Philip`> I think Perl is sane, so I don't have problems with either JS or Python
  664. # [16:09] <jgraham> As a random example javascript will allow you to do Constructor() (without "new") to execute a constructor function and not only will you not get the Object you were expecting back you will probably mess up the global namespace
  665. # [16:10] <Lachy> calling Constructor() without "new" is just a regular function call
  666. # [16:10] <jgraham> Lachy_: That's the point
  667. # [16:10] <jgraham> function Construct() {this.a = 2}; b = Construct()
  668. # [16:10] <jgraham> Sets a global variable a to 2
  669. # [16:12] * Joins: ROBOd2 (n=robod@89.122.216.38)
  670. # [16:12] <Lachy> as an example of a completely backwards and unintuitive feature in python, to join an array of strings with some delimiter, instead of calling array.join(delim), you have to call "delim".join(array)
  671. # [16:13] <Lachy> and they use weird names like lists and dictionaries instead of array
  672. # [16:14] <jgraham> Lachy: I thought that was crazy untill I realised that doing an operation on a string and getting a string back is more consistent than doing an operation on an array and getting a string back
  673. # [16:14] * Quits: ROBOd (n=robod@89.122.216.38) (Read error: 110 (Connection timed out))
  674. # [16:15] <Lachy> no, doing an operation on the object itself (an array in this case) to obtain some output makes much more sense from an object oriented programming perspective
  675. # [16:15] <jgraham> Lachy: They are actually rather good names. "array" implies things that aren't necessarily true
  676. # [16:15] <Lachy> like what?
  677. # [16:15] <jgraham> (moreso in js than in python even)
  678. # [16:16] <Philip`> Like O(1) access time
  679. # [16:16] <jgraham> Lachy: a = new Array(); a[Math.pow(2,32)-1] = 1;
  680. # [16:17] <jgraham> Lachy: Ho much memory does that use and how fast would it be enumerated?
  681. # [16:17] <jgraham> s/Ho/How/
  682. # [16:17] <Dashiva> -2, surely
  683. # [16:17] * Quits: nessy (n=nessy@203-166-243-94.dyn.iinet.net.au) ("This computer has gone to sleep")
  684. # [16:18] <jgraham> Dashiva: Oh yeah, sorry
  685. # [16:19] <Philip`> Why -2?
  686. # [16:19] <Dashiva> Otherwise .length can overflow
  687. # [16:20] <Philip`> Ah
  688. # [16:20] <jgraham> Philip`: Array index properties have to be < 2^32 -1
  689. # [16:20] <Lachy> indeed, it does overflow. a.length returns 0 in the first case
  690. # [16:20] <jgraham> Lachy: That's a bug
  691. # [16:21] <jgraham> Or maybe I'm wrong.
  692. # [16:21] <Lachy> Both Opera and Firefox do the same thing
  693. # [16:22] <jgraham> Yeah it is common behaviour. I thought it was a bug specwise but maybe something that has been adopted as common behaviour
  694. # [16:23] <Dashiva> It's a bug specwise, yes. But what does that matter :P
  695. # [16:23] <Lachy> jgraham, anyway, in answer to your question, if you created a list of the same length in python, how much memory would it use and how fast would it be enumerated?
  696. # [16:24] <Philip`> You can't assign to random indexes, without allocating the space first
  697. # [16:24] <Philip`> (using append, extend, etc)
  698. # [16:27] <Lachy> Philip`, sure, I'm not concerned about the specific method used to create the list of that length. My question was just pointing that the the performance question also applies to python under the same circumstances
  699. # [16:28] <Dashiva> I think his point is that in Python some of the things implicit in JS are made explicit
  700. # [16:28] <Lachy> the implicit features in JS are a nice feature to have
  701. # [16:29] <Philip`> Lachy: The same circumstances don't exist in Python
  702. # [16:29] <Lachy> Philip`, surely you can create a list of that length in some way though
  703. # [16:30] <Philip`> Lachy: Only if you fill in all the intermediate values
  704. # [16:30] <Philip`> Lachy: which is different to what the JS example is doing
  705. # [16:31] <Lachy> well, than that's a point to JS then cause being able to create arrays of that length without needing to fill in all the intermediate values explicitly, at least until they need a non-undefined value, is a feature
  706. # [16:33] <Philip`> I think jgraham's point was that that feature in JS clearly can't be implemented with the data structure that's typically called an array
  707. # [16:34] <jgraham> Lachy: It is not at all obvious that something called an "Array" would actually be a hashtable, or something similar under the hood
  708. # [16:34] * Joins: dglazkov (n=dglazkov@69.181.143.54)
  709. # [16:34] <Philip`> and so it's misleading to call it "Array" in JS
  710. # [16:36] <Lachy> the underlying technical implementation is really irrelevant to whether or not it's an array
  711. # [16:37] * Joins: aroben (n=aroben@unaffiliated/aroben)
  712. # [16:38] <Lachy> the fact that it can be used as a stack, queue, hash table or array may be a reason to not call it just an array though, but that's a very minor issue
  713. # [16:38] <Philip`> The underlying technical implementation is critical to the distinction between arrays and lists and hashtables and hybrids
  714. # [16:38] * Joins: mgrdcm (n=mgrdcm@65.111.247.194)
  715. # [16:39] <Philip`> and people should understand the distinctions, so they don't write silly code that has terrible performance
  716. # [16:39] <jgraham> Lachy: Also there are plenty of thother things; var a = {}; a[1]="a"; a["1"] = "b"; //oops I overwrote my key
  717. # [16:40] <jgraham> The fact the assignment creates globals
  718. # [16:40] <jgraham> The with statement
  719. # [16:41] <Philip`> Optional semicolons
  720. # [16:41] <Lachy> yes, the with statement is a mistake, just like the goto and break statements in other languages
  721. # [16:41] <jgraham> eval
  722. # [16:41] <jgraham> (Yes I know Python has eval but it is almost never used)
  723. # [16:42] <jgraham> (and it is much worse in a web context)
  724. # [16:42] <Lachy> people who use eval in javascript are usually clueless programmers (or they're using it for JSON parsing, despite the security problems)
  725. # [16:44] <Philip`> I know someone who used eval("a."+b) because they weren't aware that a[b] was equivalent
  726. # [16:44] <jgraham> the way that enumeration works
  727. # [16:44] <jgraham> A bunch of stuff that should get better in ES5 wrt defining object properties
  728. # [16:45] <Rik|work> Philip`: I believe it's one of the most reason people use eval
  729. # [16:45] <jgraham> the fact that strings, booleans and numbers have two different representations
  730. # [16:45] <Philip`> The use of '+' for both string concatenation and addition
  731. # [16:45] <jgraham> One of which is totally useless except for spec-internal algorithms
  732. # [16:45] <gsnedders> How many parse errors should "<!DOCTYPE" produce? I, and the PHP impl., think 1 (as of the change in spec of 2009-05-26). The test case says 2.
  733. # [16:45] <gsnedders> (Likely answer: test case is unchanged.)
  734. # [16:46] <gsnedders> s/26/24/
  735. # [16:46] <jgraham> Philip`: Never had a problem with that but the implicit type shifiting is odd
  736. # [16:47] <jgraham> also == vs ===
  737. # [16:47] <jgraham> Object equality
  738. # [16:47] <jgraham> [1,2,3] != [1,2,3]
  739. # [16:50] <gsnedders> What should "<a a=a&>" output?
  740. # [16:50] <gsnedders> (From the tokenizer)
  741. # [16:52] * ap|away is now known as ap
  742. # [16:52] * weinig|zZz is now known as weinig
  743. # [16:53] * Quits: dglazkov (n=dglazkov@69.181.143.54)
  744. # [16:55] <gsnedders> "If no match can be made, then no characters are consumed, and nothing is returned. If the current state is not the character reference in attribute value state, or the U+0026 AMPERSAND character is not followed by one or more characters in the ranges U+0030 DIGIT ZERO to U+0039 DIGIT NINE, U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z, and U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z, fo
  745. # [16:55] <gsnedders> by a U+003D EQUALS SIGN character (=), then this is also a parse error."
  746. # [16:55] <gsnedders> That really doesn't read well.
  747. # [16:57] * Parts: allanmac (n=allanmac@static-68-236-124-210.bos.east.verizon.net)
  748. # [16:57] <gsnedders> So in the character reference in attribute value state then "&foo=" is a parse error, but "&foo" is not, right?
  749. # [16:57] <gsnedders> Wrong way round.
  750. # [16:58] <gsnedders> "&foo=" is not a parse error, "&foo>" is.
  751. # [16:59] * Joins: zcorpan (n=zcorpan@c83-252-196-43.bredband.comhem.se)
  752. # [17:00] <gsnedders> "<a a=a&>" is right in the test, my impl. is not.
  753. # [17:01] * Quits: Maurice (n=ano@a80-101-46-164.adsl.xs4all.nl) ("Disconnected...")
  754. # [17:02] <Lachy> http://www.molly.com/2009/06/02/why-xhtml2/
  755. # [17:03] * Quits: maikmerten (n=merten@ls5dhcp196.cs.uni-dortmund.de) (Remote closed the connection)
  756. # [17:04] <beowulf> the listed advantages are not familiar to me as an html author
  757. # [17:05] * Quits: hallvors (n=hallvord@cm-84.208.127.109.getinternet.no)
  758. # [17:05] <beowulf> actually, i want to smash things now
  759. # [17:05] <Lachy> http://twitter.com/mollydotcom/status/2004173388
  760. # [17:05] <Lachy> apparently, there's a new version of that article coming
  761. # [17:06] <Lachy> "Search engines are ‘user agents’ that don’t support frames!" - I've never once seen any evidence to support that claim
  762. # [17:07] * Joins: dglazkov_ (n=dglazkov@72.14.224.1)
  763. # [17:07] * Parts: Mrmil (n=ut_ollie@host-77-236-204-8.blue4.cz)
  764. # [17:07] <Lachy> in fact, the first result returned is a framed page: http://www.google.com/search?q=Java+docs
  765. # [17:07] <Lachy> so it's a bogus claim
  766. # [17:08] <beowulf> an advantage of xhtml2 to an html author is "CSS gives more presentational possibilities than plain HTML"
  767. # [17:08] <beowulf> i know you all think html authors are stupid, but that's insulting
  768. # [17:09] <Lachy> yeah, I read that and wondered why a general advantage of using CSS was listed as one specifically benefiting XHTML2
  769. # [17:10] <beowulf> "Visible on more devices" # gah
  770. # [17:11] <Lachy> of course, that claim is based in a theoretical future world in which support for XHTML2 has been added to devices and the number outweighs the number of devices that support HTML today
  771. # [17:12] <jgraham> The claim is based on the erronous assumption that it is not possible to parse HTML on small devices
  772. # [17:13] <jgraham> WWhich is just crazy given that there are small devices shipping with HTML parsers today and even smaller devices that render html content using e.g. mini
  773. # [17:13] <beowulf> that claim is based on never having written anything for a small device
  774. # [17:14] <beowulf> and most of those claims are based on never having worked on html more complicated than a w3c page
  775. # [17:14] <Lachy> later tonight, after Molly posts the proper version of that post, I will blog a detailed rebuttal of all his bogus points
  776. # [17:15] * Quits: heycam (n=cam@203-217-67-148.dyn.iinet.net.au) (Read error: 101 (Network is unreachable))
  777. # [17:16] * Quits: zcorpan (n=zcorpan@c83-252-196-43.bredband.comhem.se) (Read error: 110 (Connection timed out))
  778. # [17:17] <beowulf> i find that whole 'less presentation, more structure' section insulting
  779. # [17:19] <Lachy> LOL. I missed this one the first time through: "Advantages: All the ones that you can imagine, because XML is a Good Thing"
  780. # [17:20] <beowulf> fair enough, i don't mind if it's xml or text, but some of those points are written by someone who's guessing what most people do, or so it would seem to my dumb html author mind
  781. # [17:23] <Lachy> beowulf, it's written by Steven Pemberton
  782. # [17:24] <beowulf> Lachy: who's he?
  783. # [17:25] <Lachy> XHTML2 WG chair
  784. # [17:25] <Lachy> or, at least member, if he's not the chair, but I'm pretty sure he is
  785. # [17:27] <Lachy> http://www.molly.com/2009/06/02/the-real-why-xhtml-discussion/
  786. # [17:28] * Joins: allanmac (n=allanmac@static-68-236-124-210.bos.east.verizon.net)
  787. # [17:29] * Quits: tndH (n=Rob@james-baillie-pc083-229.student-halls.leeds.ac.uk) (Read error: 110 (Connection timed out))
  788. # [17:29] <Lachy> "Now, if HTML had never had a lax parser, but had always been strict, there wouldn’t be an incorrect (syntax-wise) HTML page in the planet, because everyone uses a ’suck it and see’ approach"
  789. # [17:30] * Quits: allanmac (n=allanmac@static-68-236-124-210.bos.east.verizon.net) (Read error: 104 (Connection reset by peer))
  790. # [17:30] <Lachy> I wonder how he explains the presense of non-well-formed XHTML and SVG on the web
  791. # [17:34] * dglazkov_ is now known as dglazkov
  792. # [17:35] * Quits: Lachy (n=Lachy@pat-tdc.opera.com) ("Leaving")
  793. # [17:37] <takkaria> "HTML is just not addressing the use cases of the real world any more." hmm
  794. # [17:39] <Philip`> Lachy_: That viewpoint seems to be limited to the case where people write a small number of static pages and look at them all to see that they're correct
  795. # [17:39] <Philip`> which was perhaps a valid viewpoint in 1995
  796. # [17:40] <Philip`> but now everything is dynamic and mashed up, so your site's visitor is the first person in the world to see a particular page and encounter any errors on it
  797. # [17:40] * Joins: billmason (n=billmaso@ip240.unival.com)
  798. # [17:41] * Quits: pesla (n=retep@procurios.xs4all.nl) ("( www.nnscript.com :: NoNameScript 4.21 :: www.esnation.com )")
  799. # [17:42] * Philip` reads the blog post
  800. # [17:43] <jgraham> Philip`: Despite which there are a lot of conversations around HTML which revolve around the 1995 model being a good approximation to the truth
  801. # [17:43] <Philip`> "2. Look at it in the browser, if there is a problem, fix it, and look again." - ah, that seems to be where the problem is, because most sites contain an infinite number of pages and you can't look at them all in your browser when developing the site
  802. # [17:44] <Philip`> "I want the browsers to tell me when my pages are wrong" - sounds like a job for a validator
  803. # [17:45] <jgraham> What's the URL to the number of outstanding emails that Hixie has?
  804. # [17:45] <Philip`> (possibly a validator that's built in to the browser as an extension)
  805. # [17:45] <jgraham> (the really slow canvas graph one)
  806. # [17:46] * Quits: hdh (n=hdh@hdh-1-pt.tunnel.tserv20.hkg1.ipv6.he.net) (Read error: 54 (Connection reset by peer))
  807. # [17:48] <Philip`> jgraham: http://www.whatwg.org/issues/data.html ?
  808. # [17:48] * Joins: dglazkov_ (n=dglazkov@69.181.143.54)
  809. # [17:48] <jgraham> Philip`: Yes
  810. # [17:48] <jgraham> Thanks
  811. # [17:48] * Quits: dglazkov_ (n=dglazkov@69.181.143.54) (Client Quit)
  812. # [17:49] * Joins: allanmac (n=allanmac@dsl017-091-222.bos1.dsl.speakeasy.net)
  813. # [17:54] * Quits: weinig (n=weinig@c-67-180-35-124.hsd1.ca.comcast.net)
  814. # [17:59] * Joins: archtech (n=stanv@83.228.56.37)
  815. # [18:06] <gsnedders> And we're back in 2010 for the due date
  816. # [18:07] * Quits: dglazkov (n=dglazkov@72.14.224.1) (Read error: 110 (Connection timed out))
  817. # [18:08] * Joins: tndH (n=Rob@james-baillie-pc083-229.student-halls.leeds.ac.uk)
  818. # [18:09] * Joins: dglazkov (n=dglazkov@nat/google/x-f1b7f279bf858528)
  819. # [18:15] * Joins: heycam (n=cam@124-168-52-93.dyn.iinet.net.au)
  820. # [18:17] <gsnedders> Hixie: Can you add an id to the NCR table?
  821. # [18:17] * Joins: Maurice (i=copyman@5ED548D4.cable.ziggo.nl)
  822. # [18:23] * Parts: allanmac (n=allanmac@dsl017-091-222.bos1.dsl.speakeasy.net)
  823. # [18:24] * Joins: itpastorn (n=itpastor@139.57.227.87.static.th.siw.siwnet.net)
  824. # [18:32] * Joins: dimich (n=dimich@72.14.227.1)
  825. # [18:38] <gsnedders> "<!DOCTYPE" should return one parse error now, right?
  826. # [18:39] * Joins: weinig (n=weinig@17.246.17.109)
  827. # [18:41] * gsnedders commits it seeming nobody argues otherwise :P
  828. # [18:41] <gsnedders> (And it was the specific aim of the spec change to make it only return one parse error)
  829. # [18:42] <shepazu> Lachy_: there is little or no non-well-formed SVG on the web, fwiw
  830. # [18:43] <shepazu> there is some SVG that is invalid because Adobe's viewer allowed magic namespaces
  831. # [18:44] <jgraham> shepazu: Ho much SVG is created by automatic tools?
  832. # [18:44] <jgraham> (Other than e.g. inkscape)
  833. # [18:44] <shepazu> as far as XHTML, I seriously doubt there is much non-well-formed XHTML that is served exclusively as XHTML, and not text/html
  834. # [18:45] <shepazu> jgraham: I have no way of knowing that...
  835. # [18:45] <shepazu> but there was a lot of hand-generated SVG back in the early days, the majority, perhaps
  836. # [18:45] <shepazu> before Inkscape, definitely the vast majority
  837. # [18:46] <shepazu> there was also script-generated SVG, which will of course be non-WF
  838. # [18:46] <shepazu> unless it's generated as strings, I suppose
  839. # [18:47] <shepazu> but it didn't make it to the web, because it would have been corrected when it didn't work
  840. # [18:49] <shepazu> so, Lachy_'s premise doesn't seem to be borne out by reality
  841. # [18:49] <gsnedders> How does <x x=1 x=2 X=3> give two parse errors?
  842. # [18:49] <jgraham> gsnedders: How many did you expect?
  843. # [18:49] <gsnedders> jgraham: One.
  844. # [18:50] <gsnedders> One for each duplicated attribute?
  845. # [18:50] <shepazu> no, one could argue that this prevented or slowed the uptake of SVG, but that's another matter (and I think it's far less critical than that it was not supported by browsers and people had to download the Adobe viewer)
  846. # [18:50] <jgraham> gsnedders: Don't you lowercase the attribute name in the tokenizer?
  847. # [18:50] <gsnedders> jgraham: Yes.
  848. # [18:50] <shepazu> bbl
  849. # [18:51] <jgraham> gsnedders: So you end up with 3 x attributes, giving two parse errors, no?
  850. # [18:51] * Quits: shepazu (n=schepers@adsl-144-163-109.rmo.bellsouth.net) ("Core Breach")
  851. # [18:51] <gsnedders> jgraham: I didn't know whether the spec gave one parse error when it hit the first dupe or for all
  852. # [18:51] * Joins: maikmerten (n=maikmert@Z9496.z.pppool.de)
  853. # [18:52] <jgraham> gsnedders: I'm not reading the spec of anything. But I would expect 2 in some naive way
  854. # [18:52] <gsnedders> The spec says 2
  855. # [18:52] <gsnedders> I was being naïve and assuming the other logical option :P
  856. # [18:53] * Joins: annevk2 (n=annevk@LRouen-152-83-10-211.w80-13.abo.wanadoo.fr)
  857. # [18:54] * Quits: pauld (n=pauld@194.102.13.2)
  858. # [18:55] <Philip`> shepazu: "I seriously doubt there is much non-well-formed XHTML that is served exclusively as XHTML, and not text/html" - I agree with that doubt, but that's because I doubt there is much XHTML (regardless of well-formedness) that is served exclusively as XHTML
  859. # [18:55] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  860. # [18:56] * Quits: philipj_ (n=philipj@pat.se.opera.com) (Read error: 110 (Connection timed out))
  861. # [19:03] * Quits: jruderman (n=jruderma@c-98-248-40-206.hsd1.ca.comcast.net) ("Leaving...")
  862. # [19:06] * Quits: gsnedders (n=gsnedder@host86-164-130-180.range86-164.btcentralplus.com) (Remote closed the connection)
  863. # [19:06] * Joins: gsnedders (n=gsnedder@host86-164-130-180.range86-164.btcentralplus.com)
  864. # [19:07] * Quits: webben (n=benh@nat/yahoo/x-d6c214ec3df03d2f) (Read error: 60 (Operation timed out))
  865. # [19:07] * Joins: shepazu (n=schepers@adsl-144-163-109.rmo.bellsouth.net)
  866. # [19:10] * Joins: dave_levin (n=dave_lev@72.14.227.1)
  867. # [19:11] * Joins: webben (n=benh@nat/yahoo/x-0fba8502c7e780ef)
  868. # [19:12] * Quits: mat_t (n=mattomas@nat/canonical/x-6a3a5323ae4d0d81) ("This computer has gone to sleep")
  869. # [19:17] * Joins: mat_t (n=mattomas@nat/canonical/x-e2ae709f1403f70b)
  870. # [19:32] * Quits: myakura (n=myakura@p4050-ipbf3009marunouchi.tokyo.ocn.ne.jp) ("Leaving...")
  871. # [19:35] * Quits: weinig (n=weinig@17.246.17.109)
  872. # [19:37] * Joins: weinig (n=weinig@17.246.17.109)
  873. # [19:38] * Parts: onar (n=onar@17.226.20.255)
  874. # [19:40] * Quits: mat_t (n=mattomas@nat/canonical/x-e2ae709f1403f70b) ("This computer has gone to sleep")
  875. # [19:40] * Quits: jwalden (n=waldo@c-98-248-40-206.hsd1.ca.comcast.net) ("->office")
  876. # [19:45] * Joins: mlpug (n=mlpug@a88-115-171-214.elisa-laajakaista.fi)
  877. # [19:47] * Joins: jruderman (n=jruderma@corp-241.mountainview.mozilla.com)
  878. # [19:54] <gsnedders> "<x x x" should output two parse errors, right? One for dupe attr, and one for EOF?
  879. # [20:00] * Quits: jruderman (n=jruderma@corp-241.mountainview.mozilla.com) ("Leaving...")
  880. # [20:03] * Joins: arun__ (n=arun@adsl-76-200-191-109.dsl.pltn13.sbcglobal.net)
  881. # [20:04] * Quits: dolske (n=dolske@firefox/developer/dolske)
  882. # [20:06] * Joins: jruderman (n=jruderma@corp-241.mountainview.mozilla.com)
  883. # [20:09] * Joins: jwalden (n=waldo@corp-241.mountainview.mozilla.com)
  884. # [20:11] * Joins: virtuelv (n=virtuelv@084202133045.customer.alfanett.no)
  885. # [20:15] * Joins: drostie (n=hopkins@5ED17066.cable.ziggo.nl)
  886. # [20:17] * aroben is now known as aroben|lunch
  887. # [20:21] * Quits: Amorphous (i=jan@unaffiliated/amorphous) (Read error: 110 (Connection timed out))
  888. # [20:22] * Joins: dolske (n=dolske@corp-241.mountainview.mozilla.com)
  889. # [20:23] * Joins: wakaba_ (n=wakaba@EM114-51-130-198.pool.e-mobile.ne.jp)
  890. # [20:24] * Quits: archtech (n=stanv@83.228.56.37) (No route to host)
  891. # [20:24] * Joins: Amorphous (i=jan@unaffiliated/amorphous)
  892. # [20:28] * Quits: wakaba (n=wakaba@EM114-51-60-85.pool.e-mobile.ne.jp) (Read error: 60 (Operation timed out))
  893. # [20:28] * Quits: webben (n=benh@nat/yahoo/x-0fba8502c7e780ef) (Read error: 113 (No route to host))
  894. # [20:30] * Quits: Dashiva (i=Dashiva@wikia/Dashiva)
  895. # [20:33] * Quits: MikeSmith (n=MikeSmit@EM114-48-230-10.pool.e-mobile.ne.jp) (Read error: 110 (Connection timed out))
  896. # [20:35] * Quits: KevinMarks (n=KevinMar@c-67-164-14-96.hsd1.ca.comcast.net) ("The computer fell asleep")
  897. # [20:35] * Joins: KevinMarks (n=KevinMar@c-67-164-14-96.hsd1.ca.comcast.net)
  898. # [20:38] * Joins: pauld (n=pauld@host86-144-251-8.range86-144.btcentralplus.com)
  899. # [20:39] <jgraham> gsnedders: It seems bad to point to RFC2119 and say "oh we can't have a must requirement about that because browsers will interoperate"
  900. # [20:41] <jgraham> Because RFC2119 is clearly not written to deal with the situation that HTML is in where most authors are unaware of the specs and all implementations have to be error correcting
  901. # [20:41] * Quits: dimich (n=dimich@72.14.227.1)
  902. # [20:42] * jgraham wonders what the bad side effects of saying "HTML documents must be UTF8 encoded" would be
  903. # [20:42] <jgraham> Apart from the fact that it wouldn't match the default
  904. # [20:43] <jgraham> I gues you could say "HTML documents must be UTF8 encoded and must have <meta charset=utf8>"
  905. # [20:44] <jgraham> I can't see people going fo this though
  906. # [20:44] <tantek> jgraham you would simply have to define the processing model for when an HTML processor encountered an HTML document that was not encoded in UTF8.
  907. # [20:44] <jgraham> tantek: Of course the actual processing would have to work like it does today
  908. # [20:45] * Quits: dolske (n=dolske@firefox/developer/dolske)
  909. # [20:45] <jgraham> This would purely be an author requirement
  910. # [20:45] * Quits: weinig (n=weinig@17.246.17.109)
  911. # [20:46] <jgraham> At the very least it seems sensible to remove the ASCII loophole for declaring encodings
  912. # [20:46] <tantek> by "remove" do you mean "must ignore"?
  913. # [20:47] <tantek> you can't really "remove" anything from the author's array of options, you can only make it "do nothing" or have some other minimal effect.
  914. # [20:47] <jgraham> tantek: I mean make it mandatory to declare ascii documents wither in <meta> or through headers
  915. # [20:48] <jgraham> at the moment non-ascii has to be declared to be conforming, ascii does not
  916. # [20:48] <tantek> I'm not sure what that means unless you define what happens when authors don't do it.
  917. # [20:48] <jgraham> tantek: In terms of implementation requirements it doesn't mean anything
  918. # [20:49] * Quits: jruderman (n=jruderma@corp-241.mountainview.mozilla.com) ("Leaving...")
  919. # [20:49] <jgraham> Implementations still have to look at HTTP headers, <meta> elements, use heuristics or fall back to win-1252
  920. # [20:49] <jwalden> Lachy_: that's not overflow; 2**32-1 is not an array index property, so setting it has no effect on the length property
  921. # [20:49] <jgraham> jwalden: You would have thought so
  922. # [20:49] * Joins: dolske (n=dolske@corp-241.mountainview.mozilla.com)
  923. # [20:49] * Joins: Hish (n=chatzill@mail2.n-e-s.de)
  924. # [20:50] <jgraham> If you, say, read the spec. But the real world disagrees
  925. # [20:50] <jwalden> jgraham: no, that's exactly how the browsers work
  926. # [20:51] <jwalden> arrays-as-objects with all the concomitant baggage was a flaw, but the real world does pretty well with them anyway
  927. # [20:51] <jgraham> Oh wait a second my test earlier was totally wrong
  928. # [20:52] <jgraham> jwalden: Yes you are quite right. Apolologies for doubting you :)
  929. # [20:53] <jgraham> s/lo//
  930. # [20:53] <jwalden> no worries :-)
  931. # [20:53] * Quits: dglazkov (n=dglazkov@nat/google/x-f1b7f279bf858528)
  932. # [20:53] <jwalden> I've stared long and hard at the array-index-property parts of es3
  933. # [20:53] * Quits: KevinMarks (n=KevinMar@c-67-164-14-96.hsd1.ca.comcast.net) (Read error: 113 (No route to host))
  934. # [20:54] <jwalden> frankly, arrays-as-objects is probably a bigger problem for implementations than for developers, since the convert-to-sparse determination is unspecified but necessary for performance and constraining memory use
  935. # [20:57] <jwalden> it's also a compatibility concern: SpiderMonkey has specifically tweaked its thresholds to perform better on certain JS benchmarks promulgated by the authors of engines which have different thresholds that don't fall over on said tests
  936. # [20:57] <jwalden> I do so love benchmarketing
  937. # [20:59] <jwalden> (threshold for sparsifying, to be clear, although I would be surprised if others haven't been similarly tweaked)
  938. # [20:59] <Hixie> heycam: yt? i was wondering if you'd done anything on http://mcc.id.au/2009/01/string-handling/string-handling recently or had any plans to do more
  939. # [21:00] <jgraham> jwalden: It is pretty surprising for authors if things that are instantaneous in one browser take an excessive amount of time in others
  940. # [21:01] <jwalden> this wasn't "excessive" amounts of time, though, it was time measured in dozens of milliseconds
  941. # [21:01] * Joins: franksalim (n=frank@adsl-75-61-86-233.dsl.pltn13.sbcglobal.net)
  942. # [21:01] <jwalden> efficiently storing array properties is faster than doing a generic property-hash-storage system, but it's not order-of-magnitude slower, not enough for authors to get confused about it
  943. # [21:02] <jgraham> jwalden: Yeah I agree about a few milliseconds on typical microbenchmarks not being so important
  944. # [21:05] <jwalden> this is what benchmarketing drives you to do :-\
  945. # [21:06] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  946. # [21:09] * Quits: mgrdcm (n=mgrdcm@65.111.247.194)
  947. # [21:11] * Joins: mgrdcm (n=mgrdcm@65.111.247.194)
  948. # [21:12] * Quits: pauld (n=pauld@host86-144-251-8.range86-144.btcentralplus.com)
  949. # [21:17] * gsnedders wonders if there is any nice way to fix the horridness of PHP html5lib without making it slower
  950. # [21:18] <ezyang> Reimplement it in C
  951. # [21:19] <Hixie> jwalden: just make a benchmark that needs the optimisation you think is better for real world pages
  952. # [21:19] * Joins: Dashiva (i=Dashiva@wikia/Dashiva)
  953. # [21:20] <gsnedders> ezyang: yeah, without doing that? :P
  954. # [21:20] <ezyang> I mean, to a certain extent it would be smart
  955. # [21:20] <ezyang> At the very least, tokenization is something that probably should be in C
  956. # [21:21] <gsnedders> ezyang: I think any any extent it would be smart :P
  957. # [21:21] <gsnedders> s/any/to/
  958. # [21:21] * gsnedders has the tokenizer working as an iterator now
  959. # [21:21] <gsnedders> we're talking 50% slower.
  960. # [21:21] <ezyang> Not surprising
  961. # [21:22] <ezyang> Turning it into an iterator means you get all of those function calls we oh so cleverly removed back
  962. # [21:22] <ezyang> And more
  963. # [21:22] <gsnedders> Yup
  964. # [21:23] <gsnedders> It's interesting that it is actually slower than having all the function calls within the tokenizer
  965. # [21:23] <gsnedders> I mean, there are probably around the same number as I have it now.
  966. # [21:23] <ezyang> That's because iterator generates a bunch more calls
  967. # [21:23] <ezyang> Like, it checks if you're at the end() on every round
  968. # [21:23] <gsnedders> ezyang: I know, but I mean including those
  969. # [21:23] <ezyang> Hmm, unclear.
  970. # [21:24] * gsnedders wonders if it the calls to array_shift
  971. # [21:24] <gsnedders> (as that is O(n)
  972. # [21:24] * gsnedders profiles
  973. # [21:24] <ezyang> array_shift() shouldn't be O(n)...
  974. # [21:25] <ezyang> But I suppose PHP's array implementation would make it so.
  975. # [21:25] <gsnedders> It is. It re-indexes everything.
  976. # [21:25] <gsnedders> There's an SPL queue in 5.3…
  977. # [21:25] * gsnedders sighs
  978. # [21:26] <ezyang> If you want, you can branch and work on PHP5.3 only
  979. # [21:26] <gsnedders> No point
  980. # [21:26] <gsnedders> What we could do if create a class which implements the queue like bit of the weird SPL queue structure and use arrays internally there
  981. # [21:26] <gsnedders> array_shift isn't that bad actually
  982. # [21:27] <ezyang> Don't boher with that, then
  983. # [21:27] <gsnedders> It's the same culprits as before
  984. # [21:27] <gsnedders> It's all function call overhead more or less…
  985. # [21:27] <gsnedders> Did I say how much I love PHP yet?
  986. # [21:27] <ezyang> Maybe you're interpreting the results wrong?
  987. # [21:28] * Joins: jruderman (n=jruderma@corp-241.mountainview.mozilla.com)
  988. # [21:28] <gsnedders> I reckon 15% of the cost to be the function calls foreach creates.
  989. # [21:29] * Joins: dglazkov (n=dglazkov@nat/google/x-b11cfdd69ed42953)
  990. # [21:30] * ezyang puts html5lib performance on his queue of things to do after work
  991. # [21:31] <Philip`> Please feel free to optimise the Python html5lib too
  992. # [21:31] * gsnedders was really trying to do this to get the final few test cases to pass
  993. # [21:32] <gsnedders> I guess we could do the not-so-nice way the Python impl does it
  994. # [21:32] <Philip`> What's not-so-nice about it?
  995. # [21:32] * Joins: itpastorn1 (n=itpastor@139.57.227.87.static.th.siw.siwnet.net)
  996. # [21:32] <gsnedders> Philip`: Just think about who wrote it :P
  997. # [21:32] <Philip`> Uh... annevk2?
  998. # [21:33] <ezyang> What really needs to happen is the core string manipulation stuff needs to be written out in C
  999. # [21:33] <ezyang> And then we make wrappers around it in all the appropriate languages
  1000. # [21:33] <Philip`> or jgraham?
  1001. # [21:33] <gsnedders> ezyang: That's not the problem. The most expensive thing is the tree construction.
  1002. # [21:33] <gsnedders> ezyang: http://stuff.gsnedders.com/phphtml5lib/
  1003. # [21:33] <ezyang> Oh, well, then you should factor out the tree-specific stuff, and then make the SimpleTree impl.
  1004. # [21:33] <gsnedders> Well, that isn't always true
  1005. # [21:34] <gsnedders> That's never true :P
  1006. # [21:34] <gsnedders> Oh well.
  1007. # [21:34] <gsnedders> Ignore me.
  1008. # [21:34] <gsnedders> :P
  1009. # [21:34] <gsnedders> With the spec the most expensive thing is DOMNode->appendChild :P
  1010. # [21:34] <ezyang> gsnedders: Screens don't do anything for me. The great thing about *CacheGrind is you can reframe the data and look further
  1011. # [21:34] <gsnedders> ezyang: Indeed. But some people wanted to see
  1012. # [21:35] <jgraham> gsnedders: Did you have an actual point about python html5lib or are you just casting aspersions?
  1013. # [21:35] <annevk2> gsnedders, hey, I read that!
  1014. # [21:35] <gsnedders> jgraham: Just insofar as it diverges from the spec.
  1015. # [21:35] <gsnedders> annevk2: :D
  1016. # [21:35] * gsnedders buys annevk2 a beer… next year.
  1017. # [21:35] * Quits: roc (n=roc@121-72-202-1.dsl.telstraclear.net)
  1018. # [21:35] <Philip`> gsnedders: The spec is meant to be diverged from
  1019. # [21:35] <jgraham> gsnedders: In what way?
  1020. # [21:35] * Joins: roc (n=roc@121-72-202-1.dsl.telstraclear.net)
  1021. # [21:36] <Philip`> gsnedders: (That's why it says that any algorithm which produces equivalent output to the specified one is acceptable)
  1022. # [21:36] <jgraham> Apart from known issues with failing tests?
  1023. # [21:36] <ezyang> Philip`: You have to admit, though; it's a lot easier (w.r.t. to maintainability) to do that once the spec is stable.
  1024. # [21:36] <gsnedders> Philip`: I know :P
  1025. # [21:37] * gsnedders would quite like to write an impl. that uses something like Parsec
  1026. # [21:37] <Philip`> ezyang: Indeed, but hopefully there are enough test cases and enough independent implementations that any problems caused by spec changes can be found relatively easily
  1027. # [21:37] <jgraham> Somehow the headline "Microsoft unveils new controller" sounds rather sinister
  1028. # [21:38] <roc> One Microsoft Way!
  1029. # [21:39] * Joins: weinig (n=weinig@17.246.17.109)
  1030. # [21:39] <ezyang> It takes me on average about thirty minutes to resolve a spec-code impedance. Maybe towards the end it was 15 minutes, after I got good at figuring out what was different.
  1031. # [21:42] <gsnedders> ezyang: Practice! :P
  1032. # [21:43] <ezyang> My point, though, is that even when the code is ~ the spec, it's nontrivial to resolve bugs.
  1033. # [21:43] <ezyang> And it can onl get worse
  1034. # [21:43] <gsnedders> ezyang: Solution: read all diffs with spec :P
  1035. # [21:44] <gsnedders> ezyang: I brought the tokenizer up to date with the spec, FWIW
  1036. # [21:44] <jgraham> gsnedders: That's not a very practical solution
  1037. # [21:44] <ezyang> gsnedders: Awesome
  1038. # [21:45] * Quits: mlpug (n=mlpug@a88-115-171-214.elisa-laajakaista.fi) (Remote closed the connection)
  1039. # [21:45] * Joins: annevk42 (n=annevk@LRouen-152-83-10-211.w80-13.abo.wanadoo.fr)
  1040. # [21:45] <gsnedders> ezyang: (and had to update a few test cases which means probably everything else fails now)
  1041. # [21:45] <gsnedders> ezyang: I rewrote the entire NCR handling so we don't consume so much
  1042. # [21:46] <ezyang> About 80% I thought I had to update a test-case, it was actually my fault
  1043. # [21:46] <ezyang> You should probably double check.
  1044. # [21:47] <gsnedders> ezyang: The aim of the commit in the spec was to reduce to one parse error from two. I just did that in the test :P
  1045. # [21:48] * Quits: itpastorn (n=itpastor@139.57.227.87.static.th.siw.siwnet.net) (Connection timed out)
  1046. # [21:49] <ezyang> Oh, that was the only change
  1047. # [21:49] <ezyang> Yeah, that sounds legit
  1048. # [21:50] <gsnedders> The other thing I did to test suite was add one test that I broke in uncommitted code locally
  1049. # [21:51] * Joins: KevinMarks (n=KevinMar@nat/google/x-5679c17bef3e3325)
  1050. # [21:56] * gsnedders wonders about getting hsivonen's parser working as a PHP ext
  1051. # [21:56] <ezyang> Nonono!
  1052. # [21:56] <ezyang> It has to be C.
  1053. # [21:56] <gsnedders> ezyang: Uh, surely we can get C++ to work?
  1054. # [21:56] <ezyang> C++ is not acceptable
  1055. # [21:56] <ezyang> It has a horrid time integrating back to C
  1056. # [21:57] <ezyang> And most bindings work better with C code than C++
  1057. # [21:57] <jgraham> gsnedders: Write a parser in brainfuck and then write a brainfuck to C compiler
  1058. # [21:57] <jgraham> No need to write C
  1059. # [21:59] <gsnedders> ezyang: That's more work :P
  1060. # [22:02] <jgraham> ezyang: Attributes like xlink:href in <body> should have local name "xlink:href" and be in no namespace, unless that changed recently
  1061. # [22:02] * jgraham sees no evidence for such a change
  1062. # [22:03] <ezyang> jgraham: Oh?
  1063. # [22:03] <ezyang> Where in the spec does it say that?
  1064. # [22:04] <jgraham> ezyang: Where in the spec does it say otherwise :)
  1065. # [22:04] <jgraham> The only time that you insert attributes in a namespace is when you adjust foreign attributes for a token
  1066. # [22:04] <jgraham> Which only happens for foreigncontent
  1067. # [22:04] <jgraham> afaik
  1068. # [22:05] <gsnedders> Hmm… "When an end tag token is emitted with attributes, that is a parse error." is hard to implement when once you've hit attributes you still don't know it'll actually be emitted
  1069. # [22:05] <ezyang> Ah. That's probably right.
  1070. # [22:05] <gsnedders> ezyang: Also, why are there things related to foreign content commented out in tokenizer?
  1071. # [22:05] <ezyang> You should revert those changes (or I can revert them)
  1072. # [22:05] <ezyang> gsnedders: Not sure what you're talking about
  1073. # [22:05] <gsnedders> ezyang: seee // XXX not implemented
  1074. # [22:05] <ezyang> jgraham: I know exactly why I thought that was otherwise the case
  1075. # [22:06] <jgraham> ezyang: I can revert them if you like
  1076. # [22:06] <ezyang> gsnedders: Oh, I never implemented that
  1077. # [22:07] <ezyang> Please do so.
  1078. # [22:07] * gsnedders wonders why test cases don't test that
  1079. # [22:07] <ezyang> jgraham: That would be loverly. Also, update the wiki page to mention the difference between "xlink href" and "xlink:href"
  1080. # [22:07] <ezyang> It's very subtle
  1081. # [22:08] <jgraham> ezyang: If you have the wiki page can you update it? I would need to find it...
  1082. # [22:08] * Quits: maikmerten (n=maikmert@Z9496.z.pppool.de) (Remote closed the connection)
  1083. # [22:08] * Quits: weinig (n=weinig@17.246.17.109)
  1084. # [22:09] <ezyang> http://wiki.whatwg.org/wiki/Parser_tests
  1085. # [22:09] <ezyang> I lost my account info
  1086. # [22:12] * Quits: arun__ (n=arun@adsl-76-200-191-109.dsl.pltn13.sbcglobal.net)
  1087. # [22:12] * Joins: archtech (n=stanv@83.228.56.37)
  1088. # [22:13] * aroben|lunch is now known as aroben
  1089. # [22:18] * Quits: pmuellr (n=pmuellr@nat/ibm/x-38fb5dbe8394eb50)
  1090. # [22:21] * Joins: bzed_ (n=bzed@devel.recluse.de)
  1091. # [22:28] * Joins: riven` (n=colin@53525B67.cable.casema.nl)
  1092. # [22:30] <jwalden> Hixie: it's not that I don't think the optimization is bad, it's that the dividing point between when and when not to optimize is not being determined by real-world scripts but rather by artificial use in benchmarks
  1093. # [22:30] <jwalden> heycam: fyi, http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0720.html
  1094. # [22:30] * gsnedders never ceases to be amazed by how bad RSS/Atom are created
  1095. # [22:31] <Dashiva> hehe
  1096. # [22:32] <Dashiva> JF linking to his blog reminded me about "small and narrow minds"
  1097. # [22:32] <Dashiva> We haven't really come far from back there...
  1098. # [22:33] * Quits: bzed (n=bzed@devel.recluse.de) (Read error: 110 (Connection timed out))
  1099. # [22:33] * bzed_ is now known as bzed
  1100. # [22:35] * Quits: roc (n=roc@121-72-202-1.dsl.telstraclear.net)
  1101. # [22:39] * Joins: zcorpan (n=zcorpan@c83-252-196-43.bredband.comhem.se)
  1102. # [22:46] * Quits: riven (n=colin@pdpc/supporter/professional/riven) (Connection timed out)
  1103. # [22:47] * Joins: weinig (n=weinig@17.246.17.109)
  1104. # [22:49] * Quits: ROBOd2 (n=robod@89.122.216.38) ("http://www.robodesign.ro")
  1105. # [22:50] * Quits: sicking (n=chatzill@corp-241.mountainview.mozilla.com) (Remote closed the connection)
  1106. # [22:54] * Quits: annevk2 (n=annevk@LRouen-152-83-10-211.w80-13.abo.wanadoo.fr) (Read error: 60 (Operation timed out))
  1107. # [23:03] * Joins: dglazkov_ (n=dglazkov@nat/google/x-f01d860469752622)
  1108. # [23:03] * Joins: olliej (n=oliver@17.246.17.244)
  1109. # [23:06] * Joins: annevk2 (n=annevk@htr06-1-82-227-229-89.fbx.proxad.net)
  1110. # [23:07] * Quits: ZombieLoffe (n=e@unaffiliated/zombieloffe)
  1111. # [23:12] * Quits: ap (n=ap@194.154.88.38)
  1112. # [23:18] * Quits: dglazkov (n=dglazkov@nat/google/x-b11cfdd69ed42953) (Read error: 110 (Connection timed out))
  1113. # [23:19] * Joins: olliej_ (n=oliver@17.203.15.178)
  1114. # [23:20] * Joins: arun__ (n=arun@adsl-76-200-191-109.dsl.pltn13.sbcglobal.net)
  1115. # [23:23] * Joins: roc (n=roc@202.0.36.64)
  1116. # [23:24] * Quits: Maurice (i=copyman@5ED548D4.cable.ziggo.nl) ("Disconnected...")
  1117. # [23:35] * Quits: virtuelv (n=virtuelv@084202133045.customer.alfanett.no) (Read error: 110 (Connection timed out))
  1118. # [23:36] * Quits: olliej (n=oliver@17.246.17.244) (Read error: 110 (Connection timed out))
  1119. # [23:40] * Quits: annevk2 (n=annevk@htr06-1-82-227-229-89.fbx.proxad.net)
  1120. # [23:42] * Quits: ciaran_lee_ (n=ciaran_l@83-70-243-34-dynamic.b-ras1.prp.dublin.eircom.net)
  1121. # [23:43] <zcorpan> "Wow, cool! There’s been a rip in the space/time continuum and this article has slipped through from 1998!" - http://www.molly.com/2009/06/02/the-real-why-xhtml-discussion/
  1122. # [23:47] * Quits: roc (n=roc@202.0.36.64)
  1123. # [23:48] <arun__> zcorpan, hah :)
  1124. # [23:49] <arun__> He had me at "books are dead."
  1125. # [23:49] * Joins: roc (n=roc@202.0.36.64)
  1126. # [23:55] * Joins: nessy (n=nessy@203-166-243-94.dyn.iinet.net.au)
  1127. # Session Close: Wed Jun 03 00:00:00 2009

The end :)