| 07:57 | <sangwhan> | If I understood the intention correctly - transform streams are only intended to be used to build linear (non-branching) transformation pipelines, is this correct? |
| 07:58 | <sangwhan> | e.g. not this: https://upload.wikimedia.org/wikipedia/commons/5/55/ArquitecturaPipeAndFilter.jpeg |
| 08:33 | <annevk> | sangwhan: afaik they have an input and output, but what you do inside is up to you |
| 08:33 | <annevk> | sangwhan: so you could tee the input, do something, and then combine it again before sending it onward |
| 08:35 | <sangwhan> | annevk: okay, so tee then doing two parallel transforms is supposed to work? |
| 08:36 | <annevk> | sangwhan: I mean, I don't see why not? But I'm very far from an expert |
| 08:38 | <sangwhan> | annevk: Neither am I - trying to figure out how to combine the two later |
| 08:40 | <sangwhan> | I guess you just read from two and do your thing, I think I'm slowly making sense out of this now |
| 08:40 | <annevk> | sangwhan: yeah, that's how I'd think of it too |
| 08:42 | <sangwhan> | annevk: thanks, think I can probably scrub that off the list now :) |
| 09:50 | <annevk> | MikeSmith: interested in helping gathering data on h1/hgroup? https://github.com/whatwg/html/issues/83#issuecomment-360415905 |
| 09:51 | <MikeSmith> | annevk: hai |
| 09:51 | <MikeSmith> | Steve pinged me about that too |
| 09:52 | <MikeSmith> | will add some use counters to the checker |
| 09:52 | <annevk> | <3 |
| 09:54 | <annevk> | Ms2ger: is https://github.com/whatwg/html/issues/3323#issuecomment-360413258 an argument for WebKit's behavior? |
| 09:54 | Ms2ger | looks what webkit does |
| 09:54 | <annevk> | Ms2ger: I don't really understand what you mean by it |
| 09:54 | <Ms2ger> | Yes |
| 09:55 | <annevk> | Ms2ger: but 300/150 is not the maximum size in WebKit, so it's not logical rounding |
| 09:55 | <tantek> | wait hgroup is still a thing? |
| 09:55 | <annevk> | Ms2ger: it looks much more like trying and then falling back to a default |
| 09:55 | <annevk> | tantek: euh yes? |
| 09:56 | <Ms2ger> | annevk, 300x150 is the size of the canvas argument |
| 09:56 | <annevk> | Ms2ger: ah okay, so what does WebKit do if the <canvas> is too large? |
| 09:57 | <Ms2ger> | Throw RangeError, I think |
| 09:57 | <Ms2ger> | Lemme check if there's a test for that |
| 09:59 | <Ms2ger> | Oh no, InvalidStateError (not sure why) |
| 09:59 | <Ms2ger> | http://w3c-test.org/2dcontext/imagebitmap/createImageBitmap-invalid-args.html ("createImageBitmap with an oversized canvas source.") |
| 10:12 | <annevk> | Ms2ger: I see, if you do eager clipping the WebKit behavior makes some |
| 10:16 | <Ms2ger> | I think that makes the most sense, but I'm happy whichever way you go, as long as it's clear :) |
| 10:29 | <annevk> | "As long as it's clear" such a high bar |
| 10:55 | <Ms2ger> | It's canvas, so I'll settle for "sorta clear" ;); |
| 11:19 | <jgraham> | Trasparent black? |
| 11:32 | Ms2ger | covers jgraham in transparent black |
| 14:32 | <annevk> | tobie: I think you don't understand, the idea is that you pay the W3C: https://www.w3.org/support/ |
| 14:33 | <annevk> | tobie: that's how you become a friend, not by doing unpaid work |
| 14:34 | <tobie> | annevk: oh boy. What is this even |
| 14:35 | <annevk> | tobie: it's a way to get even more enraged on Twitter |
| 14:36 | <annevk> | tobie: this reminds me of how you get a certificate for being a chair, but not even a thank you for tons of editing/review work |
| 14:37 | <jgraham> | tobie: Less helpfully, it's "As if on cue", not "queue". Isn't English wonderful. |
| 14:37 | <jgraham> | You get a certificate? |
| 14:37 | <jgraham> | hahahaha |
| 14:39 | <tobie> | jgraham: arg. I had doubts about that when I wrote it. should have checked. |
| 14:41 | <tobie> | also I blame data structures. |
| 14:44 | <tobie> | This is all sangwhan's fault for tweeting about this in the first place. |
| 14:45 | <nox> | annevk, tobie: MFW we don't even remember what's an identifier |
| 15:01 | <tobie> | nox: I'm not super I follow. :-/ |
| 15:01 | <tobie> | *super sure |
| 15:01 | <nox> | tobie: https://github.com/whatwg/html/issues/3238#issuecomment-360486782 |
| 15:02 | <tobie> | nox: oh! |
| 15:02 | <tobie> | nox: we can easily tweek that rule |
| 15:02 | <nox> | Can we twerk the rule? |
| 15:03 | <nox> | Anyway, yeah we can definitely change WebIDL, I was just stating its current state. |
| 15:03 | <tobie> | me and spelling aren't friends today |
| 15:04 | <tobie> | nox: sure. But sometimes it's a lot harder to do so. For that particular case, it's actually really simple. |
| 15:05 | <tobie> | nox: given the current state its an artificial subset of what the grammar supports |
| 15:05 | <tobie> | nox: *is |
| 15:05 | <nox> | tobie: Yep yep. |
| 15:06 | <nox> | tobie: Also, I enjoy how Edge's WebIDL parser seems to be waaaaay more liberal than any other. |
| 15:06 | <tobie> | nox: I'm not sure I actually want to hear about that. |
| 15:06 | <nox> | tobie: Oh no I'm not saying it's a bad parser, |
| 15:06 | <nox> | just that they didn't seem to have implemented a lot of artificial constraints from the spec. |
| 15:07 | <tobie> | nox: neither was I implying that's what you were saying. |
| 15:07 | <tobie> | nox: I'd just like not to have interop parsing issues between different WebIDL implementations. |
| 15:08 | <nox> | tobie: Found what I had in mind: https://github.com/whatwg/html/issues/775#issuecomment-190851825 |
| 15:08 | <nox> | "legacycaller getter (HTMLCollection or Element)? item((unsigned long or DOMString) nameOrIndex);" YOLO |
| 15:12 | <tobie> | 🙈 🙉 🙊 |
| 15:14 | <Ms2ger> | nox, what's disallowed about that? |
| 15:14 | <nox> | Ms2ger: Can't combine legacycaller and getter (IIRC, not sure I remembered that part well), and a getter argument type must be unsigned long or DOMString, it can't be an union of them, or be anything else. |
| 15:15 | <Ms2ger> | Oh, fair |
| 15:15 | <nox> | Ms2ger: But yeah, it does sound weird, |
| 15:16 | <nox> | their parser and the semantics they give to WebIDL are cleaner, but it's not like we are going to change all existing parsers and toolchains for the sake of the orthogonality of features. |
| 18:58 | <annevk> | Domenic: tobie: if you want to refer to the JavaScript value of something that passed as "any" across the boundary, what's the pattern for that? https://github.com/whatwg/html/pull/3370#pullrequestreview-91552683 |
| 18:58 | <annevk> | Domenic: tobie: the conversion it does at the moment seems wrong, since there's no conversion afaik, there just exists a JS value |
| 19:35 | <Domenic> | annevk: tobie and I talked about making this more explicit last week. We think maybe requiring explicit coercion makes the most sense even for types that are just 1-1 containers like any or interface types. |
| 19:36 | <annevk> | Domenic: ok, I guess I’ll leave this then |
| 19:36 | <Domenic> | We'd make this explicit by defining "corresponding IDL value" and "corresponding ECMAScript value" or similar. |
| 19:37 | <Domenic> | Right now there are several handwavey phrases used inside the Web IDL spec. Outside that spec I guess most people use conversions. |
| 19:38 | <annevk> | Allowing an IDL any to be passed to dict extraction might be nice too |
| 19:38 | <annevk> | And I guess using Type() on IDL any is wrongish too |
| 19:38 | <annevk> | Need to reverse those steps |
| 19:40 | <Domenic> | I argued a bit for allowing implicit interchange between those types. But I realized I am biased because I work a lot in spec areas that are on the boundaries. So for most people allowing implicit treatment as either would be confusing. |
| 19:42 | <annevk> | sg |
| 21:20 | <lgrahl> | Hey everyone. :) |
| 21:20 | <lgrahl> | annevk: ping |
| 21:21 | <annevk> | Heya, I hope Domenic can help you out as I’m about to sleep 💤 |
| 21:21 | <lgrahl> | Okay, no worries. |
| 21:22 | <lgrahl> | Domenic: ping |
| 21:22 | <Domenic> | What's up? |
| 21:22 | <lgrahl> | Have you had a look at the data channel streams discussion lately? |
| 21:24 | <Domenic> | I've been trying to follow, although I haven't had time to really digest. My main impression is that you all know more about the data channel domain than I do, and in the streams domain you seem to be pretty on track as well, so I'm positive :) |
| 21:24 | <lgrahl> | That's good for starters. :) Do you have an idea what Harald is on about (https://github.com/w3c/webrtc-pc/issues/1732#issuecomment-360507120)? I'm quite puzzled... |
| 21:25 | <lgrahl> | Is there something related to Blob I have not seen so far? |
| 21:25 | <Domenic> | Hmm |
| 21:26 | <Domenic> | I mean they're vaguely related in that both blobs and streams allow you to not hold the data all in memory at one time? |
| 21:26 | <Domenic> | It almost feels like a wrong-thread though, weird. |
| 21:27 | <lgrahl> | I thought maybe you're familiar with Blob as well and there's some way to get a stream out of a Blob... even though I can already see that it would fail on the receiver side with the current API. |
| 21:28 | <lgrahl> | Because it really is a chicken-egg problem: How do I know what the user wants to do with the data (in form of a Blob) before it's complete. |
| 21:30 | <Domenic> | Ah, there is a hacky way to convert blob to stream actually |
| 21:30 | <lgrahl> | What would really help me is a side-by-side comparison of streams vs. Blob. I think that should do as a viable response to that comment. Do we have something like that somewhere? Thinking of stuff like backpressure, ... |
| 21:30 | <Domenic> | (new Response(blob)).body |
| 21:31 | <lgrahl> | Ah sure, using the body mixin. |
| 21:31 | <Domenic> | I guess we don't have that preexisting, because they're really different... you can't actually get at the data in the blob without using FileReader which is a huge mess... |
| 21:31 | <lgrahl> | Yeah, it is and it's also really, really slow. |
| 21:33 | <lgrahl> | (In case you're interested how slow in comparison: https://jsperf.com/dc-reassembly) |
| 21:35 | <lgrahl> | Okay, so we don't have that... but is there a short document that emphasizes the advantages of streams in comparison with what we have in browsers at the moment? |
| 21:41 | <lgrahl> | What I have in mind is: Handling backpressure on both sides (I'm not actually sure the term 'backpressure' is applicable to both sides), low-level API when needed, high-level API when possible (pipeTo), ... and I'm sure there are other advantages I haven't considered, yet. |
| 22:08 | <lgrahl> | Domenic: Ping (still there?) :) |
| 22:09 | <Domenic> | lgrahl: sorry, in meetings for the next while |
| 22:09 | <Domenic> | https://github.com/whatwg/streams/blob/master/Requirements.md and https://github.com/whatwg/streams/blob/master/FAQ.md might be somewhat helpful |
| 22:10 | <Domenic> | https://streams.spec.whatwg.org/#intro and the following section probably should help too |
| 22:10 | <Domenic> | But in the end we might be missing exactly what you describe, which is good feedback and we should fix... |
| 22:11 | <lgrahl> | Cheers! I'll have a look at these. |
| 22:15 | <Domenic> | (ricea ^) |