08:12:49 RRSAgent has joined #tagmem 08:12:49 logging to http://www.w3.org/2013/05/30-tagmem-irc 08:12:51 RRSAgent, make logs public 08:12:51 Zakim has joined #tagmem 08:12:53 Zakim, this will be TAG 08:12:53 I do not see a conference matching that name scheduled within the next hour, trackbot 08:12:54 Meeting: Technical Architecture Group Teleconference 08:12:54 Date: 30 May 2013 08:13:19 Chair: Peter Linss, Dan Appelquist 08:13:30 Scribe: Jeni Tennison 08:13:33 annevk has joined #tagmem 08:13:34 ScribeNick: JeniT 08:14:21 Present: Tim Berners-Lee, Yehuda Katz, Peter Linss, Anne van Kesteren, Alex Russell, Dan Appelquist, Yves Lafon, Henry Thompson 08:14:35 Present+ Noah Mendelsohn 08:14:46 Present+ Marcos Caceres 08:15:12 noah has joined #tagmem 08:15:49 Agenda: http://www.w3.org/wiki/TAG/Planning/May-2013-F2F 08:16:28 marcosc has joined #tagmem 08:17:04 Topic: Noah's thoughts as outgoing chair 08:17:14 noah: I hope to keep this short 08:17:45 ... I've been on the TAG for 9 years 08:17:54 ... chair for 4 years 08:18:12 ... the role of the chair is to help the group think about what success is, and to help them deliver 08:18:29 ... there are lots of new people in the group, and it's reinventing itself, and that's great 08:18:59 ... none of this should be seen as an intention to stop you doing the things you're doing 08:19:00 timbl has joined #tagmem 08:19:28 ... these are reflections for longer term 08:19:34 ... this is an unusual group 08:19:50 ... other groups have clear deliverables, and customers waiting for your work, who want to build on it 08:20:10 ... there's a route for feedback in working groups 08:20:16 ... we don't have that in the TAG 08:20:43 ... one failure mode is thrashing on stuff that isn't focused 08:21:02 ... worth reflecting on what the scope of the TAG is, and having 70-80% of the work fitting within that scope 08:21:11 ... you are the senior technical steering committee for the web 08:21:20 ... the only other steering committee does finances and stuff 08:21:36 ... and the web is a really important piece of infrastructure 08:21:49 ... evolving much faster than the phone system etc 08:22:00 ... you have responsibility for a system that's really important and touches a lot of things 08:22:06 ... from time to time think about it that way 08:22:13 ... stretch out beyond your comfort zone sometimes 08:22:24 ... you all have expertise in lots of important stuff 08:22:37 noah has joined #tagmem 08:22:38 ... for example, when Henry brought up the use case of librarians 08:23:00 ... and whether they could use URIs given the persistence they need 08:23:13 ... from time to time ask where the opportunities are 08:23:23 ... you have to ask what makes the web different and valuable 08:23:37 ... my answer comes back to Metcalf's Law, or network effects 08:23:55 ... a virtuous positive feedback cycle where adding things to the network adds value to the whole web 08:24:20 ... that gives you an imperative to think about things like how international the web is 08:24:43 ... there was a time when putting a web server in a printer would have seemed weird 08:24:49 ... now we take it for granted 08:25:02 ... the TAG needs to think crazy like that, with some guiding principles 08:25:28 ... ask yourself about whether it's worth being able to link data into the rest of the web 08:25:38 ... you can get very busy working on stuff that you know is important 08:25:52 ... web app developers are not a reliable proxy for everyone you have to worry about 08:26:00 ... they're not a proxy for librarians for example 08:26:13 ... this is a plea to think about the potential and the risks for the web 08:26:22 ... this forces you to go outside your comfort zone 08:26:39 ... don't just keep in touch with the communities that you know about 08:26:54 ... the other thing I'd say is that we're the architectural group, and it's not entirely clear what that means 08:27:05 ... this group should make sure the web works in 30/50/100 years 08:27:32 ... phone numbers were built to scale, they scale to mobile 08:27:56 ... think about building to scale 08:28:14 ... for example, I think the surface area should be kept small 08:28:25 ... you can decide what matters, I'd encourage you to think about it, to try 08:28:53 ... it's easy to make decisions in an agile way when you have contact with your users, in an agile way 08:29:16 ... but it's an art to make design decisions without that, as Tim did 08:29:36 ... I'd encourage you to look at Tim's design notes 08:29:45 ... a lot of what's in WebArch is a clarification and cleanup of those thoughts 08:29:51 ... that doesn't make them all right 08:30:10 ... but if you're on the TAG, I'd encourage you to look at the decisions that Tim made 08:30:28 ... sometimes you should stand up to people, making longer term decisions 08:31:15 ... when you do these things you can be wrong 08:31:56 ... for example, we could see long term benefits with XHTML, and eventually the community came back and said it was wrong 08:32:08 ... the three pillars of web architecture are URIs, HTTP and HTML 08:32:43 ... Tim has said in order of importance they are URIs, HTTP and then content stuff (HTML, CSS, JS) 08:32:57 ... a lot of stuff we're looking at at the moment is in the third category 08:33:09 ... you should look for things in the first two categories 08:33:12 ... in particular linking 08:33:18 ... because that's what makes the network 08:33:39 ... the reason people don't stay in iPhone Apps is because they want to visit other things on the network 08:33:59 ... that's why it's important to think about unique names 08:34:20 ... for example, what about internationalised names? 08:34:32 ... one last thing 08:34:52 ... it took me a while to realise how many ways Tim's presence adds to the group 08:35:05 ... Tim works on a much broader range of this stuff than most of us do 08:35:31 ... I'd encourage you to find ways to take advantage of not only his smarts and expertise, but also the scope of his knowledge and work 08:35:52 ... finally 08:36:05 ... because there's no one asking for things 08:36:14 ... you have to be very motivated 08:36:42 ... there's a huge amount of stuff to go out and proactively get into 08:36:50 ... work hard, make it easy for your chairs 08:36:55 ... and thank you 08:37:06 ... thank you for Tim for making me part of this 08:37:20 timbl: thank you for chairing for such a long time, and for your contributions 08:37:33 ht: I'd like to follow up on one thing that noah said 08:37:45 ... W3C has not done as well as we wish we had at having user representatives highly visible 08:38:01 ... there are a handful of people who are clients 08:38:15 ... users are underrepresented in the W3C 08:38:27 ... they're a constituency that the TAG needs to keep in view, because no one else is going to do that 08:38:42 ... that's a corollary of noah's point that the dev community are not the only customers 08:38:48 ... not the only people we're responsible to 08:39:04 ... trying to balance the requirements of different classes of user agents and different types of users are really important 08:39:26 dka_: the point about linking is really important, one of the things I want to bring up in the packaging discussion 08:39:37 ... how do we have a packaged app and still use linking 08:39:47 ... if it's possible, should we be influencing the work in that way 08:40:06 Topic: Futures / Promises 08:41:42 slightlyoff: we often create APIs which take the form dothing(opt1, ..., callback) 08:41:51 ... where callback is a function that takes a single value 08:42:20 timbl: where the value passed in is the context 08:42:31 noah: you get context from the closure 08:43:16 slightlyoff: the simple synchronous version is contents = read(opt1, ...) 08:43:26 ... in the synchronous version you'd wrap it in a try/catch 08:43:33 ... that doesn't work in an async version 08:43:47 ... so you end up another parameter for the error, or you have a separate error handler callback 08:44:01 ... this shows up in a lot of APIs 08:44:11 ... often when you're doing IO 08:44:40 timbl: the contract is that you'll get only the main callback or the error callback called? 08:44:53 slightlyoff: it happens on a WG by WG and API by API basis 08:45:10 ... there are all kinds of patterns 08:45:20 ... you might get an operation handle back 08:45:37 ... op = read(...); 08:46:01 ... op.onsuccess(...).ondone(...).onreadystatechange(...).onprogress(...) 08:46:06 ... there are many different names for success 08:46:31 ... they all reify down to a single event handler 08:46:56 ... function(evt) { var controls = evt.value, evt.contents etc } 08:47:25 ... there's a temporal dead zone between reading and binding event handlers 08:48:04 marcosc: this is freaking awful 08:48:34 slightlyoff: what people end up with is that they do the callbacks at some time in the future 08:48:50 ... this can be linked into the HTML event loop 08:48:58 ... some APIs define this well, some don't 08:49:07 ... it's weird, it's verbose, there's inconsistencies 08:50:19 ... it makes it hard for developers to work with 08:50:29 noah: almost every OS eventually gets an eventing system 08:50:38 slightlyoff: we should be driving towards a standard way of doing this 08:50:42 ... this shouldn't be hard 08:51:10 timbl: what you're trying to do is express something in a synchronous kind of way in a asynchronous world 08:51:22 slightlyoff: promise = read(...); 08:51:37 noah: there's a type that is returned by read() which is consistent across APIs 08:52:13 slightlyoff: that's right, you can have p.then(func(v) {}, func(e) {}).then(...) 08:53:01 slightlyoff: then is called immediately but the functions aren't 08:53:34 noah: the read() delivers the value to the promise, the promise delivers the values to the functions 08:53:47 slightlyoff: you can call then multiple times 08:54:02 timbl: the thens occur in any order? 08:54:10 slightlyoff: they're dispatched in the order they're registered 08:54:52 ht: how does f2 know the name of the promise? 08:54:58 ... how does it chain? 08:56:22 slightlyoff: the then() creates a new future 08:56:38 ... so you can chain another then() on that future 08:57:00 ... this is an important standard way of doing this historically 08:57:12 ... many languages have this, for example Python has futures 08:57:38 ... Javascript has no syntactic support for it, so it's just through these functional contracts 08:57:47 ... C++ has Futures for example 08:58:04 ... JS has gotten by with libraries that are similar to this 08:58:16 ... they're really common, and people are using this pattern at scale 08:58:27 ... so we want to get our house in order from the DOM perspective 08:58:58 ht: if there's no language-level support for this, how do the libraries which implement these solve the race condition problem? 08:59:05 ... if they have to just work with callbacks 08:59:33 slightlyoff: in the web platform we have several APIs that give us the ability to delay work for the next turn 08:59:46 ... they give you the ability to run code soon but not synchronously 08:59:54 timbl: timeout(0) for example 09:00:21 slightlyoff: JS and the DOM get along but don't have a contract 09:00:26 ... JS has no idea of an event loop 09:00:47 ... we're hoping to add something in ES7 09:01:01 ... the DOM has been responsible for everything to do with time, except getting the time from the system clock 09:01:15 ... the libraries use a call-me-back-soon hook 09:01:59 [discussion of GC] 09:02:28 noah: for medium/high performance this'll give you what you need 09:02:45 slightlyoff: this gives you standard ways for error handling too 09:03:28 timbl: I've found things get lost currently, do we get a guarantee that one of these things get called? 09:03:32 slightlyoff: I will talk about that later 09:04:31 ... there are lots of libraries, want to make them compatible, have made Promises A+ 09:05:47 ... a proto-standard scrum, to standardise just the essential pieces of this contract 09:05:56 ... eg number of arguments, the timing 09:06:01 ... not the rest of the API design 09:06:05 ... DOM needs this badly 09:06:09 ... JS needs it too 09:06:12 timbl: which bits? 09:06:22 slightlyoff: generators and iterators which are nearly pythonic in their style 09:06:32 ... and which aren't explained, they're just syntax 09:06:40 ... it would be nice if we could describe them as promises 09:07:11 ... in most cases we're on the UI thread 09:07:15 wycats_: we need them for modules 09:07:34 slightlyoff: it helps us reason about IO 09:07:45 ... it would be good if both DOM and JS had a standard contract for their users 09:08:08 ... since January we've been working with the Promises A+ community and the library authors 09:08:37 wycats_: all the pure JS libraries have coalesced around this 09:09:01 ht has joined #tagmem 09:09:10 slightlyoff: annevk's draft locks down the ambiguities 09:09:15 ... this is good for DOM 09:09:48 ... we can make backwards-compatible fixes to existing APIs by returning a promise rather than void 09:10:03 ... we want to make sure that APIs standardise around this same pattern 09:10:13 timbl: so this has consensus? 09:10:21 slightlyoff: there's no active hostility 09:10:28 annevk: there's some debate about specifics 09:10:37 slightlyoff: this was a hot topic at TC39 last week 09:11:18 ... the big change is that we've renamed 'Future' to 'Promise' 09:11:44 timbl: was there any change to semantics? 09:11:47 slightlyoff: no 09:11:56 ... there are two camps about how to use these things in the wild 09:12:07 ... generally coming from perspectives of producer vs consumer 09:12:19 ... the Promise can be thought of as the value 09:12:28 ... or you can think of the value being received at another time 09:12:46 ht has joined #tagmem 09:13:05 wycats_: abashed monadic promises 09:13:30 slightlyoff: we've won this battle in TC39 and DOM 09:13:38 annevk: you should say 'platform APIs' rather than DOM 09:14:03 slightlyoff: yes, we have agreement to use the same design, and to coordinate 09:14:26 you should consider this TAG work 09:14:27 ... and it will eventually end up in the language 09:14:40 dka_: what can we as the TAG do, what's the output of our work on this? 09:14:52 ... and what external bodies should the TAG be influencing to get consensus & buy-in? 09:15:21 marcosc: from a WG perspective, where we've been trying to use these things is guidance on how to hook into the spec 09:15:25 ... like examples 09:15:30 annevk: the spec doesn't have hooks yet 09:15:55 marcosc: if the TAG made a document that gave examples for spec authors 09:16:04 ... to make sure we're using the right language 09:16:08 wycats_: an explainer 09:16:16 timbl: is there JS for implementing it? 09:16:23 slightlyoff: yes, I've written one for example 09:16:36 wycats_: (to DKA) you should consider this TAG work 09:16:50 dka_: making that assumption, what is the output of the TAG? 09:16:58 annevk: note on promises 09:17:14 wycats_: a 'how to make APIs' guide that fast-tracks Futures 09:17:34 dka_: it's useful to be able to point to a document in TAG space that has the links to the relevant work 09:17:52 marcosc: and bug annevk to make sure we can hook into the spec 09:17:57 slightlyoff: we're not finished on the spec 09:18:10 ... we've been successful at preventing design needs from leaking into the superclass 09:18:15 ... eg notification of progress 09:18:42 ... you need a subclass of a promise to give that 09:18:55 ... need to get agreement on common subclasses 09:19:19 ... the TAG could help spec authors understand how useful it is to have a common contract 09:19:38 ... we've backdoored this because libraries have agreed, just have to standardise it 09:19:50 ... the TAG should weigh in to say it's a good thing to do 09:20:04 timbl: have every jQuery implementation have a complete Promise API? 09:20:09 wycats_: it's an evolving story 09:20:17 slightlyoff: there are many opportunities here 09:20:26 ... if we have a standard platform Promise type it's possible to add tools 09:20:42 ... eg to show a list of outstanding promises that haven't been resolved 09:21:01 ... if we can't standardise on a type we can't do that 09:21:35 wycats_: all existing libraries can wrap jQuery promises to create ones that meet their APIs 09:21:50 timbl: what's nice about try/catch is you can wrap it around a whole bunch of stuff 09:22:00 annevk: you can combine promises into a new promise 09:22:24 wycats_: the design is to make it easy to express things as if they were synchronous 09:22:38 ... xhr.then(success).then(success2).then(null, err) 09:23:39 ... and that desugars into try { xhr(); success(); success2(); } catch (e) { err() } 09:24:14 Yves, ETA is a week or two, not sure if you asked that 09:24:29 Yves, ETA for renaming that is and fixing a few things 09:24:34 yeah, I was asking for ETA on the new version of the spec 09:25:07 timbl: what you want to do is write an asynchronous case in as concise a way as sync ways 09:25:14 slightlyoff: we can't get there without this 09:25:35 wycats_: in unix you have file descriptors for example 09:25:47 ... but you need the abstraction first, something that represents the eventual thing from IO 09:25:54 ... you need the primitive first 09:25:57 slightlyoff: this is the primitive 09:26:11 ... and this is why I think the TAG needs to help drive this through the platform as quickly as possible 09:26:31 ... it would be best if all the platform APIs use this pattern 09:26:42 ... in the same way as we're relatively uniform over events 09:26:50 ... there will be a similar issue over Streams 09:26:58 ... there's no core idea of Streams 09:27:08 ... then ES7 will probably bite off language-native events 09:27:19 ... and it would be good to make sure that was unified with DOM events 09:27:25 ... from an architectural perspective 09:28:10 timbl: using a promise has an overhead but is the idea that in the future will the language optimise it? 09:28:31 slightlyoff: anything that's common enough will get optimised 09:28:38 ... especially if it's targeted by benchmarks 09:28:50 ... having it standard opens up possibilities for optimisation 09:29:08 ... it's never going to be actually free 09:29:18 wycats_: V8 happily optimises DOM constructs 09:29:29 slightlyoff: the more that V8 knows about the internal representation, the more it can do 09:29:59 plinss: what are the concrete next steps for the TAG? 09:30:10 slightlyoff: I need help convincing spec authors that this is a good thing to do 09:30:30 timbl: write what you think and we call it a Finding 09:30:39 ... then you get a TPAC slot to point people at it 09:30:50 dka_: I think that fits nicely in how we described our work 09:31:00 ... we have Note on Promises on the list 09:31:07 ... this gets into the question of how we operate 09:31:17 ... I'd like to see placeholder document for that before the end of the meeting 09:31:21 ... which we use as a reference point 09:31:32 ... if you have a commitment to write the content of the document, we can start shopping it around 09:31:43 ... we can use it as a basis for the group engagement that we talked about yesterday 09:31:53 ... even starting with discussion on web audio 09:32:09 plinss: we have to get consensus on whether this is something the TAG wants to throw its weight behind 09:32:25 ... TAG Finding + TPAC slot might be appropriate, but do we need something quicker than that? 09:32:49 marcosc: it's hard to move people off the events model, so it needs to be clear how and when to do that 09:32:59 wycats_: the explainer needs to go into benefits and limitations 09:33:17 timbl: common open source code too? 09:33:31 marcosc: Alex has done some work on IndexedDB & LocalStorage for example, refactored 09:33:45 timbl: is it horribly cumbersome to do that? 09:34:04 marcosc: it's nice. The XHR example is very easy to understand 09:34:09 ... integrating with events too 09:34:19 timbl: you mean the developer is using events as well? 09:34:41 marcosc: you can remodel the same thing to hook into the events, and use the promises you create to give an API that's very simple to use 09:34:46 ... showing that is 20 lines of code and very useful 09:35:04 ht: that's a very high leverage way of engaging the web community 09:35:14 plinss: do we have consensus? 09:35:27 [yeses] 09:35:54 .RESOLUTION: The TAG supports Promises and will help drive their adoption throughout the platform 09:36:33 JeniT: what are the arguments against? 09:36:47 wycats_: one argument is the monadic promises thing 09:36:57 ... which I think we can leave TC39 to argue 09:37:19 ... the argument that is more relevant is from Node.js 09:37:36 ... they coordinated around error-first callbacks 09:37:43 ... where errors are called as the first parameter 09:37:53 slightlyoff: those are nicer in some ways 09:38:22 ... by presenting the error as the first argument, the fact there might be an error is emphasised 09:38:35 timbl: I standardised on that because I was losing too many errors 09:39:05 wycats_: if you choose to use that pattern, you'll handle the error 09:39:15 slightlyoff: we can evolve Promises to do error-first callback 09:39:35 wycats_: error-first callbacks don't separate the call from the eventual value 09:39:42 ... so it's hard to build abstractions around it 09:40:19 ... you have to use all() around a bunch of functions 09:40:25 ... it's hard to do combinations 09:40:52 annevk: the concern I've heard the most is completely different, that they're not stable yet 09:41:11 I wouldn't say it's hard, but it's hard to package up a bunch of eventual values and do abstractions around them 09:41:16 slightlyoff: yes, there's disbelief and unfamiliarity 09:41:45 wycats_: many people using Node.js use libraries that use Promises 09:41:51 timbl: the TAG can show the adoption path 09:42:04 ... to show that new libraries can support old code 09:42:17 ... demonstrate there's only benefit in supporting promises 09:42:26 ... push it to libraries, then to developers 09:42:33 noah: are they actively pushing back? 09:42:40 wycats_: they can't avoid adopting, because they use V8 09:43:11 annevk: there are two conversations, one around the platform APIs and one around error-first callback 09:43:19 noah: we have to coordinate across W3C and others 09:43:28 https://npmjs.org/package/q 09:43:34 322 dependents 09:43:37 ... Node.js has expertise in dealing with async stuff, and they're objecting 09:43:45 ... are they worried about object creation overhead? 09:43:52 wycats_: I haven't heard them bringing up performance 09:44:00 slightlyoff: you're already creating objects, in either model 09:44:14 ... the Node.js community doesn't have the same latency issue as a game developer 09:44:28 A refinement of the proposed .RESOLUTION: The TAG supports the continued development of the work on Promises, including helping to drive their adoption, socialisation of the work with more communities, and the continued refinement of the concept… 09:44:41 noah: if the TAG is coming close to making a resolution, we should reach out to that community 09:45:25 wycats_: even if it doesn't solve Node.js's problems, it solves platform API's problems 09:45:40 slightlyoff: the Node.js community isn't our community 09:45:51 ... it's divorced itself from standard web APIs in several cases 09:46:05 ... for example inventing a module system diverting from ES6 09:46:44 q+ to suggest a workshop 09:46:52 timbl: can I propose we wrap-up Futures/Promises, and queue as an agenda item the relationship between Node.js and the platform 09:47:02 wycats_: the Node 09:47:14 s/wycats_: the Node// 09:47:32 dka_: I suggested a clarification to the resolution wording 09:48:05 the node community believes that constant API churn is bad for their ecosystem, and therefore do not want to adopt ecosystem-wide paradigm changes if their solutions are working 09:48:22 .RESOLUTION: The TAG supports the continued development of the work on Promises, including helping to drive their adoption, socialisation of the work with more communities, and the deployment and development of the concept 09:48:43 they have developed node during a period of extraordinary language stability, and they are going to have to grapple with more language change eventually, beyond just promises 09:48:50 timbl: the message is that we have consensus between Ecmascript and the platform, and that's big enough to say we're not going anywhere else 09:49:14 Yves: is it too early to write a document? 09:49:15 wycats_: no 09:50:18 .RESOLUTION: The TAG supports the work on Promises, including helping to drive their adoption, socialisation with more communities, and the deployment and development of the concept 09:50:27 RESOLUTION: The TAG supports the work on Promises, including helping to drive their adoption, socialisation with more communities, and the deployment and development of the concept 09:50:36 ht: I wonder if we should try for a W3C workshop of this 09:50:42 s/of/on/ 09:51:05 [BREAK for 20 mins] 09:53:10 JeniT has joined #tagmem 10:11:02 dka_ has joined #tagmem 10:19:39 q? 10:19:42 ack ht 10:19:42 ht, you wanted to suggest a workshop 10:19:48 [BACK] 10:20:06 ht: we should have a workshop on the larger topic of platform API stakeholder consistency 10:20:10 marcosc: primitives 10:20:13 Yves: something at TPAC? 10:20:16 ht: possibly 10:20:39 ... W3C workshops are another tool that we could employ 10:20:56 wycats_: the process of workshops aren't familiar or helpful for web developers 10:21:04 ... particularly requiring position papers 10:21:13 ht: it's possible to have workshops without requiring position papers 10:21:33 noah: was the meeting a waste of time? 10:21:49 wycats_: it ended up meaning the workshop didn't contain developers, which made it less useful 10:22:05 slightlyoff: there were meetings last year that I participated in 10:22:13 ... an invited group of people 10:22:33 ... that and W3C workshop have similarities and impact 10:22:41 ... the difference in style gives different outcomes 10:22:47 wycats_: you're too charitable 10:23:03 ... at the workshop and developers at the Offline workshop 10:23:19 ... the developers & annevk & darobin removed ourselves from the workshop 10:23:37 ... the predefined structure of the workshop didn't work 10:23:51 dka_: in defence of workshops 10:24:01 ... I understand the issues, but part of the point is to try to be an open forum 10:24:15 ... what Alex described is a bunch of people who know each other 10:24:36 ... the whole idea of the W3C workshop process is to announce publicly that it's going to happen 10:24:38 q? 10:24:45 ... to try to get people in the room who aren't talking to each other already 10:24:56 ... and the point of the position papers is to eliminate kooks 10:25:03 ... you have to have something coherent to say 10:25:12 wycats_: the people who wrote position papers were kooks 10:25:42 timbl: philosophically, if you want to get people together you have to find a way of doing it 10:25:49 ... we found too many people coming to workshops 10:26:03 ... we found that asking for a small paragraph in email as a position paper set a bar 10:26:23 ... later as things got bigger we found that we needed a programme committee 10:26:36 ... workshops shouldn't turn into conferences 10:26:42 ... think of a way of getting the right people in the room 10:27:07 wycats_: I was invited but I wasn't able to speak 10:27:14 marcosc: it was an unconference! 10:27:25 wycats_: most of the people there weren't familiar with the actual problem 10:27:49 dka_: let's discuss this over lunch 10:27:59 wycats_: we have to discuss this before I'm happy with a workshop 10:28:15 Yves: this is why I suggested TPAC because you can present to a larger amount of people 10:28:26 noah: you're over thinking this 10:28:37 [more precisely, most of the people there were familiar with the *use case* problems — i.e. that they couldn't deliver — but weren't familiar with the actual technical problem] 10:28:45 and more generally WG that would need to hear about such topic 10:28:47 ... if a workshop is potentially promising, make it someone's responsibility to organise it 10:29:20 ... asking people to write stuff in advance is a good thing because it helps people think about what they want to say 10:29:28 Basically, we should have a barcamp around the web platform. Workshops / conferences are a pain. 10:29:32 ... put it together in an appropriate way for getting the people you want in the room 10:29:52 dka_: I was one of the chairs of the Offline workshop, so I want to know about what was wrong about it 10:29:57 ... for this topic, we can move on 10:30:14 Topic: Streams 10:30:51 annevk: we don't know enough about this to talk now 10:31:06 Topic: TAG operations 10:31:37 dka_: we've talked about enough content to be able to ground this discussion about how we operate 10:32:02 plinss: the one thing on Promises to tidy up is a next action 10:32:31 dka_: marcosc, you gave a briefing to the SysApps WG about how to operate, I was wondering how much of that we could adopt 10:33:16 marcosc: there's what I did with SysApps, and what slightlyoff, wycats_ & annevk have done with private repos that they've then opened up 10:33:31 ... we have a github organisation & repo that JeniT's already used for her slides 10:33:42 ... it's easier in some respects than CVS 10:33:57 ... on the other hand there's lots of infrastructure currently in place for the TAG 10:34:05 ... like generating minutes etc it's super useful 10:34:06 https://github.com/w3ctag/ exists 10:34:25 dka_: how we use github and moving things over to github is one key topic 10:34:50 annevk: we have a github organisation already 10:35:26 noah: the main things that we've gotten from CVS from the past decade is instantaneous path to publication in W3C space, with ability to maintain long term persistence 10:35:36 ... sometimes that's useful to get coverage with IP rules 10:35:56 Btw, if people can give me their usernames I will add them 10:35:58 ... I've been told that some WGs have cloned repos into W3C space, but I don't know about the control over URIs 10:36:06 Yves, plinss, dka_, ht, timbl? 10:36:32 timbl: github does not naturally allow you to host a website, it doesn't give you control over mime types 10:36:47 wycats_: you can manage those within github 10:37:21 ht: what's wrong with CVS? it's not broken 10:37:31 wycats_: other people who don't have CVS access can't collaborate with you 10:37:56 ht: if we have projects that need collaboration, fine, but we don't always need collaboration 10:38:26 ... can't we use CVS for most of our work, and use github when we want to collaborate 10:38:45 timbl: Henry's concerned about public write access 10:38:55 wycats_: github doesn't give public write access 10:39:20 dka_: this is why I asked marcosc to introduce the topic from the perspective of other WGs 10:39:34 ... then we can talk about how we mix this approach with the existing W3C approach to get the best of both worlds 10:39:38 ... this isn't an either/or 10:39:53 noah: my question was about what control you get over URIs 10:40:29 marcosc: currently, W3C has a htaccess file that redirects from W3C space to github space 10:40:44 noah: is it easy to make multiple URIs and include dates in URIs? 10:41:11 marcosc: yes 10:41:24 wycats_: there's a huge gap in understanding about how github works here 10:41:46 dka_: noah, you're conflating how we are doing it and how we should do it 10:42:25 noah: we've needed dated versions so that we can discuss drafts in meetings and having a dated version referenced from the minutes 10:42:56 marcosc: when you check something in, you can see diffs for changes 10:43:26 wycats_: you can do everything you want to do with tooling on top of gh-pages 10:44:06 noah: when the URIs are mirrored from W3C space, do you get stability? 10:45:00 ... what happens if/when github blows up? 10:45:17 wycats_: we can move the network storage and get the URI persistence 10:45:37 timbl: I like github in lots of ways, pull requests, a lot of stuff on top of git 10:45:56 ... what W3C gives you is persistence for history, so you can go back and check 10:45:59 ... we have the CVS record 10:46:10 ... we can see what happened, who changed things etc 10:46:18 ... at the moment all that is within w3.org 10:46:25 ... we have comma tools and so on 10:46:33 wycats_: why don't we have that with github? 10:46:45 timbl: W3C has a persistence guarantee 10:46:54 annevk: you can clone the git 10:47:08 timbl: we could every night sync onto w3c space 10:47:13 dka_: including the commit history 10:47:33 timbl: the problem is that if you use the github tools like issues etc then it doesn't include that history 10:47:49 ... anything that's decentralised, I'm happy to use whatever tools we like 10:48:00 ... I'm worried about tracker, the messaging 10:48:08 wycats_: the pull request feature is the most problematic part 10:48:34 plinss: the CSS WG mirrors our repositories onto github 10:48:41 ... we don't use issue trackers 10:48:51 ... our test suites and our drafts are on github 10:49:00 ... the canonical source is Mercurial on W3C space 10:49:22 ... we have git and hg versions of both repos 10:49:27 ... I'd propose we do the same thing 10:49:53 ... using the github collaboration for pull requests and so on 10:50:02 ... github have APIs for those 10:50:16 Everyone should be added to the owners of the w3ctag thing now except for ht. Could not find ht on GitHub. 10:50:17 ... we can use those to pull out that data 10:50:39 I should be there. . . 10:50:41 Hang on 10:50:47 ... I'm syncing all the issues etc for 'Shepherd' from github 10:51:21 timbl: I'd love to see the issues etc be written out into a standard format 10:51:34 plinss: we can capture all that data and keep our own archive of it 10:51:48 ... I like the social part of github, I'm not comfortable to rely on them for our storage 10:52:00 dka_: the question I asked was about what happens when HP buys github 10:52:05 ... we need to have a story for that 10:52:13 I'm logging. Sorry, nothing found for 'log' 10:52:17 plinss: we can't rely on that 10:52:24 I have made the request to generate http://www.w3.org/2013/05/30-tagmem-minutes.html Yves 10:52:34 annevk: the most important information is in the repo, not the issue tracker 10:52:45 ... the issue tracker should be a thing you can use 10:52:48 s/use/lose/ 10:53:06 timbl: issue tracker history is interesting 10:53:25 noah: one of the things to watch about the TAG is how long it runs relative to how quickly its membership turns over 10:53:38 ... the TAG has a long term presence, and the same issues come up after 8/10 years 10:54:03 ... some combination of minutes/action etc needs to be captured 10:54:15 timbl: CSS predates the TAG 10:54:32 dka_: Yehuda, you started to articulate a story about this 10:55:14 wycats_: when whytheluckystiff nuked himself, people managed to reconstruct almost all his work through local copies 10:55:45 noah, do you have GitHub account, and if so, should I add you to the repo? 10:55:54 (everyone else is added) 10:55:55 ... you tend to be able to reconstruct content 10:56:11 timbl: how do people feel about using Google Docs? 10:56:51 dka_: I'd use it for an agenda for example, but not for anything else 10:57:23 timbl: Google has a reputation for being one big company and people feel uncomfortable about it, whereas people think of github as one big space when actually they're a company too 10:58:29 ... people think of large companies with a monopoly, like github, as being problematic because of putting all their eggs in one basket 10:58:47 darobin has joined #tagmem 10:58:47 dka_: I think it makes sense to mirror what the CSS WG is doing, to make sure we mirror content 10:58:59 ... I expect W3C to be around in 50 years 10:59:24 noah: are you saying that documents should be referenced through w3.org? 10:59:26 dka_: yes 10:59:50 noah: you're taking the gamble that w3c will make the investment of rescuing stuff to rehost our stuff that's in github 10:59:57 dka_: it'll already be done because it'll be a clone 11:00:11 noah: github has a collaborative model, whereas W3C work has IP commitments 11:00:26 ... we expect email without IP commitments, for example 11:00:43 ... but core work needs to be under those commitments 11:01:04 wycats_: you need a click-through CLA (usually hosted by Google forms) and you don't accept pull requests without people having completing that 11:01:28 marcosc: in github you can have a contributing file that requires you to agree before committing 11:01:30 [I'd like to suggest that maybe using the w3c organisation on GH might work better than creating a new one as we expect that it will get automatically hooked up with e.g. sync to W3C site and such] 11:01:48 plinss: in the test suite repos, the click-through you have to sign is a W3C form 11:01:56 ... and the counsels are ok with that 11:02:17 ... before you accept a pull request, you have to check that people have signed it 11:02:26 noah: so you have to do some manual due diligence 11:02:47 dka_: that's true anyway, if people post to W3C mailing list 11:03:03 try curl https://api.github.com/repos/wycats/handlebars.js/pulls 11:03:07 Yves: before you can post to the mailing lists, you have to agree to IP commitments 11:03:14 ... we can have the same thing for pull requests 11:03:45 ht: I'm more familiar with Mercurial than github 11:03:58 ... it's good for me if I can use Mercurial 11:04:03 http://hg-git.github.io/ 11:04:08 http://www.w3.org/2002/09/aa/ does not say anything about licenses Yves 11:04:27 ... I'm not sure that I've heard about how things get auto-published to W3C space 11:04:39 hum, I'm pretty sure there was something for contributed text, I'll check 11:05:05 [also see http://www.clahub.com/] 11:05:07 ... if I want to create a document in W3C space today, I can use CVS and just commit it in and it appears 11:05:21 annevk: we can do that too, with a commit hook 11:05:37 we would really 11:05:38 timbl: can you make a commit hook on github to ping somewhere else? 11:06:00 wycats_: yes, you can receive anything that happens on a repo 11:06:12 timbl: we'd like a piece of W3C space that is automatically synced 11:06:23 plinss: we're doing that in CSS WG 11:06:33 [we use hooks extensively to publish the web-platform-test to w3c-test.org, to push ReSpec releases to w3.org, etc.] 11:07:01 timbl: one of the things I like about W3C is that the basic URI is the thing that everyone sees 11:07:09 ... you've got ,cvs, ,log etc 11:07:24 ... encrusted URIs for views of the repository, but the pure URI is the clean URI 11:07:41 ... in github the default URI is the under-the-covers URI 11:07:49 plinss: we can set up both views 11:08:04 ... we can add the comma operators 11:08:11 timbl: we can do that in the htaccess, yes 11:08:28 plinss: we can have all of what we have with CVS with a git and mercurial system 11:08:35 ... it takes a little bit of glue but we can do it 11:08:47 timbl: people will end up referring to the github version 11:08:55 I thought Yehuda said: "Published spec XXX says MUST" which one? 11:09:03 q? 11:09:06 plinss: some of the WGs live around the hg repos 11:09:13 By the way, updated F2F agenda with correct time slots for what we actually discussed is checked in at http://www.w3.org/2001/tag/2013/05/29-agenda.html 11:09:17 ... in CSS we're very careful to use the w3.org URIs 11:09:26 ... we'll have to do the same thing here 11:09:41 marcosc: in an ideal world, all this stuff would work, I don't think it's difficult to get this sorted 11:09:56 q+ to say when github discussion dies down, I'd like to briefly ask about product pages and how you'd like to goals, deliverables, dates, etc. for ongoing projects 11:09:58 (git syncing is being worked on by systeam) 11:10:23 ... what I'd like to see some day is that the stuff that Alex & Yehuda have been working on in their private repos should be in the w3ctag organisation 11:10:29 wycats_: I'm happy to do that 11:10:41 q? 11:10:59 annevk: I've added people except noah 11:11:05 noah: I need to get a userid on github 11:11:35 marcosc: when stuff starts happening on github, they can follow repos etc 11:11:43 ... we don't have a paid account 11:11:54 ... so can't have a private repo 11:12:10 ... we need to sort out some logistics to manage that 11:12:18 dka_: for each piece of work we have a repo 11:12:29 ... there's work to be done in writing these scripts 11:12:32 plinss: I'll do that 11:12:41 annevk: I have scripts for the WhatWG specs 11:13:25 plinss: one more thing, we could be using the w3c organisation rather than w3ctag 11:13:57 annevk: I discussed with darobin, but it's easier this way because we can create repos as we like 11:14:25 dka_: can we get W3C to pay for the repo? 11:14:32 annevk: WhatWG got it for free 11:14:37 dka_: so we can pull rank? 11:14:46 annevk: if you email them you can get it 11:15:05 marcosc: we already have people who are paying members 11:15:13 annevk: shall I email them? 11:15:18 dka_: yes 11:15:20 q? 11:15:38 ... noah has a corollary issue about product pages 11:16:15 noah: when I came in as chair, we weren't tracking the goals of what we were doing, who's doing it, what the checkpoints are 11:16:24 ... my answer to that was HTML pages 11:16:34 ... because the tools weren't flexible enough for anything else 11:16:44 ... and then we have a roll-up page which is like a dashboard for the TAG 11:16:59 [note that w3c already has access to private repos, so you can reuse that if needed] 11:17:34 ... this is for helping to keep track of the goals and focusing discussion 11:17:55 ... I don't care how you do it, but do you want to keep track of these kinds of long term goals, like the Promises work 11:18:06 wycats_: is the infrastructure in the repo sufficient? 11:18:25 noah: it doesn't give the community information about the goals 11:18:37 dka_: we could use a README file 11:18:42 ... in the repo 11:18:52 timbl: all those documents can be stored in a repo 11:19:14 wycats_: README is special in github, it's rendered and displayed in the repo 11:19:33 noah: it's useful having a dashboard page 11:19:51 JeniT: the list of repos gives a dashboard 11:19:56 noah: needs to be accessible to AC members 11:20:41 ack noah 11:20:41 noah, you wanted to say when github discussion dies down, I'd like to briefly ask about product pages and how you'd like to goals, deliverables, dates, etc. for ongoing projects 11:20:59 JeniT: we need some social conventions about what needs to go in the READMEs for those to work 11:21:18 noah: I tried not to let tools be an excuse for doing a crappy job 11:22:14 dka_: we've only talked about incorporating github into our operations 11:22:20 ... we haven't talked about minutes for example 11:22:33 ... plinss and I have discussed that automatic minute taking is extremely useful 11:22:42 fwiw: https://github.com/rwldrn/tc39-notes 11:22:53 for example: https://github.com/rwldrn/tc39-notes/blob/master/es6/2012-05/may-21.md 11:22:56 ht: we already have a two-track story about that 11:23:06 ... the vanilla minutes come out in W3C date space 11:23:16 ... the cleaned up approved minutes go into TAG space 11:23:26 ... that step could move into git-managed TAG space 11:23:30 ... if we're ready to do that 11:23:31 actually they've gotten better: https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-03/mar-12.md 11:23:54 noah: with CVS we can do a grep over 10 years of minutes 11:24:04 plinss: we can take a copy of the older minutes 11:24:08 ... we can map the URIs 11:24:48 dka_: we need to figure out how we do that 11:24:59 ... personally I'd like to see minute taking and cleanup be easier than it has been 11:25:14 ... it felt difficult to clean up minutes when I was in the TAG 11:25:33 ht: it's a pain but it's worth it 11:25:45 dka_: the mechanics are hard, not the intellectual effort 11:25:57 noah: linking imagines in the minutes are helpful 11:26:19 Yves: it should be easy to import CVS history into github 11:26:27 noah: how do you want this round of minutes done? 11:26:35 dka_: as we have been 11:26:39 plinss: we're not changing things now 11:26:49 dka_: we're going to have Siri auto-generate them 11:27:01 plinss: we've talked about using github 11:27:08 ... we also have the TAG blog, wiki and twitter account 11:27:12 ... we need to be using these tools too 11:27:22 ... we need to categorise when we use these 11:27:33 wycats_: github is sort of like a wiki 11:27:39 ... you can use it like a wiki 11:28:07 ... you can 'Edit' the READMEs 11:28:28 ... if there's a strong reason not to use github for agendas, fine 11:28:41 slightlyoff: TC39 is moving to using github 11:29:03 dka_: we do have the TAG wiki in W3C space 11:29:17 plinss: there are advantages to using the tools in W3C space 11:29:34 timbl: we've talked about just taking all CVS into git 11:29:50 scribenick: noah 11:30:35 tbl: Possible lunch discussion: moving all of W3C Web site to git. Would obviously need to coordinate with systems team. 11:30:49 tbl: would love to have more flexible way of updating on planes 11:31:01 pl: OK, but over lunch 11:31:53 pl: we have a blog 11:32:23 pl: appropriate to use it for certain things 11:32:32 pl: quick response, high level overview 11:32:55 pl: e.g. first crack at futures could be in the blog, or could announce larger docs in the blog, then tweet. 11:34:49 dka: BREAK for lunch 12:22:46 marcosc has joined #tagmem 12:37:40 scribenick: noah 12:37:45 topic: Web Audio 12:38:56 We are joined in this session by Oliver XXXX from the BBC 12:39:33 DKA: We are making an effort to reach out to people who are working on important specs. Realizing that you were nearby in London, we wanted to take the opportunity to invite Olivier. 12:40:01 DKA: This morning we had a discussion of asynchronous programming with futures/promises, so that's one topic that interests us, but an overview of Web Audio would be helpful too. 12:40:29 OT: I'll update you on two things 1) what the Web Audio group is doing and 2) how it got there. 12:41:15 OT: The group is hoping to have a "friction" point between the music and Web Audio and game development cultures. There are completely different ways of thinking, even in terms of how you build expect. 12:42:09 OT: Example, audio processing involves lots of algorithmic. If you've been in the audio processing work, no explanation or specification is needed. Just say you need this or that convolution, and every audio or signal processing engineer knows what you mean. For the Web, we need interop. 12:42:27 OT: So, there's class about the level of specificity that's most helpful in the specs. 12:43:15 HT: I've assumed that the elephant in the room is the huge depolyment of IOS and similar native apps for mixing, sound control, etc. and there's a perception that the Web infrastructure currently can't do it. 12:43:48 OT: Well, there's a huge history of realtime HW and now SW gear. It's Microsoft as well as Apple, plus custom hardware e.g. for synthesizers, even today. 12:44:43 OT: We're bringing to the Web an industry that's traditionally depended on massive precision and performance. Occasionally, the problems are more than perception. 12:44:59 OT: So far, "architectural" decisions have played a small role in the design of the APIs. 12:45:46 dka_ has joined #tagmem 12:45:55 OT: The goal is to provide audio synthesis (e.g. mashing together and process wave files), filters, etc. Another spec is for Web Midi. That's separate. We're talking about midi controllers, not the midi file format. These are used for lighting as well as musical instrument control. 12:46:08 OT: We are in the process of bridging all those to the Web platform. 12:46:34 OT: In a way, doing midi in the audio wg is partly an accident, tracing to traditional use of midi for music 12:47:06 s/XXXX/Thereaux/ 12:47:22 OT: There were attempts to use