2014-11-01 [17:54:12.0000] :( Safari doesn't have getElementById in the DocumentFragment prototype [18:19:19.0000] :[ [02:49:50.0000] Did anyone ever end up filing bugs on browsers for http://example.com/%F0%9F%94%92 and similar spoofing? [03:36:58.0000] It seems zcorpan filed a bug and it was a duplicate of https://bugzilla.mozilla.org/show_bug.cgi?id=808234 [09:43:54.0000] I filed https://github.com/github/github-services/issues/964 on github-services not dealing with URLs in commit messages properly, fwiw [10:00:16.0000] Domenic: http://jxck.hatenablog.com/entry/whatwg-stream [14:02:33.0000] Hixie: I can't subscribe to whatwg@whatwg with my new email address because the instructions in it reference lists.whatwg.org and the alternate method of replying to whatwg-requests⊙lwo gives an "undeliverable" [14:03:38.0000] annevk: wow, diagrams and everything!! [15:08:16.0000] mounir, /quit nn [15:10:58.0000] euhm, wtf rubys [15:23:03.0000] annevk: I think it's just a misunderstanding, albeit one that could spiral out of control... assume good faith and don't make things worse :) [15:23:14.0000] also dammit i keep emailing myself 2014-11-02 [17:16:20.0000] Domenic: which instructions? [17:34:27.0000] Hixie: when you email the subscribe address [17:35:06.0000] Hixie: basically, try to subscribe to whatwg and you'll see it's pretty bad [18:13:20.0000] ah [18:13:22.0000] yeah [18:13:24.0000] dunno what to do about it [18:14:42.0000] Domenic: wait, why is it bad [18:14:49.0000] Domenic: can't you just reply to the e-mail and be done with it? [18:16:15.0000] Hixie: those instructions don't work either. They contradict themselves. The reply to address is different from the one in the body and they tell you to have only that string. Try it. [18:16:48.0000] ok, i sent an e-mail ta whatwg-subscribe⊙wo [18:16:50.0000] i got back an e-mail [18:16:53.0000] i replied to it [18:17:00.0000] now i'm subscribed [18:17:03.0000] i don't understand the problem [18:17:12.0000] i mean, other than the e-mail mentions the website, which doesn't work [18:27:16.0000] Hmm replying didn't work for me [18:27:31.0000] And the reply-to didn't match the instructions in the body of the email [18:27:54.0000] Are there three separate ways to confirm subscription, only one of which works? [18:28:10.0000] Instructions in body for emailing whatwg-request don't work [18:28:18.0000] Clicking on the link doesn't work [18:28:24.0000] But replying does? [18:29:04.0000] there are three, two of which should work [18:29:18.0000] i haven't tried whatwg-request [18:31:36.0000] (the url will work too, you just have to use a browser that doesn't have HSTS information blocking that host) [18:32:19.0000] i sent a help command to whatwg-request⊙wo and that worked too, fwiw [18:53:00.0000] Trying to full understand the "is" attribute, but having a hard time searching for such a popular term. Anyone have a link to a good explanation and the spec? [18:53:23.0000] s/full/fully [18:54:33.0000] just had to ask so that i could find it. http://w3c.github.io/webcomponents/spec/custom/#instantiating-custom-elements [18:54:38.0000] never mind [18:56:37.0000] though if anyone has a good article, that's appreciated [22:14:51.0000] Hixie: hmm my bad, I typoed "request" :( [22:17:54.0000] heh [01:50:19.0000] @counter-style is part of css3, right? [02:09:31.0000] It's part of CSS, yes [02:19:02.0000] ok, Ms2ger, just wanted to make sure its correct if i tag it as CSS3 in MDN [02:19:43.0000] That's not particularly useful, but *shrug* [02:21:03.0000] alright.. i thought that might help if someone is searching for CSS3 specific things [02:22:13.0000] jsx: CSS3 is not a thing per the CSS WG [02:22:49.0000] oh! ok [02:23:02.0000] jsx: so if we pretend that CSS3 is a thing in MDN, we might want to overhaul that [02:23:15.0000] jsx: and instead focus on modules [02:23:19.0000] nope, i'm removing it rightaway [02:23:38.0000] thanks for the info [02:29:30.0000] annevk: is it a political thing like how the whatwg calls it html while the w3c calls it html5? or is this universal. (sorry, i'm very new to this) [02:30:55.0000] jsx, no, this is the CSSWG's call, actually [02:31:05.0000] jsx: while CSS 2.1 was still being developed, CSS3 (at the time still a thing) was developed in the form of modules [02:31:28.0000] jsx, they have version numbers for individual modules, but "CSS3" as a general thing doesn't exist [02:31:36.0000] jsx: however, some of those modules turned out to advance quicker than CSS3 as a whole [02:31:53.0000] jsx: so versioning (leveling in CSSWG terms) became scoped to modules, rather than CSS [02:32:23.0000] like "CSS Counter Styles Level 3" annevk? [02:32:29.0000] jsx: exactly [02:32:40.0000] jsx: http://www.xanthir.com/b4Ko0 has an explanation from TabAtkins [02:32:46.0000] TIL: Chrome still doesn't support setting event types to the empty string [02:32:53.0000] Speaking of which... [02:32:56.0000] annevk, r? https://github.com/w3c/web-platform-tests/pull/1342 :) [02:33:34.0000] thanks annevk, Ms2ger [02:33:41.0000] Np [02:33:59.0000] Ms2ger: I take it you ran these through a browser already? [02:34:55.0000] Er [02:35:11.0000] Looks like I broke one since the last time I did [02:36:23.0000] Ms2ger: createEvent table does not match https://dom.spec.whatwg.org/#dom-document-createevent [02:38:32.0000] Ms2ger: reviewed [02:38:40.0000] Thanks [02:38:49.0000] Looks like TouchEvent isn't supported in Fx? [02:38:59.0000] Oh, I guess it might be preffed off [02:40:38.0000] annevk, again? :) [02:40:49.0000] Ms2ger: again? [02:40:58.0000] I added the missing ones [02:41:34.0000] Ah, done [02:41:41.0000] Thanks [02:41:43.0000] I thought I had said something stupid somewhere [02:43:19.0000] No no :) [04:59:11.0000] Hixie: stylesheet on whatwg.org has "padding; 0;" [04:59:54.0000] Hixie: same stylesheet (tabbed-pages) also has -moz-outline which is dropped in Firefox Nightly [06:59:43.0000] The descriptions of those old DOM tests are pure poetry [06:59:51.0000] An document type accessed, setNodeValue is called with a non-null argument, but getNodeValue [06:59:52.0000] should still return null. [07:53:30.0000] annevk: That blog post gets so much mileage. [13:48:16.0000] TabAtkins: the things about URLs like css4-backgrounds could be updated, I guess [13:48:31.0000] though it might still be relevant for some TR snapshots 2014-11-03 [16:18:04.0000] looks like the only safe way of querying the contents of a DocumentFragment is to insert it into the document [16:23:33.0000] since /getElements?By(Id|TagName|Class)/ are over on Element, but the DocumentFragment interfact exposes only Node [00:01:01.0000] terinjokes: DocumentFragment should expose querySelector() [00:01:14.0000] terinjokes: and getElementById() [00:01:38.0000] terinjokes: if a browser doesn't expose those, bug [00:05:13.0000] annevk: Safari doesn't expose getElementById [00:05:45.0000] the other browsers I'm developing against pre-date querySelector and querySelectorAll… so can't blame them for not having it implemented [00:05:56.0000] sorry, Safari 8* [00:07:03.0000] http://msopentech.com/blog/2014/03/19/http2-nearing-completion/ HTTP WG makes decisions through coin toss... [00:14:55.0000] annevk, maybe htmlwg should try that [00:15:19.0000] annevk, I'm not sure their track record for good decisions beats a coin toss [00:16:34.0000] Ms2ger: if we don't count copying WHATWG work as decisions... [00:16:47.0000] I don't think we do [01:21:33.0000] Domenic: how would we ever expose Fetch' terminate primitive? [01:21:55.0000] Domenic: var res = await fetch(req); req.terminate()? [03:49:55.0000] how does one see when https://github.com/w3c/web-platform-tests/blob/master/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.html was added originally to wpt? [03:50:04.0000] github UI isn't good with file moves [03:50:07.0000] apparently [03:50:13.0000] not with huge changes [03:55:33.0000] (that test seems to be invalid) [04:16:14.0000] smaug____: it's prolly added by zcorpan [04:18:10.0000] zcorpan: why e.ports === null ? [04:19:06.0000] The spec seems to say "Let new ports be an empty array." ... "Let the ports attribute of the event be initialised to the new ports array." [04:21:13.0000] smaug____: probably it matched the spec when the test was written. my interpretation of the current spec is that it should be empty array [04:21:45.0000] smaug____: https://github.com/w3c/web-platform-tests/commit/eb29e8c9fcc0e8a8e685581123bd1380de207d7d is maybe when it was first added [04:23:06.0000] zcorpan: http://www.w3.org/TR/webmessaging/#messageport requires empty array [04:23:12.0000] that is from 2012 [04:23:23.0000] MikeSmith: don't see that file in that commit. but i wrote the test in question [04:23:53.0000] smaug____: i think the test predated Transferable thing [04:23:56.0000] ah [04:24:30.0000] but it's also possible that i misread the spec of course [04:25:53.0000] smaug____: do you want the spec changed or hte test changed? [04:27:11.0000] zcorpan: OK, but anyway seems like it is actually there and https://github.com/w3c/web-platform-tests/blob/eb29e8c9fcc0e8a8e685581123bd1380de207d7d/Workers/tests/approved/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.html is the original (unless I'm missing something) [04:41:01.0000] zcorpan: test [04:41:29.0000] or I don't care too much which on should be changed [04:41:33.0000] one [04:48:29.0000] http://lists.w3.org/Archives/Public/public-w3process/2014Nov/0015.html chaals arguing to disable TLS to preserve battery... You cannot make this shit up [04:51:00.0000] wow [06:05:13.0000] smaug____: do you have a github username? [06:06:36.0000] smaug____: https://github.com/w3c/web-platform-tests/pull/1347 [06:47:40.0000] zcorpan, good idea re: interfaces.html [06:47:49.0000] Didn't think it would work, but it does [07:38:02.0000] http://dnscurve.org/ seems interesting [08:51:37.0000] TabAtkins: let me know when I should try again. Meanwhile, I'd also appreciate a pointer to how to produce biblio entries. [08:52:38.0000] rubys: https://github.com/tabatkins/bikeshed/blob/master/docs/definitions-autolinks.md#bibliography [08:52:46.0000] And what do you mean by "try again"? [08:53:39.0000] TabAtkins: "Ugh, this sent my comment before it was done. One sec while I finish up..." [08:53:47.0000] Oh, it's there now. [08:53:55.0000] ok, cool [08:55:34.0000] rubys: Are you trying to maintain all the current "concept-foo-bar"-style urls, or are you planning to switch them all into real autolinks? [08:56:49.0000] TabAtkins: I am willing to do whatever. The question isn't what I'm willing to do, but what annevk is willing to accept. [08:56:56.0000] Haha, ok. [08:57:09.0000] rubys: I'm a bit confused with the IDL issue [08:57:45.0000] rubys: e.g. as I understand it https://w3c.github.io/webappsec/specs/content-security-policy/#securitypolicyviolationevent-interface is done with bikeshed and has links [08:58:03.0000] rubys: does that mean Mike accepted the maintenance cost? [08:58:05.0000] annevk: All Bikeshed-generated. [08:58:29.0000] You can put your s outside of the IDL block, if you want, and Bikeshed will link to them from the IDL (instead of trying to dfn them in the IDL). [08:58:32.0000] Anolis requires a fair amount of markup to make IDL pretty... I don't really mind it [08:59:01.0000] annevk: Bikeshed requires *more* markup to make the IDL work correctly, if you're doing it by hand. [08:59:14.0000] You have to specify the types and the "for" values for everything. [08:59:27.0000] TabAtkins: okay, so you are saying Mike is not doing it by hand [08:59:28.0000] TabAtkins: that's what I was missing. I should be able to work with that. [08:59:59.0000] so... generate, see what dfns are produced, move them to where they belong, and... done. [09:00:02.0000] rubys: Ah, sorry, didn't realize there was a disconnect there. Just make sure your external dfns are marked up right, with types and "for" values. [09:00:21.0000] TabAtkins: how do you link [Constructor] accurately without markup? [09:00:34.0000] Just like foo(int arg) [09:00:51.0000] sweet [09:00:52.0000] annevk: I think I do it badly right now. It's on my list of fixes to make. [09:01:23.0000] TabAtkins: okay, so the only thing that's not supported is that in interface URL, URL becomes the ? [09:01:34.0000] No, that works too. [09:01:38.0000] oh [09:01:52.0000] Okay so rubys maybe misunderstood something then? [09:01:54.0000] /me is so confused [09:01:57.0000] There was a bug for a little bit in some related handling, but I fixed that this morning. [09:02:25.0000] Yeah, I think rubys didn't realize that Bikeshed'll respect you wanting to put your s elsewhere. [09:02:28.0000] annevk: I think that about summarizes it. Everything works, I just didn't know how. Perhaps there is a doc problem, or perhaps it is just me. [09:02:45.0000] Well, it should all be in the docs, but docs are hard to read, so wtv. [09:03:49.0000] rubys: while you're here, please check with me next time if you think I say something weird [09:04:37.0000] annevk: you say lots of things that are weird :-) [09:04:53.0000] rubys: sure, but those two www-tag emails were quite upsetting [09:05:52.0000] Sorry. I will say that I'm still confused by your assertion that reverse engineering existing browses is incompatible with what the WHATWG does. [09:06:20.0000] rubys: I haven't said that [09:07:12.0000] rubys: I've said that you can't document reality since reality is that browsers disagree, whereas WHATWG writes documents that dictates them to agree [09:08:03.0000] reality is more complicated than that. There are cases where the browsers agree, and what you have speced is different than that. [09:08:23.0000] rubys: for those cases it might make sense to change the specification [09:09:12.0000] in which case, I will claim that your statement on this matter is confusing. [09:10:13.0000] For those wanting to follow along, we are referring to: http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Nov/0004.html [09:10:14.0000] rubys: either I've made a mistake in analyzing the data when I wrote the specification, there's more data now, or the critique is inaccurate or from insufficient data [09:10:17.0000] What I said: [09:10:25.0000] > That may not be as we would wish it to be. But it would be a disservice to > everyone to document how we would wish things to be rather than how they > actually are (and, by all indications, are likely to remain for the > foreseeable future). [09:10:28.0000] What anne said: [09:10:34.0000] This contradicts with most WHATWG work. WHATWG standards describe how things should be, taking into account the realities of deployed content. [09:11:14.0000] I'd like to continue trying to find the sweet spot between what you have spec'ed, what browsers are willing to accept, and how far I can push the IETF. [09:11:34.0000] may i suggest that instead of arguing over the metaissue of what you meant when arguing what the goals are, you instead just focus on the issues that matter, namely, the actual bugs? [09:11:41.0000] I don't understand what's unclear. Your statements contains absolutes that are just untrue. [09:12:05.0000] Hixie: good advice. [09:12:43.0000] Hixie: first step on that road is here: http://intertwingly.net/projects/pegurl/urltest-results/ [09:12:57.0000] Yeah, I've been missing that. There's a lot of statements "from above", but no bug reports yet. [09:13:25.0000] rubys: file a bug with what you want changed, providing the evidence you think supports that change [09:13:25.0000] Which is a weird state to be in given that rubys wants it to be non-political. [09:14:00.0000] annevk: unfair. I have submitted pull requests. I'm trying to work first on items that you have identified (bikeshed and rewriting the parser part of the spec). I think that's a fair amount of work. [09:14:21.0000] Hixie: you might also find the following to be of interest: http://intertwingly.net/projects/pegurl/liveview.html [09:14:55.0000] since i'm not editor of the url spec and have interest in getting involved in the url spec... :-) [09:15:47.0000] Hixie: I'm having difficultly parsing that. Perhaps s/have/don't/? [09:15:56.0000] rubys: I appreciate that work, quite a lot. But it's no basis for changing direction relative to RFC 3986, for instance. [09:15:58.0000] have no, rather, yeah [09:16:10.0000] Hixie: ack [09:17:09.0000] annevk: I'm going to keep doing the work. I am also going to try to work with everybody. That includes yourself, the TAG, the IETF, browser vendors, library implementors, etc. [09:17:45.0000] rubys: Sure, I do the same thing [09:18:14.0000] If you say something that is different than something Domenic says, my preference would be to get the two of you chatting. [09:18:48.0000] I think Domenic and I are quite well aligned [09:19:10.0000] Not sure what you're referring to [09:19:13.0000] I've now done that twice. The first time you agreed to accept pull requests. The second time you found what I had done to be quite upsetting. [09:21:44.0000] Yes, as I explained, your statement contained absolutes that are untrue. The URL Standard documents how we wish things to be given that there are browsers out there that do not conform to it. It cannot document how things are, given that browsers disagree. Perhaps there are cases where those two could be closer, but you've yet to file a bug for those. [09:21:52.0000] Annevk: a more recent example where you confused me: you suggested "hiding the editor field through CSS". When I pointed out how it could be done, you said " It seems wrong to me to have it there and use display:none to hide it." [09:22:42.0000] rubys: your selective quoting does not help, I said "The other thing I don't like, but won't block on, is hiding the editor field through CSS." [09:23:09.0000] that's fair, and I agree with it; but I will still say that I'm confused as to what your position is. [09:23:14.0000] rubys: I knew from TabAtkins that hiding the editor field through CSS was the way to go, but I don't like it [09:23:43.0000] rubys: and in that comment I indicated that I wouldn't block on converting the URL Standard to bikeshed because of that [09:24:12.0000] From my experience with other open source efforts; I feel that removing editors entirely (and not just moving it to the bottom as you have done), is the right way to go. [09:25:40.0000] Seems reasonable [09:26:01.0000] rubys: might be worth pointing out here https://github.com/tabatkins/bikeshed/issues/255#issuecomment-61509373 [09:26:03.0000] The reason I'm currently in favor of leaving the editors in (and hiding them through CSS if you dont' want to display them) is that there are existing biblio-scraper tools that know how to look for Editors formatted in the way I currently generate them, and build bibliography dbs from scraping a bunch of docs. [09:26:21.0000] annevk: will do. [09:26:23.0000] TabAtkins: rubys seems to argue that it would just say WHATWG [09:26:33.0000] annevk: +1 [09:26:48.0000] If you really want to indicate no editors, I have a bug open on me to allow you to indicate you're omitting Editor on purpose. [09:27:16.0000] Sure, that's easy to do too. "Editor: WHATWG, http://whatwg.org, whatwg⊙wo" [09:27:38.0000] TabAtkins: WFM [09:27:48.0000] TabAtkins: rather no editors, with org being WHATWG [09:28:14.0000] Like we do with Unicode references [09:28:46.0000] For context: the Apache Software Foundation has a strong position on there being no technical leads for ANY of its products. [09:29:32.0000] I'm not quite sure about going that far [09:29:45.0000] that's the exact opposite of how the WHATWG works :-) [09:29:53.0000] You can even put that Editor line into the defaults-whatwg.include file, so all whatwg specs get it automatically. [09:30:11.0000] every spec here has one person to blame [09:30:12.0000] by design [09:30:16.0000] so we know how to blame [09:30:21.0000] (Yeah, I'm actually quite unclear on where the editor-minimization is coming from, given that whatwg generally BDFLs...) [09:30:40.0000] the idea of moving the credit for editing from the header to the footer is just one of modesty [09:30:50.0000] since the credit should go to all the people sending feedback [09:31:11.0000] In this case, the problem is that the modesty interferes with the boilerplate generation in a very annoying way. [09:31:14.0000] the whatwg model is one of concentrating the responsibility and blame, and distributing the credit [09:31:23.0000] there shouldn't be any boilerplate :-) [09:31:30.0000] (e.g. the html spec doesn't have any) [09:31:42.0000] My sense is that Dominic and Marcos are more open to sharing the responsibility. [09:31:52.0000] sharing responsibility is a bug [09:32:06.0000] it leads to sharing the blame [09:32:14.0000] it is imho one of the main causes of the w3c's specs being low quality [09:32:18.0000] /me goes back to working on real bugs [09:32:35.0000] Hixie: You keep saying that, and you keep being wrong. ^_^ But that's because HTML is a special snowflake, and nobody is trying to be that consistent with its style. [09:32:54.0000] wait, what was it i said that was wrong? [09:32:59.0000] TabAtkins, ... style consistency? [09:33:00.0000] /me doubts that he could ever mod Bikeshed enough to satisfy HTML's use-cases. [09:33:00.0000] i said a lot of things just then :-P [09:33:17.0000] Hixie: The thing you were replying to me about - boilerplate. [09:33:32.0000] oh i didn't realise i'd ever said that html had no boilerplate before [09:33:36.0000] it's a relatively new fact [09:33:38.0000] You typed a bunch more between when I started typing and when I was done, sorry. [09:33:41.0000] as of ~august [09:33:43.0000] Speaking of boilerplate [09:33:56.0000] The multipage button has the old url [09:34:08.0000] When I was first working with Domenic to build the WHATWG boilerplate, you kept claiming there shoudlnt' be any, and everyone should build craft their header content by hand. [09:34:09.0000] Hixie, ^ [09:34:37.0000] TabAtkins: ah, yeah, i definitely stand by that. if you have much boilerplate, you're probably doing it wrong, imho. [09:34:43.0000] Ms2ger: interesting [09:35:00.0000] Ms2ger: oh, yeah, that's intentional [09:35:05.0000] Ms2ger: it's still shorter than the new one [09:35:07.0000] There's a difference between "too much" and "more than you want to write by hand, and duplicate-with-minor-changes into new specs". [09:35:15.0000] That's true [09:35:24.0000] TabAtkins: *shrug* [09:35:48.0000] TabAtkins: the html spec really has virtually nothing that you'd duplicate into other specs [09:35:56.0000] TabAtkins: so i stand by what i said [09:36:06.0000] TabAtkins: i feel that boilerplate is stuff that turns readers away [09:36:12.0000] The HTML spec is a special snowflake :) [09:36:17.0000] if you don't want to write it, why would anyone want to read it [09:36:30.0000] all our specs should be special snowflakes [09:36:32.0000] I think the header for https://dom.spec.whatwg.org/ makes sense [09:36:36.0000] otherwise why are we writing them? [09:36:51.0000] And I don't see why other specs would need a different style [09:37:47.0000] anyway [09:37:51.0000] y'all do as you wish :-) [09:38:05.0000] And w'all will be consistent ;) [09:38:26.0000] Hixie: it's hard to reconcile your statement for consistent look & feel with desire for inconsistent headers [09:38:37.0000] Hixie: I dont' want to write all the markup for my IDL blocks either, but people seem to get value from that. [09:38:47.0000] annevk: which statement for consistent look & feel? [09:38:58.0000] Hixie: sharing stylesheet [09:39:24.0000] annevk: if there's a good reason for a spec to have a different look, then it shouldn't share the style sheet either [09:41:44.0000] annevk: done. https://github.com/tabatkins/bikeshed/issues/255#issuecomment-61516495 [09:45:27.0000] As for the discussion about BDFL... It has been useful for someone to make the decisions and be responsible for addressing issues. I agree that if there's no such feeling issues tend to go unaddressed or get weak responses from committees. [09:46:58.0000] If we removed editor information even from the Acknowledgments I would still expect someone to be responsible, even if not written down somewhere. [09:48:46.0000] Python works well with a BDFL. Apache projects work effectively WITHOUT a BDFL. We can all cite efforts that don't work well. Some with BDFLs, and many without. [09:49:50.0000] rubys: http://www.apache.org/foundation/ suggests there's some oversight at least [09:50:14.0000] rubys: with impressive VP titles even [09:50:31.0000] Indeed. There is oversight. But VPs are not technical leads. By design. [09:50:53.0000] I've been on the Apache Board of Directors for many years. If you have any questions, let me know. [09:51:18.0000] I've been release lead (something we rotate), PMC chair, and many other positions too. [09:51:39.0000] In a way editors are not technical leads either. That's the various browsers [09:52:48.0000] annevk: at the risk of upsetting you again, I see little evidence of that in http://intertwingly.net/projects/pegurl/urltest-results/ [09:53:43.0000] ok, let me retract "little evidence". That was overstating the problems I'm seeing. [09:55:30.0000] rubys: it's obvious you are seeing something in those test results I'm missing out on [09:56:34.0000] annevk: scroll to the bottom of http://lists.w3.org/Archives/Public/public-webapps/2014OctDec/0315.html for three examples [09:57:45.0000] rubys: example 1) http://intertwingly.net/projects/pegurl/urltest-results/7357a04b5b all browsers seem to agree on serializing except for IE [09:57:51.0000] rubys: why would you side with IE? [09:58:04.0000] annevk: look at username and password [09:58:09.0000] rubys: example 2) http://intertwingly.net/projects/pegurl/urltest-results/4b60e32190 we discussed that the results are different on Windows [09:58:21.0000] rubys: I don't think all browsers implement username and password properties [09:58:33.0000] rubys: that's a new feature [09:58:50.0000] annevk: the spec doesn't differentiate between "running on windows" and "running elsewhere". [09:59:07.0000] rubys: yes, and I explained why [09:59:26.0000] rubys: if you feel we should go for platform-dependent parsing, okay... [09:59:44.0000] no. I think we should remove what one browser implemented on one platform. [09:59:51.0000] http://intertwingly.net/projects/pegurl/urltest-results/61a4a14209 I already conceded we need to revisit IPv4 parsing [10:00:00.0000] and look what presto did for: http://intertwingly.net/projects/pegurl/urltest-results/7357a04b5b [10:00:07.0000] Presto is irrelevant [10:00:15.0000] I think a strong case can be made for hiding passwords [10:00:18.0000] They gave up their browser and its URL parser because it broke too many sites [10:01:27.0000] rubys: hiding doesn't help if you can still get it through getAttribute() or some such [10:02:11.0000] annevk: this is a topic that merits more discussion. With more browser vendors participating. I met with several last week. [10:03:28.0000] rubys: I don't think URL's username/password options make much sense, but they're not really harmful either, and are used by XMLHttpRequest's HTTP authentication options [10:04:00.0000] rubys: if anything we allow disabling them at the parser level [10:04:06.0000] we should allow* [10:04:23.0000] WFM [10:06:54.0000] Anyway, I already said IP parsing needed looking into. File URLs can use another careful look if someone has the time. [10:07:00.0000] I don't really see any controversy about that [10:08:02.0000] And I don't see how browsers doing wildly different things for them contradicts about what I said that we'd need to make a decision on what they should do instead. Since just matching reality is obviously not going to work... [10:10:31.0000] you seem stuck on that. I said something along the lines of determining what they were willing to do, and you said that contradicts how the WHATWG works. I suggest that we both move on from that discussion, and focus on working with everybody and finding the sweet spots. [10:11:29.0000] that sounds like a good thing [10:12:56.0000] rubys: determining what browsers are willing to do is not what you said, but seems like a good thing, yes [10:13:37.0000] cool. peace. onwards! [10:19:04.0000] Seems hz-gb-2312 is dead https://www.w3.org/Bugs/Public/show_bug.cgi?id=25339 [10:19:09.0000] Party time? [10:19:15.0000] JakeA: annevk: should it be possible to put a Response with type "error" in the cache? [10:20:16.0000] wanderview: don't really see a reason why not, although it also seems rather pointless [10:20:44.0000] annevk: if fetch() returns an "error" response... it rejects its promise, right? [10:20:57.0000] wanderview: yeah, TypeError [10:21:23.0000] wanderview: agree with annevk [10:21:23.0000] not NetworkError? [10:21:29.0000] wanderview: no [10:21:53.0000] wanderview: didn't want to create a dependency on DOM for the sake of Node.js [10:22:53.0000] Removing hz-gb-2312 is exciting people [10:23:12.0000] i'm excited [10:23:15.0000] JakeA: is it just me, or does addAll() not say what to do if one of the requests fails? [10:27:56.0000] JakeA: nm... this explains it for me: https://github.com/slightlyoff/ServiceWorker/issues/541 [10:30:21.0000] wanderview: oh, it should be reject with the first error (like Promise.all) [10:34:42.0000] JakeA: I think thats what it says... (promise verbage is new to me) [10:37:05.0000] JakeA: do you have an opinion on this? https://github.com/slightlyoff/ServiceWorker/issues/549 [10:40:18.0000] JakeA: I'm sorry but I forgot timeline updates, when can we expect updates to the spec & issues again? [10:44:38.0000] annevk: from me? [10:44:51.0000] JakeA: yeah and others I guess that work on the spec [10:47:24.0000] annevk: I'm flying back today so normal service starts resuming (although I made some minor fixes to cache.match a couple of days ago). Looks like Jungkee had been pretty constantly active? [10:48:45.0000] Is there a particular issue you have in mind? I've still got request.client on my todo list, but wanted to do that when we're on same time zone [10:49:14.0000] JakeA: 445 [10:49:22.0000] JakeA: also the path issue [10:49:34.0000] JakeA: where everyone missed out on the security hole [10:49:56.0000] JakeA: and other issues that impact implementations, such as ServiceWorkerClient design [10:50:19.0000] JakeA: environment settings object stuff; creating and terminating workers [10:50:33.0000] JakeA: message channel setup for service workers [10:57:46.0000] http://www.bis.doc.gov/index.php/component/content/article/107-about-bis/newsroom/press-releases/press-release-2014/763-intel-subsidiary-agrees-to-750-000-penalty-for-unauthorized-encryption-exports :-( [11:02:27.0000] annevk: which path issue did everyone miss out on? [11:03:35.0000] (did some searching, couldn't find anything, but I'm on a throttled roaming connection so it's like wading through mud) [11:05:05.0000] JakeA: https://github.com/slightlyoff/ServiceWorker/issues/468 [11:05:15.0000] JakeA: also explained in 445 [11:06:40.0000] annevk: you mean the cache poisoning thing? I wouldn't say no one thought of that, I mention it a couple of comments before you did https://github.com/slightlyoff/ServiceWorker/issues/468#issuecomment-60352628 :P [11:07:18.0000] Will reply now [11:07:34.0000] JakeA: oops, missed that [11:08:28.0000] JakeA: seems like a bad thing to have this security theatre then [11:11:04.0000] annevk: we've protected existing badly structured sites. But if they remain badly structured and start relying on origin storage (even just IDB), they're opening themselves up to attacks from others on the origin [11:12:32.0000] But they have to open the door by wrongly assuming IDB/localstorage/cache is secure to them [11:22:57.0000] Some naming help needed. Bikeshed currently categorizes spec versions into two categories - "ED" and "TR" - and assumes the ED is more up-to-date. This is confusing when applied to specs outside the W3C. Suggestions on (non-derogatory) names for the categories? [11:23:04.0000] Maybe "latest" and "snapshot". [11:24:23.0000] current and stale [11:24:34.0000] Oh, I missed the parenthetical [11:24:48.0000] "current" and "snapshot" might work. [11:33:51.0000] TabAtkins: git would call them branch & tag [11:34:40.0000] Dunno if that's helpful. Tbh "current" and "snapshot" sounds better [11:34:42.0000] Yeah, but then you're invoking very specific git idioms (and "branch" isn't even quite right; maybe "master") [11:36:03.0000] TabAtkins: although w3 html is definitely a branch at this point [11:36:14.0000] That's even worse! ^_^ [11:36:29.0000] No, a fork :) [11:36:35.0000] Hah [11:37:07.0000] Fork and branch are identical in the wider git data model. [11:44:24.0000] annevk: I've got next week to spend on issues. Maybe Wednesday afternoon too, but will be just off a 23hr flight so who knows. Thursday morning too. Will chat to you about priorities. [11:47:47.0000] TabAtkins: Thanks for the (non-derogatory) parenthetical. I prefer "latest" and "current". Give me a few minutes to see if I can come up with something better than "snapshot". [11:53:23.0000] TabAtkins: I think "stable" is better than "snapshot". "dated" works too, if you don't mind being mildly subversive. [11:54:36.0000] Dated sounds good [11:54:47.0000] "current' and "dated" it is. [11:54:48.0000] And then Fig'd for current? [11:55:14.0000] "Fig'd"? [11:55:24.0000] Date <-> Fig [11:55:34.0000] BOOOOOOO [11:55:39.0000] :D [12:08:34.0000] TabAtkins: consider adding "numbered" and "names" as synonyms for "dated". [12:08:52.0000] "names"? [12:09:16.0000] named* [12:09:40.0000] None of those have the pun, though! [12:10:50.0000] Up to you, just tossing ideas out there. [12:39:52.0000] JakeA: ta [13:46:40.0000] Ms2ger: you're terrible and you should feel bad [13:47:02.0000] :( [13:47:11.0000] jwalden would have approved [13:47:21.0000] \o/ [13:47:24.0000] wait what [13:47:30.0000] /me consults logs [13:49:59.0000] mm, figs [13:50:36.0000] http://whereswalden.com/2010/01/29/humor/ [13:52:10.0000] jwalden, surprisingly, that element still exists :) [14:01:43.0000] JakeA: should Cache objects returned from CacheStorage be strictly comparable in js? a === b? [14:03:11.0000] nm, I think the spec is pretty clear that it should not [14:03:26.0000] "Let cache be a new Cache object." [14:10:33.0000] JakeA: err.. thats the case if we there is no entry [14:10:41.0000] I'll make an issue since you are probably travelling [14:13:00.0000] wanderview: sorry, I had enough connection to get push messages put not enough for IRCCloud to load. Nah, very little object equality in SW apis [14:13:07.0000] means we can avoid a lot of the expando issues [14:13:33.0000] I'm hitting the road soon for a lovely 24hr flight :( [14:13:36.0000] JakeA: I think the way the CacheStorage.open() is written currently can be interpreted as requiring object equality [14:13:48.0000] JakeA: seems that is how the blink tests are written currently [14:13:56.0000] JakeA: I'll write a github issue [14:14:28.0000] wanderview: ah, thank you. Yeah, I don't think we need === there [14:14:59.0000] JakeA: thank you! have a safe flight! hope you're flying first class :-) [14:15:20.0000] nooooope [14:15:41.0000] But hey I've got a shit ton of TV series and movies on my laptop so I'll be fine probably [14:16:24.0000] yea... I've watched more movies on the flights to Taiwan than I did the month or two before [14:21:43.0000] JakeA: https://github.com/slightlyoff/ServiceWorker/issues/551 2014-11-04 [16:22:58.0000] TabAtkins: "current" and "dated" is great (I realize you already decidedーjust chiming in for moral support) [18:02:48.0000] Currant and Dated would have been a better pun [18:15:46.0000] jgraham: harhar [18:17:30.0000] I think that pun would be completely lost on most en-US-ers [18:18:10.0000] USAsians? [18:18:41.0000] currant is a dried fruit [18:19:19.0000] date is also fruit! [18:19:28.0000] isn't fig also a fruit? [18:20:25.0000] wikipedia tells me no, it's not a fruit, and then preceeds to talk about the tree's "editable fruit" so… [18:21:00.0000] fugggg [18:21:11.0000] is that a ? [18:21:47.0000] :+1: [18:22:22.0000] erlehmann: Thanks I didn't require the explicit explanation myself but I appreciate the consideration [18:23:05.0000] is currant a mene in here? [18:23:32.0000] chinese date is fruit! [18:23:36.0000] fruit is internet mene! [18:24:36.0000] as the self-proclaimed jokester in here, can confirm [18:24:59.0000] terinjokes: your implication that Wikipedia might have some inconsistencies is shocking [18:25:30.0000] remember, wikipedia is always correct. reality is just sometimes wrong. [18:25:34.0000] I cringe pretty much any time I read any Wikipedia article odd any length [18:26:09.0000] mene is confirmed then [18:26:10.0000] *Of any length [18:27:17.0000] odd [18:27:17.0000] fug! [18:27:28.0000] so what is it about currant mene? [18:27:31.0000] how come? [18:33:37.0000] MikeSmith: I hope you aren't accusing Ms2ger of being American [18:39:34.0000] anyone know if IE is aware of their evt.defaultPrevented bug and ever plans on fixing it? [18:49:59.0000] (the property is set to `true` immediately after calling "preventDefault", but is reset back to `false` at some point later [18:50:54.0000] jgraham: if I ever suggested he were American-ish at all, it'd only be in a completely positive sense; e.g. having a strong suspicion of authority :-) [18:56:22.0000] MikeSmith: That fig-ures [18:56:44.0000] /me gets his coat [18:56:47.0000] haha [18:58:36.0000] > murrican [18:58:40.0000] > suspicion of authorithy [18:58:44.0000] you best be joking [19:02:06.0000] erlehmann: I'm from Texas. when it comes to be suspicious of, e.g., the national government, we don't joke [19:02:27.0000] actually I take that back. we do joke [19:04:06.0000] MikeSmith i thought that was just some kind of jurisdiction thing [19:04:55.0000] “i am not against abortion, i am against federal funding for it” and similar [19:05:08.0000] but all of this is off topic and i am sleepy [19:05:13.0000] so i won't elaborate [19:05:25.0000] back to HTML! [19:05:43.0000] annevk were there notable replies to your HTTPS post? [19:06:16.0000] HTML is completed. I guess you didn't see the news. [19:06:47.0000] oh, yeah. did someone send the W3C a cake? [19:28:04.0000] erlehmann: donuts [19:28:19.0000] Krispy Kreme [19:33:36.0000] wat… i'll like some krispy kreme [21:39:36.0000] cool, twitter tab in chrome taking 2gb [21:41:06.0000] zewt: yeah, you need to leave it open for a bit longer for it to reach 4GB [21:41:44.0000] chrome tabs never get that big, so i assume they're all 32bit processes [21:41:55.0000] so I just now installed the remote IE thing on my Android phone and it actually works. kinda amazing [21:42:06.0000] zewt: yeah? [21:42:20.0000] wonder why they do it that way [21:43:03.0000] i'd be happy to not be getting daily memory warnings from windows that almost always originate from either firefox or chrome, heh [21:43:11.0000] apparently 16 gigs of memory isn't enough these days [21:44:13.0000] I seem to do fine with 8GB, even compiling Firefox Nightly and Chromium a few times a week [21:44:26.0000] that suggests you're restarting your browsers a few times a week [21:44:27.0000] and this is on a 3-year-old macbook [21:44:31.0000] nope [21:44:34.0000] well yeah [21:44:40.0000] of course [21:44:49.0000] but not because of crashes [21:44:55.0000] just after I recompile [21:45:08.0000] so yeah maybe that makes a difference [21:45:10.0000] well, restarting browsers has a way of rebooting leakiness [21:45:14.0000] sure [21:46:08.0000] maybe that suggests a best practice: Don't use off-the-shelf browsers; instead, compile them from the sources several times a week. :) [21:46:20.0000] things i don't ever want to do: compile browsers [21:47:04.0000] i guess the only possible solution is to find a motherboard that'll handle 64 gigs or something [21:47:07.0000] I guess I would notice the compile time/perf costs a lot more if I were actually doing browser development and need to compile often daily [21:47:58.0000] zewt: that probably wouldn't cost you much :p [21:48:11.0000] probably still need server hardware for that much [21:48:43.0000] mostly i just don't want to have to think about memory or micromanage browser memory usage, heh [21:48:58.0000] computers suck so much. we really have not right to be patting ourselves on the back [21:49:12.0000] which i didn't have to until fairly recently, not sure what changed [21:49:32.0000] carelessness happened, apparently [21:51:04.0000] one would think that in the 21st century we'd be far along enough that browser projects would be running some kind of CI automation to check for memory leaks and identify possible causes [21:51:51.0000] either that or we could be building things with programming languages that don't cause so much memory leaks and/or that at least don't make them so hard to track donw [22:05:40.0000] probably more to do with not capping the inherent sloppiness of the web [22:47:56.0000] annevk: web compat was one consideration but not the only one, and i think the url parser was fine as far as web compat goes [22:48:41.0000] annevk: i only recall idna2008 disallowing some characters that broke tinyarrows [00:18:50.0000] zcorpan: it wasn't, at least not at the point I left [00:19:26.0000] erlehmann: not really, some disagreement over whether EV is a scam on Twitter [00:19:45.0000] erlehmann: made me find http://www.adambarth.com/papers/2007/jackson-simon-tan-barth.pdf [00:39:01.0000] wach [01:12:37.0000] http://www.unicode.org/reports/tr51/ [01:13:06.0000] "Unicode Version 8.0 is adding 5 symbol modifier characters that provide for a range of skin tones for human emoji." [01:15:22.0000] those insensitive clods, i am drawing a monochrome font! [01:16:46.0000] its worse enough that „black“ means „filled“ and „white“ means „not filled“ in unicode. we only have this problem because almost everyone decided to make emoji colorful. :( [01:17:46.0000] erlehmann: just place U+FE0E after your emoji to get a text presentation [01:18:14.0000] (in a theoretical system) [01:18:19.0000] annevk i am drawing the symbols [01:18:34.0000] example http://daten.dieweltistgarnichtso.net/pics/icons/unifont-symbols-emoji.png [01:18:46.0000] good times [01:19:25.0000] i have NO IDEA how to draw 5 different skin tones in a monochrome 16×16 pixel grid [01:32:53.0000] erlehmann: they are doing this to spite you [01:33:47.0000] well, i read the document and i better start doing stippled patches [01:44:35.0000] erlehmann: nice trollface [01:45:09.0000] zcorpan unfortunately, my COOL FACE was the only symbol the maintainer did not merge. it did not fit with the style of the other glyphs! [01:45:34.0000] but i cannot think of a more stereotypical „grinning face with smiling eyes“! [01:46:37.0000] i found it funny how people can recognize the pictograph for levitating business man [01:57:27.0000] i'm a bit sad that this hasn't been accepted yet https://twitter.com/zcorpan/status/463577369265971200 [02:01:07.0000] an awesome idea [02:02:14.0000] Hey darobin, know what'd be an awesome idea too? [02:02:29.0000] yes, I need a nap [02:02:53.0000] plus, I've finished all the chocolate that jgraham brought me [02:03:21.0000] Or reviewing https://critic.hoppipolla.co.uk/r/2985 :) [02:03:36.0000] /me looks [02:03:37.0000] ooh nice [02:04:02.0000] not this second but definitely keeping the tab open [02:05:50.0000] Thanks :) [02:23:05.0000] erlehmann: my reading suggests you should probably use the fallback support level, i.e. not combine [02:23:20.0000] yeah [03:43:24.0000] Pile of poo should have different colors. [03:43:50.0000] karlcow you are of genious [03:57:01.0000] we have SVG fonts now. Use gradients. [04:00:53.0000] /me read "we hate SVG fonts now" [04:28:10.0000] does the URL standard purposefully ignore IPv4 addresses as hosts? [04:28:44.0000] context: I was wondering if the 127.1 shorthand was documented anywhere [04:34:20.0000] by the way, should this work: http://[0:0:0:0:0:0:0:1] [05:03:10.0000] espadrine_: it did, but that needs to be changed [05:03:30.0000] Nice, Intent to Implement for Element.prototype.closest [05:04:03.0000] espadrine_: yes, that becomes http://[::1]/ [05:04:44.0000] Domenic: nice, bz looked into at some point for Firefox, not sure what happened [05:04:52.0000] Domenic: perhaps we're afraid of event handlers biting [05:05:00.0000] apparently WebKit has it, so webcompat must not be a big issue [05:06:11.0000] https://bugzilla.mozilla.org/show_bug.cgi?id=1055533 [05:06:16.0000] Already landed in Firefox :-) [05:06:49.0000] annevk: good! (although for some reason I can't use IPv6 URLs currently, even for localhost) [06:34:39.0000] Thanks for the reply hsivonen [06:34:45.0000] will keep the bug open [06:59:48.0000] I'm really excited about the possibility of URL getting solid tests + reference implementation that conform line-by-line with the spec. Unsure if peg.js is the right road to that, but it seems like a big win for the spec in general. [07:08:52.0000] I'm a bit dismayed by Sam only looking at tests and not the original spec [07:09:20.0000] But yeah, hopefully enough iteration will get us someplace nice [07:16:55.0000] Yeah I mean ideally there would be a line-by-line reference implementation of the original spec too [07:17:07.0000] I think you had one at some point but maybe didn't keep it updated? [07:17:29.0000] Domenic: https://github.com/Polymer/url [07:18:05.0000] not many algorithm changes since january [07:18:23.0000] Domenic: yeah, not sure it's maintained :/ [07:18:33.0000] Domenic: it's easy enough to pick up again though [07:18:54.0000] Domenic: I'm mostly waiting for browsers to pick up the pace again [07:19:06.0000] annevk: yeah fair [07:19:20.0000] Someone is landing patches making Firefox match it a bit better [07:19:29.0000] E.g. doing percent-decoding for host names [07:19:49.0000] But it's hard since everything is a compat hazard [07:21:45.0000] i mean ideally aligning with some other browser would not be a compat hazard [07:22:06.0000] so if you avoid the cases where no browser aligns with the spec (and ideally fix the spec to align with at least one browser) then the patch should be acceptable [07:22:51.0000] I don't think it's that simple. The specification aligns with one browser already as far as I know. However, for things like URL fragments there's a bunch of sniffing going on in JavaScript [07:23:04.0000] Presumably for some path and query handling as well [07:23:15.0000] :( [07:23:56.0000] And all that sniffing is happening because we haven't had interoperable parsing... It's a nice circle [07:44:39.0000] hsivonen: do you think the Encoding Standard needs to change around gb18030? [07:44:51.0000] hsivonen: I know Gecko still keeps a distinction [08:19:20.0000] espadrine_: https://www.w3.org/Bugs/Public/show_bug.cgi?id=26431 [08:20:23.0000] SimonSapin: thanks! [08:32:58.0000] would you say that shift-click navigation has a pretty consistent behaviour across user agents? [08:33:44.0000] navigation doesn't, so... [08:34:45.0000] particularly the "navigate in a new frame" behaviour [09:04:42.0000] caitp why the question about shift-click? [09:04:55.0000] also i navigate using the keyboard (hands hurt if too much touchpad) [09:05:09.0000] f → follow [09:05:10.0000] d → follow in new buffer [09:05:40.0000] some sites hijack text input and make it impossible to navigate away from them [09:05:52.0000] but my keyboard does have dedicated back and forward keys (thinkpad) [09:06:12.0000] if enough browsers want to open shift-clicked links in a new frame, then angularjs should not do any processing on such clicks --- i'm just trying to figure out how big of a problem it is to just abort processing of clicks if shift is pressed [09:09:28.0000] caitp i can test [09:09:59.0000] caitp how does angular react with keyboard navigation in general? [09:10:58.0000] caitp chromium opens a new tab on strg+click and a new window on shift+click [09:11:06.0000] https://github.com/angular/angular.js/blob/master/src/ng/location.js#L775-L817 like this --- if it thinks it needs to, it will rewrite the url and prevent default [09:11:23.0000] but if you're trying to open a link in a new frame, you probably don't want that [09:12:07.0000] conkeror does nothing on both shift+click and strg+click, but it is a keyboard-focussed non-mainstream browser [09:12:51.0000] elinks follows links on strg+click, but not on shift+click [09:13:30.0000] äh [09:13:32.0000] i have a german keyboard [09:13:40.0000] strg → ctrl [09:13:48.0000] links2 follows on both, without opening new tabs or windows [09:14:54.0000] supported browsers are basically relatively modern versions of the big 5, so there isn't too much of a worry about those [09:15:27.0000] netsurf displays a download dialog on shift-click, interesting. ctrl-click makes a new window. [09:16:05.0000] caitp i wish i had something that describes the tradeoff of compatibility and accessability on one side and developer time on the other side as well as the related “better fast than correct” [09:16:11.0000] do you know one? [09:16:42.0000] unfortunately I don't :( [09:17:01.0000] iceweasel (unbranded firefox) opens a new window on shift-click and a new tab on ctrl-click. [09:17:10.0000] exactly the opposite of chromium (unbranded chrome) [09:17:39.0000] i would let alt and strg alone [09:17:47.0000] they are already used by access keys after all [09:17:49.0000] on mac, in chromium, I get menu with ctrl+click, new tab with meta+click, and new window with shift+click [09:17:50.0000] and lots of people use the modifiers [09:17:57.0000] yeah, it is platform specific [09:18:03.0000] i think any modifier should stop click capture [09:18:21.0000] or rather, this should not be measured in clicks [09:18:24.0000] i cannot copy from google homepage the links anymore [09:18:33.0000] because they apparently get rewritten on click or something [09:18:39.0000] it's why it's really too bad we don't have more information from UI Events, I really liked my idea for event "roles" to indicate what the user agent thinks you're trying to do [09:18:42.0000] so if i never „click“, i get google tracking garbage [09:19:01.0000] i think less information would be the way to go here [09:19:18.0000] write your scripts interface-agnostic [09:19:36.0000] i write my css interface-agnostic as well [09:19:37.0000] no click events and so on [09:19:37.0000] progressive enhancement instead of graceful degradation [09:19:46.0000] (stopping click procssing in corner cases is degradation) [09:20:09.0000] I think something like `if (event.role !== "navigate") return;` is a lot more interface-agnostic than worrying about different combinations of special keys [09:20:13.0000] or which button is clicked [09:21:08.0000] yeah, but you are advocating adding complexity to handle problems [09:21:12.0000] i am advocating removing complexity [09:21:38.0000] I'm not sure anyone has figured out how to really make UI "simple" [09:21:49.0000] i think different [09:22:34.0000] for example, i follow the rule that every state has to have a url. [09:23:01.0000] every state i could care about. no exceptions. [09:23:02.0000] this means i purposefully ignore stuff that i would not cram into the url [09:23:03.0000] no tracking [09:23:26.0000] and no scroll position dependent events or whatever [09:23:27.0000] it makes life vastly easier and the result easier to reason about [09:23:50.0000] but of course many people i know ask „but how do i do infinite scrolling then“ or similar stuff [09:24:11.0000] and i say “you don't. it breaks user expectations about finite documents and scrollbars.” [09:24:38.0000] i think the key to successful UI is restricting common developers, not giving them more power. [09:25:06.0000] yeah, so this is the "documents are not applications" line of thinking, and it makes sense, but I work on an application framework, not a document framework, and at some point someone decided that the web is a great platform for applications [09:25:07.0000] see podcasts and feed readers. because the format is so limited, they had quite a competition. [09:25:48.0000] caitp you can have applications. it is only that you need to manage state very carefully. [09:25:53.0000] i think that if you manage to avoid hidden state, you manage to avoid LOTS of user frustration [09:26:10.0000] it's not even a case of hidden state though, it literally is just a URL [09:26:19.0000] on a related note, avoid state explosion. [09:26:53.0000] it's just that for older browsers it's necessary to rewrite the URL, and then you've got this whole virtual URL ugly thing, and there's a need to avoid doing the wrong thing if you aren't supposed to actually navigate [09:27:01.0000] the url for a long time (before „we break your back button with impunity“ crap) set user interactions [09:27:09.0000] caitp i have written about that topic http://news.dieweltistgarnichtso.net/posts/hidden-state.xml [09:27:20.0000] oh yes, I sympathize [09:27:31.0000] history api helps a lot with this, although it's still broken in a lot of cases [09:27:35.0000] i also recommend the writings of olia lialina [09:30:25.0000] caitp almost all of the harder problems i see on the web, regardless if with wep apps or web pages or whatever, are about state and state transitions. users cannot always articulate it, but i think berners-lee really hit home with URLs. [09:30:47.0000] if web apps are the applications, the url bar is the command line of the web [09:30:50.0000] and if your web app carefully manages its state, that means you can go to every state with the command line [09:31:00.0000] something that is impossible in most, if not all, other systems [09:32:15.0000] whenever you break that expectation, you are in for a world of hurt. like a guy i know who had a special cookie-re-issuing function on hitting the back button after some action that should have been a POST (but was a GET with a cookie issued) [09:32:34.0000] sure, but the URL isn't the only way of inputting commands into this system --- user interaction also is [09:32:54.0000] so if you ahve a user interaction which sometimes wants to change the state, and sometimes wants to open a new browsing context with its own state, you have to know which one to do [09:33:04.0000] that user action is a click [09:34:10.0000] if you have a click system [09:34:14.0000] or a touch [09:34:17.0000] if you have a touch system [09:34:31.0000] or a back button or a f or the enter button or whatever [09:34:53.0000] a programmer that is sure xe will never get RSI is probably either arrogant or genetically superior [09:36:22.0000] (i use keyboard browsing because of hands) [09:36:47.0000] yeah, click isn't always available, this is true [09:38:15.0000] the focus on click reminds me of pre-mobile days [09:39:01.0000] where when one was saying “you should not rely on clicking as user interaction, do not use hover states etc.” people would respond “are you using a text browser? get with the times” [09:39:51.0000] you were saying “big five” and i suspect you mean firefox, chrome, safari, ie and one other that i don't know. but don't forget that opera was a common browser once too! [09:39:58.0000] erlehmann: and you can say, not everyone in the world can see or hear. [09:39:59.0000] so compatibility is really hampered by that stuff [09:40:41.0000] boogyman yes, which is why i focus on progressive enhancement and not graceful degradation. [09:40:42.0000] also, there are many times where your users are not even people. [09:41:16.0000] yes, which is why i focus on proper semantics and outlines. [09:41:44.0000] and test everything with curl. if that is too complicated, my interface is shit. [09:42:19.0000] a friend of mine made something that could literally not tested with curl, because his “REST API” made each call consist of two calls, the first to grab the session [09:42:29.0000] needless to say, he was the only user of his API [09:42:49.0000] that doesn't sound very restful [09:44:01.0000] In my opinion that's okay if the identifier for that session is part of the authentication/authorization mechanism. [09:45:15.0000] i have never seen a use case where something involving sessions could not be done without sessions, except for hiding the state of the system from the user. [09:45:21.0000] like tracking cookies. [09:45:42.0000] erlehmann: access control [09:46:51.0000] boogyman RESTful access control does not need sessions. just send credentials on every request. in before “it is in secure” – yes, not using transport encryption is insecure. [09:47:37.0000] i think stateless systems vs. stateful systems have the same problem as functional programming vs. imperative programming. one is vastly easier to grasp for many and works well enough for 80% of the use cases. [09:47:59.0000] but, there are many HTTP based API's that claim to adhere to RESTful principles, when really, they are just HTTP based. [09:49:14.0000] indeed [09:50:23.0000] annevk: in the course of writing this email I've mostly convinced myself that overloading body to allow a function is the least-bad option. [09:53:22.0000] what [09:53:26.0000] Domenic explain [09:56:48.0000] heh [09:58:05.0000] boogyman richardson maturity model [09:58:13.0000] boogyman read http://martinfowler.com/articles/richardsonMaturityModel.html [09:59:18.0000] erlehmann: ? [09:59:50.0000] boogyman it is a good overview regarding levels of RESTfulness [10:00:37.0000] okay. I'll keep that in my mind when I'm referring others. [10:05:20.0000] caitp maybe one could manage application state easier with checking querySelectorAll, :target and :focus [10:05:25.0000] leverage the browser state machine! [11:03:57.0000] From the stuff I work on, the Encoding Standard seems to approach stability the fastest, while I would have expected it to take a very long time... [11:04:22.0000] Getting to the point of only a few outstanding issues [11:05:41.0000] am i right that all Function objects you create in JS (i.e. those that aren't weird things we provide in the web api) have a [[Construct]] ? [11:06:17.0000] Hixie: Yeah. [11:06:26.0000] k, thanks [11:07:26.0000] is it also always true that, assuming you haven't fiddled with it, if F.prototype == O, O.constructor == F? [11:07:52.0000] no [11:09:30.0000] Multiple functions can share a prototype. [11:12:57.0000] so what does O.constructor return? [11:14:19.0000] if B extends A, `new B`'s constructor is B, but if you walk up the prototype chain, you'll run into an object whose constructor is A [11:14:38.0000] by "constructor" you mean "value of the constructor property"? [11:14:46.0000] yes [11:19:30.0000] class { constructor () { a() } foo() { b() } } returns a Function that calls a() with a .prototype that has one member 'foo' that is a function that calls b(), and one member constructor that points to the Function that calls a()? [11:20:22.0000] so i can do the same with var q = { foo: function foo() { b() } }; var f = function() { a() }; f.prototype = q; q.constructor = f; ? [11:20:27.0000] are those distinguishable in any way? [11:23:30.0000] well, they would be slightly different, but they'd basically behave the same [11:23:39.0000] how would they be different? [11:23:58.0000] q would be missing a constructor property, for one [11:24:20.0000] "q.constructor = f;" doesn't work? [11:24:28.0000] oh, I must have missed that [11:24:35.0000] k [11:24:48.0000] it does work, but is still slightly different, since assignment will set up the property descriptor differently [11:25:03.0000] observable difference but you'd have to be pretty nitpicky to observe it [11:27:53.0000] i should use defineProperty instead of assignment? [11:29:18.0000] it would be a data property which is not enumerable, is writable and configurable [11:30:17.0000] actually, it looks like there are cases in the spec where it's not writable/configurable [11:31:24.0000] how about: var q = { foo: function foo() { b() } }; var f = function() { a() }; Object.setPrototypeOf(f, q); Object.defineProperty(q, 'constructor', { value: f, writable:true,enumerable:false,configurable:true }); [11:31:45.0000] is that distinguishable? [11:32:26.0000] annevk: no idea about the actual needs re gbk [11:33:10.0000] setPrototypeOf will change __proto__ or the internal prototype, not `prototype` [11:33:17.0000] hsivonen: okay, since Firefox has this split decoder / encoder setup and the spec doesn't and there's no open bug... I guess I should file a bug to at least track it [11:33:26.0000] hsivonen: against the spec that is [11:33:35.0000] annevk: makes sense [11:35:04.0000] caitp: oh right [11:36:05.0000] how about: var q = { foo: function foo() { b() } }; var f = function() { a() }; Object.defineProperty(f, 'property', { value: q, writable:false,enumerable:false,configurable:false }); Object.defineProperty(q, 'constructor', { value: f, writable:true,enumerable:false,configurable:true }); ? [11:36:31.0000] (and why on earth do those properties have different settings) [11:39:39.0000] hsivonen: it seems we should still have a Firefox bug on making them use the same table so we can save memory [11:39:48.0000] hsivonen: I can file that too if you agree [11:41:50.0000] can you tell in a constructor if you were called with "new" or not? [11:43:17.0000] Hixie: sort of [11:44:37.0000] the way people usually use is `function Constructor() { 'use strict'; if (!this) { /* function was just called normally */ }` [11:45:01.0000] or `if (!(this instanceof Constructor)) return new Constructor(...)` --- but those methods are fallible [11:46:51.0000] huh, there really isn't a way, it looks like [11:46:52.0000] that's odd [11:47:14.0000] each engine has their internal ways of figuring out, but none exposed publicly [11:49:50.0000] hsivonen: https://bugzilla.mozilla.org/show_bug.cgi?id=711101 removing IBM encodings is fixed, no? [11:52:13.0000] Yeah, it's always possible to trick the "was I called with new?" tests by passing things in via .call(). There's no language-provided way to tell. [11:52:28.0000] I usually use caitp's second test. [11:55:08.0000] https://esdiscuss.org/topic/new-instantiation-design-alternatives I think there were some ideas tossed around about providing a way to know here [11:55:13.0000] but I can't remember, and it was a long thread [11:57:32.0000] if it can be faked, there's not much point checking at all, except for like an assert() or something [12:00:33.0000] Hixie: Main use-case for checking is to allow the function to be called with or without "new". [12:00:49.0000] why would you want that? [12:00:55.0000] which is the case for some builtins [12:00:59.0000] ...so you can call it without "new"? [12:01:09.0000] new String() and String() do different things [12:01:23.0000] that seems like a very confusing API [12:01:35.0000] One's a constructor, one's a converter. [12:01:49.0000] lots of bad decisions were made with JS, but most of them were made when I was less than 4 feet tall [12:01:53.0000] Also, sometimes to allow you to construct an object without "new". [12:01:56.0000] so, it was bound to happen [12:02:25.0000] Like if you have a very simple object that's going to get constructed a lot, the extra noise of "new " can get distracting. [12:03:56.0000] For example, my bignum class at https://github.com/tabatkins/bignum would be much harder to use if you had to say "new Z(5).add(new Z(6))" all the time. [12:04:12.0000] It's bad enough that you have to do "Z(5).add(Z(6))", because we dont' have operator overloading yet. [12:04:46.0000] supporting both seems like a very confusing API to me, but i guess opinions may vary :-) [12:05:45.0000] Disallowing "new" for a constructor would be super-confusing as a consistency break. [12:05:53.0000] Not to mention feeling really perverse. [12:06:46.0000] I thought new-style would require it to allow subclassing, but I guess that might be changed [12:07:05.0000] Bignums should just be part of the language [12:07:57.0000] annevk: Well, yes, of course they should be. That's not the point of my example. ^_^ [13:00:41.0000] anyone know how custom elements work? i'm trying to figure out how/whether browsers are supposed to avoid huge bloat from every custom element having its own copy of style [13:02:07.0000] Hixie: Domenic prolly does [13:02:23.0000] he's probably at blinkon [13:03:20.0000] Hixie: bz maybe [13:08:05.0000] what do you mean by "own copy of style"? [13:10:53.0000] i mean its own