Sessions is temporarily moving to YouTube, check out all our new videos here.

Debugging Binary Templates

Erik Bryn speaking at EmberFest in October, 2017
Great talks, fired to your inbox 👌
No junk, no spam, just great talks. Unsubscribe any time.

About this talk

Closing Keynote


Thanks for having me. So, I thought we'd talk about debugging binary templates. Show of hands, how many of you can convert hexadecimal to binary in your head? Alright, we got a few, okay. Well, how about binary? Can you read binary easily? Okay, maybe a little bit. So, the first six bits... Are reserved. And if really, if that doesn't work, there's a disassembler now, too, so. If you can't read hexadecimal, you can't read binary, we've got a disassembler and that's what we're gonna be talking about for the next hour and a half. Just kidding. So... This is a closing keynote, so I'm not going to bore you with a lot of technical details instead we're going to talk a little high level. If you don't know me, my name's Erik Bryn. I'm ebryn on Twitter and Github. I've been on the core team for a long time, recently Emeritus status now. So, a little bit about me, I love to travel. I think this is representative of the last two years roughly for me. I love travelling so much that I actually started working on getting my pilot's licence because I wanted to be able to travel more. I'm a big road trip guy on the weekends, but I wanted to be able to get twice as far in the same amount of time. So, it's been a fun experience, and it's given me a new perspective, I get the birds-eye view around the Bay area where I live, and I even get to go spy on Apple Park, as well. You could also say I'm now a Cloud expert, so. I run a little company called Prototypal, we have been around for quite a while, we help you build Ember apps, we train your team on Ember, and we help you keep your apps running in the longterm. We've got a little bit of a side project that we started and announced a few months ago. We're rebooting embercasts, which is a site Machty and I created many years ago, pre-Ember CLI days, and we've got some cool, new full-stack Ember courses coming, so. We're gonna be covering quite a few different backend technologies cause, I think, this has been one of the gaps that's existed in the Ember community around training and knowledge around, kind of, the full stack story, what's the easy way of getting started with a back end. So... You can sign up to be notified about that on if you're interested. So... Here we are, EmberFest 2017. It's been a great event, I think it's not controversial to say that this has been the best EmberFest that we've ever had, I think. So, let's give a round of applause for the organisers. And I'm curious, can I get a show of hands? How many of you, is this your first Ember conference? Or your first, okay, so, good number of you. So, I would like to, on behalf of the core team and those of us in the Ember community, to welcome you to the Ember community. The Ember community is a unique place. You can post a very innocent picture of the core team talking about Glimmer components on the internet, and within minutes, Machty will come in with some memes. So... We're out in the mountains, I think we're at DisneyWorld here, we've got Star Wars, as well, and I don't know, a juggalo convention or something, I don't know. So, if you'd like to see more of where these came from, they're available on Machty's twitter. If you don't know, there's a media section, it's quite nice. So, you can see all the weird things that he posts, he's quite a creative fellow. Also, Emiritus member of the core team, well known for his work on Ember's router, and Ember concurrency, of course. So... But the Ember community isn't just unique because of our memes, it's unique because we are a decentralised community based open source project. What does that mean? Well, essentially it means that we're run by the community. There is no company that runs Ember holistically. And as you might imagine, or know, most open source is actually run by companies, typically. It's usually something that comes out of a company, the company funds a lot of the development on it, and perhaps, eventually, donates it to a foundation to be managed, as well. And that puts us at a kind of interesting situation, cause it's a bit of a David and Goliath kind of story here, right? Where, and I think we're going up, our competition, right? Or our friends in the ecosystem are backed by companies like Facebook and Google, and so... We as the scrappy community of contributors, have, I think, done an amazing job of building a cohesive story and a framework despite this disadvantage, perse. But I do think it definitely affects our marketing, and it affects our adoption, right? People tend to be followers in the tech world, they follow the big names. So, I think it's definitely advantageous for our competition. Interesting thing to point out, is not only is Ember decentralised project but the web itself is, as well, right? We've got standards bodies on the W3C, and also in the WHATWG, as well as others. And we've got browser vendors, right? That kind of decide the future of the platform, and of course, you're welcome to try to get involved in those standards bodies and what not, but it can be a daunting task. The barrier of entry is rather high. And because the web is decentralised, it kind of leads to a bit of a platform problem. If you think about every other major programming platform, perhaps with the exception of Linux, it usually has a big corporate backer behind it. You think about iOS and MacOSX, of course you've got Apple. You think about Android, you've got Google. And of course, the Java ecosystem that came before it. And of course, Windows, Microsoft, right? But the web doesn't really have any one company or any one community even, responsible for building what is the SDK for the web. And I think the Ember community has kind of stepped up to take on this task, right? So, I really think in the case of the web, right? There's multiple communities all trying to build great web technologies and so ultimately the answer to that question is communities, alright? The communities are going to be created. People are gonna organise around common beliefs and ideas and they're gonna create technologies, and hopefully they're creating technologies that aren't just for the expert class of developer, right? Hopefully, they're trying to reach across the divide and have these technologies be approachable and usable by people that are new to programming. And perhaps even, as far as reaching towards children. And I highly recommend everybody to go back to EmberConf 2014 video archives and check out this talk by Devaris who worked at Zendesk at the time, and when he was working at Zendesk, he actually had, there was an initiative that they were doing that at-risk youth in the neighbourhood, that the Zendesk office was located in in San Francisco, they were teaching to code. And DeVaris back in 2014, I think it was the very first EmberConf, he surprised pretty much everybody on the core team and probably in the community, as well, by the fact that he had successfully been teaching these kids web programming, and even enough, so they could build their own Ember applications. And I thought that was a pretty remarkable thing at the time. So, I think... This lingers on in my mind, in the back of my mind, when we think about building technologies, not only for us to use, but also potentially that are approachable to the next generation of programmers, as well. So, one thing to note, I think, that community projects really tend to stay more aligned with their users, than I suspect corporate-backed opensource does at large. And, it makes sense, right? Because hopefully the community is making the decisions and they're representative of the user base. And not only is that beneficial for the users, but of course, it's beneficial for their employers and the businesses that are using those technologies, as well, right? We've seen in the JavaScript space, a lot of churn. People like to say we're on a treadmill, right? And I think businesses, if they're getting into building these JavaScript applications at this point and time, will want to find solace in the fact that they believe that the software will be built to last. And that they don't have to worry about major fragmentation. And so, of course, in the Ember community, we have the RFCs process. And the RFCs process allows not only users, I'm sorry, not only contributors, but also users of the framework, to have their say in the future. And that can range as far from just making a comment on a Github issue, voicing your concern about something, to actually writing RFCs yourself and proposing features for the framework. And so, the Ember community has continued to steadily grow upon these principles, and we have events all over the world now. This is a great picture from Wicked Good Ember in Boston, and of course, I think this is a couple years ago at Ember Camp London. And now we even have, at EmberConf, our mascots walking around taking photos with folks. And the Ember community is a fun community, and we're very close, it's almost like a family. And I think it's the philosophy of Ember that really binds people together because it's not just about convention over configuration, and it's not just about stability without stagnation, but it's about shared solutions, right? It's about sharing and sharing is caring, of course, right? And as Ed very eloquently pointed out this morning, there aren't silver bullets in software development. The way that we build better, we build faster and stronger, is by sharing code and being able to build on top of the shoulders of giants. And so, I ask of you, especially most of the new people in the crowd, if you're getting into Ember now, or if this just happens to be your first event, I ask that you stay involved and you stay excited. We can harvest this excitement and energy, so many ways, and of course, software is built by people, for people. And so, what are some of the ways that you can stay involved? Of course, meetups. There's a pretty good number of meetups all around Europe, and the world. I encourage you to check that out, and if there isn't a meetup in your city, we have a great set of resources if you go to the community page on, we can help you get a meetup started, and potentially help you find a place to host it. Or, of course, you can speak at meetups, to share your experiences with the framework, and that doesn't have to necessarily only be limited to Ember meetups themselves, they can be other, more general, programming or JavaScript meetups. You can share your knowledge and your experience with others. Besides from meetups, the way that you can keep engaged with the community is, of course, the community slacks. So, if you're not already signed up, I highly recommend you sign up. We've got over 10,000 people in there, and Locks is watching 24/7 to answer your questions. So, you can always get a hold of him there. But there's a cornucopia of channels for whatever your heart's content. If you need help, you're getting started, there's a help channel. If you're interested in actually getting into the guts of the framework, or just even lurking and seeing the discussions that are happening around the development of the framework, there's several channels specifically for that. And of course, there's channels for add-ons. So, if you have a particular set of favourite add-ons, there's probably these channels that you can go and talk to the maintainer and perhaps that becomes an on ramp to you being able to fix bugs or contribute, or maybe the idea you have can be validated. And regional channels, as well, so, keep up with people in your country or your city. Another great place to keep in touch with the Ember community is through Ember Weekly. It's a weekly newsletter that basically collects everything notable that's happening in the Ember community over the last week, and sends it to you in a convenient email. You can sign up for that on And then, of course, if you're lucky enough, you can join us at EmberConf which the website, I think, just went live for. This is a screenshot of it. Tickets are going on sale very soon, if not already. And talk proposals will starting to be, you'll be able to start submitting talk proposals soon. It's gonna be March 13th and 14th in Portland, once again. So, if you haven't been yet, and you've had a good time here, I highly recommend it, it's a great time. And when you get on Slack, I think, if you're a new user, I'd ask that you go chat with the learning team and share your experience. One of the best, most, valuable things, I think, to people on the learning team, and just the community in general, is to get the perspective of a new user, right? I've been working on Ember for a long time, it's easy to forget how hard it is, right? Perhaps to get started, or what things were confusing, and what things you wish were documented, or what, right? And the learning team is a relatively new subteam, and there's a lot of energy and a lot of activity happening on Slack there. So, I really encourage you to just go chime in and share your experience of learning the framework. And it's important to note that, that level of contribution is extremely valuable, but you can also contribute in the form of code and they can be super simple. This is my first commit, I went and found it, it's from June 2nd, 2011. It was back when Ember was called Sproutcore 2 and it was a simple typo fix, that was my first contribution, a simple documentation fix. And then I had to go and compute how long ago that was, it was apparently almost seven years ago. So... Kinda scary, I'm an old-timer. But yeah, I think... Use me in as an example, I was not a JavaScript expert at the time. I was coming over from Ruby, and learning my way through JavaScript, and kind of the embarking on the journey of single page applications, and it started with some simple contributions and it grew into a career. And a spot on the core team. And I think it's really been my pleasure to work on the framework. And it's been astronomical for my growth as an engineer. So... Highly encourage you to try it if you're into it. So... I think it's also very clear, not only from being in this room, but seeing the activity in the community that Ember is the strongest it's ever been. And I thought, you know, I hear about people that I've known for years, they go get a new job and then they're forced to use another technology perhaps. And more often than not, they miss Ember, they wanna come back. And when they do, it's always great to have them. Ed put together a great graph for his talk that showed the activity over time across all these, you know, this is not certainly all the repos that exist. I'm sure if we actually went and looked at all of the repositories in the Ember ecosystem, it would look quite a bit different. In fact, it would look perhaps more like this, which is the add-on publishing chart. We're up to almost 4,200 add-ons that exist in the Ember ecosystem today. So... That's community. But let's talk a little bit about innovation. We've had a lot of discussion about Glimmer and Innovation in that space today. But I just want to point out, because I've been along long enough to remember everything of how ahead of our time Ember has been over the years, and still is. A lot of these things that are called out were controversial at the time, and now have become mainstream. And I don't think we get our due credit for, kind of, being the pioneers that we are. And not only are we innovating and taking these ideas into the framework for our users to use, but we're also driving standards processes, as well. Several people on the Ember core team regularly attend and collaborate in the TC39 standards body which is responsible for designing the JavaScript language. Yehuda is probably the most notable of which, and our experience with Ember has a lot to do with the fact that decorators, for example, are in the language. Decorators and the way that ES6 classes work, are heavily influenced by the needs of Ember and their features that we've gotten into the platform with a lot of hard work. And look forward to being able to use now in Ember in the very near future. So, of course Glimmer is a shining example of innovation. And I joke about the binary templates, but I do think it actually is going to be a big... Landmark innovation that will last for years to come. And so, I'm really excited to see the innovation and the experimentation that we can do in the Glimmer ecosystem, and how it will carry over and shape Ember for years to come. And I also wanted to give a shout-out to Ed and the Cardstack team for the work that's happening there. I remember when I first saw Ed give his talk on Cardstack at EmberConf, I went up to him afterwards and I told him that I hadn't been so excited about a project since Ember itself, when I heard about it, so. The other important thing to note is that of course innovation isn't only happening on the core team, there's a lot of community driven innovation, as well. And I just wanted to call out a few projects that I think are doing fantastic work in the community and I... If you haven't heard about them, I advise you to check them out. So, I think this is a pattern that you're gonna see continue over time if, the core team, kind of, delivers on its objectives. I think we want, it's always been an idea that we've had to, kind of, break apart the framework and allow it to be plug-able. We built an add-on the ecosystem for a reason, so that we didn't have to have all of, we didn't have to have all the responsibility within the framework itself to build functionality for the community. And so, it's important for the community to fill the gaps that exist in the framework, or perhaps the officially recognised framework packages. And I suspect as time goes on, we're gonna start seeing more, we've seen plenty of examples of them already, if you go look at the Ember CLI package.json, look at all the packages that are included by default when you create a new app. A good number of those things didn't start off as defaults, they evolved into defaults over time and I suspect you're gonna start seeing the same thing happen for perhaps, even some of these projects on this screen, as well. Not only can innovation happen in the community, but I think an important thing to point out is that in my experience as a consultant, I've been really lucky to be able to work with a lot of great companies, and when you kinda see the variety of use cases and needs that I have, it's very clear that one of the things that lacks in, I think... The common opensource community is the, kind of, priority for companies that are building things that might not exist, to actually try to work with other companies that are also, perhaps, interested in solving the same problems. And I think Offir yesterday, pointed out a great example, which is that there are a lot of companies, like Addepar and Netflix there, for example, that have built sophisticated data grid systems, but they all, kind of, check different pieces of the feature list, but not all of them. And rather than building these things individually, I think it's important for the community, and the, perhaps, organisations behind them, to work together to build these more complicated, perhaps, or, you know. A sophisticated data grid takes a lot of man hours to build well and it's important for companies to work together, not just individuals, as well, to kind of fund these efforts and, you know, there's ultimately an advantage in it for them, which is that it no longer becomes their burden to maintain it either, right? Solely. So, I think, I'm excited to see what comes of the code word, code name, Emberx table project to come. And so... Opensource communities are not just built with code. We've been talking a lot about code, a little about UX, UX is very important. But, it's important to recognise that the recipe for great community opensource projects involve more than just code. And I think you can see that from our, from our friend Yehuda, "We must treat documentation, marketing, logistics, infrastructure, art, etc. with just as much respect as engineering." And so, I think if we can deliver on that in our community, we will have a vibrant community for many, many years to come. And that will be approachable by everybody. So, all that said, there's plenty of work to do. Let's keep building higher together, and we'd love your help. Thank you.