00:11
<llrcombs>
what'd I miss?
00:11
<llrcombs>
UPS failed
00:12
<boogyman>
a lot of nothing
00:13
<llrcombs>
meh
01:01
<TabAtkins>
Random bugspam:
01:02
<TabAtkins>
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.
01:07
<aho>
it's magic, right?
01:07
<TabAtkins>
What, ARIA?
01:08
<aho>
"Any sufficiently advanced technology is indistinguishable from magic."
01:08
<aho>
that thing .)
01:08
<TabAtkins>
I don't think that ARIA qualifies as "sufficiently advanced" for that definition. ^_^
01:11
<Hixie>
when you call addEventListener() and pass it a lambda, what is the value of "this" when the event handler fires?
01:11
<TabAtkins>
The same as it is when you pass it a function name instead, iirc?
01:13
<Hixie>
the target node?
01:13
<TabAtkins>
Yeah.
01:14
<Hixie>
is that defined anywhere?
01:14
<TabAtkins>
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"?
01:16
<Hixie>
either
01:17
<TabAtkins>
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.
01:17
<TabAtkins>
The latter, I dunno.
01:18
<Hixie>
(the former is not true in all languages)
01:18
<Hixie>
(many languages for example distinguish between a method and a function)
01:19
<Hixie>
(i.e. an object-bound function and a free function. Some also have class functions.)
01:19
<Hixie>
(all of which can have different "this"-analogues)
01:22
<TabAtkins>
True, but method vs function is a different thing than lambda versus variable holding a function.
01:23
<Hixie>
sure
01:23
<Hixie>
i can't find this defined anywhere
01:23
<Hixie>
looked in html and dom events
01:23
<Hixie>
not that html should define it really
01:23
<Hixie>
no shepazu around
01:35
<Hixie>
did the ECMA group decide on how to do getters and setters yet?
01:52
<aho>
http://dmitrysoshnikov.com/ecmascript/es5-chapter-1-properties-and-property-descriptors/
01:52
<aho>
ctrl+f Object.defineProperty
01:55
<aho>
also ctrl+f for declarative
01:57
<Hixie>
aha
01:58
<Hixie>
({ get foo { }, set foo { } })
01:58
<Hixie>
({ get foo { }, set foo(value) { } }) rather
01:58
<aho>
foo={get test(){return "foo";}};alert(foo.test);
01:58
<aho>
simple example :)
01:58
<Hixie>
({ get foo () { }, set foo(value) { } }) even
06:32
<hsivonen>
+1 to AryehGregor on the weirdness of browser reformatting dates without translating the surrounding page
07:18
<othermaciej>
TabAtkins, Hixie: I believe in actuality, "this" is the object to which the event listener was added
07:19
<othermaciej>
not the target node
07:19
<Hixie>
er you i meant current target
07:19
<Hixie>
not the actual target
07:19
<Hixie>
whatever the terminology is
07:19
<othermaciej>
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
07:20
<othermaciej>
however, unlike attribute event listeners, there is no messing with the scope chain
07:20
<othermaciej>
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)
07:42
<hsivonen>
what's |this| with attachEvent?
07:43
hsivonen
hadn't realized that attachEvent wasn't just a naming difference
08:10
<hsivonen>
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?
08:11
<hsivonen>
or does Chromium not implement the spec exactly when it comes to style sheets blocking scripts?
08:14
<hsivonen>
hmm. loading that test case in Opera over a 5 Mbps connection suggests turning on Turbo due to slow connection
08:14
<hsivonen>
I guess cuzillion makes Opera think my connection is slow...
08:14
<hsivonen>
also, in IE and Opera, the number of scripts after the first .write is very spec-incompliant
08:24
<hsivonen>
ok. Chromium fails the baseline test: http://hsivonen.iki.fi/test/moz/sheet-blocking-script-baseline.php
08:24
<hsivonen>
so it doesn't block scripts when a style sheet is pending
09:09
<zcorpan_>
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
09:10
<zcorpan_>
Ms2ger: actually there's a comment in the source
09:14
<annevk>
making prefix readonly would be nice
09:14
<annevk>
i think we need to put Attr nodes back in though
09:15
<zcorpan_>
yeah
09:15
<hsivonen>
Attr nodes are sad but hard to get rid of them now
09:15
<annevk>
but maybe we can make them not inherit from Node
09:15
<annevk>
if impls are willing to try
09:16
<zcorpan_>
i think it's only worth changing impls if it's a perf benefit
09:17
<annevk>
in theory smaller objects -> less memory -> more perf
09:17
<zcorpan_>
sure
09:18
<zcorpan_>
Ms2ger: iirc the legal hierarchy section is broken and needs rewriting
09:18
<hsivonen>
Linux FAIL. Compiling Firefox inside Eclipse makes the mouse pointer and Spotify music jumpy
09:19
<hsivonen>
with 8 hardware threads...
09:22
<zcorpan_>
wtf happened to http://simon.html5.org/
09:23
<zcorpan_>
ok fixed
09:23
<zcorpan_>
dreamhost--
09:24
<zcorpan_>
also, why does favicon.gif keep reappearing?
09:25
<annevk>
zcorpan_, I think they add that automatically to reduce error logs or something
09:26
<zcorpan_>
ok. i hid it from the index
09:57
<jgraham>
othermaciej: I made some progress with the annotation thing BTW but didn't get as far as testing the changes
09:57
<jgraham>
So it will be done as soon as I get another free moment
09:58
<othermaciej>
jgraham: thanks for the update
09:58
<othermaciej>
I think I am off to bed
09:58
<othermaciej>
unable to do anything useful tonight
10:28
<annevk>
it would be great gsnedders if you could unfork the various anolis variants and provide a single version
10:28
<annevk>
as a web service preferably
10:29
<Ms2ger>
annevk++
10:33
<hsivonen>
some day, when I have nothing else to do, I want to make Gecko's script running less Observer Pattern-y
10:35
<jgraham>
annevk: gsnedders has explicitly lost interest in anolis
10:35
jgraham
already has a somewhat forked version running as a web service
10:36
<jgraham>
So I guess I am the logical person to pull in other changes
10:36
<annevk>
okay
10:36
<jgraham>
Ms2ger: What did you actually change?
10:36
<annevk>
ideally I'd like to see http://bitbucket.org/ms2ger/anolis unforked
10:37
<annevk>
and maybe also a bitbucket account for your webservice so Ms2ger/I/others can hack there
10:38
<Ms2ger>
I'm generating the references and some form of cross-doc xrefs
10:38
<annevk>
those features seem quite useful for e.g. XMLHttpRequest too
10:38
<jgraham>
annevk: All my code can at least be pulled. So you can clone it to bb if you like
10:40
<annevk>
could you maybe at links from somewhere to your stuff?
10:40
<annevk>
e.g. WHATWG wiki or http://james.html5.org/
10:41
<annevk>
ah, http://wiki.whatwg.org/wiki/Developing_HTML5_derivatives has some
10:44
<jgraham>
annevk: http://hg.hoppipolla.co.uk
10:44
<jgraham>
anolis is anolis
10:44
<jgraham>
aquarium is the web frontend
11:02
<MikeSmith>
jgraham: if you are going to be consolidating changes, I have a patch I hope you can apply
11:02
MikeSmith
goes to looks for it
11:03
<jgraham>
MikeSmith: The "make it take an insanely long time" feature?
11:03
<MikeSmith>
yup
11:03
<MikeSmith>
but it's an option
11:03
<MikeSmith>
off by default
11:03
<jgraham>
Sure :)
11:04
<MikeSmith>
and 6 minutes ain't such an insanely long time for generating an completel index of terms for an insanely big document…
11:05
<MikeSmith>
http://github.com/sideshowbarker/html5forAuthors/raw/master/patch.anolis
11:05
<MikeSmith>
I suspect that with other documents, it won't increase the build time much at all
11:07
<MikeSmith>
anyway, the option for invoking it is "--enable terms"
11:07
<MikeSmith>
(if anybody cares to try it with some other specs)
11:45
<Ms2ger>
annevk, yes, I think that would make more sense
12:15
<Ms2ger>
TabAtkins, you know that MS Word generates @list at-rules, right?
12:47
<annevk>
created http://wiki.whatwg.org/wiki/Anolis to keep track
12:53
<annevk>
Ms2ger, was that in reply to a private message on whether legal hierarchy should move into the method definitions? :)
12:53
<Ms2ger>
annevk, yes
12:53
<annevk>
k
13:00
<annevk>
Ms2ger, for clone shouldn't Attr just reference clone again? now it's missing e.g. namespaceURI
13:00
<Ms2ger>
Yes, probably
13:02
<annevk>
does Anolis still require <var title> ?
13:02
<annevk>
or can we just write <var>?
13:06
<Ms2ger>
I don't think it's required
13:21
<hsivonen>
whatwg.org is taking too long to respond
13:21
<hsivonen>
well, www.whatwg.org
13:27
<hsivonen>
did we decide something about preventing script execution if an ancestor of the script is iframe, noembed or noframes?
13:27
hsivonen
files a bug just in case
13:48
<zcorpan_>
hsivonen: i think the conclusion was that only gecko did this and it's not needed for compat
13:50
<hsivonen>
zcorpan_: thanks
13:56
<annevk>
Ms2ger, user agents match elements with id="a b" just fine
13:56
<annevk>
Ms2ger, did you put that constrain in there intentionally?
13:56
<Ms2ger>
I think Hixie did
13:57
<annevk>
Ms2ger, a validation constraint sure, but not on matching
13:57
<Ms2ger>
Then I probably misread
13:57
<annevk>
Ms2ger, btw, why does everything around Attr only talk about name and not qualifiedName/localName?
14:00
<Ms2ger>
Oversight
14:00
<annevk>
k
14:02
<Ms2ger>
Didn't I say you'd find a lot of bugs? :)
14:02
<Ms2ger>
baib
14:13
<annevk>
i guess you did
14:14
<annevk>
still it's pretty great i think
14:14
<annevk>
lot less to be done than I thought
14:25
<hsivonen>
Where can I find the definitive license&copyright info for http://trac.webkit.org/export/LATEST/trunk/LayoutTests/fast/tokenizer/write-on-load.html ?
14:25
<hsivonen>
(I'd like to import the test and a modification thereof to the Mozilla codebase)
14:27
<annevk>
ask abarth?
14:29
<hsivonen>
asked on the bug
14:33
<annevk>
hmm, Opera does not support inputEncoding...
14:52
<wirepair>
is it technically possible to create a fake websocket client with xhr+cors and allowing the domain?
14:52
<wirepair>
i'm trying to think of how it wouldn't be possible and i'm drawing a blank
15:25
<jgraham>
wirepair: assuming the current handshake, how would you create all the right tokens?
15:26
<jgraham>
+security
15:28
<wirepair>
jgraham well the client creates them originally no?
15:28
<wirepair>
so xhr.setRequestHeader('Sec-WebSocket-Key1: ...')
15:28
<annevk>
that's not possible
15:28
<annevk>
XHR blocks Sec-
15:29
<wirepair>
hmm lemme add taht testcase ;)
15:29
<wirepair>
i don't think chrome was blocking Origin
15:29
<annevk>
really?
15:29
<annevk>
I would be surprised
15:29
<wirepair>
let me test again
15:29
<wirepair>
it was either chrome or opera
15:29
<annevk>
ooh, Opera is different
15:29
<annevk>
we haven't updated XHR yet
15:29
<wirepair>
ah that might be it then ;)
15:30
<wirepair>
yeah it was opera
15:52
<annevk>
Ms2ger, would you mind if I change the file to something like web-dom-core.src.html ?
15:52
<annevk>
I'm hoping that would allow me to view it
15:53
<Ms2ger>
Not at all
15:53
<Ms2ger>
But please use hg mv, then
15:55
<annevk>
lets see if it worked
15:56
<annevk>
to some extent
15:56
<annevk>
http://bitbucket.org/ms2ger/web-dom-core/raw/tip/web-dom-core.src.html
16:04
<smaug____>
Ms2ger: AFAIK, hg mv has still some bugs
16:05
<Ms2ger>
Apparently
16:05
<smaug____>
Ms2ger: http://mercurial.selenic.com/bts/issue1576
16:05
<annevk>
did I break something?
16:06
<Ms2ger>
Just blame
16:06
<annevk>
bah
16:07
<annevk>
it's not too important I guess
16:09
<AryehGregor>
One of the great things about git is you don't have to say "mv" explicitly.
16:10
<AryehGregor>
It finds moves on the fly when you run commands like "blame".
16:10
<AryehGregor>
Which is nice, it's easy to forget to tell the VCS to move/copy/whatever.
16:16
<annevk>
oh god
16:16
<annevk>
gruber calls an IETF draft an open standard
16:16
<annevk>
and Apple too apparently
16:16
<annevk>
fun times
16:16
<AryehGregor>
Maybe I'm stupid, but -- it isn't?
16:17
<annevk>
in IETF land a standard is something that has at least RFC status, but really has to have STD status
16:17
<annevk>
a draft which anyone or their dog can submit is most definitely not an open standard :)
16:18
<AryehGregor>
Not even a draft open standard?
16:18
<AryehGregor>
I tend to interpret "standard" very liberally.
16:22
<annevk>
it's a smokescreen
16:23
<annevk>
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
16:24
<jgraham>
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
16:28
<AryehGregor>
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".
16:28
<AryehGregor>
Probably a good idea. Contentious terminology, not very clearly defined.
16:29
<AryehGregor>
Or, at least, no one can agree on a clear definition.
16:38
<annevk>
what are web accelerators?
16:40
<Rik`>
the new IE8 stuff ?
16:40
<Philip`>
http://en.wikipedia.org/wiki/Web_accelerator ?
16:40
<Philip`>
Sounds like a caching proxy
16:40
<AryehGregor>
I don't know, something MS made up in IE8.
16:40
<AryehGregor>
They posted a spec after the fact and said anyone could implement it, so it's an open standard!
16:43
<Rik`>
http://en.wikipedia.org/wiki/Accelerator_%28Internet_Explorer%29
16:44
<espadrine>
that's not a web accelerator, is it?
16:45
<Philip`>
"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."
16:45
<Philip`>
Microsoft introduced the mouse in IE8?
16:46
<cheeser>
<blink>uh...</blink>
16:46
<cheeser>
that's not really what it's saying. ;)
16:47
<jgraham>
Well obviously the mouse already existed. It's the one they introduced in IE8 that you can use to do the fancy shit
16:49
<AryehGregor>
It was Web Slices, that was it.
16:49
<AryehGregor>
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]"
16:50
<AryehGregor>
Originally I just said it was "non-standard", but someone reverted me.
16:50
<AryehGregor>
" Please define standard? standard set by whom? ie published a spec!"
16:55
<annevk>
i see...
16:58
<AryehGregor>
"Open standard" is a bit more precise, but it still has no generally-accepted definition.
16:59
<AryehGregor>
You can argue something is an "open standard" if it has a published spec and is royalty-free.
17:00
<annevk>
i would expect at least two independent implementations in addition to that
17:00
<annevk>
and a test suite
17:00
<AryehGregor>
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.
17:01
<AryehGregor>
Seriously, though, there are tons of standards that don't have a test suite.
17:01
<AryehGregor>
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.
17:05
<jgraham>
It is pretty hard to think of standards that meet that set of conditions
17:06
<Rik`>
CSS 3D transforms ?
17:06
<jgraham>
Especially if you usefully restrict the requirements for the size of the testsuite
17:06
<jgraham>
i.e. it can't be trivial to pass
17:10
<AryehGregor>
Which set of conditions?
17:12
<jgraham>
Two independent interoperable implementations and a testsuite
17:14
<AryehGregor>
Yeah, there aren't many of those.
17:15
<AryehGregor>
CSS 2.1 is pretty close, right?
17:19
<TabAtkins>
Yeah, it's getting there.
17:47
<annevk>
maybe I should announce Web DOM Core to www-dom or some such
17:48
<annevk>
hmm, public-webapps has far more subscribers
17:48
<TabAtkins>
I'd announce it on public-webapps.
17:49
<annevk>
yeah
17:50
<smaug____>
keyboard d-n-d was removed from the draft some time ago, right?
17:52
<annevk>
no
17:52
<annevk>
oh wait, yes
17:52
<annevk>
sorry, thought you meant copy/paste for some odd reason
17:52
<smaug____>
no
17:53
<smaug____>
I meant really the drag and drop, which used to be defined for keyboard too
17:53
<annevk>
right
17:53
<jgraham>
annevk: You should probably let the htmlwg know too
17:53
<smaug____>
the draft is just so difficult to read that you never know whether the feature is defined somewhere..
17:54
<annevk>
not very constructive
17:55
<annevk>
http://html5.org/tools/web-apps-tracker?from=4643&to=4644
17:56
<annevk>
was the change
17:56
<annevk>
it was commented out
17:58
<annevk>
why does Google not do timezone conversion?
17:58
<TabAtkins>
In what context?
17:58
<Hixie>
it does
17:59
<annevk>
it does? e.g. a query like "10am pdt in utc"
17:59
<Hixie>
it's not very intuitive syntax unfortunately
18:00
<annevk>
what do you use?
18:00
<TabAtkins>
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.
18:01
<Hixie>
yeah maybe there's no arbitrary conversion
18:08
<TabAtkins>
annevk: Use everytimezone.com
18:08
<TabAtkins>
annevk: Also, do you have a link to an explanation of the CSSOM Values API?
18:09
<Philip`>
annevk: http://www.wolframalpha.com/input/?i=10am+pdt+in+utc
18:09
<Philip`>
That'll give you more information than you likely wanted to know
18:10
<annevk>
TabAtkins, http://lists.w3.org/Archives/Public/www-style/2010Aug/0617.html is the best I've got
18:10
<annevk>
TabAtkins, including the follow up email from Boris and then me again
18:11
<TabAtkins>
kk. I wanted to show it around the office.
18:13
<annevk>
sweet
18:14
<TabAtkins>
We've been wanting to push a non-sucky interface between CSS and JS for a bit now.
18:15
<othermaciej>
annevk: you should ask hyatt about it
18:15
<othermaciej>
he's on #webkit right now, though he may be watching the Apple event streaming video
18:16
<annevk>
i am too
18:16
<annevk>
and the question is on www-style, which hyatt reads to some extent
18:17
<annevk>
but I will do that once I work on CSSOM again if he hasn't followed up himself
18:17
<annevk>
playing with DOM Core now
18:45
<hsivonen>
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
18:45
<hsivonen>
(this definition implies stuff about patents)
18:45
<annevk>
so Apple is gonna compete with Twitter/Facebook
18:45
<annevk>
fun times
18:47
<hsivonen>
I guess now I should watch the Stevenote, too
18:47
<TabAtkins>
I'll just let blogs do my summarizing for me later.
18:48
<hsivonen>
boo. requires proprietary plug-in
18:48
<annevk>
iTunes is turned into Twitter/Facebook basically
18:48
<hsivonen>
when WebM streaming is known to work
18:49
<annevk>
seems sort of walled garden variant though -- called Ping
18:59
<TabAtkins>
annevk: Pinged you with the email I sent internally about the CSSOM Values API.
18:59
<annevk>
thanks for that
19:02
<TabAtkins>
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?
19:02
<annevk>
m is gone
19:02
<annevk>
per your suggestion
19:02
<TabAtkins>
d'oh. How do you get at the subvalues of textShadow, then?
19:03
<annevk>
textShadow["somethingwedefine"]
19:03
<TabAtkins>
Oh, okay. And then I guess .margin['top']?
19:03
<annevk>
basically when a css value is mapped it implements the interface directly
19:03
<annevk>
if it's a list it will get a .list accessor that gives you a list
19:04
<annevk>
so backgroundImage.list and margin.top or some such, indeed
19:04
<TabAtkins>
I liked the terseness of .l, by the way.
19:05
<TabAtkins>
And, for that matter, the .r, .g, .b, and .a of the Color interface.
19:05
<annevk>
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
19:07
<TabAtkins>
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?
19:07
<annevk>
yes
19:07
<annevk>
if you want a proper API for the property
19:07
<annevk>
boris suggested we might not need a proper API for each property, but I think opinions are spread on that
19:08
<TabAtkins>
I think we'd want as much as possible. But we can certainly start small and build it out as we go.
19:08
<TabAtkins>
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.
19:09
<annevk>
you mean we'd have a 'foo' shorthand and 'foo-list'?
19:09
<TabAtkins>
Maybe?
19:10
<annevk>
and 'foo' also happens to be a comma or space-separated list... hmm
19:10
<annevk>
could happen I suppose
19:10
<TabAtkins>
I think that for the basic workhorse properties it's totally fine to be terse.
19:10
<annevk>
but we can work around it, but we can also rename
19:11
<annevk>
I rather not focus too much on the specifics but more on the overall design right now
19:11
<annevk>
specifics are pretty flexible
19:11
<TabAtkins>
Right, but we'll probably bikeshed on that somewhat anyway, since we're interested in making new DOM APIs not suck from the beginning. ^_^
19:14
<TabAtkins>
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?
19:15
<annevk>
I'm not sure generic is needed
19:15
<annevk>
e.g. url() will just be CSSURLComponent.url (maybe absoluteURL at some point)
19:16
<annevk>
rgba()/rgb()/hsl()/hsla() are all CSSColorComponentValue
19:16
<TabAtkins>
How would you easily be able to distinguish between, say, .backgroundImage being a url and a gradient?
19:16
<annevk>
you can .backgroundImage.type
19:16
<annevk>
which gives you the type of value
19:17
<TabAtkins>
Ah, gotcha. Forgot about the .type global property.
19:17
<annevk>
there's also .value currently
19:17
<TabAtkins>
Which returns what?
19:17
<annevk>
but I'm not sure if that is needed
19:18
<annevk>
when type=string it returns a string when type=color it returns some kind of hexadecimal value I suppose, etc.
19:18
<annevk>
but again, maybe that should be dropped for now as it makes matters complex
19:18
<annevk>
well, more complex than needed for v1
19:18
<TabAtkins>
Hmm, yeah.
19:31
<espadrine>
What does the selectedOption attribute mean with an <input type=search> ?
19:36
<othermaciej>
DOM Core needs love
20:49
<annevk>
othermaciej, you noticed http://bitbucket.org/ms2ger/web-dom-core/ right? :)
20:49
<othermaciej>
I did not
20:49
<othermaciej>
cool
20:50
<jgraham>
annevk: Pointer to CSS Values?
20:50
<annevk>
othermaciej, I'll put something in writing to WebApps Monday or so or maybe while I'm in Brighton
20:50
<annevk>
jgraham, besides that email I mentioned in the scrollback there's http://dev.w3.org/csswg/cssom/#css-values
20:51
<annevk>
jgraham, you need to scroll down some for interface sketching
20:58
<AryehGregor>
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
20:58
<AryehGregor>
It annoys me when I keep Opera open all the time for testing.
20:59
<AryehGregor>
(since it shoves other icons out of view)
20:59
<annevk>
it should be somewhere in opera:config
20:59
<daedb>
opera:config#UserPrefs|ShowTrayIcon
21:00
<annevk>
"Show Tray Icon" maybe?
21:00
<annevk>
there you go
21:01
<AryehGregor>
Thanks, worked.
21:01
<AryehGregor>
(I never saw opera:config before, it's kind of scary. Less so than Mozilla's about:config, I guess.)
21:02
<zcorpan_>
annevk, Ms2ger: thanks for working on dom core
21:02
<Ms2ger>
zcorpan_, thanks for starting it :)
21:02
<zcorpan_>
that was years ago :)
21:03
<annevk>
Ms2ger and gsnedders added tests/
21:03
<annevk>
that's particularly great
21:03
<zcorpan_>
yeah
21:03
<TabAtkins>
Ms2ger: No, I had no idea that MS Word generated @list rules. Pointer?
21:05
<TabAtkins>
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.
21:05
<Ms2ger>
TabAtkins, no pointers, just tests :)
21:05
<TabAtkins>
Basically just what was discussed a while ago on the list.
21:05
<TabAtkins>
Ms2ger: Pointer to tests?
21:06
<annevk>
TabAtkins, isn't that what CSSLengthComponentValue / CSSPercentageComponentValue would do?
21:06
<Ms2ger>
Just save any word document with lists to HTML, I don't have one handy
21:06
<TabAtkins>
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...
21:07
<TabAtkins>
Ms2ger: Hm, kk.
21:07
<annevk>
hmm
21:07
<annevk>
if you don't have properties calculating e.g. percentage is tricky
21:08
<annevk>
percentage for 'width' and 'height' is different for instance (iirc)
21:08
<TabAtkins>
Ah, that's right.
21:08
<TabAtkins>
Yes, it is.
21:09
<zcorpan_>
"a call to <code title=dom-Document-importNode>importNode</code> 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
21:09
<TabAtkins>
So like, .measureFor(csslength::string, propertyname::string) -> px amount as a number.
21:10
<annevk>
ugh
21:11
<annevk>
use cases -> www-style?
21:11
<TabAtkins>
Sure.
21:12
<annevk>
zcorpan_, at the moment importNode(DocumentType) works
21:12
<Ms2ger>
zcorpan_, you can push to the repo if you've got something better :)
21:13
<zcorpan_>
Ms2ger: then i first need to clone it :P
21:13
<annevk>
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
21:14
<zcorpan_>
annevk: ok, then i misremembered
21:15
<annevk>
definitely some of this stuff does not make much sense
21:15
<annevk>
throwing different exceptions for Name and QName violations...
21:15
Ms2ger
points at the topic
21:16
<zcorpan_>
annevk: frustrating isn't it
21:17
<annevk>
a bit
21:17
<annevk>
but maybe I can make some developers enthusiastic about touching the code
21:17
<zcorpan_>
i recommend beer
21:18
<annevk>
heh
21:18
<jgraham>
Entusiastic about changing DOM Core in incompatible ways? GLWT :)
21:18
<jgraham>
You will need something stronger than beer at least
21:18
<zcorpan_>
depends on how much beer
21:19
<annevk>
oh come on now
21:19
<annevk>
people are screwing up their parser compat all over the place :)
21:19
<annevk>
if it's better developers will come
21:19
<annevk>
or something like that
21:19
<TabAtkins>
Next, let's draw some happy little clouds: http://i.imgur.com/2qMDS.jpg
21:20
<jgraham>
annevk: The parser thing is already scary as hell
21:20
<jgraham>
Even though it will be a great win in the end
21:20
<jgraham>
Making litle changes to DOM to make it nicer isn't such a big win and is just as scary
21:20
<zcorpan_>
the end for the parser is interop; in dom core we almost already have interop, it's just that it doesn't make sense
21:23
<annevk>
TabAtkins, now you made me look for that storm cloud computing comic graphic from glazou and I cannot find it!!!11!
21:24
<TabAtkins>
Ms2ger: Hrm. My wife just made a doc with lists, and I don't see any @list rules. They're just all <p>s with explicit symbols/numbers/letters put in.
21:26
<TabAtkins>
Ms2ger: Do you know if this was a particular version? This was made with Word '07.
21:27
<Ms2ger>
I'm on 2003
21:27
<Philip`>
TabAtkins: http://www.ar-t.co.uk/Energy.html is one
21:27
<Philip`>
TabAtkins: http://www.militarysaves.org/Newsletter/MilitarySavesNews-100108.html too, which says "Word 12"
21:27
<TabAtkins>
Ah, got it. Thank, Philip`.
21:28
<TabAtkins>
I think that modern Word generates *much* cleaner HTML.
21:30
<Ms2ger>
That wasn't hard
21:33
<TabAtkins>
Ms2ger: Were you talking to me about that because of my plan to rewrite the various list styles in terms of @list rules?
21:33
<Ms2ger>
TabAtkins, yes
21:33
<Ms2ger>
Thought you'd like to know
21:33
<TabAtkins>
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.
21:47
<zcorpan_>
annevk: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/612
21:48
<zcorpan_>
annevk: i get different exceptions in opera, firefox and chrome
21:48
<annevk>
I know
21:48
<zcorpan_>
oh
21:48
<annevk>
there's a test for that and the spec defines it
21:48
<zcorpan_>
i'm looking through the changelog
21:49
<annevk>
the next change says "oops" :)
22:10
<AryehGregor>
TabAtkins, what's so nauseating about <http://miketaylr.com/post/edc33d19.png>;?
22:11
<AryehGregor>
(other than inconsistent indentation)
22:11
<TabAtkins>
They just... keep rerunning the selector. Over and over and over again.
22:11
<AryehGregor>
That it does $() a lot instead of caching the result?
22:11
<TabAtkins>
Yes. That's expensive, *and* stupid.
22:12
<AryehGregor>
I could seven when it could be two. Surely that's not so expensive?
22:12
<AryehGregor>
The function looks like it's only called when the user clicks a button or something.
22:12
<AryehGregor>
Five extra selector calls should be negligible.
22:12
<TabAtkins>
Descendant selectors are always expensive, and I suspect if they're doing it once they're doing this throughout their codebase.
22:13
<AryehGregor>
They're expensive if you have to evaluate them many times per second, but that's usually not the case in JS.
22:13
AryehGregor
tests
22:16
<TabAtkins>
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.
22:17
<TabAtkins>
All in all, it's just bad jQuery style in multiple ways, for no apparent reason.
22:17
<TabAtkins>
(The inconsisten indentation didn't even bother me at first, though it does now.)
22:23
<Philip`>
TabAtkins: Looks to me like they're optimising readability over performance
22:23
<Philip`>
which is an entirely sensible thing to do
22:23
<TabAtkins>
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.
22:24
<AryehGregor>
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);})();
22:24
<AryehGregor>
Gives me about 4700–4800 on complete.html.
22:24
<AryehGregor>
So half a millisecond, that's not bad, when you consider it's being called from script.
22:25
<AryehGregor>
(and that the HTML5 spec is pathological)
22:25
<AryehGregor>
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.
22:25
<TabAtkins>
Repeating selectors, lack of chaining, and repetition of the css() function are all against common style.
22:26
<Philip`>
Common style or your personal preferences?
22:26
<TabAtkins>
The former. I have some personal preferences that it's also violating, but I didn't mention those.
22:28
<jgraham>
"common style" sounds dangreously close to a verifiable statement
22:28
<TabAtkins>
It should be.
22:28
<AryehGregor>
Yay PEP 8!
22:29
<TabAtkins>
Indeed.
22:29
<jgraham>
FWIW I can't imagine that that particular style is actually causing any bad effects on that page
22:29
<TabAtkins>
Note: the original complain was that the code nauseates me.
22:30
<jgraham>
I would be #topic span is only matching one element anyway or something
22:31
<jgraham>
TabAtkins: You should see the rest of the code on the internet
22:31
<jgraham>
Or maybe you shouldn't
22:31
<TabAtkins>
I'd rather not, yeah.
22:34
<jgraham>
(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)
22:34
<TabAtkins>
Yeah, it probably does so.
22:34
<AryehGregor>
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?
22:34
<TabAtkins>
You mean, should you make a copy when you want a copy?
22:35
<jgraham>
AryehGregor: No need for the 0
22:35
<jgraham>
If we are being pedantic
22:35
<AryehGregor>
MDC seems to say it's required. It isn't?
22:36
<jgraham>
Without the 0 it should be treated as undefined which is the same as 0
22:36
<Philip`>
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
22:36
<AryehGregor>
Sneaky.
22:36
<jgraham>
Dunno what browsers actually do
22:36
<AryehGregor>
Philip`, then you have to remember what arrays are shared.
22:37
<jgraham>
I mean it is only the same as 0 in this case because it is specced to be
22:37
<AryehGregor>
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.
22:37
<Peter->
MikeSmith: ping
22:38
<jgraham>
PHP. That's a sign it is time for bed
22:38
<jgraham>
Or as Talking Heads put it "run run run run run away"
22:38
<TabAtkins>
AryehGregor: Remembering what things are shared is the norm in most languages.
22:39
<AryehGregor>
It seems tiresome.
22:39
<AryehGregor>
And error-prone.
22:39
<TabAtkins>
Shrug. The other way can be slow if you're not careful.
22:40
<Philip`>
You can avoid all these problems by only using immutable values
22:40
<MikeSmith>
Peter`: hej
22:40
<TabAtkins>
True. You avoid unnecessary copying and are protected from accidental mutation.
22:42
<AryehGregor>
Philip`, do immutable arrays exist in JS?
22:42
<TabAtkins>
No.
22:42
<Peter->
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
22:42
<TabAtkins>
Well... strings? I think they might be immutable?
22:43
<AryehGregor>
Are strings arrays?
22:44
<TabAtkins>
They're *like* arrays.
22:44
<Philip`>
AryehGregor: Make your own immutable list class
22:45
<AryehGregor>
Seems easier not to bother.
22:45
<Philip`>
like a {v:10, r:{v:20, r:null}} kind of thing
22:45
<TabAtkins>
Oh jeez.
22:45
<Philip`>
(with whatever stuff you need to make things read-only)
22:45
<TabAtkins>
Implementing conses manually?
22:46
<Philip`>
Define some functions to give you prettier syntax
22:47
<TabAtkins>
Hixie: Was there a specific reason why Workers can't have canvases?
22:48
<Hixie>
they can't have anything relating to the DOM
22:48
<Hixie>
because DOMs in browsers aren't threadsafe
22:48
<TabAtkins>
Right, but a DOMless canvas?
22:49
<Philip`>
A canvas is not much more than a DOM object
22:49
<Philip`>
so you wouldn't be left with much
22:49
<Hixie>
you mean a context?
22:49
<TabAtkins>
Well, sure. It's a host for the important bit, the context.
22:49
<Philip`>
Oh, I suppose there's that bit
22:49
<Hixie>
we could provide a context if we did the work of speccing it, just hasn't been done yet
22:49
<Philip`>
minus drawImage
22:49
<TabAtkins>
Ok, just making sure.
22:49
<Hixie>
i'd rather have people implement the older stuff like making wf2 actually work rather than adding new features :-)
22:50
<TabAtkins>
Heh, kk. There's just a discussion going on about canvas-in-workers again in Buzz.
22:51
<Philip`>
Presumably people who discuss things in Buzz aren't representative of typical web users' desires
22:51
<Hixie>
TabAtkins: there's been discussion in whatwg⊙wo too
22:52
<TabAtkins>
Right, but that was in the past.
22:53
<Hixie>
nothing has changed since
22:54
<Hixie>
(it was only like 2 weeks ago)
22:54
<zcorpan_>
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)?
22:54
<TabAtkins>
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.
22:55
<zcorpan_>
TabAtkins: wasn't the discussion in buzz also in the past?
22:55
<TabAtkins>
The time windows are fuzzy.
22:55
<TabAtkins>
My "now" is a nebulous window roughly an hour wide.
22:55
<Hixie>
zcorpan_: ePub is basically XHTML. You should just be able to use <iframe> (with jar:, or you could expand the zipfile and point straight at the data files).
22:56
<zcorpan_>
Hixie: that was my first reaction as well, but iframe doesn't have navigation controls
22:56
<Hixie>
well you can't frame html pages either if you want navigation controls
22:56
<Hixie>
nothing special about ePub there
22:58
<TabAtkins>
I believe people's opinions of wikis are inversely correlated with how recently they got into an edit war.
22:59
<zcorpan_>
Hixie: then people will use flash or something instead of iframe to embed ePub books
23:00
<Hixie>
zcorpan_: how unfortunate for their users
23:08
<AryehGregor>
Aren't missing breaks in switch statements fun?
23:08
<Dashiva>
This is why you have static analysis tools
23:08
<TabAtkins>
Switch statements are fundamentally broken.
23:09
<Dashiva>
Fundamentally awesome, more like it.
23:10
<TabAtkins>
They would be if they worked in the opposite way and needed a continue statement or similar to activate fall-through.
23:11
<AryehGregor>
Except in the special case of an empty statement, so you can do things like case "foo": case "bar": ...
23:12
<TabAtkins>
I can see that exception, sure.
23:12
<workmad3>
AryehGregor: I believe skipping a 'break' in any situation apart from that one is an error (or at least a warning) in C# :)
23:14
<MikeSmith>
Peter`: no problem -- thanks for the heads-up
23:15
<zcorpan_>
hsivonen falls through in his html parser iirc
23:15
<MikeSmith>
Peter`: and sorry about your server vanishing
23:15
<MikeSmith>
I hope it ends up reappearing
23:16
<Peter->
MikeSmith: it seems to be going ok, already added a few posts and nothing got updated. I hope so too, it's colocated and it was rather expensive. Servers in datacenters mustn't randomly disappear.
23:18
<AryehGregor>
"Must" in the sense of RFC 2119? :)
23:18
<Peter->
If only :(
23:19
<zcorpan_>
rfc2119 musts are violated all the time
23:21
<zcorpan_>
nn
23:23
<AryehGregor>
Am I hallucinating, or do UAs treat form.action as a string rather than a URL? I can't believe I missed that, if they do.
23:25
<Dashiva>
How do you mean, treat?
23:25
<AryehGregor>
No, I'm not hallucinating.
23:25
<AryehGregor>
I just missed it before.
23:25
<AryehGregor>
Surely I filed a Firefox bug, at least . . . ?
23:26
<AryehGregor>
Dashiva, I mean, like form.action = "foo"; alert(form.action); seems per spec as though it should alert "http://baseurl/foo";.
23:26
<AryehGregor>
Like, I don't know, a.href works.
23:26
<AryehGregor>
But it seems browsers don't do that.
23:26
<AryehGregor>
And I didn't realize until I just rewrote my tests and started checking their correctness.
23:27
<AryehGregor>
Okay, IE8 does treat it as a URL, but that's the only one.
23:27
AryehGregor
updates a bug he filed about form.action already
23:53
<AryehGregor>
Man, enum reflection is like six times as complicated as any other type of reflection.