Options:
- # Session Start: Thu Mar 29 00:00:00 2007
- # Session Ident: #whatwg
- # [00:00] <bewest> so "semantic web killer app" is kind of an oxymoron
- # [00:00] <tylerr> Hixie: http://www-128.ibm.com/developerworks/xml/library/x-futhtml2.html?ca=dgr-lnxw87XHTML2
- # [00:00] <tylerr> Though it's from Jan 06.
- # [00:00] <bewest> tylerr: http://www-128.ibm.com/developerworks/xml/library/x-xml2007predictions.html
- # [00:00] <tylerr> Ah I didn't see that one.
- # [00:00] <tylerr> Lovely!
- # [00:00] <bewest> meh... it's kind of lame
- # [00:01] <tylerr> Ah well then I'll read it with a scowl on my face. ;-)
- # [00:01] <bewest> not very user-centric
- # [00:02] * tylerr nods
- # [00:03] * Joins: chin1 (n=daquino@c-68-36-237-152.hsd1.nj.comcast.net)
- # [00:06] <chin1> so ar eyou the guys who are controlling the w3c draft for html 5.0 ?
- # [00:06] <kingryan> chin1: for some values of "control", yes
- # [00:07] <bewest> we control the whatwg draft of html5
- # [00:07] <bewest> the html-wg controls the w3c draft
- # [00:10] <chin1> hm weird
- # [00:11] * kingryan just realized which room he's in :D
- # [00:11] <chin1> why do this ?
- # [00:11] <bewest> we don't know
- # [00:11] <Hixie> well, there wasn't a w3c draft when we started, and w3c wouldn't do it
- # [00:11] <kingryan> it's fun!
- # [00:11] <Hixie> now they are going to do it, and so we will probably just work with them
- # [00:12] <bewest> or they will work with us
- # [00:12] <bewest> or something
- # [00:12] <bewest> who knows
- # [00:12] <bewest> or they'll continue talking about spreadsheets and forums
- # [00:12] <chin1> well i've got a draft for you
- # [00:12] <chin1> hey is there a chat for the html-wg too ?
- # [00:12] <bewest> yes
- # [00:15] <Hixie> irc.w3.org port 6665 channel #html-wg
- # [00:15] <bewest> fwiw the w3c doesn't have a draft of anything yet
- # [00:15] <chin1> lol oh #htmlwg i gues chanserv is the only one who cares
- # [00:16] <chin1> ok who should i rant to first you guys or them ?
- # [00:17] <othermaciej> well, if you have a big dicussion topic, email might be the best starting point
- # [00:17] <chin1> you mean mailing list ?
- # [00:18] <othermaciej> yes
- # [00:19] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-7d96fac31051bcab)
- # [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
- # [00:19] <othermaciej> hello KevinMarks
- # [00:20] * Quits: met__ (n=Hassman@r5bx220.net.upc.cz) ("Chemists never die, they just stop reacting.")
- # [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
- # [00:23] <othermaciej> the Web API working group has a spec for something even more general than that
- # [00:23] <othermaciej> getElementsBySelector
- # [00:23] <othermaciej> which uses a CSS selector
- # [00:23] <othermaciej> though I think I will propose to rename it to cssQuery
- # [00:24] <bewest> <3 getElementsBySelector
- # [00:25] <bewest> dean edwards has a really nice version that optimizes it based on the browser, as well
- # [00:26] <othermaciej> yes, and having it native in some browsers will hopefully allow even better performance
- # [00:27] <othermaciej> though in that case browsers will have to make sure their selectors implementation is at least as fast as their XPath
- # [00:27] <Hixie> it'd better be
- # [00:28] <chin1> yea thats something like the jQeury approach
- # [00:28] <chin1> and thats a css type selector
- # [00:28] <Hixie> since the selectors one is run much more frequently than the xpath one...
- # [00:28] <chin1> well mine is a js type selector that is based on properties
- # [00:28] <Hixie> (like, every time you move the mouse)
- # [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
- # [00:29] <chin1> i can defitnetly see were a css selector is a huge powerfull beast
- # [00:29] <chin1> but its based on what css selectors can do ... why limit our selves ?
- # [00:31] <chin1> var el_array = gebi( { tagName: 'DIV', hasChildNodes: true, className: /car/i }, startNode, limit, depth )
- # [00:31] <othermaciej> CSS selectors can select based on attributes
- # [00:31] <othermaciej> though not an arbitrary regexp or function test
- # [00:31] <chin1> sorry i should of used geba not gebi as short for getElementsByAttributes
- # [00:31] * Quits: karlUshi (n=karl@124-144-94-185.rev.home.ne.jp) ("This computer has gone to sleep")
- # [00:31] <KevinMarks> does it do ~= ?
- # [00:32] <chin1> yea well in csss you can do things like type="text" sure ... but what about hasChildNodes or any other element property ?
- # [00:32] <chin1> whats ~= ?
- # [00:32] <chin1> isn't ~= a perl like syntax for regex test ?
- # [00:33] <othermaciej> ~= in selectors is attribute token match
- # [00:33] <othermaciej> http://www.w3.org/TR/css3-selectors/#attribute-selectors
- # [00:33] <chin1> oh yea its a css feature not supported yet i haven't read into them much
- # [00:33] <chin1> let me read up on it
- # [00:34] <othermaciej> there is exact, prefix and token match
- # [00:34] <othermaciej> for attribtues
- # [00:34] <othermaciej> no regexp match
- # [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 ?
- # [00:36] <chin1> so exact would be like class="example" and you search for "example" and prefix would be like "ex" correct ?
- # [00:36] <chin1> i dont see what a token is though
- # [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
- # [00:36] <chin1> i mean {className: /^ex/i} is a prefix
- # [00:37] <chin1> {className: "exact"}
- # [00:37] <chin1> {className: function(){/* whatever you want */}}
- # [00:37] <chin1> UA ?
- # [00:37] <othermaciej> div[class|=example] will match class="example-stuff" but not class="ex"
- # [00:38] <chin1> {className: function( value ){ if( value.indexOf("blah") != -1 }}
- # [00:38] <chin1> thats a quicker hack than using regex
- # [00:38] <othermaciej> div[class~=something] will match class="foo something bar baz"
- # [00:38] <othermaciej> for class specifically though, that is just div.something
- # [00:39] <othermaciej> the function thing is unlikely to be quicker to execute
- # [00:39] <othermaciej> anyway
- # [00:39] <othermaciej> I don't think this is the right forum
- # [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
- # [00:39] <chin1> your saying that the overhead of passing a function is slower than using a regex test ?
- # [00:39] <othermaciej> send mail to public-webapi@w3.org
- # [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
- # [00:40] <chin1> the idea too is that if this was natively supported it would be much faster
- # [00:41] <chin1> so that sthe email i would find searching on the w3.org ?
- # [00:42] <othermaciej> yes
- # [00:43] <chin1> thanks
- # [00:43] <chin1> well wath do you guys think ?
- # [00:44] <othermaciej> personally I think Selectors API is a better design
- # [00:44] <othermaciej> feel free to google for that
- # [00:51] <chin1> yea i think its great too
- # [00:54] <bewest> what regex?
- # [01:00] <chin1> the css selector thing
- # [01:01] * Quits: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
- # [01:03] * Quits: KevinMarks (i=KevinMar@pdpc/supporter/active/kevinmarks) ("The computer fell asleep")
- # [01:15] <chin1> you guys got an email i can send to along with public-webapi@w3.org at the same time ?
- # [01:20] * Quits: hendry (n=hendry@91.84.53.136) ("sleep")
- # [01:20] <Hixie> hmm
- # [01:20] <Hixie> how to do the ui thing
- # [01:20] <Hixie> hmmmmmmm
- # [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
- # [01:21] <Hixie> maybe an event handler?
- # [01:21] <Hixie> hmmm
- # [01:22] <Dashiva> What happened to the attribute?
- # [01:22] <Hixie> the attribute to do what?
- # [01:22] <Dashiva> To specify if the ui should appear or not
- # [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
- # [01:23] * Joins: Lachy_ (n=chatzill@58.105.240.232)
- # [01:23] <Hixie> so you want the ui to turn _off_ from script
- # [01:23] <Hixie> and be on by default otherwise
- # [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
- # [01:23] * Parts: chin1 (n=daquino@c-68-36-237-152.hsd1.nj.comcast.net)
- # [01:24] <Hixie> tough one
- # [01:24] <Dashiva> Ah, you mean so the ui doesn't hide for JS disabled?
- # [01:24] <Hixie> yeah
- # [01:24] <Dashiva> <noscript>ui="false"<noscript> :)
- # [01:24] <Lachy_> hi
- # [01:25] <tylerr> Hi Lachy_.
- # [01:26] <tylerr> I could have really used the <dialog> element today.
- # [01:26] * Quits: gavin (n=gavin@CPE001346f5db49-CM0018c0db9a8a.cpe.net.cable.rogers.com) (Read error: 104 (Connection reset by peer))
- # [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
- # [01:26] <tylerr> Had to throw a transcript onto a page for a client.
- # [01:26] * Joins: gavins (n=gavin@firefox/developer/gavin)
- # [01:26] <Lachy_> Hixie, if script is disabled or unsupported, the UI should show by default (perhaps depending on user prefs).
- # [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"
- # [01:27] <Lachy_> it's when script is enabled, but no script is provided that's harder
- # [01:27] <Hixie> Dashiva: yeah
- # [01:27] <Hixie> Dashiva: but it should work without flicker
- # [01:27] <Hixie> which is the hard part
- # [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
- # [01:28] <Dashiva> What if you said "Default UI should not be shown before domcontentloaded is fired" or somesuch?
- # [01:28] <Hixie> Dashiva: then you get flicker the other way around
- # [01:28] <Hixie> othermaciej: we could...
- # [01:28] <othermaciej> I mean, if we are worried about the special case of not having script, then just trigger off that
- # [01:28] <othermaciej> but I don't think it's a terribly important case personally
- # [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
- # [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
- # [01:29] <Dashiva> Flicker would be appearing and disappearing again
- # [01:29] <Hixie> othermaciej: it's also in the case where the ui js didn't load for some reason
- # [01:30] <Hixie> othermaciej: but yeah, maybe we shouldn't support it at all
- # [01:30] <Hixie> Dashiva: ok, bouncing, whatever you want to call it :-)
- # [01:30] <Dashiva> If you make it fade in, it might even look cool
- # [01:30] <Dashiva> "cool"
- # [01:30] <Hixie> heh
- # [01:31] <Hixie> Lachy_: it's not the only way
- # [01:31] <Hixie> Lachy_: we could synchronously fire an event handler
- # [01:31] <Hixie> <video ondecidewhethertohaveui="return false">
- # [01:31] <Hixie> which fires when the element is inserted
- # [01:31] <Hixie> or rather, onshowui=""
- # [01:32] <Lachy_> that still requires an event attribute
- # [01:32] <Hixie> which you can cancel
- # [01:32] <Hixie> right, an attribute of some kind, certainly
- # [01:32] <Hixie> i thought you meant a boolean one, sorry
- # [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
- # [01:33] <Hixie> yeah, e.g.
- # [01:33] <Hixie> i'm sort of liking this onshowui="false" solution
- # [01:34] <Hixie> it looks declarative, solves the no-js situation, and allows advanced decision making without flicker or bouncing
- # [01:34] * Joins: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
- # [01:34] <Lachy_> I just don't see the benefit in controlling it via an event handler attribute as opposed to a boolean
- # [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)
- # [01:35] <Lachy_> ok
- # [01:35] <Lachy_> but wouldn't it have to be onshowui="return false;" ?
- # [01:36] <Hixie> as opposed to?
- # [01:36] <Lachy_> to what you said above
- # [01:36] <Lachy_> onshowui="false" would be a JS error
- # [01:36] <Lachy_> wouldn't it?
- # [01:36] <Hixie> return is implied on the last statement in JS bodies
- # [01:36] <Hixie> and the semicolon is optional at end of lines in JS
- # [01:36] <Hixie> so "return false;" and "false" are exactly equivalent in event handlers
- # [01:36] <Hixie> aiui
- # [01:37] <Lachy_> yeah, the return is implied, but it doesn't return the last statment
- # [01:37] <Lachy_> it returns null
- # [01:37] <Hixie> really? i thought it returned the last expression.
- # [01:37] <Hixie> ok, then onshowui="return false"
- # [01:37] * Joins: aroben_ (i=adamrobe@nat/apple/x-30b7fa3c3f4b2bab)
- # [01:37] * Lachy_ goes to make a test case...
- # [01:38] * Joins: gavin (n=gavin@firefox/developer/gavin)
- # [01:38] <Dashiva> It will "return" the last value if you use javascript: in the address bar, a common annoyance :)
- # [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
- # [01:39] <othermaciej> making showui an event is kinda hokey
- # [01:39] <Hixie> Lachy_: indeed
- # [01:39] <Lachy_> maybe make it oninit, and have a DOM Attribute: video.ui = false;
- # [01:39] <Hixie> othermaciej: yeah maybe we don't solve this case, just seems kinda crappy not to though
- # [01:40] <othermaciej> Hixie: the "don't have script on" case?
- # [01:40] <Lachy_> browsers can always allow users to turn on UI from the context menu
- # [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
- # [01:40] <Hixie> othermaciej: or the "script isn't working for some reason" case
- # [01:41] <othermaciej> "script isn't working for some reason" is likely to break much more than your video controls
- # [01:41] <Hixie> othermaciej: yeah, i'm just seeing if we can go beyond sufficient. i agree your proposal is the fallback position.
- # [01:41] <othermaciej> if you depend on script to any significant extent
- # [01:41] <Hixie> yep
- # [01:41] <Lachy_> onshowui="return false;" doessn't even handle the case where the rest of the script didn't load
- # [01:41] <othermaciej> I don't think individual scripts failing to load is something we can turn into a good experience
- # [01:41] <Hixie> Lachy_: indeed
- # [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
- # [01:42] <Philip`> (Lachy_: JS returns undefined if you fall off the end of a function without a return, rather than null)
- # [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"
- # [01:43] <Lachy_> Philip`: ok
- # [01:44] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-42383b706cebece7)
- # [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
- # [01:45] <Dashiva> Is it acceptable to delegate to UAs to decide on their own to override and enable UI when scripting is disabled?
- # [01:45] <othermaciej> if it's just ui=on, that's 5 chars to get default controls
- # [01:45] <othermaciej> in the script case you need extra script content for the controls you are adding
- # [01:45] <Hixie> i'm curious how many people are going to bother to use ua-provided ui
- # [01:45] * Quits: aroben (i=adamrobe@nat/apple/x-76ccaef170ac1058) (Read error: 60 (Operation timed out))
- # [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
- # [01:46] <Dashiva> The latter group might be tiny
- # [01:46] <Hixie> the other thing is, would we want ui="" to default to on or off for <audio>?
- # [01:46] * Quits: gavins (n=gavin@firefox/developer/gavin) (Connection timed out)
- # [01:47] <Hixie> othermaciej: (actually it'd be just three extra characters: <video src='...'> vs <video ui src='...'>)
- # [01:47] <Hixie> (i'd want <audio> and <video> to have the same default)
- # [01:47] <Dashiva> I say default on for both video and audio. Hidden sound I can't turn off is a bad idea
- # [01:47] <othermaciej> I imagine a blogger randomly embedding a video would be happy with default controls
- # [01:48] <othermaciej> but they might be embedding from a hosting site which wants you to use their controls
- # [01:48] <othermaciej> Hixie: good point
- # [01:48] <othermaciej> anyway, I think negatives are a bit harder to understand, since lack of it is then conceptually a double negative
- # [01:48] <Hixie> yeah
- # [01:48] <othermaciej> if (!video.noui)
- # [01:49] <Hixie> so that implies default-off
- # [01:51] <othermaciej> yes, although other considerations could override, but it seems a toss-up otherwise
- # [01:52] <Lachy_> I'm happy with either default, it makes little difference to me
- # [01:52] * Joins: tantek_ (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [01:53] <Dashiva> If default is off, we can equalize "author forgot to specify UI" with "UI script failed to load"
- # [01:55] <Lachy_> but should we call the attribute ui=""? Should we expect the average author to understand what UI means?
- # [01:56] <Hixie> what would you call it?
- # [01:56] <Hixie> ui is compellingly short
- # [01:56] <Lachy_> maybe controls="on"
- # [01:57] <Hixie> this will be a boolean attribute
- # [01:57] <Lachy_> I know it's short, but UI is a technical term
- # [01:57] <Hixie> <video controls>
- # [01:57] <othermaciej> controls="" would be maybe a bit more clear
- # [01:57] <othermaciej> but a tiny bit longer to type
- # [01:57] <Lachy_> IIRC, the windows media player plugin uses <param name="controls">
- # [01:58] <Hixie> ok controls it is.
- # [01:59] <Hixie> autoplay="".
- # [01:59] <Hixie> hmm.
- # [01:59] <Hixie> to do autoplay='' i guess we need to have the new states first
- # [02:00] <othermaciej> yes, probably
- # [02:00] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
- # [02:03] * Quits: othermaciej (i=mjs@nat/apple/x-87b0a4ea6d4b3f6e)
- # [02:05] * Joins: othermaciej (i=mjs@nat/apple/x-4f273ff3b1cf5253)
- # [02:08] * Quits: tantek (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net) (Read error: 110 (Connection timed out))
- # [02:13] <Hixie> this state thing is an interesting problem.
- # [02:13] <Hixie> there are two sets of state that are relevant that i can see
- # [02:13] <Hixie> the state from the user/ui perspective, and the state from the ua perspective
- # [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
- # [02:15] <Hixie> these correspond to the current states PLAYING, PAUSED, AUTO-PAUSED, and STOPPED
- # [02:15] <Hixie> from the ua's perspective, whether you're playing or not is almost incidental
- # [02:16] <othermaciej> our states are designed from the script-driven control perspective
- # [02:16] <Dashiva> What about moving in the data at other rates than 1.0?
- # [02:16] <Dashiva> Is rewinding PLAYING?
- # [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.
- # [02:17] <othermaciej> each state change is supposed to be tied to some UI change you would make
- # [02:17] <Hixie> which are the apple states respectively
- # [02:17] <othermaciej> (although playing or not is also relevant to script-driven UI, but we have one bit for that)
- # [02:18] <Dashiva> I'm almost tempted to suggest a <stream> element for non-finite video
- # [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
- # [02:18] * Quits: mw22 (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
- # [02:18] <othermaciej> well, we just have a "paused" boolean for playing vs. paused
- # [02:19] <Dashiva> And .currentRate for the velocity, wasn't it?
- # [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
- # [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
- # [02:19] <othermaciej> yes, we don't consider auto-paused as paused
- # [02:19] <Hixie> STOPPED is the same as UNINITIALIZED (but easier to spell)
- # [02:19] <othermaciej> EMPTY might be a good name for that
- # [02:19] <Hixie> also same as ERROR
- # [02:19] <Hixie> yeah
- # [02:20] * Hixie changes STOPPED to EMPTY in the spec
- # [02:20] <othermaciej> we also don't have a "buffering" boolean
- # [02:20] <Hixie> yeah "buffering" is basically states 2 through 5 of your state machine
- # [02:20] <othermaciej> since it is assumed that what you care about is currently available time chunks and when they change
- # [02:20] <Hixie> well the spec also has buffered
- # [02:20] <Hixie> which lists the time chunks
- # [02:21] <othermaciej> yes, that's more informative than our availableDuration boolean
- # [02:21] <othermaciej> both are kind of weird if you have an implementation that might discard some buffers
- # [02:21] <Hixie> yeah
- # [02:21] <Hixie> we need an event for when they change
- # [02:21] <othermaciej> because then you just want to pretend it's all available
- # [02:21] <Hixie> 'buffering' or 'bufferchange' or something
- # [02:21] <othermaciej> er, availableDuration float, not boolean
- # [02:22] <othermaciej> we just overloaded durationchange to apply to both duration and availableDuration, but that's kinda lame
- # [02:22] <Hixie> yeah not dealing with duration changes right now, that's for tomorrow or later or something :-)
- # [02:22] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-42383b706cebece7) ("The computer fell asleep")
- # [02:22] <Hixie> mostly i'm trying to work out what to do with these states
- # [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
- # [02:23] <Dashiva> should watch out so there aren't any dead states in the final proposal, like the first few readyStates for xmlhttprequest
- # [02:24] <othermaciej> well, the extra booleans you have sort of imply extra states
- # [02:25] * Quits: h3h (n=h3h@66-162-32-234.static.twtelecom.net) ("|")
- # [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
- # [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
- # [02:27] <ericcarlson> There really are two different states to track: loading and playback
- # [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
- # [02:28] <Dashiva> ericcarlson: But some combinations are mutually exclusive, so by combining them you can remove the impossible ones
- # [02:28] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-dbff0c909689ab55)
- # [02:28] <othermaciej> Dashiva: but by combining them you end up with a crazy number of states
- # [02:28] <Hixie> othermaciej: that's true, yeah
- # [02:29] <Dashiva> That's also true
- # [02:30] <othermaciej> PLAYTHROUGHOK is mainly useful for a script-driven decision to auto-play
- # [02:30] <Hixie> yep
- # [02:31] <Dashiva> Although, auto-paused suggests the UA will also auto-resume, probably at that same state, no?
- # [02:31] <Hixie> hmm
- # [02:31] <othermaciej> yes, we would treat auto-paused as not paused w/ assumption that UA will auto-resume
- # [02:31] <Hixie> othermaciej: would you be ok with having both, playState and readyState ?
- # [02:31] <othermaciej> since there's no real UI action to take at that time
- # [02:32] <othermaciej> Hixie: I would, but I'd like to be convinced that playState can't be collapsed to a boolean
- # [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.
- # [02:32] <Hixie> othermaciej: i'd be ok with two booleans i guess
- # [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
- # [02:32] * Joins: karlUshi (n=karl@133.27.246.23)
- # [02:33] <Hixie> Dashiva: STOPPED is now EMPTY
- # [02:33] <Hixie> which is basically the same as UNINITIALISED in the apple proposal
- # [02:33] <othermaciej> Hixie: not sure what you mean by "does the UA want to play"
- # [02:33] <othermaciej> it's really more like "is time currently advancing", isn't it?
- # [02:34] <Dashiva> But for playState, does whether it's stopped or paused really matter? In either case it's not playing.
- # [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
- # [02:34] <othermaciej> (I assume in what you call auto-pause, the user still wants to play, but time is not advancing)
- # [02:34] <Hixie> othermaciej: right
- # [02:34] <othermaciej> so we'd represent that as a currentRate of 0 I think
- # [02:34] <othermaciej> but paused would be false
- # [02:34] <Hixie> hm
- # [02:34] * Dashiva likes that
- # [02:34] <Hixie> i was hoping we could collapse currentRate and playbackRate to one mutable attribute
- # [02:35] <Dashiva> I'm thinking (not as actual names) preferredRate and actualRate
- # [02:36] <Dashiva> But are there more states to currentRate than either playbackRate and 0?
- # [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
- # [02:38] <Dashiva> I'm not typing straight, better head to bed. Good luck with the wrangling.
- # [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
- # [02:38] <Hixie> namely the state where you're initialised, but haven't yet gotten a response
- # [02:38] <Hixie> "OPEN", for lack of a better term
- # [02:39] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-dbff0c909689ab55) ("The computer fell asleep")
- # [02:40] <othermaciej> Hixie: or LOADING maybe
- # [02:40] <othermaciej> Hixie: I think you are right
- # [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
- # [02:41] <Hixie> no i guess that doesn't work
- # [02:41] <Hixie> nevermind
- # [02:41] <Hixie> othermaciej: yeah
- # [02:42] <othermaciej> if you buffer on demand, downloadRate could be changing all the time
- # [02:42] <Hixie> yup
- # [02:42] <Hixie> yeah i think that idea sucks
- # [02:42] <Hixie> you know, we could split out your states into multiple booleans too
- # [02:43] <Hixie> and just have a farm of booleans, each with its own event
- # [02:43] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-e854230ef928e8c5)
- # [02:43] <Hixie> not that i like that idea either
- # [02:43] <Hixie> i'm just thinking out loud here
- # [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
- # [02:44] <othermaciej> there would be many invalid combinations
- # [02:45] <Hixie> i'm not convinced the current state machine is really right
- # [02:45] <Hixie> e.g. you could seek and go from playable to playthroughok
- # [02:46] <othermaciej> that's true
- # [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
- # [02:46] <Hixie> at which point it's pretty messy anyway
- # [02:46] <Hixie> not that i think all bools is better
- # [02:47] * Quits: tantek_ (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [02:47] <othermaciej> yeah, I'm not sure a method to close down is all that useful
- # [02:47] <othermaciej> but that would be logically consistent, to return to EMPTY
- # [02:47] * Quits: aroben_ (i=adamrobe@nat/apple/x-30b7fa3c3f4b2bab)
- # [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.
- # [02:48] <Hixie> we can drop it, i'm not tied to it or anything
- # [02:48] <othermaciej> you could seek from presentable to playable too
- # [02:48] <Hixie> yeah
- # [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?
- # [02:49] <othermaciej> yes
- # [02:49] <othermaciej> so you don't have a frame to show for that position
- # [02:49] <othermaciej> though in that case you most likely want to just keep showing the last frame played
- # [02:49] <Hixie> so you can seek from there to all the other states too
- # [02:50] <othermaciej> yeah
- # [02:50] <Hixie> basically seek can take you from any of the four inner states to any of the other four inner states
- # [02:50] <Hixie> yeah the current spec says to keep showing hte last frame
- # [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
- # [02:50] <othermaciej> all seek arcs should be bidirectional
- # [02:51] <Hixie> it makes sense at the start to go from never having had a frame to having the first frame
- # [02:51] <Hixie> but i don't know that we should expose more than that
- # [02:51] <othermaciej> I dunno either
- # [02:51] * Quits: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [02:51] * othermaciej wonders if ericcarlson has a more informed opinion
- # [02:51] * Joins: marcosc (n=chatzill@131.181.148.226)
- # [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)
- # [02:53] <othermaciej> so what event happens when you become playable or stop being playable?
- # [02:54] <Hixie> an event would happen when canPlay changes, same as now when you go from playing to autopaused and back again
- # [02:54] <othermaciej> playabilitychanged separate from the states?
- # [02:54] <Hixie> and an event would happen when canPlayThrough becomes true
- # [02:54] <othermaciej> so basically this partitions the BUFFERING state into 3 possibilities (since one combo of the booleans is impossible)
- # [02:54] <Hixie> oncanplaychange and onautoplayready maybe
- # [02:54] <Hixie> yeah
- # [02:55] <Hixie> and lets ui designers focus on the parts they care about
- # [02:55] <othermaciej> also not clear on the diff between LOADING and BUFFERING
- # [02:55] <Hixie> oh LOADING would be the new state that isn't in your system, and BUFFERING is the four middle states
- # [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
- # [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"
- # [02:56] <othermaciej> UNDERSTANDABLE vs. PRESENTABLE distinction seems to be lost in your system
- # [02:56] <Hixie> yeah, that's the one that i wasn't sure we should expose
- # [02:56] <othermaciej> (both would be BUFFERING with canPlay and canPlayThroughToTheEnd true)
- # [02:56] <Hixie> false
- # [02:56] <Hixie> but yes
- # [02:56] <othermaciej> er, yeah, false
- # [02:56] <othermaciej> it is a useful distinction
- # [02:57] <Hixie> it's useful for the software doing the actual playback, but what ui distinction would you make?
- # [02:57] <othermaciej> at UNDERSTANDABLE, you know width, height, and possibly metadata like title / artist, track list, etc (future extension)
- # [02:57] <othermaciej> at PRESENTABLE, you can remove placeholder UI over content area and show the first frame
- # [02:57] * Quits: bzed (n=bzed@dslb-084-059-097-010.pools.arcor-ip.net) ("Leaving")
- # [02:57] <Hixie> oh, hm, interesting
- # [02:57] <ericcarlson> the first PRESENTABLE state is important as it is the first time you know there is something to display
- # [02:57] <Hixie> so yeah you'd want that transition at the first--
- # [02:57] <Hixie> right
- # [02:57] <Hixie> what you said
- # [02:59] <ericcarlson> [cooking dinner for the kids, having a hard time keeping up on the discussion]
- # [02:59] <Hixie> ericcarlson: i'll make sure whatever we come up with you can review carefully at your leisure
- # [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
- # [03:00] <ericcarlson> thx
- # [03:00] <Hixie> i'm at a loss for a good name though
- # [03:01] <ericcarlson> LOADING isn't a great name since it is technically "loading" as long as data is being downloaded
- # [03:01] <othermaciej> I'm not sure collapsing PRESENTABLE / PLAYABLE / PLAYTHROUGHOK into one state plus two bools is very helpful
- # [03:01] <othermaciej> (the bools would have only one valid setting in every other state)
- # [03:02] <ericcarlson> I agree, it seems much cleaner to check the state instead of the state and a bool (or two)
- # [03:02] <Hixie> well you're already going to have to be checking bools left right and center
- # [03:02] * Joins: yod (n=ot@dhcp-246-8.mag.keio.ac.jp)
- # [03:03] <othermaciej> being >= PLAYABLE is a very basic thing for UI, more so than BUFFERING
- # [03:03] <othermaciej> since it tells you whether to enable the play button
- # [03:03] <othermaciej> or dim it
- # [03:04] <othermaciej> hard to imagine a polished JS controller not caring
- # [03:04] <ericcarlson> and what does BUFFERING mean when you load on demand?
- # [03:04] <Hixie> so you'd want the play/pause button to change state as you're seeking?
- # [03:04] <Hixie> i don't think i've ever seen that
- # [03:04] <Hixie> but you could do it by just watching canPlay
- # [03:04] <Hixie> which is imho easier than watching a state
- # [03:05] <Hixie> the other thing is that right now there's no state for when you're actually seeking
- # [03:05] <Hixie> i.e. when you're "moving the play head" as it were
- # [03:05] <ericcarlson> it is instantaneous if the media is buffered
- # [03:06] <Hixie> no it's not
- # [03:06] <ericcarlson> no?
- # [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
- # [03:07] <Hixie> it's quick, for sure
- # [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
- # [03:08] <ericcarlson> true
- # [03:08] <Hixie> i've seen videos where that can take seconds to do
- # [03:08] <Hixie> (especially WMA or whatever the windows one is called, for some reason -- sometimes it takes ages to seek)
- # [03:08] <ericcarlson> yes, MPEG can be the same
- # [03:09] <Hixie> i have to go now
- # [03:09] <Hixie> but i'll keep looking at this
- # [03:09] <Hixie> ttyal
- # [03:22] * Quits: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
- # [03:23] * Joins: dolphinling (n=chatzill@rbpool4-37.shoreham.net)
- # [03:24] * Quits: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
- # [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?
- # [03:31] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-e854230ef928e8c5) ("The computer fell asleep")
- # [03:32] <othermaciej> I posted something about global attributes in general on whatwg recently
- # [03:32] <othermaciej> short version:
- # [03:32] <othermaciej> - annoying to implement
- # [03:32] <othermaciej> - bad semanticly
- # [03:33] <othermaciej> - lack of img-specific API / attributes, presence of non-image API
- # [03:33] <othermaciej> - results on active elements like <input type="checkbox"> are bizzare
- # [03:34] <othermaciej> - conflates presentational technique of image replacement with semantically meaningful content images
- # [03:34] <othermaciej> (for this case)
- # [03:36] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
- # [03:36] * mw22____________ is now known as mw22
- # [03:37] <Lachy_> I can't find it in the archives, but we should turn that in to a blog entry
- # [03:38] <othermaciej> I might have been talking about global href, not global src in this case
- # [03:38] <othermaciej> don't remember
- # [03:38] <Lachy_> yeah, I saw threads about href
- # [03:39] <Lachy_> and Anne has just published one about href on his blog
- # [03:44] * Quits: Philip` (n=excors@zaynar.demon.co.uk)
- # [03:44] * Quits: othermaciej (i=mjs@nat/apple/x-4f273ff3b1cf5253)
- # [03:58] * Joins: h3h (n=w3rd@cpe-70-95-237-98.san.res.rr.com)
- # [03:59] * weinig|away is now known as weingi
- # [03:59] * weingi is now known as weinig
- # [04:30] * Quits: santek (n=st@ut-w-7bd6.mxs.adsl.euronet.nl)
- # [05:07] <Lachy_> http://www.w3.org/QA/2007/03/validation_to_conformance.html is interesting.
- # [05:07] * Joins: tylerr_ (n=tylerr@c-24-16-148-66.hsd1.mn.comcast.net)
- # [05:08] * Quits: tylerr (n=tylerr@outbound.wa1.ascentium.com) (Nick collision from services.)
- # [05:08] * Quits: tylerr_ (n=tylerr@c-24-16-148-66.hsd1.mn.comcast.net) (Remote closed the connection)
- # [05:08] * Joins: tylerr (n=tylerr@c-24-16-148-66.hsd1.mn.comcast.net)
- # [05:27] * Quits: yod (n=ot@dhcp-246-8.mag.keio.ac.jp) ("This computer has gone to sleep")
- # [05:28] * Joins: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
- # [05:33] * moeffju is now known as moeffju[ZzZz]
- # [05:36] <mpt> "Some HTML is OK" -- W3C
- # [05:36] <mpt> (gratuitously out-of-context quote, but it was too good to resist)
- # [05:37] <Lachy_> :-)
- # [05:39] * Quits: marcosc (n=chatzill@131.181.148.226) ("...and I'm gone.")
- # [05:53] * Joins: yod (n=ot@dhcp-246-8.mag.keio.ac.jp)
- # [06:18] * Joins: aroben (i=adamrobe@nat/apple/x-33bcaf315bf6309b)
- # [06:25] * Quits: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
- # [06:30] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-842663de8fcf5732)
- # [06:35] * Joins: MikeSmith (i=mike@tea18.w3.mag.keio.ac.jp)
- # [06:42] * Quits: ericcarlson (n=ericcarl@adsl-67-115-144-162.dsl.snfc21.pacbell.net)
- # [07:10] * Joins: othermaciej (n=mjs@user-64-9-233-14.googlewifi.com)
- # [07:15] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-842663de8fcf5732) ("The computer fell asleep")
- # [07:38] * Quits: othermaciej (n=mjs@user-64-9-233-14.googlewifi.com) (Read error: 113 (No route to host))
- # [08:00] * Joins: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
- # [08:04] * Quits: tylerr (n=tylerr@c-24-16-148-66.hsd1.mn.comcast.net) ("Leaving")
- # [08:04] * Joins: tylerr (n=tylerr@outbound.wa1.ascentium.com)
- # [08:07] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
- # [08:11] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
- # [08:19] * Quits: mw22 (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 60 (Operation timed out))
- # [08:32] * Quits: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
- # [08:45] * Joins: marcosc (n=chatzill@131.181.148.226)
- # [08:58] * Quits: h3h (n=w3rd@cpe-70-95-237-98.san.res.rr.com)
- # [09:23] * Joins: met_ (n=Martin@b14-4.vscht.cz)
- # [09:33] * Quits: yod (n=ot@dhcp-246-8.mag.keio.ac.jp) ("Leaving")
- # [09:34] * Quits: Lachy_ (n=chatzill@58.105.240.232) ("Chatzilla 0.9.77 [Firefox 2.0.0.3/2007030919]")
- # [09:38] * Quits: karlUshi (n=karl@133.27.246.23) ("Where dwelt Ymir, or wherein did he find sustenance?")
- # [09:51] * Quits: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
- # [09:53] * othermaciej is now known as om_sleep
- # [09:56] * moeffju[ZzZz] is now known as moeffju
- # [10:02] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
- # [10:02] * mw22____________ is now known as mw22
- # [10:10] * Joins: hendry (n=hendry@91.84.53.136)
- # [10:21] * Joins: ROBOd (n=robod@86.34.246.154)
- # [11:02] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
- # [11:08] * Quits: ROBOd (n=robod@86.34.246.154) ("http://www.robodesign.ro")
- # [11:19] * Quits: mw22 (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
- # [11:23] * Joins: ROBOd (n=robod@86.34.246.154)
- # [11:38] * Joins: ravenn (n=ravenn@203-214-133-148.perm.iinet.net.au)
- # [11:55] * Joins: icaaq_ (n=icaaaq@226.228.13.217.in-addr.dgcsystems.net)
- # [12:04] * Quits: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl) (Read error: 110 (Connection timed out))
- # [12:06] <annevk> Hixie, currentLoop should be unsigned long, not float
- # [12:07] * Joins: KevinMarks (n=KevinMar@1433ahost8.starwoodbroadband.com)
- # [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?
- # [12:17] * Joins: mw22____________ (n=chatzill@h8441169151.dsl.speedlinq.nl)
- # [12:17] * mw22____________ is now known as mw22
- # [12:17] * Quits: KevinMarks (n=KevinMar@1433ahost8.starwoodbroadband.com) ("The computer fell asleep")
- # [12:24] <annevk> not just loading the frame but also decoding it
- # [12:26] <Dashiva> For something going tens of frames per second, that's not a very long time
- # [12:32] <annevk> I wonder if I should rename UNINITIALIZED to EMPTY as well for XMLHttpRequest...
- # [12:35] <Dashiva> I wouldn't, since that's a very specific state in xhr
- # [12:35] <Dashiva> You have to call open before anything else, so it really is uninitialized
- # [12:36] <annevk> it's exactly the same as EMPTY for <video>, actually
- # [12:39] <annevk> what makes you think it's different?
- # [12:50] * Joins: bzed (n=bzed@dslb-084-059-102-211.pools.arcor-ip.net)
- # [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
- # [12:54] <annevk> are you sure the intermediate events wouldn't dispatch?
- # [12:55] <annevk> anyway, EMPTY is much easier to type than UNINITIALIZED...
- # [12:55] <annevk> that you have to invoke load() is just how the API works, load() is always invoked for <video> as well currently
- # [12:55] * Quits: aroben (i=adamrobe@nat/apple/x-33bcaf315bf6309b)
- # [13:01] * Joins: Philip` (n=excors@zaynar.demon.co.uk)
- # [13:02] <annevk> http://programming.reddit.com/info/1d855/comments
- # [13:02] <annevk> (comments on href= on every element)
- # [13:02] <annevk> (not very interesting)
- # [13:02] * Parts: ravenn (n=ravenn@203-214-133-148.perm.iinet.net.au)
- # [13:13] <hsivonen> annevk: if anything, we should congratulate the XHTML propagandists for being very effective at shifting the Overton Window to their favor
- # [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
- # [13:16] <annevk> it seems Reddit has more sensible people than Digg
- # [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
- # [13:17] <annevk> XHTML5 is just the XML serialization of HTML5
- # [13:17] <annevk> HTML5 is both the language and the HTML serialization which may be a bit confusing...
- # [13:17] <hsivonen> annevk: yes, Reddit people have more clue than Digg users
- # [13:28] * Parts: icaaq_ (n=icaaaq@226.228.13.217.in-addr.dgcsystems.net)
- # [13:51] * Joins: yod (n=ot@softbank221018155222.bbtec.net)
- # [14:00] * Joins: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
- # [14:01] * Joins: ravenn (n=ravenn@203-214-133-148.perm.iinet.net.au)
- # [14:05] * Joins: santek (n=st@ut-w-7bd6.mxs.adsl.euronet.nl)
- # [14:10] * Joins: karlUshi (n=karl@softbank221018155222.bbtec.net)
- # [14:10] <karlUshi> meuh
- # [14:11] <karlUshi> [meuh meuh meuuuuh meuuuuuuuuh]
- # [14:12] * Quits: karlUshi (n=karl@softbank221018155222.bbtec.net) (Client Quit)
- # [14:12] <annevk> karlcow is indeed an appropriate nickname for him
- # [14:23] * Quits: hendry (n=hendry@91.84.53.136) ("leaving")
- # [14:35] <annevk> Philip`, are you using -o-2d-game to get the pixel values in Opera or so?
- # [14:42] <Philip`> Yep, it's the opera-2dgame getPixel
- # [14:43] <Philip`> (though it always tries getImageData first, if it exists)
- # [14:44] <annevk> k
- # [14:45] <annevk> your testcases are quite nice btw
- # [14:46] <annevk> for getImageData(), do you take into account that height/width doesn't necessarily reflect the height/width of the canvas?
- # [14:49] * Quits: primal1 (n=primal1@pool-72-87-242-30.lsanca.fios.verizon.net) (adams.freenode.net irc.freenode.net)
- # [14:50] * Joins: primal1 (n=primal1@pool-72-87-242-30.lsanca.fios.verizon.net)
- # [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)
- # [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
- # [14:55] <Philip`> *zero pixels
- # [15:00] * Parts: ravenn (n=ravenn@203-214-133-148.perm.iinet.net.au)
- # [15:15] * Joins: briansuda (n=briansud@bokd117.rhi.hi.is)
- # [15:21] <annevk> Hixie, the <source> IDL interface is wrong
- # [16:05] * Quits: briansuda (n=briansud@bokd117.rhi.hi.is)
- # [16:11] * Joins: briansuda (n=briansud@bokd117.rhi.hi.is)
- # [16:29] * Joins: zcorpan (n=zcorpan@esk-ba-1-nomad.net.mdh.se)
- # [16:30] <zcorpan> ponder. perhaps stating that rel=nofollow is used on all links (on the register page) will prevent the manual spam too.
- # [16:31] <zcorpan> (on the forum)
- # [16:34] * Quits: briansuda (n=briansud@bokd117.rhi.hi.is)
- # [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
- # [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
- # [16:42] <annevk> it's a problem
- # [16:42] * Quits: mpt (n=mpt@121-72-132-31.dsl.telstraclear.net) ("brb")
- # [16:43] <annevk> recently some people managed to get passed by well-formedness required + forced preview check
- # [16:43] <annevk> (I also require at least one block level element for comments)
- # [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 :-(
- # [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
- # [16:46] * annevk isn't sure that DOMContentLoaded solves issues
- # [16:46] * annevk notes http://www.w3.org/2006/webapi/track/issues/36
- # [16:47] <Lachy> DOMContentLoaded is roughly equivalent to <script defer>
- # [16:47] <annevk> do all scripts need to be loaded first?
- # [16:47] <annevk> how would that work?
- # [16:48] <Lachy> all scripts get loaded and executed during parsing anyway
- # [16:48] <annevk> ah right
- # [16:48] <annevk> but still
- # [16:48] <annevk> so maybe the moment document.close() is invoked
- # [16:48] <annevk> btw, for XHTML that may not be the case
- # [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
- # [16:49] * Quits: yod (n=ot@softbank221018155222.bbtec.net) ("Leaving")
- # [16:49] <Lachy> s/are/and/
- # [16:50] <annevk> for HTML it has to wait
- # [16:50] <Lachy> yeah
- # [16:50] <Lachy> for XHTML?
- # [16:50] <Lachy> I suppose, since commetns are added to teh DOM, it would have to wait too
- # [16:50] <annevk> dunno, the script containing the listener might not even be loaded...
- # [16:50] <Lachy> why wouldn't it be loaded?
- # [16:51] * Quits: met_ (n=Martin@b14-4.vscht.cz) ("Chemists never die, they just stop reacting.")
- # [16:51] <annevk> why would parsing XML be delayed by script loading?
- # [16:51] <Lachy> hmm. I don't know, I guess since document.write() can't work, scripts can be loaded async
- # [16:52] <annevk> in XHTML you also have <svg:script> and <xbl:script> etc.
- # [16:52] * Joins: h3h (n=h3h@66-162-32-234.static.twtelecom.net)
- # [16:52] <annevk> which makes this more painful as at least SVG defines a different processing model iirc
- # [16:53] <Lachy> I assume <xbl:script> has a sensible processing model
- # [16:53] <Lachy> but I suppose svg is still a potential problem
- # [16:56] <annevk> SVG is a problem nonetheless :)
- # [16:57] * Quits: zcorpan (n=zcorpan@esk-ba-1-nomad.net.mdh.se) (Read error: 110 (Connection timed out))
- # [17:01] <annevk> http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=d03d5ef0-3453-4458-8c13-c1c94c0dff1b
- # [17:06] <hsivonen> GUIDs make URIs uncool
- # [17:07] <annevk> no shit
- # [17:07] <Lachy> hsivonen, yeah. using the milliseconds since 1970-01-01 is much more sensible! :-)
- # [17:08] <hsivonen> Lachy: I've wondered about the rationale behind that design decision. :-)
- # [17:09] <Lachy> yeah, me too. you'll have to ask Hixie
- # [17:10] <Lachy> can someone test if http://lachy.id.au/ is responding? I can't get it to load
- # [17:10] * Joins: mpt (n=mpt@121-72-130-40.dsl.telstraclear.net)
- # [17:13] <hsivonen> Lachy: works for me
- # [17:13] <Lachy> yeah, it's come back up for me now too
- # [17:14] <Lachy> thanks
- # [17:22] <virtuelv> re http://lachy.id.au/log/2007/03/problems-with-xhtml - hehe
- # [17:23] <Lachy> there was a followup post too! http://lists.w3.org/Archives/Public/www-html-editor/2007JanMar/0053.html
- # [17:27] <h3h> wow
- # [17:27] * tylerr needs to delegate some tasks so he has time to work on WHATWG articles.
- # [17:27] <Lachy> what kind of tasks?
- # [17:29] <tylerr> Page builds, bug fixes, link scanning, etc.
- # [17:29] <tylerr> All in a tool that doesn't have S&R. :-(
- # [17:30] <Lachy> oh, you mean tasks at your work. I thought you meant getting somewhere here to help you out
- # [17:30] <tylerr> Oh hehe, well, that will come in time. :-)
- # [17:30] <Lachy> ok boss!
- # [17:30] <tylerr> I need to plough through all my *real* work first.
- # [17:31] <tylerr> Maybe that should be "real". ;-)
- # [17:34] * Joins: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com)
- # [17:37] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
- # [17:49] * Joins: CharlvN (n=charlvn@196.21.192.15)
- # [17:49] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
- # [17:49] * om_sleep is now known as othermaciej
- # [17:50] * Joins: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
- # [17:50] * CharlvN is now known as Charl
- # [18:06] * Joins: annevk2 (n=annevk@5352CE6F.cable.casema.nl)
- # [18:06] * Quits: annevk (n=annevk@86.90.70.28) (Read error: 110 (Connection timed out))
- # [18:13] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-1a70f4bf5080eb9b)
- # [18:34] * Joins: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [18:35] * Quits: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net) (Remote closed the connection)
- # [18:35] * Joins: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [18:40] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
- # [18:47] * Quits: tantek (n=tantek@adsl-63-195-114-133.dsl.snfc21.pacbell.net)
- # [19:32] * Quits: KevinMarks (i=KevinMar@conference/etech2k7/x-1a70f4bf5080eb9b) ("The computer fell asleep")
- # [19:35] * Quits: Charl (n=charlvn@196.21.192.15)
- # [19:40] * Joins: dbaron (n=dbaron@corp-242.mountainview.mozilla.com)
- # [19:49] * Joins: met_ (n=Hassman@r5bx220.net.upc.cz)
- # [19:50] * Joins: tantek (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [20:06] * Joins: othermaciej (i=mjs@nat/apple/x-4e9dfae5cf641e1b)
- # [20:08] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-5dce6a5d171ceba0)
- # [20:08] <annevk2> http://blog.outer-court.com/archive/2007-03-29-n69.html
- # [20:10] <annevk2> not very interesting though, except that he doesn't really seem to grasp it
- # [20:10] <annevk2> "we need better marketing"
- # [20:18] * annevk2 is now known as annevk
- # [20:47] * Joins: aroben (i=adamrobe@nat/apple/x-15f9ac1621e9ce5a)
- # [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?
- # [21:00] * Parts: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com)
- # [21:02] * Joins: hasather (n=hasather@81-235-209-174-no62.tbcn.telia.com)
- # [21:06] * Quits: annevk (n=annevk@5352CE6F.cable.casema.nl) (Read error: 110 (Connection timed out))
- # [21:09] * Quits: tantek (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
- # [21:09] * Quits: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
- # [21:10] * Joins: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [21:10] * othermaciej is now known as om_lunch
- # [21:17] * Quits: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca) (Read error: 104 (Connection reset by peer))
- # [21:18] * Joins: csarven (n=nevrasc@modemcable081.152-201-24.mc.videotron.ca)
- # [21:19] * Joins: tantek (n=tantek@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [21:32] * Quits: KevinMarks (i=KevinMar@pdpc/supporter/active/kevinmarks) ("The computer fell asleep")
- # [22:19] * Quits: ROBOd (n=robod@86.34.246.154) ("http://www.robodesign.ro")
- # [22:37] * om_lunch is now known as othermaciej
- # [22:42] <othermaciej> I hate arguing with X People
- # [22:49] * Joins: JeromeB (n=jeromebo@ip5653a55a.direct-adsl.nl)
- # [22:52] <Hixie> where are you arguing with XPeople?
- # [22:55] * met_ thinks it probably isn't on http://www.xpeople.org/
- # [22:56] <othermaciej> public-html
- # [22:56] <othermaciej> I don't even want to read all the emails about how great hidden metadata is
- # [22:56] <othermaciej> especially the long rambling one that is all lowercase except instances of html tag names
- # [22:57] <Hixie> heh
- # [22:57] <Hixie> afk
- # [22:59] <gsnedders> so we can then normalise them in our heads to lowercase? :P
- # [22:59] <Dashiva> Has there been a good explanation that visible metadata usually = correct and updated metadata yet?
- # [23:01] <othermaciej> there have been explanations
- # [23:01] <othermaciej> I don't know if they would count as good
- # [23:09] <Lachy> good morning
- # [23:15] * Joins: KevinMarks (i=KevinMar@conference/etech2k7/x-e84aebbbadba0a10)
- # [23:20] <othermaciej> hey KevinMarks
- # [23:22] <othermaciej> KevinMarks: check out the "Visible Metadata" threads here: http://lists.w3.org/Archives/Public/public-html/2007JanMar/thread.html
- # [23:35] <KevinMarks> oh boy
- # [23:36] <KevinMarks> I'm in Quinn's talk about embedding magnets in her body right now
- # [23:36] <othermaciej> !
- # [23:47] * Joins: aroben_ (i=adamrobe@nat/apple/x-c1237c28e264d288)
- # [23:49] * Quits: aroben (i=adamrobe@nat/apple/x-15f9ac1621e9ce5a) (Nick collision from services.)
- # [23:49] * aroben_ is now known as aroben
- # [23:49] * Quits: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # [23:53] * moeffju is now known as moeffju[ZzZz]
- # [23:55] * Joins: kingryan (n=kingryan@dsl092-187-033.sfo1.dsl.speakeasy.net)
- # Session Close: Fri Mar 30 00:00:00 2007
The end :)