00:00 | <zewt> | i don't know in general, but i agree that having random people posting in GIGANTO HUGE TEXT (they're important people, folks!) is really annoying |
00:00 | <AryehGregor> | heycam, why does WebIDL seem to use TypeError for so many different things? AFAIK we have zero interop on what exception types to throw, so wouldn't it make the most sense to use different exception types for different types of errors? Like for passing too few arguments, at least -- that seems like it could benefit from a unique error type. |
00:00 | <zewt> | i think flowing email instead of forcing everything to 80-column (especially on mobile) is a major win, though, and basic formatting (italic, bold) |
00:01 | <TabAtkins> | zewt: Flowing is incompatible with using text-based quoting indicators. |
00:01 | <AryehGregor> | . . . maybe it's not so many places, actually. |
00:01 | <zewt> | (links, images) |
00:01 | <AryehGregor> | ES also uses TypeError a lot. |
00:01 | <zewt> | TabAtkins: no it's not; the renderer just needs to be a bit smarter--gmail does it fine |
00:01 | <AryehGregor> | But it doesn't seem to be the right type for too few arguments. |
00:02 | <TabAtkins> | zewt: Really? I occasionally see Gmail do dumb things with flowed text and >> quoting. |
00:02 | <zewt> | i'm not entirely sure what kind of magic gmail does |
00:03 | <TabAtkins> | I mean, it knows how to convert blockquotes into a proper plaintext. |
00:03 | <TabAtkins> | If everyone would just write in Markdown this would be easier. |
00:04 | <zewt> | i guess more specifically, flowed isn't enough for quotes; you need HTML's blockquote to supplement it |
00:04 | <TabAtkins> | Yeah. |
00:04 | <gavinc> | On decimals in durations... perhaps something along the lines of decimals can only be used in the final terminal? eg 1.5h makes sense 1.5h10m does not. Really any new field after a decimal doesn't make a whole lot of sense |
00:04 | <TabAtkins> | Or some other explicit indicator of start/stop quoting. |
00:05 | <zewt> | blockquote seems saner than > quoting in general, in particular because no matter how advanced human society gets, people will still feel the need to get "inventive" with quote markers |
00:05 | <zewt> | ("i don't like >, let's use # instead" STOP THAT) |
00:05 | <TabAtkins> | Or the person's initials as quote markers, urgh. |
00:06 | <zewt> | don't forget "You said:" |
00:06 | <zewt> | (... who?) |
00:07 | <Dashiva> | Don't forget forced line wrapping |
00:07 | <zewt> | talking about spec text is a whole lot easier with basic formatting, though |
00:07 | <TabAtkins> | Sure. |
00:07 | <zewt> | not being able to mimic spec rendering in email hurts |
00:07 | <TabAtkins> | All the formatting allowed in Markdown is useful without being obnoxious. |
00:08 | <zewt> | i wonder if there's a mystery firefox setting to disable pasting html |
00:14 | <AryehGregor> | Don't forget forced line wrapping that's then forced a second time so every line wraps to a second line that only has one word on it. |
00:15 | <AryehGregor> | Kind of like when the MTU decreases by a few bytes somewhere in the middle of transit. |
00:15 | <zewt> | (bleh, maybe i can disable it on gmail with some greasemonkey hackery; it's only gmail that it's a day-to-day headache with) |
00:20 | <AryehGregor> | "Due to a filter you created, this message was not sent to Spam." That needs a button saying "The filters were right, this isn't spam, try being smarter next time." |
00:21 | <Philip`> | Does Gmail actually learn from things you mark as spam/not-spam? |
00:21 | <AryehGregor> | I hope so. |
00:21 | Philip` | has never noticed an effect like that |
00:22 | <AryehGregor> | I'm guessing the effect isn't per-user. |
00:22 | <AryehGregor> | Or maybe it is. |
00:22 | <AryehGregor> | I don't know, I don't look at my spam folder much. |
00:23 | <AryehGregor> | But I'm sure it at least feeds back into whatever their global spam filter is. Like I bet if they add a new heuristic, they'll adjust the weight they give it based on what percentage of users change its results, or something. |
00:23 | <AryehGregor> | Isn't the classic way to do spam filtering a Bayesian filter that updates based on manual user corrections? |
00:23 | <TabAtkins> | Yup. |
00:23 | <AryehGregor> | If they did that or some variant but the weights were global instead of per-user, you wouldn't notice an individual effect from clicking Spam/Not Spam, but it would have an effect if enough users did it. |
00:24 | <AryehGregor> | Maybe an elaboration would have an extra per-user layer so your personal spam filter is more responsive to your changes. |
00:24 | <TabAtkins> | I wish/hope they do. |
00:24 | <AryehGregor> | I honestly have no idea, spam filtering is all voodoo magic. But surely you'd have no way of checking your filter's accuracy if not for the Spam/Not Spam buttons. |
00:25 | <TabAtkins> | I'm quite certain we use a Bayesian filter of some variety. |
00:25 | <zewt> | it's pretty annoying that gmail filters have no "mark as spam" option |
00:25 | <TabAtkins> | I'm hoping/wishing for a personalized filter layered atop the global one. |
00:25 | <AryehGregor> | zewt, . . . they don't? |
00:26 | <AryehGregor> | Oh, the filters. |
00:26 | <zewt> | nope; the closest is delete |
00:26 | <AryehGregor> | As in the things Gmail calls filters, not spam filters. |
00:26 | <AryehGregor> | Right. |
00:26 | <AryehGregor> | That would be nice. |
00:26 | AryehGregor | uses the "Don't mark as spam" feature for several filters |
00:26 | <zewt> | i havn't had too much trouble with false positives on gmail |
00:27 | <TabAtkins> | Other than the "mark everything from @google.com as spam" issue, me neither. |
00:27 | <AryehGregor> | I've had a few simple ones. |
00:27 | <TabAtkins> | And I have a fitler to prevent that now. |
00:27 | <AryehGregor> | Like yeah, @google.com gets marked as spam a lot. |
00:27 | <zewt> | i recently had "69% Discount! BUY VIGARA & CILAIS NOW!!! Next Day Delivery!" pass gmail's spam filter |
00:27 | <AryehGregor> | I wonder if it's due to bad SPF rules or something. I think I investigated that once. |
00:27 | <zewt> | how could they possibly identify *that* as spam? |
00:28 | <AryehGregor> | I've also had routine daily mailings from my servers (like logwatch) marked as spam sometimes. |
00:28 | <TabAtkins> | zewt: Too much spoofing, I suppose, and we *for some reason* don't use the existing verification systems. |
00:28 | <AryehGregor> | IIRC, once most of the logwatch mails I got were marked as spam, but I marked them all not spam a couple of times and they stopped being marked as spam, so maybe that's anecdotal evidence that it learns from mistakes like that. |
00:28 | <zewt> | gmail has more incentive to listen to you screaming "not spam" than "spam" |
00:29 | <zewt> | since false positives are much more dangerous than false negatives |
00:29 | <AryehGregor> | TabAtkins, what existing verification systems? SPF, which breaks forwarding? Or DKIM, which requires everyone sending mail from a domain to have that domain's private key? |
00:29 | <zewt> | i imagine that has to be pretty localized, though, or it'd be abusable (create accounts, send your spam to them, mark them not spam) |
00:30 | <AryehGregor> | Verification of the sender in SMTP is just completely broken, because of legacy constraints like mailing lists. |
00:30 | <TabAtkins> | I know nothing of email verification systems and their shortcomings. |
00:30 | <AryehGregor> | SPF and DKIM are great, if all your mail is being sent from servers you control. |
00:31 | <AryehGregor> | And not being forwarded or mangled. |
00:31 | <AryehGregor> | Otherwise, not so much. |
00:31 | <TabAtkins> | zewt: Makes sense. I suppose that using a personalize ham filter and a global spam filter works fine. |
00:31 | <TabAtkins> | Since you *always* want spam information to be globally contributed, I guess. |
00:31 | <zewt> | global spam filtering is also abusable, in the opposite way, so at least it probably has to be heavily diluted |
00:31 | <zewt> | ("hey guys, let's make gmail mark ebay as a spammer") |
00:31 | <TabAtkins> | Only with more difficulty, and hamminess is typically consulted before spamminess. |
00:32 | <zewt> | of course, there's subjectivity in there, too |
00:32 | <AryehGregor> | . . . why is Chrome so persistently bad at restoring tabs when you close multiple windows in succession? |
00:32 | <zewt> | for example, i consider mail from companies i've done business with that i didn't give them permission to use my email address for ("newsletters", "special offers") to be spam; some people don't |
00:32 | <AryehGregor> | Not only does it not restore any window other than the last you closed, it commonly forgets about the other window entirely. |
00:33 | AryehGregor | hopes he didn't have any important tabs that got eaten |
00:35 | <AryehGregor> | Would it be so hard for it to notice when I close two windows within three seconds of each other and restore both when I restart? |
00:35 | <AryehGregor> | Reliably? |
00:35 | AryehGregor | grumbles |
00:35 | <zewt> | firefox yells at you if you close a window with multiple tabs open |
00:35 | <AryehGregor> | The first time, until you uncheck the box. |
00:35 | <zewt> | there's sort of a disconnect in the way sessions work vs. the way chrome tries to look |
00:36 | <zewt> | eg. how chrome tries to look like a background system that's always present, and how people usually don't file->exit from chrome |
00:36 | <zewt> | where session restores tend to be tied to file->exit closing everything at once |
00:36 | <zewt> | it should probably at least have a "recently closed windows", which is restored with the session |
00:45 | AryehGregor | didn't realize you can use File->Exit to close everything at once |
00:45 | <AryehGregor> | That's a usable workaround, if it restores all windows automatically. |
00:45 | <paul_irish_> | AryehGregor: i use the Session Buddy extension which i set to autosave my windows |
00:45 | <heycam> | AryehGregor, JS itself tends to favour TypeError for those kinds of things (insufficient arguments, bad types, etc.) |
00:45 | <paul_irish_> | but also File ->Exit ya. |
00:46 | <heycam> | AryehGregor, which is why I went with it nearly everywhere |
00:52 | <jamesr_> | has anyone verified that Charles Pritchard isn't just a sophisticated n-gram email generation bot? |
00:58 | <Hixie> | ok for people following on at home i did a regen with some of the new text in the microsyntaxes section |
00:59 | <Hixie> | yearless dates (e.g. birthdays, 05-06): http://www.whatwg.org/specs/web-apps/current-work/#yearless-dates |
00:59 | <Hixie> | timezones as a separate concept: http://www.whatwg.org/specs/web-apps/current-work/#time-zones |
01:00 | <Hixie> | and durations: http://www.whatwg.org/specs/web-apps/current-work/#durations |
01:04 | <Hixie> | bbiab. |
01:05 | <mkanat> | Hixie: Hmm. I'm assuming Olsen timezones have already been discussed? |
01:07 | <kennyluck> | Hixie, "One or more digits followed by a U+004D LATIN CAPITAL LETTER M character, representing a number of hours." should read "number of minutes." |
01:23 | <zewt> | chrome doesn't implement the Worker interface inside workers? weird |
02:36 | <tantek> | mkanat Olsen style named timelines were previously rejected long ago from microformats' timezone microsyntaxes. |
02:37 | <mkanat> | tantek: Fair enough. I think they do make life easier for implementors who want perfect accuracy, but they're not going to be typed by most actual users. |
02:37 | <tantek> | The short version for why no Olsen named TZs is that people notoriously get them wrong especially with respect to DST |
02:37 | <mkanat> | As in, notoriously implement interpreting them improperly? |
02:38 | <tantek> | They dot actually make life easier for higher data quality - which is the right way to evaluate anything an author/coder might emit into HTML |
02:38 | <tantek> | s/dot/don't |
02:39 | <tantek> | Smart folks all the time write/say PDT when they mean PST and vice versa. |
02:40 | <mkanat> | Yes, but I was thinking the full Olsen zones, America/Los_Angeles and so on. |
02:40 | <mkanat> | I agree that the three-letter TZs are an abomination. |
02:40 | <tantek> | Better to address it with numerical precision upfront (with offset from Z) than provide the illusion of precision with named TZs |
02:41 | <tantek> | And it's yet another named registry dependency |
02:41 | <tantek> | Worse, one that's political and unpredictable |
02:42 | <tantek> | Never mind the DMCA takedown of the NIH FTP URL |
02:42 | <TabAtkins_> | Yeah, the city-based registry changes over time. |
02:43 | <mkanat> | I suppose numerical offsets do give you accuracy. |
02:43 | <tantek> | All those RFCs with references to Olsen now have broken links |
02:43 | <mkanat> | Even if the DST changeover goes to some other date in the future, your time is still accurate--it's just not in the TZ that that location would have, when you actually get to that date. |
02:44 | <mkanat> | I see the problems of trying to bake the Olsen DB into clients. |
02:45 | <zewt> | well, the biggest problem with named timezones is it's a moving target |
02:45 | <mkanat> | Right, that's the problem with baking it into clients. |
02:46 | <mkanat> | And people who want to use them on the server-side already have libraries for it that can emit times with numeric offsets if they want to send those to the client, so that does seem fine. |
02:50 | <tantek> | Mkanat, worse than baking into clients, with HTML/microformats it's a matter of baking into *documents* which must be much more reliable than clients. |
02:51 | <mkanat> | tantek: Yeah, that's a good point. |
02:59 | <tantek> | Also tried to send this earlier but I think I was already too far off the ground: |
02:59 | <tantek> | Hixie, fine with omitting fixed point numbers or now til examples documented on wiki, however we should be similarly conservative with out of order unit values etc until someone finds backward compat reasons/examples. |
03:00 | <TabAtkins_> | tantek: Don't quite agree. Allowing out-of-order unit values makes both parsing and generation somewhat easier. |
03:01 | <tantek> | Disagree because it makes simple transposition errors more difficult to detect |
03:02 | <TabAtkins_> | Hmm, transposition seems like a minor issue here. |
03:02 | <TabAtkins_> | Because the units are separate from each other by at least one digit. |
03:03 | <tantek> | Not that way |
03:03 | <tantek> | But like this |
03:03 | <tantek> | Writing 1m5h when 1h5m is intended |
03:03 | <tantek> | Also easy to miss that error web reviewing. |
03:04 | <TabAtkins_> | Hm, maybe. |
03:04 | <tantek> | Because people see the order of digits and assign relevance more to the order than to he unit suffixes |
03:06 | <tantek> | This is all about optimizing ease of authoring high quality data. |
03:07 | <tantek> | so i'd rather start with a more conservative syntax |
03:08 | <tantek> | Where errors are earlier / more easily detected and corrected |
03:09 | <tantek> | Speaking if errors - typing on an iPod sucks. I'm going to dinner and will resume later tonight in a laptop |
03:11 | tantek | didn't mean to have hat message be self-supporting. :/ |
03:11 | <TabAtkins_> | ^_^ |
03:49 | <erlehmann> | tantek, with “1h5m”, transposition errors can happen. so is the answer not something like “12:34”, where only order matters? |
04:11 | <tantek> | erlehmann: I'm considering exactly that for a potential separate duration attribute. |
04:12 | <erlehmann> | i see what you did there. |
05:56 | <Hixie> | ok. adding an element. |
05:56 | <Hixie> | step 1: adding a section for the element itself. |
05:59 | <Hixie> | step 2: updating the category lists to include the new element. |
05:59 | <Hixie> | pick an element with the same basic design (in this case <data>), and search the spec for mentions of that element in the category descriptions and copy what i did there. |
06:01 | <Hixie> | step 3: update images/content-venn.svg |
06:02 | <Hixie> | step 4: update the syntax section. not needed in this case as it's a "normal" element. |
06:02 | <Hixie> | step 5: update the phrasing element usage summary examples |
06:04 | <Hixie> | step 6: update the parser. unnecessary in this case as it's a "normal" element. |
06:04 | <Hixie> | step 7: add new examples and update existing ones that are affected by the new element. |
06:06 | <tantek__> | hey Hixie, I've been updating / tweaking the Time element wiki page regarding durations |
06:07 | <tantek__> | capturing a bunch of the things discussed in IRC |
06:13 | <Hixie> | step 8: update the rendering section. unnecessary in this case as there's no non-default rendering to speak of. |
06:14 | <Hixie> | step 9: update the obsolete section as appropriate. unnecessary in this case as I forgot to add <time> to that section when I dropped it. :-) |
06:14 | <Hixie> | step 10: update the indexes |
06:15 | <tantek__> | sounds like fun |
06:21 | <Hixie> | step 11: update the aria mappings. i believe there's nothing to map in this case. |
06:25 | <Hixie> | ok |
06:25 | <Hixie> | regen |
06:25 | <Hixie> | could do with more <data> examples now |
06:25 | <Hixie> | since i converted a lot of them back to <time> again |
07:00 | <rniwa> | Hixie: are you still there? |
07:00 | <Hixie> | yup |
07:01 | <rniwa> | Hixie: I have a question for you regarding accessKey content attribute |
07:01 | <rniwa> | Hixie: should accessKey content attribute simulate click upon key press? |
07:01 | <rniwa> | i.e. simulate mousedown, mouseup, & click |
07:01 | <rniwa> | or just click? |
07:01 | <Hixie> | it should do what the spec says :-) |
07:02 | <Hixie> | "When the user presses the key combination corresponding to the assigned access key for an element, if the element defines a command, the command's Hidden State facet is false (visible), the command's Disabled State facet is also false (enabled), and the element is in a Document, then the user agent must trigger the Action of the command." |
07:03 | <Hixie> | then see the subsections under http://www.whatwg.org/specs/web-apps/current-work/#commands for the specific definition of what the Action of an element is in any particular case |
07:03 | <Hixie> | (all elements with an assigned access key by definition have an Action) |
07:04 | <rniwa> | Hixie: ok, the spec appears to suggest we don't simulate mouedown/moseup |
07:05 | <rniwa> | just double-checking with you |
07:06 | <Hixie> | yeah nothing ever simulates mousedown/mouseup. The exact behaviour depends on what the element is. e.g. for <option> elements the event that eventually fires is 'change', for <div> elements the event that eventually fires is 'click', for <label> no event fires on the label but something might happen to the associated control, etc. |
07:07 | <erlehmann> | i want a novel by charles stross, where lawmakers of the future have the (?) embroidered on their clothing |
07:07 | <Hixie> | actually on <div> you'd see a 'focus' event also |
07:09 | <rniwa> | Hixie: right. |
07:09 | <rniwa> | Hixie: we might not be doing the right thing for focus at the moment |
07:09 | <rniwa> | but someone is working on accessKey content attribute |
07:09 | <rniwa> | so we might match the spec in near future :) |
07:09 | <rniwa> | Hixie: thanks for the help |
07:10 | <Hixie> | btw looking at the Action section it looks like the way it refers to the activation behaviour is a bit out of date |
07:11 | <Hixie> | so the exact text might change |
07:11 | <Hixie> | i think it won't affect the normative meaning |
07:12 | <Hixie> | hm. step 12: update the microdata algorithms to use <time> again. oops. |
07:12 | <Hixie> | tantek: if you're still around, check out the spec and let me know if the new text looks good to you |
07:14 | <Hixie> | http://www.whatwg.org/specs/web-apps/current-work/#the-time-element |
07:15 | <rniwa> | hm... |
07:16 | <Hixie> | hm? |
07:44 | <hsivonen> | I find it surprising that IE9 on Windows Phone doesn't have a JS JIT (according to http://www.sitepoint.com/mobile-ie9-differences/ ) |
07:45 | <hsivonen> | ooh. no Compatibility View, either |
07:45 | <annevk> | Hixie: no check-in yet? |
07:48 | <Hixie> | about to do it, unless you see a problem :-) |
07:49 | <annevk> | it doesn't say how to extract the datetime value |
07:49 | <Hixie> | "The datetime value of a time element is the value of the element's datetime content attribute, if it has one, or the element's textContent, if it does not." |
07:50 | <Hixie> | that not enough? |
07:51 | <annevk> | from a parser perspective there does not seem to be one algorithm for getting the value out |
07:51 | <Hixie> | "The time element represents its contents, with the added semantic that the the value given for the matching syntax in the list below, if any, is the meaning that corresponds to the element's contents." |
07:51 | <Hixie> | so you find which syntax it matches, if any, and that's what it represents |
07:53 | <Hixie> | admittedly, that makes the error handling parser for durations somewhat pointless |
07:54 | <annevk> | so you parse them as each of them and if one does not return an error you are okay? |
07:55 | <Hixie> | what the spec says now is that you check to see which syntax they conform to |
07:55 | <Hixie> | but i guess i can add a detector algorithm |
07:55 | <Hixie> | i'll do that tomorrow |
07:56 | <annevk> | ok, sounds good |
08:05 | <Hixie> | i wonder how to do this short of just having an algorithm that is all the algorithms together |
08:07 | <Hixie> | distinguishing a global date and time string from a local date and time string, for instance, without using some crude heuristic like "ends in a Z or has a + or - somewhere in it" |
08:12 | <annevk> | depends on the extensibility you want I suppose |
08:14 | <annevk> | http://xkcd.com/979/ I hate it when that happens :) |
08:33 | <annevk> | sweet http://blog.chromium.org/2011/11/lossless-and-transparency-encoding-in.html |
08:33 | <annevk> | hopefully Gecko will add it now |
08:50 | <hsivonen> | has Google explained why they aren't working with JPEG XR? |
08:51 | <hsivonen> | there might be good legal reasons |
08:51 | <hsivonen> | but without an explanation, it looks like it's Google doing its own thing instead of ISO standards |
08:56 | zcorpan | uncomments <time> in html-elements |
09:17 | <annevk> | hsivonen: prolly too hard, witness APNG |
09:59 | <erlehmann> | annevk, ENOCONTEXT what is too hard? |
10:53 | <hsivonen> | stuff I learned about URL parsing today: Three slashes after http: works in Firefox 8 but not in IE8. |
10:54 | <hsivonen> | works in Chrome, too |
10:59 | <smaug____> | annevk: we should kill also timeout for sync XHR |
11:01 | <annevk> | but timeout doesn't throw |
11:01 | <annevk> | at all |
11:01 | <annevk> | oh well, not really a great argument |
11:02 | <annevk> | smaug____: are you implementing the other exceptions? and changes to allow responseType to be set before open() etc. |
11:04 | <smaug____> | just reviewing a patch which throws when xhr is sync |
11:04 | annevk | hopes it's per spec |
11:04 | <hsivonen> | smaug____: should I prepare a patch to make HTML parsing unavailable in sync XHR? |
11:05 | <smaug____> | hsivonen: that would be good yes |
11:05 | <annevk> | hsivonen: it should still work in Workers though |
11:05 | <smaug____> | we really should try to kill sync XHR in Window context |
11:05 | <smaug____> | HTML Document in Workers? |
11:06 | <annevk> | oh right |
11:06 | <annevk> | though maybe, at some point |
11:08 | <hsivonen> | smaug____: OK. now that I've gotten some food, I'll try to track down the source of the error again... |
11:16 | <MikeSmith> | annevk: can you remind me please how I get http://html5.org/tools/web-apps-tracker to show all changes? |
11:16 | <MikeSmith> | nm |
11:16 | <MikeSmith> | http://html5.org/tools/web-apps-tracker?limit=-1 |
11:20 | <annevk> | sweet |
11:21 | <annevk> | now that's going to get hit often |
11:23 | <annevk> | someone tell me when html5.org goes down and I'll change the above URL to return "Damn it Mike™, you're awesome but did you have to expose this URL‽" |
11:23 | <zcorpan> | make it a rickroll redirect |
11:24 | <MikeSmith> | shit |
11:24 | <MikeSmith> | sorry man |
11:24 | <annevk> | heh |
11:24 | <MikeSmith> | change it to something else |
11:24 | <annevk> | I think we'll be fine |
11:24 | <annevk> | time will tell |
11:24 | <MikeSmith> | I'm managing to fuck up all kinds of things during the last two weeks |
11:24 | <MikeSmith> | I'm on a roll |
11:24 | <MikeSmith> | surprising even myself |
11:25 | <annevk> | more bad management if you ask me |
11:25 | <MikeSmith> | hard to know what lies ahead |
11:26 | <annevk> | maybe it's the cheese |
11:32 | <annevk> | zcorpan: http://lists.w3.org/Archives/Public/www-archive/2011Nov/0052.html |
11:34 | <annevk> | http://www.urbandictionary.com/define.php?term=blink182 "Was that blink 182 or blink 181? I lost count...fuck me gently with a chainsaw." |
11:35 | <annevk> | lol |
11:36 | <zcorpan> | annevk: great success |
12:01 | <zcorpan> | wonder if i should point out that a text/html; charset=windows-1252 resource can instantiate a worker with the url "#" which will interpret the same resource as a utf-8 script |
12:02 | <zcorpan> | (we even have a test case for this) |
12:26 | <ashaw> | I am wondering which IRC room works on developing the JS-API |
12:26 | <jgraham> | What js-api? |
12:27 | <annevk> | zcorpan: the point was more that it's not implemented apparently |
12:27 | <ashaw> | the Javascipt standard library |
12:29 | <zcorpan> | annevk: well it's implemented in opera |
12:30 | <annevk> | ashaw: are you talking about http://es5.github.com/ ? |
12:30 | <jgraham> | ashaw: Do you mean DOM? Or the "standard library" in ECMAScript? |
12:31 | <ashaw> | I do not know, in general I want to talk about window.crypto |
12:31 | <ashaw> | and other things arround it for the same sort of stuff |
12:32 | <annevk> | this would be okay for window.crypto I think |
12:32 | <jgraham> | ashaw: Here is as good a place as any I know, but I don't know how many of the relevant people hang out here |
12:32 | <annevk> | might not be anyone around to talk about it though |
12:33 | <ashaw> | I have implemented ECC crypto in javascript in order to try to make a start at an acceptable online voting system. |
12:33 | <ashaw> | however I have discovered a number of shortfalls that make this task, though possible, unpractical due to speed constraints. |
12:34 | <annevk> | you might be best of emailing to whatwg⊙wo |
12:34 | <annevk> | details here: http://www.whatwg.org/mailing-list |
12:34 | <annevk> | abarth can then reply whenever he's awake |
12:34 | <ashaw> | Ok, I'll email the mailing list. |
12:37 | <ashaw> | Basically, I need SHA, and a Bignum library over arrayBuffers and possibly support for loading a script into a web worker off a secure server so that data can be transfered only by a communication API |
12:37 | <ashaw> | Has any of this been brought up before? |
12:38 | <annevk> | Workers support a importScripts methods |
12:39 | <annevk> | method even |
12:40 | <ashaw> | is there any way that the main site can modify the web-workers context directly, and if so, can this be stopped. |
12:41 | <ashaw> | Also is there a way that window.crypto.random can be accessed from a web-worker |
12:41 | <zcorpan> | importScripts is same-origin-only though |
12:41 | <ashaw> | same-orogin-only is good |
12:41 | <zcorpan> | good :) |
12:42 | <zcorpan> | i thought "off a secure server" implied different-origin |
12:42 | <ashaw> | no-I ment an even stricter sense of same-origin |
12:43 | <ashaw> | i want a web worker that is locked up tight, and can-not be modified once started |
12:46 | annevk | isn't quite sure "One use case could be to replace everything in a document with new nodes:" is a use case zcorpan, but I'll allow it anyway |
12:47 | <annevk> | ashaw: I think only a Worker can modify a worker |
12:47 | <ashaw> | that same worker? or can one worker modify annother? |
12:48 | <annevk> | I'm going with "I don't think so" |
12:48 | <annevk> | you can only interact with a worker via postMessage() so I don't really see how |
12:49 | <ashaw> | Goooood. |
12:50 | <ashaw> | Now comes the question, as the cryptographically secure RNG has been put in window.crypto, there is no-way to access it from a web worker directly is there? |
12:50 | <ashaw> | Which is sad :( |
12:55 | <annevk> | well |
12:55 | <annevk> | it's on its own interface |
12:55 | <annevk> | I expect it to be exposed to workers as well |
12:55 | <annevk> | would make sense to me anyway |
12:55 | <annevk> | anyway, put that in your email |
12:56 | <annevk> | better to have it logged on list than here |
12:57 | <ashaw> | yeah |
12:58 | <ashaw> | I have been trying to figure our how to solve the problems mentioned here: http://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/ |
13:01 | <annevk> | ok emailed improving the DOM rev 2 to www-dom |
13:01 | <annevk> | hopefully this one is a little better |
13:04 | <jgraham> | annevk: Why does remove take a ContentNode? |
13:06 | <annevk> | i'm a copy and paste man jgraham |
13:06 | <annevk> | better get used to it |
13:42 | <annevk> | smaug____: so timeout should throw on setting if the synchronous flag is set |
13:42 | <annevk> | smaug____: and open() should throw if timeout is set to something other than zero? |
13:42 | <annevk> | smaug____: see http://dev.w3.org/2006/webapi/XMLHttpRequest-2 for when withCredentials currently is supposed to throw |
13:42 | <annevk> | I will make that change now so I don't forget |
13:45 | <smaug____> | looking |
13:45 | <smaug____> | and yes, that timout handling sounds good |
13:48 | <Ms2ger> | http://lists.w3.org/Archives/Public/www-style/2011Nov/0389.html |
13:49 | <Ms2ger> | Björn seems even more snarky than usual, lately |
13:51 | <annevk> | I always wonder how he gets enough satisfaction about just being right and not having much of an effect on changing things around. |
13:52 | <annevk> | Assuming he's right most of the time, for now. |
13:54 | <Ms2ger> | Hmm, I wonder if Mozilla hackers are going to be confused by ContentNode |
13:55 | <smaug____> | Ms2ger: I'm sure we'll add ChromeNode :) |
13:55 | <Ms2ger> | nsIChrome? :) |
13:55 | <smaug____> | nsIDOMChromeNode |
13:55 | <smaug____> | nah, that would be visible to content |
13:55 | <smaug____> | nsIDOMContentNode |
13:56 | <smaug____> | oh, you meant nsIContent vs nsINode |
13:56 | <Ms2ger> | Yeah |
13:56 | <annevk> | Ms2ger: it's not an actual interface type though |
13:56 | <annevk> | Ms2ger: it's just IDL syntax |
13:56 | <Ms2ger> | Mm |
13:56 | <smaug____> | I wonder how many different meanings "content" has :) |
13:56 | <annevk> | at least, that's how I see it |
13:57 | <annevk> | so can name it FairyNode if that works better for everyone |
13:57 | <annevk> | because it won't make an iota of a difference |
13:57 | <annevk> | not sure I used "iota" right |
13:57 | <smaug____> | why *Node? |
13:57 | <smaug____> | DOMString isn't any kind of "Node" |
13:58 | <annevk> | in this context it becomes a Text node |
13:58 | <annevk> | but sure |
13:58 | <annevk> | we can call the thing FairyDust |
13:58 | <annevk> | as I said, does not matter |
13:58 | <smaug____> | DOMConstructionUnit or some such might describe it better |
13:59 | <smaug____> | well, not quite like that, something shorter and simpler |
13:59 | <annevk> | have fun bikeshedding |
13:59 | annevk | continues working on XHR |
13:59 | <smaug____> | thanks |
14:08 | <hsivonen> | annevk: I'm changing sync mode not to support HTML parsing |
14:08 | <hsivonen> | annevk: in order to avoid proliferating the sync evilness |
14:09 | <asmodai> | omg |
14:09 | <asmodai> | Opera 12 has decent MathML rendering :| |
14:09 | <annevk> | I'd sort of prefer to keep HTML/XML in feature parity |
14:09 | <annevk> | but okay |
14:09 | <annevk> | I mean technically it's a new feature, but making the bar to use HTML higher is very anti-platform |
14:10 | <annevk> | sync is also very anti-platform, but still |
14:10 | <jgraham> | asmodai: Hmm? Same as previous Operas afaik |
14:13 | <asmodai> | jgraham: Really? because last time around when I check on 11 it was not looking so decent? |
14:13 | <asmodai> | Unless my memory is deteriorating faster than I think it does. |
14:15 | <hsivonen> | hmm. turning off HTML parsing in sync mode make charset handling differ between sync and async... |
14:18 | <hsivonen> | discussions about spec organization so that normative references always point to more mature specs makes me sad |
14:18 | <hsivonen> | s/makes/make/ |
14:22 | <annevk> | hmm |
14:22 | <annevk> | smaug left |
14:22 | <annevk> | http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-timeout-attribute |
14:22 | <annevk> | http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-open-method |
14:40 | <annevk> | heh http://infrequently.org/2011/11/vendor-prefixes-are-a-rousing-success/ |
14:41 | <annevk> | now if Google/Apple sort out deprecating features in WebKit |
14:41 | <annevk> | I could buy into that |
14:41 | <annevk> | (and deprecating in a way that leads to actual removal) |
14:41 | <annevk> | if not, well... |
14:53 | <AryehGregor> | heycam|away, JS doesn't throw at all for insufficient arguments, does it? It just sets them to undefined? You're right that it seems to use TypeError for everything under the sun, though. |
14:56 | <AryehGregor> | It seems like it would be more desirable to throw distinct exceptions for too few arguments and wrong type, which is what Gecko currently seems to do. |
14:57 | <AryehGregor> | But I guess if browsers are willing to go with it, shrug. |
15:27 | <annevk> | AryehGregor: Opera throws WRONG_ARGUMENT_ERR or some such |
15:27 | <AryehGregor> | Yes. |
15:27 | <AryehGregor> | For both. |
15:27 | <AryehGregor> | It's a clearer error name than TypeError. |
15:27 | <annevk> | AryehGregor: oh okay :) |
15:28 | <annevk> | I think nobody has taken a critical look yet at that part of Web IDL |
15:28 | <annevk> | apart from maybe Microsoft but they don't give feedback until it is shipped typically |
15:32 | <jgraham> | I like TypeError |
15:32 | <jgraham> | I think aligining with javascript native APIs is a win |
15:33 | <jgraham> | Also, I notice that Alex doesn't really talk about the user or vendor point of view of prefixes, only the author point of view. It is pretty easy to say that prefixes are awesome when you work on webkit and are sure that everyone will include a -webkit- prefix always |
15:39 | <tantek> | Hixie: re: time element text update, minor tweak: |
15:40 | <tantek> | s/The datetime attribute must be present. Its value must be/The datetime attribute, if present, must be |
15:40 | <tantek> | since we explicitly allow <time>2011</time> etc. (even prefer) |
15:40 | <tantek> | to reduce DRY violations |
15:41 | <tantek> | also, example still to be fixed: |
15:41 | <tantek> | s/"2007-10-20">19/"2007-10-07">7 |
15:43 | <tantek> | regarding time zone offsets, experience has shown that *dropping* the ":" between the hours/minutes on timezone offsets helps better distinguish them from appearing like times |
15:44 | <tantek> | e.g. 07:00-0800 is more obviously 7am in PST than |
15:44 | <tantek> | 07:00-08:00 which looks like an interval of 7am to 8am. |
15:44 | <zewt> | whoever started with sub-hour timezone offsets needs to be shot into the sun |
15:44 | <tantek> | this is a human authorability/readability/verfiability concern |
15:45 | <tantek> | zewt I believe there is even a country that has a half-hour DST change. |
15:45 | <zewt> | tantek: -0800 is also just a common notation that people are familiar with |
15:45 | <tantek> | dbaron would know |
15:45 | <tantek> | yeah |
15:45 | <zewt> | i've heard of at least one place with a 15-minute offset :| |
15:46 | <tantek> | I'm fine with parsing with the colon as error recovery, however we should make timezone offsets valid only *without* the ":" between HH MM. |
15:46 | <annevk> | yeah, around India there's some fun stuff |
15:47 | <annevk> | India in fact has the half an hour |
15:48 | <annevk> | Bangladesh might be the one with three quarters? |
15:48 | <tantek> | Hixie, regarding year-less date parsing: |
15:48 | <tantek> | http://www.whatwg.org/specs/web-apps/current-work/#parse-a-yearless-date-string |
15:48 | <annevk> | oh, Nepal is |
15:48 | <annevk> | in Kathmandu it's 21:35 now |
15:48 | <tantek> | please explicitly allow the leading double-hyphen |
15:48 | <tantek> | making it optional is fine |
15:48 | <tantek> | e.g. |
15:48 | <tantek> | --11-18 |
15:49 | <tantek> | as that's the ISO8601 syntax for yearless dates |
15:49 | <annevk> | Chatham Islands in New Zealand have a similar weird offset |
15:49 | <annevk> | there it's 05:35 |
15:50 | <zewt> | into the sun. |
15:50 | <annevk> | if we have offsets at all it doesn't really matter how arbitrary they are |
15:57 | <smaug____> | "What front-ender in 2011 doesn’t test on at least two browsers?" I'm pretty sure in case of pages for mobile devices, it happens very often. |
16:01 | <jgraham> | Indeed. And even when they do it is probably stock iOS + stock android |
16:02 | <annevk> | apple.com/html5/ anyone? |
16:11 | <TabAtkins_> | Hixie: Somewhat confusingly, the <time> section says that @datetime is required, and then all of the examples don't use @datetime. |
16:12 | <annevk> | http://www.msnbc.msn.com/id/45306416/ns/health-diet_and_nutrition/ o_O |
16:12 | <annevk> | pizza a vegetable |
16:12 | <annevk> | wtf is wrong with that country |
16:12 | <zewt> | TabAtkins: fyi earlier <tantek> s/The datetime attribute must be present. Its value must be/The datetime attribute, if present, must be |
16:12 | <annevk> | I thought the EU had issues |
16:20 | <TabAtkins_> | zewt: Yeah. |
16:20 | <TabAtkins_> | annevk: It's called lobbying! Our government is basically run by corporations. |
16:20 | <divya> | TabAtkins: its just a better name for corruption |
16:21 | <divya> | and bribery |
16:21 | <TabAtkins_> | divya: Pretty much, yes. |
16:21 | <divya> | ?slap US politicians |
16:22 | <annevk> | lobbying makes some amount of sense (e.g. as wycats does on behalf of some set of developers), but this goes way beyond that |
16:22 | <divya> | this scares me SO MUCH http://jilliancyork.com/wp-content/uploads/2011/11/mubarak-and-us-presidents1.gif |
16:22 | <miketaylr> | the new national anthem: http://www.youtube.com/watch?v=wusGIl3v044 |
16:23 | <divya> | especially how Hosni looks unchanged over 40 yearss |
16:23 | <divya> | hahaha miketaylr |
16:23 | <timeless> | annevk: we tried to make ketchup a vegetable :) |
16:23 | <timeless> | divya: at least you can see it publicly :) |
16:24 | <divya> | timeless: whats the advantage? just despair? |
16:24 | <timeless> | you can openly see who is being corrupted |
16:24 | <timeless> | since it's in the public |
16:24 | <timeless> | whereas corruption in Finland occurs behind closed doors |
16:24 | <timeless> | you know it happened, but not how/to whom |
16:25 | <divya> | timeless: but both sucks anyway, we all end up getting screwed |
16:25 | <divya> | not like this public display of corruption makes any difference to the lives of ordinary people |
16:25 | <divya> | also i do not think corporations have altered the culture of a nation anywhere else as much as they have in the US |
16:26 | <timeless> | that's a function of time |
16:26 | <timeless> | and the fact that most other places already have preexisting corruption fighting to retain dominance :) |
16:26 | <timeless> | (hello Italy, Greece, Spain) |
16:27 | <divya> | i dunno timeless in india at least there are so many companies vying for favors that it ends up favouring nobody. |
16:27 | <divya> | which is great. except here in the US that is not the case. |
16:28 | <divya> | anywayysss sorry for ot convo :P |
16:28 | <tantek> | TabAtkins - see log for a bunch of <time> feedback/iteration |
16:29 | <timeless> | divya: what i've seen of india is that it has dangerous corruption at local levels |
16:29 | <timeless> | (see some illegal mining or something) |
16:29 | <timeless> | in the US, typically you can't get away w/ just corrupting local officials for that purpose |
16:29 | <divya> | timeless: totally, but it does not impact the whole nation like it does here. |
16:30 | <timeless> | it's all about Checks and Balances |
16:30 | <timeless> | our system requires bigger Checks :) |
16:30 | <divya> | hahahaha |
16:37 | <jgraham> | (in the particular case of school food, the US is hardly the only place with significant issues. There was an expose a few years back in Britain that showed schools spending 37p per pupil on food and not including anything that could remotely be descibed as healthy. I'm not sure the situation is much better in Sweden) |
16:38 | <Philip`> | (Fortunately we had Jamie Oliver to solve the nation's woes) |
16:41 | <jgraham> | (unfortunately he didn't. He did raise awareness of it as a problem though) |
16:44 | <tantek> | TabAtkins - also you may be interested in reviewing (and contributing to) the rationale for the data element: http://www.w3.org/wiki/User:Tantekelik/data_element |
16:44 | <tantek> | (per the emails you've been sending to public-html) |
17:31 | <JonathanNeal> | All right, lay it on me, if you must. Why are people hating on client-side LESS? |
17:34 | <jarek> | JonathanNeal: because it's over-complicated and there are no tools to debug it? |
17:34 | <JonathanNeal> | well, i appreciate hearing an answer, and i can understand the absense of debugging tools for the less itself. |
17:50 | <TabAtkins_> | tantek: Okay, I'll review when I get to the office and have the log to look at. |
17:52 | <tantek> | Thanks TabAtkins. Also feel free to join the data_element change proposal as a co-contributor assuming that's the approach you want to take. |
17:54 | <TabAtkins_> | Yeah, I'm about to edit the wiki page a bit. |
18:04 | <AryehGregor> | ES5 seems to leave typeof foo undefined if foo is a host object that doesn't implement [[Call]]. Are there real-world examples of such things that don't have a typeof "object"? |
18:05 | <AryehGregor> | Also: why is legacycaller legacy? |
18:05 | <AryehGregor> | Do we not want things implementing interfaces to be callable? |
18:09 | <annevk> | AryehGregor: correct |
18:09 | <AryehGregor> | Why not, out of curiosity? |
18:10 | <annevk> | getter is sufficient |
18:11 | <annevk> | caller is a legacy document.all thing |
18:11 | <annevk> | should rename constant to legacyconstant as well imo |
18:12 | <Hixie> | really? |
18:13 | <annevk> | whenever you want to use numeric constants, you want to use string enumeration instead |
18:14 | <AryehGregor> | Yeah, that would actually be a really good change. |
18:14 | <AryehGregor> | Hopefully it will scare spec writers away from using numeric constants in new interfaces. |
18:15 | <TabAtkins_> | Oh man, one can hope. |
18:16 | <annevk> | that doesn't mean btw that I think that whereever we have constants now we should introduce the equivalent with strings |
18:16 | <annevk> | just that we shouldn't propagate it further |
18:16 | <TabAtkins_> | Yes, many existing uses aren't worth bothering over. |
18:23 | <tantek> | Hixie, btw once that example fix is done, you can strike this paragraph: (The end date is encoded as one day after the last date of the event because in the iCalendar format, end dates are exclusive, not inclusive.) |
18:23 | <tantek> | since that's been fixed for a while in hCalendar :) http://microformats.org/wiki/dtend-issue |
18:29 | <AryehGregor> | WebIDL does not appear to define the [[Class]] of interface prototype objects. |
18:29 | <AryehGregor> | Is there something that implies it's implicitly "Object"? |
18:30 | <AryehGregor> | Oh: "If a value for the internal property [[Class]] is not given for a particular object, its value is implementation specific." |
18:30 | <AryehGregor> | Phooey. |
18:33 | <bga_> | hm |
18:55 | <Hixie> | tantek: you filed a bug about that right? at tpac? |
18:58 | <tantek> | yeah - the hCalendar example is a separate issue on the wiki page |
18:58 | <tantek> | I think you filed a bug about it at TPAC :) |
19:00 | <Hixie> | ok. so long as the issue is covered by a bug, i'll deal with it in a separate patch |
19:01 | <Hixie> | this patch is long enoug as it is |
19:02 | <Hixie> | annevk: i think the algorithm is just gonna be "try each of these algorithms in turn", because the alternative is either to make a really complicated hybrid algorithm for the whole thing (what UAs that care about performance will want to do), or a bunch of heuristics that will be a maintenance nightmare and that nobody will ever actually implement as written anyway |
19:06 | <AryehGregor> | Hixie, you use numeric constants in lots of new interfaces. You should really use strings instead. They're much nicer for authors. |
19:06 | <Hixie> | all those interfaces predate the change in prevailing opinion on the matter |
19:06 | <AryehGregor> | Are all of them implemented yet? |
19:06 | <Hixie> | file bugs if there are any not |
19:06 | <Hixie> | i'm happy to change htem |
19:09 | <AryehGregor> | http://www.w3.org/Bugs/Public/show_bug.cgi?id=14879 |
19:13 | <Hixie> | commented |
19:19 | <Hixie> | tantek: do you have a reference for the double hyphen thing for yearless dates? |
19:19 | <Hixie> | the wikipedia page says -- is used as an interval delimiter |
19:21 | <Hixie> | vcard seems to use wacked syntax without delimiters |
19:21 | <tantek> | really? that's odd. vCard4 certainly has it as an example for it http://tools.ietf.org/html/rfc6350#section-4.3 |
19:21 | <tantek> | yeah they leave out the delimiters between Y M D |
19:22 | <tantek> | (oddly) |
19:22 | <Hixie> | removing delimiters is a non-starter for <time> since it would lead to all kinds of ambiguities |
19:22 | <tantek> | well of course |
19:22 | <tantek> | it's worse than that |
19:22 | <Hixie> | so for now i'll punt on the -- thing |
19:22 | <tantek> | it hurts authorability |
19:22 | <Hixie> | for sure |
19:22 | <tantek> | hence the version I proposed with delimiters |
19:23 | <tantek> | --11-18 |
19:23 | <tantek> | instead of |
19:23 | <tantek> | --1118 |
19:23 | <tantek> | both are valid ISO8601 |
19:23 | <Hixie> | annevk: if you're still around, take a look and let me know if the rather naiive algorithm i put in is acceptable to you |
19:24 | <tantek> | which is why included --MM-DD in particular |
19:24 | <tantek> | in order to provide a microsyntax for month-day that was ISO8601 compatible |
19:25 | <Hixie> | ok screw it. i'm gonna find out if google actually has a copy of this damn standard and just read it. |
19:26 | <Hixie> | tired of reading second-hand accounts of it on the web :-) |
19:26 | <tantek> | Hixie, out of curiosity, why did you include the year-week microsyntax? (not that I oppose it, I just didn't find enough use-cases to really justify it_ |
19:26 | <tantek> | ) |
19:26 | <tantek> | I mean if you're going to include year-week, you might as well include year-ordinaldays |
19:26 | <tantek> | e.g. |
19:26 | <tantek> | 2011-322 |
19:26 | <Hixie> | you listed parity with <input type=foo> as a design policy, so i went with it |
19:27 | <Hixie> | (week dates are quite common in european business) |
19:27 | <tantek> | ah ok - wasn't sure if you considered that a strong enough reason - ok |
19:27 | <tantek> | interesting |
19:27 | <Hixie> | well i figured why not, it costs us virtually nothing at this point |
19:27 | <Hixie> | i mean, what's one more when there's half a dozen formats already |
19:27 | <tantek> | in that case, I'd say add ordinal dates also |
19:27 | <tantek> | as that would complete the wikipedia infobox examples |
19:28 | <tantek> | on the right here: http://en.wikipedia.org/wiki/ISO_8601 |
19:28 | <Hixie> | ordinal dates are too close to year-month imho. also, no <input type> equivalent, and not used as much as weeks as far as i'm aware. |
19:28 | <tantek> | http://en.wikipedia.org/wiki/ISO_8601#Ordinal_dates |
19:28 | <tantek> | and besides, everyone knows ordinal dates are the future, right TabAtkins? |
19:29 | <tantek> | there's no input type equivalent because ordinal dates are just another form of dates |
19:30 | <Hixie> | true. so there's not really a use case. |
19:30 | <Hixie> | and realistically, your bims ain't gonna take over any time soon :-P |
19:31 | <tantek> | my experience has been that bims have been useful for storage but not in publishing |
19:32 | <tantek> | the use cases for ordinals over normal dates are mostly just date-math related - easier to add / subtract # of days |
19:32 | <tantek> | or even weeks |
19:32 | <Hixie> | http://www.exit109.com/~ghealton/y2k/yrexamples.html#_International.ISO8601 is the first page i've found that supports your --month-day theory, but according to that page, -nn-nn is confusingly a _month_, not a yearless day... |
19:33 | <Hixie> | anyway, i'll add support for -- |
19:34 | <tantek> | it might make yearless dates less confusing for europeans |
19:34 | <tantek> | if a European sees 11-10 they erroneously interpret it as 11th of October |
19:34 | <Hixie> | as a european, i'd interpret it as november tenth |
19:35 | <tantek> | whereas if they saw --11-10 they may have a chance at noticing something is different than their locale-specific date-format and then see it correctly. |
19:35 | <Hixie> | yeah |
19:35 | <Hixie> | anyway, optional leading -- is now conforming and parsed |
19:35 | <Philip`> | If I saw --11-10 I wouldn't have a clue what it was and would have no idea where to look to find out |
19:35 | <Hixie> | ok unless anyone has anything else that needs changing, i'm gonna push it |
19:35 | <tantek> | again, this is about tweaking the syntax to increase data quality |
19:35 | <tantek> | Hixie - there were some complaints about using schema.org examples |
19:35 | <Hixie> | Philip`: what about if you saw "Birthday: <time>--11-10</time>" ? |
19:35 | <tantek> | I think it was on the bug on data |
19:36 | <Hixie> | tantek: if there's an open bug on something, i'll deal with that separately |
19:36 | <tantek> | Philip - as far as data quality is concerned, "wouldn't have a clue what it was" is better than silently misinterpreting it as a different value. |
19:36 | <Hixie> | none of the new examples are schema.org-related |
19:37 | <tantek> | Hixie, this one: itemtype="http://schema.org/BlogPosting" |
19:37 | <tantek> | does anyone even use BlogPosting? |
19:37 | <tantek> | it's an unnecessary divergence from the Atom / hAtom vocabulary |
19:37 | <Philip`> | Hixie: I'm pretty sure I'd still have no idea |
19:37 | <tantek> | which btw, is in every copy of wordpress now |
19:37 | <tantek> | (hAtom that is) |
19:38 | <Philip`> | (I'd expect everyone to write birthdays as "10 Nov" or "10 November" anyway, not "11-10") |
19:39 | <tantek> | let me see if I get this right in microdata: |
19:39 | <tantek> | <article itemscope itemtype="http://microformats.org/profile/hatom"> |
19:39 | <tantek> | <h1 itemprop="entry-title">Small tasks</h1> |
19:39 | <tantek> | <footer>Published <time itemprop="published" datetime="2009-08-30">yesterday</time>.</footer> |
19:39 | <tantek> | <p itemprop="entry-content">I put a bike bell on his bike.</p> |
19:39 | <tantek> | </article> |
19:40 | <Hixie> | tantek: happy to add hAtom examples too, spec is trying to remain neutral on the question of vocabs. file bugs or send mails with suggested examples. |
19:40 | <tantek> | ah ok |
19:40 | <Hixie> | tantek: assuming there's a spec somewhere that defines the microdata vocabulary "http://microformats.org/profile/hatom" and all its conformance rules, that looks right |
19:41 | <Hixie> | ok. i'm pushing the first draft of this new <time> element. |
19:41 | <tantek> | Hixie - the goal is to have the URL *be* the definition (or summary reference for) the spec |
19:42 | <tantek> | is there a distinction between name of vocabulary and root object in microdata? |
19:42 | <tantek> | or are they presume to be the same? |
19:42 | <Hixie> | tantek: that seems like a fine goal, though currently not an achieved one. |
19:42 | <Hixie> | "root object"? |
19:42 | <Hixie> | (not achieved for that to be a microdata vocabulary, i mean. looks like it defines a microformats one.) |
19:43 | <tantek> | right, the profiles need to be updated to be syntax independent |
19:43 | <tantek> | part of the goal of microformats-2, to separate vocabulary development so that they can be used independently of the microformats-2 syntax (and vice versa) |
19:44 | <tantek> | e.g. in microformats-2 it would look like this (URL not exist yet) |
19:44 | <tantek> | <article itemscope itemtype="http://microformats.org/profile/h-entry"> |
19:44 | <tantek> | <h1 itemprop="entry-title">Small tasks</h1> |
19:44 | <tantek> | <footer>Published <time itemprop="published" datetime="2009-08-30">yesterday</time>.</footer> |
19:44 | <tantek> | <p itemprop="entry-content">I put a bike bell on his bike.</p> |
19:44 | <tantek> | </article> |
19:45 | <Hixie> | tantek: for a vocabulary to be used for microdata, it needs to define conformance to the same level of detail as the vcard microdata vocabulary in the html spec |
19:45 | <Hixie> | tantek: which includes some microdata-specific concepts |
19:45 | <Hixie> | http://www.whatwg.org/specs/web-apps/current-work/#vcard |
19:46 | <tantek> | like "This vocabulary does not support global identifiers for items." ? |
19:47 | <Hixie> | pretty much every sentence in that section uses microdata-specific terminology |
19:47 | <Hixie> | ("item" is a special concept in microdata) |
19:47 | <tantek> | item/object same difference |
19:47 | <Hixie> | so long as somewhere you say that |
19:48 | <Hixie> | e.g. "when this vocabulary is used with microdata, conformance requirements corresponding to objects apply to items" or something |
19:48 | <tantek> | that's reasonable |
19:48 | <tantek> | btw if you're flattening vcard microdata in general (as you did with sex / gender-identity), you can drop all the "(inside n)" |
19:48 | <tantek> | ok |
19:49 | <tantek> | "n" is dropped in microformats-2 version of h-card and all its subproperties are flattened to just be properties of the "item" as you would say in microdata |
19:50 | <Hixie> | yeah |
19:50 | <Hixie> | i thought about changing that |
19:50 | <Hixie> | but i figured it'd be better to leave it so people could see how to spec that kind of structure |
19:50 | <Hixie> | since nobody uses this vocabulary anyway... :-) |
19:51 | <Hixie> | (if you want to define the "http://microformats.org/profile/hcard" vocabulary such that people use it, i don't mind changing the URL in the HTML spec and adding a note saying that it's just an example vocab) |
19:51 | <tantek> | you could leave "org" as is if you want to leave the documentation of how to do that |
19:51 | <Hixie> | org has a different structure |
19:51 | <Hixie> | so they're both useful in their own way |
19:52 | <tantek> | aren't they just both list of subproperties? |
19:52 | <Hixie> | one is a fixed set, the other is more open-ended, iirc |
19:52 | <tantek> | they should both just be fixed sets |
19:53 | <Hixie> | org takes zero-or-more organization-unit properties |
19:53 | <Hixie> | ORG:name;unit;unit;unit |
19:53 | <Hixie> | or something |
19:53 | <tantek> | hmm, I thought commas delimited multivalues and ; delimited the subproperties |
19:54 | <tantek> | but I'd have to double-check vcard |
19:54 | <Hixie> | i dunno |
19:54 | <Hixie> | i'm just doing it from memory |
19:54 | <tantek> | would it be helpful for http://microformats.org/profile/hcard to provide the microdata-specific concepts you mention? |
19:55 | <Hixie> | hcard or hatom? |
19:55 | <tantek> | potentially both/all |
19:55 | <Hixie> | for hatom, sure, if it's to be used with microdata |
19:55 | <Hixie> | for hcard, also sure, if you want to take over speccing that vocab |
19:56 | <Hixie> | then i can change the html spec's vcard vocab to more obviously an example |
19:56 | <Hixie> | if you want to do that, send mail |
19:56 | <tantek> | why would you need to change the html spec's vocab? |
19:56 | <Hixie> | well we don't want two specs defining the same thing, especially if differently from each other :-) |
19:56 | <Hixie> | the vocabs in html are really only there to show how to define a vocab |
19:56 | <tantek> | I guess I'm not understanding - I was wondering if updating http://microformats.org/profile/hcard would help the example provided in the HTML spec. |
19:57 | <Hixie> | the urls are opaque per the spec |
19:57 | <Hixie> | you're not supposed to resolve them or anything |
19:58 | <tantek> | ah ok, so the example in the spec shows how to re-use a microformats profile/definition vocabulary to define a microdata vocabulary |
19:58 | <Hixie> | the url is the microformats url only because you asked it to be |
19:58 | <Hixie> | originally it was http://n.whatwg.org/something iirc |
19:59 | <tantek> | made sense to show basing on existing work |
19:59 | <Hixie> | yup |
19:59 | <tantek> | ok, I'll leave the current microformats profiles as-is then |
19:59 | <tantek> | because that better illustrates that process (of defining a new vocabulary based on an existing one) |
20:00 | <tantek> | the microformats-2 profile URLs will be different and contain microdata-specific language as needed |
20:00 | <tantek> | likely something like this (directly using their root class name / item) |
20:00 | <tantek> | http://microformats.org/profile/h-card |
20:00 | <Hixie> | 404 |
20:01 | <Hixie> | oh, you mean in the future |
20:01 | <Hixie> | got it |
20:01 | <Hixie> | sounds good |
20:15 | <annevk> | Hixie: you now have |
20:15 | <annevk> | + <li><p>If <span title="parse a month string">parsing a month |
20:15 | <annevk> | + string</span> from the element's <span>datetime value</span>, if |
20:15 | <annevk> | + The machine-readable equivalent is the <span |
20:16 | <annevk> | which seems wrong |
20:17 | <annevk> | otherwise it seems fine to me |
20:18 | <Hixie> | oops |
20:20 | <Hixie> | (i generated that section with some dubious regexps) |
20:20 | <Hixie> | (apparently got one wrong!) |
20:26 | <Hixie> | tantek: ok, i posted on the public-html thread proposing the <time> diff as the patch for your CP |
20:26 | <tantek> | Hixie, sounds good, I'll rereview. |
20:26 | <tantek> | so we're punting on a separate duration attribute then? |
20:27 | <Hixie> | *shrug*. imdb is already using datetime= for it. |
20:27 | <Hixie> | i don't have a strong view on the matter |
20:28 | <Hixie> | having mutually exclusive attributes has been kind of a pain in other contexts, fwiw (e.g. <meta) |
20:28 | <Hixie> | gotta go, lunch |
20:29 | <annevk> | hopefully the schema.org guys let not leak more ISO badness in there |
20:29 | <Hixie> | we can but hope |
20:34 | <tantek> | shall we pretend the "opening hours" problem isn't there? |
20:35 | <Hixie> | are they using <time> for that too? |
20:35 | <tantek> | yeah :( |
20:35 | <Hixie> | -_- |
20:35 | <tantek> | with a completely made-up syntax |
20:35 | Hixie | looks |
20:35 | <tantek> | basically, it looks like approach was, is it related to time? great, make something up and use the time element. |
20:36 | <Hixie> | well on the plus side it's distinguishable |
20:36 | <Hixie> | i say we ignore it for now, see how much uptake it gets |
20:36 | <Hixie> | and if it gets some, why not! |
20:36 | <tantek> | that's my preference for now too |
20:36 | <tantek> | and at least document alternatives to it |
20:36 | <tantek> | seems like opening hours should use multiple time elements |
20:37 | <tantek> | just as events do |
20:37 | <tantek> | etc. |
20:37 | <Hixie> | well we don't have any weekday things, and many elements is pretty verbose |
20:37 | <Hixie> | i don't see anything wrong with <data itemprop="openingHours" value="Tu,Th 16:00-20:00">...</data> though |
20:37 | <Hixie> | maybe i should add that example to the spec |
20:37 | <tantek> | lol - yeah |
20:38 | <tantek> | data is a good place to experiment with machine data extensions |
20:38 | <Hixie> | indeed |
20:38 | <tantek> | and then as you say we can better see if anything gets any uptake |
20:38 | <tantek> | without polluting existing elements |
20:39 | <TabAtkins> | tantek: Can you go respond to Sam that the current patch is fine? |
20:39 | tantek | will handle emails as they are queued. |
20:39 | <TabAtkins> | d'oh |
20:39 | <tantek> | I'll skip breakfast for IRC but not email :P |
20:40 | <TabAtkins> | What timezone are you in now? |
20:40 | <tantek> | -0800 ;) |
20:40 | <Hixie> | speaking of skipping breakfast, i need to go in to get mine. |
20:40 | <Hixie> | bbiab. |
20:40 | <TabAtkins> | tantek: Then it's not breakfast time, weirdo. |
20:40 | <TabAtkins> | You have already skipped it. |
20:40 | <tantek> | what Hixie said. bbiab. |
20:54 | <tantek> | Hixie, when you get back, finally reloaded the time element definition, just noticed the timezone examples still use the ':' syntax |
20:54 | <tantek> | <time>+00:00</time> |
20:54 | <tantek> | <time>-08:00</time> |
20:54 | <tantek> | without : is preferabl |
20:54 | <tantek> | <time>+0000</time> |
20:54 | <tantek> | <time>-0800</time> |
20:54 | <Hixie> | i'm running out the door as we speak but will look when i got back on |
20:54 | <Hixie> | afk |
20:55 | <tantek> | requires updating http://www.whatwg.org/specs/web-apps/current-work/#parse-a-time-zone-offset-component obv to allow 4 digits without the colon after the +/- is seen. |
20:55 | <tantek> | ok |
21:12 | <jgraham> | AryehGregor: +1 of FooPrototype if it is web compatible (which I assumed it was not but if IE and Opera both do it...) |
21:34 | <smaug____> | annevk: FYI, I'm adding telemetry probes to Gecko to check how often sync XHR is used. |
21:49 | <smaug____> | ojan: I was wondering about you performance concerns about DOM improvements since they don't apply to Gecko, but good that you corrected yourself :) |
21:49 | <ojan> | smaug____: yeah...it had been a while since i had last looked at the relevant webkit code |
21:49 | <smaug____> | the possible performance problem comes from Node vs DOMString as a parameter |
21:49 | <ojan> | smaug____: yea, but that's worth it IMO :) |
21:50 | <ojan> | smaug____: out of curiosity...what does gecko do to avoid appending a parent to it's child? do you walk up the ancestor chain? |
21:50 | <smaug____> | yeah, in general, I like the API |
21:51 | <ojan> | smaug____: webkit does...but having O(n) operations in append/etc sucks |
21:51 | <smaug____> | gecko does the same |
21:51 | <ojan> | smaug____: i'm wondering if there are clever ways we can optimize it out |
21:51 | <smaug____> | and yes, it suck |
21:51 | <ojan> | smaug____: rniwa had an idea that we could check if the new child had any children as a fast way out of a common case |
21:52 | <ojan> | i'm on the fence as to whether that's a good optimization or not though |
21:52 | <smaug____> | well, if one has extra memory to consume, you could store the "level" of DOM node in the nodes |
21:52 | <ojan> | smaug____: yeah...thought of that...memory aside, it means that when you move nodes you have to update the whole subtree |
21:52 | <smaug____> | but in gecko we don't want to increase the size of nodes |
21:53 | <smaug____> | though, I would need to check (or ask bz) how close we're size of cache lines |
21:53 | <TabAtkins> | Bloom filters solve everything. |
21:53 | <ojan> | i doubt we'd want to add to the size of node either |
21:53 | <smaug____> | ojan: well, for certain things you do need to update the whole subtree |
21:53 | <ojan> | TabAtkins: how would you use bloom filters here? |
21:53 | <smaug____> | like, whether the subtree is "in-document" |
21:54 | <ojan> | smaug____: that's true |
21:55 | <rniwa> | smaug____, ojan: we can "color" each tree with a unique value |
21:55 | <TabAtkins> | ojan: Fast-path for if the parent is in the subtree of its child. |
21:55 | <rniwa> | it won't solve the case where you're moving the node within the tree though... |
21:55 | <TabAtkins> | Or, rather, if the parent is in the ancestor chain of its child. |
21:56 | <rniwa> | smaug____, ojan: you could imagine that we can omit those O(n) checks if two nodes belong to a different fragment or document |
21:56 | <TabAtkins> | Or, arg, when doing B.appendChild(A), telling quickly if A is in the ancestor chain of B. |
21:56 | <TabAtkins> | And following up with an ancestor walk on positives. |
21:56 | <smaug____> | rniwa: well, you need to add some flags for colors, and that uses memory |
21:57 | <rniwa> | smaug____: I suppose. |
21:57 | <rniwa> | smaug____: but we already have a pointer for document fragment / document, right? |
21:57 | <TabAtkins> | Adding the filter would be additional memory, though. |
21:57 | <rniwa> | TabAtkins: how would you efficiently implement that filter? |
21:58 | <smaug____> | there is a pointer to parent, and to ownerdocument (not directly) |
21:58 | <TabAtkins> | rniwa: it's essentially identical to the descendant-combinator fast path we use now. |
21:58 | <TabAtkins> | And, hm, if we already have that, perhaps we can reuse it. |
21:58 | <rniwa> | TabAtkins: what's "descendant-combinator fast path"? |
21:59 | <TabAtkins> | rniwa: It's what I just described. ^_^ Every element has a bloom filter of its ancestors, so you can more quickly tell if a given element is in the ancestor chain. |
21:59 | <rniwa> | TabAtkins: WebKit implements this? |
22:00 | <TabAtkins> | rniwa: Yeah. |
22:00 | <rniwa> | TabAtkins: that's a big news to me |
22:00 | <rniwa> | TabAtkins: where is this implemented? |
22:00 | <Philip`> | TabAtkins: Doesn't that mean you still have an O(n) cost to update all the filters when reparenting a subtree? |
22:01 | <TabAtkins> | rniwa: http://peter.sh/2011/02/unspoofable-infobars-fast-descendant-selectors-and-the-web-inspector-api/ |
22:01 | <ojan> | TabAtkins: that fast path only applies during parsing i believe |
22:01 | <TabAtkins> | Philip`: Probably, yeah. |
22:01 | <ojan> | TabAtkins: we don't keep it around |
22:02 | <TabAtkins> | ojan: Ah, kk. |
22:02 | <ojan> | TabAtkins: we have a single bloom filter that we update as we add/remove elements during parsing, afaik |
22:02 | <ojan> | TabAtkins: ignoring memory, having a bloom filter per node has the problem of needing to update the entire subtree when you move nodes around |
22:03 | <rniwa> | TabAtkins: I don't think this is applicable for DOM operations |
22:03 | <ojan> | rniwa: yeah...we could check that the documents are the same...but i'm not sure how much that buys us for the common cases... |
22:03 | <rniwa> | TabAtkins: it's about selectors |
22:03 | <TabAtkins> | True that. |
22:04 | <rniwa> | ojan: right, for that reason (slow update), I don't think we can bloom filter for each node |
22:04 | <ojan> | rniwa: welll, it could serve the same purpose for DOM operations i think |
22:04 | <smaug____> | ah, antti implemented boom filters |
22:04 | <rniwa> | also, it'll consume SO MUCH memory |
22:04 | <jgraham> | I would have thought that the memory cost of storing the filters was reason enough not to use them |
22:04 | <ojan> | it is |
22:04 | <ojan> | bloom filters are not happening |
22:04 | <rniwa> | jgraham: yes |
22:05 | <ojan> | webkit's use of them is very limited |
22:05 | TabAtkins | wants to use bloom filters for everything. |
22:05 | <rniwa> | we're already getting complaints about how big Node object is |
22:05 | <rniwa> | so there's no way we can store bloom filter for each node |
22:05 | <rniwa> | on the other hand, in common case |
22:05 | <rniwa> | you end up adding a bunch of nodes to the same parent |
22:05 | <smaug____> | yeah, same with Gecko. It is hard to add new stuff to Node |
22:06 | <rniwa> | so maybe we can optimize that case |
22:06 | <jgraham> | Same hre, I think |
22:06 | <jgraham> | *here |
22:06 | <ojan> | rniwa: that's *a* common case |
22:06 | <smaug____> | although, traditionally Gecko's Node has been more light weight than webkit's |
22:06 | <ojan> | rniwa: i'm not sure it's the only one though |
22:06 | <smaug____> | but we've been adding new stuff to Node |
22:06 | <rniwa> | ojan: yeah, I think we need to cherry-pick those common cases and optimize for them |
22:06 | <rniwa> | ojan: I don't think we can solve this problem in general |
22:07 | <ojan> | rniwa: yeah...but if you get your common cases wrong, then you end up making things slower :) |
22:08 | <ojan> | rniwa: the hard part there if finding a representative subset of what real world dom usage is like == very hard |
22:08 | <rniwa> | ojan: don't think so. adding 4-5, or even 10, constant checks is much better than running O(n) algorithm |
22:09 | <ojan> | rniwa: not if you have to do the O(n) algorithm as well |
22:09 | <rniwa> | ojan: right, so we should add checks to determine cases where O(n) algorithm is not nded |
22:09 | <rniwa> | needed* |
22:09 | <rniwa> | of course, it'll be pointless if the algorithm to determine that itself is O(n) |
22:10 | <rniwa> | but I'm all for adding constant checks to avoid running O(n) algorithm |
22:11 | <jgraham> | The point is that unless the cases are common enough you have to do the checks and run the algorithm anyway. But it seems like there should be some common cases here |
22:11 | <rniwa> | jgraham: right. |
22:11 | <rniwa> | jgraham: I think in practice, we can measure the performance on gmail, facebook, etc... |
22:11 | <rniwa> | because they tend to do a lot of DOM operations |
22:12 | <ojan> | don't get me wrong...i support doing this...it will just need to be backed up buy good data on the effects on a number of top sites |
22:12 | <jgraham> | Right, one can certianly imagine seeing how often some easy cases are hit |
22:12 | <rniwa> | jgraham: yeah |
22:12 | <rniwa> | jgraham: we could add some logging mechanism and run it for one week while using gmail, facebook, etc... |
22:13 | <rniwa> | and see how common each case is |
22:13 | <Philip`> | Won't the common cases be that the DOM trees are very shallow, so the O(n) cost is negligible? |
22:13 | <rniwa> | Philip`: the problem is that we normally go up |
22:13 | <rniwa> | Philip`: i.e. parent -> parent's document |
22:14 | <rniwa> | Philip`: as supposed to looking through the inserted subtree |
22:14 | <Philip`> | Usually the documents would be very shallow too, I'd guess |
22:14 | <rniwa> | Philip`: and in practice, the inserted subtree tends to be shallow |
22:14 | <rniwa> | Philip`: don't think so |
22:14 | <jgraham> | Well it depends what you mean |
22:14 | <rniwa> | Philip`: I think we allow it to be at most 512 nodes deep |
22:15 | <jgraham> | Right, hundreds of nodes is atypical |
22:15 | <rniwa> | that's A LOT of nodes to check |
22:15 | <jgraham> | But a few tens of nodes might be common |
22:15 | <Philip`> | "at most" doesn't sound like the common case |
22:15 | <rniwa> | also the problem is cache locallity |
22:15 | <rniwa> | if we go up in the tree, then we'll be pulling those objects into registry in order to walk through the tree |
22:16 | <rniwa> | and that might reduce the cache locality |
22:16 | <smaug____> | TabAtkins: just curious, how does the webkit patch handle the false positive cases? |
22:16 | <smaug____> | or does it not need to |
22:16 | <rniwa> | in modern processors, this has a significant performance impact |
22:16 | <smaug____> | or does it just not care |
22:16 | <rniwa> | in fact... if one of elements up in the hierarchy, e.g. document ends up having a really big vtable |
22:16 | <rniwa> | you may end up invalidating a lot of cache |
22:17 | <rniwa> | though don't think webkit currently calls any virtual functions in appendChild, insertBefore, etc... |
22:17 | <rniwa> | virtual functions are evil LOL |
22:17 | <WeirdAl> | not as evil as eval |
22:18 | <rniwa> | WeirdAl: yeah, they're only 1 edit-distance away from each other |
22:18 | <smaug____> | virtual methods are indeed bad, really bad |
22:18 | Philip` | wonders if the parent/child pointers could be stored separately from the actual node data, so you can fit more of them into a cache line |
22:18 | <Philip`> | (if that's the problem) |
22:18 | <rniwa> | Philip`: I had that idea as well |
22:18 | <rniwa> | Philip`: but then looking through this table will be an issue |
22:18 | <ojan> | smaug____: the bloom filter is just used as a fast rejection |
22:18 | <smaug____> | ah |
22:18 | <rniwa> | Philip`: and in practice, you tend to access lots of data in one node object |
22:19 | <rniwa> | so not sure if that really improves the performance much |
22:19 | <rniwa> | it'll be really good to collect stats as ojan suggested |
22:20 | <rniwa> | some time in near future |
22:20 | smaug____ | is about to collect data about innerHTML usage |
22:20 | <ojan> | rniwa: you could just create a locally intrumented webkit and load a few top sites |
22:20 | <rniwa> | I might just do that myself :P |
22:20 | <rniwa> | ojan: yeah |
22:20 | <ojan> | smaug____: to what end? |
22:20 | <rniwa> | ojan: that's what I'm thinking |
22:20 | <smaug____> | ojan: basically to check what kind of data is set to innerHTML |
22:20 | <rniwa> | smaug____: yeah, that's also good thing to gather stats for |
22:21 | <smaug____> | whether it is short strings or markup or what |
22:21 | <rniwa> | smaug____: I think developers know that innerHTML is faster than inserting indivisual node |
22:21 | <smaug____> | (using telemetry) |
22:21 | <rniwa> | smaug____: so a lot of them use innerHTML instead of DOM methods |
22:21 | <rniwa> | smaug____: length? |
22:21 | <rniwa> | smaug____: or actual markup? |
22:21 | <smaug____> | well, in the old days DOM used to be a lot slower in all the browsers |
22:22 | <rniwa> | I'd be interested in knowing how many nodes are added per innerHTML |
22:22 | <rniwa> | and if people are calling innerHTML in consecutive manner without triggering layout |
22:22 | <rniwa> | e.g. |
22:22 | <rniwa> | for (...) innerHTML += ... |
22:22 | <smaug____> | rniwa: probably length, and whether short strings contain markup |
22:22 | <rniwa> | if consecutive concat to innerHTML is common |
22:22 | <rniwa> | we can probably lazily evaluate innerHTML |
22:23 | <rniwa> | though authors may cache things themselves if they are using innerHTML for speed |
22:23 | <smaug____> | that is quite hard |
22:23 | <rniwa> | may already* |
22:23 | <smaug____> | especially if you have mutation event listeners |
22:23 | <rniwa> | smaug____: yeah, on my second thought, lazily evaluating them might be tricky |
22:23 | <rniwa> | yeah :( |
22:23 | rniwa | hates mutation events |
22:24 | smaug____ | is still on progress to get MutationObserver done for Gecko |
22:24 | <rniwa> | smaug____: or if the inserted node pulled resources |
22:24 | <rniwa> | smaug____: or worse yet, script elements... |
22:24 | <smaug____> | (if I could focus only doing that...) |
22:25 | <annevk> | ojan: btw, you can implement it as a different method on Document and Element/DocumentFragment |
22:25 | <rniwa> | anyways, I'm planning to spend my Q1 improving webkit's dom code |
22:25 | <annevk> | ojan: we could even define some methods specially as such |
22:25 | rniwa | wants fast/slim DOM |
22:26 | <rniwa> | not slow/fat DOM |
22:26 | smaug____ | wants DOM implemented in JS :) |
22:27 | <rniwa> | smaug____: doesn't IE do that? |
22:27 | <Philip`> | Implementing DOM in JS and worrying about cache locality seem kind of completely opposing viewpoints :-) |
22:27 | <ojan> | annevk: yup |
22:28 | <ojan> | annevk: interestingly...webkit doesn't let you append a DocumentType if it's already in the DOM |
22:28 | <smaug____> | rniwa: really? I thought you need Proxies et al to implement DOM in JS, and IE doesn't, IIRC, have Proxy objects |
22:28 | <annevk> | ojan: oh, just saw your other email |
22:28 | <ojan> | annevk: i don't think the spec requires that though |
22:28 | <ojan> | annevk: so, i'm gonna see if i can remove that check |
22:28 | <annevk> | ojan: I think it does |
22:28 | <smaug____> | Philip`: JS JITs could optimize many things |
22:28 | <ojan> | annevk: oh...maybe i misread |
22:28 | <smaug____> | Philip`: also, JS is a lot safer language than C++ |
22:29 | <annevk> | ojan: http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node-pre-insert see 4.4 |
22:29 | <ojan> | anoh isee...it's actually step 5, no? |
22:29 | <smaug____> | writing security bugs in C++ is way too easy |
22:30 | <ojan> | annevk: i see...it's actually step 5, no? |
22:30 | <annevk> | ojan: step 5 is for when you append to non-Document nodes |
22:30 | <ojan> | annevk: right...that's the case i'm talking about |
22:30 | <rniwa> | smaug____: yeah, dynamic optimization can do a whole lot |
22:31 | <annevk> | oh yeah that should fail in general |
22:31 | <annevk> | because you put in the wrong place |
22:31 | <ojan> | annevk: i believe webkit will let you append a DocumentType to an Element if it's not already in the DOM |
22:31 | <annevk> | ooh |
22:31 | ojan | goes to test |
22:31 | <rniwa> | smaug____: but we can't write layout code in javascript |
22:31 | <ojan> | sigh...now i have to remember how to make documenttype nodes |
22:32 | <annevk> | document.createDocumentType |
22:32 | <rniwa> | ! |
22:32 | <annevk> | euh sorry |
22:32 | <rniwa> | we have a method on document just to create doctype? |
22:32 | <annevk> | document.implementation.createDocumentType() |
22:32 | <annevk> | http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-domimplementation-createdocumenttype |
22:32 | <annevk> | rniwa: worse |
22:32 | <rniwa> | :( |
22:32 | <annevk> | rniwa: it's on document.implementation |
22:33 | <ojan> | annevk: nm...webkit seems to throw an error |
22:33 | <rniwa> | wtf |
22:33 | <ojan> | annevk: that was the check i was hoping we could get rid of |
22:33 | <ojan> | annevk: i don't really care if developers put/move documenttype nodes in their DOM |
22:33 | <ojan> | annevk: as long as we spec it that only the top-level node affects the actual compatMode |
22:34 | <annevk> | you could get rid of that check at that level, but you'd still need the check somewhere |
22:34 | <ojan> | annevk: it's something developers will basically never do...so it's worth getting rid of the check |
22:34 | <ojan> | annevk: why do you need the check at all? |
22:34 | <annevk> | oh |
22:35 | <annevk> | but you also need to check for Document and |
22:35 | <ojan> | annevk: in teh case of appending to a Document, there's a whole different set of rules and complications |
22:35 | <ojan> | annevk: but for the case of appending to an Element |
22:35 | <ojan> | annevk: i don't see why we don't just allow it |
22:35 | <annevk> | element.append(document) is what I meant |
22:35 | <annevk> | DocumentType is not the only node not allowed there |
22:36 | <ojan> | annevk: interesting...i forget how webkit handles that... |
22:36 | <annevk> | and there's Attr too |
22:36 | <annevk> | in your current impl |
22:37 | <annevk> | and prolly ShadowRoot? |
22:37 | <ojan> | annevk: interesting...i think this webkit code is just dumb actually |
22:38 | <rniwa> | ojan: I don't think those constant-time checks is a big of a deal |
22:38 | <ojan> | the "isChildTypeAllowed" call is what should deal with documenttype nodes...so we should be able to kill that if-check |
22:38 | <rniwa> | ojan: in fact, we could add a special node-flag to do this in constant time |
22:39 | <ojan> | rniwa: they're not as big a deal as the O(n) checks, but every branch we can get rid of adds up for such a performance-sensitive codepath |
22:39 | <rniwa> | ojan: but we can combine all those checks into one check |
22:39 | <rniwa> | ojan: because we can just do bitwise and |
22:39 | <rniwa> | ojan: in practice, function calls would cost us much more than those node-type checks |
22:40 | <rniwa> | ojan: checking a node-type is extremely efficient in webkit |
22:40 | <rniwa> | ojan: checking tagname is slower but none of the checks we're talking here involves checking a particular tag name |
22:40 | <rniwa> | so I don't think this would be an issue for us |
22:40 | <ojan> | rniwa: as i read the code right now...that if-check is actually completely rendudant with the existing isChildTypeAllowed call |
22:41 | <rniwa> | I see |
22:41 | <ojan> | i might be reading the code wrong though |
22:41 | <rniwa> | I actually bet that calling that function itself is much more expensive than any of the checks we do |
22:41 | <rniwa> | if it's not inlined |
22:42 | <rniwa> | I think any gains we get from optimizing those constant checks will be completely dwarfed by all function calls involved in binding code |
22:43 | <rniwa> | not that I'm opposed to make them faster |
22:43 | <rniwa> | but I don't think we should make the spec more permissive just to get rid of content-time node-type checks |
22:45 | <ojan> | i've given up on the spec changes... |
22:45 | <ojan> | which is to say, i don't think we'd gain much by changing the spec |
22:45 | <ojan> | if anything |
22:45 | <ojan> | but...there might be room for optimizing the webkit code |
22:46 | <rniwa> | ok. I guess I misunderstood you then |
22:46 | <rniwa> | ojan: definitely! |
22:46 | <ojan> | rniwa: no...you understood me right...i just changed my thinking on it :) |
22:46 | <rniwa> | k |
22:46 | <annevk> | the only potential room for improvement to the spec is that ele.append(DocumentType) would throw at the same point ele.append(Range) would throw |
22:47 | <annevk> | but at some point you got to check that the right object is actually passed |
22:47 | <ojan> | annevk: true |
22:58 | <ap> | Hixie: does HTML5 parser (still) disallow surrogates in numeric entities (such as ��)? |
23:04 | <Hixie> | yes |
23:04 | <Hixie> | ewll |
23:04 | <Hixie> | well |
23:04 | <ap> | Hixie: this used to work in Gecko and in WebKit, and I just got a bug |
23:04 | <Hixie> | the parser doesn't allow or disallow anything |
23:04 | <Hixie> | bu the syntax does |
23:05 | <ap> | Hixie: the parser converts these to U+FFFD |
23:05 | <Hixie> | that appears to be consistent with the spec (http://www.whatwg.org/specs/web-apps/current-work/#tokenizing-character-references) |
23:08 | <ap> | Hixie: so I sent that bug back for now, but I don't have a great explanation why we had to break this. It worked in at least two engines, and appeared useful |
23:08 | <Hixie> | why is it useful? |
23:08 | <Hixie> | just encode the actual character |
23:08 | <Hixie> | surrogates are a UTF-16 feature |
23:09 | <ap> | Hixie: in that some dumb perl script had more chance of encoding non-ASCII correctly. for some people, lots of people don't want to transfer non-ASCII |
23:09 | <ap> | for some reason |
23:09 | <TabAtkins> | ap: He meant use the escape for the actual character. |
23:09 | <roc> | oh dear, bz used the classic "with all due respect" -> "with absolutely no respect" |
23:09 | <Hixie> | ap: supporting surrogates would be like supporting é for é |
23:10 | <ap> | TabAtkins: like 😒 ? that's what I've been responding to. A dumb script won't do that |
23:10 | <Hixie> | ap: just use the actual unicode codepoint |
23:10 | <Hixie> | ap: why would a dumb perl script ever see utf-16? perl uses utf-8. |
23:10 | <Hixie> | tantek: i updated the spec to make : optional in time zones |
23:11 | <ap> | Hixie: practically, lots of software can handle UTF-16, but it's a tiny minority that works with non-BMP characters correctly |
23:11 | <ap> | Hixie: I entirely share your vision of what's right |
23:12 | <Hixie> | my recommendation is to get people to ignore UTF-16 entirely |
23:12 | <tantek> | Hixie - thanks re: tz |
23:12 | <Hixie> | honestly if we could drop utf-16 support the way we dropped utf-32 support, i'd be all over it |
23:12 | TabAtkins | still has a soft spot for utf-32. |
23:12 | <tantek> | The time-zone offset examples should show/prefer without : also |
23:13 | <Hixie> | TabAtkins: a pretty wide one i would assume :-P |
23:13 | <TabAtkins> | Hixie: Narrower than my ints, at least. |
23:13 | <ap> | Hixie: anyway, I'm not asking to revert the spec to previously interoperable behavior at this point. I'd love to have a better explanation of why we broke this, which I don't. |
23:14 | <Hixie> | tantek: i made them use a variety (though i think most still have the colon), but i'll bear that in mind when adding more examples |
23:14 | <tantek> | ideally the examples should be exemplary |
23:14 | <tantek> | to teach authors well |
23:14 | <Hixie> | ap: the real reason is probably that i didn't even think to test it, because i had a lapse of judgement in which i assumed browsers wouldn't do something so silly |
23:15 | <tantek> | especially the time-zone by itself examples |
23:15 | <Hixie> | tantek: when it comes to syntax, the examples are intentionally varied in their use of syntax to indicate that all valid syntaxes are equally valid |
23:15 | <Hixie> | tantek: (this applies to everything, not just date formats) |
23:17 | <tantek> | I realize the spec as-is isn't for authors, however I do think the varied use of syntax should be biased towards syntax that results in fewer authoring mistakes / data quality errors over time |
23:17 | <tantek> | sorry maybe i'm looking at an older snapshot |
23:17 | <tantek> | reloading |
23:18 | <Hixie> | a slight bias, agreed |
23:18 | <Hixie> | as i said, i'll make the examples lean more that way over time |
23:18 | <tantek> | yeah I was looking at an older version (multipage) |
23:18 | <Hixie> | i'm more concerned with getting the normative text of the w3c and whatwg specs converged again than worrying about example text :-) |
23:18 | <tantek> | looking at one-page version now |
23:18 | <Hixie> | multipage should be updated now, is it not? |
23:19 | <Hixie> | oh, i haven't uploaded it yet |
23:19 | <Hixie> | my bad |
23:19 | <tantek> | yeah one-page version looks better |
23:20 | <Hixie> | multipage should be updated in about 5 min |
23:21 | <tantek> | no problem - I'll stick with one page |
23:27 | <tantek> | Hixie, I think I need to raise a 4th separate issue and change proposal to get the ISO week formats in there, no problem doing so, I'll take care of that this weekend. |
23:27 | <tantek> | (regarding Sam's email) |
23:28 | <Hixie> | your devotion to their process is quite entertaining |
23:28 | <tantek> | just trying to help the wheels rotate |
23:28 | <Hixie> | sam did say though that if everyone thought the patch was ok we could short-circuit it, which may help them rotate faster :-) |
23:29 | <tantek> | I'll email you a suggested replacement for the schema.org example because I think that's the remaining outstanding issue that Sam (re)raised. |
23:29 | <tantek> | (regarding your patch) |
23:33 | <Hixie> | tantek: there's an issue with an example? |
23:33 | <Hixie> | i couldn't find any of these issues in the issue list so i wasn't sure what sam meant to be honest |
23:34 | <Hixie> | i don't recall even seeing a bug regarding a schema.org example, so by process it surely can't be an issue yet |
23:37 | <tantek> | it was raised as a comment in the bug on data |
23:37 | <tantek> | IIRC |
23:37 | <Hixie> | ah |
23:37 | <Hixie> | well the chairs told me not to touch that bug anymore so i haven't been reading it |
23:38 | <Hixie> | let me go have a look |
23:40 | <Hixie> | oh, i see, it's because they don't want microdata in the examples, not because they don't wnat schema.org in the examples |
23:40 | <tantek> | huh? not AFAICT |
23:40 | <tantek> | the opposite |
23:41 | <tantek> | nothing wrong with microdata in the examples |
23:41 | <tantek> | the specific comment about schema.org was objecting to that |
23:41 | <Hixie> | "In addtion to that, schema.org examples have no business in the W3C spec |
23:41 | <Hixie> | because microdata is not part of HTML5 ( just like RDFa isn't part of the spec |
23:41 | <Hixie> | )." |
23:41 | <Hixie> | all the comments that contain "schema.org" seem to support this train of thought |
23:42 | <Hixie> | anyway i don't mind stripping all the schema.org examples from the proposal and not adding them to the w3c spec |
23:42 | <Hixie> | that's fine |
23:42 | <Hixie> | it's the normative text that i care about |
23:43 | <Hixie> | (it baffles me that the w3c continues to consider microdata to not be part of html) |
23:44 | <tantek> | Hixie, here's an attempt at a replacement example for the blog post that's not microformats nor schema.org |
23:44 | <tantek> | <article itemscope itemtype="http://tools.ietf.org/html/rfc4287"> |
23:44 | <tantek> | <h1 itemprop="title">Small tasks</h1> |
23:44 | <tantek> | <footer>Published <time itemprop="published" datetime="2009-08-30">yesterday</time>.</footer> |
23:44 | <tantek> | <p itemprop="content">I put a bike bell on his bike.</p> |
23:44 | <tantek> | </article> |
23:44 | <Hixie> | that's still microdata though |
23:44 | <tantek> | sure, but it's not microdata that anyone is going to use in practice |
23:44 | <tantek> | I have a feeling that would resolve that particular objection |
23:44 | <Hixie> | which is fine by me and i'm happy to add the example to the whatwg spec, but my point is that the objection to those examples was over the use of microdata, not over the use of schema.org |
23:48 | <tantek> | Hixie, I will point that Sam's response to you seemed to agree with my proposed resolution to the issue |
23:48 | <tantek> | which says "Provide one or more examples that show use with microformats, microdata, and RDFa" |
23:48 | <Hixie> | examples of what? <time>? |
23:48 | <tantek> | and "Prefer use of openly developed vocabularies/URLs (e.g. microformats.org, whatwg.org, w3.org) rather than those developed by one company (or just a few companies) like schema.org." |
23:49 | <Hixie> | what are you quoting from? |
23:49 | <Hixie> | i see nothing in that bug that supports this line of reasoning |
23:49 | <tantek> | Sam's email |
23:49 | <Hixie> | (note that using rdfa with <time> is impossible wince RDFa doesn't support <time> yet as far as i can tell) |
23:49 | <tantek> | where he quotes me from |
23:49 | <Hixie> | which one |
23:49 | <Hixie> | url? |
23:50 | <tantek> | most recent - let me get the url |
23:50 | <Hixie> | oh i see |
23:50 | <Hixie> | got it |
23:50 | <Hixie> | he's quoting you |
23:50 | <Hixie> | ok |
23:50 | <tantek> | http://lists.w3.org/Archives/Public/public-html/2011Nov/0184.html |
23:50 | <tantek> | yeah |
23:50 | <Hixie> | i suggest a simpler solution then |
23:50 | <Hixie> | remove that part of your change proposal :-P |
23:50 | <Hixie> | and i'll add whatever examples you want :-) |
23:51 | <tantek> | it was added because Sam complained that my change proposal didn't address enough issues |
23:51 | <tantek> | sorry, "complained" is a bit harsh. pointed out. |
23:51 | <Hixie> | so he wants you to address more issues, but if you address them in a way that has no bearing on what was actually raised, he's ok with it? |
23:52 | <tantek> | ah this about *data* |
23:52 | <tantek> | sorry |
23:52 | <Hixie> | working with the w3c hurts my brain |
23:52 | <tantek> | he's quoting from |
23:52 | <tantek> | http://www.w3.org/wiki/User:Tantekelik/data_element |
23:52 | <tantek> | which is my attempt at a change proposal to add data |
23:52 | <Hixie> | it's not clear to me why we need any CPs here at all |
23:52 | <Hixie> | we have a patch |
23:53 | <Hixie> | unless someone has any objections, why can't the CP just be "apply the patch" |
23:53 | <tantek> | Hixie, I'm trying to interpret the issues in a way that will achieve consensus which is another way of saying minimizing friction so you can get on to more things |
23:53 | <tantek> | it started as one change proposal yes |
23:53 | <Hixie> | ok tell you what, i'll let you deal with the process as you wish, you tell me what to add to the spec |
23:53 | <tantek> | I've updated it / split it per feedback / guidance from Sam |
23:54 | <tantek> | in the interests of moving it through the HTML WG process |
23:54 | <tantek> | hoops etc. |
23:54 | <Hixie> | ok so what do you want me to add, and where |
23:55 | <tantek> | (reloading one-page version) |
23:58 | <tantek> | so the first change is to replace the schema.org example in the time section with the rfc4287 version I pasted above: http://krijnhoetmer.nl/irc-logs/whatwg/20111119#l-103 |
23:58 | <tantek> | and yes, RDFa use of <time> is currently undefined |
23:59 | <tantek> | I'll monitor the RDFa discussions and when they've figured it out I can suggest an example for RDFa+time as well, but we don't have to wait for that. |
23:59 | <Hixie> | do you mind if i tweak the example contents a bit? |
23:59 | <Hixie> | also, i'm not sure it makes sense to use an RFC url as an itemtype, is an example.org URL ok instead? |
23:59 | <tantek> | sure - I was just picking something that somehow made sense |