| 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 |