00:59
<_bga>
http://js1k.com/2012-love/demo/1243
01:00
<_bga>
http://js1k.com/2012-love/demo/1243
01:19
<scott_gonzalez>
Hixie: .innerHTML in IE clears the innerHTML of all descendants. Do you agree that this is a bug?
01:19
<scott_gonzalez>
http://jsfiddle.net/Hej6h/6/
01:20
<scott_gonzalez>
Hixie: .innerHTML in IE clears the innerHTML of all descendants. Do you agree that this is a bug?
01:20
<scott_gonzalez>
http://jsfiddle.net/Hej6h/6/
01:26
<smaug____>
it does what?
01:26
<smaug____>
it does what?
01:27
<Hixie>
scott_gonzalez: sounds like a bug, yes
01:27
<Hixie>
scott_gonzalez: sounds like a bug, yes
01:27
<scott_gonzalez>
smaug____: If you have <p><a>x</a></p>
01:27
<scott_gonzalez>
And you have a reference to the anchor element.
01:27
<scott_gonzalez>
Then you do p.innerHTML = "";
01:27
<scott_gonzalez>
a.innerHTML will get cleared as well.
01:28
<scott_gonzalez>
smaug____: If you have <p><a>x</a></p>
01:28
<scott_gonzalez>
And you have a reference to the anchor element.
01:28
<scott_gonzalez>
Then you do p.innerHTML = "";
01:28
<scott_gonzalez>
a.innerHTML will get cleared as well.
01:28
<scott_gonzalez>
So your reference is pretty much useless at that point.
01:28
<Hixie>
what happens to the text node's data if you still have the text node around?
01:28
<scott_gonzalez>
I haven't tried that. Let me check.
01:28
<Hixie>
what happens to the text node's data if you still have the text node around?
01:28
<scott_gonzalez>
I haven't tried that. Let me check.
01:28
<Hixie>
and what if the <a> element contains another element?
01:29
<Hixie>
and what if the <a> element contains another element?
01:30
<scott_gonzalez>
That seems to get cleared out too.
01:31
<scott_gonzalez>
That seems to get cleared out too.
01:32
<scott_gonzalez>
Same results when a contains another element.
01:32
<Hixie>
so it empties every text node and every element's child list?
01:32
<Hixie>
how weird
01:32
<scott_gonzalez>
Same results when a contains another element.
01:32
<Hixie>
so it empties every text node and every element's child list?
01:32
<Hixie>
how weird
01:33
<smaug____>
not very weird
01:34
<smaug____>
not very weird
01:34
<smaug____>
I could imagine it can help releasing memory in certain cases
01:35
<smaug____>
I could imagine it can help releasing memory in certain cases
01:35
<Hixie>
seems like it would waste a lot of cycles
01:36
<Hixie>
seems like it would waste a lot of cycles
01:36
<Hixie>
given that the memory will likely be released anyway at GC
01:36
<Hixie>
given that the memory will likely be released anyway at GC
01:36
<scott_gonzalez>
Right, it would only help if there are references to the nodes. And GC can't kick in for those until the references are removed anyway.
01:37
<scott_gonzalez>
Right, it would only help if there are references to the nodes. And GC can't kick in for those until the references are removed anyway.
01:37
<scott_gonzalez>
Although right now GC is kicking in too early if there are references.
01:37
<scott_gonzalez>
Since the nodes are staying, but they're losing all of their content.
01:37
<scott_gonzalez>
Although right now GC is kicking in too early if there are references.
01:37
<scott_gonzalez>
Since the nodes are staying, but they're losing all of their content.
01:43
<scott_gonzalez>
I'll report this to Microsoft and see what they say.
01:43
<scott_gonzalez>
I'll report this to Microsoft and see what they say.
08:01
zcorpan
discovers http://www.w3.org/TR/CSS21/aural.html#Emacspeak
08:02
zcorpan
discovers http://www.w3.org/TR/CSS21/aural.html#Emacspeak
08:18
<hsivonen>
zcorpan: are there other impls besides Emacspeak?
08:18
<hsivonen>
zcorpan: are there other impls besides Emacspeak?
08:19
<zcorpan>
hsivonen: dunno
08:19
<zcorpan>
hsivonen: dunno
08:19
<zcorpan>
but i hadn't expected that kind of section in css 2.1
08:20
<zcorpan>
but i hadn't expected that kind of section in css 2.1
08:33
<asmodai>
That's interesting, latest nvidia drivers seem to change something with font look in Firefox.
08:34
<asmodai>
That's interesting, latest nvidia drivers seem to change something with font look in Firefox.
08:47
<asmodai>
Mm, restart of firefox cleared that up. Guess it doesn't like having the driver ripped out from underneath it and updated by the recent nvidia installers.
08:47
<asmodai>
Mm, restart of firefox cleared that up. Guess it doesn't like having the driver ripped out from underneath it and updated by the recent nvidia installers.
08:59
<loostro>
Hi, is this correct? <a><li>some item</li></a> or I must do <li><a><div>some item</div></a></li> to make sure the anchor covers the whole box?
08:59
<loostro>
Hi, is this correct? <a><li>some item</li></a> or I must do <li><a><div>some item</div></a></li> to make sure the anchor covers the whole box?
09:07
<zcorpan>
loostro: neither. you should do <li><a>some item</a></li> and then apply display:block to the link
09:07
<zcorpan>
loostro: neither. you should do <li><a>some item</a></li> and then apply display:block to the link
09:07
<loostro>
thx
09:08
<loostro>
thx
10:24
zcorpan
finds http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsBRFrame.cpp#137
10:25
zcorpan
finds http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsBRFrame.cpp#137
10:36
<Velmont>
Should be more idb people here. Anyone feel called to discuss? :P
10:36
<Velmont>
Should be more idb people here. Anyone feel called to discuss? :P
10:40
<smaug____>
Velmont: you need to wait for sicking
10:40
<smaug____>
Velmont: you need to wait for sicking
10:40
<jgraham>
Velmont: I thought "idb people" were sicking
10:41
<jgraham>
Velmont: I thought "idb people" were sicking
10:41
<jgraham>
And maybe some people at Microsoft, but they're not allowed to hang around here
10:41
<jgraham>
And maybe some people at Microsoft, but they're not allowed to hang around here
10:44
<Velmont>
jgraham: Yep, -- but also Jonas from google would be swell to have here.
10:45
<Velmont>
jgraham: Yep, -- but also Jonas from google would be swell to have here.
10:45
<Velmont>
smaug____: Yeah yeah, -- I know, but he's not really in my timezone, -- so often not here when I want to talk about stuff :]
10:45
<Velmont>
smaug____: Hence the "more".
10:45
<Velmont>
smaug____: Yeah yeah, -- I know, but he's not really in my timezone, -- so often not here when I want to talk about stuff :]
10:45
<Velmont>
smaug____: Hence the "more".
10:46
<Velmont>
Don't have to be editor or anything, -- just knowing the spec very well. ;]
10:46
<Velmont>
Don't have to be editor or anything, -- just knowing the spec very well. ;]
10:46
<smaug____>
Jonas from google ?
10:46
<Velmont>
Joshua Bell I meant.
10:46
<smaug____>
Jonas from google ?
10:46
<Velmont>
Joshua Bell I meant.
10:46
<Velmont>
sry :P Talking about Sicking made me write the wrong name. :P
10:47
<Velmont>
sry :P Talking about Sicking made me write the wrong name. :P
12:16
<zcorpan>
turns out there were more quirks in the source that weren't documented in mdn http://simon.html5.org/specs/quirks-mode#the-???-quirks
12:16
<zcorpan>
turns out there were more quirks in the source that weren't documented in mdn http://simon.html5.org/specs/quirks-mode#the-???-quirks
12:20
<StoneCypher>
why is quirksmode being documented?
12:20
<StoneCypher>
why is quirksmode being documented?
12:20
<zcorpan>
http://simon.html5.org/specs/quirks-mode#goals
12:20
<StoneCypher>
i don't understand the purpose; i thought quirksmode was a grab-bag of browsers trying to DWIM and universally failing
12:20
<StoneCypher>
well no
12:20
<StoneCypher>
all that does is say what you're doing
12:20
<StoneCypher>
not why
12:21
<zcorpan>
http://simon.html5.org/specs/quirks-mode#goals
12:21
<StoneCypher>
i don't understand the purpose; i thought quirksmode was a grab-bag of browsers trying to DWIM and universally failing
12:21
<StoneCypher>
well no
12:21
<StoneCypher>
all that does is say what you're doing
12:21
<StoneCypher>
not why
12:21
<StoneCypher>
i mean yes, i can see that you're documenting quirksmode; the question is why that's desirable.
12:21
<StoneCypher>
i mean yes, i can see that you're documenting quirksmode; the question is why that's desirable.
12:21
<zcorpan>
ah. much for the same reason we specified e.g. html parsing
12:21
<jgraham>
> i thought quirksmode was a grab-bag of browsers trying to DWIM and universally failing
12:21
<jgraham>
That's where you went wrong
12:22
<zcorpan>
ah. much for the same reason we specified e.g. html parsing
12:22
<jgraham>
> i thought quirksmode was a grab-bag of browsers trying to DWIM and universally failing
12:22
<jgraham>
That's where you went wrong
12:22
<StoneCypher>
jgraham: okay, so what is it?
12:22
<annevk>
StoneCypher: "Get interoperability on quirks that are needed for Web compat." seems like a pretty clear "why"
12:22
<StoneCypher>
jgraham: okay, so what is it?
12:22
<annevk>
StoneCypher: "Get interoperability on quirks that are needed for Web compat." seems like a pretty clear "why"
12:22
<StoneCypher>
that's a "what"
12:22
<StoneCypher>
not a "why"
12:22
<annevk>
"Limit quirks to a fixed set of legacy features so they don't propagate into new features." too actually
12:22
<StoneCypher>
those are goals, not purposes.
12:23
<StoneCypher>
that's a "what"
12:23
<StoneCypher>
not a "why"
12:23
<annevk>
"Limit quirks to a fixed set of legacy features so they don't propagate into new features." too actually
12:23
<StoneCypher>
those are goals, not purposes.
12:23
<zcorpan>
we want to get interop because it makes sites render the same across browsers, which is good for browser developers not needing to tweak quirks all the time and reverse engineer others, and it's good for users because sites that are written against quirks mode for browser A works the same in browser B
12:24
<zcorpan>
we want to get interop because it makes sites render the same across browsers, which is good for browser developers not needing to tweak quirks all the time and reverse engineer others, and it's good for users because sites that are written against quirks mode for browser A works the same in browser B
12:24
<jgraham>
If you don't think that interoperability between browsers is a good enough reason to have a spec, I'm not sure what anyone could say to convince you that standards are a good idea
12:24
<StoneCypher>
i think we're sort of missing the point of the question
12:24
<jgraham>
If you don't think that interoperability between browsers is a good enough reason to have a spec, I'm not sure what anyone could say to convince you that standards are a good idea
12:24
<StoneCypher>
i think we're sort of missing the point of the question
12:24
<StoneCypher>
it was my understanding that the purpose of quirksmode was to allow browsers to silently fall back to prior, standards violating behavior
12:25
<StoneCypher>
it was my understanding that the purpose of quirksmode was to allow browsers to silently fall back to prior, standards violating behavior
12:25
<jgraham>
No
12:25
<StoneCypher>
so either i misundersatnd what quirksmode is
12:25
<StoneCypher>
okay, so what is it, i ask again
12:25
<jgraham>
Many browsers don't have "prior" behaviour
12:25
<jgraham>
No
12:25
<StoneCypher>
so either i misundersatnd what quirksmode is
12:25
<StoneCypher>
okay, so what is it, i ask again
12:25
<jgraham>
Many browsers don't have "prior" behaviour
12:25
<jgraham>
They were written after the standard
12:26
<jgraham>
They were written after the standard
12:26
<zcorpan>
quirks mode was introduced because the css spec was incompatible with behavior ("quirks") that existing content relied on
12:26
<zcorpan>
quirks mode was introduced because the css spec was incompatible with behavior ("quirks") that existing content relied on
12:26
<zcorpan>
instead of fixing css to be compatible
12:26
<StoneCypher>
zcorpan: i am unable to distinguish between that and what i said
12:26
<StoneCypher>
zcorpan: what am i missing
12:26
<jgraham>
The point of quirks mode is to bridge the disconnect that emerged (mostly) in the early days of CSS between what was actually needed to render documents on the web and what the CSS people wrote down
12:26
<jgraham>
This led to two populations of documents
12:27
<zcorpan>
instead of fixing css to be compatible
12:27
<StoneCypher>
zcorpan: i am unable to distinguish between that and what i said
12:27
<StoneCypher>
zcorpan: what am i missing
12:27
<jgraham>
The point of quirks mode is to bridge the disconnect that emerged (mostly) in the early days of CSS between what was actually needed to render documents on the web and what the CSS people wrote down
12:27
<jgraham>
This led to two populations of documents
12:27
<StoneCypher>
this pretty much sounds like "let the browser violate the standard"
12:27
<jgraham>
Ones that depended on the new behaiour and ones that depended on the old behaviour
12:27
<StoneCypher>
this pretty much sounds like "let the browser violate the standard"
12:27
<jgraham>
Ones that depended on the new behaiour and ones that depended on the old behaviour
12:28
<jgraham>
Any web browser needs to support both
12:28
<jgraham>
Any web browser needs to support both
12:28
<jgraham>
So far only one population has had good implementation instructions
12:28
<StoneCypher>
so, i respect that there is an art form to talking around the intent of a question
12:28
<StoneCypher>
but
12:28
<StoneCypher>
my question stands
12:28
<StoneCypher>
in what way is that not "let the browsers ignore the standards for old documents"
12:29
<jgraham>
So far only one population has had good implementation instructions
12:29
<StoneCypher>
so, i respect that there is an art form to talking around the intent of a question
12:29
<StoneCypher>
but
12:29
<StoneCypher>
my question stands
12:29
<StoneCypher>
in what way is that not "let the browsers ignore the standards for old documents"
12:29
<jgraham>
I think you are making the erroneous assumption that calling something a "standard" makes it magical
12:29
<StoneCypher>
i didn't say anything about magic
12:30
<jgraham>
I think you are making the erroneous assumption that calling something a "standard" makes it magical
12:30
<StoneCypher>
i didn't say anything about magic
12:30
<annevk>
o_O
12:30
<annevk>
o_O
12:30
<jgraham>
OK then, let me rephrase
12:30
<jgraham>
The point of the document is the exact opposite of what you say
12:31
<jgraham>
OK then, let me rephrase
12:31
<jgraham>
The point of the document is the exact opposite of what you say
12:31
<jgraham>
It is "create a standard for rendering old (or indeed new, if they happen to have a particular pragma) documents"
12:31
<StoneCypher>
oh.
12:31
<jgraham>
It is "create a standard for rendering old (or indeed new, if they happen to have a particular pragma) documents"
12:31
<StoneCypher>
oh.
12:31
<StoneCypher>
well that was straightforward.
12:31
<StoneCypher>
thakn you.
12:32
<StoneCypher>
well that was straightforward.
12:32
<StoneCypher>
thakn you.
12:32
<StoneCypher>
are you open to small suggestions?
12:32
<zcorpan>
is there something i should add to the spec, like a section "Motivation" that discusses this?
12:32
<zcorpan>
sure
12:32
<StoneCypher>
are you open to small suggestions?
12:32
<zcorpan>
is there something i should add to the spec, like a section "Motivation" that discusses this?
12:32
<zcorpan>
sure
12:32
<StoneCypher>
that's what i was about to suggest, actually :)
12:32
<StoneCypher>
people from standards-focussed languages (in my case, c++) will read those goals in the way that i did, i believe
12:32
<StoneCypher>
adding a statement of purpose will clarify what one wants here
12:33
<StoneCypher>
that's what i was about to suggest, actually :)
12:33
<StoneCypher>
people from standards-focussed languages (in my case, c++) will read those goals in the way that i did, i believe
12:33
<StoneCypher>
adding a statement of purpose will clarify what one wants here
12:33
<StoneCypher>
a bullet added to those goals, basically a cut and paste of jgraham's last sentence, will reach dim people like me quite quickly
12:33
<zcorpan>
is what jgraham wrote good enough for the spec or should it be phrased in some different way?
12:33
<StoneCypher>
a bullet added to those goals, basically a cut and paste of jgraham's last sentence, will reach dim people like me quite quickly
12:33
<zcorpan>
is what jgraham wrote good enough for the spec or should it be phrased in some different way?
12:33
<zcorpan>
k
12:33
<StoneCypher>
other than rephrasing to fit the style of the doc, it's near-ideal
12:33
<StoneCypher>
jgraham: apologies if i was being dense. i really didn't get it until then.
12:34
<zcorpan>
k
12:34
<StoneCypher>
other than rephrasing to fit the style of the doc, it's near-ideal
12:34
<StoneCypher>
jgraham: apologies if i was being dense. i really didn't get it until then.
12:35
<kennyluck>
(re. So far only one population has had good implementation instructions) Because no one bother care the other population which doesn't grow.
12:36
<kennyluck>
(re. So far only one population has had good implementation instructions) Because no one bother care the other population which doesn't grow.
12:36
<StoneCypher>
is the idea to solidify the handling of legacy documents, or are people (not counting people who just don't know any better, say code cut and pasters) actually still using quirksmode on purpose?
12:36
<kennyluck>
It's fair to say the quirks mode documentation a worthwhile document (so other people don't need to reverse engineer, indeed), though I doubt we will actually reach interop for this population.
12:37
<StoneCypher>
is the idea to solidify the handling of legacy documents, or are people (not counting people who just don't know any better, say code cut and pasters) actually still using quirksmode on purpose?
12:37
<kennyluck>
It's fair to say the quirks mode documentation a worthwhile document (so other people don't need to reverse engineer, indeed), though I doubt we will actually reach interop for this population.
12:37
<StoneCypher>
i agree, now that i know what it's for
12:37
<StoneCypher>
i agree, now that i know what it's for
12:37
<kennyluck>
And I don't think it makes to the Web better if reaching interop for this population actually makes the browsers slower.
12:37
<StoneCypher>
well, if browsers are well authored, it shouldn't
12:38
<kennyluck>
And I don't think it makes to the Web better if reaching interop for this population actually makes the browsers slower.
12:38
<StoneCypher>
well, if browsers are well authored, it shouldn't
12:38
<StoneCypher>
things that kick in in quirksmode have no need to be in the mainline path of control
12:38
<StoneCypher>
things that kick in in quirksmode have no need to be in the mainline path of control
12:42
<jgraham>
kennyluck: I don't think it's either true that it doesn't grow or that people don't care. I thoroughly expect that Opera has site-compat bugs related to slight differences in quirks mode
12:43
<jgraham>
kennyluck: I don't think it's either true that it doesn't grow or that people don't care. I thoroughly expect that Opera has site-compat bugs related to slight differences in quirks mode
12:43
<jgraham>
and users don't exactly check the doctype and decide "oh the site depends on undefined behaviour. I should stop using the site rather than switch browser"
12:43
<jgraham>
and users don't exactly check the doctype and decide "oh the site depends on undefined behaviour. I should stop using the site rather than switch browser"
12:43
<jgraham>
Especially if it e.g. their bank
12:43
<kennyluck>
That's true.
12:43
<zcorpan>
ok i added what jgraham said verbatim to Goals. thanks
12:44
<jgraham>
Especially if it e.g. their bank
12:44
<kennyluck>
That's true.
12:44
<zcorpan>
ok i added what jgraham said verbatim to Goals. thanks
12:47
<ard_>
hi. what should I do if I'd like to see something added to http://wiki.whatwg.org/wiki/Canvas (new api proposals) ?
12:47
<ard_>
hi. what should I do if I'd like to see something added to http://wiki.whatwg.org/wiki/Canvas (new api proposals) ?
12:50
<kennyluck>
Anyway, I would probably not call this document "Quirks Mode Standards" but something like "Quirks Mode Interoperability Living Document" or "CSS LS — Appendix X. Quirks Mode (This section in non-normative)".
12:50
<kennyluck>
Anyway, I would probably not call this document "Quirks Mode Standards" but something like "Quirks Mode Interoperability Living Document" or "CSS LS — Appendix X. Quirks Mode (This section in non-normative)".
12:51
<StoneCypher>
zcorpan: word
12:51
<StoneCypher>
zcorpan: word
12:51
<StoneCypher>
zcorpan, jgraham, annevk: thank you for the discussion
12:51
<StoneCypher>
i feel like i forgot someone
12:52
<StoneCypher>
zcorpan, jgraham, annevk: thank you for the discussion
12:52
<StoneCypher>
i feel like i forgot someone
12:53
<annevk>
ard_: at this point it's prolly best to email
12:54
<annevk>
ard_: at this point it's prolly best to email
12:54
<ard_>
annevk: hixie?
12:54
<annevk>
ard_: and it's best to email about use cases, not solutions
12:54
<annevk>
ard_: whatwg⊙wo
12:54
<annevk>
ard_: you need to be subscribed first
12:54
<ard_>
annevk: hixie?
12:54
<annevk>
ard_: and it's best to email about use cases, not solutions
12:54
<annevk>
ard_: whatwg⊙wo
12:54
<annevk>
ard_: you need to be subscribed first
12:56
<ard_>
annevk: I'll try. thanks :)
12:57
<ard_>
annevk: I'll try. thanks :)
13:05
<matjas>
“'background' on the root element is rendered on the canvas. @SelenIT2 and less surprisingly @davidbaron and @zcorpan had this. #csspubquiz” — http://twitter.com/annevk/status/180277920072351745 mind explaining?
13:05
<matjas>
i have a feeling this is not just about <style>:root { background: lime; }</style>
13:05
<matjas>
“'background' on the root element is rendered on the canvas. @SelenIT2 and less surprisingly @davidbaron and @zcorpan had this. #csspubquiz” — http://twitter.com/annevk/status/180277920072351745 mind explaining?
13:05
<matjas>
i have a feeling this is not just about <style>:root { background: lime; }</style>
13:07
<kennyluck>
"I didn't expect spec comment handling to turn into Validator.nu feature bargaining."
13:08
<kennyluck>
"I didn't expect spec comment handling to turn into Validator.nu feature bargaining."
13:08
<StoneCypher>
lal
13:08
<MikeSmith>
kennyluck: what you quoting from?
13:08
<StoneCypher>
lal
13:08
<MikeSmith>
kennyluck: what you quoting from?
13:08
<kennyluck>
MikeSmith, https://www.w3.org/Bugs/Public/show_bug.cgi?id=15936#c4
13:09
<kennyluck>
MikeSmith, https://www.w3.org/Bugs/Public/show_bug.cgi?id=15936#c4
13:16
<matjas>
re: root background (http://www.w3.org/TR/CSS21/colors.html#background), what exactly fails in all browsers except IE/Opera?
13:17
<matjas>
re: root background (http://www.w3.org/TR/CSS21/colors.html#background), what exactly fails in all browsers except IE/Opera?
13:20
<annevk>
matjas: you forgot display:none
13:21
<annevk>
matjas: you forgot display:none
13:21
<annevk>
matjas: http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%3Cstyle%3E%3Aroot%7Bdisplay%3Anone%3Bbackground%3Alime%7D%3C%2Fstyle%3E
13:21
<annevk>
matjas: http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%3Cstyle%3E%3Aroot%7Bdisplay%3Anone%3Bbackground%3Alime%7D%3C%2Fstyle%3E
13:21
<matjas>
annevk: oh wow! thanks
13:22
<matjas>
annevk: oh wow! thanks
13:22
<annevk>
tweet is a little ambiguous because of length
13:22
<annevk>
everyone renders it on canvas
13:22
<annevk>
but gecko/webkit don't when display:none
13:23
<annevk>
tweet is a little ambiguous because of length
13:23
<annevk>
everyone renders it on canvas
13:23
<annevk>
but gecko/webkit don't when display:none
13:23
<annevk>
they prolly simple don't look at background
13:23
<annevk>
they prolly simple don't look at background
13:23
<annevk>
yeah
13:23
<annevk>
Gecko has the same bug for body{display:none;background:lime}
13:24
<annevk>
yeah
13:24
<annevk>
Gecko has the same bug for body{display:none;background:lime}
13:24
<annevk>
WebKit too
13:24
<annevk>
(body elements in the HTML namespace get their background property propagated too)
13:25
<annevk>
(body elements in the HTML namespace get their background property propagated too)
13:29
<matjas>
annevk: where does it say that about `body`? is that defined by CSS or HTML?
13:30
<matjas>
annevk: where does it say that about `body`? is that defined by CSS or HTML?
13:30
matjas
geeks out on these obscure fun facts
13:30
<annevk>
CSS
13:30
matjas
geeks out on these obscure fun facts
13:30
<annevk>
CSS
13:30
<annevk>
http://www.w3.org/TR/CSS21/colors.html#background
13:30
<matjas>
“ For documents whose root element is an HTML "HTML" element or an XHTML "html" element that has computed values of 'transparent' for 'background-color' and 'none' for 'background-image', user agents must instead use the computed value of the background properties from that element's first HTML "BODY" element or XHTML "body" element child when painting backgrounds for the canvas, and must not pa
13:31
<annevk>
http://www.w3.org/TR/CSS21/colors.html#background
13:31
<matjas>
int a background for that child element.”
13:31
<annevk>
fourth paragraph
13:31
<matjas>
“ For documents whose root element is an HTML "HTML" element or an XHTML "html" element that has computed values of 'transparent' for 'background-color' and 'none' for 'background-image', user agents must instead use the computed value of the background properties from that element's first HTML "BODY" element or XHTML "body" element child when painting backgrounds for the canvas, and must not pa
13:31
<matjas>
int a background for that child element.”
13:31
<annevk>
fourth paragraph
13:31
<matjas>
right
13:31
<matjas>
mind = blown
13:31
<matjas>
right
13:31
<annevk>
http://www.w3.org/TR/CSS21/visufx.html#overflow has the same
13:31
<matjas>
mind = blown
13:31
<annevk>
http://www.w3.org/TR/CSS21/visufx.html#overflow has the same
13:36
<matjas>
ah, i remember being confused by that a couple of years ago, in a design that required `body { overflow: auto }`
13:36
<matjas>
ah, i remember being confused by that a couple of years ago, in a design that required `body { overflow: auto }`
13:37
<zcorpan>
annevk: alert() didn't count as a correct answer? :-)
13:37
<zcorpan>
annevk: alert() didn't count as a correct answer? :-)
13:37
<kennyluck>
annevk, should that actually include <frameset> to match document.body ?
13:37
kennyluck
was thinking about this today.
13:37
<zcorpan>
no
13:38
<kennyluck>
annevk, should that actually include <frameset> to match document.body ?
13:38
kennyluck
was thinking about this today.
13:38
<zcorpan>
no
13:38
<kennyluck>
I haven't tested it, but that's a bit surprising. Anyway.
13:39
<kennyluck>
I haven't tested it, but that's a bit surprising. Anyway.
13:39
<jgraham>
That is like the fourth time matjas has said "mind = blown" in here recently. Does someone keep scraping the bits off the wall and reassembling them?
13:39
<jgraham>
That is like the fourth time matjas has said "mind = blown" in here recently. Does someone keep scraping the bits off the wall and reassembling them?
13:39
<matjas>
jgraham: probably not worth it
13:40
<matjas>
jgraham: probably not worth it
14:09
<Philip`>
Hmph, it looks like people have started doing animated ads with HTML instead of Flash now, so I can't trivially block them :-(
14:10
<Philip`>
Hmph, it looks like people have started doing animated ads with HTML instead of Flash now, so I can't trivially block them :-(
14:11
<StoneCypher>
yeah, when you try to starve sites of the revenue that makes them run, they fight you.
14:12
<bga>
Philip` * { animation: none !important } ?
14:13
<bga>
Philip` * { animation: none !important } ?
14:13
<StoneCypher>
:/
14:13
<StoneCypher>
:/
14:13
<webben>
Philip`: Really? Got an example?
14:14
<webben>
Philip`: Really? Got an example?
14:14
<Philip`>
bga: It's not CSS animation, it's just JS moving things around
14:15
<Philip`>
bga: It's not CSS animation, it's just JS moving things around
14:15
<bga>
ah. i disabled js in browser so never see it
14:16
<bga>
ah. i disabled js in browser so never see it
14:16
<Philip`>
webben: http://www.eurogamer.net/ (especially the "This weeks [sic] top games" on the right of the page, which is very distracting when trying to read any nearby text) (don't know if the ads are location-dependent)
14:16
<Philip`>
webben: http://www.eurogamer.net/ (especially the "This weeks [sic] top games" on the right of the page, which is very distracting when trying to read any nearby text) (don't know if the ads are location-dependent)
14:19
<annevk>
argh
14:19
<annevk>
why does IE not support overrideMimeType
14:20
<annevk>
argh
14:20
<annevk>
why does IE not support overrideMimeType
14:20
<Workshiva>
That would require supporting mime types to begin with :P
14:20
<Workshiva>
That would require supporting mime types to begin with :P
14:20
<bga>
annevk for what?
14:20
<bga>
binary data hack?
14:20
<annevk>
Workshiva: haha just dropping in at the appropriate times huh?
14:21
<bga>
annevk for what?
14:21
<bga>
binary data hack?
14:21
<annevk>
Workshiva: haha just dropping in at the appropriate times huh?
14:21
<annevk>
bga: testing euc-jp without much of a server
14:21
<annevk>
bga: testing euc-jp without much of a server
14:22
<zcorpan>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1400 intredasting
14:22
<Workshiva>
I'm always here, just not saying anything
14:22
<zcorpan>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1400 intredasting
14:22
<Workshiva>
I'm always here, just not saying anything
14:25
<Velmont>
Bah, -- firefox doesn't fire success event after upgradeneeded after a second opening of a datababase. It seems very wrong, -- but I'm not sure if I did something wrong in the test.
14:25
<Velmont>
Bah, -- firefox doesn't fire success event after upgradeneeded after a second opening of a datababase. It seems very wrong, -- but I'm not sure if I did something wrong in the test.
14:37
<annevk>
well well
14:37
<annevk>
maybe I don't need to test IE
14:38
<annevk>
well well
14:38
<annevk>
maybe I don't need to test IE
14:38
<annevk>
for valid multi-octet sequences in euc-jp there's agreement between Chrome, Opera, and Firefox
14:38
<annevk>
for valid multi-octet sequences in euc-jp there's agreement between Chrome, Opera, and Firefox
14:43
<MikeSmith>
annevk: btw we need tests for sandbox allow-popups behavior
14:43
<MikeSmith>
just sayin
14:43
<MikeSmith>
webkit and IE have both implemented it
14:43
<MikeSmith>
without a spec
14:44
<MikeSmith>
annevk: btw we need tests for sandbox allow-popups behavior
14:44
<MikeSmith>
just sayin
14:44
<MikeSmith>
webkit and IE have both implemented it
14:44
<MikeSmith>
without a spec
14:44
<MikeSmith>
so in order to make a proper spec we need to test it and see what we find
14:45
<MikeSmith>
so in order to make a proper spec we need to test it and see what we find
14:45
<MikeSmith>
jgraham: ↑
14:45
<annevk>
i'm not doing much with sandbox
14:45
<MikeSmith>
jgraham: ↑
14:45
<annevk>
i'm not doing much with sandbox
14:45
<annevk>
ideally webkit/ie contribute some tests
14:45
<MikeSmith>
yeah
14:45
<MikeSmith>
but to be clear the spec work is blocked on that
14:46
<annevk>
ideally webkit/ie contribute some tests
14:46
<MikeSmith>
yeah
14:46
<MikeSmith>
but to be clear the spec work is blocked on that
14:46
<MikeSmith>
Hixie needs data in order to actually spec it out
14:47
<MikeSmith>
Hixie needs data in order to actually spec it out
14:47
<MikeSmith>
and I can write the tests myself if I need to I guess
14:47
<MikeSmith>
but really
14:47
<MikeSmith>
and I can write the tests myself if I need to I guess
14:47
<MikeSmith>
but really
14:47
<annevk>
oh did I make a comment about allow-popups somewhere?
14:47
<MikeSmith>
no, not you personally
14:48
<annevk>
oh did I make a comment about allow-popups somewhere?
14:48
<MikeSmith>
no, not you personally
14:48
<annevk>
my email to WHATWG was about script-opened links, unrelated to sandboxing
14:48
<annevk>
my email to WHATWG was about script-opened links, unrelated to sandboxing
14:49
<MikeSmith>
my point is, when vendors unilaterally choose to implement something that's not in the spec, the least they can do is to provide cross-browser test cases for that feature
14:49
<MikeSmith>
my point is, when vendors unilaterally choose to implement something that's not in the spec, the least they can do is to provide cross-browser test cases for that feature
14:50
<MikeSmith>
because at this point it's yet another case of, We implemented this, now Hixie has to reverse-engineer what we implemented and make a spec for it
14:50
<MikeSmith>
because at this point it's yet another case of, We implemented this, now Hixie has to reverse-engineer what we implemented and make a spec for it
14:50
<MikeSmith>
which is fucktarded
14:50
<annevk>
no disagreement there :)
14:51
<MikeSmith>
which is fucktarded
14:51
<annevk>
no disagreement there :)
14:51
<jgraham>
MikeSmith: fucktarded it may be, but it is the traditional mode of operation :(
14:51
<jgraham>
MikeSmith: fucktarded it may be, but it is the traditional mode of operation :(
14:51
<MikeSmith>
yeah well
14:51
<MikeSmith>
it obviously doesn't scale
14:52
<MikeSmith>
yeah well
14:52
<MikeSmith>
it obviously doesn't scale
14:52
<MikeSmith>
one dude cannot be expected to single-handedly do that work
14:52
<MikeSmith>
one dude cannot be expected to single-handedly do that work
14:52
<jgraham>
In related news, the facebook mobile test thing that everyone got excited about links to a "feature" that has a Safari blog post for the "spec"
14:53
<jgraham>
In related news, the facebook mobile test thing that everyone got excited about links to a "feature" that has a Safari blog post for the "spec"
14:54
<MikeSmith>
jgraham: eh?
14:54
<MikeSmith>
which one?
14:55
<MikeSmith>
jgraham: eh?
14:55
<MikeSmith>
which one?
14:55
<MikeSmith>
if that is the case, talk to Rick Waldron and have it fixed
14:55
<jgraham>
http://www.webkit.org/blog/176/css-canvas-drawing/
14:56
<jgraham>
http://www.webkit.org/blog/176/css-canvas-drawing/
14:56
<MikeSmith>
jgraham: and_
14:56
<MikeSmith>
jgraham: and?
14:57
<MikeSmith>
jgraham: and_
14:57
<MikeSmith>
jgraham: and?
14:58
<jgraham>
MikeSmith: You asked which one. That one.
14:58
<jgraham>
Is there an actual spec for that?
14:58
<jgraham>
If so the test should link to it
14:59
<jgraham>
MikeSmith: You asked which one. That one.
14:59
<jgraham>
Is there an actual spec for that?
14:59
<jgraham>
If so the test should link to it
14:59
<jgraham>
Anyway it's hardly the only problem with that test
14:59
<jgraham>
Anyway it's hardly the only problem with that test
14:59
<jgraham>
I thought maybe the Mobile Web Community Group were supposed to talk about this sort of thing but so far we had an argument about whether ipads are the only tablets
15:00
<jgraham>
I thought maybe the Mobile Web Community Group were supposed to talk about this sort of thing but so far we had an argument about whether ipads are the only tablets
15:00
<jgraham>
Sorry "Core Mobile Web Platform"
15:00
<jgraham>
Sorry "Core Mobile Web Platform"
15:00
<jgraham>
And afaik the code is still unreleased
15:00
<beverloo>
MikeSmith, already talked to him previously
15:00
<jgraham>
Although thegh do seem to have helpfully minimised the test code so its even harder to read than it was before
15:00
<beverloo>
it's intentional
15:01
<jgraham>
And afaik the code is still unreleased
15:01
<beverloo>
MikeSmith, already talked to him previously
15:01
<beverloo>
the test should "demonstrate what is relevant for authors"
15:01
<jgraham>
Although thegh do seem to have helpfully minimised the test code so its even harder to read than it was before
15:01
<beverloo>
it's intentional
15:01
<beverloo>
the test should "demonstrate what is relevant for authors"
15:01
<jgraham>
I would like to find out who these authors are, exactly
15:02
<jgraham>
I would like to find out who these authors are, exactly
15:02
<MikeSmith>
beverloo: OK
15:02
<jgraham>
Although you would hope that something authors were actually clammering for would have gone from blogpost to draft spec in < 4 years
15:03
<MikeSmith>
beverloo: OK
15:03
<jgraham>
Although you would hope that something authors were actually clammering for would have gone from blogpost to draft spec in < 4 years
15:06
<jgraham>
(In case anyone is listening and so that I can refer to the list later, rng.io also seems to be very confused about the perspective property, really really like Blobs and BlobBuilder - which will die, encourage implementation of old or prefixed forms, and have a really stupid scoring system)
15:06
<jgraham>
(there is probably more)
15:06
<jgraham>
(In case anyone is listening and so that I can refer to the list later, rng.io also seems to be very confused about the perspective property, really really like Blobs and BlobBuilder - which will die, encourage implementation of old or prefixed forms, and have a really stupid scoring system)
15:06
<jgraham>
(there is probably more)
15:08
<jgraham>
(oh and it suggests implementing the details element, which I think should be gated on the WebComponents work, which isn't featured)
15:08
<jgraham>
(oh and it suggests implementing the details element, which I think should be gated on the WebComponents work, which isn't featured)
15:26
<annevk>
preferences on how to display what is essentially a sparse array? (extended jis208)
15:27
<annevk>
preferences on how to display what is essentially a sparse array? (extended jis208)
15:27
<annevk>
I'm thinking something like
15:27
<annevk>
0210 0xFF17 #textual representation of code point
15:28
<annevk>
I'm thinking something like
15:28
<annevk>
0210 0xFF17 #textual representation of code point
15:28
<annevk>
so 4-digit index, tab, code point, tab, comment
15:28
<annevk>
index in decimal
15:28
<annevk>
so 4-digit index, tab, code point, tab, comment
15:28
<annevk>
index in decimal
15:28
<annevk>
index skips FFFD segments
15:29
<annevk>
index skips FFFD segments
15:30
<annevk>
per usual nobody cares?
15:30
<annevk>
in a kingdom of one...
15:30
<annevk>
per usual nobody cares?
15:30
<annevk>
in a kingdom of one...
15:39
<Hixie>
MikeSmith: to be fair, two implementors implemented it (so it wasn't unilateral) and they did so after asking me to spec it (so it's not their fault there was no spec; i probably told them to give us an experimental implementation)
15:40
<Hixie>
MikeSmith: to be fair, two implementors implemented it (so it wasn't unilateral) and they did so after asking me to spec it (so it's not their fault there was no spec; i probably told them to give us an experimental implementation)
15:40
<StoneCypher>
Hixie: i just found out you also like The One True Tool
15:41
<StoneCypher>
Hixie: i just found out you also like The One True Tool
15:41
<StoneCypher>
Hixie: so a beer for you if we're ever in the same city
15:41
<StoneCypher>
Hixie: so a beer for you if we're ever in the same city
15:41
StoneCypher
<3 princexml
15:41
StoneCypher
<3 princexml
15:41
<Hixie>
i don't drink :-P
15:41
<StoneCypher>
a coffee?
15:41
<StoneCypher>
ok.
15:41
<Hixie>
i don't do any drugs :-P
15:42
<Hixie>
i don't drink :-P
15:42
<jgraham>
StoneCypher: You should move rapidly to water
15:42
<StoneCypher>
a coffee?
15:42
<StoneCypher>
ok.
15:42
<Hixie>
i don't do any drugs :-P
15:42
<jgraham>
StoneCypher: You should move rapidly to water
15:42
<jgraham>
Hixie is a cheap date
15:42
<jgraham>
;)
15:42
<Hixie>
good fruit juices are more expensive than beer
15:42
<jgraham>
Hixie is a cheap date
15:42
<StoneCypher>
Hixie: An undefined desirable social beverage outing for you
15:42
<jgraham>
;)
15:42
<Hixie>
good fruit juices are more expensive than beer
15:42
<StoneCypher>
Hixie: An undefined desirable social beverage outing for you
15:42
<StoneCypher>
<hixie> I don't consume liquids
15:43
<StoneCypher>
<hixie> I don't consume liquids
15:43
<StoneCypher>
point is, i just wanted to hurrah princexml fans
15:43
<jgraham>
Hixie: Not sure what constitues good, but that is mildly surprising (and almost certainly not true in scandinavia)
15:43
<StoneCypher>
point is, i just wanted to hurrah princexml fans
15:43
<jgraham>
Hixie: Not sure what constitues good, but that is mildly surprising (and almost certainly not true in scandinavia)
15:43
<jgraham>
(I'm mildly surprised it is true in california given the climate)
15:43
<StoneCypher>
jgraham: it is in areas where shipping is the dominant cost, because coffee beans weigh little
15:44
<jgraham>
(I'm mildly surprised it is true in california given the climate)
15:44
<StoneCypher>
jgraham: it is in areas where shipping is the dominant cost, because coffee beans weigh little
15:44
<StoneCypher>
also shelf space costs, etc
15:44
<StoneCypher>
also shelf space costs, etc
15:44
<jgraham>
I sort of imagine that in california you buy the fruit juice from organic farmer's markets
15:45
<jgraham>
I sort of imagine that in california you buy the fruit juice from organic farmer's markets
15:45
<StoneCypher>
i go to a good farmer's market and they never have juices other than cider there
15:45
<jgraham>
But maybe we are comparing the price of good fruit juice in a pub/resturant to bad beer in the same establishment
15:45
<StoneCypher>
i go to a good farmer's market and they never have juices other than cider there
15:45
<jgraham>
But maybe we are comparing the price of good fruit juice in a pub/resturant to bad beer in the same establishment
15:45
<StoneCypher>
i think he meant at a juice bar like odwalla or jamba juice
15:46
<StoneCypher>
i think he meant at a juice bar like odwalla or jamba juice
15:47
<Hixie>
jgraham: how much would freshly pressed kiwi juice cost at your local bar, and how much would the same volume of your favourite beer cost?
15:47
<Hixie>
jgraham: how much would freshly pressed kiwi juice cost at your local bar, and how much would the same volume of your favourite beer cost?
15:48
<jgraham>
Since I don't drink beer… (or alcohol in general)
15:49
<jgraham>
Since I don't drink beer… (or alcohol in general)
15:49
<jgraham>
I'm not sure one can get fresh pressed kizi juice easilly here
15:49
<annevk>
my favorite beer in Sweden prolly costs more
15:49
<jgraham>
*kiwi
15:49
<annevk>
at least last time it was about EUR 20
15:49
<jgraham>
I'm not sure one can get fresh pressed kizi juice easilly here
15:49
<annevk>
my favorite beer in Sweden prolly costs more
15:49
<jgraham>
*kiwi
15:49
<annevk>
at least last time it was about EUR 20
15:49
<annevk>
you should be able to get kiwi juice for less :)
15:50
<annevk>
you should be able to get kiwi juice for less :)
15:50
<Hixie>
jgraham: the cost would involve paying someone to go buy some kiwis, skin them, and press them, and it takes a _lot_ of kiwis for a pint. and kiwis aren't cheap.
15:50
<annevk>
hmm yeah
15:50
<Hixie>
but anyway
15:50
<annevk>
:)
15:50
<annevk>
hmm yeah
15:50
<Hixie>
but anyway
15:50
<annevk>
:)
15:51
<jgraham>
I might accept that per ml kiwi juice is more expensive than many beers.
15:51
<Hixie>
my point is just that fruit juices, when treated the same way as other beverages, no longer seem like the "cheap" option
15:51
<jgraham>
I might accept that per ml kiwi juice is more expensive than many beers.
15:51
<jgraham>
(you probably want to drink less fruit juice though)
15:51
<Hixie>
my point is just that fruit juices, when treated the same way as other beverages, no longer seem like the "cheap" option
15:51
<jgraham>
(you probably want to drink less fruit juice though)
15:52
<matjas>
annevk: “strangely Firefox does it using "visibility: hidden", Opera accepts both ways, Safari/Chrome accepts none” — http://twitter.com/diegoperini/status/180320317238034432 interesting
15:52
<matjas>
annevk: “strangely Firefox does it using "visibility: hidden", Opera accepts both ways, Safari/Chrome accepts none” — http://twitter.com/diegoperini/status/180320317238034432 interesting
15:57
<annevk>
matjas: presumably because when you use visibility, layout still happens
15:57
<annevk>
matjas: presumably because when you use visibility, layout still happens
15:57
<annevk>
matjas: whereas with display:none you don't generate a box and as optimization you can skip stuff (and they prolly skip applying background incorrectly)
15:58
<annevk>
matjas: whereas with display:none you don't generate a box and as optimization you can skip stuff (and they prolly skip applying background incorrectly)
15:58
<annevk>
but you know, that's guessing about implementation details
15:58
<annevk>
but you know, that's guessing about implementation details
16:01
<annevk>
ooh
16:01
<annevk>
jis212 is not entirely interoperable
16:02
<annevk>
ooh
16:02
<annevk>
jis212 is not entirely interoperable
16:02
<annevk>
one minor difference between Opera and Gecko, and a dozen or so between Opera/Gecko and Chrome
16:02
<annevk>
one minor difference between Opera and Gecko, and a dozen or so between Opera/Gecko and Chrome
16:02
<annevk>
well 20
16:03
<annevk>
well 20
16:03
<annevk>
aah
16:04
<annevk>
aah
16:04
<annevk>
difference between Opera and Gecko/Chrome is that Opera emits a normal tilde whereas Gecko/Chrome emit a fullwidth tilde
16:04
<annevk>
difference between Opera and Gecko/Chrome is that Opera emits a normal tilde whereas Gecko/Chrome emit a fullwidth tilde
16:08
<Velmont>
Nice discussion on drinks and stuff. -- I find it hard to find good, interesting stuff in bars etc since I don't really drink alcohol.
16:08
<Velmont>
Nice discussion on drinks and stuff. -- I find it hard to find good, interesting stuff in bars etc since I don't really drink alcohol.
16:08
<Velmont>
Some places has exotic non-alcoholic beer, so I take that, -- but there's very little fruit juice going on. Normally only some sour non-fresh orange juice which I most decidedly don't want.
16:09
<Velmont>
Some places has exotic non-alcoholic beer, so I take that, -- but there's very little fruit juice going on. Normally only some sour non-fresh orange juice which I most decidedly don't want.
16:09
<Velmont>
But having real fresh stuff would be A+. I'd take that.
16:09
<jgraham>
I imagine that one advantage of living in California is that they actually have fruit
16:09
<annevk>
I never get much further than bitter lemon / tonic / cola in a bar
16:09
<Velmont>
But having real fresh stuff would be A+. I'd take that.
16:09
<jgraham>
I imagine that one advantage of living in California is that they actually have fruit
16:09
<annevk>
I never get much further than bitter lemon / tonic / cola in a bar
16:09
<annevk>
but then I like beer too
16:10
<annevk>
but then I like beer too
16:10
<jgraham>
Well, we have fruit too; Apples in the autum, strawberries for 2 weeks, raspberries for two weeks and blueberries for a while
16:10
<Velmont>
Yes, California > Norway there I guess ;-)
16:10
<jgraham>
It doesn't seem to be enough to have a fruit-based drinking culture
16:10
<jgraham>
Well, we have fruit too; Apples in the autum, strawberries for 2 weeks, raspberries for two weeks and blueberries for a while
16:10
<Velmont>
Yes, California > Norway there I guess ;-)
16:10
<jgraham>
It doesn't seem to be enough to have a fruit-based drinking culture
16:10
<Velmont>
Yes. Strawberries are very good though. -- Much better than the cheapo non-tasting stuff we get from spain, turkey etc.
16:10
<jgraham>
Indeed, soft fruits like cold climates
16:11
<Velmont>
Yes. Strawberries are very good though. -- Much better than the cheapo non-tasting stuff we get from spain, turkey etc.
16:11
<jgraham>
Indeed, soft fruits like cold climates
16:11
<jgraham>
Also, the varieties that last long enough to be transported are not the ones that taste good
16:11
<jgraham>
Also, the varieties that last long enough to be transported are not the ones that taste good
16:11
<Velmont>
:-) -- I'm SO looking forward to summer. Has been so hot in Oslo last days, - early spring I hope.
16:12
<Velmont>
:-) -- I'm SO looking forward to summer. Has been so hot in Oslo last days, - early spring I hope.
16:12
<jgraham>
You mean as much as +10?
16:12
<jgraham>
:)
16:12
<jgraham>
You mean as much as +10?
16:12
<jgraham>
:)
16:12
<jgraham>
(I think it reached +12 here which is crazy-warm for March)
16:13
<jgraham>
(I think it reached +12 here which is crazy-warm for March)
16:13
<Velmont>
jgraham: +17 in shadows on monday, used 1h lunch just sitting out in the sun. Niiice. -- Has been really sunny every day. --- BTW, that's actually the highest ever recorded in Oslo so early.
16:13
<Velmont>
jgraham: +17 in shadows on monday, used 1h lunch just sitting out in the sun. Niiice. -- Has been really sunny every day. --- BTW, that's actually the highest ever recorded in Oslo so early.
16:25
<jgraham>
+17? Crazy times
16:25
<jgraham>
+17? Crazy times
16:31
<bga>
http://pastebin.com/NKbnh8q8
16:32
<bga>
http://pastebin.com/NKbnh8q8
16:42
<Velmont>
Wat. Seems silly.
16:51
Philip`
wonders if they're aware that the IP addresses don't each correspond to a single server, they're pools of many servers spread around the world
16:52
Philip`
wonders if they're aware that the IP addresses don't each correspond to a single server, they're pools of many servers spread around the world
16:53
<Velmont>
Would think so, as it is very common knowlegde.
16:53
<StoneCypher>
assuming sophistication of an ill organized mob of script kiddies?
16:53
<Velmont>
Would think so, as it is very common knowlegde.
16:53
<StoneCypher>
i wouldn't.
16:53
<StoneCypher>
assuming sophistication of an ill organized mob of script kiddies?
16:53
<StoneCypher>
i wouldn't.
17:39
<annevk>
ugh
17:40
<annevk>
ugh
17:40
<annevk>
shift_jis to euc-jp is one ugly algorithm
17:40
<annevk>
and not even properly explained
17:40
<annevk>
it works
17:40
<annevk>
and not even properly explained
17:40
<annevk>
it works
17:40
<annevk>
the CJKV book just explains the C code
17:40
<annevk>
not the logic
17:40
<annevk>
lame
17:41
<annevk>
the CJKV book just explains the C code
17:41
<annevk>
not the logic
17:41
<annevk>
lame
17:41
<annevk>
i guess i'll just copy and paste to English
17:41
<annevk>
i guess i'll just copy and paste to English
18:09
<TabAtkins_>
annevk: re: the bug, presumably you're talking just about Selectors-in-JS, not the existing element() feature?
18:10
<TabAtkins_>
annevk: re: the bug, presumably you're talking just about Selectors-in-JS, not the existing element() feature?
18:12
<annevk>
if select() takes an arbitrary Selector that seems kind of weird too
18:13
<annevk>
if select() takes an arbitrary Selector that seems kind of weird too
18:13
<annevk>
I think it's better if you keep in-tree and out-of-tree as separate concepts
18:13
<TabAtkins_>
When that happens, the alternate behavior will only trigger for a single id selector.
18:13
<annevk>
I think it's better if you keep in-tree and out-of-tree as separate concepts
18:13
<TabAtkins_>
When that happens, the alternate behavior will only trigger for a single id selector.
18:13
<annevk>
and especially keep Selectors only matching in-tree
18:14
<annevk>
and especially keep Selectors only matching in-tree
18:15
<TabAtkins_>
I disagree, and would like to keep the feature as it's currently written. (It's awkward to do so, since bare idents look like tagname selectors...)
18:15
<TabAtkins_>
But I'm fine if the answer is "no, it shouldn't have any relevance to DOM".
18:15
<TabAtkins_>
I disagree, and would like to keep the feature as it's currently written. (It's awkward to do so, since bare idents look like tagname selectors...)
18:15
<TabAtkins_>
But I'm fine if the answer is "no, it shouldn't have any relevance to DOM".
18:20
<annevk>
modifying Selectors to match out-of-tree elements sounds very much like the wrong approach
18:20
<annevk>
modifying Selectors to match out-of-tree elements sounds very much like the wrong approach
18:20
<TabAtkins_>
Shrug. It seems useful here, and it's what Mozilla is already doing.
18:20
<annevk>
I'm not sure if that is what's going on here though as I haven't really read the element() proposal
18:21
<TabAtkins_>
Shrug. It seems useful here, and it's what Mozilla is already doing.
18:21
<annevk>
I'm not sure if that is what's going on here though as I haven't really read the element() proposal
18:21
<annevk>
that's not a very compelling argument to break a Selector invariant
18:21
<TabAtkins_>
So, short summary:
18:21
<annevk>
that's not a very compelling argument to break a Selector invariant
18:21
<TabAtkins_>
So, short summary:
18:21
<TabAtkins_>
element() takes an id selector, and represents an image that looks like the referenced element.
18:21
<annevk>
next you're going to suggest we should let them match Text nodes :)
18:21
jwalden
wants support for selectors that match comment nodes
18:22
<TabAtkins_>
element() takes an id selector, and represents an image that looks like the referenced element.
18:22
<annevk>
next you're going to suggest we should let them match Text nodes :)
18:22
jwalden
wants support for selectors that match comment nodes
18:22
<TabAtkins_>
Right now we phrase the out-of-doc thing as something that host languages can define.
18:22
<TabAtkins_>
But we may just make it explicit and put it into CSSOM or something.
18:22
<TabAtkins_>
Right now we phrase the out-of-doc thing as something that host languages can define.
18:22
<TabAtkins_>
But we may just make it explicit and put it into CSSOM or something.
18:24
<annevk>
it's very weird to have IDs matched outside the tree
18:24
<annevk>
it's very weird to have IDs matched outside the tree
18:24
<annevk>
there's no such feature currently
18:24
<Ms2ger>
element.getElementById?
18:24
<annevk>
Ms2ger: I thought that only matched in the tree
18:25
<annevk>
there's no such feature currently
18:25
<Ms2ger>
element.getElementById?
18:25
<annevk>
Ms2ger: I thought that only matched in the tree
18:25
<annevk>
it does
18:25
<annevk>
it does
18:25
<Ms2ger>
Oh
18:25
<Ms2ger>
In the subtree rooted at the element, you mean
18:26
<Ms2ger>
Oh
18:26
<Ms2ger>
In the subtree rooted at the element, you mean
18:26
<annevk>
I mean it doesn't match e=document.createElement("test");e.id='x'
18:26
<Ms2ger>
Yeah
18:27
<annevk>
I mean it doesn't match e=document.createElement("test");e.id='x'
18:27
<Ms2ger>
Yeah
18:27
<TabAtkins_>
Strictly, element() *doesn't* match ids outside the tree.
18:27
<Ms2ger>
I meant that it does match elements that aren't in a document
18:27
<Ms2ger>
(On which the spec was wrong previously)
18:27
<TabAtkins_>
Strictly, element() *doesn't* match ids outside the tree.
18:27
<Ms2ger>
I meant that it does match elements that aren't in a document
18:27
<Ms2ger>
(On which the spec was wrong previously)
18:27
<TabAtkins_>
However, it an id selector didn't match an element, it instead consults the map.
18:27
<TabAtkins_>
Which can contain in-document or out-of-document elements.
18:28
<TabAtkins_>
However, it an id selector didn't match an element, it instead consults the map.
18:28
<TabAtkins_>
Which can contain in-document or out-of-document elements.
18:38
<annevk>
Ms2ger: oh
18:38
<annevk>
Ms2ger: oh
18:38
<annevk>
TabAtkins_: I think it would be better to have a special look-in-map thing than this fallback magic
18:38
<annevk>
TabAtkins_: e.g. have element() for in-document and element-map() for this
18:39
<annevk>
TabAtkins_: I think it would be better to have a special look-in-map thing than this fallback magic
18:39
<annevk>
TabAtkins_: e.g. have element() for in-document and element-map() for this
18:59
<TabAtkins_>
annevk: That seems silly to me.
18:59
<TabAtkins_>
annevk: That seems silly to me.
19:08
<annevk>
why?
19:08
<annevk>
why?
19:09
<Hixie>
i have to say i do find it weird to have the #id mechanism match things by something other than the element's one true ID
19:10
<Hixie>
i have to say i do find it weird to have the #id mechanism match things by something other than the element's one true ID
19:10
<Hixie>
especially so soon after we've gone to the effort of erradicating all possible ways of having more than one ID
19:10
<Hixie>
especially so soon after we've gone to the effort of erradicating all possible ways of having more than one ID
19:10
<annevk>
oh yeah, if there's a custom identifier it seems even more wrong to use Selectors
19:11
<annevk>
oh yeah, if there's a custom identifier it seems even more wrong to use Selectors
19:11
<TabAtkins_>
Shrug.
19:11
<TabAtkins_>
Shrug.
19:12
<rniwa>
annevk, Ms2ger: regions spec apparently have flow change event or whatever
19:12
<rniwa>
that fires after flow changes :(
19:13
<rniwa>
annevk, Ms2ger: regions spec apparently have flow change event or whatever
19:13
<rniwa>
that fires after flow changes :(
19:13
<Ms2ger>
I sure hope nobody implements the regions cssom
19:13
<Hixie>
events from layout? lordy
19:13
<rniwa>
Ms2ger: webkit is doing that :(
19:13
<Ms2ger>
I sure hope nobody implements the regions cssom
19:13
<Hixie>
events from layout? lordy
19:13
<rniwa>
Ms2ger: webkit is doing that :(
19:13
<rniwa>
i'm trying to convince folks not to do it
19:13
<TabAtkins_>
We need some way to be able to refer to elements outside the DOM, it seems silly to add a second function with identical functionality just to do that type of referring, and leaning on the #id syntax appears to be the easiest way to merge the two functionalities together.
19:13
<TabAtkins_>
rniwa: Complain about it on www-style?
19:14
<rniwa>
i'm trying to convince folks not to do it
19:14
<TabAtkins_>
We need some way to be able to refer to elements outside the DOM, it seems silly to add a second function with identical functionality just to do that type of referring, and leaning on the #id syntax appears to be the easiest way to merge the two functionalities together.
19:14
<TabAtkins_>
rniwa: Complain about it on www-style?
19:14
<rniwa>
TabAtkins_: i'm kicked out of www-style for some random mail deamon issue
19:14
<rniwa>
TabAtkins_: i'm kicked out of www-style for some random mail deamon issue
19:14
<TabAtkins_>
rniwa: Ah, that sucks.
19:14
<Ms2ger>
It seems like there's more things wrong than right about that part of the spec...
19:14
<TabAtkins_>
Send the email to me and I'll forward it?
19:15
<TabAtkins_>
rniwa: Ah, that sucks.
19:15
<rniwa>
TabAtkins_: maybe.
19:15
<Ms2ger>
It seems like there's more things wrong than right about that part of the spec...
19:15
<TabAtkins_>
Send the email to me and I'll forward it?
19:15
<rniwa>
TabAtkins_: maybe.
19:15
<rniwa>
TabAtkins_: i'm hoping that people who are more familiar with the matter can comment on it
19:15
<annevk>
it's not identical functionality if you need a CSSElementMap etc.
19:15
<rniwa>
TabAtkins_: i'm hoping that people who are more familiar with the matter can comment on it
19:15
<annevk>
it's not identical functionality if you need a CSSElementMap etc.
19:15
<annevk>
it's very much a completely separate thing
19:16
<annevk>
it's very much a completely separate thing
19:16
<Hixie>
yeah if we're adding a whole bunch of api surface anyway, what's a new selector
19:16
<TabAtkins_>
rniwa: I'm not familiar with the matter, so shrug.
19:16
<TabAtkins_>
rniwa: I'm not familiar with the matter, so shrug.
19:16
<TabAtkins_>
Ms2ger: Details? I've been fixing odd corners as they come up, but there isn't much.
19:17
<TabAtkins_>
Ms2ger: Details? I've been fixing odd corners as they come up, but there isn't much.
19:23
<TabAtkins_>
Argh, I can't get my fingers to stop typing "cvs commit" when I mean "hg commit".
19:23
<TabAtkins_>
Argh, I can't get my fingers to stop typing "cvs commit" when I mean "hg commit".
19:23
<Ms2ger>
alias cvs hg
19:23
<TabAtkins_>
I was thinking about that.
19:24
<Ms2ger>
alias cvs hg
19:24
<TabAtkins_>
I was thinking about that.
19:24
<annevk>
Ms2ger: afaict http://mxr.mozilla.org/mozilla-central/source/intl/uconv/ucvja/nsJapaneseToUnicode.cpp#205 is dead code
19:25
<annevk>
Ms2ger: afaict http://mxr.mozilla.org/mozilla-central/source/intl/uconv/ucvja/nsJapaneseToUnicode.cpp#205 is dead code
19:25
<annevk>
Ms2ger: same goes for some stuff in japanese.map; also, http://mxr.mozilla.org/mozilla-central/source/intl/uconv/ucvja/japanese.map#80 0x80 is not handled there
19:25
<annevk>
Ms2ger: same goes for some stuff in japanese.map; also, http://mxr.mozilla.org/mozilla-central/source/intl/uconv/ucvja/japanese.map#80 0x80 is not handled there
19:26
<Ms2ger>
Looks like it's called from the old HTML parser
19:26
<Ms2ger>
Not sure if it's dead yet
19:26
<Ms2ger>
Looks like it's called from the old HTML parser
19:26
<Ms2ger>
Not sure if it's dead yet
19:28
<annevk>
o_O
19:28
<annevk>
that's some weird stuff
19:28
<Ms2ger>
The old HTML parser?
19:28
<Ms2ger>
Yes
19:28
<annevk>
o_O
19:28
<annevk>
that's some weird stuff
19:28
<Ms2ger>
The old HTML parser?
19:28
<Ms2ger>
Yes
19:32
<annevk>
TabAtkins_: if you're not interested in feedback you should not edit specs
19:32
<annevk>
shrug away
19:32
<annevk>
TabAtkins_: if you're not interested in feedback you should not edit specs
19:32
<annevk>
shrug away
19:32
<Ms2ger>
Uh?
19:32
<TabAtkins_>
annevk: Uh, what.
19:32
<annevk>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16169#c5
19:32
<TabAtkins_>
Or let me put that more appropriately:
19:32
<TabAtkins_>
lolwut
19:32
<TabAtkins_>
I rejected your feedback because I disagree.
19:33
<Ms2ger>
Uh?
19:33
<TabAtkins_>
annevk: Uh, what.
19:33
<annevk>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16169#c5
19:33
<TabAtkins_>
Or let me put that more appropriately:
19:33
<TabAtkins_>
lolwut
19:33
<TabAtkins_>
I rejected your feedback because I disagree.
19:33
<TabAtkins_>
That's a perfectly normal thing to do.
19:33
<TabAtkins_>
That's a perfectly normal thing to do.
19:33
<TabAtkins_>
As is attempting to focus a bug on the question at hand rather than a related tangent.
19:33
<annevk>
not if there's no argument
19:34
<TabAtkins_>
As is attempting to focus a bug on the question at hand rather than a related tangent.
19:34
<annevk>
not if there's no argument
19:34
<TabAtkins_>
The argument was "I think it's fine, and it matches an existing implementation." Since your argument was "I think it's better this way", that seems about right.
19:34
<TabAtkins_>
The argument was "I think it's fine, and it matches an existing implementation." Since your argument was "I think it's better this way", that seems about right.
19:35
<TabAtkins_>
There's nothing technically wrong with the feature as specced; you disagree with it from an aesthetic perspective. That's not unimportant, but it does mean that it's hard to be "right".
19:36
<TabAtkins_>
There's nothing technically wrong with the feature as specced; you disagree with it from an aesthetic perspective. That's not unimportant, but it does mean that it's hard to be "right".
19:37
<annevk>
it breaks an invariant of selectors
19:37
<annevk>
that's not aesthetics
19:37
<annevk>
it breaks an invariant of selectors
19:37
<annevk>
that's not aesthetics
19:38
<TabAtkins_>
But it doesn't.
19:38
<TabAtkins_>
But it doesn't.
19:38
hober
agrees with annevk
19:38
<TabAtkins_>
Because there isn't any such invariant.
19:39
hober
agrees with annevk
19:39
<TabAtkins_>
Because there isn't any such invariant.
19:41
<AryehGregor>
If we're talking about #foo meaning anything other than "an element in the document with id="foo"", I also agree with annevk.
19:41
<AryehGregor>
If we're talking about #foo meaning anything other than "an element in the document with id="foo"", I also agree with annevk.
20:25
<jgraham>
+1 on #id matching out of document being all kinds of wrong
20:26
<jgraham>
+1 on #id matching out of document being all kinds of wrong
20:28
<smaug____>
ID matching out of document sounds broken
20:28
<smaug____>
ID matching out of document sounds broken
20:31
<TabAtkins_>
Sigh. I strongly suspect the context is lost here.
20:32
<TabAtkins_>
Sigh. I strongly suspect the context is lost here.
20:32
<TabAtkins_>
In particular, I could just define that, for the purpose of selector matching, elements in the CSSElementMap are "in document" but are root elements following the normal document root.
20:33
<TabAtkins_>
In particular, I could just define that, for the purpose of selector matching, elements in the CSSElementMap are "in document" but are root elements following the normal document root.
20:33
<TabAtkins_>
This is *not* about, say, creating an element with an id from script, not inserting it into the document, and then expecting document.getElementById('foo') to return it.
20:33
<rniwa>
AryehGregor, annevk: https://bugs.webkit.org/show_bug.cgi?id=81141
20:34
<TabAtkins_>
This is *not* about, say, creating an element with an id from script, not inserting it into the document, and then expecting document.getElementById('foo') to return it.
20:34
<rniwa>
AryehGregor, annevk: https://bugs.webkit.org/show_bug.cgi?id=81141
20:34
<TabAtkins_>
(I wouldn't go to that trouble, because there's no need to, but whatever.)
20:34
<rniwa>
fixing a mutation event bug resulted in a regression :(
20:34
<rniwa>
i.e. we can't implement mutation events as spec'ed. if we did, we break the web
20:34
<rniwa>
fixing a mutation event bug resulted in a regression :(
20:34
<rniwa>
i.e. we can't implement mutation events as spec'ed. if we did, we break the web
20:34
<rniwa>
epic fail...
20:34
<Hixie>
TabAtkins_: fwiw my problem isn't with it matching things out of document, i think that selectors matching things out of document is fine, that the scope should be up to whoever is defining the selector context
20:35
<rniwa>
epic fail...
20:35
<Hixie>
TabAtkins_: fwiw my problem isn't with it matching things out of document, i think that selectors matching things out of document is fine, that the scope should be up to whoever is defining the selector context
20:35
<Hixie>
TabAtkins_: my problem is with ID selectors matching things that aren't IDs :-)
20:35
<jgraham>
TabAtkins_: You could define that, but I still think it is weird and wrong
20:35
AryehGregor
agrees with Hixie
20:35
<Hixie>
TabAtkins_: my problem is with ID selectors matching things that aren't IDs :-)
20:35
<jgraham>
TabAtkins_: You could define that, but I still think it is weird and wrong
20:35
AryehGregor
agrees with Hixie
20:36
<TabAtkins_>
Hixie: What's wrong with defining more than just the @id attribute to provide an ID for an element?
20:36
<TabAtkins_>
Hixie: What's wrong with defining more than just the @id attribute to provide an ID for an element?
20:36
<Ms2ger>
We just killed that
20:36
<Hixie>
TabAtkins_: we just spent a bunch of effort erradicating every last thing that allowed multiple IDs per element (ask anne and Ms2ger for why)
20:36
<Ms2ger>
Ask anne :)
20:36
<TabAtkins_>
I'd like some context, yeah.
20:37
<Ms2ger>
We just killed that
20:37
<Hixie>
TabAtkins_: we just spent a bunch of effort erradicating every last thing that allowed multiple IDs per element (ask anne and Ms2ger for why)
20:37
<Ms2ger>
Ask anne :)
20:37
<TabAtkins_>
I'd like some context, yeah.
20:39
jgraham
also doesn't like the fact that the "same" selector matches different things according to context
20:39
jgraham
also doesn't like the fact that the "same" selector matches different things according to context
20:43
<othermaciej>
TabAtkins_: I think it would be super confusing for the id selector to match by something that's not visible to getElementById()
20:43
<othermaciej>
TabAtkins_: I think it would be super confusing for the id selector to match by something that's not visible to getElementById()
20:43
gsnedders
agrees with othermaciej
20:43
<annevk>
TabAtkins_: e.g. there was xml:id, DTD IDs, id="", etc.
20:44
gsnedders
agrees with othermaciej
20:44
<annevk>
TabAtkins_: e.g. there was xml:id, DTD IDs, id="", etc.
20:44
<annevk>
TabAtkins_: now there's just id=""
20:44
<TabAtkins_>
annevk: Those all affected the DOM (or at least, were supposed to), right?
20:44
<TabAtkins_>
annevk: Those all affected the DOM (or at least, were supposed to), right?
20:44
<annevk>
they were all ways to give an element multiple IDs
20:45
<annevk>
they were all ways to give an element multiple IDs
20:45
<TabAtkins_>
othermaciej, jgraham : I welcome suggestions on how to fit it into the syntax otherwise.
20:46
<TabAtkins_>
othermaciej, jgraham : I welcome suggestions on how to fit it into the syntax otherwise.
20:46
<TabAtkins_>
Note our current constraints: We expect element() to be extended in the future to accept arbitrary selectors (not just id selectors, as it does currently). We also expect it to be extended to accept urls as <string>s.
20:46
<TabAtkins_>
Note our current constraints: We expect element() to be extended in the future to accept arbitrary selectors (not just id selectors, as it does currently). We also expect it to be extended to accept urls as <string>s.
20:46
<annevk>
rniwa: breaking mutation events works for me
20:47
<annevk>
rniwa: breaking mutation events works for me
20:47
<othermaciej>
TabAtkins_: one possibility is to have a list, rather than a map, of out-of-document elements whose actual id attribute will be visible to id selectors, getElemetById(), and all other id lookup mechanisms
20:47
<annevk>
rniwa: the plan is to nuke them completely
20:47
<rniwa>
annevk: ok, thanks
20:47
<othermaciej>
TabAtkins_: one possibility is to have a list, rather than a map, of out-of-document elements whose actual id attribute will be visible to id selectors, getElemetById(), and all other id lookup mechanisms
20:47
<annevk>
rniwa: the plan is to nuke them completely
20:47
<rniwa>
annevk: ok, thanks
20:47
<annevk>
rniwa: the more they become broken, the easier it is to convince people to use mutation observers...
20:47
<othermaciej>
TabAtkins_: I'm not sure offhand if that is a good idea, but at least it avoids multiple ids and selector vs. DOM divergence on what is an id
20:48
<annevk>
rniwa: the more they become broken, the easier it is to convince people to use mutation observers...
20:48
<othermaciej>
TabAtkins_: I'm not sure offhand if that is a good idea, but at least it avoids multiple ids and selector vs. DOM divergence on what is an id
20:49
<TabAtkins_>
othermaciej: Interesting.
20:50
<TabAtkins_>
othermaciej: Interesting.
20:53
<Hixie>
that would also let us kill the csselementmap
20:53
<Hixie>
i'm always in favour of removing features without hurting use cases :-)
20:54
<Hixie>
that would also let us kill the csselementmap
20:54
<Hixie>
i'm always in favour of removing features without hurting use cases :-)
20:54
<TabAtkins_>
Well, it would kill it by replacing it with something else.
20:54
<Hixie>
can i just say that it is mildly confusing that what WebIDL calls sequences (sequence<foo>) is an Array and what it calls arrays (foo[]) is not?
20:55
<TabAtkins_>
Well, it would kill it by replacing it with something else.
20:55
<Hixie>
can i just say that it is mildly confusing that what WebIDL calls sequences (sequence<foo>) is an Array and what it calls arrays (foo[]) is not?
20:55
<TabAtkins_>
With the "something else" being roughly equally complicated.
20:55
<TabAtkins_>
With the "something else" being roughly equally complicated.
20:55
<Hixie>
TabAtkins_: i guess
20:55
<Hixie>
TabAtkins_: i guess
20:55
<TabAtkins_>
The use-case I'm trying to hit is really important and needs *something* along these lines, no matter the syntax.
20:55
<Hixie>
TabAtkins_: makes your life easier though, since it would be css-independent
20:55
<Hixie>
makes my life easier too
20:55
<Hixie>
it would be anne's problem :-D
20:56
<TabAtkins_>
The use-case I'm trying to hit is really important and needs *something* along these lines, no matter the syntax.
20:56
<Hixie>
TabAtkins_: makes your life easier though, since it would be css-independent
20:56
<Hixie>
makes my life easier too
20:56
<Hixie>
it would be anne's problem :-D
20:56
<annevk>
Hixie: I think sequence is not necessarily an array
20:56
<annevk>
Hixie: I think sequence is not necessarily an array
20:56
<Hixie>
annevk: "IDL sequence<T> values are represented by ECMAScript Array values"
20:56
<TabAtkins_>
annevk doesn't think there's a use-case for it in JS (and I agree). The only benefit of making this visible to the rest of DOM is to make sure that element() selectors match the same elements that JS selectors do.
20:57
<Hixie>
annevk: "IDL sequence<T> values are represented by ECMAScript Array values"
20:57
<TabAtkins_>
annevk doesn't think there's a use-case for it in JS (and I agree). The only benefit of making this visible to the rest of DOM is to make sure that element() selectors match the same elements that JS selectors do.
20:57
<annevk>
Hixie: oh I thought sequence stuff was for passing in arguments and could be anything array-like
20:57
<annevk>
hmm
20:57
<annevk>
Hixie: oh I thought sequence stuff was for passing in arguments and could be anything array-like
20:57
<annevk>
hmm
20:57
<annevk>
I keep getting confused by Web IDL
20:57
<Hixie>
annevk: i'm talking about return values, might be different for receiving values
20:57
<annevk>
not good :/
20:58
<annevk>
I keep getting confused by Web IDL
20:58
<Hixie>
annevk: i'm talking about return values, might be different for receiving values
20:58
<annevk>
I didn't know it could be a return value
20:58
<annevk>
not good :/
20:58
<annevk>
I didn't know it could be a return value
20:59
<annevk>
so sequences can only be returned from methods per http://dev.w3.org/2006/webapi/WebIDL/#idl-sequence
20:59
<annevk>
so sequences can only be returned from methods per http://dev.w3.org/2006/webapi/WebIDL/#idl-sequence
20:59
<Hixie>
right
21:00
<Hixie>
right
21:07
<othermaciej>
Hixie: I think the [] stuff should possibly be just made a synonym for sequence<>, if there's nothing actively using it
21:07
<othermaciej>
I don't think the [] fake arrays are very useful
21:07
<Ms2ger>
But live stuff
21:08
<othermaciej>
Hixie: I think the [] stuff should possibly be just made a synonym for sequence<>, if there's nothing actively using it
21:08
<othermaciej>
I don't think the [] fake arrays are very useful
21:08
<Ms2ger>
But live stuff
21:08
<annevk>
othermaciej: actual JS Arrays can be mutated
21:08
<annevk>
othermaciej: actual JS Arrays can be mutated
21:08
<Hixie>
yeah i use the [] thing
21:08
<annevk>
othermaciej: which is problematic
21:09
<Hixie>
yeah i use the [] thing
21:09
<annevk>
othermaciej: which is problematic
21:09
<annevk>
othermaciej: I do agree it would be nice if it was all somewhat simpler though, but I don't know enough about all the constraints
21:10
<annevk>
othermaciej: I do agree it would be nice if it was all somewhat simpler though, but I don't know enough about all the constraints
21:12
<jgraham>
Seems like the nice solution would be to invent a time machine and add immutable arrays to js about 15 years ago
21:13
<jgraham>
Seems like the nice solution would be to invent a time machine and add immutable arrays to js about 15 years ago
21:13
<jgraham>
Dunno how much it would help to do it now (except that immutable data structures are pretty nice in some situations ofc)
21:13
<jgraham>
Dunno how much it would help to do it now (except that immutable data structures are pretty nice in some situations ofc)
21:13
<Ms2ger>
Well, just immutable by script
21:14
<Ms2ger>
Well, just immutable by script
21:14
<Hixie>
if you invent a time machine, i have some higher priorities for you
21:14
<Hixie>
if you invent a time machine, i have some higher priorities for you
21:14
<Hixie>
even just within the scope of js!
21:14
<Ms2ger>
longdesc?
21:14
<Philip`>
If you invent a time machine you don't need to bother with priorities, you can just do everything simultaneously
21:14
<Hixie>
Philip`: depends how it works!
21:15
<Hixie>
even just within the scope of js!
21:15
<Ms2ger>
longdesc?
21:15
<Philip`>
If you invent a time machine you don't need to bother with priorities, you can just do everything simultaneously
21:15
<Hixie>
Philip`: depends how it works!
21:15
<Ms2ger>
But as it's unlikely we'll invent any kind, please go ahead and fix HTML bugs :)
21:16
<Ms2ger>
But as it's unlikely we'll invent any kind, please go ahead and fix HTML bugs :)
21:19
<annevk>
if we do, make everything utf-8 only kthxbai
21:20
<annevk>
if we do, make everything utf-8 only kthxbai
21:38
<annevk>
http://www.ted.com/talks/rob_reid_the_8_billion_ipod.html
21:39
<annevk>
http://www.ted.com/talks/rob_reid_the_8_billion_ipod.html
21:40
<bga>
http://www.opencalais.com/about
21:41
<bga>
http://www.opencalais.com/about
21:41
<Ms2ger>
http://www.catsguru.com/wp-content/uploads/2010/09/new-kitten.jpg
21:42
<Ms2ger>
http://www.catsguru.com/wp-content/uploads/2010/09/new-kitten.jpg
21:43
gsnedders
definitely prefers Ms2ger's link
21:43
gsnedders
definitely prefers Ms2ger's link
21:46
<bga>
photoshop
21:47
<bga>
photoshop
21:54
<jgraham>
Open Calais? Presumably that's when there isn't a strike on in France
21:54
<jgraham>
Open Calais? Presumably that's when there isn't a strike on in France
21:54
<Ms2ger>
One day a year?
21:54
<jgraham>
Oh, do they have a special holiday?
21:55
<Ms2ger>
One day a year?
21:55
<jgraham>
Oh, do they have a special holiday?
22:00
<Hixie>
ok. let's talk dash styles.
22:00
<Hixie>
it's an array of lengths.
22:00
<Ms2ger>
Let's not :)
22:00
<Hixie>
ok. let's talk dash styles.
22:00
<Hixie>
it's an array of lengths.
22:00
<Ms2ger>
Let's not :)
22:00
<Hixie>
odd lengths give the distance "on" and even ones the distance "off"
22:00
<Hixie>
odd-length arrays are doubles so you get the effect then the mirror
22:00
<Hixie>
e.g. 1,2,3 becomes -__---_--___
22:01
<Hixie>
odd lengths give the distance "on" and even ones the distance "off"
22:01
<Hixie>
odd-length arrays are doubles so you get the effect then the mirror
22:01
<Hixie>
e.g. 1,2,3 becomes -__---_--___
22:01
<Hixie>
so. zeroes.
22:01
<Hixie>
we strip zero-length segments, so it's a bit like they weren't there
22:01
<Hixie>
so. zeroes.
22:01
<Hixie>
we strip zero-length segments, so it's a bit like they weren't there
22:01
<Hixie>
1,0,1,2 is like 2,2
22:01
<Ms2ger>
Is it?
22:02
<Hixie>
1,0,1,2 is like 2,2
22:02
<Ms2ger>
Is it?
22:02
<Ms2ger>
Not like 1,1,2?
22:02
<Ms2ger>
Not like 1,1,2?
22:02
<Hixie>
1,0,1,2 becomes "- (zero-length off) - __" i.e. "--__" i.e. 2,2
22:03
<Hixie>
1,0,1,2 becomes "- (zero-length off) - __" i.e. "--__" i.e. 2,2
22:03
<Ms2ger>
Doesn't look like stripping them, then :)
22:03
<Ms2ger>
Doesn't look like stripping them, then :)
22:03
<Hixie>
zero-length line segments, not zero entries in the array, sorry
22:03
<zewt>
collapsed/coalesced/whatever
22:03
<Hixie>
i don't think we should throw an exception for zeros, since you could end up with them when you're just making a gap smaller and smaller
22:03
<Ms2ger>
Go on :)
22:04
<Hixie>
zero-length line segments, not zero entries in the array, sorry
22:04
<Hixie>
so what happens to trailing zeroes?
22:04
<zewt>
collapsed/coalesced/whatever
22:04
<Hixie>
i don't think we should throw an exception for zeros, since you could end up with them when you're just making a gap smaller and smaller
22:04
<Ms2ger>
Go on :)
22:04
<Hixie>
so what happens to trailing zeroes?
22:04
<Hixie>
1,0 => solid? or same as 1,1?
22:04
<Hixie>
1,0 => solid? or same as 1,1?
22:04
<Hixie>
i'd say solid
22:04
<zewt>
1,1 doesn't make sense
22:04
<zewt>
(from 1,0)
22:04
<Hixie>
ok
22:04
<Hixie>
so what does 0,1,0 become?
22:05
<Hixie>
i'd say solid
22:05
<zewt>
1,1 doesn't make sense
22:05
<zewt>
(from 1,0)
22:05
<Hixie>
ok
22:05
<Hixie>
so what does 0,1,0 become?
22:05
<TabAtkins_>
Hixie: Yes, 1,0,1,2 shoudl basically look like 2,2.
22:05
<TabAtkins_>
Hixie: Yes, 1,0,1,2 shoudl basically look like 2,2.
22:05
<TabAtkins_>
0,1,0 looks like no stroke at all.
22:05
<zewt>
what do odd-length sequences mean?
22:05
<TabAtkins_>
zewt: Repeat the sequence once.
22:05
<TabAtkins_>
zewt: So you get an even-length one.
22:05
<TabAtkins_>
0,1,0 looks like no stroke at all.
22:05
<zewt>
what do odd-length sequences mean?
22:05
<TabAtkins_>
zewt: Repeat the sequence once.
22:05
<TabAtkins_>
zewt: So you get an even-length one.
22:05
<Ms2ger>
1,1?
22:05
<zewt>
so repeat it before eliminating zeroes
22:05
<jgraham>
You don't eliminate zeros afaict
22:05
<TabAtkins_>
zewt: Yeah. You don't *actually* eliminate zeros.
22:06
<Ms2ger>
1,1?
22:06
<zewt>
so repeat it before eliminating zeroes
22:06
<jgraham>
You don't eliminate zeros afaict
22:06
<TabAtkins_>
zewt: Yeah. You don't *actually* eliminate zeros.
22:06
Hixie
is planning on eliminating zeroes
22:06
<TabAtkins_>
But zero-length segments are treated like they're not there, and Hixie defines dashes by cutting up a segment into lots of little segments.
22:06
<zewt>
0,1,0 -> 0,1,0,1,0,1 -> 0,2,0,1 -> 0,3
22:06
<TabAtkins_>
Hixie: I suggest not doing something different from SVG.
22:06
Hixie
is planning on eliminating zeroes
22:06
<TabAtkins_>
But zero-length segments are treated like they're not there, and Hixie defines dashes by cutting up a segment into lots of little segments.
22:06
<zewt>
0,1,0 -> 0,1,0,1,0,1 -> 0,2,0,1 -> 0,3
22:06
<TabAtkins_>
Hixie: I suggest not doing something different from SVG.
22:06
<jgraham>
Hixie: Zeros seem to be entirely non magical?
22:06
<jgraham>
I mean they are just a segment of length 0
22:07
<jgraham>
Hixie: Zeros seem to be entirely non magical?
22:07
<Hixie>
TabAtkins_: do they draw line caps between the segments in 1,0?
22:07
<jgraham>
I mean they are just a segment of length 0
22:07
<Hixie>
TabAtkins_: do they draw line caps between the segments in 1,0?
22:07
<TabAtkins_>
Hixie: Let me check!
22:07
<TabAtkins_>
Hixie: Let me check!
22:07
<Hixie>
TabAtkins_: (are we sure svg drops zero-length path segments? so they can't do the "dash dot" effect with round dots?)
22:07
<TabAtkins_>
How do I trigger linecaps here? You mean like having a path with an M instruction happening in the middle of a segment?
22:08
<Hixie>
TabAtkins_: (are we sure svg drops zero-length path segments? so they can't do the "dash dot" effect with round dots?)
22:08
<TabAtkins_>
How do I trigger linecaps here? You mean like having a path with an M instruction happening in the middle of a segment?
22:08
<Hixie>
i dunno how svg does it
22:08
<Hixie>
in canvas, you get a line cap at the ends of each subpath
22:08
<Hixie>
depends on context.lineCap
22:08
<TabAtkins_>
Okay.
22:08
<Hixie>
or lineCaps
22:08
<Hixie>
i dunno how svg does it
22:08
<Hixie>
in canvas, you get a line cap at the ends of each subpath
22:08
<Hixie>
depends on context.lineCap
22:08
<TabAtkins_>
Okay.
22:08
<Hixie>
or lineCaps
22:08
<Hixie>
or something
22:08
<TabAtkins_>
Same deal, then. an M starts a new subpath.
22:08
<TabAtkins_>
Triggering linecaps.
22:09
<Hixie>
or something
22:09
<TabAtkins_>
Same deal, then. an M starts a new subpath.
22:09
<TabAtkins_>
Triggering linecaps.
22:11
<bga>
<picture> is just kind a old <img> w/ lowsrc ?
22:12
<bga>
<picture> is just kind a old <img> w/ lowsrc ?
22:12
<Hixie>
TabAtkins_: but do they ahve them between zero-width gaps in dashed lines?
22:12
<TabAtkins_>
Hixie: SVG drops 0s entirely:
22:12
<TabAtkins_>
So "1 0" doesn't trigger any linecaps.
22:12
<Hixie>
TabAtkins_: but do they ahve them between zero-width gaps in dashed lines?
22:12
<TabAtkins_>
Hixie: SVG drops 0s entirely:
22:12
<TabAtkins_>
So "1 0" doesn't trigger any linecaps.
22:12
<Hixie>
what does 0 1 do?
22:12
<TabAtkins_>
No path displayed at all.
22:12
<Hixie>
interesting
22:13
<Hixie>
what does 0 1 do?
22:13
<TabAtkins_>
No path displayed at all.
22:13
<Hixie>
interesting
22:13
<Hixie>
where is this defined?
22:13
<heycam|away>
TabAtkins_, what's the example again?
22:13
<TabAtkins_>
I'm running off of Chrome's SVG impl right now. ^_^&
22:13
<Hixie>
where is this defined?
22:13
<heycam|away>
TabAtkins_, what's the example again?
22:13
<TabAtkins_>
I'm running off of Chrome's SVG impl right now. ^_^&
22:13
<heycam>
"dropping 0s" doesn't sound right to me but I missed the exact context
22:13
<TabAtkins_>
heycam: <path d="M 10 10 h 100 M 10 20 h 100" stroke-dasharray="10 0" stroke="black" stroke-width="5" stroke-linecap="round" />
22:13
<Hixie>
TabAtkins_: oh i thought you were checking the spec :-)
22:14
<heycam>
"dropping 0s" doesn't sound right to me but I missed the exact context
22:14
<TabAtkins_>
Let's see what the SVg spec actually says...
22:14
<TabAtkins_>
heycam: <path d="M 10 10 h 100 M 10 20 h 100" stroke-dasharray="10 0" stroke="black" stroke-width="5" stroke-linecap="round" />
22:14
<Hixie>
TabAtkins_: oh i thought you were checking the spec :-)
22:14
<TabAtkins_>
Let's see what the SVg spec actually says...
22:14
<Hixie>
TabAtkins_: don't trust implementations on edge cases like this :-)
22:14
<heycam>
that should mean round dashes of length 10 which overlap each other, I think
22:14
<Hixie>
TabAtkins_: don't trust implementations on edge cases like this :-)
22:14
<heycam>
that should mean round dashes of length 10 which overlap each other, I think
22:14
<heycam>
overlap on the round bits
22:14
<TabAtkins_>
Hm, wait.
22:14
<TabAtkins_>
I may not be able to detect it with this case.
22:14
<TabAtkins_>
Need some opacity.
22:14
<Hixie>
or a corner
22:14
<Hixie>
corner is better
22:15
<heycam>
overlap on the round bits
22:15
<TabAtkins_>
Hm, wait.
22:15
<TabAtkins_>
I may not be able to detect it with this case.
22:15
<TabAtkins_>
Need some opacity.
22:15
<Hixie>
or a corner
22:15
<Hixie>
corner is better
22:15
<Hixie>
opacity doesn't necessarily work, depends how the stroke is defined
22:15
<Hixie>
and i don't know if svg is detailed enough about that
22:15
<TabAtkins_>
Ah, true.
22:15
<Hixie>
opacity doesn't necessarily work, depends how the stroke is defined
22:15
<Hixie>
and i don't know if svg is detailed enough about that
22:15
<TabAtkins_>
Ah, true.
22:16
<heycam>
if you make it stroke-dasharray="10 2" you can see the overlap
22:16
<heycam>
i.e. you can see where the round bits are nearly completely overlapping
22:16
<TabAtkins_>
Yeah, but that's easy.
22:16
<heycam>
if you make it stroke-dasharray="10 2" you can see the overlap
22:16
<heycam>
i.e. you can see where the round bits are nearly completely overlapping
22:16
<TabAtkins_>
Yeah, but that's easy.
22:16
<heycam>
what's the problem with the 0?
22:16
<TabAtkins_>
We need a way to detect the difference between "fully overlapping" and "no linecap at all".
22:16
<TabAtkins_>
I think Hixie's right that a corner would work.
22:16
<Hixie>
heycam: does svg say to cut the line at a zero-length dash, or does it let the line be solid?
22:17
<heycam>
what's the problem with the 0?
22:17
<TabAtkins_>
We need a way to detect the difference between "fully overlapping" and "no linecap at all".
22:17
<TabAtkins_>
I think Hixie's right that a corner would work.
22:17
<Hixie>
heycam: does svg say to cut the line at a zero-length dash, or does it let the line be solid?
22:17
<Hixie>
no line cap with a corner is another way of testing it
22:17
<Hixie>
since you'll have or not have a join
22:17
<Hixie>
no line cap with a corner is another way of testing it
22:17
<heycam>
it doesn't say to cut the dash if the cap overlaps it
22:17
<Hixie>
if the gap occurs right at the corner
22:17
<Hixie>
since you'll have or not have a join
22:17
<heycam>
it doesn't say to cut the dash if the cap overlaps it
22:17
<Hixie>
if the gap occurs right at the corner
22:17
<Hixie>
heycam: forget the cap
22:17
<heycam>
but I doubt it says anything that detailed
22:17
<heycam>
ok
22:17
<Hixie>
heycam: i the line dash pattern is 10 on, 0 off
22:17
<Hixie>
heycam: and you stroke a line of length 20
22:18
<Hixie>
heycam: forget the cap
22:18
<heycam>
but I doubt it says anything that detailed
22:18
<heycam>
ok
22:18
<TabAtkins_>
Ok, Chrome at least *does* draw linecaps between segments separated by a 0 off segment.
22:18
<Hixie>
heycam: i the line dash pattern is 10 on, 0 off
22:18
<Hixie>
heycam: and you stroke a line of length 20
22:18
<TabAtkins_>
Ok, Chrome at least *does* draw linecaps between segments separated by a 0 off segment.
22:18
<heycam>
Hixie, yes...
22:18
<Hixie>
heycam: and your line has a corner at distance 10
22:18
<heycam>
Hixie, yes...
22:18
<Hixie>
heycam: and your line has a corner at distance 10
22:18
<Hixie>
heycam: does svg say if you lose the join or not?
22:18
<TabAtkins_>
<path d="M 10 10 h 40 v 40" stroke-dasharray="40 0" stroke="rgba(0,0,0,.5)" stroke-width="5" stroke-linecap="round" fill='transparent'/>
22:19
<Hixie>
heycam: does svg say if you lose the join or not?
22:19
<TabAtkins_>
<path d="M 10 10 h 40 v 40" stroke-dasharray="40 0" stroke="rgba(0,0,0,.5)" stroke-width="5" stroke-linecap="round" fill='transparent'/>
22:19
<TabAtkins_>
The corner is rounded, indicating the linecap is respected. (linejoin is miter by default, and so would produce a sharp corner if the segments were merged.)
22:19
<heycam>
sorry I'm confused :)
22:20
<TabAtkins_>
The corner is rounded, indicating the linecap is respected. (linejoin is miter by default, and so would produce a sharp corner if the segments were merged.)
22:20
<heycam>
sorry I'm confused :)
22:20
<TabAtkins_>
SVG doesn't mention anything about coalescing segments, so it looks like we cal call Chrome's behavior compliant.
22:20
<heycam>
ah the join
22:20
<TabAtkins_>
SVG doesn't mention anything about coalescing segments, so it looks like we cal call Chrome's behavior compliant.
22:20
<heycam>
ah the join
22:20
<TabAtkins_>
heycam: Yeah, we're trying to tell whether a 0-length "off" segment causes the two surrounding "on" segments to coalesce or not.
22:20
<heycam>
TabAtkins_, that corner is square in Firefox :)
22:21
<TabAtkins_>
heycam: Yeah, we're trying to tell whether a 0-length "off" segment causes the two surrounding "on" segments to coalesce or not.
22:21
<heycam>
TabAtkins_, that corner is square in Firefox :)
22:21
<TabAtkins_>
heycam: But the ends are round?
22:21
<heycam>
yeah
22:21
<TabAtkins_>
Then Firefox coalesces segments.
22:21
<TabAtkins_>
heycam: But the ends are round?
22:21
<heycam>
yeah
22:21
<TabAtkins_>
Then Firefox coalesces segments.
22:21
<heycam>
interesting
22:22
<heycam>
interesting
22:22
<TabAtkins_>
Which sounds like *more* work than just leaving it alone.
22:22
<TabAtkins_>
Which sounds like *more* work than just leaving it alone.
22:22
<heycam>
this is likely to be differences in the underlying graphics libraries
22:22
<heycam>
this is likely to be differences in the underlying graphics libraries
22:22
<TabAtkins_>
Could be, yeah.
22:22
<heycam>
which are doing the stroking
22:22
<Hixie>
( http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1402 is a clearer test case)
22:23
<TabAtkins_>
Could be, yeah.
22:23
<heycam>
which are doing the stroking
22:23
<Hixie>
( http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1402 is a clearer test case)
22:23
<Hixie>
hm, no opera on this machine, since i reset it the other day
22:23
<Hixie>
hm, no opera on this machine, since i reset it the other day
22:23
<Hixie>
what's the url to the opera nightly builds?
22:23
<heycam>
no dot on my opera
22:23
<Hixie>
i get no dot in safari either
22:23
<Hixie>
or firefox
22:24
<Hixie>
what's the url to the opera nightly builds?
22:24
<heycam>
no dot on my opera
22:24
<Hixie>
i get no dot in safari either
22:24
<Hixie>
or firefox
22:24
<Hixie>
incidentally, svg does say "Any zero length subpath shall not be stroked if the ‘stroke-linecap’ property has a value of butt but shall be stroked if the ‘stroke-linecap’ property has a value of round or square, producing respectively a circle or a square centered at the given point."
22:25
<Hixie>
incidentally, svg does say "Any zero length subpath shall not be stroked if the ‘stroke-linecap’ property has a value of butt but shall be stroked if the ‘stroke-linecap’ property has a value of round or square, producing respectively a circle or a square centered at the given point."
22:25
<Hixie>
not clear how you decide what direction the linecap should go
22:25
<Ms2ger>
Heh, "shall"
22:25
<heycam>
yes that's for subpaths though, not dashes
22:25
<Hixie>
not clear how you decide what direction the linecap should go
22:25
<Hixie>
yeah, but it's an example of how svg and canvas differ
22:25
<Ms2ger>
Heh, "shall"
22:25
<heycam>
yes that's for subpaths though, not dashes
22:25
<Hixie>
yeah, but it's an example of how svg and canvas differ
22:25
<Hixie>
on an almost identical issue
22:25
<heycam>
ok
22:26
<Hixie>
on an almost identical issue
22:26
<heycam>
ok
22:26
<Hixie>
oh there is an algorithm to determeine directionality
22:26
<Hixie>
it's deep in another chapter
22:26
<Hixie>
section F.5
22:26
<Hixie>
oh there is an algorithm to determeine directionality
22:26
<Hixie>
it's deep in another chapter
22:26
<Hixie>
section F.5
22:26
<heycam>
yeah that stuff really should be with the rest of the path stuff
22:26
<heycam>
it's like a little afterthought added for tricky cases :)
22:26
heycam
must go out for a bit
22:27
<heycam>
yeah that stuff really should be with the rest of the path stuff
22:27
<heycam>
it's like a little afterthought added for tricky cases :)
22:27
heycam
must go out for a bit
22:28
<Hixie>
"If a dash has zero length, linecaps are still added if the stroke-linecap values round and square are used."
22:28
<Hixie>
in 1.2T
22:28
<Hixie>
well implementations seem to disagree
22:28
<Hixie>
"If a dash has zero length, linecaps are still added if the stroke-linecap values round and square are used."
22:28
<Hixie>
in 1.2T
22:28
<Hixie>
well implementations seem to disagree
22:28
<TabAtkins_>
Yeah, I was just testing that.
22:29
<TabAtkins_>
Yeah, I was just testing that.
22:29
<Hixie>
oh actually my test checks something else
22:29
<TabAtkins_>
A dasharray of "0 10" should, by that line, draw a circle/square every 10px.
22:29
<Hixie>
oh actually my test checks something else
22:29
<TabAtkins_>
A dasharray of "0 10" should, by that line, draw a circle/square every 10px.
22:29
<Hixie>
yeah
22:30
<Hixie>
yeah
22:30
<TabAtkins_>
Heh, ".01 10" works in Chrome, but ".001 10" doesn't. Yay precision!
22:31
<TabAtkins_>
Heh, ".01 10" works in Chrome, but ".001 10" doesn't. Yay precision!
22:32
<TabAtkins_>
So I think that zero-length "off" segmetns should still split up a path into two segments, for consistency with SVG.
22:32
<TabAtkins_>
So I think that zero-length "off" segmetns should still split up a path into two segments, for consistency with SVG.
22:32
<TabAtkins_>
However, a zero-length "on" segment should act as normal for canvas (and have no drawing effect).
22:33
<TabAtkins_>
However, a zero-length "on" segment should act as normal for canvas (and have no drawing effect).
22:33
<Hixie>
consistency with the svg spec, or svg implementations?
22:34
<Hixie>
consistency with the svg spec, or svg implementations?
22:34
<Hixie>
i get different results in chrome, safari, and firefox for http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1403
22:34
<Hixie>
i get different results in chrome, safari, and firefox for http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1403
22:34
<zewt>
is the assumption that there's no hope of having the question answered by the svg spec and implementations reaching agreement? heh
22:34
<Hixie>
make that http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1404
22:34
<Hixie>
1403 is bogus
22:35
<zewt>
is the assumption that there's no hope of having the question answered by the svg spec and implementations reaching agreement? heh
22:35
<Hixie>
make that http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1404
22:35
<Hixie>
1403 is bogus
22:35
<TabAtkins_>
zewt: It'll be answered in SVG2 if we file a bug now.
22:35
<Hixie>
it's basically answered by svg now
22:35
<Hixie>
implementations just don't do it
22:35
<Hixie>
so the question is which should change
22:35
<TabAtkins_>
zewt: It'll be answered in SVG2 if we file a bug now.
22:35
<Hixie>
it's basically answered by svg now
22:35
<Hixie>
implementations just don't do it
22:35
<Hixie>
so the question is which should change
22:35
<zewt>
i mean, the question of whether to match the spec or implementations
22:36
<zewt>
i mean, the question of whether to match the spec or implementations
22:38
<Hixie>
ooh, opera nad firefox agree
22:38
<Hixie>
ooh, opera nad firefox agree
22:43
<Hixie>
i guess supporting zero-length "off" dashes isn't hard
22:44
<Hixie>
i guess supporting zero-length "off" dashes isn't hard
22:53
<Hixie>
i'm thinking people are going to want zero-length on dashes too though, for dotted lines...
22:53
<Hixie>
i'm thinking people are going to want zero-length on dashes too though, for dotted lines...
22:53
<TabAtkins_>
I do think that zero-length on dashes are useful (it's hacky to have to do a .01 length on dash).
22:54
<TabAtkins_>
I do think that zero-length on dashes are useful (it's hacky to have to do a .01 length on dash).
22:54
<Hixie>
what should happen if the dash is 1 0 0 0 0 0 0 0 0 0 ?
22:54
<Hixie>
i wonder if there's even any way to tell...
22:54
<Hixie>
what should happen if the dash is 1 0 0 0 0 0 0 0 0 0 ?
22:54
<Hixie>
i wonder if there's even any way to tell...
22:54
<TabAtkins_>
Depends on the drawing library.
22:54
<TabAtkins_>
If they draw each segment individually, you can tell with semi-transparent colors.
22:54
<TabAtkins_>
If they draw them all at the same time, you can't.
22:55
<TabAtkins_>
Depends on the drawing library.
22:55
<TabAtkins_>
If they draw each segment individually, you can tell with semi-transparent colors.
22:55
<TabAtkins_>
If they draw them all at the same time, you can't.
22:55
<Hixie>
canvas draws it at the same time
22:55
<Hixie>
canvas draws it at the same time
22:57
<TabAtkins_>
Then you can't tell. The multiple 0-length dash segments overwrite each other, and are then overwritten by the 1-length dash when it comes around again.
22:58
<TabAtkins_>
Then you can't tell. The multiple 0-length dash segments overwrite each other, and are then overwritten by the 1-length dash when it comes around again.
22:59
<Hixie>
ok 1 40 0 0 0 0 0 40
22:59
<Hixie>
ok 1 40 0 0 0 0 0 40
22:59
<Hixie>
i guess i should remove pairs of zeros that follow pairs of zeros
23:00
<Hixie>
i guess i should remove pairs of zeros that follow pairs of zeros
23:01
<TabAtkins_>
Yes, in that example you'll see a 1-dash, 40 space, 0-dash, 40 space.
23:01
<TabAtkins_>
Yes, in that example you'll see a 1-dash, 40 space, 0-dash, 40 space.
23:01
<TabAtkins_>
So removing pairs following the first pair should work, as you say.
23:02
<TabAtkins_>
So removing pairs following the first pair should work, as you say.
23:03
<Hixie>
actually i think what i should remove is any sequence of a zero off segment followed by a zero on segment
23:03
<Hixie>
actually i think what i should remove is any sequence of a zero off segment followed by a zero on segment
23:03
<TabAtkins_>
Yeah, that should work.
23:03
<Hixie>
including removing a leading zero / trailing zero pair
23:04
<TabAtkins_>
Yeah, that should work.
23:04
<Hixie>
including removing a leading zero / trailing zero pair
23:04
<Hixie>
(after doubling for for lengths)
23:04
<Hixie>
for odd
23:04
<Hixie>
(after doubling for for lengths)
23:04
<Hixie>
for odd
23:06
<TabAtkins_>
Removing a leading zero pair works if the third segment is non-zero.
23:06
<TabAtkins_>
Or rather, if there is *a* non-zero "on" segment.
23:06
<TabAtkins_>
Removing a leading zero pair works if the third segment is non-zero.
23:06
<TabAtkins_>
Or rather, if there is *a* non-zero "on" segment.
23:07
<TabAtkins_>
0 0 0 10 should collapse to 0 10.
23:07
<Hixie>
if there's no non-zero on segments then the whole thing doesn't much matter
23:07
<TabAtkins_>
0 0 0 10 should collapse to 0 10.
23:07
<Hixie>
if there's no non-zero on segments then the whole thing doesn't much matter
23:07
<Hixie>
oh wait right
23:07
<TabAtkins_>
Not true! All 0s still draws a single dot.
23:07
<Hixie>
i meant if there's no non-zero segments at all
23:07
<TabAtkins_>
The algorithm goes degenerate in that case, I guess.
23:08
<Hixie>
oh wait right
23:08
<TabAtkins_>
Not true! All 0s still draws a single dot.
23:08
<Hixie>
i meant if there's no non-zero segments at all
23:08
<TabAtkins_>
The algorithm goes degenerate in that case, I guess.
23:08
<TabAtkins_>
SVG chooses to just treat that as no dashing at all, and draws it solid.
23:08
<Hixie>
it treats it as 'none'
23:08
<TabAtkins_>
SVG chooses to just treat that as no dashing at all, and draws it solid.
23:08
<Hixie>
it treats it as 'none'
23:08
<Hixie>
whatever that means (solid?)
23:08
<Hixie>
(that's... unintuitive)
23:08
<TabAtkins_>
no dashes!
23:08
<Hixie>
mmmm
23:09
<Hixie>
whatever that means (solid?)
23:09
<Hixie>
(that's... unintuitive)
23:09
<TabAtkins_>
no dashes!
23:09
<Hixie>
mmmm
23:10
<Hixie>
what do you call the values in an array
23:10
<Hixie>
members of the array?
23:11
<Hixie>
what do you call the values in an array
23:11
<Hixie>
members of the array?
23:11
<TabAtkins_>
values works.
23:11
<Hixie>
values is the actual numbers
23:11
<Hixie>
i mean the buckets for the numbers
23:12
<TabAtkins_>
values works.
23:12
<Hixie>
values is the actual numbers
23:12
<Hixie>
i mean the buckets for the numbers
23:12
<Hixie>
i guess values still works
23:12
<Hixie>
nevermind
23:12
<Hixie>
i guess values still works
23:12
<Hixie>
nevermind
23:12
<TabAtkins_>
Hey, are you planning on adding markers a-la-SVG at some point?
23:12
<Hixie>
not currently
23:13
<TabAtkins_>
Hey, are you planning on adding markers a-la-SVG at some point?
23:13
<Hixie>
not currently
23:13
<Hixie>
(haven't had any requests for them)
23:13
<TabAtkins_>
Ok. Just asking, because markers depend on the subpaths, and if your dashing chops up the subpaths it'll make it harder for you.
23:13
<Hixie>
(haven't had any requests for them)
23:13
<TabAtkins_>
Ok. Just asking, because markers depend on the subpaths, and if your dashing chops up the subpaths it'll make it harder for you.
23:14
<Hixie>
i'd just do the markers before the chopping
23:15
<Hixie>
i'd just do the markers before the chopping
23:15
<Hixie>
that's not a big deal :-)
23:15
<Hixie>
that's not a big deal :-)
23:16
<TabAtkins_>
I think markers are still drawn on chopped-out segments, but if you meant just *placing* them before the chopping, then sure.
23:16
<TabAtkins_>
I think markers are still drawn on chopped-out segments, but if you meant just *placing* them before the chopping, then sure.
23:16
<Hixie>
markers are just filled shapes that are overlapped over the line when it is stroked right?
23:16
<TabAtkins_>
Yeah.
23:17
<Hixie>
markers are just filled shapes that are overlapped over the line when it is stroked right?
23:17
<TabAtkins_>
Yeah.
23:17
<Hixie>
so i would just take note of the direction and position that all the markers would have to be, then chop the line, then merge the two pieces of information into one path, then return that.
23:17
<TabAtkins_>
kk
23:17
<Hixie>
so i would just take note of the direction and position that all the markers would have to be, then chop the line, then merge the two pieces of information into one path, then return that.
23:17
<TabAtkins_>
kk
23:19
<Hixie>
when removing the last value if it's zero and the first value if it's zero, i need to make sure to then move the new last value to the front
23:19
<Hixie>
or move the new front value to the back
23:19
<Hixie>
any preference?
23:19
<Hixie>
when removing the last value if it's zero and the first value if it's zero, i need to make sure to then move the new last value to the front
23:19
<TabAtkins_>
front to the back!
23:19
<Hixie>
or move the new front value to the back
23:19
<Hixie>
any preference?
23:19
<TabAtkins_>
front to the back!
23:19
<Hixie>
actually...
23:19
<Hixie>
0 40 40 0 drawn to a short line
23:20
<Hixie>
actually...
23:20
<Hixie>
0 40 40 0 drawn to a short line
23:20
<Hixie>
short = 50
23:20
<Hixie>
would be a dot then a 40 gap then a 10 line
23:20
<Hixie>
so we're wrong, we can't do that removal
23:20
<Hixie>
short = 50
23:20
<Hixie>
would be a dot then a 40 gap then a 10 line
23:20
<Hixie>
so we're wrong, we can't do that removal
23:20
<Hixie>
so i have to deal with this case anyway in the stroking code
23:20
<Hixie>
so nevermind
23:20
<TabAtkins_>
You said you'd only remove 0 pairs in the beginning.
23:20
<TabAtkins_>
Not all zeros.
23:21
<Hixie>
so i have to deal with this case anyway in the stroking code
23:21
<Hixie>
so nevermind
23:21
<TabAtkins_>
You said you'd only remove 0 pairs in the beginning.
23:21
<TabAtkins_>
Not all zeros.
23:28
<Hixie>
?
23:28
<Hixie>
?
23:28
<Hixie>
"actually i think what i should remove is any sequence of a zero off segment followed by a zero on segment" is what i was referring to
23:28
<Hixie>
followed by the idea of extending that to wrap around
23:28
<TabAtkins_>
Oh, I didn't realize you were referring to a wraparound pair.
23:29
<Hixie>
"actually i think what i should remove is any sequence of a zero off segment followed by a zero on segment" is what i was referring to
23:29
<Hixie>
followed by the idea of extending that to wrap around
23:29
<TabAtkins_>
Oh, I didn't realize you were referring to a wraparound pair.
23:29
<Hixie>
but i can't do the extended case for wrap around, since it matters at the start of the stroke
23:29
<Hixie>
but i can't do the extended case for wrap around, since it matters at the start of the stroke
23:29
<TabAtkins_>
Yeah, don't do the wraparound.
23:29
<Hixie>
but if i don't do that, i need to deal with that case in the stroking code
23:29
<TabAtkins_>
Yeah, don't do the wraparound.
23:29
<Hixie>
at which point, i don't need to remove any
23:29
<Hixie>
since it doesn't gain me anything
23:29
<Hixie>
but if i don't do that, i need to deal with that case in the stroking code
23:29
<Hixie>
at which point, i don't need to remove any
23:29
<Hixie>
since it doesn't gain me anything
23:29
<TabAtkins_>
Note - it *doesn't* matter when you offset the dashes.
23:29
<Hixie>
right
23:29
<Hixie>
well
23:29
<Hixie>
right
23:30
<TabAtkins_>
Note - it *doesn't* matter when you offset the dashes.
23:30
<Hixie>
right
23:30
<Hixie>
well
23:30
<Hixie>
right
23:30
<TabAtkins_>
Modulo some specific cases, sure.
23:30
<TabAtkins_>
Modulo some specific cases, sure.
23:31
<TabAtkins_>
The problem is that the stroke isn't treated as an infinite line. If it were, you could safely remove wraparound pairs and just let the natural wrapping-around behavior work.
23:31
<TabAtkins_>
You'd get the cap of the off-screen segment that just touches the dash origin.
23:32
<TabAtkins_>
The problem is that the stroke isn't treated as an infinite line. If it were, you could safely remove wraparound pairs and just let the natural wrapping-around behavior work.
23:32
<TabAtkins_>
You'd get the cap of the off-screen segment that just touches the dash origin.
23:34
<Hixie>
yeah
23:34
<Hixie>
ok
23:34
<Hixie>
that's fine
23:34
<Hixie>
makes setting the dash list easy
23:34
<Hixie>
but now i have to deal with some szeros
23:34
<Hixie>
ok
23:34
<Hixie>
that's fine
23:34
<Hixie>
makes setting the dash list easy
23:34
<Hixie>
but now i have to deal with some szeros
23:55
<Hixie>
hmmm
23:56
<Hixie>
hmmm