00:08
<jcranmer>
what would be the best markup to indicate something of the form "There's a sucker^H^H^H^H^H^H potential customer born every minute?"
00:13
<jcranmer>
I've been using <del>sucker</del><ins>potential customer</ins>, but I'm not convinced that's the best markup
00:14
<webben>
jcranmer: Yep, it's a thorny one.
00:15
<jcranmer>
I originally used <s>, but stopped when I discovered that said element was deprecated in HTML 4.01
00:25
jcranmer
is cleaning out his WHATWG folder and notes how the cvs commit emails tend to bunch up as time passes
00:44
jcranmer
notes that Hixie is technically violating RFC 2822 in his messages
00:45
<jcranmer>
he only has In-Reply-To set to the last parent, and uses References to denote all parents
00:46
<jcranmer>
but the spec quite clearly states that, in the case of multiple parents, In-Reply-To should be set to the Message-IDs of all parents that have them and the References field should not be used
00:48
<jcranmer>
Hixie: ^ (although I suspect you don't care)
00:55
<Philip`>
Normally his mail client fails to set References to more than about three of the emails that are being referenced, which totally breaks the referencing mechanism anyway :-)
00:57
<jcranmer>
file a bug report with Pine :-)
01:08
<asidwell>
is there any order or reason for the treebuilder steps intermingling end tag tokens and start tag tokens?
01:19
<asidwell>
it makes it much harder to implement
01:30
<Philip`>
asidwell: As far as I'm aware, there is no reason (except historical or organisational) - the token-matching cases are all be independent (except for the "anything else" ones at the end)
01:31
<Philip`>
Oops, too late
01:31
<takkaria>
nah
01:31
<takkaria>
it's me :)
01:31
Philip`
wishes his wireless network didn't keep cutting out every five seconds
01:31
<Philip`>
takkaria: Ah, confusing :-)
01:32
<takkaria>
when I say it makes it harder to implement, I just mean that it's much easier to make sure my code's doing the right thing because I have to scan through it once for start tag tokens, and again for end tag tokens
01:32
<jcranmer>
Philip`: I presume you've ssh'd to a screen session on another session?
01:32
<jcranmer>
s/session\?/server?/
01:32
<takkaria>
if they were grouped together, then it would be one scan and I wouldn't accidentally miss anything
01:35
<Philip`>
jcranmer: I have
01:35
<jcranmer>
only way you could be on a weak wireless network and not lose connectivity in IRC
01:36
<Philip`>
Not necessarily, since I don't lose the SSH connection while the wireless is being dodgy - it just hangs for a while, then recovers once it's got reconnected
01:37
<Philip`>
(But it's the only way I could not lose connectivity while my computer is turned off while I'm sleeping or travelling)
01:37
jcranmer
uses ssh+screen
01:38
<jcranmer>
and so do most of the people here, I presume
01:39
<Philip`>
takkaria: If start/end tags were grouped together, that would mean it would no longer group e.g. all table tags together, which would make the spec a bit harder to read and understand
01:40
<Philip`>
I just parse the spec with regular expressions so I can programmatically reorder it to however I want, which is only a slightly stupid way to do it
01:40
<takkaria>
hmmm
03:28
<takkaria>
Hixie: ping. you still have the text "Still need to add these new elements to the lists: event-source, section, nav, article, aside, header, footer, datagrid, command" in the spec despite it no longer being true
03:52
<Hixie>
d'oh
03:52
<Hixie>
is it just a comment?
03:52
<Hixie>
or a red box?
04:02
<takkaria>
red box
04:02
<takkaria>
how's URI work going? :)
05:44
<Hixie>
takkaria: painfully
05:44
<Hixie>
takkaria: if you want me to get rid of the red box, send mail :-)
06:36
<mcarter>
Hixie, I've got a basic version of the WebSocket emulation working in all the browsers, and I'm getting ready to make a release and put up a article/blog post about it
06:36
<mcarter>
Hixie, whenever you get a chance, I have a few simple questions for you that i wanted to publish with the post
10:30
<hsivonen_>
Philip`: I have gradientunits in my camelCase table
10:31
<hsivonen_>
Did you notice problems with other attributes not getting the proper camelCase?
10:33
<Philip`>
hsivonen_: gradientunits was the only one I noticed (though that could be because that's the only one that was used in any content)
10:36
<hsivonen_>
Philip`: OK. I'll investigate.
10:36
<Philip`>
(I don't know if this was a problem in the parser or the serialiser)
10:38
<hsivonen_>
although I like to blame stuff on the serializer, I think this one is more likely in the parser
10:38
<hsivonen_>
I should write my own XML serializer.
10:44
<MikeSmith>
"Anne ist immer noch Gott."
10:44
<annevk>
Gott?
10:47
<Philip`>
Anne is still a goat?
10:48
<annevk>
http://translate.google.com/translate_t?sl=de&tl=en
10:48
<gDashiva>
Philip`: Probably meant goth :P
10:50
<Philip`>
Hmm, they made Google Translate all ugly and Ajaxy
10:50
<Philip`>
What's wrong with using <select> when you want a drop-down list?
10:51
<zcorpan_>
Philip`: <select> would work in opera mini, the ajaxy stuff doesn't
10:54
<annevk>
http://translate.google.com/translate_t?sl=de&tl=en&q=gott is what I was looking for
11:03
annevk
wouldn't classify himself as goth, goat, or God
11:04
<Philip`>
Sounds like denial
11:04
<gDashiva>
The divine goth goat graces us with his presence
11:04
<hsivonen_>
I'm very close to writing my own XML serializer and throwing out the Xalan one
11:11
<MikeSmith>
annevk: I thought it meant "Anne is him not good."
12:58
<Philip`>
It takes longer to learn to write PDF by hand than HTML :-(
13:37
<hsivonen_>
weird. I ended up fixing the gradientUnits bug, but I didn't notice when exactly I fixed it.
13:37
<hsivonen_>
troubling
13:37
<hsivonen_>
hmm.
13:37
<hsivonen_>
now I know
13:37
<hsivonen_>
I had localNames camelCased but qNames not
15:27
<hsivonen_>
we need tokenizer test coverage for character data after a tag that has had bogus entities in attributes
15:28
<Philip`>
By "we" do you mean "you"? ;-)
15:28
<hsivonen_>
Philip`: by "we" I mean I need it but we who write html5lib tests should have it
15:30
<Philip`>
((Hmm, I was ambiguous - by "you" I meant you, i.e. "I" from your perspective, not me/us i.e. "you" from your perspective. Pronouns are hard :-( ))
15:30
<Philip`>
hsivonen_: Sounds reasonable to me :-)
15:30
<hsivonen_>
what's the purpose of ruby/testdata/ ?
15:31
<Philip`>
Ooh, I didn't notice the viewbox/viewBox thing
15:31
<hsivonen_>
does the ruby port have divergent tests?
15:31
<Philip`>
It's exactly the same files, pulled in via svn:externals
15:31
<hsivonen_>
ok
15:32
<Philip`>
$ svn propget svn:externals ruby/
15:32
<Philip`>
testdata http://html5lib.googlecode.com/svn/trunk/testdata/
15:32
<Philip`>
I don't know why it's done like that
15:34
<Philip`>
Hmm, Opera 9.5 renders http://upload.wikimedia.org/wikipedia/en/b/b5/Lindos5.svg as SVG
15:35
<hsivonen_>
I guess Opera has given up on XML correctness in order to be compatible with the Adobe plug-in
15:35
<hsivonen_>
yay for XML
15:36
<Philip`>
I thought that was a problem in 9.2 but fixed in 9.5
15:37
<Philip`>
Ah - 9.2 triggers SVG rendering on <svg>, but 9.5 requires either <!DOCTYPE whatever><svg> or <svg xmlns="whatever">
15:37
<hsivonen_>
Philip`: what behavior was a "problem"? being compatible with Adobe or being XML-wise correct?
15:38
<hsivonen_>
Philip`: is doctype whatever really whatever or a magic SVG doctype?
15:38
<Philip`>
hsivonen_: Being compatible with content with <svg> (no doctype and no xmlns)
15:38
<Philip`>
hsivonen_: It's not really "whatever", that's just a placeholder for some string whose constraints I am unaware of
15:38
<hsivonen_>
ok
15:42
<Philip`>
Looks like it requires the doctype to either have -//W3C//DTD SVG 1.(0|1|1 Tiny|1 Basic)//EN, or else http://www.w3.org/TR/SVG10/DTD/svg10.dtd or http://www.w3.org/Graphics/SVG/1.1/DTD/svg11(|-flat|-basic|-tiny).dtd
15:42
<hsivonen_>
"input":"<!doctype! ??"
15:42
<hsivonen_>
test cases say 3 errors
15:42
<hsivonen_>
my code says 2
15:43
<Philip`>
Has the spec changed about that recently?
15:43
<hsivonen_>
Philip`: is it testable if it really parses a DTD or fakes some data structures selectively
15:43
<hsivonen_>
Philip`: I'm pretty sure Hixie changes EOF errors
15:44
<Philip`>
hsivonen_: I was assuming it doesn't parse a DTD, and just matches against hardcoded strings
15:44
<Philip`>
since those DTD strings are the hardcoded ones I extracted from the binary
15:45
<Philip`>
(and they seem to work in practice, and other strings don't seem to)
15:45
<hsivonen_>
"input":"<!doctype!?",
15:45
<hsivonen_>
test cases say two errors
15:47
<Philip`>
The second "!" is "anything else" in "doctype state", which errors into "before doctype name state", which goes into "doctype name state", then EOF errors into "data state"
15:47
<Philip`>
(hence two errors)
15:47
<Philip`>
Is that not what you get?
15:48
<Philip`>
"<!doctype! ??" is about the same, plus a third error because "??" is not "public" or "system"
15:48
<hsivonen_>
I don't see EOF erroring anymore
15:48
<hsivonen_>
hence, two errors
15:49
<hsivonen_>
oops. sorry I was talking about the wrong case
17:15
<hsivonen_>
allowing <option> and <optgroup> in 'in body' invalidated a bunch of test cases :-(
18:27
hsivonen_
wonders what happens to document.write from setTimeout
18:30
<hsivonen_>
If I'm in a JavaScript function, is there a cross-browser way to tell if the function is being called from an inline script or from an external script?
18:31
<hsivonen_>
I recall something about throwing an exception, catching it and examining where it was thrown
18:43
<virtuelv>
hsivonen_: I don't think there is any really reliable way
18:44
<hsivonen_>
virtuelv: OK. thanks
18:44
<hsivonen_>
It's really hard to emulate all aspects of document.write in JavaScript, then
18:50
<smedero>
Philip: Are there any notes about this tool? http://philip.html5.org/tools/parser/ specifically, what is old, unfinished, and broken about it :)
18:53
<Philip`>
smedero: The notes/documentation are one part that is entirely unfinished ;-)
18:53
<Philip`>
It's old because it's based on the spec from some months ago, before e.g. the MathML/SVG changes (and probably lots of other minor changes)
18:54
<Philip`>
It's unfinished because there are various things I haven't got around to implementing, like (if I remember correctly) all the adoption agency details
18:55
<Philip`>
It's broken because it's doesn't understand things like CDATA/RCDATA (since the tree constructor doesn't link back to the tokeniser to tell it about <title> and <script> etc changing the mode)
18:55
<Philip`>
s/it's/it/
18:56
<Philip`>
though that could be considered just an aspect of being unfinished
18:56
<Philip`>
It's also pretty much entirely untested
18:57
<smedero>
Ok, that helps!
18:59
<Philip`>
That should all be fixable without too much pain - it would just require time (and prioritisation)
19:01
<Philip`>
(and it's probably not a high priority if hsivonen_ is going to port his Java parser to JavaScript)
19:01
<hsivonen_>
Philip`: I'm working on it right now, actually :-)
19:02
<hsivonen_>
I want an environment where I can test document.write
19:02
<hsivonen_>
the GWT Hosted Mode seems to fit the bill
19:02
<hsivonen_>
when Google fixes the compiler, the JavaScript port is right there
19:05
<Philip`>
Does "when" mean "if"?
19:05
<hsivonen>
Philip`: yes
19:06
<Philip`>
Is there any way to work around the problem if the compiler isn't fixed?
19:09
<hsivonen>
Philip`: use compiler techniques to automatically rewrite the Java code not to use constructs that GWT can't compile right :-)
19:09
<hsivonen>
s/use/using/
19:12
<Philip`>
hsivonen: Does "munge it with Perl" count as a compiler technique? :-)
19:12
<hsivonen>
w00t! I have Hixie's Live DOM Viewer running an HTML5 parser and rendering using a browser engine
19:14
<hsivonen>
Philip`: It doesn't. I'm not sure if the problem is of the Perl mungable sort.
19:14
hsivonen
gets food
19:34
<hsivonen>
hmm. perhaps looplabel: for(;;) { ... default: break looplabel;} could be perl munged to looplabel: while(looplabelCond) { ... default: looplabelCond = false; }
19:35
<Philip`>
hsivonen: Can't it just say "break;" instead of "break looplabel;"?
19:36
<hsivonen>
Philip`: it can't. default: break; would only break out of the switch
19:37
<Philip`>
hsivonen: Ah, I didn't see the switch since it was invisible ;-)
19:37
<hsivonen>
implied by 'default' :-)
19:43
<Philip`>
In the worst case, you could just annotate the code like "looplabel: for (;;) //#break-loop" so it's easily transformed into a JS-compilable less-micro-optimised version
20:12
hsivonen
has inline document.write and scripts working in GWT
20:12
<hsivonen>
(hosted mode)
20:14
<hsivonen>
sadly, SVG sucks in the copy of WebKit embedded in GWT
20:14
<hsivonen>
I guess I should try to install a Gecko-based version of GWT under Ubuntu
20:22
<hsivonen>
what browser engine does GWT use on Windows?
21:02
<hsivonen>
the Gecko version GWT uses on Linux is really old
22:05
<jgraham__>
gsnedders: I think I fixed the outliner bug that you reported a few days ago (the "few days ago" applies to both the report and the fix)
22:05
<gsnedders>
jgraham__: which bug?
22:06
<jgraham__>
<header> not working correctly
22:06
<gsnedders>
jgraham__: ah
22:06
<gsnedders>
jgraham__: well, if you update http://james.html5.org/temp/outline/outline.py then I could look :)
22:07
<jgraham__>
Oh, you want the code too :)
22:07
jgraham__
should finish setting up hg on james.html5.org
22:09
<jgraham__>
gsnedders: Done
22:10
<gsnedders>
jgraham__: why is textContent() so complex?
22:11
Philip`
has learnt never to call a directory "temp", because it will always contain files that he could never risk deleting and so they will all stay there permanently
22:11
<Philip`>
(so I call the directories "misc" instead)
22:11
gsnedders
just uses stuff.gsnedders.com
22:11
<jgraham__>
gsnedders: Because the text equivalent of a <header> should be the text of the highest ranked <h1-6> child
22:11
<gsnedders>
(that actually includes some folders that are hidden from the index on HTTP)
22:11
<gsnedders>
jgraham__: ah
22:12
<gsnedders>
jgraham__: Mine doesn't do that.
22:12
<Philip`>
gsnedders: That doesn't solve the problem when you're using local filesystems rather than URLs
22:12
<jgraham__>
"For the purposes of document summaries, outlines, and the like, header elements are equivalent to the highest ranked h1–h6 element descendant of the header element (the first such element if there are multiple elements with that rank). "
22:12
<gsnedders>
jgraham__: Yeah, I see
22:12
<gsnedders>
Philip`: I just create a new folder for everything, thereby avoiding the need for "misc"
22:13
<Philip`>
gsnedders: I can never think of enough folder names
22:13
<Philip`>
so I have ~/misc, ~/download/misc, ~/html/misc, ...
22:13
<gsnedders>
jgraham__: Would it not just be simpler to just iter(tag=etree.Element)?
22:14
<jgraham__>
gsnedders: ?
22:14
<gsnedders>
Hixie: If header is equiv. to the highest rank h1–h6 descendant, surely it doesn't need to have a rank of its own?
22:14
<jgraham__>
(The answer is "probably, I seemed determined to do something crazy"
22:14
<jgraham__>
)
22:15
<Hixie>
gsnedders: ?
22:15
<gsnedders>
Hixie: "For the purposes of document summaries, outlines, and the like, header elements are equivalent to the highest ranked h1–h6 element descendant of the header element (the first such element if there are multiple elements with that rank)."
22:15
<jgraham__>
Hixie: A <header><h3></header> would have rank=3 not rank =1
22:15
<gsnedders>
Hixie: So do we treat a header element as if it was just the h1–h6 element, thereby the header element doesn't exist?
22:15
<Hixie>
the sentence gsnedders quoted is misleading
22:16
<gsnedders>
Hixie: Well, go write it better!
22:16
<Hixie>
i just meant that the header element's highest ranked hn element's text is the text that should be used
22:16
<jgraham__>
Yeah, I realised that but I'm not sure if it makes the most sense or not
22:16
<jgraham__>
I guess it does
22:17
<gsnedders>
jgraham__: just element.find("h1") all the way down to h6, and return the first non-null one
22:17
<gsnedders>
Hixie: It also doesn't say what to do if there isn't an h1–h6 descendant
22:18
<Hixie>
someone send mail or file a bug so i know to fix it :-)
22:18
<hsivonen>
I'm a bit disappointed.
22:18
<hsivonen>
the rendered view
22:18
<hsivonen>
does not work
22:18
<hsivonen>
in GWT hosted mode on Linux
22:19
<hsivonen>
Is the Live DOM Viewer supposed to work in Mozilla 1.7?
22:19
<gsnedders>
peh! Hixie: you should write better specs in the first place!
22:20
<Hixie>
agreed
22:20
<jgraham__>
gsnedders: Yeah I could have done that I guess.
22:20
<jgraham__>
For some reason I didn't want to :)
22:20
<hsivonen>
hmm. Log tells me uncaught exception: null on line 0
22:24
<gsnedders>
Hixie: mail sent
22:25
<Hixie>
thanks
22:32
<hsivonen>
did XHTML nodes inserted into an HTML doc render in Mozilla 1.7?
22:33
<jgraham__>
gsnedders: Changed, although iirc the original goal I had was to only perform a single walk of the subtree but not write all the iterator code myself
22:33
<hsivonen>
did Mozilla 1.7 break if the root element was removed from the document?
22:33
Philip`
decides that testing Object.prototype.toString.call(p) === '[object CanvasPattern]' is a really stupid thing to do
22:34
hsivonen
wishes GWT used newer versions of Gecko and WebKit
22:55
<Philip`>
http://www.bbc.co.uk/blogs/radiolabs/2008/06/removing_microformats_from_bbc.shtml - someone should suggest they look at HTML5 and <time> instead of looking at RDFa :-)
22:57
<hober>
Philip`: indeed. <time> is just as invalid HTML 4 as RDFa, and has a much greater chance of being adopted by mainstream browsers.
23:07
<gsnedders>
jgraham__: Well, it wouldn't do that with the existing xpath code anyway
23:07
<Philip`>
Hmm, I'm 9 lines short of 10,000 in my canvas test cases
23:07
<Philip`>
Can anyone suggest one short test case to add? :-)
23:07
<takkaria>
SMIL+canvas if you're running out of ideas
23:08
<jgraham__>
gsnedders: Hmm.
23:09
<Philip`>
takkaria: I don't think that quite exists yet, and I don't think I particularly want to encourage it :-p
23:09
<takkaria>
hey, it worked for Acid3 ^_^
23:11
Philip`
makes some editorial changes
23:12
<jgraham__>
gsnedders: Is it actually guaranteed to walk multiple times? I guess I was assuming it would perform a single walk and try to match each expression, but I didn't think about it very carefully or read the spec or anything
23:12
<Philip`>
9998 lines
23:12
<gsnedders>
jgraham__: No, it isn't. But AFAIK more or less every implementation does.
23:12
Philip`
adds a couple of blank lines for no good reason
23:12
<Philip`>
10,000! Hooray
23:13
<jgraham__>
gsnedders: Well in that case I claim that my implementation was fine and that xpath people need to optimise their code more ;)
23:13
<gsnedders>
jgraham__: That's hard :)
23:14
<jgraham__>
So, they're cleverer than me! That's why they're writing the low level library and I'm writing the crappy micro-application on top
23:14
<gsnedders>
jgraham__: Me? Cleverer than you? :)
23:14
<jgraham__>
You've written an xpath implementation?
23:14
<gsnedders>
jgraham__: Well, hacked at one
23:15
<gsnedders>
jgraham__: I don't think my patches are actually publicly available anywhere
23:15
<jgraham__>
Which one?
23:15
<gsnedders>
jgraham__: Mainly 'cos the lead dev more or less vanished due to time constraints
23:15
<gsnedders>
http://sourceforge.net/projects/webpath/
23:16
<Philip`>
I like how the C++ STL provides abstraction in a way that doesn't hide all the performance characteristics
23:17
<Philip`>
but that seems pretty rare, and most libraries seem to not provide any information about what's going to give good/bad performance :-(
23:19
<jgraham__>
gsnedders: FWIW I think it is very likely that you are better are programming-type things than I am
23:20
<gsnedders>
jgraham__: I wouldn't say so — any difference between us is marginal, I'd say
23:44
<Philip`>
Argh
23:44
<Philip`>
Doesn't WebKit have getImageData? :-(
23:44
<Philip`>
(particularly r34578 on Windows)
23:44
<Hixie>
some versions of webkit certainly have getImageData() support
23:45
<Hixie>
i need hsivonen
23:45
<Philip`>
I'd like some don't-crash-when-loading-the-default-home-page support too
23:46
<Philip`>
Argh again
23:47
<othermaciej_>
WebKit trunk has it afaik
23:48
<Philip`>
othermaciej: I'm using a (Windows) nightly that claims to be a week old but can't find any traces of its existence :-/
23:49
<Philip`>
Argh yet again - the 3.1 release doesn't crash but it hangs forever on one of my tests cases
23:49
<othermaciej>
Philip`: olliej on #webkit might be able to help you
23:50
<othermaciej>
we'd also be glad to look at any hangs you've got
23:50
<Philip`>
Just got to work out which of these 175 test cases it is...
23:52
<Philip`>
Hmm, Beziers
23:54
<Philip`>
Hmm, non-finite Beziers
23:57
<Hixie>
interesting
23:57
<Hixie>
but logical
23:57
<Hixie>
hmm......
23:58
Hixie
ponders the ins and outs of url behaviour shown by http://www.hixie.ch/tests/adhoc/uri/encoding/
23:58
<Hixie>
i clearly need to do tests that use location.href...