12:57:41 RRSAgent has joined #tagmem 12:57:41 logging to http://www.w3.org/2013/03/18-tagmem-irc 12:57:43 RRSAgent, make logs public 12:57:45 Zakim, this will be TAG 12:57:45 ok, trackbot, I see TAG_f2f()8:00AM already started 12:57:46 Meeting: Technical Architecture Group Teleconference 12:57:46 Date: 18 March 2013 12:58:09 ScribeNick: JeniT 12:58:11 Chair: Noah Mendelsohn 12:58:29 Present: Yehuda, Anne, Yves, Peter, Ashok, Jeni, Noah 13:03:41 noah: introductions 13:04:07 wycats: jQuery foundation, web developer since 2003 13:04:27 annevk: elected as individual, now at Mozilla 13:05:05 annevk: was at Opera 13:05:15 annevk: worked on selectors API, CSS namespaces, DOM, URLs, Fetch specs 13:05:48 wycats: works on TC39, model system, gathering use cases 13:06:17 wycats: day job working on libraries 13:07:01 Ashok has joined #tagmem 13:07:09 +WG-meeting 13:07:16 s/model system/module system/ 13:07:22 Zakim, who is on the phone? 13:07:22 On the phone I see Masinter, WG-meeting 13:09:04 Yves: TAG team contact, and for WebApps 13:09:28 Yves: worked on HTTP 1.1 & HTTPbis, CSS (esp validator) 13:09:53 Yves: also web services 13:10:18 plinss: HP, CSS WG, full-time standards, was Netscape's rep 13:10:26 plinss: started the CSS namespaces spec for annevk 13:11:06 ashok: Oracle, XML Schema, XQuery, web services, linked data 13:11:17 Yves, if it was up to me we'd remove the whole thing, but it was already too late :/ 13:11:29 ashok: trying to standardise property graphs 13:12:35 Jeni works for ODI, worked on XML Processing, Data & HTML, fragment identifiers 13:13:04 noah has joined #tagmem 13:13:34 Larry: Adobe, LISP, networked-mediated communication 13:14:02 Larry: URIs, URNs, HTTP 1.0 & related protocols 13:14:34 Larry: HTML, when it was at IETF 13:14:52 Larry: on advisory board for W3C & contributed to TAG charter 13:15:16 Larry: in IETF, URI schemes 13:15:57 noah: officially IBM, but with lots of other groups 13:16:13 noah: split between industry & academia, went to Lotus 13:17:03 noah: work with IBM & Sun on JavaBeans 13:17:20 noah: XML work 13:17:36 noah: hard to do clean work in large standards arena 13:18:40 noah: nice tradition of having diverse opinions on the TAG (people who disagree with Tim) 13:18:49 noah: now at Tufts teaching computer science 13:19:12 Topic: http://www.w3.org/2001/tag/2013/03/18-agenda#Convene 13:19:16 http://larry.masinter.net 13:19:33 Topic: Brief Orientation 13:20:15 noah: agenda fluid, except that ht & jar only here after lunch tomorrow & Jeff at 11am tomorrow 13:20:36 noah: big things we will come back to on Wed 13:21:26 trying to call in... 13:21:29 noah: we represent broad community, should be aware of charter 13:21:57 http://www.w3.org/2004/10/27-tag-charter.html 13:22:01 charter ^^ 13:22:30 noah: document & build consensus around web architecture & to interpret & clarify principles where necessary 13:22:41 noah: help community agree on what matters & how pieces fit together 13:22:53 noah: 2. resolve issues involving architectural principles 13:23:01 noah: both brought to the TAG & proactively 13:23:24 + +1.415.997.aaaa 13:23:31 noah: 3. coordinate cross-tech architecture developments inside & outside W3C 13:24:17 http://www.w3.org/2004/10/27-tag-charter.html#mission 13:24:45 http://www.w3.org/2004/10/27-tag-charter.html#mission 13:24:58 http://www.w3.org/2004/10/27-tag-charter.html#Mission 13:25:19 noah: we're not officially in the loop on spec approval 13:25:49 noah: will usually go direct to WGs about things we disagree with 13:26:02 noah: TimBL has ultimate say as Director 13:26:25 noah: one of our jobs is to advise him on occasion when he has to make decision 13:26:57 wycats: when we ran, slightlyoff & I interpreted "web architecture" to include architecture of web platform 13:27:23 wycats: it usually means how documents interlink etc 13:27:58 wycats: there's more recent developments around how platform works 13:28:14 wycats: there isn't a lot of architecture of the platform itself 13:28:35 noah: we've had several efforts, eg torgo's work on API minimisation 13:28:50 annevk: (to wycats) is your question about whether it means HTTP etc? 13:29:02 wycats: I'm asking about whether it means architecture of documents & their interactions 13:29:19 noah: web has grown from web of documents to web of other things, including active documents (ie scripts) 13:29:34 how the web works: what's a server, client, using HTTP, separation of markup and style, the role of javascript. the 'architecture' of something describes the pieces and names the interfaces for how they're put together 13:29:41 noah: we did try to rewrite web arch around web applications 13:30:06 wycats: there's architecture of that web that is out there, and architecture of platform 13:30:11 -Alex 13:30:15 noah: can we delay until later in the F2F? 13:31:09 noah: the community builds specs, web built on them 13:31:36 noah: the pieces should fit together so that the web has a set of characteristics such as scalability, internationalisation etc 13:32:32 noah: I want us to remember that our remit is broad 13:32:54 noah: eg whether we can use URIs as if they mean something in 100 years, something the library community is concerned about 13:33:13 noah: probably not so relevant to browser community 13:33:37 noah: my job to smooth things along & make sure we deliver 13:33:46 annevk: how important is the charter? 13:34:12 annevk: eg it talks about using XML in a way that's no longer relevant 13:34:25 noah: not legalistic about it, but need to follow spirit 13:35:38 +Alex 13:35:49 Topic: Outreach to developer community 13:35:50 http://www.w3.org/2001/tag/2013/03/18-agenda#developersdevelopers 13:37:08 wycats: we'll have more luck outreaching to developers if what we do is stuff that affects their day-to-day lives 13:37:16 q? 13:37:52 plinss: I have a proposal: there's the webplatform.org project 13:37:57 http://www.webplatform.org/ 13:38:05 +1 to peter 13:38:13 plinss: maybe we could have an architecture section on that site 13:38:36 w3conf and webplatform.org represent new, significant addition of resources to build and maintain 13:38:43 noah: we have tried to do that previously, we assigned actions to do similar on the W3C site 13:38:47 that's what's different 13:38:50 noah: almost never did them 13:38:53 q+ 13:39:04 noah: is anyone interested in doing that? 13:39:12 wycats: I'm not sure web developers would find value from it 13:39:28 noah: when I teach, I like to point people at those things 13:39:42 wycats: specifically, webplatform.org is not a good platform for that 13:39:48 q? 13:39:54 plinss: I think it's evolving and it's trying to be that portal 13:40:06 plinss: if nothing else, some high-level overviews 13:40:11 q+ to talk about interaction vs. one way 13:40:16 wycats: like a list of concepts? here's what a URI is? 13:40:22 i think this is an area where tag members are out of touch, webplatform.org is just starting, hasn't been filled out 13:40:34 plinss: yes, and how to use it, just broad strokes 13:40:45 ashok: could you extract it from the web arch document? 13:40:47 ack next 13:40:55 plinss: yes 13:41:16 wycats: my sense is that if we want to educate developers about web arch 13:41:42 … they see it as it actually works, eg POST can be used to delete resources 13:42:07 … danger of telling people how it works when it is out of touch with reality 13:42:15 plinss: yes, you have to be pragmatic 13:42:26 … eg the hashbang thing is a hack 13:42:44 … we should document it, say it's a hack, show the way forward to the right way 13:43:03 wycats: yes, say that the architecture of the web *right now* involves the hack 13:43:11 plinss: yes, and show the migration path 13:43:11 ack next 13:43:12 noah, you wanted to talk about interaction vs. one way 13:43:20 wycats: calling out the things that work today but that are hacks 13:43:28 … particularly useful to know what bits are hacks 13:43:48 noah: right relationship with developers is a discussion rather than one way 13:44:01 … webplatform.org isn't right because it's one way 13:44:22 … been at our best when we've worked with others 13:44:34 … good tension between short-term focus & long-term view 13:44:54 … architecture is about taking long-term view 13:45:13 … it's really hard because you don't get the immediate feedback 13:45:27 it turned out that it has poor adoption characteristics 13:46:02 q+ 13:46:29 … good architecture usually boils down to use cases, should be examples about what breaks 13:46:50 annevk: important to understand why the confusion happens 13:46:50 q+ to give a different description of "architecture" 13:47:05 annevk: eg a elements don't have way of specifying method 13:48:15 noah: need to be asking the question "are we doing anything we'll regret in 10 years" 13:48:16 i think talking about GET vs POST belongs to the HTTP working group and that it was a waste of TAG time to talk about it 13:48:32 wycats: bringing it back to topic of developer outreach 13:49:06 … think there's high leverage in reaching out to platform developers (eg Rails, jQuery) 13:49:07 best instance of successful developer outreach was http://www.w3.org/conf/ 13:49:13 … to make it easy for developers to do the right thing 13:49:27 q? 13:49:30 ack next 13:49:35 … eg Rails team very interested in getting guidance on REST etc 13:49:42 … we still have to guess sometimes 13:49:57 … target the tools that people are using to build the sites 13:50:18 … this is about adoption characteristics, don't have to address everyone in the universe 13:50:33 noah: TimBL's design notes are a great resource, something TAG has done is write them up 13:50:43 ack next 13:50:44 Larry, you wanted to give a different description of "architecture" 13:50:55 wycats: it's not well known that eg the web arch document exists 13:51:17 Larry: architecture is about what pieces there are and how they connect together 13:51:34 … eg markup, style, scripting, client-server protocol 13:51:50 … principles are guidelines for how to use the architecture, or misuse it, things you should & shouldn't do 13:51:53 q? 13:51:58 … as a result of telling developers about the fundamentals 13:52:10 … someone new to the web needs to understand how the pieces interact 13:52:21 … GET vs POST is at too low a level, not a great use of TAG time 13:52:39 … architecture has changed significantly since Tim designed it, because of introduction of AJAX, scripting paradigm 13:52:47 … HTML now an API with a little bit of parsing 13:53:12 q? 13:53:59 slightlyoff: worth understanding economics that constituencies find themselves in 13:54:16 ... touched on that around current constraints vs futures 13:54:27 ... people are publishing content for parochial reasons 13:54:36 ... want to create value for a set of users 13:54:44 ... architecture enables or disables them from doing that 13:54:53 ... want to maximise benefits & minimise costs 13:55:15 ... have to be informed by what people are trying to get done 13:55:28 ... second point is that AJAX isn't a completely different architecture 13:55:41 ... means we have to recognise imperative layer 13:55:41 q+ to say why ajax does change things 13:55:47 q? 13:55:50 ack next 13:55:51 noah, you wanted to say why ajax does change things 13:56:05 noah: on AJAX, we have found places where it changes things 13:56:15 "origin" and CORS need to be part of webarch 13:56:17 ... eg one principle is identifying things with URIs 13:56:26 q+ 13:56:29 Larry: working on it: http://fetch.spec.whatwg.org/ 13:56:31 ... question about "what do you identify using an AJAX app"? 13:56:41 s/:/, 13:56:42 ... eg states in a game 13:56:57 annevk: "part of webarch" 13:57:15 ... if it's something that would have been done using the normal web architecture, still want to use URIs 13:57:16 i don't mean "specified in webarch" 13:57:20 ... same with web storage 13:57:33 ... still need to identify these things with URIs 13:57:40 Larry: fair enough 13:57:46 ... these are architectural questions 13:58:09 annevk: when would you not use HTTP requests? 13:58:32 noah: some of the web sockets stuff for example 13:58:45 i mean that there's no place in the current webarch to talk about 'origin' 13:59:07 i think URIs are less important to webarch as they were 10 years ago 13:59:10 wycats: one way to address the concern around local storage is to ask how can we make it really easy to use URIs for that 13:59:34 noah: not everyone agrees that's even what we should be aiming for 13:59:57 wycats: naming things with URIs is a fundamental part of the web 14:00:10 noah: let's have a proper session on URIs, AJAX etc later 14:00:42 slightlyoff: wycats, annevk & I have done work on this we could discuss 14:00:59 wycats: this is something that developers do understand, but they don't understand what it means to have a URI for an AJAX app 14:01:11 ... so this is something where we could have a good impact 14:02:20 ht has joined #tagmem 14:05:57 i think "is it OK?" formulation isn't useful here 14:07:56 it IS a capability system 14:09:37 noah: people use URIs for capabilities. it's part of how wthings work 14:10:17 secrecy is measured in time-to-expiration 14:10:30 uris can be secret for a little while 14:10:42 time-to-compromise 14:11:17 some really well encrypted channels have a time-to-compromise of decades (some people believe centuries, but i don't believe that) 14:11:48 webarch also needs security properties everywhere 14:15:23 timbl has joined #tagmem 14:16:01 Topic: Layering 14:16:03 http://www.w3.org/2001/tag/2013/03/18-agenda#layering 14:18:04 Here is the deck: http://cl.ly/3P3K3C3E422C 14:18:41 heh 14:19:02 wycats: trying to unpack what we meant by "Layering" when we ran for TAG 14:19:12 ... watched TimBL's TED talks 14:19:30 ... wanted to talk about how AJAX stuff links up with linked data & open data 14:19:51 ... first documents were hand-written documents, like we post via CVS 14:20:09 ... the data is the same as the markup, no translation layer 14:20:38 ... people realised they didn't want to have to write everything by hand, so started to separate out data and template, combined to create document 14:20:46 ... this obscures some of the raw data 14:21:08 ... as JS came into the frame, even the document provided via HTTP doesn't include the content 14:21:20 ... now need to run JS to get the "content" of the document 14:21:36 ... less and less of the document is content, more and more generated by JS 14:22:06 ... other side of this is that it's the *data* that is published by the servers 14:22:14 ... the semantic content is exposed 14:22:26 ... JS is about displaying that semantic content to the user 14:22:42 ... going to show discourse, form software built as a JS app 14:22:53 ... URL friendly, but all the communication is done via APIs 14:23:00 ... downloadable page is nothing (nothing in HTML) 14:23:11 ... rich semantic JSON sent to the client, devoid of display semantics 14:23:26 ... other end of the spectrum from markup is data, end up doing API first development 14:23:42 ... should be excited about this development if you like linked data 14:24:04 ... we shouldn't be scared of JS 14:24:13 ... "Where We Are Today" 14:25:03 ... people writing specs are writing implementations, think in terms of implementation 14:25:25 ... platform capabilities are exposed via markup & DOM bindings (JS code) 14:26:14 ... markup mapped to DOM, JS code interacts with it, display doesn't link with that JS bindings 14:26:23 ... JS bindings & rendering don't interact 14:26:52 ... eg simple form for POSTing info about people 14:28:24 ... the HTML spec defines how the input fields are displayed 14:28:29 ... one big case statement 14:28:41 ... want to add something new, have to add a new case 14:29:10 ... problem is that if you want to build your own controls, eg date picker 14:29:24 ... algorithm doesn't delegate to you 14:29:32 indeed, serialization is pluggable inside most implementations! 14:29:34 ... specification mirrors implementation rather than well-designed architecture 14:29:52 timbl: you're making assumption that you want to burrow all the way down 14:30:03 I can't hear timbl 14:30:30 ... even if it was implemented in JS it can be an architectural feature that you can't control everything 14:30:37 nobody's arguing against the value of standards 14:30:47 wycats: the answer isn't that "everything is JS" 14:30:51 at least not me or wycats__ ;-) 14:31:06 ... custom controls in jQuery 14:31:32 other toolkits do exactly this 14:31:37 (i've written this code multiple times) 14:31:57 ... create some hidden markup & use script to make it behave the way you want to 14:32:12 I also wrote this code in Dojo 14:32:18 (the serialization system) 14:32:34 Closure has the same split 14:32:53 ... serialize() in jQuery, to create form submission 14:33:11 ... need to write lots of imperative code to hack around the constrained browser capabilities 14:33:21 q? 14:33:27 ... people end up writing the whole browser in JS 14:33:34 q- wycats__ 14:34:05 ... "Appeal to Magic" 14:34:23 ... form serialisation is the exact implementation in C++ 14:34:38 is SVG as its own content-type part of webarch? 14:34:57 ... people understand the core value propositions of the web, work hard to implement them in script 14:35:25 ... people don't do everything in canvas, but write lots of JS to emulate stuff that's part of the core web platform 14:35:33 once again, I can attest to this from the perspective of Google properties 14:35:33 http://meta.discourse.org/ 14:36:16 wycats: URLs update as you scroll down the page 14:36:32 noah: this is a great example of what we've been advocating 14:36:53 wycats: the amount of JS necessary to do this is 962kb 14:37:12 ... would prefer to hook into primitives of the platform to get this to work 14:37:50 ... people discontented with having to write so much JS to do what should be built-in 14:38:01 ... "so close and yet so far" 14:38:23 ... in Rails we have something that reimplements browser navigation using XHR 14:38:27 ... to get better performance 14:38:42 ... end up doing crazy hacks to augment what the platform is doing 14:39:11 https://github.com/chad/turbulence 14:39:18 ... users are frustrated when emulated layers don't work well 14:40:02 ... examples of twitter & Facebook, falling back from emulation 14:40:50 ... big picture of twitter going to native web pages is that they are giving up on good user experience 14:41:10 put another way: taking control, today, means taking *everything* under your JS-driven roof 14:41:29 tweetdeck is still native on their native platforms 14:41:31 tweetdeck was Adobe AIR 14:41:33 (iOS, Android) 14:41:34 ... twitter/Facebook say "if you want to have a good user experience use a native app" 14:41:49 it's HTML5 on web.tweetdeck.com and their Chrome app 14:42:04 http://en.wikipedia.org/wiki/TweetDeck 14:42:23 timbl: one of the things here is page load time, comparing that to a local application is cheating 14:42:34 ... need to install the app locally to get the speed 14:43:05 wycats: they were using caching etc, so trying, but you still have first page load hit for people finding tweets via google 14:43:23 ... web is a more casual browsing experience than the installation of applications 14:43:33 ... do not expect to have to install when they hit pages 14:43:46 annevk: where does twitter advocate using native apps? 14:43:57 wycats: not in this blog post 14:44:11 annevk: how do we get both the speed and the user experience? 14:44:14 wycats: I'm getting there 14:44:35 noah: two problems: having to download loads of JS & having to write loads of JS 14:45:15 wycats: reasonable to have a more installable model 14:45:20 q? 14:45:36 q+ 14:45:41 http://engineering.twitter.com/2012/05/improving-performance-on-twittercom.html 14:45:45 ... size is a particular issue in mobile & outside developed world 14:45:55 q? 14:46:22 ... shouldn't underestimate cost of malaise, result is less engaging apps 14:46:24 ack next 14:46:40 slightlylate: speaking from Google experience, eg desktop Gmail on the web 14:46:57 ... something like megabyte of JS, mostly is stuff the web should be better at 14:47:04 does TAG want to take on web performance? takes optimizing rendering, download, network latency, javascript performance. "Velocity" conference 14:47:09 s/slightlylate/slightlyoff/ 14:47:59 slightlyoff: spent an enormous amount of effort to reduce load time & impact of the wait 14:48:23 ... the constraints are the same even for massive organisations like Google 14:48:41 ... can't do as much as a native app can 14:48:56 wycats: looking at popular apps built using backbone/ember/angular 14:49:11 ... apps are around 700k 14:49:56 slightlyoff: limits are much lower on mobile devices 14:50:12 wycats: "Turing Escape Hatch" 14:50:26 ... people ask for primitives 14:50:40 ... example of mouse vs touchpad 14:51:24 ... eg tapping on iPad vs with mouse --- no :active on div 14:51:41 noah: this is about mapping that browsers have chosen in iPad 14:52:08 wycats: can add .active rather than using :active to hack around it 14:52:21 ... :active applies when "the element is being activated by the user" 14:52:28 ... this is appeal to magic 14:53:15 q+ 14:54:17 annevk: we have talked about how to spec this 14:54:43 ... complexities around scrolling 14:54:44 agree! 14:54:49 +1 14:55:01 annevk: these are HTML4-era specs 14:55:16 wycats: even in more modern specs there are huge failures in layering 14:55:30 ... there's a theory of layering that leads us to do the right thing 14:55:45 noah: I assume that these specs were written when the impact of iPads etc wasn't clear 14:56:01 ... could people have gotten this right? 14:56:08 yes 14:56:33 wycats: there should be some JS property somewhere that says that an element is active, so you can call it 14:56:48 slightlyoff: in the implementation there is an imperative version of this declarative form 14:56:59 ... the question is how exposed is that declarative form to the imperative world 14:57:08 ... there's going to be a translation somewhere 14:57:31 ... it's straight-forward to say that you need to add the imperative form at some point 14:58:00 timbl: by explanation, you mean you must be able to reroute the code 14:58:29 wycats: you must be able to not appeal to C++ 14:59:20 noah: you need to be able to keep some of it, need to choose where you have the layer 14:59:32 back 14:59:48 ... end up with huge UI frameworks, where the purpose is to theme etc 15:00:15 q+ 15:00:19 q- 15:00:24 q- 15:00:36 wycats: platform built around C++ DOM 15:00:48 ... "Fundamental Theorem of the Platform" 15:00:51 (I think the main problem is that we don't even understand, in documented manner, what the actual user interaction model is. User agents reverse engineer this from each other at the moment.) 15:01:06 ... "Markup begets JavaScript objects via a parser" 15:01:32 ... should be theorem that explains what the platform is doing that helps us define declarative/imperative split 15:01:50 ... stack of markup, JS runtime, DOM standard library, rendering 15:02:03 ... rendering defined in terms of platform primitives eg canvas 15:02:17 ... this matches web developers' mental model 15:02:24 ... gives us reasonable hook 15:02:41 annevk: this doesn't allow for asynchronous 15:02:52 ^^ selector matching 15:03:07 wycats: this isn't getting 100% perfect, just getting magic part smaller 15:03:16 bkardell_ has joined #tagmem 15:03:56 slightlyoff: creating a competitive platform, we have technical question of accomplishing most value with least effort 15:04:15 ... not about replacing everything, about doing archeology & explaining in terms of more primitive APIs 15:04:37 ... some might not be exposed, but this is a powerful exercise in creating generative platform 15:05:10 noah: in these architectures, one thing you might want to do is encouraging people to do the XML thing and creating lots of new tags 15:05:20 wycats: yes, that's what I'm getting to 15:05:28 ... "Path for Natural Platform Evolution" 15:05:43 ... we don't want people to write everything using these primitive forms eg using canvas 15:06:16 ... provide some markup, people write imperative extensions, new "slang" markup, broad acceptance 15:06:34 ... we want to allow people to experiment with new tags 15:06:39 more to the point, we can't prevent it 15:06:41 and haven't so far 15:06:51 q? 15:06:55 ... if they become acceptable, they get rolled into the platform 15:07:10 ... provide a mechanism for evolutionary development that doesn't rely on Hixie 15:07:27 here's a preview of what that reserach might look like: http://meaningless-stats.appspot.com/global 15:07:32 ... can look at pages on internet to see what's being used 15:07:57 q+ 15:08:06 noah: would you encourage people to experiment with tags that might become part of the platform, where's the cut-off about what you can use 15:08:15 https://github.com/slightlyoff/meaningless 15:08:18 timbl: what if you have a serious community eg MathML & Geo communities 15:08:35 ... broad acceptance in their communities, but not across whole planet 15:08:42 ... what's the world in which there are pieces of these? 15:09:01 wycats: I would imagine they would create their own extensions 15:09:07 timbl: would it be a browser extension? 15:09:25 wycats: can imagine in different levels of broad acceptance leading to different levels in browser support 15:09:44 timbl: I'm particularly interested in things that are completely accepted in a small community 15:09:56 wycats: the question is at what point it gets pulled into C++ code 15:10:02 I mostly like where Yehuda is going, but I'm nervous about the ability to (a) encourage communities doing things like MathML to standardize while (b) telling dentists that a tag is not what this is about. One persons's horizontal can be another's vertical. 15:10:04 timbl: there are lots of communities doing exciting things 15:10:12 the point is we're not doing this with data today 15:10:20 we're doing conjecture, not science 15:10:27 ... like the geospatial folks, but they will not ever get into every browser 15:10:28 q+ 15:10:28 "chemical ml" and "math ml" are good examples 15:10:36 wycats: they could just have a JS library 15:10:44 This might well lead us back to and XML-like architecture, albeit with dynamic Javascript support (which is cool), but without namespaces or a distributed extensibility model. 15:10:48 ... or they could have a browser extension that would make available & cache the JS library 15:10:56 timbl: and maybe reimplemented in C++ 15:11:22 slightlyoff: I posted a reporting site for a Chrome extension to start looking at the ad-hocs semantics in the web at the moment 15:11:34 ... we haven't stopped anyone adding semantics to HTML 15:11:42 I might agree that living without something like namespaces is OK for things that may become core to the platform, when you get too close to vertical (dentists), you really need some way to keep names straight, and to enable mixins. 15:11:45 ... we've made it difficult enough that people don't agree on how to express them 15:11:56 q? 15:11:58 ack next 15:11:59 ... the goal is not to repeat the perceived mistakes of XML world 15:12:21 ... it's to generate the visual/content meaning from the markup 15:12:49 ... we don't have today a good way to tie the creation of end-user value to new declarative forms 15:13:19 ... hard to track use of declarative form because people use imperative form 15:13:31 JSON is a "declarative form" 15:13:32 ... give tools to start declarative 15:13:44 ... can then start to do science on the web to detect patterns 15:13:55 ... at the moment we can't do this because it's hidden in the imperative code 15:14:09 wycats: an Ember template looks like a minified JS function, for example 15:14:22 ... final example is different from markup 15:14:32 ... offline downloadable case 15:14:38 ... step one was App Cache 15:14:45 ... Apple used this at beginning of iOS 15:14:53 this markup system, btw, is my work from Web Components 15:15:10 ... App Cache declarative form with no imperative escape hatch 15:15:17 ... Hixie built declarative form 15:15:35 ... large number of workshops to fix what's broken with App Cache 15:15:57 public-fixing-appcache@w3.org 15:16:17 ... Hixie wasn't interested in implementing it 15:16:31 http://www.w3.org/community/fixing-appcache/ 15:16:42 ... platform already has capability, but because it was drafted wrong, we're not able to use it 15:17:14 http://www.w3.org/community/fixing-appcache/2013/02/11/moving-further-spec-development-to-webapps-and-closing-the-cg/ 15:17:28 ... if there's no escape hatch we can't easily fix/hack around these 15:17:32 you weld it shut if your view is that the platform is a hermetic thing without layering 15:17:52 ... need platform features that are broadly useful rather than targeted on specific features 15:17:57 ... "Navigation Controller" 15:18:15 ... questions when you write an offline app 15:18:32 ... what happens when they first load the page, first time, subsequent times, how does the cache work? 15:18:44 ... Navigation Controller provides the answer, but also way to override 15:19:19 noah: is this defined in terms of an HTTP cache? 15:19:59 slightlyoff: no 15:20:26 slightlyoff: turning big case into small primitives, if they're not implemented fall back on default behaviour 15:20:56 wycats: App Cache implemented on top of something where behaviour can be overridden 15:21:16 noah: HTTP caches are implementations of HTTP spec, built into browsers 15:21:26 ... not focused on long-term caching 15:21:42 ... be interesting to tell an organised story about how what we do relates to those headers and that architecture 15:21:50 ... should be a lot in common 15:22:21 ... need a clean story where this is consistent with this architecture 15:22:28 annevk: need to define the interaction anyway 15:22:34 noah: look at both spec and code point of view 15:22:44 wycats: I think it does talk about interaction with HTTP cache now 15:23:05 annevk: if there's a POST, you want to store it in the Controller in the offline case, which HTTP caches won't do 15:23:25 wycats: use existing browser primitives, build on top of them 15:23:42 ... need core primitive of "opaque response" for example 15:24:06 ... we might not like how it works, but we need to explain how it works 15:24:20 ashok: is this how you think it *should* work, or how it *does* work? 15:24:34 wycats: this is a proposal that Alex is creating, a proposal that Alex will make to a real WG 15:24:54 ... "Declarative Form" 15:25:07 ... Jonas Sicking has been working on better declarative API 15:25:12 ... it's a JSON model 15:25:20 ... one problem with App Cache was that it wasn't extensible 15:25:29 ... using JSON means we don't have to amend the parser 15:25:40 brb 15:25:40 ... it's less ambitious 15:26:11 ... provides just the obvious things, so we can explore how it is actually used 15:27:09 ... includes mechanism for templated URLs & use of XHR 15:27:36 ... lets you point to markup & data separately 15:27:49 ... "Evolution" 15:27:58 ... people will extend JSON, add JS libraries etc 15:28:03 ... use this to evolve the platform 15:28:26 ... better imperative capabilities enables better evolution 15:28:37 ... I'll not talk about web components much 15:28:46 ... these are basically the same thing 15:29:10 ... I propose that we write a Recommendation that outlines this design philosophy for the web platform 15:29:24 Yves: going back to delegation controller & cache 15:29:41 ... if you look at local cache as being a URI resolver, then you see it as a low end version of a controller 15:29:54 ... there are things that are shared 15:30:06 wycats: yes, you could imagine that HTTP cache is defined as controller 15:30:41 noah: need few minutes discussion about where to go next 15:30:57 back 15:30:59 ... this would be a significant project for the TAG 15:31:47 ... for these we should have a project page: 15:31:49 ... goals 15:31:52 ... success criteria 15:32:09 ... a Rec is not a success criteria: explain in terms of what that achieves 15:32:16 ... key deliverables, dates, who's assigned 15:32:43 ... often useful at this point to create a first cut at what the product page might look like 15:32:59 ... use that as point of discussion about why we should do this, what the TAG's role is 15:33:29 Example of a product page: http://www.w3.org/2001/tag/products/fragids.html 15:33:34 wycats: all this stuff about Navigation Controller etc is just specific examples, we need to look at higher level 15:33:49 timbl: what's the push-back that you've heard around these ideas? 15:33:55 ... will the implementers get on board? 15:34:09 wycats: main pushback is from people worried about new imperative forms 15:34:23 s/imperative/declarative/ 15:34:33 If this is to be a significant project, we need a plan at about that level. We don't necessarily need it at this F2F, but I'm suggesting we draft a strawperson version just to get discussion of what the scope and goals of the TAG's work on this might be. 15:34:48 slightlyoff: general lack of familiarity from implementers about what developers need 15:34:59 ... don't go from being web developers to browser implementers 15:35:03 noah: I volunteer to bring that back tomorrow or Wednesday 15:35:59 noah: great, we'll come back to this later in the F2F 15:36:37 annevk: the main concern I've heard about web components is lack of shared understanding 15:36:43 ... counter-argument is that we already don't 15:37:02 Great, thank you. Suggest you collaborate with others, at least informally. 15:37:11 ... also heard concern that if we only do low-level primitives, it'll be too hard for normal web developer 15:37:31 timbl: building up from bottom rather than down from top? 15:37:51 slightlyoff: this is an interesting question for the TAG: do you do one before the other? 15:37:53 you do both 15:38:11 but the high level is defined in terms of the primitives, like the app cache example 15:38:14 ... look at what opportunities you foreclose and how you reduce opportunity for harm 15:38:28 timbl: like with :active you could imagine it starting with touch events etc 15:38:54 ... need some top-down for device interoperability 15:39:12 ... if you start low-level people start generating different design abstractions 15:39:19 wycats: define high-level in terms of low-level 15:39:42 ... eg start with the element, then talk about what new capability is in JS objects 15:39:51 ... end up with high-level thing that's nice + escape valve 15:39:55 timbl: if you get it right, yes 15:40:12 annevk: another concern, around rendering, is that rendering doesn't happen on main thread 15:40:21 ... currently constraint-based system rather than imperative system 15:40:40 ... exposing it as a imperative system removes possibilities of optimisation 15:40:50 noah: try to keep as much of it as declarative as possible 15:41:05 ... eg changing CSS through adding class through JS 15:41:32 wycats: always going to be the case that if you are reimplementing something that's implemented in browser it's going to be slower 15:41:51 annevk: by defining the platform in a certain way, you might constrain it 15:42:19 ... might want to implement browser in a fancy different way, the single-threaded system is problematic 15:42:41 timbl: these sorts of problems: making something performant needs different implementation strategies 15:42:46 ... eg parallelisation 15:42:58 annevk: http://infrequently.org/12/cassowary-js-refactor/demos/css/canvas-renderer.html 15:43:11 ... asking for the callout can be difficult to implement 15:43:25 wycats: people are reimplementing the entire layout system in JS, surely that's not more performant 15:43:39 timbl: so prepared to hit on very fast reflow of CSS in order to be able to override it 15:44:16 annevk: it's possible to uncover the solver as a capability 15:44:58 annevk: going where the evidence leads 15:45:22 annevk: without pre-judging the level of abstraction you end up at 15:45:38 slightlyoff: I meant e.g. the case bz mentioned where if you implemented the DOM completely in JS you could no longer do async selector matching 15:45:59 yeah, that's sort of BS 15:46:04 slightlyoff: I don't really fully understand canvas-renderer.html 15:46:09 browsers always have fast-and-slow paths 15:46:18 slightlyoff: euh sure 15:46:20 annevk: it's re-implementing CSS in JS via a JS constraint solver that I work on 15:46:33 annevk: but the conceptual level of abstraction need not be one level or the other 15:46:52 annevk: e.g., JS engines internally use single-static-assignment transforms 15:47:03 annevk: but JS is not a pure-functional language 15:47:16 and there are scenarios where you can't employ those xforms 15:47:18 and we get by 15:47:39 I don't follow 15:47:48 going fast when we can based on some other formalism than the naive interpretation of "what it is" 15:48:20 +1! 15:48:40 ht, thanks, not sure I got it all 15:49:14 I wonder if there's a place here for what the XML-on-the-Web community has been doing for years has a place in this story, i.e. _declarative_ layering using XSLT in the browser 15:49:16 JeniT: are y'all breaking for lunch? 15:49:34 Yes, remote people need to know where we are in the schedule 15:50:08 yeah, but it sounds like you're not doing the agenda now 15:50:19 so this is a short break before JeniT's session? 15:50:41 thanks 15:51:55 +??P3 15:52:22 -Masinter 15:53:12 Topic: Fragment Identifiers 15:53:19 http://www.w3.org/2001/tag/2013/03/18-agenda#fragids 15:53:35 goals for this session: http://lists.w3.org/Archives/Public/www-tag/2013Mar/0059.html 15:54:46 so it would be good to know the plan. I need to move locations during your lunch break. 15:54:55 (else I won't be home before 8pm) 15:56:05 do scribenick annevk 15:56:07 scibenick: annevk 15:56:11 scribenick: annevk 15:56:46 Topic: Fragment Identifiers (aka hash, fragids, .search) 15:56:52 s/.search// 15:57:10 JeniT: Goal if this session is to figure out what to do with the spec 15:57:18 s/Goal if/Goal of/ 15:57:27 [see link above] 15:57:31 http://lists.w3.org/Archives/Public/www-tag/2013Feb/0021.html 15:58:03 JeniT: RDF/XML clashes with RFC 3023bis 15:58:45 JeniT: If you have a structured syntax like +xml or +json, then any media types that adopt that suffix need to comply with the suffix registration 15:59:16 JeniT: generic XML processors should be able to use fragids without understanding context 15:59:37 http://www.w3.org/2001/tag/doc/mimeTypesAndFragids-2013-03-12.html 16:00:00 JeniT: the spec (^) is written for four sets of people 16:00:28 JeniT: registration of +suffix media types people (e.g. +xml); media type registration people (e.g. application/rdf+xml); 16:00:41 JeniT: fragment structures which should work across media types 16:00:53 JeniT: and the people who write code 16:00:55 Relevant bit of 3023bis is here: http://tools.ietf.org/html/draft-ietf-appsawg-xml-mediatypes-00#section-8.1 and here: http://tools.ietf.org/html/draft-ietf-appsawg-xml-mediatypes-00#section-5 16:01:34 JeniT: Last Call was the last step 16:01:44 JeniT: now up for CR for which we need exit criteria 16:01:57 just listening for now 16:02:46 yes, it is 16:02:58 wycats__: my main issue is that in browsers fragids are often used for something else entirely 16:03:41 JeniT: the focus is not for RESTful app developers as that's addressed elsewhere 16:04:05 timbl: don't you think the use of fragids might increase? 16:04:11 wycats__: seems plausible 16:05:09 wycats__: My concern is that a document about fragment identifiers should cover its main use, in HTML 16:05:20 q+ 16:05:31 See also http://tools.ietf.org/html/rfc6839#section-4.1 16:05:50 JeniT: it's up to the media type registration 16:08:39 I see this as a question about navigation 16:09:07 q+ 16:09:12 q? 16:09:14 annevk: I think there's a mismatch between the media type -> fragment mapping and what actually happens in a browser 16:09:33 noah: is this in the edge case or is this not the architecture? 16:09:49 noah: is this 80/20 or is the architecture really not correct? 16:09:55 annevk: I think it's a 80/20 16:10:01 discussion about embedded images in iframe etc where browser captures control of the interpretation of fragids within that iframe 16:11:19 ack next 16:11:36 q+ to point to the IETF state of play 16:11:39 noah: is it okay if we note that we point out it's not always accurate and we might do future work? 16:11:45 q+ 16:11:59 Ashok: what if somebody does a registration and does not follow the rules? 16:12:27 Yves: best practices still allow for people shooting themselves 16:12:34 -Alex 16:12:50 +Alex 16:12:59 JeniT: media type registration people could check against this 16:13:24 Ashok: does the IETF agree with us? 16:13:38 JeniT: the feedback from the people involved suggests so 16:13:47 JeniT: but they are not the reviewers 16:14:17 JeniT: the exit criteria are what's important here 16:14:48 JeniT: [goes through proposal] 16:15:18 Two tentantive agenda items added for Wed morning. See http://www.w3.org/2001/tag/2013/03/18-agenda.html 16:16:27 plinss: CR is a call for impl so people should start using it 16:16:47 uh...I think wycats__ had a point ot make 16:16:50 we have time. 16:17:05 (all day, in fact) 16:17:52 +Masinter 16:18:23 wycats__: A thing that happens in the world in the world where people request the same resource from a browser and with an Accept header via XHR to get JSON 16:18:47 wycats__: if they use the same fragment, is that a problem? 16:19:38 wycats__: I want it to be specifically allowed to use a fragment identifier for some media types and not others 16:19:47 wycats__: in the context of content negotiation 16:20:13 wycats__, so many reasons not to do content negotiation btw: http://wiki.whatwg.org/wiki/Why_not_conneg 16:20:27 annevk: conneg happens 16:20:35 annevk: honestly, it does 16:20:40 doh 16:20:43 consenting adults and all that 16:21:03 All I'm saying is that it's a bad idea 16:21:23 E.g. confused proxies that don't support Vary 16:21:24 annevk: O_O 16:21:26 and I don't happen to agree = ) 16:21:42 I disagree strongly with that document 16:21:55 in the same way I disagreed with crock's jslint recommendations 16:21:55 wycats__, hope you read it first :) 16:21:58 And Rails/jQuery is an existence proof that this is not an issue 16:21:59 annevk: I did 16:22:06 I skimmed 16:22:10 the exercise of thinking about exit criteria is important 16:22:26 ht sorry, my client was doing that 16:22:29 apologies 16:22:36 q? 16:22:44 Nuts, forgot about the queue, sorry. 16:22:53 q- wycats__ 16:23:15 Larry: your CR exit criteria proposal looks fine 16:23:48 ack next 16:23:49 ht, you wanted to point to the IETF state of play 16:23:56 it matters less about the details but at least that there is some credible measure that you "got it right" 16:24:19 annevk conneg drives a huge amount of the web 16:24:27 annevk I think your document is simply a dead letter 16:24:35 slightlyoff it's not mine 16:24:40 slightlyoff I simply agree with it 16:24:44 annevk ok, still a dead letter = ) 16:24:59 http://tools.ietf.org/html/rfc6839#section-4.1 16:25:00 annevk and agreeing with it won't revive it 16:25:43 slightlyoff I don't think it's dead at all 16:25:51 slightlyoff most of the new stuff has taken it into account 16:25:57 ht: this implements the best practices 16:26:27 http://tools.ietf.org/html/draft-ietf-appsawg-xml-mediatypes-00#section-8.1 16:26:37 JeniT: RFC3023bis has stalled due to lack of energy, but I now found that energy 16:26:45 s/JeniT/ht/ 16:26:55 q? 16:26:57 annevk sorry, it might reflect your reality but not most of the web, toolkits, etc. 16:27:04 ht sorry about minutes :( so hard to hear 16:27:06 annevk so specs might write it in, but it doesn't make it right 16:27:15 q- timbl 16:27:35 slightlyoff most of the web, I'd like to see that quantified 16:27:43 slightlyoff e.g. most of the CDNs don't work this way 16:27:47 annevk by traffic? sure: gmail and google.com search 16:28:09 slightlyoff they use the same URL with different representation? 16:28:17 http://tools.ietf.org/html/rfc6839 uses prose taken indirectly from earlier drafts of our doc't, and I think it can be counted as evidence of uptake wrt CR exit 16:28:20 annevk you bet 16:28:25 the "elephant in the room" is that MIME in the web is under attack by sniffing and registerContentHandler 16:28:26 hmm 16:28:43 q? 16:28:51 timbl: I'd like to use fragment identifiers to be used in lots more places 16:29:35 browsers should implement http://tools.ietf.org/html/rfc5147 16:29:36 timbl: e.g. I won't fragment identifiers for plain text and view-source: 16:29:59 s/won't/want 16:30:04 s/won't/want/ 16:30:50 +xml vs +json don't have common fragment identifiers 16:31:01 q? 16:31:06 q+ to mention ajax 16:31:26 wycats__: Getting agreement on how to do this for text/plain might be tricky 16:32:36 q- 16:33:30 timbl: My concern is that fragment identifiers are already in use in HTML for wildly different things and if we ask for them to have the same semantics as their you're breaking things. 16:33:52 Henry is not practiced at having a limiter 16:34:09 I think the worry is conneg, Henry 16:34:16 type it QUIETLY ;-) 16:34:25 Speak it silently. 16:34:38 timbl: http://tools.ietf.org/html/rfc5147 16:35:41 I think it's important to keep the conneg issues and the suffix/generic issues carefully distinct 16:35:43 polyglot fragment identifiers 16:36:07 fragment identifiers that mean the 'same' when interpreted by content with different media types 16:36:15 RRSAgent: draft minutes 16:36:15 I have made the request to generate http://www.w3.org/2013/03/18-tagmem-minutes.html annevk 16:36:17 There are similarities, along the lines that Jeni has just suggested, but they aren't the same 16:36:27 q+ to point out this is a polyglot example 16:37:35 q+ 16:37:44 q- 16:38:12 q- 16:38:18 JeniT: I think 16:38:25 JeniT: we agree on the exit criteria 16:38:30 JeniT: we agree to REC 16:38:35 JeniT: there are concerns with 16:38:46 JeniT: content negotiation and transitioning 16:39:02 JeniT: HTML/XML where script takes over the interpretation 16:39:13 JeniT: I will 16:39:23 JeniT: create a new draft for a future TAG call soonish 16:39:41 plinss: do these changes require another LC? 16:39:50 noah and JeniT: no 16:40:05 I don't think we need another LC 16:40:56 I'm changing locations, so I'll call back in in an hour or so 16:42:15 -ht 16:42:17 -Masinter 16:43:50 -Alex 17:16:06 JeniT has joined #tagmem 17:30:53 +Alex 17:37:44 We're delaying 10 mins in hope Marcos will arrive 17:41:33 ht has joined #tagmem 17:46:22 Topic: ISSUE-24 Authoritative Metadata 17:46:28 ScribeNick: JeniT 17:48:05 annevk: TAG finding 2006 on "Authoritative Metadata" 17:48:09 http://www.w3.org/2001/tag/doc/mime-respect-20060412 17:48:26 ... argues that encapsulating metadata about content is more important than the content 17:48:34 timbl: that you can't understand content without having read it 17:48:49 annevk: in fact, browsers disregard content type sometimes 17:49:04 ... they look at content type and sniff content as well 17:49:18 ... because use the wrong content type 17:49:35 ... with img, the content type is basically ignored 17:49:50 ... test if it's image/svg, otherwise just pipe to image processor 17:50:01 ... video is similar, uses the bytes in the content to determine format 17:50:05 ... cache manifest does the same thing 17:50:14 noah: is there a lot of badly served video? 17:50:25 annevk: video is hairy because of how it's distributed 17:50:31 ... lots of different container formats 17:50:39 ... doesn't map that well to media type system 17:51:04 wycats: was a time, cache manifest was served wrong 17:51:09 17:51:41 17:52:06 annevk: with cache manifest we required correct media type, but people complained a lot, so we dropped the requirement 17:52:19 ... with subtitling, the webTTL format, we also decided to just look at first set of bits 17:52:40 ... we disregard content type for the response for these requests 17:52:44 ... fonts, same thing happens 17:52:56 ... tried to do fonts/X but IETF didn't help 17:53:03 ... browsers started shipping 17:53:11 ... people were using application/octet-stream 17:53:27 ... IETF had no interest in fonts/X 17:53:36 wait...what's important for CSP? 17:53:39 ... for CSV it's important 17:53:51 s/CSV/CSP/ 17:53:57 ... content security policy 17:54:05 hmmm 17:54:06 ... trying to prevent XSS attacks 17:54:07 I'm not sure I agree 17:54:12 +Masinter 17:54:20 I'm contributing to CSP 17:54:26 and I don't understand how this is an issue 17:54:28 ... from a browser perspective, we wanted to enforce content-type 17:54:39 ... from a web developer perspective it's difficult 17:54:44 talking about sniffing? 17:54:47 ... because you don't always have sufficient control 17:54:57 q+ I'd like to talk about CSP 17:55:01 marcosc: github doesn't give you any control for example 17:55:02 q+ 17:55:11 e Hi Larry, we're just getting into authoritative metadata. Anne is giving us a summary of the state of play, which is basically: a lot of the new markup specifically ignores content type in some cases due to pushback when early versions required it 17:55:19 annevk: we don't want to interpret arbitrary files as CSS 17:55:28 ... there were hacks that took advantage of that 17:55:39 ... for cross-origin requests we enforce content type 17:55:49 x-content-type-options: nosniff is a good idea 17:55:51 again, would like to dive into CSP 17:55:52 ... and in strict mode 17:56:10 q+ 17:56:17 ... CSS is easier to enforce because it's been around for a long time 17:56:22 ack next 17:56:33 slightlyoff: I'd like to dive into the CSP question, because I don't understand the issue 17:56:45 ... CSP defines what origin what sort of content can be from 17:56:53 ... that's about execution 17:57:01 ... that doesn't speak to mime types 17:57:09 annevk: CSP is authoritative metadata 17:57:15 Curious, is content-type honored on script tags? 17:57:18 ... we want that metadata to be authoritative 17:57:34 slightlyoff: I see, you're not talking about content type here, you're talking about the CSP header 17:58:15 noah: we're on a thread with darobin saying that authoritative metadata is an anti-pattern 17:58:15 I don't see how