| 00:00 | <TabAtkins> | Yay, done. http://code.google.com/p/chromium/issues/detail?id=67629 |
| 00:04 | <jamesr_> | prz to file in bugs.webkit.org kthxbai |
| 00:07 | <TabAtkins> | Goddammit. |
| 00:07 | <Hixie> | hah |
| 00:11 | <TabAtkins> | jamesr_: https://bugs.webkit.org/show_bug.cgi?id=51362 |
| 00:13 | <boblet> | member:Hixie: when using <time datetime=""> is it ok to use a datetime without a timezone (floating time), or is a timezone (or Z) required? |
| 00:13 | Hixie | looks |
| 00:14 | <Hixie> | boblet: does the element have a pubdate attribute? |
| 00:14 | <Hixie> | (not that i think it matters in this case) |
| 00:14 | <Hixie> | (but it'll simplify my answer) |
| 00:14 | <boblet> | possibly :) this was an enquiry on html5doctor |
| 00:15 | <Hixie> | hm actually it does matter |
| 00:15 | <boblet> | spec says requires “valid date string with optional time” which to me would make timezone optional, but links to 2.5.5.7 (timezone required) |
| 00:15 | <Hixie> | why would "valid date string with optional time" mean the timezone was optional? |
| 00:16 | <Hixie> | a valid date string with optional time is a string that is either a valid date string, or a valid global date and time string |
| 00:17 | <Hixie> | i.e. it's the time that's optional, not the time zone |
| 00:17 | <boblet> | hixie: aah ok. I initially read it as any of the datetime microsyntaxes would be ok |
| 00:17 | <boblet> | but the link indicated I was wrong |
| 00:17 | <Hixie> | no, only the ones it says are ok are ok :-) |
| 00:18 | <Hixie> | that's why it says which one is ok :-) |
| 00:18 | <boblet> | hehehe |
| 00:18 | <hober> | so, for instance, it can be 2010-12-20, or 2010-12-20T16:24:00-08:00 |
| 00:19 | <boblet> | does that include non-pubdate uses of <time>? |
| 00:19 | <Hixie> | to answer your original question, the answer is "it depends" -- if it has a pubdate attribute, then datetime must be a date or a date+time+timezone; if it has no pubdate attribute, then datetime must be either a date, or a time, or a date+time+timezone. |
| 00:19 | <Hixie> | this is all defined here: http://www.whatwg.org/specs/web-apps/current-work/#attr-time-datetime |
| 00:19 | <boblet> | oh! so when would a non-timezone datetime (local datetime) be used? |
| 00:20 | <Hixie> | <p>I usually have a snack at <time>16:00</time>.</p> |
| 00:21 | <boblet> | 2.5.5.4 Local dates and times specs a date + time with no timezone |
| 00:21 | <Hixie> | (so you can style it to be "I usually have a snack at 4pm.") |
| 00:22 | <Hixie> | yes |
| 00:22 | <boblet> | is it possible to use 2.5.5.4-style datetimes with <time>? |
| 00:23 | <hober> | <p>I had a snack <time datetime="2010-12-20T16:00:00">this afternoon</time>.</p> |
| 00:24 | <hober> | not sure if that's OK per spec |
| 00:24 | <Hixie> | boblet: not currently, no |
| 00:24 | <boblet> | hober: that conflicts with what Hixie wrote above (“ if it has no pubdate attribute, then datetime must be either a date, or a time, or a date+time+timezone.”) |
| 00:24 | <hober> | boblet: yeah |
| 00:24 | <Hixie> | the spec seems pretty clear cut on all this to me :-) |
| 00:24 | <boblet> | Hixie: ok thanks. Appreciate you clearing that up |
| 00:24 | <Hixie> | what is it about the spec that makes this confusing? |
| 00:24 | <Hixie> | i really should make the spec clearer if all this can't be determined straight from following th elinks in the spec |
| 00:25 | <boblet> | yeah, I didn’t write the article, so I don’t know if it was a misreading or if the spec changed to make local datetimes invalid for @datetime |
| 00:25 | <boblet> | could also be that microformat datetimes are generally local (no-timezone) oners |
| 00:26 | <boblet> | will update our article |
| 00:28 | <hober> | I don't think that assertion makes sense re: microformat datetimes |
| 00:28 | <hober> | Most hAtom I've seen in the wild uses Atom-like RFC3339 productions, including tz |
| 00:30 | <TabAtkins> | I know that I just use date('c') for my stuff, which produces a tz. |
| 00:31 | <TabAtkins> | (From PHP.) |
| 00:31 | <Hixie> | there aren't really that many use cases for timezone-less datetimes in output, from what i can tell |
| 00:32 | <Hixie> | but it's not clear that <time> has enough use cases to really justify it anyway |
| 00:32 | <Hixie> | and it might end up being dropped |
| 00:32 | <TabAtkins> | "The ball starts to drop at <time datetime=2010-12-31T23:59:50>10 seconds before midnight!</time>." |
| 00:32 | <Hixie> | that's not really right |
| 00:33 | <Hixie> | it's 10 seconds before midnight EST :-) |
| 00:33 | <TabAtkins> | I think <time> is useful enough just for being a carrier of datetime information for microformats/microdata. |
| 00:33 | <TabAtkins> | All of the balls drop at the same local time. |
| 00:33 | <boblet> | hober: any hand-authored hEvent probably won’t contain tiemzone, because like all i18n no one thinks of if |
| 00:33 | <Hixie> | there are multiple balls? |
| 00:34 | <TabAtkins> | Lots of places do a ball drop, not just Times Square. |
| 00:34 | <TabAtkins> | And everyone likes to count down from 10, so... |
| 00:38 | <hober> | boblet: maybe. I hand-author hevents surprisingly frequently, so I have an Emacs command that inserts the correctly-formatted now timestamp for me |
| 00:38 | <hober> | I freely acknowledge I'm an outlier. :) |
| 00:39 | <boblet> | hober: yeah, I agree anyone hand-authoring should be using snippets (I do the same), but a surprising number of microformatters think that the brevity allowed is a good thing (eg implied n optimisation and the resulting i18n problems it has) |
| 00:40 | <boblet> | snippets ftw! |
| 00:49 | <Hixie> | the instructions for this lighter i am using say "do not use near fire, flame, or sparks" |
| 00:49 | <Hixie> | how the heck else am i supposed to use it |
| 00:49 | <TabAtkins> | The flame is part of use, so it doesn't count as something the lighter is used *near*. |
| 00:51 | <Hixie> | ok but once i've lit what i'm lighting... then it's on fire |
| 00:51 | <TabAtkins> | Yeah, so stop using it near that then. |
| 00:51 | <Hixie> | but it explicitly has a feature for lighting multiple things in a row |
| 00:51 | <Hixie> | like a bunch of candles |
| 00:51 | <TabAtkins> | Then I guess the definition of "near" comes into question. |
| 01:00 | <Philip`> | The idea is presumably that you're meant to disregard their instructions |
| 01:00 | <Philip`> | but that if you e.g. carry it into a burning building and it explodes then you can't sue them since they warned you in advance |
| 01:04 | <jamesr_> | TabAtkins: why would a hash function be slower in JS than in native code? |
| 01:04 | <TabAtkins> | Because most hashes are designed for a hardware implementation. |
| 01:05 | <Philip`> | JS runs on hardware |
| 01:05 | <TabAtkins> | Sigh. |
| 01:06 | <Philip`> | Maybe you mean most hashes are designed for implementation in languages that have 32-bit integer operations, or something? |
| 01:07 | <Philip`> | (That seems like the main pain with JS) |
| 01:07 | <TabAtkins> | Yeah. |
| 01:07 | <TabAtkins> | Ones that can actually sit next to the hardware if necessary. |
| 01:15 | <jamesr_> | JS has 32-bit integer operations, no? (i thought most bitwise ops truncate to 32 bits) |
| 01:16 | <Hixie> | TabAtkins: why couldn't a JS compiler be as efficient with hashing code as a C++ compiler? |
| 01:16 | <TabAtkins> | I assume it's more difficult, given that you don't have direct binary access. |
| 01:18 | <Philip`> | I suppose implementations might be clever enough to realise that "(a + b) & 0xffffffff" could do a 32-bit addition rather than storing intermediate values as doubles, but I don't know if any currently do that |
| 01:19 | <Philip`> | and it's a bit inelegant to rely on pattern-matching optimisations to make your code not terrible |
| 01:21 | <Hixie> | TabAtkins: i don't understand what "direct binary access" means |
| 01:22 | <TabAtkins> | Doing JS math involves using JS numbers. That abstraction is slower than just doing bit-munging like you can do in C and other languages. |
| 01:23 | <Hixie> | compilers can totally recognise that there's a function that only does math operations on its arguments and have a "fast version" compiled that they use when the input is in range |
| 01:24 | <Hixie> | isn't that a lot of what V8 actually does? |
| 01:27 | <jamesr_> | optimizing JS engines spend a lot of effort knowing when they can just bit-munge |
| 01:28 | <jamesr_> | and optimizing something like (a + b) & 0xff is not done using pattern matching |
| 01:29 | <TabAtkins> | I'd be happy to be shown wrong, that it's expected that we do fast hashing in js. |
| 01:29 | <jamesr_> | try it |
| 01:29 | <TabAtkins> | Aw, I wasn't wanting to implement one myself. >_< |
| 01:31 | <jamesr_> | generating a hash for a Blob's contents might make sense as a provided AP |
| 01:31 | <jamesr_> | I |
| 01:31 | <jamesr_> | or something of that nature |
| 02:12 | <roc> | modern engines absolutely do optimize "(a + b) & 0xffffffff" up the wazoo |
| 10:08 | <annevk> | can anyone think of a better repository than code.google.com/p/html5/ for the encoding data and scripts? |
| 10:08 | <annevk> | I don't really want to make a new one |
| 10:08 | <annevk> | oh, I guess I could use bitbucket |
| 10:58 | <annevk> | https://bitbucket.org/annevk/webencodings |
| 12:09 | <annevk> | http://annevankesteren.nl/2010/12/encodings-labels-tested has an explanation for gathering the data |
| 12:10 | <annevk> | and http://annevankesteren.nl/2010/12/encodings-analysis has some analysis |
| 12:12 | <hsivonen> | whoa, whoa. Does Chrome not have UI for selecting the character encoding or am I missing something? |
| 12:13 | <annevk> | on Mac there is View -> Encoding |
| 12:13 | <hsivonen> | annevk: I'm on Linux right now |
| 12:13 | <hsivonen> | oh. it's under a crazy level of submenus |
| 12:13 | <zcorpan> | under the menu button, Tools > Encoding |
| 12:14 | <annevk> | encoding menus are lame |
| 12:14 | <annevk> | I sort of wonder who is still subjected to them |
| 12:14 | <hsivonen> | I don't understand the encoding UI for Safari and Chrome |
| 12:14 | <hsivonen> | why is Auto Detect in the same set of choices as particular encodings? |
| 12:15 | <hsivonen> | that is, what are the semantics of choosing Auto Detect? |
| 12:15 | <hsivonen> | oh. it's not in the same set |
| 12:15 | <hsivonen> | confusing |
| 12:15 | <hsivonen> | it's a boolean outside the set |
| 12:16 | <hsivonen> | so if I choose Auto Detect in Chrome, how many bytes will Chrome sniff and how will it decide to commit to an encoding? will it ever reload a page because of autodetection? |
| 12:17 | <annevk> | dunno, there's no spec for sniffing :/ |
| 12:17 | <hsivonen> | I thought WebKit devs don't want to introduce charset reloads because of <meta> |
| 12:17 | <hsivonen> | there's now a bug about the HTML5 parser in Gecko running chardet only on the 1024 first bytes |
| 12:18 | <hsivonen> | the bug doesn't have sufficient site compat data and it's hard to judge it without |
| 12:19 | hsivonen | wishes Japanese Web authors got their encoding labeling act together |
| 12:27 | <zcorpan> | we should intentionally break non-utf-8 encodings in nightly builds to promote moving to utf-8 |
| 12:28 | <annevk> | disabling chardet in nightlies would be good |
| 12:28 | <hsivonen> | zcorpan: for authors to notice, you need to start publishing nightlies :-) |
| 12:28 | <annevk> | and Firefox and IE and Opera removing support for certain labels would be good too |
| 12:29 | <zcorpan> | hsivonen: well we need to start somewhere. some authors use nightlies, so they'll notice if their site broke |
| 12:29 | <annevk> | hmm, even Chrome supports ibm864 |
| 12:29 | <annevk> | Opera is left out |
| 12:29 | <hsivonen> | annevk: do Safari and Chrome have enough market share in the locales associated with those labels to draw conclusions about the needlessness of those labels? |
| 12:29 | <zcorpan> | hsivonen: oh, for opera, s/nightlies/weeklies/ |
| 12:31 | <annevk> | hsivonen, fair point |
| 12:31 | <annevk> | hsivonen, though for certain encodings only 1 browser supports them |
| 12:32 | <annevk> | hsivonen, e.g. Opera is the only browser with support for windows-sami-2 and viettcvn |
| 12:32 | <hsivonen> | annevk: hmm. I wonder how those got added in the first place. |
| 12:32 | <annevk> | Firefox is the only browser with ibm864i |
| 12:33 | <hsivonen> | annevk: the explanation in the case of Firefox is most likely that if you have IBM contributing i18n code, they contribute support for their own legacy stuff |
| 12:33 | <annevk> | also the only one with armscii-8 and csiso103t618bit, iso-ir-103, t.61-8bit, t.61 and csiso111ecmacyrillic, iso-ir-111, ecma-cyrillic |
| 12:33 | <annevk> | (search for OSIC to find them) |
| 12:33 | <hsivonen> | annevk: you should try to come up with a reason why those are a security threat to expedite removal |
| 12:34 | <annevk> | well, ": OSIC" is better |
| 12:34 | <annevk> | yeah, I have no idea how I get people to care about any of this :) |
| 12:35 | <hsivonen> | annevk: smontagu has been removing stuff piecemeal as people have come up with threat scenarios |
| 12:36 | <annevk> | what I'd love is for this to be fully deterministic |
| 12:37 | <annevk> | so I can always tell what would happen, regardless of browser |
| 12:37 | <annevk> | (and without browser being a input variable, obviously) |
| 12:53 | <annevk> | Safari has a weird pattern as well |
| 12:54 | <annevk> | for a number of encodings it seems to swap the code points 1A, 1C, 7F map to around |
| 12:56 | <hsivonen> | annevk: do you have a list of encodings that are supported but have no UI entry in the menu? |
| 12:57 | <annevk> | no, another list I lack is a mapping against IANA |
| 12:57 | <annevk> | also, I don't have multi-byte encodings covered |
| 12:58 | <annevk> | big5, shift_jis |
| 12:59 | <annevk> | inspecting those would require a different strategy |
| 13:20 | <hsivonen> | I'm shocked that html5lib doesn't have systematic tests for all void elements |
| 13:20 | <hsivonen> | I'll add some |
| 13:43 | <annevk> | one way would be of course to make HTML5 require certain encodings and mappings |
| 13:43 | <annevk> | it already defines error handling for UTF-8 |
| 13:44 | <annevk> | or make it normatively reference a "Web Encoding" spec |
| 14:27 | <hsivonen> | hmm. How do I file a bug against the Japanese Planet Debian? |
| 14:28 | hsivonen | tries the email on a blog on the same domain |
| 16:07 | <jacobolus> | TabAtkins: finally getting back to you a week or whatever later; I'm not precisely sure all of where your discussion happened, but is there a summary someplace of your compromises/agreements with the Apple people about gradient syntax? |
| 16:07 | <annevk> | hahaha "The WebSockets" |
| 16:08 | <annevk> | this reminds of that movie |
| 16:09 | <jacobolus> | annevk: link? |
| 16:09 | <annevk> | http://blogs.msdn.com/b/ie/archive/2010/12/21/html5-site-ready-and-experimental.aspx it also links to the movie |
| 16:10 | <annevk> | again Microsoft does some heavy PR-spin on how they made the right choice here... |
| 16:10 | <annevk> | so lame |
| 16:14 | <jacobolus> | annevk: "the movie" = http://www.xtranormal.com/watch/7991991/ ? |
| 16:15 | <annevk> | think so |
| 16:17 | <jacobolus> | annevk: you don't think microsoft just wants to "remove much of the guess work for developers"? |
| 16:17 | <jacobolus> | giving "more time for site developers to innovate and create better web experiences"? |
| 16:18 | <annevk> | it looks more like they were just late implementing Web Sockets and found some kind of way to make that look good |
| 16:18 | <annevk> | and now they use the same argument for a bunch of other things |
| 16:18 | <jacobolus> | cuteL "Other modules have perfectly fine interoperable alternatives, like using script in place of CSS3 Transitions and CSS3 Animations" |
| 16:19 | <jacobolus> | *cute: |
| 16:20 | <bga_> | are there IE developers here? |
| 16:20 | <jacobolus> | no one can accuse MS of being bad at FUD :) |
| 16:21 | <jacobolus> | "whatever we implemented? obviously important and awesome. whatever we didn't implement? probably half-baked and likely to break." |
| 16:22 | <bga_> | i have a problem with execCommand('SaveAs') :) |
| 16:22 | <bga_> | it do not save binary data |
| 16:28 | <jacobolus> | bga_: isn't it designed for text boxes or something? |
| 16:31 | <jacobolus> | bga_: SaveAs doesn't seem to be listed in http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#execCommand |
| 16:31 | <bga_> | i know :) |
| 16:32 | <bga_> | whatwg should invents such api :) |
| 16:33 | <annevk> | jacobolus, heh, put a PR-speak to English version of that on twitter |
| 16:34 | <bga_> | window.saveDialog(fileName, fileData, fileMime) |
| 16:34 | <jacobolus> | annevk: I don't believe in twitter; the translation sounds like a good idea though; surely someone is interested :) |
| 16:34 | <annevk> | I mean I did it for you |
| 16:35 | <annevk> | not sure yet whether I believe in twitter, but my friends post fun photos every now and then |
| 16:37 | <jacobolus> | toDataURL is the only way to get image data out of a canvas, right? |
| 16:37 | <jacobolus> | i.e. into JavaScript |
| 16:42 | <jacobolus> | that or pixel by pixel with createImageData I guess |
| 16:42 | <jacobolus> | er, getImageData |
| 16:42 | <jacobolus> | oh, nevermind |
| 16:56 | <annevk> | http://software.hixie.ch/utilities/js/live-dom-viewer/saved/746 -- browsers do funny things with elements inside <option> |
| 17:06 | <TabAtkins> | jacobolus: The changes I made due to Apple feedback were to make it easier to transition gradients. As a result I slightly simplified the first argument to linear gradients and added the explicit-radiuses form for radial gradients. |
| 17:07 | <jacobolus> | TabAtkins: so those changes are in the spec as it is online now? |
| 17:07 | <TabAtkins> | Yes. |
| 17:07 | <TabAtkins> | at dev.w3.org/csswg/css3-images |
| 17:07 | <jacobolus> | gotcha. so Apple is mostly on board with that as written? |
| 17:07 | <TabAtkins> | As far as I know, yeah. |
| 17:07 | <jacobolus> | ah, great |
| 17:08 | <jacobolus> | TabAtkins: how much does it differ from mozilla's current implementation? |
| 17:08 | <jacobolus> | are the syntaxes compatible, or a bit different? |
| 17:09 | <TabAtkins> | Yes, almost completely compatible. The only incompatible difference is if you used the explicit-starting-point form of linear gradients, for anything other than one of the sides or corners. |
| 17:09 | <TabAtkins> | That is, a gradient like linear-gradient(10px 10px, white, black) is no longer valid. |
| 17:09 | <TabAtkins> | But linear-gradient(top left, white, black) still is. |
| 17:10 | <jacobolus> | gotcha |
| 17:11 | <jacobolus> | TabAtkins: thanks |
| 17:22 | <Ms2ger> | annevk, you got me at "browsers do funny things" |
| 17:27 | <annevk> | heh |
| 17:30 | <annevk> | how exactly is MicroXML better than XML? |
| 17:31 | <hober> | so far it's not very different, is it |
| 17:32 | <oojacoboo> | anyone see the lunar eclipse last night? |
| 17:32 | <TabAtkins> | No. ;_; Too cloudy. |
| 17:33 | <oojacoboo> | yea, same here, too cloudy |
| 17:34 | <hober> | I think socal is going to float away from the mainland if this rain keeps up |
| 17:34 | <hober> | which is to say, it was completely overcast here too. :( |
| 17:36 | <oojacoboo> | man, a red moon, it would have been cool... for a min, I could have felt like I was living on a strange planet |
| 17:37 | <annevk> | whoa, no browser does incremental rendering of XML anymore? |
| 17:37 | <annevk> | http://www.hixie.ch/tests/evil/page-loading/incremental/001.cgi?mime=text%2Fxml&delay=1&repeats=20 |
| 17:37 | <annevk> | weak |
| 17:37 | <kennyluck> | Do people see junk on this page -> http://bugzilla.validator.nu/ ? |
| 17:38 | <oojacoboo> | kennyluck: junk? |
| 17:38 | <annevk> | it talks about Firefox 2... |
| 17:38 | <kennyluck> | Very weird but it seems to have some encoding problem. It works fine if I view it with Safari but I see junk from FF and IE. |
| 17:38 | <TabAtkins> | Man, js engines are *weird*. |
| 17:39 | <annevk> | Film at 11 |
| 17:39 | <TabAtkins> | I just changed the md5 implementation I found somewhere to do 32-bit addition on the full 32 bits, rather than splitting the numbers into 16-bit halves and then recombining, and it doubled execution time. |
| 17:41 | <TabAtkins> | ...in Firefox. In Chrome I see a 10% speedup from doing that. |
| 17:42 | <TabAtkins> | Sorry, 10% slowdown. Still, much better than a 100% slowdown. |
| 17:44 | <jcranmer> | so chrome sucks at doing 32-bit addition? |
| 17:44 | <TabAtkins> | Both browsers do. Chrome sucks much less. |
| 17:45 | <jcranmer> | too early in the afternoon for me |
| 17:46 | <TabAtkins> | Unless your whois is lying, it's not the afternoon at all for you! |
| 17:46 | <jcranmer> | it's 12:51 PM |
| 17:46 | <TabAtkins> | Oh, I see, that's just the freenode server you're connecting through that's in Oregon. |
| 17:46 | <jcranmer> | the server I'm connected to is in Oregon |
| 17:47 | <TabAtkins> | I wasn't looking too closely. |
| 17:47 | <jcranmer> | the server my irc client is on is in the DC area |
| 17:47 | <jcranmer> | the computer I'm typing this on is a few miles further to the south |
| 17:47 | <ap> | annevk: do you know about <http://demo.icu-project.org/icu-bin/convexp?s=IANA&s=MIME&s=ALL>? |
| 17:48 | <ap> | annevk: most WebKit encodings come from there, modulo a few handcrafted additions, and tweaks Google made in their distribution for some reason |
| 17:49 | <annevk> | Chrome is quite different from Safari |
| 17:49 | <annevk> | and Mac Safari is different from Win Safari |
| 17:49 | <annevk> | well, that is, Chrome has much more encodings disabled |
| 17:56 | <ap> | annevk: yes, we don't support some legacy encodings in Safari on Windows, and may be shipping a different version of ICU, depending on which version of Mac OS X you tested with |
| 17:56 | <ap> | annevk: the reason is that besides Web compatibility, we need to be read old local files on Mac |
| 17:57 | <ap> | s/be// |
| 17:57 | <annevk> | I have the latest Mac OS X |
| 17:58 | <annevk> | Yeah, apparently Mac Opera supports some more Mac encodings for that reason too |
| 17:58 | <annevk> | Though a lot less than Safari, and on Windows we support no Mac encodings despite most other browsers supporting at least a few |
| 17:58 | <annevk> | It's not just Mac encodings though |
| 17:59 | <annevk> | Chrome 28 / Safari 46 ... |
| 18:00 | <ap> | annevk: do you have any outrageous examples that I would want to fix? |
| 18:00 | <annevk> | sorry :/ |
| 18:00 | <annevk> | I only have http://annevankesteren.nl/2010/8-bit-labels so far |
| 18:00 | <ap> | annevk: by the way, WebKit nightlies are quite different from shipping Safari in how they match alias names |
| 18:00 | <ap> | annevk: we used to ignore all punctuation, but we no longer do |
| 18:01 | <annevk> | well, and the original data on Bitbucket; I need to find some way to query it more intelligently |
| 18:01 | <annevk> | ap, ah great, Opera changed away from that too |
| 18:01 | <ap> | annevk: chromium probably shipped that already, which is why they may seem more different in your data than they actually are |
| 18:02 | <annevk> | it would mean that would match less labels and produce less encodings |
| 18:02 | <annevk> | so I'm not sure that theory holds |
| 18:02 | <ap> | well, fewer aliases for the same encodings |
| 18:03 | <annevk> | I feed 300 labels; I count unique encodings and aliases for them |
| 18:03 | <annevk> | oh yeah |
| 18:03 | <annevk> | they would end up among "obviouslyfake" in my data |
| 18:03 | annevk | looks |
| 18:04 | <annevk> | Chrome has indeed quite a bit more than Safari there |
| 18:06 | <ap> | annevk: another change you can find in WebKit nightlies is that we now drop names with version info that come from ICU, such as ISO_2022,locale=ja,version=0 |
| 18:07 | <annevk> | that was a label WebKit recognized? |
| 18:07 | <annevk> | wow |
| 18:08 | <annevk> | I sort of hope we can just have a fixed list of labels that you need to have for the web and no more |
| 18:08 | <annevk> | maybe grandfathering the Mac encodings in... |
| 18:09 | <annevk> | then implementations can also be a lot simpler than all of ICU |
| 18:10 | <ap> | annevk: so far, the most practically data that came from encoding support research was about upgrading encodings |
| 18:10 | <ap> | annevk: such as "EUC-KR really means windows-949" |
| 18:11 | <annevk> | yeah, that was great |
| 18:11 | <annevk> | oh actually, I did find a few funny things in Safari |
| 18:12 | <Ms2ger> | Don't we all sometimes? |
| 18:12 | <annevk> | ap, http://annevankesteren.nl/2010/8-bit-labels#cp869 Safari has this for quite a few encodings, swapping 1A, 1C, and 7F around |
| 18:12 | <annevk> | http://annevankesteren.nl/2010/8-bit-labels#ibm775 (an encoding only Safari and Internet Explorer have) |
| 18:12 | <annevk> | (same weirdness) |
| 18:13 | <annevk> | goes for most IBM encodings I think |
| 18:13 | <annevk> | (scroll upwards) |
| 18:14 | <ap> | annevk: swapping is interesting - it comes from ICU http://demo.icu-project.org/icu-bin/convexp?conv=ibm-869_P100-1995&s=IANA&s=MIME&s=ALL |
| 18:15 | <annevk> | ah yeah, whenever Chrome does not have the encoding disabled it has the same issue |
| 18:15 | <ap> | annevk: I'll file a bug for our ICU folks to look into, but I suspect that this is a bug in Windows |
| 18:16 | <ap> | annevk: as IBM probably checked ICU to match their original definition of those encodings |
| 18:16 | <annevk> | if the tables just say "S" it means Safari on both Mac and Win |
| 18:16 | <annevk> | and Firefox and Internet Explorer contradict Safari |
| 18:16 | <annevk> | e.g. in http://annevankesteren.nl/2010/8-bit-labels#cp862 |
| 18:17 | <annevk> | or http://annevankesteren.nl/2010/8-bit-labels#ibm857 |
| 18:17 | <annevk> | I wonder if Chrome and Opera need to support these IBM encodings |
| 18:17 | <ap> | oh, an example that's supported by more than just Ie is helpful |
| 18:18 | <annevk> | I would sort of expect Firefox to do what IBM wants |
| 18:18 | <ap> | annevk: looking at 862 specifically, Safari probably supports many more aliases for it, according to that ICU page |
| 18:18 | <annevk> | but then ICU not doing what IBM wants would also be weird |
| 18:19 | <annevk> | ap, I guess I can try to increase the amount of aliases to 400 |
| 18:19 | <annevk> | I haven't even gone through the IANA registry either yet |
| 18:56 | <hsivonen> | annevk: are you sure all browsers regressed xml loading instead of the test breaking? |
| 18:57 | <hsivonen> | TabAtkins: did you test JägerMonkey or something older for 32-bit arithmetic? |
| 18:57 | <hsivonen> | TabAtkins: I'd expect trunk to do 32-bit math faster than beta6 or earlier |
| 18:57 | <TabAtkins> | hsivonen: I have no idea. I'm using b7. |
| 18:58 | <hsivonen> | TabAtkins: odd |
| 18:58 | <TabAtkins> | The function in question is this: |
| 18:58 | <TabAtkins> | var lsw = (x & 0xFFFF) + (y & 0xFFFF); |
| 18:58 | <TabAtkins> | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); |
| 18:58 | <TabAtkins> | return (msw << 16) | (lsw & 0xFFFF); |
| 18:58 | <TabAtkins> | And I tried replacing it with just: |
| 18:59 | <TabAtkins> | return ( (x & 0xFFFFFFFF) + (y & 0xFFFFFFFF) ) & 0xFFFFFFFF; |
| 18:59 | <TabAtkins> | Which, come to think of it, is probably incorrect anyway. |
| 18:59 | <TabAtkins> | It didn't change the md5 for the strings I was testing, at least. |
| 19:00 | <annevk> | hsivonen, good point, no |
| 19:00 | <hsivonen> | TabAtkins: the latter could overflow out of 32 bits for the intermediate value, right? |
| 19:00 | annevk | makes a local test |
| 19:00 | <TabAtkins> | hsivonen: Yes. |
| 19:00 | <bga_> | wow |
| 19:01 | <bga_> | ((x|0) + (y|0))|0 |
| 19:01 | <hsivonen> | TabAtkins: I think the original correctly lets overflow wrap around |
| 19:02 | <TabAtkins> | hsivonen: Yes, it does. |
| 19:02 | <TabAtkins> | hsivonen: My version is incorrect as written. |
| 19:02 | <TabAtkins> | bga_: How does |0 work? Do bitwise operators automatically truncate to 32 bits or something? |
| 19:02 | <bga_> | yes |
| 19:03 | <bga_> | convert to `long` |
| 19:03 | <bga_> | ~~x too |
| 19:03 | <TabAtkins> | Ah, kk. Didn't realize that, so I using a more generically correct version. |
| 19:04 | <TabAtkins> | Let me try out a correct variant. |
| 19:06 | <TabAtkins> | All right, it's back to a wash with "var tmp = ~~x + ~~y; return (tmp>>>32) || tmp;" |
| 19:06 | <bga_> | (tmp>>>32)? |
| 19:07 | <bga_> | it always 0 |
| 19:08 | <TabAtkins> | No, x+y can be greater than 32 bits. |
| 19:08 | <TabAtkins> | Frex, if both of them are 2^32 - 1. |
| 19:08 | <annevk> | hsivonen, hmm yeah, all browsers do it incrementally |
| 19:09 | <annevk> | better fix my post |
| 19:10 | <bga_> | TabAtkins read es spec |
| 19:10 | <bga_> | x >>> 32 <=> x >>> 0 |
| 19:11 | <bga_> | x >>> y <=> long(x) >>> long(y)&31 |
| 19:11 | <TabAtkins> | Oh, hrm, you're right. I guess I need to explicitly use numeric comparisons then. |
| 19:14 | <hsivonen> | annevk: you might be interested in the xml-dev threads on MicroXML |
| 20:15 | <annevk> | hsivonen, anything in particular? |
| 20:15 | <annevk> | hsivonen, I did go through some of the email |
| 20:37 | <hober> | is xml-dev worth subscribing to? |
| 20:37 | <Philip`> | TabAtkins: "return (tmp>>>32) || tmp" - should that be |, not ||? |
| 20:51 | <TabAtkins> | Philip`: No, I was using logical or on purpose to do fallback. But that line was completely wrong in the first place, because my brain was being stupid and forgetting what "overflow" means'. |
| 23:26 | <oojacoboo> | do you really not have to close out the <th> and <td> elements in a table? |
| 23:27 | <TabAtkins> | Yup. |
| 23:27 | <TabAtkins> | You also don't have to close <li>s. |
| 23:27 | <oojacoboo> | assuming that html4 or 5 and not xhtml |
| 23:27 | <TabAtkins> | There are some crazy rules about when you dont' ahve to close <p>, so I ignore them and just always explicitly close it. |
| 23:27 | <TabAtkins> | Yes, xhtml needs to be well-formed xml. No omitted tags. |
| 23:28 | <oojacoboo> | seems kinda dangerous all around to me, but w/e |
| 23:28 | <TabAtkins> | You don't need to close the <thead>/<tbody>/<tfoot> elements either. |
| 23:28 | <oojacoboo> | interesting |
| 23:28 | <TabAtkins> | Nah, it's cool. Check out, for example, this page's source: http://www.xanthir.com/diagrams/flex-align-diagrams.html |
| 23:29 | <oojacoboo> | I guess since they are never nested, makes sense |
| 23:29 | <oojacoboo> | actually looks pretty clean... |
| 23:29 | <TabAtkins> | Yeah, they're never nested without a container protecting the nested one from the outer one. |
| 23:30 | <oojacoboo> | yea |
| 23:31 | <oojacoboo> | are there any plans to introduce some sort of child header element for a <tbody> ? |
| 23:31 | <TabAtkins> | Huh? |
| 23:32 | <oojacoboo> | imagine a table with multiple sections, <tbody>s, where you wanted to include a line describing what the contents of each section are |
| 23:32 | <TabAtkins> | Use a <tr> with a colspanning <th>. |
| 23:33 | <oojacoboo> | yea |
| 23:34 | <oojacoboo> | not quite the same, but w/e |
| 23:34 | <oojacoboo> | I was thinking something more like <caption> |