06:53
<hsivonen>
jgraham: btw, it is now official that my next work items after getting the conformance checker source code better out there are proper Java implementations of the character encoding sniffing algorithm and the tokenizer
06:54
<hsivonen>
I intend to write and independent implementation to spec instead of porting html5lib
06:54
<hsivonen>
should be good both for getting the Javaness right and for getting more review of the spec
06:55
<hsivonen>
s/write and/write an/
06:55
<MikeSmith>
hsivonen - how much work/time you estimate that will take?
06:59
<hsivonen>
MikeSmith: based on talking with jgraham and annevk and based on comparing # of lines of code against previous code, the expectation is that the first unpolished and untested version takes a week (after I'm done sharing the existing source code properly with build scripts) and testing and productization-quality polishing and testing is going to take a couple of weeks more.
07:01
<hsivonen>
basically, I expect the "get something running" take less time than all the productization polishing after it
07:01
<hsivonen>
although it isn't clear yet how well the those parts can be polished before the tree-builders exist
07:02
<hsivonen>
anyway, the goal is to produce a reusable library--not just to write the minimum that would allow the conformance checker to run
07:18
<MikeSmith>
hsivonen - are there others picking up your code so far? (that you're aware of)
07:19
<hsivonen>
MikeSmith: Jirka Kosek and Petr Nálevka will probably pick up the table integrity checker real soon now
07:19
<hsivonen>
MikeSmith: they are also interested in the parser
07:19
<hsivonen>
I'd advice against using my current parser, though
07:20
<hsivonen>
but once I'm done with writing a productized HTML5 parsing library with 4 tree builders, I'm all for others using it :-)
07:20
<MikeSmith>
yeah, I know you planning to update your parser to matech the spec
09:42
<hsivonen>
now that Vlad is suggesting dashing, it would be interesting to hear from the canvas implementors at Opera and Apple if they'd be ok with adding dashes
09:42
<Hixie>
adding this to canvas when canvas is so poorly implemented at this stage would be stupid
09:42
<Hixie>
every browser is swimming in bugs and unimplemented features already
09:43
<Hixie>
adding more stuff will just make it even less likely that we'll reach the sort of quality point we need for exiting CR
09:48
<virtuelv>
Hixie: agreed, canvas is suffering from poor interoperability
09:53
<hsivonen>
which is interesting since in theory, canvas should be the area of the spec where you could get the most interop per unit of effort (because the back end imaging model is well understood and old)
09:58
<Hixie>
it's the area of the spec with the most interop, i think
09:58
<Hixie>
but it would only get worse if we added more features at this stage, imho
09:58
<Hixie>
i mean, if the vendors think we should, i'll bow to pressure, but it just seems stupid to me
10:02
<virtuelv>
hsivonen: Some of the interop problems in canvas are a result of different interpretations of spec text, I believe
10:03
<met_>
so we need some spec how to read the spec? 8-)
10:04
<virtuelv>
met_: you mean you want formal grammar for a spec language
10:04
<virtuelv>
good luck
10:04
<annevk>
the spec text is improving
10:04
<virtuelv>
indeed it is
10:05
<hsivonen>
met_: the spec already says that it should be read forwards, backwards and in pieces
10:05
<met_>
hsivonen: nice 8-)
10:16
<ROBOd>
good morning to all
10:16
<ROBOd>
Hixie: ping?
10:23
<Hixie>
hey
10:27
<ROBOd>
hey Hixie, i was surprised to read your replies to my very old emails
10:27
<Hixie>
yeah, i'm going through all the feedback we received
10:28
<ROBOd>
very good, thanks for the replies
10:41
<Hixie>
ROBOd: btw in case i have other e-mails from you, i apologise in advance if i send the replies to the wrong address. i don't look at who wrote the e-mail when i reply to them, i just hit "reply all", write the reply, fix the spec if needed, and send the mail.
10:42
<ROBOd>
Hixie: absolutely no problem
10:42
<ROBOd>
i understand that
10:43
<ROBOd>
i just mentioned the email address change, in case others reply
10:43
<ROBOd>
i can no longer reply from the old email account - it's not subscribed to the ML
10:44
<hsivonen>
offtopic for the svn users: does svn integration actually work these days in eclipse?
10:44
annevk
uses SVN but not Eclipse :)
10:45
<met_>
http://subclipse.tigris.org/ looks so
10:45
<hsivonen>
*working* Eclipse integration is a must-have for me. I'm considering whether I should put the new html parser code in the schema CVS repo or start a new svn repo
10:46
<hsivonen>
met_: have you tried subclipse lately?
10:46
<met_>
no
10:46
<hsivonen>
my experience of subclipse is from two years ago and back then it was unacceptably b0rked
10:46
<met_>
looks its from same people like tortoiseSVN which i am using
10:46
<Hixie>
right, bed time
10:46
<Hixie>
nn
10:47
<ROBOd>
good night Hixie :)
10:47
<hsivonen>
Hixie: g'night
10:47
met_
have lunchtime in 5 minutes
10:48
<ROBOd>
bon appètit met_
10:49
<met_>
thanks
11:22
<Philip`>
The canvas implementations all seem to be fine at just drawing stuff - they do curves and lines and rotated bitmaps and gradients and everything - and it's only in the mapping between the JS API and the drawing bits that has lots of problems
11:24
<mikeday>
don't they draw stuff in response to JavaScript API calls?
11:25
<Philip`>
They do, but usually they don't draw the correct stuff
11:25
<mikeday>
different implementations behave slightly differently?
11:26
<Philip`>
They often behave totally differently :-)
11:26
<mikeday>
oh :)
11:26
<mikeday>
since SQL is now part of the HTML5 spec, why not base the canvas on the PDF/PostScript rendering model?
11:27
<annevk>
...
11:27
<Philip`>
There are simple cases like "moveTo(0, 0); translate(10, 10); lineTo(20, 20); stroke()" that are handled very differently
11:27
<mikeday>
really? how differently?
11:28
<Philip`>
Some apply the transformation as points are being added to the path, and some apply it just before the stroke so it affects all the points equally
11:28
<mikeday>
oh, right
11:29
<mikeday>
problem with imperative interface I guess
11:29
<mikeday>
needs a well defined mapping to an SVG DOM, perhaps :)
11:29
<Philip`>
http://canvex.lazyilluminati.com/tests/tests/results.html shows lots of problems and I haven't even got around to testing radial gradients or patterns or paths, which are particularly bad
11:29
<Philip`>
The behaviour is well-defined already - it just doesn't match two thirds of the implementations :-)
11:30
<mikeday>
not really a specification problem, then :)
11:31
Philip`
should write more tests and submit bug reports
11:32
<Philip`>
(and maybe write patches if they're not complicated and if everyone else wants to ignore them and add new features instead)
11:33
hsivonen
wonders what happens in PostScript if you manipulate the CTM between adding path segments
11:33
<mikeday>
good question
11:34
<mikeday>
I thought it was illegal
11:34
<Philip`>
What happens when you do something illegal?
11:35
<mikeday>
ask ghostscript :)
11:35
<zcorpan_>
a SWAT team comes to get you
11:36
<mikeday>
hmm, at least in PDF, once you start constructing a path you can't do anything else until you paint it
11:36
<hsivonen>
zcorpan_: the Web lacks the SWAT team
11:36
<mikeday>
if you *do* do anything else the results are not defined by the specification
11:37
<hsivonen>
zcorpan_: thesis comment noted. thanks. however, if at all feasible, I'm treating the dated files as frozen
11:38
<Philip`>
Aha, undefined behaviour sounds an excellent strategy to follow ;-)
11:38
<mikeday>
"Note: A content stream whose operations violate these rules for describing graphics objects can produce unpredictable behavior, even though it may display and print correctly."
11:39
<mikeday>
that's PDF, but I think it inherited the restriction from PostScript.
11:40
<hsivonen>
iirc, adobe reader silently accepts some non-conforming files that Ghostscript accepts but complains about
11:40
<hsivonen>
iirc, there were some semi-prominent Macromedia or Corel legacy products outputting the non-conforming stuff
11:42
<hsivonen>
but fewer people author PDF by hand, so the problem is not as bad as with HTML/CSS
11:42
<mikeday>
when it comes to PDF, acrobat compatibility is more important than following the spec
11:42
<hsivonen>
mikeday: are there cases where you have to violate the spec to be compatible with acrobat?
11:43
<hsivonen>
on the producer side, that is
11:43
<mikeday>
not that I recall,
11:43
<mikeday>
but there are some cases where PDF files that follow the spec will not be accepted
11:44
<mikeday>
funny how similar the situation is to browsers, actually
11:44
<mikeday>
there are just fewer user agents in PDF world
11:45
<hsivonen>
actually, there's also the top gang of four on the PDF side
11:45
<hsivonen>
(Adobe, Apple, xpdf-based, Ghostscript)
11:47
<mikeday>
yes
11:47
<mikeday>
I guess you can map Acrobat -> IE
11:48
<mikeday>
in that if it doesn't work in Acrobat, you've lost 90% of your userbase
11:49
<mikeday>
must go
11:50
<annevk>
Philip`, for that particular case I believe Opera matches the SVG model...
11:50
<annevk>
Philip`, and I think other vendors agreed it was more logical but they haven't updated their impl so far...
11:53
<Philip`>
annevk: Okay - I think the spec text matches Opera but it was waiting for implementor feedback when I last heard
11:54
<annevk>
yeah, Firefox and Safari still need to try to fix it...
11:58
<hsivonen>
annevk: http://tc.labs.opera.com/robots.txt isn't particularly friendly to people who try to locate the test suite
11:58
<hsivonen>
also, it suggest you don't want me to hit it with recursive wget
11:58
<hsivonen>
annevk: what's the right way to obtain a local copy of the test suite?
12:06
<annevk>
I suppose I could lift some restrictions
12:07
<annevk>
done
12:08
<hsivonen>
annevk: thanks
12:26
<annevk>
hsivonen, that's how text/plain loading is defined in HTML5...
12:26
<annevk>
using <plaintext>
12:30
<Philip`>
Does anyone happen to know how Safari probably does canvas shadows? It looks like it multiplies the shadow colour by the alpha value at each pixel, then does some blur (Gaussian with cutoff or something?) and composites stuff - maybe it's just the same as the PS / PDF definition, and hopefully that definition actually defines it...
12:30
<annevk>
heh
12:31
<Philip`>
Oh, PDF doesn't have shadows
12:32
<Philip`>
(and PostScript doesn't have shadows either)
12:35
<annevk>
maybe someone can make a <canvas> Acid test
12:35
<Philip`>
(and http://developer.apple.com/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_shadows/chapter_8_section_1.html is uselessly vague)
12:36
<annevk>
http://developer.apple.com/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_shadows/chapter_8_section_2.html#//apple_ref/doc/uid/TP30001066-CH208-DontLinkElementID_7 seems to have details
12:36
<annevk>
(linked from that page)
12:37
<Philip`>
It only has about one detail (that the default alpha is 1/3, which doesn't matter for canvas because you always override the default alpha) :-(
12:37
<Philip`>
Hmm, about colour spaces, does everyone implement canvas with sRGB? And should the spec state that?
12:38
<annevk>
doesn't CSS say something about that?
12:38
<annevk>
it should be the same as what CSS uses, anyway
12:38
<Philip`>
CSS3 Color says it's all in sRGB
12:39
<Philip`>
though I think canvas still needs to specify the colour space, so that e.g. linear interpolation along gradients makes sense
12:39
<hsivonen>
annevk: yes, but if you generate <plaintext> on the server, the sniffing does not kick in
12:41
<hsivonen>
Philip`: the sane way to spec it is that the canvas color space should be the same color space as what the UA uses for CSS colors in the absence of an explicit profile
12:42
<hsivonen>
Philip`: CSS says sRGB, but in reality browsers use the color space of the OS
12:44
<zcorpan_>
hsivonen: if you say text/plain; charset=utf-8, the sniffing doesn't kick in either (or it shouldn't)
12:45
<zcorpan_>
iirc
12:45
Philip`
wonders if trying to draw gamma-corrected PNGs onto a canvas is likely to involve far too much pain and is best avoided
12:45
<hsivonen>
zcorpan_: even in real-word IE?
12:45
<hsivonen>
Philip`: I'd expect lots of bogosity and bugs in that area
12:46
<zcorpan_>
hsivonen: not sure
12:46
<Philip`>
http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/html/HTMLCanvasElement.cpp#L238 - ah, that's using "DeviceRGB"
12:47
<hsivonen>
Philip`: yeah, but DeviceRGB isn't really the *device* but the OS.
12:47
<Philip`>
(Oh, did someone add Qt support to WebKit <canvas> recently?)
12:47
<hsivonen>
there's a transfer function between DeviceRGB and the real device
12:48
<Philip`>
(I guess that'll provide a whole 'nother set of bugs...)
12:49
<hsivonen>
Philip`: I wouldn't expect bug opportunities there. only miscalibratin opportunities
12:49
<hsivonen>
AFAIK, as far as apps are concerned, DeviceRGB is the "device"
12:49
<krijnh>
zcorpan_: IE does sniff when using Content-Type: text/plain;charset=utf-8
12:50
<hsivonen>
but what it really means is configurable system-wide
12:50
<zcorpan_>
krijnh: ok
12:50
<krijnh>
IE7 as well
12:50
<Philip`>
Oh, sorry, I was thinking of bugs in WebKit-Qt (since that has totally new rendering code)
12:50
<Philip`>
Colour spaces seem confusing enough that I'll probably ignore them for now and be happy :-)
12:50
<zcorpan_>
krijnh: in ie7, there's a security setting to disable content type sniffing
12:52
hsivonen
wonders if apps can circumvent DeviceRGB via OpenGL on Mac OS X
12:52
<krijnh>
zcorpan_: What's it called?
12:53
<zcorpan>
krijnh: "Open files based on content, not file extension"
12:53
<krijnh>
Open files based on content, not file..
12:53
<krijnh>
Indeed :)
12:53
<krijnh>
Wow, that's a crappy label
12:53
<zcorpan>
yeah
12:54
<krijnh>
It has nothing to do with the extension
12:54
<krijnh>
And I don't think it checks on the extension
12:54
<krijnh>
Er, sniffs
12:55
<hsivonen>
probably a case of the UI folks not understanding the implementation
12:55
<hsivonen>
on Mac OS X "Rich Text" is translated to "RTF" in Finnish in Mail.app even though "Rich Text" in mail is HTML
12:55
<krijnh>
Rhat the fuck
12:57
<hsivonen>
krijnh: was that in response to what I said?
12:57
<krijnh>
Nah, I say rhat the fuck all the time
12:58
<krijnh>
I'll be silent again now ;)
13:00
hsivonen
is slow. only gets it now
13:07
<zcorpan>
who has access to the whatwg blog source? ".navigation div { position:relative; }" needs to be added to the style sheet for opera
13:12
<zcorpan>
Lachy: yt?
13:17
<Lachy>
yo
13:17
<zcorpan>
Lachy: see above :)
13:17
<Lachy>
yeah, I just noticed
13:18
<zcorpan>
perhaps i should also try to make a test case out of it, if it's actually a bug in opera
13:18
<Lachy>
it probably is a bug
13:20
<Lachy>
I don't see what the bug is
13:20
<zcorpan>
it's not always reproducable
13:21
<Lachy>
how can I reproduce it at all? I've tried reloading several times and don't see it
13:22
<MikeSmith>
hsivonen - you aware of any Linux PDF viewers that aren't based on xpdf? (just wondering if there are any)
13:23
<zcorpan>
Lachy: dunno. sometimes the links aren't clickable and then if you scroll down and up again the links disappear
13:23
<Lachy>
which version of Opera?
13:23
<Lachy>
I have 9.20
13:24
<zcorpan>
9.21
13:24
<Lachy>
ok. updated stylesheet is published now
13:25
<zcorpan>
thanks
13:35
<zcorpan>
http://simon.html5.org/test/opera/unselectable-text.htm
13:47
<zcorpan>
submitted bug #266507
13:51
Lachy
is about to publish a rather controversial blog post about the HTMLWG
13:54
annevk
will go to reboot for a day!
13:55
<met_>
Lachy: about what? htmlwg dead? 8-)
13:56
<Lachy>
it's about the issues with the HTMLWG, giving an overview of all the major debates that have gone on
13:56
<Lachy>
it was originally an email to Molly that she asked me to write, and she requrested that I make it public
14:01
<Philip`>
Conclusion from testing <canvas> in WebKit-Qt: it's currently really quite broken (e.g. it doesn't even seem to do rotation correctly), and also I can't copy-and-paste the test results and then it had a segmentation fault and lost the data :-(
14:03
<annevk>
what's WebKit-Qt?
14:03
<Philip`>
It's just WebKit, but compiled with Qt :-)
14:03
<Philip`>
(I don't know if it has an official name)
14:03
<Philip`>
and running on Linux
14:04
<met_>
sounds like khtml 8-)
14:05
<Lachy>
http://lachy.id.au/log/2007/05/htmlwg
14:06
<Philip`>
It sounds like there are plans to make it possible to use WebKit as the HTML component in KDE4, as an alternative to the normal KHTML
14:06
<annevk>
btw, the easiest way to make public record of an e-mail is to cc www-archive⊙wo
14:07
<Lachy>
I thought about that, but I decided marking it up and blogging it was more appropriate in this case
14:07
<MikeSmith>
annevk -
14:07
<MikeSmith>
http://dot.kde.org/1152645965/
14:07
<MikeSmith>
http://labs.trolltech.com/blogs/category/labs/internet/webkit/
14:08
<MikeSmith>
George Staikos and Zack Rusin
14:09
<MikeSmith>
and Lars Knoll
14:11
<annevk>
looks interesting
14:12
<annevk>
http://www.reboot.dk/artefact-2493-en.html
14:14
<annevk>
btw
14:14
<annevk>
how about
14:15
<annevk>
r = new XMLHttpRequest(uri); r.onload = ...; r.onerror = ...
14:15
<annevk>
to do a simple asynchronous GET request without hassle
14:16
<MikeSmith>
I guess that when completed the WebKit Qt port can run within Trolltech's Qtopia (what used to be called Qt/Embedded) on mobile devices
14:18
<jonbarnett>
anne: would/coult any of those events have the XMLRequestObject as one of the *target properties of the event object passed to the handler?
14:18
<annevk>
this should refere to XHR in theory
14:19
<annevk>
and does in Opera
14:19
<annevk>
and I think it does in WebKit builds too
14:20
<jonbarnett>
the draft doesn't say so. which property (currentTarget?)
14:20
<annevk>
it's all implied by making XMLHttpRequest implement EventTarget
14:20
<jonbarnett>
got it
14:41
<jonbarnett>
anne: what version of Opera does so?
14:41
<annevk>
supports what, exactly?
14:42
<jonbarnett>
passes something to the event handler. I'm testing with 0
14:42
<jonbarnett>
9
14:42
<annevk>
using request.onreadystatechange = function() { alert(this.readyState) }
14:42
<annevk>
should work
14:43
<jonbarnett>
I assumed that function(e) { alert(e); } should give something
14:44
<annevk>
I don't think we have made it an EventTarget yet
15:19
<hsivonen>
MikeSmith: ggv is Ghostscript-based and Adobe Reader is, of course, using Adobe's impl. But yeah, all the nice ones that are Free Software tend to be xpdf-based.
15:20
<MikeSmith>
hsivonen - k
16:55
<hsivonen>
HTML5 conformance checking is now on the XML radar: http://www.oreillynet.com/xml/blog/2007/05/fake_realtime_blog_from_xtech.html
17:04
<MikeSmith>
hsivonen - interesting -- especially part about error messages
17:05
<MikeSmith>
funny that he writes "they" in several places
17:05
<MikeSmith>
maybe he thinks you're not a real person ...
17:05
<MikeSmith>
but some kind of collective
17:05
<MikeSmith>
the Henri Sivonen Collective
17:05
<hasather>
hehe
17:06
<MikeSmith>
looking forward to seeing what he comes up with as far as trying to implement table-integrity checking solely in Schematron
20:16
<Jero>
ok wtf, in my HTML5 parser the code "<a><p>X<a>Y</a>Z</p></a>" gets transformed to "<a><p>X</p><a>YZ</a></a>" instead of "<a></a><p><a>X</a><a>Y</a>Z</p>"
20:17
<Jero>
is that an error in parser the start tag token of the second A element, an error in parsing the adoption agency, or an error in reconstructing the active formatting elements?
20:26
<Philip`>
Jero: http://hasather.net/html5/parsetree/parsetree.py?source=%3Ca%3E%3Cp%3EX%3C%2Fp%3E%3Ca%3EYZ%3C%2Fa%3E%3C%2Fa%3E says it should give <a><p>X</p></a><a>YZ</a> which is neither of the ones you mentioned
20:27
<Philip`>
(but I don't understand the parser at all, so I have no idea why yours wouldn't be closing the first <a> at the right point)
20:28
<gsnedders>
Philip`: that tree looks correct, under my memory of the spec
20:28
<Jero>
interesting
20:29
<Jero>
http://html5lib.googlecode.com/svn/trunk/tests/tree-construction/tests1.dat gives my a different output tree (search for "<a><p>X<a>Y</a>Z</p></a>")
20:35
<Philip`>
Oh, okay - when I run with a (probably newer?) version of html5lib, it does give <a/><p><a>X</a><a>Y</a>Z</p> which matches that test
20:50
<Jero>
Step 3 of the adoption agency: If there is no furthest block ... pop all the nodes from the bottom of the stack of open elements, from the current node up to the formatting element...
20:52
<Jero>
because of "up to the formatting element" i didn't include to pop the formatting element from the stack which resulted in not closing the first A element
20:53
<Jero>
so maybe it should explicitly say "including the formatting element"?
20:54
<Hixie>
if that would help please do send mail so i remember to fix it
20:54
<Hixie>
ian⊙hc or whatwh⊙wo
20:54
<Hixie>
whatwg.org
20:59
<Jero>
thanks, I will
21:09
<Jero>
Philip`: my parser now treats "<a><p>X<a>Y</a>Z</p></a>" as "<a></a><p><a>X</a><a>Y</a>Z</p>", instead of "<a><p>X</p></a><a>YZ</a>" like http://hasather.net/html5/parsetree/ gives as output
21:10
<Jero>
oh, i see you updated the parser, sorry
21:11
Philip`
wonders who controls that parsetree page and what version of html5lib it's running
21:11
<Jero>
oh, i thought you were :p
21:13
<Philip`>
At least it sounds like your one is correct now, if it matches the output from the test cases
22:31
<annevk>
hasather, ping, see above
22:31
<annevk>
hasather, your parsetree is out of date
22:54
<hasather>
done
22:54
<hasather>
thanks for the notice
22:55
<Jero>
thanks, your parsetree really is a useful tool for testing
22:56
<hasather>
not mine
22:56
<hasather>
James Graham made it
22:56
<hasather>
just hosting :)
23:10
<Jero>
well, thanks for hosting then :)
23:46
<zcorpan>
http://justinsomnia.org/2007/05/ivan-came-in-yesterday-wearing-a-totally-radical-webgeek-tshirt-from-a-list-apart-of-course-i-had/
23:47
<zcorpan>
(nowadays you almost don't need to follow links -- you can read the full story by just reading the URL)
23:49
<Dashiva>
It's only missing "to update it: HTML5 fist"
23:50
<Hixie>
there's something fundamentally wrong about following links and finding they're only three clicks from my blog