/irc-logs / freenode / #whatwg / 2007-03-29 / end

Options:

  1. # Session Start: Thu Mar 29 00:00:00 2007
  2. # Session Ident: #whatwg
  3. # [00:00] <bewest> so "semantic web killer app" is kind of an oxymoron
  4. # [00:00] <tylerr> Hixie: http://www-128.ibm.com/developerworks/xml/library/x-futhtml2.html?ca=dgr-lnxw87XHTML2
  5. # [00:00] <tylerr> Though it's from Jan 06.
  6. # [00:00] <bewest> tylerr: http://www-128.ibm.com/developerworks/xml/library/x-xml2007predictions.html
  7. # [00:00] <tylerr> Ah I didn't see that one.
  8. # [00:00] <tylerr> Lovely!
  9. # [00:00] <bewest> meh... it's kind of lame
  10. # [00:01] <tylerr> Ah well then I'll read it with a scowl on my face. ;-)
  11. # [00:01] <bewest> not very user-centric
  12. # [00:02] * tylerr nods
  13. # [00:03] * Joins: chin1 (n=daquino@c-68-36-237-152.hsd1.nj.comcast.net)
  14. # [00:06] <chin1> so ar eyou the guys who are controlling the w3c draft for html 5.0 ?
  15. # [00:06] <kingryan> chin1: for some values of "control", yes
  16. # [00:07] <bewest> we control the whatwg draft of html5
  17. # [00:07] <bewest> the html-wg controls the w3c draft
  18. # [00:10] <chin1> hm weird
  19. # [00:11] * kingryan just realized which room he's in :D
  20. # [00:11] <chin1> why do this ?
  21. # [00:11] <bewest> we don't know
  22. # [00:11] <Hixie> well, there wasn't a w3c draft when we started, and w3c wouldn't do it
  23. # [00:11] <kingryan> it's fun!
  24. # [00:11] <Hixie> now they are going to do it, and so we will probably just work with them
  25. # [00:12] <bewest> or they will work with us
  26. # [00:12] <bewest> or something
  27. # [00:12] <bewest> who knows
  28. # [00:12] <bewest> or they'll continue talking about spreadsheets and forums
  29. # [00:12] <chin1> well i've got a draft for you
  30. # [00:12] <chin1> hey is there a chat for the html-wg too ?
  31. # [00:12] <bewest> yes
  32. # [00:15] <Hixie> irc.w3.org port 6665 channel #html-wg
  33. # [00:15] <bewest> fwiw the w3c doesn't have a draft of anything yet
  34. # [00:15] <chin1> lol oh #htmlwg i gues chanserv is the only one who cares
  35. # [00:16] <chin1> ok who should i rant to first you guys or them ?
  36. # [00:17] <othermaciej> well, if you have a big dicussion topic, email might be the best starting point
  37. # [00:17] <chin1> you mean mailing list ?
  38. # [00:18] <othermaciej> yes
  39. # [00:19] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-7d96fac31051bcab)
  40. # [00:19] <othermaciej> but if you give a general description of the topic you want to discuss, we could advise you even better on the appropriate forum
  41. # [00:19] <othermaciej> hello KevinMarks
  42. # [00:20] * Quits: met__ (n=Hassman@r5bx220.net.upc.cz) ("Chemists never die, they just stop reacting.")
  43. # [00:21] <chin1> well i see now that fx3 will support getElementsByClassName (gebcn) and if you ask me there is way to many functions that do the same thing ... getElementBy<whatever>... well a while back i was writing a simple dom parser and instantly thought why not something that could take a list of attributes to match against... well i rolled out a prototype and with some help of others it works very well now and i called it ... getElementsByAttrib
  44. # [00:23] <othermaciej> the Web API working group has a spec for something even more general than that
  45. # [00:23] <othermaciej> getElementsBySelector
  46. # [00:23] <othermaciej> which uses a CSS selector
  47. # [00:23] <othermaciej> though I think I will propose to rename it to cssQuery
  48. # [00:24] <bewest> <3 getElementsBySelector
  49. # [00:25] <bewest> dean edwards has a really nice version that optimizes it based on the browser, as well
  50. # [00:26] <othermaciej> yes, and having it native in some browsers will hopefully allow even better performance
  51. # [00:27] <othermaciej> though in that case browsers will have to make sure their selectors implementation is at least as fast as their XPath
  52. # [00:27] <Hixie> it'd better be
  53. # [00:28] <chin1> yea thats something like the jQeury approach
  54. # [00:28] <chin1> and thats a css type selector
  55. # [00:28] <Hixie> since the selectors one is run much more frequently than the xpath one...
  56. # [00:28] <chin1> well mine is a js type selector that is based on properties
  57. # [00:28] <Hixie> (like, every time you move the mouse)
  58. # [00:28] <chin1> actually it accepts 3 types of tests... scalar, regex, and your own supplied function... and things like {hasChildNodes: true} since hasChildNodes is a function it will execute it on your behalf and test it vs the given value
  59. # [00:29] <chin1> i can defitnetly see were a css selector is a huge powerfull beast
  60. # [00:29] <chin1> but its based on what css selectors can do ... why limit our selves ?
  61. # [00:31] <chin1> var el_array = gebi( { tagName: 'DIV', hasChildNodes: true, className: /car/i }, startNode, limit, depth )
  62. # [00:31] <othermaciej> CSS selectors can select based on attributes
  63. # [00:31] <othermaciej> though not an arbitrary regexp or function test
  64. # [00:31] <chin1> sorry i should of used geba not gebi as short for getElementsByAttributes
  65. # [00:31] * Quits: karlUshi (n=karl@124-144-94-185.rev.home.ne.jp) ("This computer has gone to sleep")
  66. # [00:31] <KevinMarks> does it do ~= ?
  67. # [00:32] <chin1> yea well in csss you can do things like type="text" sure ... but what about hasChildNodes or any other element property ?
  68. # [00:32] <chin1> whats ~= ?
  69. # [00:32] <chin1> isn't ~= a perl like syntax for regex test ?
  70. # [00:33] <othermaciej> ~= in selectors is attribute token match
  71. # [00:33] <othermaciej> http://www.w3.org/TR/css3-selectors/#attribute-selectors
  72. # [00:33] <chin1> oh yea its a css feature not supported yet i haven't read into them much
  73. # [00:33] <chin1> let me read up on it
  74. # [00:34] <othermaciej> there is exact, prefix and token match
  75. # [00:34] <othermaciej> for attribtues
  76. # [00:34] <othermaciej> no regexp match
  77. # [00:35] <chin1> well like you siad mine allows you to provide a custom function to do whatever test your heart desires plus will the css selector merly verify that the element has a attribute called "hasChildNodes" or will it acurately detect that its a method and execute it to test the result ?
  78. # [00:36] <chin1> so exact would be like class="example" and you search for "example" and prefix would be like "ex" correct ?
  79. # [00:36] <chin1> i dont see what a token is though
  80. # [00:36] <othermaciej> if you want to test with custom code, you can just walk the DOM, so I'm not sure native UA support would help
  81. # [00:36] <chin1> i mean {className: /^ex/i} is a prefix
  82. # [00:37] <chin1> {className: "exact"}
  83. # [00:37] <chin1> {className: function(){/* whatever you want */}}
  84. # [00:37] <chin1> UA ?
  85. # [00:37] <othermaciej> div[class|=example] will match class="example-stuff" but not class="ex"
  86. # [00:38] <chin1> {className: function( value ){ if( value.indexOf("blah") != -1 }}
  87. # [00:38] <chin1> thats a quicker hack than using regex
  88. # [00:38] <othermaciej> div[class~=something] will match class="foo something bar baz"
  89. # [00:38] <othermaciej> for class specifically though, that is just div.something
  90. # [00:39] <othermaciej> the function thing is unlikely to be quicker to execute
  91. # [00:39] <othermaciej> anyway
  92. # [00:39] <othermaciej> I don't think this is the right forum
  93. # [00:39] <othermaciej> I think if you want to make a proposal, the Web API Working Group would be the best place to make it
  94. # [00:39] <chin1> your saying that the overhead of passing a function is slower than using a regex test ?
  95. # [00:39] <othermaciej> send mail to public-webapi@w3.org
  96. # [00:40] <chin1> from what i undersatnd indexOf is faster htan regex for simple sub string matches but if the extra function inquires that much over head you might be right i haven't tried any benchmarking
  97. # [00:40] <chin1> the idea too is that if this was natively supported it would be much faster
  98. # [00:41] <chin1> so that sthe email i would find searching on the w3.org ?
  99. # [00:42] <othermaciej> yes
  100. # [00:43] <chin1> thanks
  101. # [00:43] <chin1> well wath do you guys think ?
  102. # [00:44] <othermaciej> personally I think Selectors API is a better design
  103. # [00:44] <othermaciej> feel free to google for that
  104. # [00:51] <chin1> yea i think its great too
  105. # [00:54] <bewest> what regex?
  106. # [01:00] <chin1> the css selector thing
  107. # [01:01] * Quits: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
  108. # [01:03] * Quits: KevinMarks (i=KevinMar@pdpc/supporter/active/kevinmarks) ("The computer fell asleep")
  109. # [01:15] <chin1> you guys got an email i can send to along with public-webapi@w3.org at the same time ?
  110. # [01:20] * Quits: hendry (n=hendry@91.84.53.136) ("sleep")
  111. # [01:20] <Hixie> hmm
  112. # [01:20] <Hixie> how to do the ui thing
  113. # [01:20] <Hixie> hmmmmmmm
  114. # [01:20] <Hixie> we need a way to allow any ui, but to have the ui immediately appear if there's no js-provided ui, but have the ui not appear at all if there is
  115. # [01:21] <Hixie> maybe an event handler?
  116. # [01:21] <Hixie> hmmm
  117. # [01:22] <Dashiva> What happened to the attribute?
  118. # [01:22] <Hixie> the attribute to do what?
  119. # [01:22] <Dashiva> To specify if the ui should appear or not
  120. # [01:23] <Hixie> you don't want a declarative way of doing it, since you'll only want no ui when you have scripted control
  121. # [01:23] * Joins: Lachy_ (n=chatzill@58.105.240.232)
  122. # [01:23] <Hixie> so you want the ui to turn _off_ from script
  123. # [01:23] <Hixie> and be on by default otherwise
  124. # [01:23] <Hixie> the problem is you want a way to turn off the default ui without the ui ever actually appearing in the first place
  125. # [01:23] * Parts: chin1 (n=daquino@c-68-36-237-152.hsd1.nj.comcast.net)
  126. # [01:24] <Hixie> tough one
  127. # [01:24] <Dashiva> Ah, you mean so the ui doesn't hide for JS disabled?
  128. # [01:24] <Hixie> yeah
  129. # [01:24] <Dashiva> <noscript>ui="false"<noscript> :)
  130. # [01:24] <Lachy_> hi
  131. # [01:25] <tylerr> Hi Lachy_.
  132. # [01:26] <tylerr> I could have really used the <dialog> element today.
  133. # [01:26] * Quits: gavin (n=gavin@CPE001346f5db49-CM0018c0db9a8a.cpe.net.cable.rogers.com) (Read error: 104 (Connection reset by peer))
  134. # [01:26] <Hixie> Dashiva: yeah but you don't want it to just be js-bound (since then we could just have it be on when js is off), you want it bound to the loading of the actual js in question
  135. # [01:26] <tylerr> Had to throw a transcript onto a page for a client.
  136. # [01:26] * Joins: gavins (n=gavin@firefox/developer/gavin)
  137. # [01:26] <Lachy_> Hixie, if script is disabled or unsupported, the UI should show by default (perhaps depending on user prefs).
  138. # [01:27] <Dashiva> Hixie: So basically, a script should be able to ping in (probably on load or domcontentloaded) to say "I'm here, go away ui"
  139. # [01:27] <Lachy_> it's when script is enabled, but no script is provided that's harder
  140. # [01:27] <Hixie> Dashiva: yeah
  141. # [01:27] <Hixie> Dashiva: but it should work without flicker
  142. # [01:27] <Hixie> which is the hard part
  143. # [01:27] <othermaciej> Hixie: how about declare to have UI on, but if script is disabled, UAs MAY show default UI even if not enabled
  144. # [01:28] <Dashiva> What if you said "Default UI should not be shown before domcontentloaded is fired" or somesuch?
  145. # [01:28] <Hixie> Dashiva: then you get flicker the other way around
  146. # [01:28] <Hixie> othermaciej: we could...
  147. # [01:28] <othermaciej> I mean, if we are worried about the special case of not having script, then just trigger off that
  148. # [01:28] <othermaciej> but I don't think it's a terribly important case personally
  149. # [01:29] <Lachy_> so we need a way to know whether or not a UI is provided as soon as the <video> is added to the DOM, and it seems the only way to do that is with an attribute
  150. # [01:29] <Dashiva> Hixie: I wouldn't consider it flicker, it's no different from images taking a while to load even though the page is done
  151. # [01:29] <Dashiva> Flicker would be appearing and disappearing again
  152. # [01:29] <Hixie> othermaciej: it's also in the case where the ui js didn't load for some reason
  153. # [01:30] <Hixie> othermaciej: but yeah, maybe we shouldn't support it at all
  154. # [01:30] <Hixie> Dashiva: ok, bouncing, whatever you want to call it :-)
  155. # [01:30] <Dashiva> If you make it fade in, it might even look cool
  156. # [01:30] <Dashiva> "cool"
  157. # [01:30] <Hixie> heh
  158. # [01:31] <Hixie> Lachy_: it's not the only way
  159. # [01:31] <Hixie> Lachy_: we could synchronously fire an event handler
  160. # [01:31] <Hixie> <video ondecidewhethertohaveui="return false">
  161. # [01:31] <Hixie> which fires when the element is inserted
  162. # [01:31] <Hixie> or rather, onshowui=""
  163. # [01:32] <Lachy_> that still requires an event attribute
  164. # [01:32] <Hixie> which you can cancel
  165. # [01:32] <Hixie> right, an attribute of some kind, certainly
  166. # [01:32] <Hixie> i thought you meant a boolean one, sorry
  167. # [01:33] <Lachy_> you could also listen for DOMNodeInserted (or whatever it's called) on the document, and when a video element is inserted, turn the UI off
  168. # [01:33] <Hixie> yeah, e.g.
  169. # [01:33] <Hixie> i'm sort of liking this onshowui="false" solution
  170. # [01:34] <Hixie> it looks declarative, solves the no-js situation, and allows advanced decision making without flicker or bouncing
  171. # [01:34] * Joins: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
  172. # [01:34] <Lachy_> I just don't see the benefit in controlling it via an event handler attribute as opposed to a boolean
  173. # [01:34] <Hixie> the boolean isn't linked to the execution of JS, and can't call to check to see whether you really need UI (e.g. check to see if thte relevant .js file loaded at all)
  174. # [01:35] <Lachy_> ok
  175. # [01:35] <Lachy_> but wouldn't it have to be onshowui="return false;" ?
  176. # [01:36] <Hixie> as opposed to?
  177. # [01:36] <Lachy_> to what you said above
  178. # [01:36] <Lachy_> onshowui="false" would be a JS error
  179. # [01:36] <Lachy_> wouldn't it?
  180. # [01:36] <Hixie> return is implied on the last statement in JS bodies
  181. # [01:36] <Hixie> and the semicolon is optional at end of lines in JS
  182. # [01:36] <Hixie> so "return false;" and "false" are exactly equivalent in event handlers
  183. # [01:36] <Hixie> aiui
  184. # [01:37] <Lachy_> yeah, the return is implied, but it doesn't return the last statment
  185. # [01:37] <Lachy_> it returns null
  186. # [01:37] <Hixie> really? i thought it returned the last expression.
  187. # [01:37] <Hixie> ok, then onshowui="return false"
  188. # [01:37] * Joins: aroben_ (i=adamrobe@nat/apple/x-30b7fa3c3f4b2bab)
  189. # [01:37] * Lachy_ goes to make a test case...
  190. # [01:38] * Joins: gavin (n=gavin@firefox/developer/gavin)
  191. # [01:38] <Dashiva> It will "return" the last value if you use javascript: in the address bar, a common annoyance :)
  192. # [01:39] <Lachy_> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Ca%20href%3D%22http%3A//www.google.com/%22%20onclick%3D%22false%22%3EImplicit%20Return%3C/a%3E%0A%3Ca%20href%3D%22http%3A//www.google.com/%22%20onclick%3D%22return%20false%22%3EExplicit%20Return%3C/a%3E
  193. # [01:39] <othermaciej> making showui an event is kinda hokey
  194. # [01:39] <Hixie> Lachy_: indeed
  195. # [01:39] <Lachy_> maybe make it oninit, and have a DOM Attribute: video.ui = false;
  196. # [01:39] <Hixie> othermaciej: yeah maybe we don't solve this case, just seems kinda crappy not to though
  197. # [01:40] <othermaciej> Hixie: the "don't have script on" case?
  198. # [01:40] <Lachy_> browsers can always allow users to turn on UI from the context menu
  199. # [01:40] <othermaciej> I think my proposal of ui=on to call for UI, plus permission or mandate to turn it on if script is off or unsupported, is sufficient
  200. # [01:40] <Hixie> othermaciej: or the "script isn't working for some reason" case
  201. # [01:41] <othermaciej> "script isn't working for some reason" is likely to break much more than your video controls
  202. # [01:41] <Hixie> othermaciej: yeah, i'm just seeing if we can go beyond sufficient. i agree your proposal is the fallback position.
  203. # [01:41] <othermaciej> if you depend on script to any significant extent
  204. # [01:41] <Hixie> yep
  205. # [01:41] <Lachy_> onshowui="return false;" doessn't even handle the case where the rest of the script didn't load
  206. # [01:41] <othermaciej> I don't think individual scripts failing to load is something we can turn into a good experience
  207. # [01:41] <Hixie> Lachy_: indeed
  208. # [01:42] <Hixie> the other thing is do we want to default to a native ui being enabled or not? there are good arguments both ways
  209. # [01:42] <Philip`> (Lachy_: JS returns undefined if you fall off the end of a function without a return, rather than null)
  210. # [01:42] <Hixie> typically the same arguments, namely "we want that to be the default because it's the more common case and would make life easier"
  211. # [01:43] <Lachy_> Philip`: ok
  212. # [01:44] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-42383b706cebece7)
  213. # [01:45] <othermaciej> I think asking to turn something on is slightly more tasteful than asking to turn it off, but it doesn't seem like a huge deal
  214. # [01:45] <Dashiva> Is it acceptable to delegate to UAs to decide on their own to override and enable UI when scripting is disabled?
  215. # [01:45] <othermaciej> if it's just ui=on, that's 5 chars to get default controls
  216. # [01:45] <othermaciej> in the script case you need extra script content for the controls you are adding
  217. # [01:45] <Hixie> i'm curious how many people are going to bother to use ua-provided ui
  218. # [01:45] * Quits: aroben (i=adamrobe@nat/apple/x-76ccaef170ac1058) (Read error: 60 (Operation timed out))
  219. # [01:46] <Dashiva> I see three user groups: Big sites with branding, small sites with cool web 2.0 custom UIs, and other sites which just want video
  220. # [01:46] <Dashiva> The latter group might be tiny
  221. # [01:46] <Hixie> the other thing is, would we want ui="" to default to on or off for <audio>?
  222. # [01:46] * Quits: gavins (n=gavin@firefox/developer/gavin) (Connection timed out)
  223. # [01:47] <Hixie> othermaciej: (actually it'd be just three extra characters: <video src='...'> vs <video ui src='...'>)
  224. # [01:47] <Hixie> (i'd want <audio> and <video> to have the same default)
  225. # [01:47] <Dashiva> I say default on for both video and audio. Hidden sound I can't turn off is a bad idea
  226. # [01:47] <othermaciej> I imagine a blogger randomly embedding a video would be happy with default controls
  227. # [01:48] <othermaciej> but they might be embedding from a hosting site which wants you to use their controls
  228. # [01:48] <othermaciej> Hixie: good point
  229. # [01:48] <othermaciej> anyway, I think negatives are a bit harder to understand, since lack of it is then conceptually a double negative
  230. # [01:48] <Hixie> yeah
  231. # [01:48] <othermaciej> if (!video.noui)
  232. # [01:49] <Hixie> so that implies default-off
  233. # [01:51] <othermaciej> yes, although other considerations could override, but it seems a toss-up otherwise
  234. # [01:52] <Lachy_> I'm happy with either default, it makes little difference to me
  235. # [01:52] * Joins: tantek_ (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net)
  236. # [01:53] <Dashiva> If default is off, we can equalize "author forgot to specify UI" with "UI script failed to load"
  237. # [01:55] <Lachy_> but should we call the attribute ui=""? Should we expect the average author to understand what UI means?
  238. # [01:56] <Hixie> what would you call it?
  239. # [01:56] <Hixie> ui is compellingly short
  240. # [01:56] <Lachy_> maybe controls="on"
  241. # [01:57] <Hixie> this will be a boolean attribute
  242. # [01:57] <Lachy_> I know it's short, but UI is a technical term
  243. # [01:57] <Hixie> <video controls>
  244. # [01:57] <othermaciej> controls="" would be maybe a bit more clear
  245. # [01:57] <othermaciej> but a tiny bit longer to type
  246. # [01:57] <Lachy_> IIRC, the windows media player plugin uses <param name="controls">
  247. # [01:58] <Hixie> ok controls it is.
  248. # [01:59] <Hixie> autoplay="".
  249. # [01:59] <Hixie> hmm.
  250. # [01:59] <Hixie> to do autoplay='' i guess we need to have the new states first
  251. # [02:00] <othermaciej> yes, probably
  252. # [02:00] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
  253. # [02:03] * Quits: othermaciej (i=mjs@nat/apple/x-87b0a4ea6d4b3f6e)
  254. # [02:05] * Joins: othermaciej (i=mjs@nat/apple/x-4f273ff3b1cf5253)
  255. # [02:08] * Quits: tantek (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net) (Read error: 110 (Connection timed out))
  256. # [02:13] <Hixie> this state thing is an interesting problem.
  257. # [02:13] <Hixie> there are two sets of state that are relevant that i can see
  258. # [02:13] <Hixie> the state from the user/ui perspective, and the state from the ua perspective
  259. # [02:15] <Hixie> from the user's perspective, you have playing, not playing because i told it not to play, not playing but it could soon play, and not playing and it won't play
  260. # [02:15] <Hixie> these correspond to the current states PLAYING, PAUSED, AUTO-PAUSED, and STOPPED
  261. # [02:15] <Hixie> from the ua's perspective, whether you're playing or not is almost incidental
  262. # [02:16] <othermaciej> our states are designed from the script-driven control perspective
  263. # [02:16] <Dashiva> What about moving in the data at other rates than 1.0?
  264. # [02:16] <Dashiva> Is rewinding PLAYING?
  265. # [02:16] <Hixie> and you have the states in the apple proposal: no idea what's going on, we tried and it failed, we're loading, we're loading and can render something, we're loading and can play something, we're loading and can play something and it's likely that we won't catch up to our cache, and we're done loading.
  266. # [02:17] <othermaciej> each state change is supposed to be tied to some UI change you would make
  267. # [02:17] <Hixie> which are the apple states respectively
  268. # [02:17] <othermaciej> (although playing or not is also relevant to script-driven UI, but we have one bit for that)
  269. # [02:18] <Dashiva> I'm almost tempted to suggest a <stream> element for non-finite video
  270. # [02:18] <Hixie> the two sets of states really are parallel but not really overlapping, it's kind of weird, i wouldn't have thought we could come up with two so close yet not overlapping sets of state
  271. # [02:18] * Quits: mw22 (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
  272. # [02:18] <othermaciej> well, we just have a "paused" boolean for playing vs. paused
  273. # [02:19] <Dashiva> And .currentRate for the velocity, wasn't it?
  274. # [02:19] <Hixie> othermaciej: yeah but you can be paused even when the ui should be showing "playing" as the state, simply because you're buffering
  275. # [02:19] <othermaciej> STOPPED is not a distinct state (unless it is the same as UNINITIALIZED) and AUTO-PAUSED is not directly reflected though it can be inferred
  276. # [02:19] <othermaciej> yes, we don't consider auto-paused as paused
  277. # [02:19] <Hixie> STOPPED is the same as UNINITIALIZED (but easier to spell)
  278. # [02:19] <othermaciej> EMPTY might be a good name for that
  279. # [02:19] <Hixie> also same as ERROR
  280. # [02:19] <Hixie> yeah
  281. # [02:20] * Hixie changes STOPPED to EMPTY in the spec
  282. # [02:20] <othermaciej> we also don't have a "buffering" boolean
  283. # [02:20] <Hixie> yeah "buffering" is basically states 2 through 5 of your state machine
  284. # [02:20] <othermaciej> since it is assumed that what you care about is currently available time chunks and when they change
  285. # [02:20] <Hixie> well the spec also has buffered
  286. # [02:20] <Hixie> which lists the time chunks
  287. # [02:21] <othermaciej> yes, that's more informative than our availableDuration boolean
  288. # [02:21] <othermaciej> both are kind of weird if you have an implementation that might discard some buffers
  289. # [02:21] <Hixie> yeah
  290. # [02:21] <Hixie> we need an event for when they change
  291. # [02:21] <othermaciej> because then you just want to pretend it's all available
  292. # [02:21] <Hixie> 'buffering' or 'bufferchange' or something
  293. # [02:21] <othermaciej> er, availableDuration float, not boolean
  294. # [02:22] <othermaciej> we just overloaded durationchange to apply to both duration and availableDuration, but that's kinda lame
  295. # [02:22] <Hixie> yeah not dealing with duration changes right now, that's for tomorrow or later or something :-)
  296. # [02:22] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-42383b706cebece7) ("The computer fell asleep")
  297. # [02:22] <Hixie> mostly i'm trying to work out what to do with these states
  298. # [02:23] <Hixie> i like the simple four-state system we have now, but it needs to handle the stuff you guys have done too
  299. # [02:23] <Dashiva> should watch out so there aren't any dead states in the final proposal, like the first few readyStates for xmlhttprequest
  300. # [02:24] <othermaciej> well, the extra booleans you have sort of imply extra states
  301. # [02:25] * Quits: h3h (n=h3h@66-162-32-234.static.twtelecom.net) ("|")
  302. # [02:25] <othermaciej> like I said, we tried to tie the state changes to times when a script-driven controller would want to take an action to update the UI
  303. # [02:26] <othermaciej> I think with your states, it's impossible to tell whether to enable the play/pause button, since there's no way to determine current playability at all
  304. # [02:27] <ericcarlson> There really are two different states to track: loading and playback
  305. # [02:27] <othermaciej> and if you want to show some kind of spinner over the video area before there is even an initial frame to show, you can't do that
  306. # [02:28] <Dashiva> ericcarlson: But some combinations are mutually exclusive, so by combining them you can remove the impossible ones
  307. # [02:28] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-dbff0c909689ab55)
  308. # [02:28] <othermaciej> Dashiva: but by combining them you end up with a crazy number of states
  309. # [02:28] <Hixie> othermaciej: that's true, yeah
  310. # [02:29] <Dashiva> That's also true
  311. # [02:30] <othermaciej> PLAYTHROUGHOK is mainly useful for a script-driven decision to auto-play
  312. # [02:30] <Hixie> yep
  313. # [02:31] <Dashiva> Although, auto-paused suggests the UA will also auto-resume, probably at that same state, no?
  314. # [02:31] <Hixie> hmm
  315. # [02:31] <othermaciej> yes, we would treat auto-paused as not paused w/ assumption that UA will auto-resume
  316. # [02:31] <Hixie> othermaciej: would you be ok with having both, playState and readyState ?
  317. # [02:31] <othermaciej> since there's no real UI action to take at that time
  318. # [02:32] <othermaciej> Hixie: I would, but I'd like to be convinced that playState can't be collapsed to a boolean
  319. # [02:32] <Hixie> othermaciej: well, it's 2 bits of information. does the ua want to play, and does the user want to play. so i guess it's two booleans.
  320. # [02:32] <Hixie> othermaciej: i'd be ok with two booleans i guess
  321. # [02:32] <Dashiva> What's the difference between PAUSED and STOPPED? As I understand playback, pause = stop at current offset, stop = stop at beginning of clip
  322. # [02:32] * Joins: karlUshi (n=karl@133.27.246.23)
  323. # [02:33] <Hixie> Dashiva: STOPPED is now EMPTY
  324. # [02:33] <Hixie> which is basically the same as UNINITIALISED in the apple proposal
  325. # [02:33] <othermaciej> Hixie: not sure what you mean by "does the UA want to play"
  326. # [02:33] <othermaciej> it's really more like "is time currently advancing", isn't it?
  327. # [02:34] <Dashiva> But for playState, does whether it's stopped or paused really matter? In either case it's not playing.
  328. # [02:34] <Hixie> othermaciej: e.g. when the user agent is seeking, it can't play, even though the user thinks it isn't paused
  329. # [02:34] <othermaciej> (I assume in what you call auto-pause, the user still wants to play, but time is not advancing)
  330. # [02:34] <Hixie> othermaciej: right
  331. # [02:34] <othermaciej> so we'd represent that as a currentRate of 0 I think
  332. # [02:34] <othermaciej> but paused would be false
  333. # [02:34] <Hixie> hm
  334. # [02:34] * Dashiva likes that
  335. # [02:34] <Hixie> i was hoping we could collapse currentRate and playbackRate to one mutable attribute
  336. # [02:35] <Dashiva> I'm thinking (not as actual names) preferredRate and actualRate
  337. # [02:36] <Dashiva> But are there more states to currentRate than either playbackRate and 0?
  338. # [02:37] * Hixie would like to relegate rate controls purely to the situation of playing back at different rates, rather than have authors have to deal with it even in simple uis
  339. # [02:38] <Dashiva> I'm not typing straight, better head to bed. Good luck with the wrangling.
  340. # [02:38] <Hixie> othermaciej: btw there seems to be a state missing between UNINITIALZED and UNDERSTANDABLE if you're using the states as a way to report current status
  341. # [02:38] <Hixie> namely the state where you're initialised, but haven't yet gotten a response
  342. # [02:38] <Hixie> "OPEN", for lack of a better term
  343. # [02:39] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-dbff0c909689ab55) ("The computer fell asleep")
  344. # [02:40] <othermaciej> Hixie: or LOADING maybe
  345. # [02:40] <othermaciej> Hixie: I think you are right
  346. # [02:41] <Hixie> another idea for PLAYABLE vs PLAYTHROUGHOK, not that i like it, much is to have downloadRate, and have people compare that to playbackRate to see if it's safe yet
  347. # [02:41] <Hixie> no i guess that doesn't work
  348. # [02:41] <Hixie> nevermind
  349. # [02:41] <Hixie> othermaciej: yeah
  350. # [02:42] <othermaciej> if you buffer on demand, downloadRate could be changing all the time
  351. # [02:42] <Hixie> yup
  352. # [02:42] <Hixie> yeah i think that idea sucks
  353. # [02:42] <Hixie> you know, we could split out your states into multiple booleans too
  354. # [02:43] <Hixie> and just have a farm of booleans, each with its own event
  355. # [02:43] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-e854230ef928e8c5)
  356. # [02:43] <Hixie> not that i like that idea either
  357. # [02:43] <Hixie> i'm just thinking out loud here
  358. # [02:44] <othermaciej> yes, there could be a bool farm, but I think the state machine diagram is enlightening and would be harder to draw for bools
  359. # [02:44] <othermaciej> there would be many invalid combinations
  360. # [02:45] <Hixie> i'm not convinced the current state machine is really right
  361. # [02:45] <Hixie> e.g. you could seek and go from playable to playthroughok
  362. # [02:46] <othermaciej> that's true
  363. # [02:46] <Hixie> and you can get to the empty state from anywhere assuming we keep the method to do close the current video stream
  364. # [02:46] <Hixie> at which point it's pretty messy anyway
  365. # [02:46] <Hixie> not that i think all bools is better
  366. # [02:47] * Quits: tantek_ (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net)
  367. # [02:47] <othermaciej> yeah, I'm not sure a method to close down is all that useful
  368. # [02:47] <othermaciej> but that would be logically consistent, to return to EMPTY
  369. # [02:47] * Quits: aroben_ (i=adamrobe@nat/apple/x-30b7fa3c3f4b2bab)
  370. # [02:48] <Hixie> yeah that's why i added stop() back when i added it, mostly for symmetry. I agree it's not overly useful.
  371. # [02:48] <Hixie> we can drop it, i'm not tied to it or anything
  372. # [02:48] <othermaciej> you could seek from presentable to playable too
  373. # [02:48] <Hixie> yeah
  374. # [02:49] <Hixie> why can you seek to understandable? is that equivalent to seeking to a part of the stream you don't have any data for?
  375. # [02:49] <othermaciej> yes
  376. # [02:49] <othermaciej> so you don't have a frame to show for that position
  377. # [02:49] <othermaciej> though in that case you most likely want to just keep showing the last frame played
  378. # [02:49] <Hixie> so you can seek from there to all the other states too
  379. # [02:50] <othermaciej> yeah
  380. # [02:50] <Hixie> basically seek can take you from any of the four inner states to any of the other four inner states
  381. # [02:50] <Hixie> yeah the current spec says to keep showing hte last frame
  382. # [02:50] <Hixie> i'm not sure we want to expose whether or not we have the current playback position's frame's data necessarily
  383. # [02:50] <othermaciej> all seek arcs should be bidirectional
  384. # [02:51] <Hixie> it makes sense at the start to go from never having had a frame to having the first frame
  385. # [02:51] <Hixie> but i don't know that we should expose more than that
  386. # [02:51] <othermaciej> I dunno either
  387. # [02:51] * Quits: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
  388. # [02:51] * othermaciej wonders if ericcarlson has a more informed opinion
  389. # [02:51] * Joins: marcosc (n=chatzill@131.181.148.226)
  390. # [02:52] <Hixie> i'm tempted to propose having the following states: EMPTY ERROR LOADING BUFFERING LOADED, and having two booleans: canPlay, and canPlayThroughToTheEnd (names obviously not final)
  391. # [02:53] <othermaciej> so what event happens when you become playable or stop being playable?
  392. # [02:54] <Hixie> an event would happen when canPlay changes, same as now when you go from playing to autopaused and back again
  393. # [02:54] <othermaciej> playabilitychanged separate from the states?
  394. # [02:54] <Hixie> and an event would happen when canPlayThrough becomes true
  395. # [02:54] <othermaciej> so basically this partitions the BUFFERING state into 3 possibilities (since one combo of the booleans is impossible)
  396. # [02:54] <Hixie> oncanplaychange and onautoplayready maybe
  397. # [02:54] <Hixie> yeah
  398. # [02:55] <Hixie> and lets ui designers focus on the parts they care about
  399. # [02:55] <othermaciej> also not clear on the diff between LOADING and BUFFERING
  400. # [02:55] <Hixie> oh LOADING would be the new state that isn't in your system, and BUFFERING is the four middle states
  401. # [02:55] <othermaciej> well, all the state changes have an individual event, so that's not too hard to do, except for syncing up to an already operating video
  402. # [02:55] <Hixie> LOADING is "we've begun, but don't have any useful data yet so the attributes like height and width aren't useful yet"
  403. # [02:56] <othermaciej> UNDERSTANDABLE vs. PRESENTABLE distinction seems to be lost in your system
  404. # [02:56] <Hixie> yeah, that's the one that i wasn't sure we should expose
  405. # [02:56] <othermaciej> (both would be BUFFERING with canPlay and canPlayThroughToTheEnd true)
  406. # [02:56] <Hixie> false
  407. # [02:56] <Hixie> but yes
  408. # [02:56] <othermaciej> er, yeah, false
  409. # [02:56] <othermaciej> it is a useful distinction
  410. # [02:57] <Hixie> it's useful for the software doing the actual playback, but what ui distinction would you make?
  411. # [02:57] <othermaciej> at UNDERSTANDABLE, you know width, height, and possibly metadata like title / artist, track list, etc (future extension)
  412. # [02:57] <othermaciej> at PRESENTABLE, you can remove placeholder UI over content area and show the first frame
  413. # [02:57] * Quits: bzed (n=bzed@dslb-084-059-097-010.pools.arcor-ip.net) ("Leaving")
  414. # [02:57] <Hixie> oh, hm, interesting
  415. # [02:57] <ericcarlson> the first PRESENTABLE state is important as it is the first time you know there is something to display
  416. # [02:57] <Hixie> so yeah you'd want that transition at the first--
  417. # [02:57] <Hixie> right
  418. # [02:57] <Hixie> what you said
  419. # [02:59] <ericcarlson> [cooking dinner for the kids, having a hard time keeping up on the discussion]
  420. # [02:59] <Hixie> ericcarlson: i'll make sure whatever we come up with you can review carefully at your leisure
  421. # [03:00] <Hixie> so really we want the readyStates to be EMPTY ERROR LOADING [some state meaning that metadata is in but not video or audio data] BUFFERING LOADED
  422. # [03:00] <ericcarlson> thx
  423. # [03:00] <Hixie> i'm at a loss for a good name though
  424. # [03:01] <ericcarlson> LOADING isn't a great name since it is technically "loading" as long as data is being downloaded
  425. # [03:01] <othermaciej> I'm not sure collapsing PRESENTABLE / PLAYABLE / PLAYTHROUGHOK into one state plus two bools is very helpful
  426. # [03:01] <othermaciej> (the bools would have only one valid setting in every other state)
  427. # [03:02] <ericcarlson> I agree, it seems much cleaner to check the state instead of the state and a bool (or two)
  428. # [03:02] <Hixie> well you're already going to have to be checking bools left right and center
  429. # [03:02] * Joins: yod (n=ot@dhcp-246-8.mag.keio.ac.jp)
  430. # [03:03] <othermaciej> being >= PLAYABLE is a very basic thing for UI, more so than BUFFERING
  431. # [03:03] <othermaciej> since it tells you whether to enable the play button
  432. # [03:03] <othermaciej> or dim it
  433. # [03:04] <othermaciej> hard to imagine a polished JS controller not caring
  434. # [03:04] <ericcarlson> and what does BUFFERING mean when you load on demand?
  435. # [03:04] <Hixie> so you'd want the play/pause button to change state as you're seeking?
  436. # [03:04] <Hixie> i don't think i've ever seen that
  437. # [03:04] <Hixie> but you could do it by just watching canPlay
  438. # [03:04] <Hixie> which is imho easier than watching a state
  439. # [03:05] <Hixie> the other thing is that right now there's no state for when you're actually seeking
  440. # [03:05] <Hixie> i.e. when you're "moving the play head" as it were
  441. # [03:05] <ericcarlson> it is instantaneous if the media is buffered
  442. # [03:06] <Hixie> no it's not
  443. # [03:06] <ericcarlson> no?
  444. # [03:07] <Hixie> one of the pieces of feedback i got from the youtube/google video guys is that they were really annoyed that most video apis assumed seek()s were instantaneous (even when they had all the data), because in practice it isn't instantaneous
  445. # [03:07] <Hixie> it's quick, for sure
  446. # [03:07] <Hixie> but you still have to go and find the last complete frame and then decode all the way to the new frame position before you can play
  447. # [03:08] <ericcarlson> true
  448. # [03:08] <Hixie> i've seen videos where that can take seconds to do
  449. # [03:08] <Hixie> (especially WMA or whatever the windows one is called, for some reason -- sometimes it takes ages to seek)
  450. # [03:08] <ericcarlson> yes, MPEG can be the same
  451. # [03:09] <Hixie> i have to go now
  452. # [03:09] <Hixie> but i'll keep looking at this
  453. # [03:09] <Hixie> ttyal
  454. # [03:22] * Quits: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
  455. # [03:23] * Joins: dolphinling (n=chatzill@rbpool4-37.shoreham.net)
  456. # [03:24] * Quits: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
  457. # [03:31] <Lachy_> does anyone know of a good article or thread discussing why src on every element is a bad idea, that I can link to in my reply to the latest request on public-html?
  458. # [03:31] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-e854230ef928e8c5) ("The computer fell asleep")
  459. # [03:32] <othermaciej> I posted something about global attributes in general on whatwg recently
  460. # [03:32] <othermaciej> short version:
  461. # [03:32] <othermaciej> - annoying to implement
  462. # [03:32] <othermaciej> - bad semanticly
  463. # [03:33] <othermaciej> - lack of img-specific API / attributes, presence of non-image API
  464. # [03:33] <othermaciej> - results on active elements like <input type="checkbox"> are bizzare
  465. # [03:34] <othermaciej> - conflates presentational technique of image replacement with semantically meaningful content images
  466. # [03:34] <othermaciej> (for this case)
  467. # [03:36] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
  468. # [03:36] * mw22____________ is now known as mw22
  469. # [03:37] <Lachy_> I can't find it in the archives, but we should turn that in to a blog entry
  470. # [03:38] <othermaciej> I might have been talking about global href, not global src in this case
  471. # [03:38] <othermaciej> don't remember
  472. # [03:38] <Lachy_> yeah, I saw threads about href
  473. # [03:39] <Lachy_> and Anne has just published one about href on his blog
  474. # [03:44] * Quits: Philip` (n=excors@zaynar.demon.co.uk)
  475. # [03:44] * Quits: othermaciej (i=mjs@nat/apple/x-4f273ff3b1cf5253)
  476. # [03:58] * Joins: h3h (n=w3rd@cpe-70-95-237-98.san.res.rr.com)
  477. # [03:59] * weinig|away is now known as weingi
  478. # [03:59] * weingi is now known as weinig
  479. # [04:30] * Quits: santek (n=st@ut-w-7bd6.mxs.adsl.euronet.nl)
  480. # [05:07] <Lachy_> http://www.w3.org/QA/2007/03/validation_to_conformance.html is interesting.
  481. # [05:07] * Joins: tylerr_ (n=tylerr@c-24-16-148-66.hsd1.mn.comcast.net)
  482. # [05:08] * Quits: tylerr (n=tylerr@outbound.wa1.ascentium.com) (Nick collision from services.)
  483. # [05:08] * Quits: tylerr_ (n=tylerr@c-24-16-148-66.hsd1.mn.comcast.net) (Remote closed the connection)
  484. # [05:08] * Joins: tylerr (n=tylerr@c-24-16-148-66.hsd1.mn.comcast.net)
  485. # [05:27] * Quits: yod (n=ot@dhcp-246-8.mag.keio.ac.jp) ("This computer has gone to sleep")
  486. # [05:28] * Joins: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
  487. # [05:33] * moeffju is now known as moeffju[ZzZz]
  488. # [05:36] <mpt> "Some HTML is OK" -- W3C
  489. # [05:36] <mpt> (gratuitously out-of-context quote, but it was too good to resist)
  490. # [05:37] <Lachy_> :-)
  491. # [05:39] * Quits: marcosc (n=chatzill@131.181.148.226) ("...and I'm gone.")
  492. # [05:53] * Joins: yod (n=ot@dhcp-246-8.mag.keio.ac.jp)
  493. # [06:18] * Joins: aroben (i=adamrobe@nat/apple/x-33bcaf315bf6309b)
  494. # [06:25] * Quits: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  495. # [06:30] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-842663de8fcf5732)
  496. # [06:35] * Joins: MikeSmith (i=mike@tea18.w3.mag.keio.ac.jp)
  497. # [06:42] * Quits: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
  498. # [07:10] * Joins: othermaciej (n=mjs@user-64-9-233-14.googlewifi.com)
  499. # [07:15] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-842663de8fcf5732) ("The computer fell asleep")
  500. # [07:38] * Quits: othermaciej (n=mjs@user-64-9-233-14.googlewifi.com) (Read error: 113 (No route to host))
  501. # [08:00] * Joins: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  502. # [08:04] * Quits: tylerr (n=tylerr@c-24-16-148-66.hsd1.mn.comcast.net) ("Leaving")
  503. # [08:04] * Joins: tylerr (n=tylerr@outbound.wa1.ascentium.com)
  504. # [08:07] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  505. # [08:11] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
  506. # [08:19] * Quits: mw22 (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 60 (Operation timed out))
  507. # [08:32] * Quits: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  508. # [08:45] * Joins: marcosc (n=chatzill@131.181.148.226)
  509. # [08:58] * Quits: h3h (n=w3rd@cpe-70-95-237-98.san.res.rr.com)
  510. # [09:23] * Joins: met_ (n=Martin@b14-4.vscht.cz)
  511. # [09:33] * Quits: yod (n=ot@dhcp-246-8.mag.keio.ac.jp) ("Leaving")
  512. # [09:34] * Quits: Lachy_ (n=chatzill@58.105.240.232) ("Chatzilla 0.9.77 [Firefox 2.0.0.3/2007030919]")
  513. # [09:38] * Quits: karlUshi (n=karl@133.27.246.23) ("Where dwelt Ymir, or wherein did he find sustenance?")
  514. # [09:51] * Quits: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
  515. # [09:53] * othermaciej is now known as om_sleep
  516. # [09:56] * moeffju[ZzZz] is now known as moeffju
  517. # [10:02] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
  518. # [10:02] * mw22____________ is now known as mw22
  519. # [10:10] * Joins: hendry (n=hendry@91.84.53.136)
  520. # [10:21] * Joins: ROBOd (n=robod@86.34.246.154)
  521. # [11:02] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
  522. # [11:08] * Quits: ROBOd (n=robod@86.34.246.154) ("http://www.robodesign.ro")
  523. # [11:19] * Quits: mw22 (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
  524. # [11:23] * Joins: ROBOd (n=robod@86.34.246.154)
  525. # [11:38] * Joins: ravenn (n=ravenn@203-214-133-148.perm.iinet.net.au)
  526. # [11:55] * Joins: icaaq_ (n=icaaaq@226.228.13.217.in-addr.dgcsystems.net)
  527. # [12:04] * Quits: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
  528. # [12:06] <annevk> Hixie, currentLoop should be unsigned long, not float
  529. # [12:07] * Joins: KevinMarks (n=KevinMar@1433ahost8.starwoodbroadband.com)
  530. # [12:17] <Dashiva> Is the leap from UNDERSTANDABLE to PRESENTABLE really going to be noticable? Wouldn't it basically consist of loading a single first frame, since UNDERSTANDABLE takes care of all the metadata?
  531. # [12:17] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
  532. # [12:17] * mw22____________ is now known as mw22
  533. # [12:17] * Quits: KevinMarks (n=KevinMar@1433ahost8.starwoodbroadband.com) ("The computer fell asleep")
  534. # [12:24] <annevk> not just loading the frame but also decoding it
  535. # [12:26] <Dashiva> For something going tens of frames per second, that's not a very long time
  536. # [12:32] <annevk> I wonder if I should rename UNINITIALIZED to EMPTY as well for XMLHttpRequest...
  537. # [12:35] <Dashiva> I wouldn't, since that's a very specific state in xhr
  538. # [12:35] <Dashiva> You have to call open before anything else, so it really is uninitialized
  539. # [12:36] <annevk> it's exactly the same as EMPTY for <video>, actually
  540. # [12:39] <annevk> what makes you think it's different?
  541. # [12:50] * Joins: bzed (n=bzed@dslb-084-059-102-211.pools.arcor-ip.net)
  542. # [12:50] <Dashiva> The loading states work on how much data has been loaded and understood, so with detaching of video streams and cached data you might go from EMPTY to e.g. PLAYTHROUGHPOSIBLE in one jump
  543. # [12:54] <annevk> are you sure the intermediate events wouldn't dispatch?
  544. # [12:55] <annevk> anyway, EMPTY is much easier to type than UNINITIALIZED...
  545. # [12:55] <annevk> that you have to invoke load() is just how the API works, load() is always invoked for <video> as well currently
  546. # [12:55] * Quits: aroben (i=adamrobe@nat/apple/x-33bcaf315bf6309b)
  547. # [13:01] * Joins: Philip` (n=excors@zaynar.demon.co.uk)
  548. # [13:02] <annevk> http://programming.reddit.com/info/1d855/comments
  549. # [13:02] <annevk> (comments on href= on every element)
  550. # [13:02] <annevk> (not very interesting)
  551. # [13:02] * Parts: ravenn (n=ravenn@203-214-133-148.perm.iinet.net.au)
  552. # [13:13] <hsivonen> annevk: if anything, we should congratulate the XHTML propagandists for being very effective at shifting the Overton Window to their favor
  553. # [13:15] <hsivonen> though the WHATWG has clearly shifted the window the other way among key people (the kind who use del.icio.us :-), so it can be expected that the Digg/Reddit masses follow eventually
  554. # [13:16] <annevk> it seems Reddit has more sensible people than Digg
  555. # [13:16] <Dashiva> I really hope it says HTML5 and doesn't become common to write (X)HTML5. I see enough Xes as it is
  556. # [13:17] <annevk> XHTML5 is just the XML serialization of HTML5
  557. # [13:17] <annevk> HTML5 is both the language and the HTML serialization which may be a bit confusing...
  558. # [13:17] <hsivonen> annevk: yes, Reddit people have more clue than Digg users
  559. # [13:28] * Parts: icaaq_ (n=icaaaq@226.228.13.217.in-addr.dgcsystems.net)
  560. # [13:51] * Joins: yod (n=ot@softbank221018155222.bbtec.net)
  561. # [14:00] * Joins: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  562. # [14:01] * Joins: ravenn (n=ravenn@203-214-133-148.perm.iinet.net.au)
  563. # [14:05] * Joins: santek (n=st@ut-w-7bd6.mxs.adsl.euronet.nl)
  564. # [14:10] * Joins: karlUshi (n=karl@softbank221018155222.bbtec.net)
  565. # [14:10] <karlUshi> meuh
  566. # [14:11] <karlUshi> [meuh meuh meuuuuh meuuuuuuuuh]
  567. # [14:12] * Quits: karlUshi (n=karl@softbank221018155222.bbtec.net) (Client Quit)
  568. # [14:12] <annevk> karlcow is indeed an appropriate nickname for him
  569. # [14:23] * Quits: hendry (n=hendry@91.84.53.136) ("leaving")
  570. # [14:35] <annevk> Philip`, are you using -o-2d-game to get the pixel values in Opera or so?
  571. # [14:42] <Philip`> Yep, it's the opera-2dgame getPixel
  572. # [14:43] <Philip`> (though it always tries getImageData first, if it exists)
  573. # [14:44] <annevk> k
  574. # [14:45] <annevk> your testcases are quite nice btw
  575. # [14:46] <annevk> for getImageData(), do you take into account that height/width doesn't necessarily reflect the height/width of the canvas?
  576. # [14:49] * Quits: primal1 (n=primal1@pool-72-87-242-30.lsanca.fios.verizon.net) (adams.freenode.net irc.freenode.net)
  577. # [14:50] * Joins: primal1 (n=primal1@pool-72-87-242-30.lsanca.fios.verizon.net)
  578. # [14:53] <Philip`> I don't - in most cases it shouldn't matter because I'm only testing a single pixel at a time and ignoring everything but the first four array elements (so it'll work as long as getImageData doesn't return zero pixel)
  579. # [14:54] <Philip`> In a couple of cases it does matter because I'm comparing the whole image to the expected one, but I expect that's very fragile anyway (since it depends on the antialiasing and whatever) so I should probably stop doing that
  580. # [14:55] <Philip`> *zero pixels
  581. # [15:00] * Parts: ravenn (n=ravenn@203-214-133-148.perm.iinet.net.au)
  582. # [15:15] * Joins: briansuda (n=briansud@bokd117.rhi.hi.is)
  583. # [15:21] <annevk> Hixie, the <source> IDL interface is wrong
  584. # [16:05] * Quits: briansuda (n=briansud@bokd117.rhi.hi.is)
  585. # [16:11] * Joins: briansuda (n=briansud@bokd117.rhi.hi.is)
  586. # [16:29] * Joins: zcorpan (n=zcorpan@esk-ba-1-nomad.net.mdh.se)
  587. # [16:30] <zcorpan> ponder. perhaps stating that rel=nofollow is used on all links (on the register page) will prevent the manual spam too.
  588. # [16:31] <zcorpan> (on the forum)
  589. # [16:34] * Quits: briansuda (n=briansud@bokd117.rhi.hi.is)
  590. # [16:41] <Philip`> Hmm, I used to have a spam problem (averaging several spam posts per day for a month or so) on a forum (several years old, ~1600 members, running IPB), but solved it entirely by adding a "I am a human, not a spam-bot" checkbox on the registration page and have had no problems since then
  591. # [16:41] <Philip`> so I've always assumed that manual spam is uneconomical and not a problem; but maybe I'm just lucky to have avoided being hit by it
  592. # [16:42] <annevk> it's a problem
  593. # [16:42] * Quits: mpt (n=mpt@121-72-132-31.dsl.telstraclear.net) ("brb")
  594. # [16:43] <annevk> recently some people managed to get passed by well-formedness required + forced preview check
  595. # [16:43] <annevk> (I also require at least one block level element for comments)
  596. # [16:44] <hsivonen> Philip`: apparently, low-skilled English-literate labor is available at a very low cost, so implementing an MTurk-like arrangement for manual spamming seems to be feasible :-(
  597. # [16:46] <Lachy> luckily, for now at least, manual spamming isn't quite as bad a spam bots cause bots are able to send a significant amount more than manual
  598. # [16:46] * annevk isn't sure that DOMContentLoaded solves issues
  599. # [16:46] * annevk notes http://www.w3.org/2006/webapi/track/issues/36
  600. # [16:47] <Lachy> DOMContentLoaded is roughly equivalent to <script defer>
  601. # [16:47] <annevk> do all scripts need to be loaded first?
  602. # [16:47] <annevk> how would that work?
  603. # [16:48] <Lachy> all scripts get loaded and executed during parsing anyway
  604. # [16:48] <annevk> ah right
  605. # [16:48] <annevk> but still
  606. # [16:48] <annevk> so maybe the moment document.close() is invoked
  607. # [16:48] <annevk> btw, for XHTML that may not be the case
  608. # [16:49] <Lachy> I wonder if DOMContentLoaded fires immediately after the root element closes, or whether it waits till all content afterwards (like comments are whitespace) are parsed too
  609. # [16:49] * Quits: yod (n=ot@softbank221018155222.bbtec.net) ("Leaving")
  610. # [16:49] <Lachy> s/are/and/
  611. # [16:50] <annevk> for HTML it has to wait
  612. # [16:50] <Lachy> yeah
  613. # [16:50] <Lachy> for XHTML?
  614. # [16:50] <Lachy> I suppose, since commetns are added to teh DOM, it would have to wait too
  615. # [16:50] <annevk> dunno, the script containing the listener might not even be loaded...
  616. # [16:50] <Lachy> why wouldn't it be loaded?
  617. # [16:51] * Quits: met_ (n=Martin@b14-4.vscht.cz) ("Chemists never die, they just stop reacting.")
  618. # [16:51] <annevk> why would parsing XML be delayed by script loading?
  619. # [16:51] <Lachy> hmm. I don't know, I guess since document.write() can't work, scripts can be loaded async
  620. # [16:52] <annevk> in XHTML you also have <svg:script> and <xbl:script> etc.
  621. # [16:52] * Joins: h3h (n=h3h@66-162-32-234.static.twtelecom.net)
  622. # [16:52] <annevk> which makes this more painful as at least SVG defines a different processing model iirc
  623. # [16:53] <Lachy> I assume <xbl:script> has a sensible processing model
  624. # [16:53] <Lachy> but I suppose svg is still a potential problem
  625. # [16:56] <annevk> SVG is a problem nonetheless :)
  626. # [16:57] * Quits: zcorpan (n=zcorpan@esk-ba-1-nomad.net.mdh.se) (Read error: 110 (Connection timed out))
  627. # [17:01] <annevk> http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=d03d5ef0-3453-4458-8c13-c1c94c0dff1b
  628. # [17:06] <hsivonen> GUIDs make URIs uncool
  629. # [17:07] <annevk> no shit
  630. # [17:07] <Lachy> hsivonen, yeah. using the milliseconds since 1970-01-01 is much more sensible! :-)
  631. # [17:08] <hsivonen> Lachy: I've wondered about the rationale behind that design decision. :-)
  632. # [17:09] <Lachy> yeah, me too. you'll have to ask Hixie
  633. # [17:10] <Lachy> can someone test if http://lachy.id.au/ is responding? I can't get it to load
  634. # [17:10] * Joins: mpt (n=mpt@121-72-130-40.dsl.telstraclear.net)
  635. # [17:13] <hsivonen> Lachy: works for me
  636. # [17:13] <Lachy> yeah, it's come back up for me now too
  637. # [17:14] <Lachy> thanks
  638. # [17:22] <virtuelv> re http://lachy.id.au/log/2007/03/problems-with-xhtml - hehe
  639. # [17:23] <Lachy> there was a followup post too! http://lists.w3.org/Archives/Public/www-html-editor/2007JanMar/0053.html
  640. # [17:27] <h3h> wow
  641. # [17:27] * tylerr needs to delegate some tasks so he has time to work on WHATWG articles.
  642. # [17:27] <Lachy> what kind of tasks?
  643. # [17:29] <tylerr> Page builds, bug fixes, link scanning, etc.
  644. # [17:29] <tylerr> All in a tool that doesn't have S&R. :-(
  645. # [17:30] <Lachy> oh, you mean tasks at your work. I thought you meant getting somewhere here to help you out
  646. # [17:30] <tylerr> Oh hehe, well, that will come in time. :-)
  647. # [17:30] <Lachy> ok boss!
  648. # [17:30] <tylerr> I need to plough through all my *real* work first.
  649. # [17:31] <tylerr> Maybe that should be "real". ;-)
  650. # [17:34] * Joins: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com)
  651. # [17:37] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  652. # [17:49] * Joins: CharlvN (n=charlvn@196.21.192.15)
  653. # [17:49] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  654. # [17:49] * om_sleep is now known as othermaciej
  655. # [17:50] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  656. # [17:50] * CharlvN is now known as Charl
  657. # [18:06] * Joins: annevk2 (n=annevk@5352CE6F.cable.casema.nl)
  658. # [18:06] * Quits: annevk (n=annevk@86.90.70.28) (Read error: 110 (Connection timed out))
  659. # [18:13] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-1a70f4bf5080eb9b)
  660. # [18:34] * Joins: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
  661. # [18:35] * Quits: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net) (Remote closed the connection)
  662. # [18:35] * Joins: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
  663. # [18:40] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  664. # [18:47] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
  665. # [19:32] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-1a70f4bf5080eb9b) ("The computer fell asleep")
  666. # [19:35] * Quits: Charl (n=charlvn@196.21.192.15)
  667. # [19:40] * Joins: dbaron (n=dbaron@corp-242.mountainview.mozilla.com)
  668. # [19:49] * Joins: met_ (n=Hassman@r5bx220.net.upc.cz)
  669. # [19:50] * Joins: tantek (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net)
  670. # [20:06] * Joins: othermaciej (i=mjs@nat/apple/x-4e9dfae5cf641e1b)
  671. # [20:08] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-5dce6a5d171ceba0)
  672. # [20:08] <annevk2> http://blog.outer-court.com/archive/2007-03-29-n69.html
  673. # [20:10] <annevk2> not very interesting though, except that he doesn't really seem to grasp it
  674. # [20:10] <annevk2> "we need better marketing"
  675. # [20:18] * annevk2 is now known as annevk
  676. # [20:47] * Joins: aroben (i=adamrobe@nat/apple/x-15f9ac1621e9ce5a)
  677. # [20:54] <gsnedders> annevk: what was that blog you commented on a couple days ago about HTML5, referencing the about page? ever get a reply?
  678. # [21:00] * Parts: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com)
  679. # [21:02] * Joins: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com)
  680. # [21:06] * Quits: annevk (n=annevk@5352CE6F.cable.casema.nl) (Read error: 110 (Connection timed out))
  681. # [21:09] * Quits: tantek (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
  682. # [21:09] * Quits: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
  683. # [21:10] * Joins: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
  684. # [21:10] * othermaciej is now known as om_lunch
  685. # [21:17] * Quits: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca) (Read error: 104 (Connection reset by peer))
  686. # [21:18] * Joins: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
  687. # [21:19] * Joins: tantek (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net)
  688. # [21:32] * Quits: KevinMarks (i=KevinMar@pdpc/supporter/active/kevinmarks) ("The computer fell asleep")
  689. # [22:19] * Quits: ROBOd (n=robod@86.34.246.154) ("http://www.robodesign.ro")
  690. # [22:37] * om_lunch is now known as othermaciej
  691. # [22:42] <othermaciej> I hate arguing with X People
  692. # [22:49] * Joins: JeromeB (n=jeromebo@ip5653a55a.direct-adsl.nl)
  693. # [22:52] <Hixie> where are you arguing with XPeople?
  694. # [22:55] * met_ thinks it probably isn't on http://www.xpeople.org/
  695. # [22:56] <othermaciej> public-html
  696. # [22:56] <othermaciej> I don't even want to read all the emails about how great hidden metadata is
  697. # [22:56] <othermaciej> especially the long rambling one that is all lowercase except instances of html tag names
  698. # [22:57] <Hixie> heh
  699. # [22:57] <Hixie> afk
  700. # [22:59] <gsnedders> so we can then normalise them in our heads to lowercase? :P
  701. # [22:59] <Dashiva> Has there been a good explanation that visible metadata usually = correct and updated metadata yet?
  702. # [23:01] <othermaciej> there have been explanations
  703. # [23:01] <othermaciej> I don't know if they would count as good
  704. # [23:09] <Lachy> good morning
  705. # [23:15] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-e84aebbbadba0a10)
  706. # [23:20] <othermaciej> hey KevinMarks
  707. # [23:22] <othermaciej> KevinMarks: check out the "Visible Metadata" threads here: http://lists.w3.org/Archives/Public/public-html/2007JanMar/thread.html
  708. # [23:35] <KevinMarks> oh boy
  709. # [23:36] <KevinMarks> I'm in Quinn's talk about embedding magnets in her body right now
  710. # [23:36] <othermaciej> !
  711. # [23:47] * Joins: aroben_ (i=adamrobe@nat/apple/x-c1237c28e264d288)
  712. # [23:49] * Quits: aroben (i=adamrobe@nat/apple/x-15f9ac1621e9ce5a) (Nick collision from services.)
  713. # [23:49] * aroben_ is now known as aroben
  714. # [23:49] * Quits: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
  715. # [23:53] * moeffju is now known as moeffju[ZzZz]
  716. # [23:55] * Joins: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
  717. # Session Close: Fri Mar 30 00:00:00 2007

The end :)