/irc-logs / freenode / #whatwg / 2007-05-14 / end

Options:

  1. # Session Start: Mon May 14 00:00:00 2007
  2. # Session Ident: #whatwg
  3. # [00:24] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  4. # [00:33] * Joins: zcorpan_ (n=zcorpan@esk-ba-1-nomad.net.mdh.se)
  5. # [00:44] * Joins: zcorpan__ (n=zcorpan@84-216-42-41.sprayadsl.telenor.se)
  6. # [00:49] * Quits: zcorpan (n=zcorpan@84-216-40-20.sprayadsl.telenor.se) (Read error: 110 (Connection timed out))
  7. # [00:49] * Philip`_ is now known as Philip`
  8. # [00:58] * zcorpan__ is now known as zcorpan
  9. # [00:59] * Quits: zcorpan_ (n=zcorpan@esk-ba-1-nomad.net.mdh.se) (Read error: 110 (Connection timed out))
  10. # [01:35] * Quits: bzed (n=bzed@dslb-084-059-108-031.pools.arcor-ip.net) ("Leaving")
  11. # [02:20] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  12. # [02:31] * Quits: kingryan (n=kingryan@dsl081-240-149.sfo1.dsl.speakeasy.net)
  13. # [02:53] * Parts: zcorpan (n=zcorpan@84-216-42-41.sprayadsl.telenor.se)
  14. # [02:58] * Joins: mikeday (n=mikeday@CPE-60-224-50-129.vic.bigpond.net.au)
  15. # [03:20] * Joins: tantek (n=tantek@dsl081-245-070.sfo1.dsl.speakeasy.net)
  16. # [03:29] * Philip` wonders if there could be getImageData(sx, sy, sw, sh, hires) where hires=true makes it return the full-resolution backing bitmap with width!=sw, otherwise it scales the bitmap down and returns with width==sw
  17. # [03:29] <Philip`> so people who don't know or don't care can just do getImageData(sx, sy, sw, sh) and get what looks like sensible pixels, whereas people who really want to do high-quality filters can set hires and take more care
  18. # [03:30] <Philip`> (It's compatible with existing browsers and content, too...)
  19. # [03:31] <othermaciej> Philip`: putImageData would have to have the same flag
  20. # [03:31] <othermaciej> Philip`: then the get/put invariant would hold only in hires mode
  21. # [03:32] <Philip`> Yep
  22. # [03:32] <Philip`> so people who just want to assume canvas pixels are really pixels can do so, and they'll get some visual degradation if they start doing get/putImageData, but it'll do what they expect
  23. # [03:34] <Philip`> (Most people aren't going to do anything with ImageData, so normal canvas code will look high-res and fine)
  24. # [03:56] <othermaciej> yeah
  25. # [04:09] * Joins: rob1n (n=rob1n@unaffiliated/rob1n)
  26. # [04:27] * Quits: rob1n (n=rob1n@unaffiliated/rob1n) ("Leaving")
  27. # [04:36] * Quits: h3h (n=w3rd@cpe-66-75-149-197.san.res.rr.com)
  28. # [05:00] * Joins: marcosc_ (n=chatzill@131.181.148.226)
  29. # [05:27] * Quits: tantek (n=tantek@dsl081-245-070.sfo1.dsl.speakeasy.net)
  30. # [05:30] * Quits: mikeday (n=mikeday@CPE-60-224-50-129.vic.bigpond.net.au) ("-")
  31. # [05:33] * Joins: weinig (n=weinig@c-24-7-121-96.hsd1.ca.comcast.net)
  32. # [06:06] * Joins: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  33. # [06:12] * Joins: aroben_ (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  34. # [06:12] * Quits: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net) (Read error: 104 (Connection reset by peer))
  35. # [06:16] * Quits: aroben_ (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net) (Read error: 104 (Connection reset by peer))
  36. # [06:18] * Quits: YaaL (i=yaal@hell.pl) (Read error: 110 (Connection timed out))
  37. # [06:23] * Joins: h3h (n=w3rd@cpe-66-75-149-197.san.res.rr.com)
  38. # [06:24] * Joins: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  39. # [06:25] * Quits: jdandrea_ (n=jdandrea@ool-44c0a58f.dyn.optonline.net)
  40. # [06:25] * Quits: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net) (Read error: 54 (Connection reset by peer))
  41. # [06:25] * Joins: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  42. # [06:27] * Joins: aroben_ (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  43. # [06:42] * Quits: dolphinling (n=chatzill@rbpool4-60.shoreham.net) (Read error: 110 (Connection timed out))
  44. # [06:42] * Quits: aroben_ (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net) (Read error: 54 (Connection reset by peer))
  45. # [06:43] * Quits: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net) (Read error: 110 (Connection timed out))
  46. # [06:43] * Joins: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  47. # [06:45] * Joins: dolphinling (n=chatzill@rbpool1-4.shoreham.net)
  48. # [06:50] * Quits: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  49. # [07:00] * Quits: theoros (n=theoros@ACC8D244.ipt.aol.com) ("Leaving")
  50. # [07:00] * Quits: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  51. # [07:04] * Quits: mpt (n=mpt@canonical/launchpad/mpt) ("This computer has gone to sleep")
  52. # [07:04] * Joins: theoros (n=theoros@ACC8D244.ipt.aol.com)
  53. # [07:04] * Quits: marcosc_ (n=chatzill@131.181.148.226) (Read error: 110 (Connection timed out))
  54. # [07:16] * Joins: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  55. # [07:22] * Joins: aroben_ (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  56. # [07:22] * Quits: aroben_ (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net) (Read error: 104 (Connection reset by peer))
  57. # [07:23] * Joins: aroben_ (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net)
  58. # [07:26] * Quits: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net) (Read error: 60 (Operation timed out))
  59. # [07:32] * Quits: weinig (n=weinig@c-24-7-121-96.hsd1.ca.comcast.net)
  60. # [08:08] * Joins: mpt (n=mpt@canonical/launchpad/mpt)
  61. # [08:09] * Quits: dbaron (n=dbaron@c-71-198-189-81.hsd1.ca.comcast.net) ("8403864 bytes have been tenured, next gc will be global.")
  62. # [08:10] * aroben_ is now known as aroben
  63. # [08:10] * Quits: h3h (n=w3rd@cpe-66-75-149-197.san.res.rr.com)
  64. # [08:31] * Joins: ROBOd (n=robod@86.34.246.154)
  65. # [08:36] * Quits: theoros (n=theoros@ACC8D244.ipt.aol.com) (Remote closed the connection)
  66. # [08:45] * Joins: mikeday (n=mikeday@CPE-60-224-50-129.vic.bigpond.net.au)
  67. # [08:55] * Joins: bzed (n=bzed@dslb-084-059-096-203.pools.arcor-ip.net)
  68. # [08:55] * Quits: mpt (n=mpt@canonical/launchpad/mpt) ("This computer has gone to sleep")
  69. # [09:22] <annevk> A hires flag could work. Or maybe we should keep that as an option for future extensions...
  70. # [09:24] <hsivonen> Roger Johansson's way of saying that I win makes me think that he thinks I said something so crazy that it isn't worth talking about.
  71. # [09:24] * Quits: jruderman (n=jruderma@c-67-169-183-228.hsd1.ca.comcast.net)
  72. # [09:25] <hsivonen> http://www.456bereastreet.com/archive/200705/is_html_5_a_slippery_slope/#comment26
  73. # [09:28] <annevk> Hah, only entity declarations... Guess he didn't read the specification very carefully then
  74. # [09:28] <annevk> XML parsing can be very simple. You simply have to ignore the hard parts.
  75. # [09:28] <annevk> (At that point error handling comes almost for free.)
  76. # [09:42] <mikeday> heh
  77. # [09:44] <othermaciej> html parsing is also easy if you ignore the hard parts
  78. # [09:45] <annevk> yeah
  79. # [09:45] <annevk> HTML is easy to understand if you don't go down the rabbit hole
  80. # [09:55] <mikeday> For any X, X is easy if you ignore the hard parts of X.
  81. # [09:57] <othermaciej> for some X, it's all hard parts
  82. # [10:00] <mikeday> right, but ignoring them reduces it to the empty set, which sounds pretty easy :)
  83. # [10:06] * Joins: ddfreyne (n=ddfreyne@d51A5CE12.access.telenet.be)
  84. # [10:07] <mikeday> Here is a question: in the US-ASCII encoding, is 0x7F a legal octet?
  85. # [10:08] <othermaciej> ASCII 0x7F is the control character DEL
  86. # [10:09] <mikeday> so basically any 7-bit code is fine, only high bit set is garbage
  87. # [10:09] <othermaciej> also known as ^?
  88. # [10:10] <othermaciej> 0x00 - 0x1F and 0x7F are not printable but they are defined
  89. # [10:11] <mikeday> that's fine then
  90. # [10:12] <mikeday> presumably in Latin1, 0x80 to 0x9F are garbage and need to be turned to U+FFFD?
  91. # [10:12] <mikeday> or passed through as is for compatibility with Windows-1252? :/
  92. # [10:16] <othermaciej> web pages that claim to be latin-1 have to be processed as windows-1252
  93. # [10:17] <othermaciej> in fact, you even have to treat pages that claim to be unicode w/ range 0x80-0x9f treated as the win-latin1 characters
  94. # [10:17] <annevk> yeah
  95. # [10:17] <annevk> and all character references in that range too
  96. # [10:18] <annevk> HTML5 hasn't defined that yet
  97. # [10:18] <othermaciej> so yes, the unicode spec is universally violated on the web
  98. # [10:18] <annevk> it should just be redefined...
  99. # [10:18] <annevk> that would be nice, actually
  100. # [10:18] <othermaciej> Unicode5!
  101. # [10:19] <othermaciej> unfortunately, I think that would probably break non-web uses of unicode
  102. # [10:19] <annevk> this would also only apply to text/html I suppose?
  103. # [10:19] <othermaciej> (though maybe not, depending on how other Microsoft apps handle it)
  104. # [10:19] <othermaciej> in Safari I think we apply it to XML, but perhaps there is no need to
  105. # [10:20] <othermaciej> well, I guess actually someone should test it in XHR in IE
  106. # [10:20] <othermaciej> at least you can make a web browser without violating the TCP or IP standards
  107. # [10:20] <othermaciej> but I think you have to violate just about everything else in the protocol / format stack
  108. # [10:21] * Joins: BenWard (i=BenWard@nat/yahoo/x-2b3c72e144d92d42)
  109. # [10:23] <othermaciej> actually, I don't know if the control characters are used for anything so it might not be incompatible in practice
  110. # [10:23] <annevk> interesting
  111. # [10:23] <mikeday> hmm, so even 0x80-0x9f encoded in UTF-8 need to be passed through, that's cute
  112. # [10:24] <othermaciej> mikeday: yes, or UTF-16, or UTF-32 -- it is deeply lame
  113. # [10:24] <annevk> we should just update several encoding / decoding standards :)
  114. # [10:24] <mikeday> in Prince we have a hack to handle mislabelled pages that claim to be Latin1 but are actually Windows-1252
  115. # [10:25] <mikeday> because fonts won't have glyphs for control codes, so we fallback to the Windows-1252 character instead
  116. # [10:25] <mikeday> eg. we can't find a glyph for 0x85, so we fallback to U+2026
  117. # [10:25] <mikeday> which is what 0x85 maps to in Windows-1252
  118. # [10:25] <mikeday> that way the hack fits in at the font / glyph layer rather than the UNICODE layer; dunno if that's any better though.
  119. # [10:26] <annevk> it would fail people doing scripting etc.
  120. # [10:26] <othermaciej> that depends - if you have JavaScript support, it won't be sufficient
  121. # [10:26] <annevk> or support for :contains()
  122. # [10:26] <annevk> it would also fail attribute selectors etc.
  123. # [10:26] <othermaciej> we do our hack at the character set decoding layer
  124. # [10:27] <othermaciej> (and in the tokenizer when decoding entities)
  125. # [10:27] <annevk> html5lib only has the tokenizer bit atm
  126. # [10:29] <othermaciej> I think the entity bit is done only by our html parser
  127. # [10:30] <mikeday> good points, especially :contains(), which we support
  128. # [10:30] <mikeday> none of the sites that screw up the encoding use :contains(), thankfully :)
  129. # [10:30] * annevk points out that :contains() has been dropped
  130. # [10:30] <annevk> I believe the latest proposal is foo[#text^="X"]
  131. # [10:31] <annevk> and td[#column=2]
  132. # [10:31] <annevk> it might be that I'm mistaken though
  133. # [10:31] <mikeday> nice to drop it after we've had it implemented for years
  134. # [10:31] <mikeday> td[#column=2] { display: none }
  135. # [10:31] <annevk> the problem is that nobody else did
  136. # [10:32] * mikeday grins
  137. # [10:32] <annevk> and I suppose it's significantly easier to support in a UA that doesn't do scripting
  138. # [10:32] <mikeday> right
  139. # [10:32] <annevk> (#column would be on the semantic level btw, not based on display:table-* crap)
  140. # [10:33] <mikeday> ?
  141. # [10:33] <mikeday> td { display: table-cell } is how we determine what a table cell *is*
  142. # [10:34] <annevk> in this case you would need to have some knowledge about the HTML namespace aiui
  143. # [10:34] <othermaciej> is #column meant to be the more CSS-ish way to do <col> styling?
  144. # [10:34] <mikeday> oh, great.
  145. # [10:34] <annevk> othermaciej, yeah, think so
  146. # [10:35] <annevk> but so far I haven't seen much more than just that
  147. # [10:35] <othermaciej> but column position is determined by HTML markup only?
  148. # [10:35] <annevk> it was planned for Selectors 2 or something
  149. # [10:35] <othermaciej> I guess that makes sense, to make it work with CSS tables, you would need computed style to determine matching
  150. # [10:35] <annevk> othermaciej, iirc, yes
  151. # [10:35] <annevk> or any other table markup language you support for that matter
  152. # [10:35] <othermaciej> it is funny how often the issue that selectors can't depend on computed style comes up
  153. # [10:36] <annevk> :hover
  154. # [10:36] <annevk> and :bound-element come to mind
  155. # [10:38] * Joins: MikeSmith (n=MikeSmit@139.100.140.34)
  156. # [10:39] <othermaciej> how does it relate to :hover?
  157. # [10:41] * Joins: YaaL (i=yaal@hell.pl)
  158. # [10:42] <mikeday> :hover { display: none } is rather confusing
  159. # [10:43] <annevk> for instance
  160. # [10:43] * othermaciej is now known as om_sleep
  161. # [10:45] * Quits: aroben (n=adamrobe@c-67-160-250-192.hsd1.ca.comcast.net) (Read error: 110 (Connection timed out))
  162. # [10:45] <mikeday> hmm, seems like the most annoying thing about parsing is buffer management
  163. # [10:46] <annevk> ah, that sounds like something we didn't have to worry about :)
  164. # [10:46] <annevk> will your parser have an open source license btw?
  165. # [10:46] * MikeSmith waves to mikeday
  166. # [10:46] <mikeday> hi MikeSmith
  167. # [10:46] <MikeSmith> hei
  168. # [10:47] <mikeday> annevk, yes, that way I can steal code from you guys, and the rest of the world :)
  169. # [10:47] * mikeday examines inputstream.py
  170. # [10:48] <annevk> well, in theory you can rip html5lib apart and exploit it in some given that the license is MIT
  171. # [10:48] <annevk> but, cool!
  172. # [10:48] <annevk> s/given/way, given/
  173. # [10:48] * Joins: mpt (n=mpt@canonical/launchpad/mpt)
  174. # [10:48] <mikeday> it would be nice if there were common open source libraries for HTML parsing, though
  175. # [10:49] <mikeday> it's something that many applications could benefit from
  176. # [10:49] <annevk> yes, so go for it! :)
  177. # [10:49] * Quits: mpt (n=mpt@canonical/launchpad/mpt) (Remote closed the connection)
  178. # [10:49] <mikeday> screen scrapers, search engines, unconventional browsers
  179. # [10:49] <mikeday> AI projects
  180. # [10:49] * Joins: mpt (n=mpt@canonical/launchpad/mpt)
  181. # [10:49] <mikeday> PDF formatters *cough*
  182. # [10:49] <annevk> having an open source HTML parser is vital for the web
  183. # [10:50] <mikeday> pity no one thought of that back in 1996 hey :)
  184. # [10:50] <annevk> having one separate from browsers is very nice
  185. # [10:54] <gsnedders> mikeday: Netscape did in '98 :P
  186. # [10:55] <mikeday> ?
  187. # [10:55] <mikeday> you mean Mozilla? :)
  188. # [10:55] <gsnedders> mikeday: Netscape Communicator.
  189. # [10:55] <mikeday> did the HTML parser make it through the big rewrite?
  190. # [10:56] <gsnedders> mikeday: I don't think so
  191. # [10:56] <gsnedders> mikeday: the reason for the rewrite was the lack of quality of the source base, in part
  192. # [10:56] <mikeday> heh, gotta love that
  193. # [10:56] <mikeday> release something open source, to prompt people to develop a new thing from scratch
  194. # [10:56] <gsnedders> mikeday: arguably it was Moz though, as Mozilla was the codename for Netscape Navigator all the time :P
  195. # [10:57] <gsnedders> mikeday: the decision to rewrite was made after the open sourcing it. the plan when it was open soruced was to release a Netscape 5 based on that codebase
  196. # [10:57] <mikeday> yeah
  197. # [10:57] <mikeday> fair bit of work went into it before the decision to rewrite it, right?
  198. # [10:58] <gsnedders> mikeday: http://wp.netscape.com/newsref/pr/newsrelease558.html
  199. # [10:59] <mikeday> gawd, that's sad reading today
  200. # [10:59] <mikeday> "seed the market for Netcenter" indeed
  201. # [10:59] <mikeday> "unprecedented levels of innovation in the browser market"
  202. # [10:59] <mikeday> yep, the innovation was pretty unprecedented after 1998
  203. # [11:00] <gsnedders> mikeday: looking it up, it seems as if they spent a year just getting out all the parts that they didn't have IP of
  204. # [11:01] <gsnedders> mikeday: shortly after they did that, it was scrapped
  205. # [11:01] <mikeday> whole thing reeks of desperation, but I guess it all worked out alright in the end
  206. # [11:01] <mikeday> and by 2008, the web will be slightly improved over the web of 1998 :)
  207. # [11:01] <mikeday> more Flash and less Java, anyway :)
  208. # [11:01] <gsnedders> it's questionable if Gecko isn't overly bloated like Netscape before it
  209. # [11:02] <gsnedders> as far as OSS goes, WebKit and KHTML have _far_ smaller codebases, yet their standards compliance isn't lacking
  210. # [11:03] <mikeday> right
  211. # [11:03] <gsnedders> but Mozilla 2 is meant to work on cutting that down
  212. # [11:03] <mikeday> and the cycle continues
  213. # [11:04] <gsnedders> once there starts to be browsers based off WebKit for other OSes, Gecko may start simply being forced to being smaller and quicker to keep marketshare
  214. # [11:04] <mikeday> anyone in the mood for a "why are people still developing applications in C++" rant? :)
  215. # [11:04] <gsnedders> ergh. no.
  216. # [11:04] <gsnedders> :P
  217. # [11:04] <mikeday> good :)
  218. # [11:06] <mikeday> what is the relationship between Mozilla 2 and Firefox, exactly?
  219. # [11:07] <gsnedders> mikeday: "Mozilla" nowadays is mostly all the frameworks
  220. # [11:07] <mikeday> so Firefox 2 is using Mozilla 1.x?
  221. # [11:08] <gsnedders> yes
  222. # [11:08] <gsnedders> Firefox < 4 is using Mozilla 1.x
  223. # [11:09] <gsnedders> but Fx4 isn't expected till '09
  224. # [11:09] <mikeday> groovy
  225. # [11:10] <gsnedders> and the question is whether they can keep up while needing to change so much
  226. # [11:10] <mikeday> is Firefox migrating to be a JavaScript/XUL based application?
  227. # [11:11] <gsnedders> huh? surely it already is?
  228. # [11:11] <mikeday> I thought it still had some C++ components?
  229. # [11:11] <gsnedders> well, sure, but the UI is all XUL
  230. # [11:12] <mikeday> right
  231. # [11:12] <gsnedders> but that's what an XML User Interface Language should be used for :P
  232. # [11:12] <mikeday> I just thought the idea was to have more JavaScript, less C++
  233. # [11:13] <gsnedders> I'm not sure how much there is for Fx4 yet
  234. # [11:13] <mikeday> and less XPCOM
  235. # [11:13] * mikeday shrugs
  236. # [11:13] <gsnedders> my understanding was more standard C++ and less XPCOM
  237. # [11:13] <mikeday> ah, like exceptions and RTTI?
  238. # [11:14] <gsnedders> no idea
  239. # [11:14] <mikeday> oh well :)
  240. # [11:14] * gsnedders has zero knowledge of C++
  241. # [11:14] <Philip`> Is it just me, or are they totally crazy for planning to do automated refactoring of C++ with highly experimental tools?
  242. # [11:14] <mikeday> live fast, die young
  243. # [11:14] <Philip`> It might work, but I still think it's totally crazy
  244. # [11:14] <gsnedders> Philip`: probably yes. but I guess that's why they need so many branches in VCS :P
  245. # [11:15] <mikeday> might as well go all the way and write a C++ -> JavaScript converter
  246. # [11:15] <Philip`> I'm fairly sure they've been planning that too
  247. # [11:15] <gsnedders> here's JIT compiling for JS2… but I can't remember seeing anything about actually moving to JS
  248. # [11:16] <Philip`> (at least for things that don't need the performance and don't need access to non-JS-interfaced objects)
  249. # [11:17] <Philip`> http://wiki.mozilla.org/Mozilla_2 - "Semi-automated refactoring work: ... identification of C++ ripe for conversion to JS2" - hmm, maybe not automatically doing the actual conversion
  250. # [11:18] <Philip`> Oh, but: http://wiki.mozilla.org/Static_Analysis - "Identify C++ to convert to JS2... ... and translate it automatically. C++ candidate code uses only scriptable interfaces, strings, primitives."
  251. # [11:19] <mikeday> hmm, so it also depends on JavaScript 2, which is relatively new...
  252. # [11:19] <mikeday> all sounds rather risky :)
  253. # [11:19] * Philip` wonders if it's sensible to be worried that JIT compiling won't exactly improve Mozilla's memory usage situation
  254. # [11:20] <mikeday> anyone remember that Java version of Netscape?
  255. # [11:20] <gsnedders> but the memory usage should go down in other parts by not having so much code, often reimplemented where OS libraries can be used
  256. # [11:25] <Philip`> http://wiki.mozilla.org/Grendel ?
  257. # [11:27] <mikeday> yeah, that's the one
  258. # [11:28] <mikeday> I guess some things do change
  259. # [11:28] <mikeday> no one in 1998 would have believed that the browser would be *implemented* in JavaScript
  260. # [11:28] <mikeday> and that Java would be used to implement *server* applications
  261. # [11:28] <mikeday> we're through the looking glass now :/
  262. # [11:29] <Philip`> Java doesn't seem to have the best track record of making desktop applications that aren't frustratingly slow and ugly
  263. # [11:30] <mikeday> indeed.
  264. # [11:31] <Philip`> (I think it's a really boring language but it seems to work well enough for other types of application)
  265. # [11:32] <mikeday> funny how Java is boring now
  266. # [11:32] <mikeday> when it was introduced it was hot! exciting! applets! coffee!
  267. # [11:32] <mikeday> first programming language with a major marketing campaign
  268. # [11:33] <mikeday> 'scuse me
  269. # [11:33] * mikeday is now known as mikeday|away
  270. # [11:35] <Philip`> C++ templates are 'interesting' and let you write compile-time Turing machines and parser generators and stuff; Java's generics look similar but merely add type restrictions and add zero extra power to the language, which is boring :-(
  271. # [11:36] <Philip`> I must admit I did make a web page with animated wobbling coloured text in a Java applet about ten years ago and thought it was great, though
  272. # [11:46] <mpt> Anyone remember Corel Office for Java?
  273. # [11:46] <mpt> That was awesome
  274. # [11:46] <mpt> Launch it, go make lunch, come back, and ooh, the splash screen's up already
  275. # [11:47] <Philip`> I think I managed to avoid ever hearing about it
  276. # [11:47] <Philip`> which was probably fortunate :-)
  277. # [11:51] <Philip`> http://www.somis.dundee.ac.uk/pub/corelindex.htm - I wonder if that version works
  278. # [11:51] <Philip`> (Don't have a Java-enabled browser to test with, though...)
  279. # [11:53] * Philip` installs one
  280. # [11:54] <Philip`> "Loading Java Applet Failed" - aha, that must be the "Write once, run anywhere" feature
  281. # [11:58] * Joins: maikmerten (n=maikmert@Lba47.l.pppool.de)
  282. # [11:59] <Philip`> http://www.acm.org/pubs/citations/journals/cacm/1999-42-10/p72-cusumano/ - oh, I didn't know Netscape even made their own Java VM
  283. # [12:20] * nickshanks_ is now known as nickshanks
  284. # [12:21] * mikeday|away is now known as mikeday
  285. # [12:24] * Joins: webben (i=benh@nat/yahoo/x-0e4e858810869da9)
  286. # [12:25] <mikeday> what does charStack[-1] mean in Python? last item in charStack?
  287. # [12:25] <Dashiva> yes
  288. # [12:26] <mikeday> thanks :)
  289. # [12:27] <Philip`> unless charStack is a dict, in which case it's the entry with key -1
  290. # [12:27] <Philip`> but a dict called charStack would not seem like a sensible idea
  291. # [12:28] <mikeday> it's a good test of a language in a way, how much of it can you understand if you don't know it
  292. # [12:29] <Philip`> By the way, I'd be quite interested in a fast (e.g. C(++)) version of html5lib since I've been complaining about how it takes ages to parse files in Python :-)
  293. # [12:30] <mikeday> does "be quite interested in" translate to "willing to help code a"? :)
  294. # [12:30] * Joins: hendry (n=hendry@82.153.198.82)
  295. # [12:31] <mikeday> just out of interest, how long does it take to parse files with html5lib?
  296. # [12:31] <Philip`> I have approximately no time for the next three weeks, but I should be freer after then, so then I'd probably be willing and able :-)
  297. # [12:32] * Joins: zcorpan (n=zcorpan@esk-ba-1-nomad.net.mdh.se)
  298. # [12:32] <mikeday> sounds good, as the task should take at least 3+n weeks
  299. # [12:33] <annevk> once you got something running it would be nice if you could host it online like on code.google.com or something
  300. # [12:33] <annevk> if I can find some time I'd be interested in learning some C and looking into it :)
  301. # [12:34] <mikeday> will do
  302. # [12:34] <mikeday> annevk, you read the whole file into a string, use regexp to do line conversion
  303. # [12:34] <mikeday> that's just cheating :)
  304. # [12:35] <mikeday> also, I think I found a typo: # Normalize new ipythonlines and null characters
  305. # [12:35] <mikeday> s/new ipythonlines/newlines/ ?
  306. # [12:35] <annevk> mikeday, htmlinputstream.py is not my job
  307. # [12:36] <Philip`> mikeday: For me parsing the HTML5 spec with html5lib, it takes 16 seconds normally, and 11 seconds with Pysco
  308. # [12:36] <annevk> jgraham, care to look at that?
  309. # [12:36] <Philip`> s/Pysco/Psyco/
  310. # [12:36] <annevk> I think in C it should take less than a second
  311. # [12:37] <mikeday> libxml2 HTML parser takes 0.3s
  312. # [12:37] <Philip`> Bonus points if it works as a chtml5lib module that you can plug in to Python to replace html5lib with zero effort :-)
  313. # [12:38] <annevk> mikeday, there you go :)
  314. # [12:38] <mikeday> the html5lib code is rather elegant
  315. # [12:38] <mikeday> it would be nice if it could be compiled efficiently rather than hand optimising it
  316. # [12:40] <mikeday> hmm, the inputstream has a queue of characters that have been read and then putback
  317. # [12:40] <mikeday> however, the queue will never have more than 1 character on it
  318. # [12:41] <annevk> sometimes it will
  319. # [12:41] <annevk> the way we use it anyway
  320. # [12:41] <mikeday> if charsUntil is called multiple times...
  321. # [12:42] <annevk> some code appends to the queue
  322. # [12:42] <annevk> if we're talking about the same thing
  323. # [12:42] <mikeday> oh, outside of inputstream
  324. # [12:42] <mikeday> and here's me thinking it was a private variable :)
  325. # [12:43] <annevk> searching for self.stream.queue in tokenizer.py should give you an idea
  326. # [12:43] <mikeday> yeah
  327. # [12:44] <mikeday> I was expecting some kind of putback method
  328. # [12:44] <zcorpan> annevk: i found out that you fail http://simon.html5.org/test/css/magic-body/overflow/004.htm too (updated the table)
  329. # [12:45] <mikeday> that's a clever test
  330. # [12:49] <mikeday> hmm, parsing is easier when you load the entire document into memory first
  331. # [12:49] <mikeday> but not every application is going to like that.
  332. # [12:50] <Philip`> Are you going to attempt to handle <script> and document.write, so the application can modify the input stream while it's being parsed?
  333. # [12:50] <mikeday> eventually.
  334. # [12:50] <mikeday> obviously full support would require a JavaScript interpreter
  335. # [12:51] <mikeday> but you could always start with a hack that just handles trivial document.write calls, for testing
  336. # [12:51] <zcorpan> spidermonkey
  337. # [12:51] <mikeday> not every app will care about JavaScript
  338. # [12:51] * mikeday nods
  339. # [12:51] <mikeday> just make it an optional dependency
  340. # [12:51] * Quits: webben (i=benh@nat/yahoo/x-0e4e858810869da9) (Read error: 110 (Connection timed out))
  341. # [12:51] <Philip`> The script interpreter could just be offloaded into the application that's using the HTML parser, with some way it can be notified of document modifications and then modify the input stream back again, rather than building any scripting into the parser library itself
  342. # [12:52] <mikeday> can <script> do DOM manipulation when the entire document is not yet loaded?
  343. # [12:53] <mikeday> (please say no)
  344. # [12:53] <zcorpan> yes
  345. # [12:53] <zcorpan> (sorry)
  346. # [12:53] <Lachy> if it couldn't, that would affect the ability to do incremental rendering
  347. # [12:53] <mikeday> oh dear :)
  348. # [12:53] <annevk> do you mean loaded or parsed?
  349. # [12:54] <mikeday> I mean parsed
  350. # [12:54] <zcorpan> still a yes
  351. # [12:54] <mikeday> ie. the document text has not yet finished loading
  352. # [12:54] <Philip`> You could just make it a parser for script-is-disabled UAs, since real web browsers are probably going to be writing their own new parsers anyway and not many other people need scripting inside HTML :-)
  353. # [12:54] <annevk> the moment </script> is emitted script is executed and affects the input stream
  354. # [12:54] <mikeday> what happens if it starts mucking about with the root element? is that well defined?
  355. # [12:54] <Lachy> unless there's a defer attribute
  356. # [12:55] <annevk> mikeday, I think everything should work ok...
  357. # [12:55] <mikeday> what if it writes out a <script> element, like a self-reproducing element?
  358. # [12:55] <annevk> although I'm not entirely sure what would happen if it just removed the entire tree...
  359. # [12:56] * zcorpan tested this before but can't remember what happens
  360. # [12:56] <mikeday> suicide scrips
  361. # [12:56] <mikeday> ts
  362. # [12:57] <zcorpan> iirc the rest of the element that was removed will not be inserted into the document, but i'll test it again
  363. # [12:57] <mikeday> so you could have a long page, then a script at the bottom that deletes all preceding content, then a second totally different page
  364. # [12:58] <Philip`> data:text/html,<script>function f(){document.write('<script>' + f + ' f()<'+'/script>Ha ')};f()</script>
  365. # [12:58] * Joins: webben (i=benh@nat/yahoo/x-b6e88d37d25727cb)
  366. # [12:58] <Philip`> In Firefox it's seemingly limited to 20 invocations
  367. # [12:59] <Philip`> In Opera it kind of loops forever
  368. # [12:59] <mikeday> lovely :)
  369. # [13:00] <Philip`> In IE6 it's limited to 4
  370. # [13:00] <Philip`> (or 5, depending on whether you count the initial one)
  371. # [13:00] * Philip` wonders if that counts as a DOS bug in Opera
  372. # [13:01] <annevk> it's not like we freeze
  373. # [13:01] <annevk> I'll file a bug anyway to be on the safe side
  374. # [13:02] <annevk> btw, it seems that Firefox on my machine does way more invocations...
  375. # [13:02] <Philip`> Ah, that's true
  376. # [13:02] <Philip`> though it still eats ~5MB of memory a second
  377. # [13:02] <zcorpan> firefox doesn't add the rest of the element. opera does (and it will end up at the parent node relative to if the script didn't run). ie7 shows aborts and shows an error page...
  378. # [13:02] <mikeday> eventually will trigger the OOM killer and potentially kill X-Windows
  379. # [13:03] <mikeday> anyway, it's a beautiful document, makes the billion laughs attack look tame by comparison
  380. # [13:04] <Philip`> I'm not sure if I'm looking at the wrong numbers but it doesn't seem like Opera is freeing the half a gigabyte it used up while I had that page open...
  381. # [13:04] <annevk> seems to be fixed in more recent versions of Opera
  382. # [13:04] <annevk> they show a single "Ha"
  383. # [13:04] <Philip`> Ah, Firefox 2 goes up to 100
  384. # [13:05] <Philip`> Actually, it goes down from 100
  385. # [13:05] <Philip`> (data:text/html,<script>var i=1;function f(){document.write('<script>' + f + ' f()<'+'/script> '+(i++))};f()</script>)
  386. # [13:06] <Philip`> (FF3 goes down from 21, IE6 goes down from 6)
  387. # [13:07] <Lachy> you don't need to write out ' + f + ' each time, just <script>f()</script> is sufficient
  388. # [13:07] <mikeday> what's the trigger for cutting off execution, would you need to track how many script blocks were created by the original script block?
  389. # [13:07] <mikeday> a bit like tracking recursion depth, but for script elements...
  390. # [13:07] <Philip`> Oh, that's true... This way is more quine-like, though :-)
  391. # [13:07] <zcorpan> http://simon.html5.org/test/html/parsing/dom-mutations/
  392. # [13:08] <mikeday> if you just blindly added the document.write text to the input stream,
  393. # [13:08] <mikeday> I don't see how you'd keep track of who created it
  394. # [13:08] <Lachy> this version loops 125 times in FF data:text/html,<script>var i=1;function f(){document.write(i++ + '<br><script>f()<\/script>')};f();</script>
  395. # [13:09] <Lachy> using the live DOM viewer, IE stops after 6
  396. # [13:09] <zcorpan> 21 times for me in firefox3
  397. # [13:10] <Lachy> I'm testing FF2
  398. # [13:12] <Philip`> (Opera doesn't like the \ in that address)
  399. # [13:12] <Lachy> well, try %-encoding it then
  400. # [13:13] * Philip` just used '+' instead
  401. # [13:14] * Quits: mpt (n=mpt@canonical/launchpad/mpt) ("This computer has gone to sleep")
  402. # [13:17] * Joins: zcorpan_ (n=zcorpan@esk-ba-1-nomad.net.mdh.se)
  403. # [13:18] <mikeday> hmm, be nice if C had coroutines, or python-style generators
  404. # [13:19] <mikeday> then if you run out of input halfway through parsing, you could just suspend and wait for more
  405. # [13:20] * Quits: ROBOd (n=robod@86.34.246.154) ("http://www.robodesign.ro")
  406. # [13:21] * Joins: mpt (n=mpt@canonical/launchpad/mpt)
  407. # [13:21] <Philip`> http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html - not exactly elegant, unfortunately, but that's what you get for using C
  408. # [13:22] <mikeday> hah, already reading that page
  409. # [13:22] <mikeday> cuter than setjmp/longjmp,
  410. # [13:22] <mikeday> but you can't use local variables, and only works for one single function
  411. # [13:23] <Philip`> Bah, who needs locals?
  412. # [13:23] <mikeday> gcc labels as values would also work nicely
  413. # [13:23] * Joins: zcorpan__ (n=zcorpan@84-216-42-41.sprayadsl.telenor.se)
  414. # [13:23] <mikeday> and allow the use of switch statements as well I suppose
  415. # [13:23] <mikeday> at the cost of making the code gcc-specific
  416. # [13:23] * Philip` doesn't like GCC-specific code
  417. # [13:23] <mikeday> right
  418. # [13:23] <mikeday> or just make the code block on read
  419. # [13:24] <mikeday> and let applications use multiple threads if they care so much
  420. # [13:24] <mikeday> or callback on read, so the application can handle it and abort
  421. # [13:24] <Philip`> (I'm not entirely sure why I don't like it, but I guess it's just because portable standard code seems nicer)
  422. # [13:24] <mikeday> that's what pretty much every other library does
  423. # [13:25] * Quits: webben (i=benh@nat/yahoo/x-b6e88d37d25727cb) (Client Quit)
  424. # [13:25] <mikeday> annoying for application developers, but "that's what you get for using C"! :)
  425. # [13:26] <Philip`> Could something similar to libpng work?
  426. # [13:26] <mikeday> libpng is callbacks
  427. # [13:26] <mikeday> you say read, it reads by calling your provided read function
  428. # [13:27] <mikeday> hmm, it uses setjmp/longjmp too
  429. # [13:27] <mikeday> but only for error handling
  430. # [13:27] <Philip`> Its setjmp/longjmp is a bit nasty when you want to use it in C++ :-(
  431. # [13:27] <mikeday> jpeglib uses callbacks, but I think has I/O suspension as well,
  432. # [13:27] * Joins: webben (i=benh@nat/yahoo/x-f99e3d18b7a50380)
  433. # [13:28] <mikeday> so you can pause a read and go and do something else
  434. # [13:28] <Philip`> Do HTML parsers need to abort and return errors?
  435. # [13:28] <mikeday> I think error handling shouldn't require setjmp hackery
  436. # [13:28] <mikeday> libpng is a bit exceptional in that regard (hah!)
  437. # [13:29] <mikeday> I was just hoping to avoid I/O callbacks if possible
  438. # [13:29] <mikeday> as it's not polite for a library to take over the main loop in that way
  439. # [13:30] * Quits: ddfreyne (n=ddfreyne@unaffiliated/ddfreyne) ("k lol plz thx bai")
  440. # [13:30] <mikeday> doesn't seem possible without some funky code though.
  441. # [13:30] * Quits: zcorpan (n=zcorpan@esk-ba-1-nomad.net.mdh.se) (Read error: 110 (Connection timed out))
  442. # [13:32] <Philip`> Hmm, you'd want something more like "while (some external loop getting data from the network) { parser->heres_some_more_data(buf, size); while (! parser->needs_more_data() && ! ui_needs_to_be_more_responsive()) parser->do_some_parsing(); if (is_finished()) hooray(); }" ?
  443. # [13:32] * Quits: webben (i=benh@nat/yahoo/x-f99e3d18b7a50380) (Client Quit)
  444. # [13:32] <mikeday> right, something like that
  445. # [13:32] <mikeday> although I probably wouldn't update the UI in the same thread
  446. # [13:33] * zcorpan__ is now known as zcorpan
  447. # [13:33] <mikeday> parser.open(), parser.write(), write, write, parser.close()
  448. # [13:34] <mikeday> requires the parser to be able to suspend itself rather carefully when it runs out of data though
  449. # [13:34] <mikeday> which complicates the parser code
  450. # [13:34] <mikeday> just as demonstrated on that coroutines page
  451. # [13:35] <Philip`> Could it be useful to copy libxml2's interface, so the HTML5 parser could just fit in as a new input source there and users use libxml2 like they normally do?
  452. # [13:35] <mikeday> I would rather not to be honest, as libxml2 doesn't need to be any bigger
  453. # [13:35] <mikeday> or any more complex
  454. # [13:36] <mikeday> two different SAX interfaces, a DOM interface, the reader interface, etc.
  455. # [13:36] * Philip` has never actually used libxml2
  456. # [13:36] <mikeday> and too many XML-specific assumptions, which make the current libxml2 HTML parser fit rather awkwardly
  457. # [13:36] <Philip`> though I have used Xerces-C, so I know what giant over-engineered XML libraries feel like
  458. # [13:36] <mikeday> it's great for what it does, but it's grown by accretion and now it can't throw anything away
  459. # [13:36] <mikeday> for example, I'd much rather that it didn't have its own HTTP implementation
  460. # [13:37] <mikeday> and just provided stubs for interfacing with curl, or whatever
  461. # [13:37] <Philip`> Okay, that sounds like convincing reasons to stay away from it :-)
  462. # [13:37] <mikeday> there is some good code in there for specific tasks though, that's worth learning from
  463. # [13:38] <mikeday> but a HTML specific library could be slightly simpler, as well as implementing more of HTML.
  464. # [13:38] <mikeday> oh well, I'll have to stop procrastinating and get some of the ugly code written
  465. # [13:39] <mikeday> once you accept that it's going to be ugly, and stop trying to make it elegant, you get it done quicker.
  466. # [13:43] <Philip`> (Hmm, Xerces is a third of a million lines, and the .dll has half a megabyte just for the exported symbol names... All I wanted was a simple plain XML parser)
  467. # [13:45] <mikeday> libxml2 is < 200k lines of source
  468. # [13:45] <mikeday> about 220k including headers
  469. # [13:46] <mikeday> includes a fair bit of stuff though, XPath, some XSD schema and RELAX NG, etc.
  470. # [13:47] <mikeday> and HTML and DocBook parsers :/
  471. # [13:48] * Quits: zcorpan_ (n=zcorpan@esk-ba-1-nomad.net.mdh.se) (Read error: 110 (Connection timed out))
  472. # [13:49] <Philip`> Maybe I should use TinyXml, since that's only six thousand lines...
  473. # [13:50] <mikeday> actually, libxml2 also can be configured to be smaller, eg. --without-xpath, --without-schemas
  474. # [13:50] <mikeday> handy when you need a small footprint
  475. # [13:50] <mikeday> (I quite like libxml2, generally speaking :)
  476. # [13:55] <Philip`> I think the project I'm working on actually has three XML parsers already, since it uses a couple of external libraries that come with expat and libxml2. Plus there's a XML-converted-to-some-fast-binary-format loader, since XML parsing was too slow. Actually there's two of those (since I wanted to load some game's different binary XML format too), and also two separate XML writers. But it all works, which is enough to keep me happy
  477. # [13:56] <mikeday> heh
  478. # [13:56] <mikeday> we end up linking to expat indirectly as well, because fontconfig uses it
  479. # [13:57] <mikeday> feels a bit strange using two different parsers, but memory is cheap.
  480. # [13:57] <mikeday> anyway, must go
  481. # [13:57] * mikeday waves
  482. # [13:57] <Philip`> Bye :-)
  483. # [13:57] * Quits: mikeday (n=mikeday@CPE-60-224-50-129.vic.bigpond.net.au) ("-")
  484. # [14:05] * Joins: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  485. # [14:11] * Joins: jdandrea (n=jdandrea@ool-44c0a58f.dyn.optonline.net)
  486. # [14:32] * Joins: webben (i=benh@nat/yahoo/x-6916bb5bdef29a01)
  487. # [14:59] * Joins: ROBOd (n=robod@86.34.246.154)
  488. # [15:07] * Quits: webben (i=benh@nat/yahoo/x-6916bb5bdef29a01) (Client Quit)
  489. # [15:32] * Quits: zcorpan (n=zcorpan@84-216-42-41.sprayadsl.telenor.se) (Read error: 110 (Connection timed out))
  490. # [15:33] <annevk> Hixie, postMessage() is not the only member of Document with relaxed settings: open(), write(), writeln(), close(), location have that too
  491. # [15:34] <annevk> Hixie, as such, moving postMessage() doesn't make much sense to us
  492. # [15:37] * Joins: jdandrea_ (n=jdandrea@ool-44c0a1fe.dyn.optonline.net)
  493. # [15:38] * Joins: weinig (n=weinig@c-24-7-121-96.hsd1.ca.comcast.net)
  494. # [15:39] * Joins: jcgregorio (n=chatzill@adsl-072-148-043-048.sip.rmo.bellsouth.net)
  495. # [15:40] * Joins: met_ (n=Hassman@b14-4.vscht.cz)
  496. # [15:55] * Quits: jdandrea (n=jdandrea@ool-44c0a58f.dyn.optonline.net) (Read error: 110 (Connection timed out))
  497. # [16:10] * Joins: h3h (n=w3rd@cpe-66-75-149-197.san.res.rr.com)
  498. # [16:11] * Quits: h3h (n=w3rd@cpe-66-75-149-197.san.res.rr.com) (Client Quit)
  499. # [16:27] * Quits: weinig (n=weinig@c-24-7-121-96.hsd1.ca.comcast.net)
  500. # [16:30] * Quits: mpt (n=mpt@canonical/launchpad/mpt) ("This computer has gone to sleep")
  501. # [16:44] * Joins: billmason (n=billmaso@ip156.unival.com)
  502. # [16:44] * Parts: billmason (n=billmaso@ip156.unival.com)
  503. # [16:50] * Joins: jdandrea (n=jdandrea@ool-44c0a58f.dyn.optonline.net)
  504. # [16:52] * Joins: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com)
  505. # [17:01] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  506. # [17:03] * Quits: jdandrea_ (n=jdandrea@ool-44c0a1fe.dyn.optonline.net) (Read error: 110 (Connection timed out))
  507. # [17:06] * Quits: MikeSmith (n=MikeSmit@139.100.140.34) ("Get thee behind me, satan.")
  508. # [17:06] * Quits: syp (n=syp@photpc17.epfl.ch) (Read error: 104 (Connection reset by peer))
  509. # [17:06] * Joins: syp (n=syp@photpc17.epfl.ch)
  510. # [17:14] * Quits: YaaL (i=yaal@hell.pl) (Remote closed the connection)
  511. # [17:15] * om_sleep is now known as othermaciej
  512. # [17:35] * Quits: KevinMarks (n=Snak@pdpc/supporter/active/kevinmarks) ("bye")
  513. # [17:44] * Joins: theoros (n=theoros@ACC8D244.ipt.aol.com)
  514. # [17:57] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  515. # [18:03] * Joins: YaaL (i=yaal@hell.pl)
  516. # [18:05] * Joins: zcorpan (n=zcorpan@84-216-41-242.sprayadsl.telenor.se)
  517. # [18:08] * Joins: dbaron (n=dbaron@c-71-198-189-81.hsd1.ca.comcast.net)
  518. # [18:19] * Quits: met_ (n=Hassman@b14-4.vscht.cz) ("Chemists never die, they just stop reacting.")
  519. # [18:21] * Quits: hendry (n=hendry@82.153.198.82) ("out")
  520. # [18:22] * Joins: aroben (n=adamrobe@17.203.15.208)
  521. # [18:49] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  522. # [18:51] * Quits: BenWard (i=BenWard@nat/yahoo/x-2b3c72e144d92d42)
  523. # [18:52] * Joins: KevinMarks (i=KevinMar@nat/google/x-4f257f1062098948)
  524. # [18:57] * Joins: csarven- (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  525. # [19:00] * Quits: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca) (Read error: 110 (Connection timed out))
  526. # [19:08] * Quits: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com) (Read error: 110 (Connection timed out))
  527. # [19:09] * Joins: othermaciej (i=mjs@nat/apple/x-339a92b0dff40a07)
  528. # [19:13] * Joins: tantek (n=tantek@corp.technorati.com)
  529. # [19:15] * Quits: csarven- (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca) (Read error: 104 (Connection reset by peer))
  530. # [19:30] * Joins: ddfreyne (n=ddfreyne@d51A5CE12.access.telenet.be)
  531. # [19:31] * Joins: JonT (n=10hahaha@ti221110a080-10885.bb.online.no)
  532. # [19:42] * Joins: jruderman (n=jruderma@c-67-169-183-228.hsd1.ca.comcast.net)
  533. # [19:49] * Joins: psa (n=yomode@posom.com)
  534. # [19:56] * Joins: kingryan (n=kingryan@corp.technorati.com)
  535. # [19:57] * Joins: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  536. # [20:13] * Quits: dbaron (n=dbaron@c-71-198-189-81.hsd1.ca.comcast.net) ("8403864 bytes have been tenured, next gc will be global.")
  537. # [20:17] * Quits: aroben (n=adamrobe@17.203.15.208)
  538. # [20:28] * Parts: theoros (n=theoros@ACC8D244.ipt.aol.com) ("Leaving")
  539. # [20:33] * Joins: dbaron (n=dbaron@corp-242.mountainview.mozilla.com)
  540. # [20:33] * Quits: ianloic (n=ian@71.5.56.162.ptr.us.xo.net) ("Leaving")
  541. # [20:39] * annevk ponders about the text/xsl discussion
  542. # [20:43] <JonT> ponders?
  543. # [20:44] <ddfreyne> v., -dered, -der·ing, -ders. To weigh in the mind with thoroughness and care.
  544. # [20:44] <ddfreyne> but "/me weighs in the mind with thoroughness and care" sounds so much cooler than "/me ponders"
  545. # [20:45] <JonT> thanks ddfreyne
  546. # [20:46] <Philip`> "ponder, n. Obs. 1. A weight; spec. one used with a scale or balance. Hence in extended use: anything weighty, esp. a weighty attack or blow."
  547. # [20:52] * nickshanks ponders Philip around the lug 'ole ;-)
  548. # [21:00] * Quits: virtuelv (n=virtuelv@pat-tdc.opera.com) ("Leaving")
  549. # [21:06] <annevk> lol
  550. # [21:06] * Quits: ROBOd (n=robod@86.34.246.154) ("http://www.robodesign.ro")
  551. # [21:08] <annevk> Hixie, see a bit further up btw about postMessage()
  552. # [21:10] <Hixie> as far as i can tell you are wrong
  553. # [21:10] <Hixie> you can't document.write() to another domain
  554. # [21:10] <Hixie> that would be all kinds of dangerous
  555. # [21:12] <annevk> They have a different policy from some of the other members, anyway
  556. # [21:15] <Hixie> not in, e.g., safari, at least
  557. # [21:17] * Quits: dbaron (n=dbaron@corp-242.mountainview.mozilla.com) ("8403864 bytes have been tenured, next gc will be global.")
  558. # [21:17] <annevk> even document.location?
  559. # [21:18] * Joins: met_ (n=Hassman@r5bx220.net.upc.cz)
  560. # [21:20] <Hixie> yup
  561. # [21:20] <Hixie> (you can get to it via window.location)
  562. # [21:23] * Joins: tantek_ (n=tantek@corp.technorati.com)
  563. # [21:24] * Quits: maikmerten (n=maikmert@Lba47.l.pppool.de) ("Leaving")
  564. # [21:24] <annevk> so contentDocument.location throws but contentWindow.location doesn't?
  565. # [21:24] <Hixie> yah
  566. # [21:24] <Hixie> i believe so
  567. # [21:24] <Hixie> test it
  568. # [21:24] <Hixie> actually it's contentDocument that throws
  569. # [21:24] <Hixie> not contentDocument.location
  570. # [21:24] * Quits: tantek (n=tantek@corp.technorati.com) (Read error: 104 (Connection reset by peer))
  571. # [21:26] <Hixie> bbiab, work
  572. # [21:26] <annevk> I get an exception for both contentDocument.location and contentWindow.location ...
  573. # [21:26] <Hixie> ah maybe "location" isn't one of the safe ones; try history
  574. # [21:26] <Hixie> anyway
  575. # [21:27] <Hixie> really. on. my. way. to. work. really.
  576. # [21:28] <annevk> contentDocument doesn't throw in Opera
  577. # [21:28] <annevk> or Firefox
  578. # [21:28] * tantek_ is now known as tantek
  579. # [21:28] <annevk> tested using
  580. # [21:28] <annevk> data:text/html,<iframe src=http://www.google.com></iframe>x<script> alert(document.getElementsByTagName('iframe')[0].contentDocument) </script>
  581. # [21:34] * Quits: jruderman (n=jruderma@c-67-169-183-228.hsd1.ca.comcast.net)
  582. # [21:41] * Quits: Lachy (n=Lachlan@203-217-95-91.dyn.iinet.net.au) (Read error: 54 (Connection reset by peer))
  583. # [21:43] * Joins: Lachy (n=Lachlan@203-217-95-91.dyn.iinet.net.au)
  584. # [21:44] * Quits: KevinMarks (i=KevinMar@nat/google/x-4f257f1062098948) ("The computer fell asleep")
  585. # [21:45] * Quits: annevk (n=annevk@pat-tdc.opera.com) (Read error: 60 (Operation timed out))
  586. # [21:55] * Joins: ianloic (n=ian@71.5.56.162.ptr.us.xo.net)
  587. # [22:04] * Joins: jruderman (n=jruderma@corp-242.mountainview.mozilla.com)
  588. # [22:06] * Joins: dbaron (n=dbaron@corp-242.mountainview.mozilla.com)
  589. # [22:09] * Quits: jdandrea (n=jdandrea@ool-44c0a58f.dyn.optonline.net)
  590. # [22:14] * Joins: jdandrea (n=jdandrea@ool-44c0a58f.dyn.optonline.net)
  591. # [22:29] * Quits: ddfreyne (n=ddfreyne@unaffiliated/ddfreyne) ("k lol plz thx bai")
  592. # [22:41] * Joins: zcorpan_ (n=zcorpan@84-216-41-242.sprayadsl.telenor.se)
  593. # [22:41] * Joins: mpt (n=mpt@canonical/launchpad/mpt)
  594. # [22:55] * Quits: zcorpan (n=zcorpan@84-216-41-242.sprayadsl.telenor.se) (Read error: 110 (Connection timed out))
  595. # [23:00] * Quits: kingryan (n=kingryan@corp.technorati.com) (Remote closed the connection)
  596. # [23:01] * Joins: kingryan (n=kingryan@corp.technorati.com)
  597. # [23:03] <Hixie> Jeffrey Zeldman follows the WHATWG twitter feed
  598. # [23:04] * Joins: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com)
  599. # [23:04] <hasather> http://jeremiahgrossman.blogspot.com/2007/05/html-5-in-works.html
  600. # [23:05] * Quits: dbaron (n=dbaron@corp-242.mountainview.mozilla.com) ("8403864 bytes have been tenured, next gc will be global.")
  601. # [23:07] * Quits: mpt (n=mpt@canonical/launchpad/mpt) (Read error: 110 (Connection timed out))
  602. # [23:11] <Hixie> right!
  603. # [23:11] <Hixie> lunch is eaten, e-mail is looked at, though not read
  604. # [23:11] <Hixie> time to do some editing!
  605. # [23:11] <zcorpan_> have fun :)
  606. # [23:17] * Parts: JonT (n=10hahaha@ti221110a080-10885.bb.online.no)
  607. # [23:28] * Quits: met_ (n=Hassman@r5bx220.net.upc.cz) ("Chemists never die, they just stop reacting.")
  608. # [23:30] * Joins: mpt (n=mpt@canonical/launchpad/mpt)
  609. # [23:35] * Joins: dbaron (n=dbaron@corp-242.mountainview.mozilla.com)
  610. # [23:36] * Quits: kingryan (n=kingryan@corp.technorati.com) (Remote closed the connection)
  611. # [23:37] * Quits: jruderman (n=jruderma@corp-242.mountainview.mozilla.com)
  612. # [23:37] * Joins: kingryan (n=kingryan@corp.technorati.com)
  613. # [23:43] * Joins: jruderman (n=jruderma@corp-242.mountainview.mozilla.com)
  614. # [23:43] * Joins: KevinMarks (n=KevinMar@207.47.11.9.static.nextweb.net)
  615. # Session Close: Tue May 15 00:00:00 2007

The end :)