09:06:21 RRSAgent has joined #tagmem 09:06:21 logging to http://www.w3.org/2014/01/09-tagmem-irc 09:06:23 RRSAgent, make logs public 09:06:23 Zakim has joined #tagmem 09:06:25 Zakim, this will be TAG 09:06:25 I do not see a conference matching that name scheduled within the next hour, trackbot 09:06:26 Meeting: Technical Architecture Group Teleconference 09:06:26 Date: 09 January 2014 09:06:46 Yves We are online on https://opentokrtc.com/w3ctag 09:08:41 Scribe: Alex 09:08:55 trackbot, start meeting 09:08:57 RRSAgent, make logs public 09:08:59 Zakim, this will be TAG 09:08:59 I do not see a conference matching that name scheduled within the next hour, trackbot 09:09:00 Meeting: Technical Architecture Group Teleconference 09:09:00 Date: 09 January 2014 09:09:22 scribenick: slightlyoff 09:09:29 chair: dan 09:10:14 [ UK train service isn't what it used to be ] 09:10:21 Topic: 209 response code 09:11:00 Topic: 209 09:11:41 TBL: the way the web works today is that if you get a 200 response, what you get back is a representation of what you asked for 09:12:19 see http://www.w3.org/2001/tag/awwsw/issue57/20120202/#status-code 09:12:29 thanks, JeniT 09:12:31 ht has joined #tagmem 09:13:13 TBL: it's not arguing over what "representation" means in great detail, but we can just say that there are times when the server does that (e.g., redirects), and we have many of these situations 09:13:25 TBL: e.g., you should be using that URI instead 09:13:41 s/server does/server doesn't do/ 09:13:49 TBL: 303 indicates that "I'm not going to give you the answer, nor a way to find it, but somplace where you can find out how to get an answer" 09:13:59 thanks, ht 09:14:36 TBL: this was used famously in SemWeb stuff where people want to identify objects using URIs with hashes in them 09:15:02 TBL: in this case, the hash used the hash to separate the document from the object 09:15:16 TBL: there are cases where something wants to represent, e.g., a school 09:15:39 TBL: the 303 opens up the possibility that you can redirect to documents that talk about things which don't represent them 09:15:52 dka_ has joined #tagmem 09:16:01 TBL: this was a decent compromise except that real systems that dereference URIs now have to pay for an extra round-trip 09:16:09 TBL: 303 was logically sound, but sucked in practice 09:17:05 TBL: post SemWeb, we have similar situations that arise; linked-data folks who get data want to return a first page but not an entire data set up-front 09:17:15 TBL: and yesterday we discussed packages (E.g., for CSV or for icons) 09:17:27 we have a draft on this at http://www.w3.org/TR/urls-in-data/ 09:17:35 TBL: one possible thing to do is to return a 303 that redirects to a package 09:18:01 TBL: in all of these situations, we have bodies that are RELATED to items, but are not them logically 09:18:12 q+ to check a paraphrase: 2xx == "i could have given you a 303, but I'll save you the trouble of the refetch by giving you the result of that right away" 09:18:26 TBL: if we were redesigning HTTP, we might do this with a different success code...the logical thing to do now is a new error code 09:18:30 q? 09:18:51 q+ to highlight why we haven't recommended this previously 09:18:52 TBL: if client software gets a 20x treats it as success if it doesn't understand it 09:19:05 TBL: this enables caches and proxies 09:19:44 TBL: a smart proxy might understand the new status code and start building up a list of related resources 09:19:58 TBL: a dumb proxy would just repeat/passthrough 09:20:07 q+ ht2 to ask about proxies and response codes 09:20:12 TBL: in each application, a smarter client can do the right thing...paging, e.g. 09:21:06 TBL: we have some places where this will be useful and places where 303 has caused damage. It'd be good if the TAG could find a way to make 20x a reality. 09:21:23 TBL: the problem is that the W3C folks view working in IETF as a burden that they aren't ready to shoulder 09:21:38 dka: someone needs to write an RFC? 09:21:42 q? 09:21:44 JT: ht and I are doing that 09:21:45 ack ht 09:21:45 ht, you wanted to check a paraphrase: 2xx == "i could have given you a 303, but I'll save you the trouble of the refetch by giving you the result of that right away" 09:22:06 s/ht and I are doing that/ht and I are on the queue/ 09:22:56 ht: whatever other properties this has, you're not introducing new semantics, you're just saying "here's a short circuit for your request", right? 09:22:59 [ agreement ] 09:23:02 ack jenit 09:23:02 JeniT, you wanted to highlight why we haven't recommended this previously 09:23:17 timbl has joined #tagmem 09:23:27 q+ ht3 to worry about the _principled_ reason for using hashless URIs 09:23:37 JeniT: to also talk about history, we've talked about this previously, and we've published the URLS in Data draft: http://www.w3.org/TR/urls-in-data/ 09:23:59 JeniT: one of the problems that 303 has is that hacking headers and response code is hard for some people (adoption burden) 09:24:27 JeniT: the other issue is a question of friendliness; do proxies, etc. actually do the right thing in the face of the new code? 09:24:45 JeniT: the fact that we didn't recommend 20x in the past doesn't mean that we shouldn't do this now 09:25:12 JeniT: I would view it as the role of the W3C/IETF liason to enable WGs to register these status codes 09:25:19 JeniT: I'm not sure that _we_ need to do anything here 09:25:21 q+ ht4 to ask Yves about process 09:25:23 (as the TAG) 09:25:35 JeniT: ...that is, unless we want to revisit those previous decisions 09:25:43 JeniT: e.g., why are revisiting this now? 09:26:06 TBL: it's sad when we can't make design progress because we feel that server design or configuration is too fixed 09:27:04 [ review of Content-Type difficulities with packaging, e.g. ] 09:27:43 TBL: Yves is an apache committer...we might want to go back into that analysis 09:28:22 Got a cab. Will be there shortly 09:28:24 TBL: the people who were pushing for URIs without hashes in them were companies that had built their severs without flexibility to handle them...they had pursued other options 09:28:26 wycats_: no worries 09:28:47 TBL: people who want to publish on servers without .htaccess ahve the ability to just post a lot of files. 09:29:13 JeniT: I'd like to see analysis that clients et. al. do the right thing with 2XX codes they don't understand 09:29:23 JeniT: if there are WGs that want this, why don't thye do it? 09:29:27 TBL: they don't have the engergy? 09:29:37 JeniT: who has got the energy? 09:29:51 TBL: nobody (proximately), which is why I bring it here 09:29:56 s/engergy/energy 09:30:01 TBL: we have a broader view 09:30:11 q? 09:30:17 TBL: and can leave the architecture cleaner 09:30:25 q? 09:30:43 ack ht4 09:30:43 ht4, you wanted to ask Yves about process 09:31:46 ht: counter argument is "it's too late, HTTPbis is so close to being done that there's no room for this" 09:31:57 ht: once HTTPbis is done, what's the process for new status codes? 09:33:03 http://tools.ietf.org/id/draft-reschke-http-status-308-07.html 09:33:09 Yves: see status code 308, which was introduced when we working on httpbis and it was defined as an external draft intended to become an RFC post HTTPbis 09:33:30 Yves: once that document becomes an RFC, it'll be incorporated into the status code repository at IANA 09:33:38 Yves: the requirement is an IETF review 09:33:52 JeniT: does the status code repo exist at IANA? or is it soemthing new? 09:34:10 http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml 09:34:11 Yves: I think it exists. It contains HTTP and WebDAV statuses...probably others 09:34:16 thanks, JeniT 09:34:37 JeniT: so the answer is, if you want 209, write an RFC and then it gets put into that repository? 09:34:39 Yves: yep 09:34:51 Yves: if you look at 308, the doc can be pretty small 09:34:53 q- ht2 09:35:18 slightlyoff: wrt 308, was there experience with 308 & intermediaries? 09:35:22 q? 09:35:27 AR: was there experience with intermediaries? 09:35:48 Yves: it will be interpretted as a temporary redirect by proxies that don't understand it 308 09:36:00 ht: why do you think that's the case? why will they do anything at all with 308? 09:36:09 Yves: it's defined in HTTPbis 09:36:14 Yves: similar for 2XX 09:36:16 See http://tools.ietf.org/id/draft-reschke-http-status-308-07.html#deployment.considerations 09:36:44 ht: it's in the HTTPbis spec...but most deployed proxies predate it. Is it standard to do this fallback thing? 09:36:56 Yves: this is from 2616 and 2608 09:37:05 Yves: if you don't know the status code, you fallback to the generic version of it 09:37:07 q? 09:37:09 ack ht3 09:37:09 ht3, you wanted to worry about the _principled_ reason for using hashless URIs 09:37:38 can someone give me the tl;dr of what we're discussing? 09:37:48 ht: I think it's necessary to note that there were 2 reasons people didn't and won't use 303, and might not want 209: 1.) the performance reason 2.) people disagree about what a "representation" is 09:38:05 ht: there are plenty of people who think that serving 200 is reasonable 09:38:16 (e.g., WRT serving RDF w/ 200) 09:39:07 ht: JeniT, Jonathan, and I concluded that there was no basis in the published spec to elide that view...HTTPbis doesn't change that 09:39:17 ht: we all agreed that we don't want to force agreement about what 200 "means" 09:39:42 http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-25#section-6 states that unrecognised status code xyy must be interpreted as x00 09:39:44 [ discussion of history ] 09:39:51 [ it's complicated ] 09:40:15 ht: we can say that it's not clear from the existing specs that "document about X" is a representation of X or not. 09:40:40 ht: i want the record not to suggest that perf was the only reason 09:41:05 ht: maybe there's a good argument for 209 if it won't break the web 09:41:50 dka: I'd like us to think more broadly 09:42:00 ht: I'd like this to piggyback on the semantics of 303 09:42:32 TBL: you'll find people who will argue that clients can figure it out in an app-specific way 09:42:37 q+ to ask about the Location field 09:42:40 ack jeni 09:42:40 JeniT, you wanted to ask about the Location field 09:42:45 TBL: many people won't worry about the architecture being crisp 09:43:14 JeniT: just looking at 303, an important thing about it is that it gives you another URL 09:43:22 JeniT: it points at another URL 09:43:36 JeniT: an important issue for a 209 spec is "where does that other URL come from?" 09:43:49 [background] 09:44:03 JeniT: if 209 is spec'd in terms of 303, where does the other URL come from? 09:44:15 TBL: the "Location:" header 09:44:17 q? 09:44:35 PL: that lets you fill caches 09:44:41 [agreement] 09:44:56 DKA: what's the work that needs to be done? who's going to do it? 09:45:05 DKA: also, do we think there would be pushback? 09:45:29 there can be pushback if the story of default behaviour is not the right one 09:46:42 ht: we'd hope the caching would be the same, but I don't know and we'd need to look 09:46:58 ht: stipulating that we can work thorugh that, the RFC might need not be larger than the 308 RFC 09:47:19 TBL: the security implications are larger, thanks to x-origin fetches 09:48:02 [discussion of content caches across origins] 09:48:24 JeniT: e.g., you're filling a cache in lieu of another URL/fetch 09:48:33 ht: right, so there's no reason to suppose I'm not lying 09:49:27 [discussion of Location header] 09:50:06 AR: why would it be allowed to front for another origin? 09:50:59 TBL: in practice, you'd go to dbpedia.org/resources/paris, and it gives you a 303 to some other place (perhaps very intricate) 09:52:21 AR: ISTM that a browser should ignore 209s under this idea... 09:52:39 AR: if evil.com can claim it's serving content for good.com (while you're on good.com), that's pretty nasty 09:52:46 Content-location header: http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-24#section-3.1.4.2 09:53:13 JeniT: a new client that understands 209 and understands the different base URL will behave differently to a client that only understands 200 09:53:42 dka: does this mean it's not useful on the web? 09:54:20 AR: you need more restrictions; e.g., you need to dissalow x-origin content 09:54:43 PL: what about signed content? if good.com signs it, who cares where it's hosted? 09:54:51 YK: that's a common use-case 09:54:55 Location header: http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-24#section-7.1.2 09:55:00 JeniT: 2 issues: back-compat and security 09:55:08 TBL: back-compat is about base URL 09:55:19 HT: can I bring us back to the header question? (see refs above) 09:55:33 HT: "Content-Location" appears to be what you want 09:55:58 HT: the semantics of "content-location" is to say "this is the content", while "Location" says, "it's over there" 09:56:08 HT: the "Content-Location" does seem to say what you want 09:56:37 [discussion of baseurl] 09:56:59 Yves: there was a case earlier where Content-Location was modifying the BaseURI, everyone ignored it, and it was removed from HTTPbis 09:57:15 TBL: but Content-Location defines the baseuri of the application? 09:57:29 [inaudible] 09:57:43 Topic: Responsive Images 09:57:44 PROPOSED ACTION: Yves to draft an analysis document detailing these issues discussed on 209 with a view towards this document being fodder for an RFC. 09:58:44 ACTION: Yves to draft an analysis document detailing these issues discussed on 209 with a view towards this document being fodder for an RFC. 09:58:45 Created ACTION-851 - Draft an analysis document detailing these issues discussed on 209 with a view towards this document being fodder for an rfc. [on Yves Lafon - due 2014-01-16]. 09:59:16 s/is to say "this is the content", while "Location" says, "it's over there"/is absolute, w/o regard to response code, so will be backwards compatible, whereas "Location" is specified to have response-code dependent semantics, and so _will_ raise compatibiity issues/ 10:00:30 [discussion of attestation WRT security relatinship...etag proposed and rescinded] 10:00:31 "If Content-Location is included in a 2xx (Successful) response 10:00:32 message and its field-value refers to a URI that differs from the 10:00:33 effective request URI, then the origin server claims that the URI is 10:00:35 an identifier for a different resource corresponding to the enclosed 10:00:36 representation. Such a claim can only be trusted if both identifiers 10:00:37 share the same resource owner, which cannot be programmatically 10:00:38 determined via HTTP." 10:00:40 -- http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-24#section-3.1.4.2 10:00:45 Topic: Responsive Images 10:00:55 Slides: http://yoavweiss.github.io/respimg-tag-presentation 10:02:01 Present: Dan, Jeni, Alex, Tim, Anne, Henry, Sergey, Peter, Yehuda, Yoav 10:02:12 YY: [introduction, working in webkit/blink as well as the RICG] 10:02:40 annevk has joined #tagmem 10:02:51 YY: I'll start by describing the problem: the basic definition is that we're trying to serve the right images to the right devices in an efficient manner 10:03:00 YY: it seems like an easy problem, but is harder than it looks 10:03:30 YY: the reason it's important is that Responsive Web Design is arguably the future of web design. Serving dedicated versions of sites to each client doesn't scale. 10:03:49 YY: original approach was to serve large images and let clients resize 10:03:59 YY: RWD became synonymous with slow 10:04:16 YY: there are tons of savings to be made by resizing images to the device 10:04:32 YY: retina made things worse. Widened the gap between low-and-high-end devices. 10:04:50 YY: RICG was foudned 1.5 years ago. We created a use-cases document that described what needs to be done. 10:05:07 YY: 3 major use-cases: retina images to retina devices (not low-end devices) 10:05:29 YY: viewport switching: variable width images. SHould be adapted to viewport dimensions 10:05:41 YY: Doesn't mean that a smaller viewport gets a smaller image 10:06:03 YY: DPR switching and viewport switching have image dimensions in common, but no quality 10:06:26 YY: 3rd use-case is Art Direction: takes image adaptation futher. Images that are more relevant to content. 10:06:42 YY: expanding context with available size; alternative crops 10:07:00 YY: since the problem is perf, we want to play well with the preloader 10:07:08 YY: proposed standard solutions are: 10:07:19 YY: the revised element + client hints headers 10:07:28 YY: these can and should work together 10:07:43 YY: revised merges 3 previous proposals 10:07:57 http://picture.responsiveimages.org/ 10:08:52 YY: new picture uses the old picture's art-direction solution and it adopted the "srcn" proposal 10:09:10 YY: is used for art direction. srcset indicates DPR/dimensions 10:09:23 YY: the "sizes" give the ability to hint correct sizes 10:09:29 [ example code ] 10:09:52 (see http://yoavweiss.github.io/respimg-tag-presentation/#/22) 10:10:59 YY: dpr switching in this way is implemented in blink and webkit 10:11:13 YY: next, art direction (slide: http://yoavweiss.github.io/respimg-tag-presentation/#/23) 10:11:44 YY: can also work with DPR 10:12:49 YY: viewport switching 10:13:02 YY: (example code: http://yoavweiss.github.io/respimg-tag-presentation/#/25) 10:15:19 [questions about what "viewport" means] 10:18:00 http://www.xanthir.com/b4PR0 10:18:22 ^^ Tab Atkins discussing element queries 10:18:55 [discussion about viewports vs element queries] 10:20:34 [css is hard] 10:20:46 TBL: what about iframes? 10:20:55 PL: the viewport is the size of the frame 10:21:02 YK: you don't want to use iframes for all images 10:21:55 [discussion about calculation difficulity] 10:25:04 (http://yoavweiss.github.io/respimg-tag-presentation/#/26) 10:26:12 YY: Tab Atkins is working on a proposal for coverage 10:26:29 YY: we need things to be calculated before layout 10:27:01 YY: to cover the srcset syntax in that case, we define resources in terms of width or height 10:27:10 TBL: if I zoom in, does the viewport size increase? 10:27:20 YY: it's a mangifying glass on mobile browsrs. 10:28:12 PL: we're talking about a way in the CSS WG to specify optical zoom 10:29:47 [ discussion of accessibility zoom vs pinch zoom ] 10:29:54 YY: that's the proposal 10:30:06 YY: client-hints are an HTTP-based content negotiation solution 10:30:17 YY: the client declares its capabilities and the server decides what resource to send 10:30:25 YY: the request headers are: CH-DPR 10:30:42 CH-RW 10:30:49 http://yoavweiss.github.io/respimg-tag-presentation/#/30 10:31:15 q+ to ask whether the Vary: header will flag this form of conneg 10:33:03 YY: client-hints is opt-in only. If sent on all requests can introduce some bloat to HTTP 10:33:04 tim, it should. 10:33:34 q+ 10:33:37 q+ fractional dpr 10:33:43 TBL: opt-in how? 10:33:50 q+ 10:34:00 q- fractional 10:34:08 q- dpr 10:34:10 YY: as part of the server-response, the document could send a header or meta switch 10:34:18 s/send/set/ 10:34:30 YY: that'd make all sub-resources send client-hints 10:34:50 q? 10:35:43 The server response to the original HTML page -- such as HTTP header or equivalent met tag inHTML - would be used to turn on client hints 10:36:13 q? 10:36:16 ack timbl 10:36:16 timbl, you wanted to ask whether the Vary: header will flag this form of conneg 10:36:29 TBL: is the idea that you should be using the Vary: header when hints are available? 10:36:57 YY: this is why each hint is its own header 10:36:59 q? 10:37:05 YY: we want to enable vary on just one header 10:37:25 YY: if we had a Key: header, we could gather the hints into a single header, but we don't have that 10:37:40 ack 10:37:44 ack sli 10:38:10 AR: is there an extensibility point, either API or markup? 10:38:15 YY: no, not now 10:38:55 ack twirl 10:38:56 YY: SW would be able to work with that in an imperative way 10:39:01 AR: yes, on the second-load 10:39:18 q? 10:39:20 timbl: is there anything here about exotic device pixel ratios? 10:39:29 s/timbl/twirl/ 10:39:38 (Of course you can embed RDF model metadata in basically any sort of image and in HTML) 10:39:38 twirl: is there upscaling? Things will look bad 10:39:55 http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html 10:39:56 YY: the way it works is that if you have a higher ratio than is offered, you pick the highest 10:40:14 YY: haven't seen research about 3:5 or 3:4 ration... 10:40:23 YY: the difference between 1x and 2x is huge 10:40:31 YY: but beyond that, I don't know 10:40:48 q+ to ask about the current logistics and status of the work 10:40:56 PL: if 1x and 2x are specified, but the actual DPR is 1.5, which one is picked? 10:40:58 YY: the 2x 10:41:21 TBL: I thought the issue was that if you have 1x, 2x, and 4x, and you have a 5x device, which is nicer? 10:42:33 TBL: to scale the 4x to 5 or just include the 4x unscaled to get better quality 10:42:49 YY: if you're sending close-enough images so that the byte-size impact won't be that bad, we enable you to hit the exact DPR 10:43:27 YY: client hints will let you hit the exact DPR, but not the precise resource width 10:43:55 YY: this is where (down)scaling comes into play 10:45:19 DKA: you mentioned that these are the latest proposals, but you had mentioned earlier that there were some issues with the way had been received by the HTML WG 10:45:36 DKA: I was wondering what your perspective is regarding how the work is progressing? is it going more smoothly? 10:46:34 YY: things are going more smoothly since Tab Atkins got involved. We have some resistance from browser vendors, but it's mostly down to technical issues...less political and less contentious 10:46:49 YY: I think a lot of the tension between standards and developers has abated somewhat 10:47:07 DKA: is the work happening in the RICG with a line to the HTML WG? 10:47:23 YY: currently we're morstly working in the CG around the GitHub repo 10:47:27 q? 10:47:30 ack dka 10:47:30 dka, you wanted to ask about the current logistics and status of the work 10:47:36 YY: it's possible that some people aren't members of the CG but are still involved 10:48:33 YY: we have some threads on the WHATWG lists, but we're mostly trying to get feedback on the spec from vendors and iterating 10:49:13 DKA: is there anything for the TAG to review or is there a need for formal content? 10:49:18 s/content/comment/ 10:49:58 annevk: the whole thing seems messy...but abarth and maciej are looking at it which seems fine for me 10:50:14 annevk: I wondered if there was a way to figure out the primitives 10:50:33 annevk: but you need to be able to hook into the prefetch/prescan 10:53:04 AR: [general discussion of the architecture of the client and how running code on the parser would need to look...many constraints] 10:53:20 PL: I'm concerned with how this composes with progressive image formats 10:54:34 AR: we don't have any way to address these sub-images which are at diferent resolutions 10:54:41 they don't have URLs 10:54:57 YY: this is an area I've explored...the problem is the fetch mechanism 10:55:10 YY: we don't have an efficient way for the browser to indicate "I've got enough" 10:55:23 YY: we will need to always send 1 extra RTT's worth of data 10:55:39 YY: we should look into this in the future 10:55:53 YY: the Responsive Image Container prototype is in that spirity 10:56:23 YY: it enables the browser to have header-based information to help the browser choose what to download 10:56:40 YY: I experimented with progressive-JPEG, but the layers are limited 10:56:58 YY: e.g., you can't have a very small thumbnail expanded to a very large image 10:57:09 YY: the middle and high-quality images were constrained by the format 10:57:35 TBL: if it's 2:1, is it the case that the low-res is as high-quality as it'd be if you scaled it from scratch? 10:58:00 PL: wavelet formats don't have that problem 10:58:45 AR: what formats are wavelet based? 10:58:47 jpeg200 10:58:53 s/200/2000 10:58:54 twirl: JPEG-2000 10:59:06 YY: it had plenty of adoption time and failed 10:59:12 or jp2 simetimes 10:59:20 s/sime/some 11:00:07 YY: JPEG-2000 is in the same area as JPEG with efficiency, and WebP, JPEG-XR, etc. are much better 11:00:18 YY: also, patents 11:02:35 Topic: break 11:05:51 http://mobile.smashingmagazine.com/2013/09/24/responsive-image-container/ 11:20:36 timbl: ht: https://bugzilla.mozilla.org/show_bug.cgi?id=238654 11:22:11 http://www.ltg.ed.ac.uk/~ht/drm.html 11:24:40 Topic: Intro to technical background for that which shall not be named 11:25:15 ht: lots of pointers and links in the document, will be in the TAG wiki space shortly 11:25:32 ht: started as email discussion, etc. 11:27:32 ht: adding DRM to HTML5 comes in 2 parts: EME, which adds extensions to