00:02
<hendry>
Hixie: awesome blog post. I am getting my head around tipping here too
00:13
<Philip`>
About canvas exceptions: there are quite a lot of simple cases where browsers differ, like getContext('unrecognised') and toDataURL('image/jpeg') and toDataURL('image/png', 1) and restore() and lots of Infinity/NaN and globalCompositeOperation='unknown' and loads more
00:14
<Philip`>
but I don't know which ones are worth trying to fix now (like for FF3 / Opera 9.5)
00:19
<Philip`>
(Also, I don't really like how the spec handles infinities in the transform functions - it seems weird and confusing, since it'll just silently stop rendering, and I expect it'd be more helpful to have exceptions in those cases)
00:21
<Philip`>
(Hmm, it looks like Opera 9.5 does throw exceptions in those cases (contrary to the spec), whereas Opera 9.2 didn't)
00:21
<Philip`>
((All Firefoxes throw, and Safari 3 doesn't))
00:31
<Hixie>
Philip`: iirc the idea was to make it easier to plot graphs with asymptotes without having to be too careful about boundary conditions
00:37
<Philip`>
Hixie: If you're plotting graphs, you'd want lineTo to handle infinities without throwing - transformations aren't relevant for that
00:37
<bewest>
hrm. I see opensearch mentioned in the discussion of link elements... I don't suppose the js API exposed by some browsers will make it into the spec as well?
00:39
<Hixie>
Philip`: i forget the exact use case. but it was something to do with an edge case and making it easier to handle.
00:39
<Philip`>
The comment in the spec blames me for wanting scale(x);translate(1/x);drawStuff() to work (drawing nothing) when x=0, but I'm not convinced now that that's sufficiently useful or common
00:40
<Hixie>
ah heh
00:40
<Hixie>
well, send more mail
00:40
<Hixie>
not sure when i'll get to canvas next though
00:40
<Hixie>
it's gotten more attention than most parts of the spec
00:41
<Hixie>
incidentally I don't suppose anyone has written a perl html5 parser yet
00:41
Hixie
wants to write one himself but doesn't want to embark on that quite yet
00:41
<Hixie>
yet i need one now :-)
00:41
<Hixie>
oh well, regexps it is.
00:42
<Philip`>
I'll see if I can think of any compelling arguments about infinite transformations, though I'm not sure if I'll come up with anything useful :-)
00:42
<Philip`>
I have a Perl HTML5 tokeniser
00:42
<Hixie>
i need a dom really
00:42
<Hixie>
but interesting
00:42
<Hixie>
is it online anywhere?
00:43
<Philip`>
http://canvex.lazyilluminati.com/svn/tokeniser/ will generate the Perl code
00:43
Philip`
looks for a pregenerated version
00:44
<Hixie>
nice
00:44
<Hixie>
http://canvex.lazyilluminati.com/svn/tokeniser/tokeniser.pl presumably
00:45
<Hixie>
ah no that's the wrapper
00:45
<Philip`>
That has everything except the tokeniser algorithm :-)
00:46
<Philip`>
http://canvex.lazyilluminati.com/misc/tokeniser/ though I haven't tested it recently and it was never particularly well developed in the first place
00:46
<Philip`>
(It can run all the tokeniser tests successfully, though)
00:47
<Philip`>
(...except for some Unicode issues, I think)
00:47
<Philip`>
Oh, it's even got hardcoded file paths in it
00:50
Philip`
still wants to write the rest of the HTML5 parser, and then it should work in C++/JS/Perl at the same time
00:50
<Hixie>
good luck
00:51
Philip`
still wants to do too many other things and doesn't know when he'll have the time :-(
00:52
<Hixie>
i know the feeling
00:53
<Philip`>
$ echo '<test ===>foo' | perl tokeniser.pl
00:53
<Philip`>
[["StartTag","test",{"=":"="}],["Character","foo\n"]]
00:53
<Philip`>
Hooray, it still works (after I remembered how to install the JSON module)
01:13
<Hixie>
oh hey, look at that, my cronjobs aren't running any more so the issues list isn't updating
01:14
Hixie
contacts dreamhost
01:28
<Hixie>
hmm
01:28
<Hixie>
we don't really have a way to _disable_ the app cache once you have one
01:52
<Hixie>
if i go to page A and it has an application="" with a manifest M1 that brings in page B
01:52
<Hixie>
and i later go to page B
01:52
<Hixie>
we have decided that it should load B from appcache M1
01:52
<Hixie>
ok so i go to M1 and load B but I find that that copy of B says application="" M2, not M1
01:52
<Hixie>
so what do i do?
01:54
<Hixie>
i can't just load it from M1 anyway, because then it'll fail and there's no way out other than fixing M1.
01:54
<Hixie>
so i have to give up and load it from the network (assuming i haven't got M2 loaded yet)
01:54
<Hixie>
but then i might find that it actually says application="" with a manifest M1
01:55
<Hixie>
(i'm assuming that this whole time the manifests themselves aren't changing, so we're not updating anything)
02:07
<Hixie>
...but i guess getting it back as M1 would be ok... i would just overwrite that particular entry in the cache.
05:54
Hixie
tries to untangle himself from the mess that has become the offline application cache work
05:54
<Hixie>
it's already a 1000+ line patch to the spec
05:54
<Hixie>
sheesh
06:04
<othermaciej>
Hixie: it's a tough, messy job
06:04
<othermaciej>
Hixie: but somebody's gotta do it
06:05
<Hixie>
there are a lot of edge cases
06:06
<othermaciej>
well, I hope you have the leadership skills, social grace, and all around friendliness to get the edge cases right
07:17
<Hixie>
krijnh: any idea why people mark so many boring lines as interesting in the irc logs?
08:49
<krijnh>
Hixie: no idea
08:50
<Hixie>
i'm thinking maybe the ui should change, i think right now it almost encourages you to hit random lines
08:50
<krijnh>
I only know the feature isn't that useful :)
08:50
<Hixie>
but i dunno what would be better
08:50
<Hixie>
the feature would be great if it wasn't abused :-)
08:50
<krijnh>
:)
08:51
<krijnh>
It isn't used that much either
08:51
<krijnh>
It's the longdesc of my irc logs
08:51
<krijnh>
Let's just drop it ;]
08:51
<Hixie>
fair enough :-)
08:52
<krijnh>
Statistics tell me there is an average of 3 important lines per day
08:52
<krijnh>
So
08:52
<krijnh>
How do we solve the problem?
08:53
<krijnh>
'use case': we want to let people know which parts are important
08:53
<krijnh>
Perhaps flagging the non-important ones makes more sense
08:57
<Hixie>
i like the current model
08:57
<Hixie>
i just think the current ui is poor
08:57
<Hixie>
i'm not sure how to improve it though
08:58
<krijnh>
Drag 'n drop stuff!
08:58
<krijnh>
The solution for everything
09:00
<krijnh>
If anybody has an idea; let me know :)
09:00
<krijnh>
Until then; flagging boring lines is considered harmful
09:01
<krijnh>
</afi>
09:01
<Dashiva>
We could make it a community based rating solution
09:01
<Dashiva>
(with tag clouds)
09:40
<hsivonen>
krijnh: I don't know how to improve it, either, but double-clicking and hovering is mobile unfriendly.
09:41
hsivonen
doesn't like q values in Accept-Encoding
09:50
<krijnh>
hsivonen: double clicking?
09:51
<krijnh>
Are people that addicted to irc logs, that they even read them on a mobile?
09:51
<hsivonen>
krijnh: to highlight an IRC log row, one needs to first hover and then double-click, right?
09:51
<krijnh>
hsivonen: no
09:51
<hsivonen>
krijnh: yes
09:53
hsivonen
finds that the online Jetty javadocs omit some important classes
09:53
<hsivonen>
like GzipFilter
09:55
<hsivonen>
krijnh: if I read IRC logs on the bus, I spend less time reading them when I'm at my desk
09:56
<krijnh>
Hehe, ke
09:58
<krijnh>
hsivonen: removed the :hover
09:58
<krijnh>
Now every line has a grey box
09:58
<krijnh>
And on hover it becomes yellow
09:58
<krijnh>
You can click the grey box as well though
09:58
<krijnh>
No double click needed
09:58
<krijnh>
Issue with jumping lines on hover fixed this way as well
10:02
<hsivonen>
can't see gray boxes in S60 Browser
10:02
<krijnh>
Why not?
10:02
<krijnh>
Can't you click the void space behind a line either? :)
10:02
<krijnh>
Click, push, touch, whatever
10:03
<hsivonen>
nope :-(
10:04
<hsivonen>
krijnh: works in MicroB on N800, though. Thanks
10:04
<zcorpan>
i can use the spatnav in opera to highlight lines
10:06
<hsivonen>
zcorpan: Opera is no good for reading the IRC logs. It shows the list markers, which take space. Also, it doesn't hide the leaves/joins. (8.6 on S60r3.1)
10:10
<zcorpan>
hsivonen: you want mini 4 beta ;)
10:11
<krijnh>
The leave/joins should be stripped from the HTML, I think
10:12
<zcorpan>
irrelevant="" :)
10:13
<hsivonen>
zcorpan: in Mini Beta, you have to reload to switch between SSR and minimap
10:14
<zcorpan>
hmm
10:27
<hsivonen>
bah. the Jetty GzipFilter doesn't do q values
10:54
<hsivonen>
JSON indeed compresses well
10:55
<hsivonen>
I'm *very* disappointed with Jetty docs, though
10:55
<hsivonen>
I had to read the source to figure out how to enable the GzipFilter
10:55
<hsivonen>
and the existence of the filter was undocumented
10:56
<hsivonen>
I found out accidentally from Eclipse's autocomplete
16:08
<hsivonen>
weird. Am I reading correctly that the Python gzip module wants to read for a file and won't read form another kind of source?
16:09
<hsivonen>
hmm. I guess I can pass a fileObj and a bogus name...
16:10
<hsivonen>
ah. diveintopython to rescue
16:10
<Philip`>
Can you use plain zlib instead?
16:11
<hsivonen>
Philip`: it looks complicated
16:11
<Philip`>
output = zlib.decompress(input) ? :-)
16:11
<hsivonen>
gzip.GzipFile(fileobj=foo)
16:12
<hsivonen>
Philip`: does decompress skip over gzip header and deal with the CRC?
16:14
<hsivonen>
in related news, I had regressed &out=text. works now. sorry
16:17
<Philip`>
It sounds like zlib.decompress handles the "standard gzip header" (unless you pass it negative wbits)
16:17
<Philip`>
but I don't know if it's exactly the same header, or if it does the right kind of checksum too
16:20
<hsivonen>
if response.getheader('Content-Encoding', 'identity').lower() == 'gzip': response = gzip.GzipFile(fileobj=StringIO.StringIO(response.read()))
16:20
<hsivonen>
that works
16:21
<hsivonen>
How badly does gzip break streamability, though?
16:21
<hsivonen>
surely it can't break it beyond its compression window?
16:22
<hsivonen>
how would piping gigabytes of data to gzip work otherwise?
16:22
<hsivonen>
markp explains GzipFile is being difficult because it needs random access to the fileobj
16:25
<hsivonen>
http://about.validator.nu/html5check.py now uses compression
16:35
zcorpan
adds form[action$="validator.nu/";] ~ *, form[action$="validator.nu/";] ~ * b { font-weight:normal !important; } to his user.css :)
16:38
<Dashiva>
And to think CSS used to be readable
16:39
<zcorpan>
krijnh: you could change the color of the box only when you hover the actual box -- not when you hover the line
16:40
<zcorpan>
krijnh: that would make it less distracting when reading :)
16:41
<zcorpan>
krijnh: or use checkboxes instead?
16:44
<zcorpan>
hmm, the ui fonts can expose to js what os theme the user has
16:45
<zcorpan>
dunno how that could be used
16:45
<hsivonen>
zcorpan: could be used for UI spoofing
16:45
<zcorpan>
hsivonen: yeah
16:46
<hsivonen>
zcorpan: although the whole CSS UI font idea is intended for white-hat UI consistency
16:46
<hsivonen>
which is what I'm trying to do, but your browser is not playing along to your taste :-(
16:46
<zcorpan>
indeed
16:47
<zcorpan>
perhaps browsers can combat ui spoofing in the same way as the visited links thing
16:48
<Philip`>
The UI spoofing use case seems to be handled alright by screenshotting the standard Windows UI into a GIF, judging by the adverts I see on the web
16:48
<Philip`>
and users don't care if minor details are not consistent with the standard UI, like if the dialog box's button is bouncing all over the place and flashing
16:49
<zcorpan>
Philip`: bouncing and flashing ads are too obvious to be spoofing
16:54
<zcorpan>
more serious spoofing would be to imitate active x dialogs in fake bank sites
17:09
<zcorpan>
hsivonen: your html5 schema doesn't allow id="" on <title> it seems
17:12
<zcorpan>
hsivonen: or any attributes on <title>
17:30
<zcorpan>
hsivonen: is the reason you don't have upload and textarea that you don't know how to integrate it nicely in the ui?
17:41
gsnedders
wonders what happens according to the spec if you have a <title> element within .innerHTML on a |div|
17:42
<zcorpan>
gsnedders: when setting innerHTML?
17:42
<gsnedders>
zcorpan: yeah
17:44
<gsnedders>
if it the fragment algorithm returns all the children of the root |html|, surely it'll return things like |head| for every fragment?
17:45
<zcorpan>
gsnedders: no, the parsing algorithm has fragment case checks
17:46
<zcorpan>
gsnedders: also, fragment parsing starts in the main phase
17:46
<gsnedders>
surely it starts with the insertion mode as "before head"?
17:47
<gsnedders>
then when it reaches the "any other start tag token" case it creates a |head| element
17:47
<zcorpan>
gsnedders: depends on the context element
17:47
<zcorpan>
i think
17:47
<gsnedders>
all the context element affects is the content model flag
17:48
<zcorpan>
ok
17:48
<gsnedders>
actually, it calls the insertion mode appropriately algorithm
17:51
<gsnedders>
insertion mode starts as "in body"
17:52
<zcorpan>
regardless of the context element?
17:52
<gsnedders>
no, in the case of |div| (as per my question)
17:55
<zcorpan>
right
17:56
<zcorpan>
you process the "title" start tag token as if the insertion mode was in head
17:57
<zcorpan>
which says: "Follow the generic RCDATA parsing algorithm, with the head element pointer as the context node, unless that's null, in which case use the current node (fragment cose)."
17:57
<zcorpan>
the head element pointer will be null in your case
17:57
<gsnedders>
so it just goes where it was in the source?
17:58
<zcorpan>
yeah, seems so
19:58
<zcorpan>
Hixie: whereto did you send test cases to freedom scientific?
20:00
<Hixie>
zcorpan: support@, iirc
20:00
<Hixie>
i can find more info if you want
20:00
<zcorpan>
Hixie: that would be good
20:01
<Hixie>
k, in the middle of something right now, but remind me in 10-15 mins
20:01
<Hixie>
if i fornget
20:01
<zcorpan>
ok
20:04
<Hixie>
zcorpan: ok i e-mailed support⊙fc, eventually Bryan Carver <bcarver⊙fc>, their tech support director, e-mailed me back after having spoken with the dev team.
20:05
<zcorpan>
Hixie: ok, thanks
20:06
<Hixie>
they seemed to really like having nice simple test cases
20:06
<Hixie>
(unsurprisingly)
20:06
<Hixie>
(for those of you following along at home, the tests i sent them are at http://hixie.ch/tests/evil/screen-readers/ )
20:08
<bewest>
interesting... w3m renders bullets on each line in the second test
20:08
<Hixie>
w3m presumably doesn't support css
20:09
<bewest>
nope
21:07
<Hixie>
seeing the comments about my last blog entry on reddit is leading me to the conclusion that the people who read reddit aren't as technically capable as i'd previously assumed
21:08
<Hixie>
doesn't everyone find bit maths easy?
21:08
<kingryan>
Hixie: I'm surprised that you're surprised