2010-09-01 [17:11:00.0000] what'd I miss? [17:11:01.0000] UPS failed [17:12:00.0000] a lot of nothing [17:13:00.0000] meh [18:01:00.0000] Random bugspam: [18:02:00.0000] Regarding bug 10479: Um. This sort of suggestion appears to be the sort of thing that can only be made by someone who has no idea how the technology they're talking about actually works. [18:07:00.0000] it's magic, right? [18:07:01.0000] What, ARIA? [18:08:00.0000] "Any sufficiently advanced technology is indistinguishable from magic." [18:08:01.0000] that thing .) [18:08:02.0000] I don't think that ARIA qualifies as "sufficiently advanced" for that definition. ^_^ [18:11:00.0000] when you call addEventListener() and pass it a lambda, what is the value of "this" when the event handler fires? [18:11:01.0000] The same as it is when you pass it a function name instead, iirc? [18:13:00.0000] the target node? [18:13:01.0000] Yeah. [18:14:00.0000] is that defined anywhere? [18:14:01.0000] Do you mean "is it defined how this works when you pass a lambda instead of a function name", or "is it defined how this works in general"? [18:16:00.0000] either [18:17:00.0000] The former, a function is a function is a function. Passing it as a lambda or as a variable pointing to a function should be irrelevant. [18:17:01.0000] The latter, I dunno. [18:18:00.0000] (the former is not true in all languages) [18:18:01.0000] (many languages for example distinguish between a method and a function) [18:19:00.0000] (i.e. an object-bound function and a free function. Some also have class functions.) [18:19:01.0000] (all of which can have different "this"-analogues) [18:22:00.0000] True, but method vs function is a different thing than lambda versus variable holding a function. [18:23:00.0000] sure [18:23:01.0000] i can't find this defined anywhere [18:23:02.0000] looked in html and dom events [18:23:03.0000] not that html should define it really [18:23:04.0000] no shepazu around [18:35:00.0000] did the ECMA group decide on how to do getters and setters yet? [18:52:00.0000] http://dmitrysoshnikov.com/ecmascript/es5-chapter-1-properties-and-property-descriptors/ [18:52:01.0000] ctrl+f Object.defineProperty [18:55:00.0000] also ctrl+f for declarative [18:57:00.0000] aha [18:58:00.0000] ({ get foo { }, set foo { } }) [18:58:01.0000] ({ get foo { }, set foo(value) { } }) rather [18:58:02.0000] foo={get test(){return "foo";}};alert(foo.test); [18:58:03.0000] simple example :) [18:58:04.0000] ({ get foo () { }, set foo(value) { } }) even [23:32:00.0000] +1 to AryehGregor on the weirdness of browser reformatting dates without translating the surrounding page [00:18:00.0000] TabAtkins, Hixie: I believe in actuality, "this" is the object to which the event listener was added [00:19:00.0000] not the target node [00:19:01.0000] er you i meant current target [00:19:02.0000] not the actual target [00:19:03.0000] whatever the terminology is [00:19:04.0000] I don't know for sure if current target is guaranteed to be identical to the object on which addEventListener was called in the first place, but if so, then yes [00:20:00.0000] however, unlike attribute event listeners, there is no messing with the scope chain [00:20:01.0000] I agree that DOM Events should define this somewhere, since it is both important for compatibility and apparently popular with authors (people complain that IE's attachEvent doesn't do it) [00:42:00.0000] what's |this| with attachEvent? [00:43:00.0000] /me hadn't realized that attachEvent wasn't just a naming difference [01:10:00.0000] can someone explain to me how the Chromium nightly behavior on http://hsivonen.iki.fi/test/moz/sheet-blocking-script2.html arises from the spec? [01:11:00.0000] or does Chromium not implement the spec exactly when it comes to style sheets blocking scripts? [01:14:00.0000] hmm. loading that test case in Opera over a 5 Mbps connection suggests turning on Turbo due to slow connection [01:14:01.0000] I guess cuzillion makes Opera think my connection is slow... [01:14:02.0000] also, in IE and Opera, the number of scripts after the first .write is very spec-incompliant [01:24:00.0000] ok. Chromium fails the baseline test: http://hsivonen.iki.fi/test/moz/sheet-blocking-script-baseline.php [01:24:01.0000] so it doesn't block scripts when a style sheet is pending [02:09:00.0000] Ms2ger: looking at dom core; i made .prefix readonly since it was readonly in some implementations and where it wasn't readonly it didn't do anything sensible, iirc [02:10:00.0000] Ms2ger: actually there's a comment in the source [02:14:00.0000] making prefix readonly would be nice [02:14:01.0000] i think we need to put Attr nodes back in though [02:15:00.0000] yeah [02:15:01.0000] Attr nodes are sad but hard to get rid of them now [02:15:02.0000] but maybe we can make them not inherit from Node [02:15:03.0000] if impls are willing to try [02:16:00.0000] i think it's only worth changing impls if it's a perf benefit [02:17:00.0000] in theory smaller objects -> less memory -> more perf [02:17:01.0000] sure [02:18:00.0000] Ms2ger: iirc the legal hierarchy section is broken and needs rewriting [02:18:01.0000] Linux FAIL. Compiling Firefox inside Eclipse makes the mouse pointer and Spotify music jumpy [02:19:00.0000] with 8 hardware threads... [02:22:00.0000] wtf happened to http://simon.html5.org/ [02:23:00.0000] ok fixed [02:23:01.0000] dreamhost-- [02:24:00.0000] also, why does favicon.gif keep reappearing? [02:25:00.0000] zcorpan_, I think they add that automatically to reduce error logs or something [02:26:00.0000] ok. i hid it from the index [02:57:00.0000] othermaciej: I made some progress with the annotation thing BTW but didn't get as far as testing the changes [02:57:01.0000] So it will be done as soon as I get another free moment [02:58:00.0000] jgraham: thanks for the update [02:58:01.0000] I think I am off to bed [02:58:02.0000] unable to do anything useful tonight [03:28:00.0000] it would be great gsnedders if you could unfork the various anolis variants and provide a single version [03:28:01.0000] as a web service preferably [03:29:00.0000] annevk++ [03:33:00.0000] some day, when I have nothing else to do, I want to make Gecko's script running less Observer Pattern-y [03:35:00.0000] annevk: gsnedders has explicitly lost interest in anolis [03:35:01.0000] /me already has a somewhat forked version running as a web service [03:36:00.0000] So I guess I am the logical person to pull in other changes [03:36:01.0000] okay [03:36:02.0000] Ms2ger: What did you actually change? [03:36:03.0000] ideally I'd like to see http://bitbucket.org/ms2ger/anolis unforked [03:37:00.0000] and maybe also a bitbucket account for your webservice so Ms2ger/I/others can hack there [03:38:00.0000] I'm generating the references and some form of cross-doc xrefs [03:38:01.0000] those features seem quite useful for e.g. XMLHttpRequest too [03:38:02.0000] annevk: All my code can at least be pulled. So you can clone it to bb if you like [03:40:00.0000] could you maybe at links from somewhere to your stuff? [03:40:01.0000] e.g. WHATWG wiki or http://james.html5.org/ [03:41:00.0000] ah, http://wiki.whatwg.org/wiki/Developing_HTML5_derivatives has some [03:44:00.0000] annevk: http://hg.hoppipolla.co.uk [03:44:01.0000] anolis is anolis [03:44:02.0000] aquarium is the web frontend [04:02:00.0000] jgraham: if you are going to be consolidating changes, I have a patch I hope you can apply [04:02:01.0000] /me goes to looks for it [04:03:00.0000] MikeSmith: The "make it take an insanely long time" feature? [04:03:01.0000] yup [04:03:02.0000] but it's an option [04:03:03.0000] off by default [04:03:04.0000] Sure :) [04:04:00.0000] and 6 minutes ain't such an insanely long time for generating an completel index of terms for an insanely big document… [04:05:00.0000] http://github.com/sideshowbarker/html5forAuthors/raw/master/patch.anolis [04:05:01.0000] I suspect that with other documents, it won't increase the build time much at all [04:07:00.0000] anyway, the option for invoking it is "--enable terms" [04:07:01.0000] (if anybody cares to try it with some other specs) [04:45:00.0000] annevk, yes, I think that would make more sense [05:15:00.0000] TabAtkins, you know that MS Word generates @list at-rules, right? [05:47:00.0000] created http://wiki.whatwg.org/wiki/Anolis to keep track [05:53:00.0000] Ms2ger, was that in reply to a private message on whether legal hierarchy should move into the method definitions? :) [05:53:01.0000] annevk, yes [05:53:02.0000] k [06:00:00.0000] Ms2ger, for clone shouldn't Attr just reference clone again? now it's missing e.g. namespaceURI [06:00:01.0000] Yes, probably [06:02:00.0000] does Anolis still require ? [06:02:01.0000] or can we just write ? [06:06:00.0000] I don't think it's required [06:21:00.0000] whatwg.org is taking too long to respond [06:21:01.0000] well, www.whatwg.org [06:27:00.0000] did we decide something about preventing script execution if an ancestor of the script is iframe, noembed or noframes? [06:27:01.0000] /me files a bug just in case [06:48:00.0000] hsivonen: i think the conclusion was that only gecko did this and it's not needed for compat [06:50:00.0000] zcorpan_: thanks [06:56:00.0000] Ms2ger, user agents match elements with id="a b" just fine [06:56:01.0000] Ms2ger, did you put that constrain in there intentionally? [06:56:02.0000] I think Hixie did [06:57:00.0000] Ms2ger, a validation constraint sure, but not on matching [06:57:01.0000] Then I probably misread [06:57:02.0000] Ms2ger, btw, why does everything around Attr only talk about name and not qualifiedName/localName? [07:00:00.0000] Oversight [07:00:01.0000] k [07:02:00.0000] Didn't I say you'd find a lot of bugs? :) [07:02:01.0000] baib [07:13:00.0000] i guess you did [07:14:00.0000] still it's pretty great i think [07:14:01.0000] lot less to be done than I thought [07:25:00.0000] Where can I find the definitive license©right info for http://trac.webkit.org/export/LATEST/trunk/LayoutTests/fast/tokenizer/write-on-load.html ? [07:25:01.0000] (I'd like to import the test and a modification thereof to the Mozilla codebase) [07:27:00.0000] ask abarth? [07:29:00.0000] asked on the bug [07:33:00.0000] hmm, Opera does not support inputEncoding... [07:52:00.0000] is it technically possible to create a fake websocket client with xhr+cors and allowing the domain? [07:52:01.0000] i'm trying to think of how it wouldn't be possible and i'm drawing a blank [08:25:00.0000] wirepair: assuming the current handshake, how would you create all the right tokens? [08:26:00.0000] +security [08:28:00.0000] jgraham well the client creates them originally no? [08:28:01.0000] so xhr.setRequestHeader('Sec-WebSocket-Key1: ...') [08:28:02.0000] that's not possible [08:28:03.0000] XHR blocks Sec- [08:29:00.0000] hmm lemme add taht testcase ;) [08:29:01.0000] i don't think chrome was blocking Origin [08:29:02.0000] really? [08:29:03.0000] I would be surprised [08:29:04.0000] let me test again [08:29:05.0000] it was either chrome or opera [08:29:06.0000] ooh, Opera is different [08:29:07.0000] we haven't updated XHR yet [08:29:08.0000] ah that might be it then ;) [08:30:00.0000] yeah it was opera [08:52:00.0000] Ms2ger, would you mind if I change the file to something like web-dom-core.src.html ? [08:52:01.0000] I'm hoping that would allow me to view it [08:53:00.0000] Not at all [08:53:01.0000] But please use hg mv, then [08:55:00.0000] lets see if it worked [08:56:00.0000] to some extent [08:56:01.0000] http://bitbucket.org/ms2ger/web-dom-core/raw/tip/web-dom-core.src.html [09:04:00.0000] Ms2ger: AFAIK, hg mv has still some bugs [09:05:00.0000] Apparently [09:05:01.0000] Ms2ger: http://mercurial.selenic.com/bts/issue1576 [09:05:02.0000] did I break something? [09:06:00.0000] Just blame [09:06:01.0000] bah [09:07:00.0000] it's not too important I guess [09:09:00.0000] One of the great things about git is you don't have to say "mv" explicitly. [09:10:00.0000] It finds moves on the fly when you run commands like "blame". [09:10:01.0000] Which is nice, it's easy to forget to tell the VCS to move/copy/whatever. [09:16:00.0000] oh god [09:16:01.0000] gruber calls an IETF draft an open standard [09:16:02.0000] and Apple too apparently [09:16:03.0000] fun times [09:16:04.0000] Maybe I'm stupid, but -- it isn't? [09:17:00.0000] in IETF land a standard is something that has at least RFC status, but really has to have STD status [09:17:01.0000] a draft which anyone or their dog can submit is most definitely not an open standard :) [09:18:00.0000] Not even a draft open standard? [09:18:01.0000] I tend to interpret "standard" very liberally. [09:22:00.0000] it's a smokescreen [09:23:00.0000] if it was a draft on its way to standard it would a) not be in the informational category and b) for something like this there would be a WG [09:24:00.0000] I have no idea what the context is but saying "our patent encumbered junk is an 'Open Standard' because we submitted it to IETF" is highly misleading [09:28:00.0000] I got into an argument with someone on Wikipedia about whether Web Accelerators is an "open standard". We ended up just describing the situation without using the term "standard". [09:28:01.0000] Probably a good idea. Contentious terminology, not very clearly defined. [09:29:00.0000] Or, at least, no one can agree on a clear definition. [09:38:00.0000] what are web accelerators? [09:40:00.0000] the new IE8 stuff ? [09:40:01.0000] http://en.wikipedia.org/wiki/Web_accelerator ? [09:40:02.0000] Sounds like a caching proxy [09:40:03.0000] I don't know, something MS made up in IE8. [09:40:04.0000] They posted a spec after the fact and said anyone could implement it, so it's an open standard! [09:43:00.0000] http://en.wikipedia.org/wiki/Accelerator_%28Internet_Explorer%29 [09:44:00.0000] that's not a web accelerator, is it? [09:45:00.0000] "Accelerators are a form of selection-based search which allow a user to invoke an online service from any other page using only the mouse introduced by Microsoft in Internet Explorer 8." [09:45:01.0000] Microsoft introduced the mouse in IE8? [09:46:00.0000] uh... [09:46:01.0000] that's not really what it's saying. ;) [09:47:00.0000] Well obviously the mouse already existed. It's the one they introduced in IE8 that you can use to do the fancy shit [09:49:00.0000] It was Web Slices, that was it. [09:49:01.0000] My compromise wording: "Microsoft developed the Web Slice format, and published a specification under the Microsoft Open Specification Promise.[6] The specification is not published by any independent standards body. As of 2010, Internet Explorer 8 is the only browser to support Web Slices natively, although Mozilla Firefox has support via an add-on called webchunks.[7]" [09:50:00.0000] Originally I just said it was "non-standard", but someone reverted me. [09:50:01.0000] " Please define standard? standard set by whom? ie published a spec!" [09:55:00.0000] i see... [09:58:00.0000] "Open standard" is a bit more precise, but it still has no generally-accepted definition. [09:59:00.0000] You can argue something is an "open standard" if it has a published spec and is royalty-free. [10:00:00.0000] i would expect at least two independent implementations in addition to that [10:00:01.0000] and a test suite [10:00:02.0000] I wouldn't expect either of those. I'd say it has to be developed in the open and not under the control of any particular implementer, though. [10:01:00.0000] Seriously, though, there are tons of standards that don't have a test suite. [10:01:01.0000] You could have an open standard that has only one independent implementation. You want two, but only because that proves the spec is clear enough for new implementations to interoperate without reverse-engineering. [10:05:00.0000] It is pretty hard to think of standards that meet that set of conditions [10:06:00.0000] CSS 3D transforms ? [10:06:01.0000] Especially if you usefully restrict the requirements for the size of the testsuite [10:06:02.0000] i.e. it can't be trivial to pass [10:10:00.0000] Which set of conditions? [10:12:00.0000] Two independent interoperable implementations and a testsuite [10:14:00.0000] Yeah, there aren't many of those. [10:15:00.0000] CSS 2.1 is pretty close, right? [10:19:00.0000] Yeah, it's getting there. [10:47:00.0000] maybe I should announce Web DOM Core to www-dom or some such [10:48:00.0000] hmm, public-webapps has far more subscribers [10:48:01.0000] I'd announce it on public-webapps. [10:49:00.0000] yeah [10:50:00.0000] keyboard d-n-d was removed from the draft some time ago, right? [10:52:00.0000] no [10:52:01.0000] oh wait, yes [10:52:02.0000] sorry, thought you meant copy/paste for some odd reason [10:52:03.0000] no [10:53:00.0000] I meant really the drag and drop, which used to be defined for keyboard too [10:53:01.0000] right [10:53:02.0000] annevk: You should probably let the htmlwg know too [10:53:03.0000] the draft is just so difficult to read that you never know whether the feature is defined somewhere.. [10:54:00.0000] not very constructive [10:55:00.0000] http://html5.org/tools/web-apps-tracker?from=4643&to=4644 [10:56:00.0000] was the change [10:56:01.0000] it was commented out [10:58:00.0000] why does Google not do timezone conversion? [10:58:01.0000] In what context? [10:58:02.0000] it does [10:59:00.0000] it does? e.g. a query like "10am pdt in utc" [10:59:01.0000] it's not very intuitive syntax unfortunately [11:00:00.0000] what do you use? [11:00:01.0000] Well, I know you can use "time in X" to find the current time. I don't know what the syntax is for arbitrary conversion. [11:01:00.0000] yeah maybe there's no arbitrary conversion [11:08:00.0000] annevk: Use everytimezone.com [11:08:01.0000] annevk: Also, do you have a link to an explanation of the CSSOM Values API? [11:09:00.0000] annevk: http://www.wolframalpha.com/input/?i=10am+pdt+in+utc [11:09:01.0000] That'll give you more information than you likely wanted to know [11:10:00.0000] TabAtkins, http://lists.w3.org/Archives/Public/www-style/2010Aug/0617.html is the best I've got [11:10:01.0000] TabAtkins, including the follow up email from Boris and then me again [11:11:00.0000] kk. I wanted to show it around the office. [11:13:00.0000] sweet [11:14:00.0000] We've been wanting to push a non-sucky interface between CSS and JS for a bit now. [11:15:00.0000] annevk: you should ask hyatt about it [11:15:01.0000] he's on #webkit right now, though he may be watching the Apple event streaming video [11:16:00.0000] i am too [11:16:01.0000] and the question is on www-style, which hyatt reads to some extent [11:17:00.0000] but I will do that once I work on CSSOM again if he hasn't followed up himself [11:17:01.0000] playing with DOM Core now [11:45:00.0000] jgraham: It would help the Open part if one of the two interoperable impls is available under a GPL-compatible license and could be distributed as binary under the GPL [11:45:01.0000] (this definition implies stuff about patents) [11:45:02.0000] so Apple is gonna compete with Twitter/Facebook [11:45:03.0000] fun times [11:47:00.0000] I guess now I should watch the Stevenote, too [11:47:01.0000] I'll just let blogs do my summarizing for me later. [11:48:00.0000] boo. requires proprietary plug-in [11:48:01.0000] iTunes is turned into Twitter/Facebook basically [11:48:02.0000] when WebM streaming is known to work [11:49:00.0000] seems sort of walled garden variant though -- called Ping [11:59:00.0000] annevk: Pinged you with the email I sent internally about the CSSOM Values API. [11:59:01.0000] thanks for that [12:02:00.0000] I suppose the .m accessor means that every property that allows component values in multiple orders needs a defined "canonical" ordering so that we can number them? [12:02:01.0000] m is gone [12:02:02.0000] per your suggestion [12:02:03.0000] d'oh. How do you get at the subvalues of textShadow, then? [12:03:00.0000] textShadow["somethingwedefine"] [12:03:01.0000] Oh, okay. And then I guess .margin['top']? [12:03:02.0000] basically when a css value is mapped it implements the interface directly [12:03:03.0000] if it's a list it will get a .list accessor that gives you a list [12:04:00.0000] so backgroundImage.list and margin.top or some such, indeed [12:04:01.0000] I liked the terseness of .l, by the way. [12:05:00.0000] And, for that matter, the .r, .g, .b, and .a of the Color interface. [12:05:01.0000] we can tweak details later, but from experience with Selectors API it seems that people prefer libraries to provide shortcuts, and the core APIs to be unambiguous [12:07:00.0000] Does the textShadow['blur'] thing mean that we'd have to define the names of the subvalues when we define the property, even if we aren't defining subproperties yet? [12:07:01.0000] yes [12:07:02.0000] if you want a proper API for the property [12:07:03.0000] boris suggested we might not need a proper API for each property, but I think opinions are spread on that [12:08:00.0000] I think we'd want as much as possible. But we can certainly start small and build it out as we go. [12:08:01.0000] I'd be kind of afraid that .list may collide with some property name in the future. .l had the advantage of that being impossible. [12:09:00.0000] you mean we'd have a 'foo' shorthand and 'foo-list'? [12:09:01.0000] Maybe? [12:10:00.0000] and 'foo' also happens to be a comma or space-separated list... hmm [12:10:01.0000] could happen I suppose [12:10:02.0000] I think that for the basic workhorse properties it's totally fine to be terse. [12:10:03.0000] but we can work around it, but we can also rename [12:11:00.0000] I rather not focus too much on the specifics but more on the overall design right now [12:11:01.0000] specifics are pretty flexible [12:11:02.0000] Right, but we'll probably bikeshed on that somewhat anyway, since we're interested in making new DOM APIs not suck from the beginning. ^_^ [12:14:00.0000] annevk: Any idea how you want to handle function values yet? Presumably some generic function interface that can return contents or individual arguments as strings, but also specialized interfaces for specific functions like gradients? [12:15:00.0000] I'm not sure generic is needed [12:15:01.0000] e.g. url() will just be CSSURLComponent.url (maybe absoluteURL at some point) [12:16:00.0000] rgba()/rgb()/hsl()/hsla() are all CSSColorComponentValue [12:16:01.0000] How would you easily be able to distinguish between, say, .backgroundImage being a url and a gradient? [12:16:02.0000] you can .backgroundImage.type [12:16:03.0000] which gives you the type of value [12:17:00.0000] Ah, gotcha. Forgot about the .type global property. [12:17:01.0000] there's also .value currently [12:17:02.0000] Which returns what? [12:17:03.0000] but I'm not sure if that is needed [12:18:00.0000] when type=string it returns a string when type=color it returns some kind of hexadecimal value I suppose, etc. [12:18:01.0000] but again, maybe that should be dropped for now as it makes matters complex [12:18:02.0000] well, more complex than needed for v1 [12:18:03.0000] Hmm, yeah. [12:31:00.0000] What does the selectedOption attribute mean with an ? [12:36:00.0000] DOM Core needs love [13:49:00.0000] othermaciej, you noticed http://bitbucket.org/ms2ger/web-dom-core/ right? :) [13:49:01.0000] I did not [13:49:02.0000] cool [13:50:00.0000] annevk: Pointer to CSS Values? [13:50:01.0000] othermaciej, I'll put something in writing to WebApps Monday or so or maybe while I'm in Brighton [13:50:02.0000] jgraham, besides that email I mentioned in the scrollback there's http://dev.w3.org/csswg/cssom/#css-values [13:51:00.0000] jgraham, you need to scroll down some for interface sketching [13:58:00.0000] Opera people: on Linux, how can I get the little "O" icon to stop displaying in the system tray thing? You know, the one that violates the GNOME HIG by perpetually displaying an icon in the status area without being a core GNOME program. http://library.gnome.org/devel/hig-book/2.30/desktop-notification-area.html.en [13:58:01.0000] It annoys me when I keep Opera open all the time for testing. [13:59:00.0000] (since it shoves other icons out of view) [13:59:01.0000] it should be somewhere in opera:config [13:59:02.0000] opera:config#UserPrefs|ShowTrayIcon [14:00:00.0000] "Show Tray Icon" maybe? [14:00:01.0000] there you go [14:01:00.0000] Thanks, worked. [14:01:01.0000] (I never saw opera:config before, it's kind of scary. Less so than Mozilla's about:config, I guess.) [14:02:00.0000] annevk, Ms2ger: thanks for working on dom core [14:02:01.0000] zcorpan_, thanks for starting it :) [14:02:02.0000] that was years ago :) [14:03:00.0000] Ms2ger and gsnedders added tests/ [14:03:01.0000] that's particularly great [14:03:02.0000] yeah [14:03:03.0000] Ms2ger: No, I had no idea that MS Word generated @list rules. Pointer? [14:05:00.0000] annevk: I've got an internal request for some love to be thrown at a contextual unit-conversion function, so you could just ask an element how large "5em" or "50%" would be for it. [14:05:01.0000] TabAtkins, no pointers, just tests :) [14:05:02.0000] Basically just what was discussed a while ago on the list. [14:05:03.0000] Ms2ger: Pointer to tests? [14:06:00.0000] TabAtkins, isn't that what CSSLengthComponentValue / CSSPercentageComponentValue would do? [14:06:01.0000] Just save any word document with lists to HTML, I don't have one handy [14:06:02.0000] annevk: Yes, but you have to set a value on the element to get that information. If you're asking for the conversion so you can then use the length for positioning something else... [14:07:00.0000] Ms2ger: Hm, kk. [14:07:01.0000] hmm [14:07:02.0000] if you don't have properties calculating e.g. percentage is tricky [14:08:00.0000] percentage for 'width' and 'height' is different for instance (iirc) [14:08:01.0000] Ah, that's right. [14:08:02.0000] Yes, it is. [14:09:00.0000] "a call to importNode is required" -- that exception is basically only raised for createDocument if you pass in a doctype from another document, and you can't importNode a doctype anyway... iirc anyway [14:09:01.0000] So like, .measureFor(csslength::string, propertyname::string) -> px amount as a number. [14:10:00.0000] ugh [14:11:00.0000] use cases -> www-style? [14:11:01.0000] Sure. [14:12:00.0000] zcorpan_, at the moment importNode(DocumentType) works [14:12:01.0000] zcorpan_, you can push to the repo if you've got something better :) [14:13:00.0000] Ms2ger: then i first need to clone it :P [14:13:01.0000] zcorpan_, but once I fully know the spec and have written a bunch more tests I'm definitely going to ask implementors if they are interested in simplifying some of this [14:14:00.0000] annevk: ok, then i misremembered [14:15:00.0000] definitely some of this stuff does not make much sense [14:15:01.0000] throwing different exceptions for Name and QName violations... [14:15:02.0000] /me points at the topic [14:16:00.0000] annevk: frustrating isn't it [14:17:00.0000] a bit [14:17:01.0000] but maybe I can make some developers enthusiastic about touching the code [14:17:02.0000] i recommend beer [14:18:00.0000] heh [14:18:01.0000] Entusiastic about changing DOM Core in incompatible ways? GLWT :) [14:18:02.0000] You will need something stronger than beer at least [14:18:03.0000] depends on how much beer [14:19:00.0000] oh come on now [14:19:01.0000] people are screwing up their parser compat all over the place :) [14:19:02.0000] if it's better developers will come [14:19:03.0000] or something like that [14:19:04.0000] Next, let's draw some happy little clouds: http://i.imgur.com/2qMDS.jpg [14:20:00.0000] annevk: The parser thing is already scary as hell [14:20:01.0000] Even though it will be a great win in the end [14:20:02.0000] Making litle changes to DOM to make it nicer isn't such a big win and is just as scary [14:20:03.0000] the end for the parser is interop; in dom core we almost already have interop, it's just that it doesn't make sense [14:23:00.0000] TabAtkins, now you made me look for that storm cloud computing comic graphic from glazou and I cannot find it!!!11! [14:24:00.0000] Ms2ger: Hrm. My wife just made a doc with lists, and I don't see any @list rules. They're just all

s with explicit symbols/numbers/letters put in. [14:26:00.0000] Ms2ger: Do you know if this was a particular version? This was made with Word '07. [14:27:00.0000] I'm on 2003 [14:27:01.0000] TabAtkins: http://www.ar-t.co.uk/Energy.html is one [14:27:02.0000] TabAtkins: http://www.militarysaves.org/Newsletter/MilitarySavesNews-100108.html too, which says "Word 12" [14:27:03.0000] Ah, got it. Thank, Philip`. [14:28:00.0000] I think that modern Word generates *much* cleaner HTML. [14:30:00.0000] That wasn't hard [14:33:00.0000] Ms2ger: Were you talking to me about that because of my plan to rewrite the various list styles in terms of @list rules? [14:33:01.0000] TabAtkins, yes [14:33:02.0000] Thought you'd like to know [14:33:03.0000] Luckily, those are incompatible. It appears they always come with a colon in their name, which is incompatible with my proposal. Plus there's a bunch of prefixed properties that obviously wouldn't work. [14:47:00.0000] annevk: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/612 [14:48:00.0000] annevk: i get different exceptions in opera, firefox and chrome [14:48:01.0000] I know [14:48:02.0000] oh [14:48:03.0000] there's a test for that and the spec defines it [14:48:04.0000] i'm looking through the changelog [14:49:00.0000] the next change says "oops" :) [15:10:00.0000] TabAtkins, what's so nauseating about ? [15:11:00.0000] (other than inconsistent indentation) [15:11:01.0000] They just... keep rerunning the selector. Over and over and over again. [15:11:02.0000] That it does $() a lot instead of caching the result? [15:11:03.0000] Yes. That's expensive, *and* stupid. [15:12:00.0000] I could seven when it could be two. Surely that's not so expensive? [15:12:01.0000] The function looks like it's only called when the user clicks a button or something. [15:12:02.0000] Five extra selector calls should be negligible. [15:12:03.0000] Descendant selectors are always expensive, and I suspect if they're doing it once they're doing this throughout their codebase. [15:13:00.0000] They're expensive if you have to evaluate them many times per second, but that's usually not the case in JS. [15:13:01.0000] /me tests [15:16:00.0000] There's also several style violations for no reason. They use multiple .css() calls rather than just passing an object to set all the props at once. They also avoid chaining like the plague. [15:17:00.0000] All in all, it's just bad jQuery style in multiple ways, for no apparent reason. [15:17:01.0000] (The inconsisten indentation didn't even bother me at first, though it does now.) [15:23:00.0000] TabAtkins: Looks to me like they're optimising readability over performance [15:23:01.0000] which is an entirely sensible thing to do [15:23:02.0000] Philip`: No, they're not. jQuery convention is designed for readability. They're breaking convention for no good reason, which hurts readability for anyone used to working in jQuery. [15:24:00.0000] javascript:(function(){var start = Date.now(); var el; for (var i = 0; i < 1000; i++) { el = document.querySelector("#security-with-canvas-elements span"); } alert(Date.now() - start);})(); [15:24:01.0000] Gives me about 4700–4800 on complete.html. [15:24:02.0000] So half a millisecond, that's not bad, when you consider it's being called from script. [15:25:00.0000] (and that the HTML5 spec is pathological) [15:25:01.0000] I'm pretty sure if the thing is slow, it's because of macrooptimization issues, not failure to shave off a few queries here and there. [15:25:02.0000] Repeating selectors, lack of chaining, and repetition of the css() function are all against common style. [15:26:00.0000] Common style or your personal preferences? [15:26:01.0000] The former. I have some personal preferences that it's also violating, but I didn't mention those. [15:28:00.0000] "common style" sounds dangreously close to a verifiable statement [15:28:01.0000] It should be. [15:28:02.0000] Yay PEP 8! [15:29:00.0000] Indeed. [15:29:01.0000] FWIW I can't imagine that that particular style is actually causing any bad effects on that page [15:29:02.0000] Note: the original complain was that the code nauseates me. [15:30:00.0000] I would be #topic span is only matching one element anyway or something [15:31:00.0000] TabAtkins: You should see the rest of the code on the internet [15:31:01.0000] Or maybe you shouldn't [15:31:02.0000] I'd rather not, yeah. [15:34:00.0000] (also a good engine could probably cache the result of repeated application of the same selector. You need to invalidate correctly of course. Indeed that seems like a likely optimistaion) [15:34:01.0000] Yeah, it probably does so. [15:34:02.0000] So is it just good practice in JS to always do .slice(0) when assigning one array to another if you don't want one to change when the other does? [15:34:03.0000] You mean, should you make a copy when you want a copy? [15:35:00.0000] AryehGregor: No need for the 0 [15:35:01.0000] If we are being pedantic [15:35:02.0000] MDC seems to say it's required. It isn't? [15:36:00.0000] Without the 0 it should be treated as undefined which is the same as 0 [15:36:01.0000] AryehGregor: Seems like it might generally be easier to assume arrays are shared unless known otherwise, and clone with slice only in code that's about to modify a potentially-shared array [15:36:02.0000] Sneaky. [15:36:03.0000] Dunno what browsers actually do [15:36:04.0000] Philip`, then you have to remember what arrays are shared. [15:37:00.0000] I mean it is only the same as 0 in this case because it is specced to be [15:37:01.0000] I come from PHP-land, where everything copies unless you explicitly assign by reference (except maybe objects), so I'm not used to thinking about that. [15:37:02.0000] MikeSmith: ping [15:38:00.0000] PHP. That's a sign it is time for bed [15:38:01.0000] Or as Talking Heads put it "run run run run run away" [15:38:02.0000] AryehGregor: Remembering what things are shared is the norm in most languages. [15:39:00.0000] It seems tiresome. [15:39:01.0000] And error-prone. [15:39:02.0000] Shrug. The other way can be slow if you're not careful. [15:40:00.0000] You can avoid all these problems by only using immutable values [15:40:01.0000] Peter`: hej [15:40:02.0000] True. You avoid unnecessary copying and are protected from accidental mutation. [15:42:00.0000] Philip`, do immutable arrays exist in JS? [15:42:01.0000] No. [15:42:02.0000] MikeSmith: long story short, my server literally has vanished (yes, the physical box), so peter.sh's database isn't complete anymore. Going to re-add all posts right now. Although I expect things to be fine, a double message *could* reach planet html. Just a heads up [15:42:03.0000] Well... strings? I think they might be immutable? [15:43:00.0000] Are strings arrays? [15:44:00.0000] They're *like* arrays. [15:44:01.0000] AryehGregor: Make your own immutable list class [15:45:00.0000] Seems easier not to bother. [15:45:01.0000] like a {v:10, r:{v:20, r:null}} kind of thing [15:45:02.0000] Oh jeez. [15:45:03.0000] (with whatever stuff you need to make things read-only) [15:45:04.0000] Implementing conses manually? [15:46:00.0000] Define some functions to give you prettier syntax [15:47:00.0000] Hixie: Was there a specific reason why Workers can't have canvases? [15:48:00.0000] they can't have anything relating to the DOM [15:48:01.0000] because DOMs in browsers aren't threadsafe [15:48:02.0000] Right, but a DOMless canvas? [15:49:00.0000] A canvas is not much more than a DOM object [15:49:01.0000] so you wouldn't be left with much [15:49:02.0000] you mean a context? [15:49:03.0000] Well, sure. It's a host for the important bit, the context. [15:49:04.0000] Oh, I suppose there's that bit [15:49:05.0000] we could provide a context if we did the work of speccing it, just hasn't been done yet [15:49:06.0000] minus drawImage [15:49:07.0000] Ok, just making sure. [15:49:08.0000] i'd rather have people implement the older stuff like making wf2 actually work rather than adding new features :-) [15:50:00.0000] Heh, kk. There's just a discussion going on about canvas-in-workers again in Buzz. [15:51:00.0000] Presumably people who discuss things in Buzz aren't representative of typical web users' desires [15:51:01.0000] TabAtkins: there's been discussion in whatwg⊙wo too [15:52:00.0000] Right, but that was in the past. [15:53:00.0000] nothing has changed since [15:54:00.0000] (it was only like 2 weeks ago) [15:54:01.0000] http://forums.whatwg.org/viewtopic.php?t=4400 - i don't know anything about ePub, but would it make sense to add something to html to embed ePub books inline (with controls to navigate)? [15:54:02.0000] Time has no meaning to me when it's referring to something in the past. There's only old and broken, right now, and not happening soon enough. [15:55:00.0000] TabAtkins: wasn't the discussion in buzz also in the past? [15:55:01.0000] The time windows are fuzzy. [15:55:02.0000] My "now" is a nebulous window roughly an hour wide. [15:55:03.0000] zcorpan_: ePub is basically XHTML. You should just be able to use