 Rwy'n gwneud, yn oed. Rwy'n gwneud. Rwy'n gwneud. Rwy'n gwneud hynny'n amsgwmpio enboconf. Rwy'n gwneud weithio'n cerddur i gyd, a rwy'n gwneud hynny'n oed ym mwyaf ym Mbyr yw'r enboconf yn ymwys. Rwy'n gwneud ymwys i'w eu cyfnod i'r gael gwaith, sy'n gwneud hynny'n gwybod i'r mwyaf yng Nghymryd yn fwyaf, ac rwy'n gwneud wedi gael gwybod i'r mwyaf ymddangod, So ez gwybod jagr wrth y bydd iawn mae'n dweud â'n dweud gwybod y gallai cadarnod, mae'n dweud nowe edrych gwybod o'i bod yw hwnnw rydyn nien nhw yma, ond mae'n rôl yn 430 ychydig o'r ysgol, ond mae'n rôl mewn ffansi hotel yn Daun-Town Porthland. Rwy'n ddweud beth dyna'r pawr ysgol yw'r cyflwyniad gyda'r unrhyw cael I don't know if I would have been able to divide my attention between all the talks and I don't know about you, but like to me it felt like a real family atmosphere. Yeah, absolutely. Everybody was so friendly, welcoming, was very in a world. So all the videos are up now by the way, I think well almost all of them at least. They're tripling out and the slides seem to be all out as well. So I'll introduce the two of us who are talking, or at least we'll introduce ourselves and say if you want to introduce yourself first. Yeah, sure. I'm Mattia de Paolo. I'm a web developer working for AlphaSites. It's a company based in London, Mayfair, and we're mainly a rail shop where we're trying to do more amber hopefully in the future. And they were kind enough to send me to the very hipster city of Portland for EmberConf, which for me was an amazing experience. Yeah, that's all it is. And I'm Jamie. I work for a small tech consultancy with associates based in East London. And similarly, I was lucky enough to get sponsored to go to Portland for EmberConf. I think my involvement with these meetups and with the London community kind of made it a no brainer for our company to figure it was worthwhile to send me out there and meet some people to get some business cards. So to start to try and cover EmberConf, I'm just going to kind of put some themes up and then we're going to try and riff on those themes and like our takeaways from what we saw and what we heard and everything else. And then following EmberConf, I'm going to plow through a load of slides about the stuff that's going on in Ember at the moment and what's worth paying attention to. And if I make a mistake, shout, if there's anything I don't mention, shout. And if you want to ask questions in between topics, then please shout as well. So the first one is community and valleys. I thought maybe if we start with like the keynote and the things that Tom and Yehuda said in that. Yeah, well they started Tom and Yehuda, they started by setting the tone for the whole conference by setting the priority of this community is to be as welcoming as possible for new people. And it was a bit of a long introduction about how they don't want certain situations to happen. Sometimes here at conferences people get excluded but they really want to include everyone and they set the tone for the whole conference regarding the community and how people are going to build together Ember and be together. Yeah, I think the two rules that they gave were one was if someone tells you you're making them uncomfortable, just stop doing that thing that you're doing. Don't make it a point of argument or contention with them. Just understand that you're making them uncomfortable. And the other was that if you see someone making someone else uncomfortable, don't presume malice. It might be they don't have all the facts to hand. And rather than trying to solve situations like this by castigating people and with vitriol just engage people in conversation. And so the idea being that anyone can step into the Ember community and feel confident to say what they want. And speaking of community, so Lea Silbers on the core team and she organized Ember Conference is sort of behind a lot of the marketing drive and the mascots when we need stickers. She sends them kind of everything that propels the Ember community forward. She and her team are behind that. And I think that's they made a real point of saying that people on the core team aren't just the people writing like kernel code and designing APIs. They are people doing documentation and release management and community management and like none of those things stand up individually. You've got to have the whole package to have a community working and like I thought that the way they organized it was absolutely amazing. They did an excellent job. It was perfect. The organization, the gadgets and everything. Everything was top quality. The food was some of the healthiest and tastiest conference food I've ever seen. And there was like a massive gluten free bar as well. So the next point is developer happiness. So the guides addressed it as productivity in the keynote. And I would sort of describe it as the things Paul was saying about abstractions that provide a lot for you and what initially seems like magic is really just kind of like getting all the boilerplate decisions out of the way so that you can just start running forward with your idea. And that's the reason things like the router took, you know, six months to really come on that 18 months to really come together. Things like query params are taking six months to come together. White ember data is still not 1.0. So I think that they they've earned the right to congratulate themselves for the fact that once you do rock ember substractions, they let you like get moving really, really quick. I was thinking about ember as a prototyping tool. I don't know if you found this, but I find it amazingly easy to put together quite complex screens and flows just like really, really quickly. Yeah, yeah. For me, for me as well, like you think about what you can, you could do with rails, like when rails came out, I think it was amazing to how easy it was to build some, some things. But now I think the standard for web applications got really high. So for, in order to build this kind of prototypes very dynamic within lots of interactions, I think today, if you try to do it with ember, I mean, for me at least it's a very happy experience. It's just I'm very productive. So I mean, you could feel that the people at the conference, they were all sharing this kind of attitude. They were happy to do to build applications with ember and they had high ambitions for what they wanted to do with their applications. If you look through the talks, there's one, I forget the speaker's name right now, but he built an app with ember called Find and it's a UI for the iTunes API, the entire iTunes dataset. So it's kind of a totally browser based search interface and like very, very bizarrely quick, but you could tell that he just couldn't help but add more features because it had become so easy. And that stack of routes and controllers and views, all those things that ember creates for you means that as you're like gliding along, building your application, there is always some primitive there to help you. Like there's always a place to put the thing that you need, that little bit of logic that you need to go in there or that computer property or whatever it might be. So the next point is hard problems and this kind of ties into the previous one, but it's these things that they've spent, that they have and continue to agonise over. So the router, right? I think we both saw it in its early versions. Do you remember the router when it was just a state-like raw state machine? Yeah, repeatedly, yeah. Well, now it's changed quite a lot. Still a state machine under the hood, but now the way you interact with it is you don't have to deal with that if you don't want to, whereas previously you would have to describe the whole state machine in all its intricate detail in order to use it. And the ember data really falls into this. I know Chris Gammy, who we've had to talk here a few times, his app is built on that and he enjoys it, but when he hits a snag with it it's because it's like to solve those problems generally. It's super difficult and it takes time and it takes time to put ideas out there and see what happens and then slowly rain them back in again. The process of the router was just like this, where Alex Machinir spent months gathering people's experiences with the existing router, slowly tugging them all back in, starting to suggest APIs and what might work, starting to feed out beaters, and it slowly but surely came together until it's something now that is inarguably the right tool for the job. Good defaults was a theme of the keynote and it's kind of like this triptych of developer happiness, hard problems and good defaults. The good default is taking the things that we learn together as a community and encoding them into the framework. It's not just like you read a blog post about patterns and then you apply those patterns and then the next week you read a different blog post and apply it in your same app, apply a bunch of different patterns. The patterns that the Ember community thinks are the best are right there in the framework for you to use. Have there been times when you've taken something you've learnt in Ember and used it elsewhere and found it's paid dividends or brought to bear? Well, I would say lots of the things that Ember, well there are not many things that you have to do repeatedly in Ember because usually when you find a problem that you have to do many times, they almost always try to incorporate that in the framework there. I would say the biggest thing you can take from Ember is actually the structure that's already there that you can reuse that framework for building other applications. I think that's one of the biggest, the defaults in the sense of the structure that they build for web applications. I think it's the biggest takeaway to Ember. The final thing is, for this slide anyway, is the extensible web. This was the theme of the closing keynote, which is to say that Ember and other ambitious web projects right now, Angular and Polymer, taking the ideas from the next generation of the web, things that are still yet to be implemented in browsers, and giving them to us right now, things like ES6 and the idea of promises and bindings, and all these things that will be coming built into browsers down the pike, but it's important that we use them to their breaking point right now so that we can figure out if they really are the right tools for the job and the idea being that it takes a project like Ember or Angular or React to disseminate these ideas amongst developers enough that they can all really get using them. So I don't know about you, but I'd never looked at ES6 before it popped up in Ember app kit, before the Ember community started adopting it. Actually, I tried the Ember app kit once. That's one of the biggest incentives to try Ember app kit. I'm more excited about what's going to happen with Ember CLI, but that's one of the ES6 modules, and the fact that they won't get components into the web itself. That's one of the things that excites me the most about what they're going to bring from Ember to the whole web, at least in this web framework. That's really telling. The fact that components have proved enormously popular and successful in all the frameworks in Angular and in Polymer is an entirely component focused framework kind of suggests that they are what we want. They're what the developer community wants and so browser vendors can focus their time on getting that implemented. So that's some sort of takeaway from Ember Conf. Who did you meet? Who are some cool people that you hung out with? For me, the conference started with a conversation with two Yahoo developers. It was pretty interesting to know that basically now they're trying to migrate from YUI. They told me some horror stories about YUI and how they're trying now to train 1,200 Ember developers. Basically the whole front-end developers in their company are trying to migrate from YUI. So they were telling me that the most amazing thing about Ember is that when they have to train someone, it's so easy to get them up to speed and once they learn they can look at other projects and immediately after like 10 minutes know where are the pieces so they can actually interact. Also one of the things that they said was one of the biggest reasons they chose Ember is that people that for example tried to expose that data with D3 for example, they could leverage components built by other people. That was actually one of the talks as well. There was saying the same thing so that was quite interesting to me too. After that conversation I felt that Ember is pretty big. It's getting very big so that was interesting. Also I met a guy that drew the drawings. Michael Chan. He was also a very good guy. He did these drawings of every talk. He would draw some notes. You'll see one of these later. For my part I was lucky enough to end up crashing with a bunch of the guys from the New York scene. For anyone who isn't aware, the Ember meetups at NYC are pretty massive and growing and everyone there is really excited about Ember. I ended up staying with Matt Beal and Alex Machinier and a whole bunch of people. They hosted a hacker hours in their Airbnb. It was big enough to accommodate about 30 people. Bunch of nerds with laptops. Robert Jackson from the core team showed up at one point. It's amazingly easy to talk to all of these people. They are super approachable and it really does feel like a big family right now. First thing I want to talk about with the state of Ember, is the release cycle. Quick show of hands. Who is aware of Ember's release cycle? Cool. That seems like about half the room. It's based on Crohn's. The idea being that it's a six-week release cycle. Version 1.5 gets released and immediately as that happens the version 1.6 beaters start being cut. You get a new beta release of 1.6 every week for six weeks until the stable 1.6 goes out there. The idea is that they've got an idea of the stuff they think is going to go into 1.6. Put it out in the beta, some of it will make the cut and some of it won't. I thought it would be interesting to have a look at how that actually plays out. You see down here where the red arrow is that Master gets forked off into a new beta branch. Master gets merged into the beta branch. Then you'll see these commits that start to get cherry picked into beta. This is a week marker. Robert Jackson who's in charge of release management tagged beta one at this point and then you see a whole bunch more cherry picked commits after that until a week later when beta two got cut. It's somewhat automated, but the tags in the, and you can see this in his talk, but the tags in the square brackets are to indicate to him and everyone else in the release management team what stuff is supposed to be going into this beta release. Doc beta means I've got a bit of documentation which applies to the stuff that's going into the current beta, bug fixed beta, you can get the picture. Time progresses. We get through the weeks. Beta four gets cut. This is a weird example. You don't see beta five and six in here, but basically more bug fixes, more incremental improvements until finally beta gets merged into the stable branch and stable is where you will just find the minor releases, the 1.4, 1.5, 1.6 and any security releases that come out on 7 to 1.5.1 you'll see a stable in there and that will be like a security commit that gets cherry picked into everything. There's the release tags there and this is all the work of this guy who's newly on the core team and he works like a bastard. That's an amazing amount of work to do and to put that system together as well. Mad love for him. It's very, very cool. So I was thinking about the release cycle and I think to me it's like right now it's one of Ember's crown jewels and I think the reasons for that that spring to my mind are one that you see new features often and you see incremental improvements to the framework often in legitimate releases, not just like, you know, comparing Ember to Rails it seems like there's quite a long time relatively between Rails releases between a Rails 4.1 and 4.2 it seems like an eternity compared to what we get with Ember I don't know whether you... I usually run on Canary but just because I think they do a very good job of keeping even Canary pretty stable I mean I haven't found in my experience building applications I haven't found any major bugs while on Canary and I definitely think that even if you stay on the beta with your channel you get so many updates and new features and things that you can immediately use that's definitely... So as with Chrome Canary if you opt into the Ember Canaries you have access to a bunch of proposed features and you can turn them on selectively depending on your needs and the other thing I was thinking is that it means that we as the community can see our contributions in releases really quick like you are likely to see your work in a legit release of Ember within six weeks so I'm not a massive contributor but it's cool to know So next thing is Ember CLI There's a talk about this like most of these things there's a talk about but this is looking really good Who's used Ember app kit in the room? So that looks like a quarter 20% something like that and has anyone given Ember CLI a go yet? Cool so it's pretty stable I mean what's the talk for all the really interesting details there's still bits of it where it will sort of generate files for you that have quite a lot of boilerplate in and I think those will gradually go away so a bit like when you do Rails new you'll just see files with just your stuff in and none of the boilerplate is set up but I thought I'd play a quick video of what it looks like using Ember CLI so install it just with npm so it's going to create that scaffold for you, that project skeleton give you some some sane choices there to get going with and then boot the server and you're up and running and you've got a test suite ready to go and you've got a build pipeline and you've got production setup and minification and it's all there six and though on their on the page it says they use it at your own risk but really this is a little disingenuous this is surprisingly stable right now and the more of us get using it and get using it in production or development apps the more stable it's going to get and the more kinks are going to be able to work out of it Do you think you'll migrate anything over to this in the immediate future? Well, I'm a bit of a chicken I'm still using Rails for my Ember apps global namespace and everything but I would definitely want to try this for a side project or just to that's very exciting I used Ember appkit before and I wasn't really pleased with the grant pipeline that was the biggest thing that discouraged me to use it but now that this uses properly that's going to be amazing I think A question so the question was what's the relationship between Ember appkit and Ember CLI and I think in essence Ember CLI is all the ideas that went into Ember appkit but kind of baked into something that is more of like a product and ready to use a product maybe not the right word but it's with Ember appkit you could see all the guts of all the decisions that they made and it meant that upgrading your Ember appkit setup was quite difficult as they introduced new ideas and figured out new ways to get things to work correctly and it also meant a hell of a lot of grunt tasks just endless grunt tasks so Ember CLI is the best ideas from Ember appkit minus grunt plus broccoli is the build pipeline and so you go from with the grunt pipeline as your project grew so your build times would grow as well to 5, 6 seconds with Ember CLI and broccoli your build times stay a constant 200 milliseconds which is kind of a staggering achievement but we'll talk about that in the next topic any other questions on Ember CLI? How much longer before they actually say it's kind of ready to use? I'd give it, I think I think they'll probably start going into the 1.0 beta phase with it tentatively I'd say in the next few months I think like with everything else in Ember they'll stay in that beta phase for quite a while because you know there's always some edge case shadows and if you've made it impossible for that edge case out in the door then that's a real problem so I think it still needs to be proven and when you generate your Ember CLI project you still do find there are like I say there's some bits of boilerplate in there that would be better hidden away so they can be easily upgraded actually there's a nice feature in it where you can say Ember you have a subscribe flag which will notify you when new releases of Ember in a particular channel you're interested in are available so as you're working with your project if you say subscribe beta it will ping you a little alert to say hey you're on beta 4 did you know beta 5 has just been released so niceties like that are totally possible it just means like trying to figuring out what the the best starting boilerplate is and how to provide escape hatches to it and then coding that back to the same thing again of like codifying those good decisions and moving forward with them so these are Michael Chan's illustrations that Matteo was talking about so he did this stuff for every single talk but this is I thought would be a nice accompaniment to the broccoli talk do you want to talk a bit about your understanding of broccoli so I should just say that Joe Liss isn't here today but she's one of the co-organisers of Ember London so maybe a few of you have met her and spoken to her but yeah I mean what's your take yeah so basically well the previous state the previous build pipeline that usually used for javascript applications was grant but actually grant is more of a task runner it doesn't really know anything about the structure of files or anything like that so Joe had this idea of you know making the structural files and the pipeline more explicit so actually the subject of of the actual build so she built broccoli that basically only knows about trees that's why the trees yeah so what happens is you have this block file and you can define where what do you want to take files from and how do you want to process them so you have like these plugins that basically you know coffee script or SAS and they process your trees which are for example your vendor folder and they end up and they end up with the final distribution they compile the javascript and the CSS so that's the main idea behind broccoli it's a very lightweight library I think it's not more than 1,000 language code and it's very small because it uses mainly plugins to achieve so the core implementation is very small and there are lots and lots of plugins that help you with all your your files the types of languages that compile to either javascript or CSS so yeah the API surface is compared to ground if you look at a ground file it's huge instead if you look at a block file it's pretty small I don't know if you have some I don't know for example if there are questions but yeah I'll echo that broccoli's big idea is that a build tool in in our world of web development is about taking one or more trees of input files and turning them into an output tree and so what I mean by that is a bunch of different folders maybe containing subfolders and running those through a bunch of different mappings and processes producing an output folder at the end and you needn't use broccoli with ember but that's the principle it's like take all these different folders that are your input files and turn them into a folder of output files and both of those things can be thought of as just trees and as Mateo said you can keep grunts it's a good task runner pair it with broccoli and then you've got the best of both worlds there's a talk from Joe it's worth watching is anyone in the room again who's used broccoli who's given it a go independently of anything else but you should it's a really interesting project and it's worth reading the source as well it's totally intelligible and if you want to see all of Michael's illustrations that's where you can find them so yeah there's one for every talk and they're really sweet so on to testing so this is kind of big news for a while the guides just had that integration test subsection in it and it had a sort of one page worth of run down on how to do integration tests with the tools that Ember provides and Ember provides some really nice tools I mean do you use them much? I tried to use QUnit in the beginning I was more comfortable with Mocha and Chai so I tried to use to migrate to that type of library that I found some difficulties and the guides were it didn't really tell you how to treat asynchronous things so that was one of my main problems with testing with Ember how to actually test asynchronous behaviour with Ember you deal with lots of promises so that was one of my main pain points they did a very good job tackling those problems with both the guides and the new library that they built so what you get now with Ember what to talk it's very good we've had talks here in London as well about it you get a bunch of helpers which allow you to interact with your running application and they all deal with asynchronousity for you and then allow you to perform assertions and then there's because Ember's Ember a bit like Angular has a dependency injection mechanism you tend to find that when you're doing use it unit tests you will on occasion need some of the dependencies or need to inject mock dependencies and you do that by means of a container you don't necessarily have to but it's kind of comfortable to recreate the container setup in unit tests and now you can see this here on this side module 4 model is part of the Ember Q unit library which gives you it sort of adds a bunch of extra of these module helpers which do a bunch of the setup what this is saying is I want to write a test about my player model and player model probably does have some dependencies which it never really works away from so this will set that up with a bunch of stuff and then you can put in your mock dependencies and run with it but the guides are worth reading in front and back there's some really good stuff there and they're brand new they're the efforts of this guy Eric Berryclaw who has just done the most amazing work and this is the pull request this is all this stuff coming together the work of the community to put these guides together make sure that people know that Ember does have a good testing story any questions about Ember testing? cool so the next thing is the inspector use it much? yeah it's one of the best I think one of the best tools I use it on every day mainly the roots because you can see the state of your application very easily I think it's one of the best things about Ember because in show of hands who's used the Ember inspector in the room cool that's nearly everyone it's wonderful and I did have a notice this new feature which you get the little toaster in the location bar when you're on an Embery site which is lovely and I think one of the best new parts of it is the promises tab I don't think I do I do so any asynchronous behaviour that passes through a promise you get to see it and inspect it and see what happened to it and what it admitted and whether it got stuck somewhere and whether it swallowed up an error this is like invaluable in working with an Ember app actually yeah like again show of hands has anyone had the situation where you've like you have a bit of asynchronous functionality and you've hung a then off it and then an error happens but you just never know it just disappears this will show you this will tell you what happened so Ember inspector it's the work of this guy and so he also I think I hope I've spoke about his twitter handle right there but yeah he deserves some big props as well and it's getting better all the time oh it's available for Firefox as well now so Firefox on current so Ember data use it yeah after well I tried to use the 1.0 when the first beta 1 came out and was a bit of a disaster but I think now that they reached the latest is I think beta 7 it's pretty stable and yeah I haven't found any major bugs and well I'm pretty happy with it I would say if you have to choose between Ember model and Ember data going with Ember data is a solid choice now I would say could you describe some of the data that you're working with with Ember data well it's pretty it's pretty basic data nothing anything you had in Rails maps pretty much one to one with what I've got and yeah it has all the common relationships you know one to many they found that it's really easy to maintain relationships so when something updates it knows to render the correct stuff so that's one of the biggest I think features that can help you manage data in Ember yeah and also one cool thing I recently found that it got very like very stable is push payload method so if you have data coming from web sockets for example you have something that it's live coming from pusher you can just call this method and you can push any payload that comes from web sockets and it will know how to treat it so it's not hard anymore to have data coming from other sources other than your typical Ajax code so that I found pretty cool rather with Ember model I found some problems with it yeah I think perhaps the most ambitious part of Ember data has always been modelling of relationships I was re-reading the blog post about the road to Ember data 1.0 and they make this claim the two sides of the two way relationship will remain in sync in Ember data 1.0 regardless of the order records were loaded or how the relationships were represented in the payloads and so you think about how you work with model relationships in Rails and it feels very intuitive in the way you describe relationships is intuitive but you have to remember it's synchronous and in Ember you just don't have that guarantee your related model could show up at any point in time and change at any point in time and so there sort of big gamble with this is they think they have a way to kind of consolidate all this information about these relationships into a single source of truth and Igor did a very good talk about what's going on with that that's really worth watching and it demonstrates what a hard problem it is to solve and to solve in a way that's not just a big massive spaghetti code which happens to handle all the edge cases to solve in a way that's actually and can be built upon so they reference this single source of truth branch which as of today is actually still not merged, I'm not super sure what the state of play with this is you can see it's 33 commits ahead and 284 behind meaning that those 33 are Igor's work and this guy H.J. Dyfed I'm not sure if they're cherry picking bits from that branch or they're going to merge in at some point soon but I think that's where all the really the big fixes surrounding relationships are happening as Mateo said we're on beta 7 at the moment and I think they need everyone using these beaters and sort of putting it through its paces and doing weird transformations on relationships and using asynchronous relationships as much as possible so now on to the the more forward looking ones the ones that are in theory just around the corner but they're kind of the more hypey things so HTML bars, who's out of it okay yeah the great white whale of HTML bars it does look fantastic and it's so worth watching Eric and Chris's talk on it I don't even know how you try it out do you have any idea I don't think there is like an example or anything to guide you but no, there's nothing so there's a repo and you can certainly look at the code and see how it works I mean for anyone who doesn't know it's taking the familiar handlebars templates you're used to and rather than turning them into strings which then get inserted into the DOM it turns them into DOM fragments which can be inserted into the DOM you get rid of all those script metamorph tags they go away and we also get rid of binderata, don't need that anymore can just do class equals curly's foo whatever your property is so that's these two guys and I think just keep your eyes on them I think as of now it's mostly with Chris I think he's trying to bring it on home and but what Eric alluded to in the talk was HTML bars really encompasses a pretty significant rewrite of the view layer so when it lands later in the year, Emma's going to get a lot faster they claimed I think like three three times performance improvements for rendering there is a demo of spinning circles I think there is like a JS pin that shows how fast Amber is updating lots of stuff on the DOM and they compare it to other libraries and currently Amber lags a little bit and then they show the HTML bar version and it's super fluid so yeah hopefully it will be ready soon I think this work allows them to fix a lot of long standing problems which have been identified over time and now the path is clear HTML bars is the way and the other thing that HTML bars is purported to provide is an answer or a primitive for server side rendering so it's not going to completely solve server side rendering for you but it's going to give a path in that direction so if you need to in theory you'll be able to boot your ember app in Node Phantom JS or anything like that not in a real headless browser you can boot it in Node plug in HTML bars which is emitting to a string rather than to a document and serve up static HTML that way which is kind of interesting and query for embs new so we've had Alex Speller come in to talk a couple of times and he kind of says this isn't him, that's Alex Machiner Alex Speller did some of the initial work on query params and trying to figure out what the API should be and even what level what bit of your app is responsible for query params and which bit cares about them and Alex is the guy that this Alex Machiner is the guy that did all the great work with the router the router facelift as he called it and he's taken on really solving query parameters and they've ended up as they map on to control the state to see the idea right? Yeah that's the idea basically the idea behind it is that query params are sort of like a serialisation of the app state so that if you again put everything you need in the root and then you link it to someone and they visit the page they can actually see the page in the state that it was so I think the debate was whether this should belong in the router or in the controller and then after thinking about it in a serialisation for app state they said okay that can belong to the controller and then So things that live in the bits between the slashes in your URL roots care about those those are going to turn into model data and then the things in the query params are properties on your controllers you know if you've got a list of stuff and you can click on the titles and change the sort direction or perform a filter on the data that's already in memory and those kind of things which you can imagine those just being a property on your controller the idea is you declare with a one liner that this property is tied to this query parameter and it will just update automatically in both directions Alex mentioned something he calls model dependent state and that's interesting it's the idea that you in ember your controllers buy in larger singletons so they stick around all the time and you set state on them and then when you come back to them that state is still there and his notion is sometimes you do want that state to still be there and sometimes you want that state to be reset if you change the model and right now I think what we tend to do is do that manually in the root just in setup controller you would like reset all those bits of state that say stuff like this panel is visible or not each time you load in a new model and his idea is that you have something akin to a cache key and it sort of interoperates with serialisation into the URL as well so what you'd say is basically all those bits of state live in this cache and it could be that the cache is really just what's in the URL at that point in time and if you include the current model its ID say as part of the cache key then inherently when you switch out that model all those properties are going to go back to their defaults it's a really interesting idea I'm not sure if it'll land with the query crime stuff or shortly afterwards but it's worth watching his talk because when he demos it at the end it really makes a lot more sense than I can make of it talking right now but it will allow interesting stuff in terms of saving some really refined states of the app and states between different models and it's going to be cool um oh for the query prams he said over the weekend man I should really get query prams finished this weekend I think with enough pressure from the community or maybe people just taking it out of his hands he might but I would imagine it's the next major release is the next stable release is 1.6 I'd say maybe 1.7 or 8 depending on because they have those weekly reviews I guess it just depends when he says this is good to go into beta now because you can use it in canary today and see how it behaves but it's not in flagged to go into a beta just yet um I feel like we kind of covered ES6 a bit I mean so right now people are using the module loading part of ES6 but so I know with Angular there's a move towards starting to use all of the upcoming ES6 features and it's is it tracing the compiler I think so there's a compiler which will compile ES6 into ES5 there is a transpiler yeah so what's in use in mcli is the module transpiler which just knows how to turn the module syntax into stuff that will work with AMD and YGS all that stuff but then there's all sorts of other cool new stuff in ES6 so I think we'll start to see that becoming part of our regular workflow as well and you'll see it popping up, you'll see new transpilers appearing and then people will start using them with mcli so in short point of this talk is like damn there's a lot happening there's so much cool stuff and so much forward thinking stuff and I'm sure there's a whole bunch of things I haven't covered I wanted to sort of save a bit at the end but I think I've gone quite long for all the cool apps that are out there right now maybe as part of regular thing we'll try and sort of give some coverage of the new apps that have been released and I want to give a big shout out to there's an app called 2B to.be is a domain and it's this nuts sort of web collage app built with Ember that's definitely worth a look, are there any that you I would say while buying is a pretty pretty cool app, it's also built with Ember and there was a talk about how they solved some problems with videos I think that was a very interesting talk, and also at EmberConf there was a guy who remember his name, he presented this iTunes version with Ember, yeah fine so if you want to check it out it's pretty cool, I think the way they used an iTunes unofficial API and they built the application with Ember, yeah I'll just show it because it's worth a look without any server it just uses Ember data to model he said that he had some problems with the API because it's not restful at all like you ask for movies you get images or something, but other than that he managed to make it work, so so this has no server site component of it's own, it talks directly to the iTunes API and as you can see it's pretty quick and one of the things he said about this screen is that so apps, music, movies, tv, books each one of those segments he he works out, just needed to be its own request so the grounder just makes six requests in parallel and they all come in when they come in and the page updates cause bindings and I guess he said his motivation was that he got tired of you know that pop up that comes in Chrome that asks you to open iTunes so he tried to to build something that would have some URLs for applications you know that he wanted to share yeah so I think the interesting part of this easily modeled he's got this app but it automatically generates all these model types based on the data it sees coming back from the API so he doesn't, I don't think he pre-defines this I think it's unique fields I just kind of inferred from the data that comes down the wire and he basically rhapsodised about how easy it was to do this with Ember so it's one of the best adverts for Ember I can think of at the moment and then I'll just show to be really quick I know this is going to have embarrassing stuff in it I might so the idea I wonder if I can use it without signing in so people build mad collages with it and then you can print them out as a t-shirt or you can just invite other people to come in and collaborate with you but the I'm going to just have to do the embarrassing thing so the the big collage you saw at the beginning of this talk was done with this app to be so let it localise people in so it's like see it's densilifying it's really kind of cool and impressive and quite bizarre like it it doesn't explain itself too much it just lets you get on with doing weird stuff but it's again just an ember app and you pop it open and you can see it using all the conventions that you're familiar with that uses roofs like you'd expect don't know if this yet is on the user's data as well don't know if it it's been captured to promises so this is a really interesting one to look at and I guess the other big one is Discourse Discourse Discourse the forum software open source forum software built with rails and ember this is really maturing nicely like it's getting quicker all the time the mobile view is really good and again you can just pop the hood of this and see they don't use ember data, they use their own but they the guy behind this has built a some sort of performance metric like ember performance metrics which plugs into the inspector I've not seen that yet but there was a test I think Robin Ward nice Canadian guy so with all that thank you very much