 It's the first time I've been to Ember Conf. I've been to a ton of conferences though, fortunately and unfortunately. And there's always something special you can often feel about some conferences. It's usually pretty easy within 10 minutes of being in a place to get a sense for what it's like. And what I've really enjoyed being here is there is definitely this sense of potential. When I first heard about Ember, and I'm not the one who made the Ember decision by the way, Max and Jonathan, my two co-founders did. When I first heard about Ember, and the tagline, ambitious apps, it meant nothing to me. I literally had no idea what the hell that meant. And I still actually struggle with it a little bit, but I feel like I'm starting to come to terms with it. And part of how I'm coming to terms with it is this potential, the leverage, the opportunity, what you can create. And we've certainly started to see that at Canvas and what we're doing. So today I wanna give a talk that's gonna touch on a lot of these topics by telling one of my absolute favorite stories. I love to look at analogies from other worlds, other places than simply the technology world that we're in. And sometimes we can see some really strong corollaries and things we can learn there. So let's just hop right into it. So I wanna talk about cities, and I'm gonna wind up talking about one city, Chicago in particular. I think that there's so many things we can learn from them. They are the biggest thing that humans build. They are these incredible places that most of us choose to live in more and more. And they have incredible complexity. If anything could be described as ambitious, I would argue that a city can be described as ambitious. So cities, though, how do they get started? If you look at any city, maybe with the exception of Salt Lake City, any city gets started as an accident almost always. They happen because of geography almost always. There's a bend in the river, like Portland. There's some particular reason that people start to gather there, perhaps for trade, for the resources. And no one's, again, except Salt Lake City, no one says, let's set up a city here. What they say is, huh, there are people here been for hundreds of years. There's some reason more and more start to show up. There are always these complete accidents that no one intended from day one. And I'd say already, we can see something that's very, very familiar. JavaScript was never intended from day one to be where it is today. So next month in May, we're at the 21 year anniversary of when Brendan created JavaScript. I can safely say that not knowing anything about how that happened going down, not having been there, there is no way in hell this is where they would have expected it to be. And you can even see that just from the name that got started, right? I don't know if you're aware, but JavaScript wasn't called JavaScript. When it, before it launched, it was originally called Mocha, which is what Mark Andreessen personally loved. And then they were internal negotiations and they got changed to live script. And then some crazy shenanigans with Sun happened. And for pure branding reasons, it got named JavaScript. And now here we are today building everything of meaning and technology on top of that. So just like real estate, just like cities, what we can say is the common theme here is location, location, location. It's all about where you are. Excuse me, I have a terrible cold. So we saw it first originally in the browser. It starts to take off. Thank God Java, the browser's dead. And then we see it on the server and it just keeps on growing and growing and growing. And you get growth and growth and growth. So let's take a look at location, location, location. Because I want to talk about one city in particular. If you're not from the United States, this is a map of the United States. And there's one city in particular I want to talk about. Oh, I have a laser pointer and it works. So up there, right on the tip of that really, really big body of water, which is a lake, there is a city. And that city is called Chicago. Chicago, a really fascinating city. A lot of interesting things about it, including huge lake. That lake is actually accessible from the Atlantic. You can come up and over and around through off the map bay up in Canada and come all the way around. So what you have is this incredible axis point to the western side of the United States. And what happened is between that and then the Mississippi River, which is 50, 70 miles away. You can't see it in this map, but it's over to the west a little bit further. What you have is Chicago becoming literally the hub of the United States in the 18, between 1840 and 1900s as the United States is growing off. And so when you're a hub like that, when you have location, location, location, you get growth. And growth is a great thing. Growth is often the only way we can live. It's what we demand to have. And yet when you have growth, you always have unintended consequences. So the more a city grows, the unintended consequences of a city, of any city, the more a city grows, the unintended consequences are human waste. And it turns out that the human waste is actually one of the harder things to manage about how human cities can grow. The Romans were the first people to help start to solve this problem. 2,500 years ago, they created the first sewer system. There's actually a really fun diversion there about the Latin word for plumbers, plubium. And now that's how we now have, which is lead, which is the material that you worked in, anyway, fun digression. But sewers are super important because what we started to do is take control of our infrastructure. And what this does is this lets us get out of the typical predator-prey relationship, the equations that are defined here. So typically whenever you have negative feedback loops like this, what happens is, oh, well, a city can't grow past a certain point. This is true in anything you create, right? Any human, in any physical endeavor, you have feedback loops. Oh, you can't grow past a certain point. The feedback of, in our case, waste. It can happen in a lot of other cases in ways people get together, meaning that there's a point which you can't grow. But we can apply technology to this problem, sewage, sewage treatment, sewage systems, and we can grow. And so sure enough, Chicago grew. So Chicago was founded in 1837 as an official city and had 325 people, I believe, at the time. And between 1837 or 1840, when I could find official numbers, up through 1900, Chicago grew to 1.7 million people. And it was literally the fastest growing city the world had ever seen. Nothing like it had ever been seen before. But as you can imagine, when you have that kind of growth, there's some crazy things that happened. So like I said, about 350 in 1837, 1850, there were 200,000 people. I can't even imagine what that must have been like. But I can tell you some things that I saw from some pictures. There's incredible, incredible pictures that we'll get into. One of them was that in 1854 there was a cholera epidemic and it wiped out a pretty big set of population, not a single digit, but it's getting serious. And more importantly, they saw the problem coming. And so the city planners were like, this is just annoying thing, we need to do something. So what should we do? Well, let's go after the Romans. So they contacted a guy, Ellis Chesborough, this incredible, incredible engineer from Boston. And he's like, oh, well, we'll make a sewer, of course. So he and the team said, we'll make a sewer. There's only one problem with that. How many people have been to Chicago? How many hills are there in Chicago? None. In fact, the elevation change I have here is larger than the elevation change in Chicago. And that's a real problem if you have a sewer, because if you think about how sewers work, they work by the grade, right? So you need to go downhill. They literally couldn't do it. There is not enough elevation change in Chicago to have sewage systems. So they said, that's okay. We have ideas. This is the 1850s. We are masters of the world. We can do anything. And so they did. They jacked Chicago up. So they actually raised Chicago up by over 10 feet in places, which is why you get these crazy, lower and upper wacker drives and all this insanity that's in Chicago today. And they did it. They actually raised the city up. I think by 1857 they did it. This picture is of a hotel getting raised up. And it is, I love this picture in a thousand ways. So what they had is they had 6,000 jacks and every turn of the jack would raise the building 100th of an inch or something, absolutely ridiculous. And they had 600 workers working around the clock raising the thing up. And they would raise it up, 600, move to the next set. Raise it up, move to the next set. And you'll notice this drawing, there are actually people standing there. There are people in the hotel as they are raising this hotel up. It's completely and utterly crazy. Now, I'm gonna start to draw this back to where we are today. I have nothing but the utmost admiration. This is such a feat of engineering. And one of the ways I think about this is everyone here is working on their own project together. They're working together to raise a building, but they're each at their own jack stand. And I feel a lot of similarities to what's happening in the JavaScript world. Every one of those guys can almost be there on NPM package. We're gonna do something really ambitious together, but not necessarily together. And this'll come together even better for you in a sec. By the way, they didn't just do individual hotels. They did this entire city block. 35,000 tons of building. It was apparently like a site. Everyone came from miles around. And they didn't break a single pane of glass in the entire process of doing that. So, this incredible, incredible engineering effort. So, come back to JavaScript and the unintended consequences of growth we see there. I don't know if this picture looks familiar. It's an exponential curve. Exponential curves always look the same as all exponential curves. It's the same as the picture of Chicago's growth as well. So, NPM has been growing like a weed. It's awesome. It's incredible. I'm complete awe. This is just the past four years. But, of course, growth has side effects, as we've mentioned. And there's some side effects we could talk about. And I don't say this to deride anyone. There's side effects that happen like the current situation we're going through about what can you trust and left pad and all that. But that's expected. Those are the expected side effects. There's going to be challenges that come out of it. Now, one thing I want to talk about though is it's not the number that matters. So, it isn't in NPM packages the number that we care about. It's what can you build with that number? And so, we actually have to say, as growth grows and we have these consequences, what's the root cause of what we actually care about? So, I want to come back to Chicago again because the root cause there, it turns out, great, they raised the city 10 feet and they made it 20 more years. But, if you actually look at the geography of Chicago, and here's a little bit more zoomed in view, Chicago is, you'll notice, on Lake Michigan. And people have two real big needs. They need to have waste and they need water. Can't really live without water. And so, no surprise, as, where was Chicago getting its water? It was getting its water from Lake Chicago, Lake Michigan. And the way that they got rid of their waste was through Lake Chicago, Chicago River. So, Chicago River was flowing, always has for tens of thousands of years, has flows from where Chicago is into Lake Michigan. And so, the city grows and it grows and it grows and they build a sewer and that's great. They built this incredible sewer system. They raised the entire city up 10 feet. You can see in this picture even the elevated roadways that came out of that today. There's only one problem. They didn't actually fix the root problem. So, they put incredible, herculean effort into something that didn't fix ultimately the root problem. And there's huge digressions here as well. I didn't put slides together for this, but just so you have part of the story that they did, they even then decided, well, you know what? If our sewer is running out into the water, the obvious solution is go further out, get water further out. So, they moved the water and it takes two miles offshore in the 1870s, 1860s. There has never been a tunnel in the history of the world at that point that was dug so far under any conditions. The complete insanity of these people is insane. Incomprehensible to me today. Of course, moving your water out, moving your water and take two miles offshore doesn't help when Chicago at this time was the largest slaughterhouse center in the world. And they would literally just throw animal carcasses into the water and apparently the river could light on fire from the methane gas decomposing from the animals. And so, even though it was two miles offshore, you know, this disgusting mess just kind of gets there. So, at some point, they said, all right, if this city is gonna continue, we have to fix the root problem. So, they did. They fixed the root problem. They decided to reverse the Chicago River. I don't understand. Like, I can honestly say at no point in my life will I ever say, you know what we should do? We should reverse the river. Let's just, I'm bored today. Let's do that. So, again, Chespero sets out. Same guy. It's the same guy. He's doing all this stuff. He's the head contractor of all this. He's crazy. 20 year project. 20 years. They wind up doing 27 miles of canals, 24 feet deep. The main canal is eight miles long. 23 billion dollars in today's dollars. Inflation adjusted though. Inflation adjusted doesn't take really a CPI. 23 billion doesn't even begin to touch it is the reality. You literally couldn't do it today. But 23 billion dollars in today's dollars. 8,700 people for 20 years were working on this project. And amongst the many, many great things in this story. Oops. So, again, if we look at this map, there's Chicago, and this is right here is the river that they were gonna connect it up to. So they had a 20 mile, this is eight miles. But they had to do side canals and things. But eight mile connection to make it. By the way, if you run down the river, the river then hits the Mississippi in St. Louis. St. Louis wasn't happy. St. Louis in fact filed a federal injunction and said, no, we do not want your shit. Quite literally. Now, interestingly again, just like details of the story that I just can't get out of my mind, they were slow about this for some reason and it took them a long time to actually file the injunction. Remember, this is getting built for 20 years. They didn't file the injunction until 1899. Okay. So January 2nd of 1900 at five in the morning, a bunch of guys sneak out and blow the first dam that's complete at this point. They blow the dam and then this picture is taken, I think January 19th when they officially lowered the lock that starts the river flowing. And once they did that, it's literally impossible without some other ridiculous set of effort to do it. And they were apparently roughly 24 hours away of St. Louis from getting an injunction. So kind of crazy people. Like these guys are crazy. Or I have another word for it, I'll just grab later. So what's the point? Like why am I telling you about crazy people building crazy things? It's because as I've started to come to grips with what the term ambitious means, as we're building canvas to be something that I hope is quite ambitious. What I come to appreciate more and more is that it's really hard. And I mean this in every possible way. I mean it's emotionally hard, but I mean it's technically hard. And what's particularly challenging about this is building ambitious things is easy to deride. It's easy to tear down. But then you start to get into it and you're like, oh no, no, no, look, the simple thing is so good. Except it's not until you actually get into the simple thing. It's not until you actually say, yeah, yeah, of course. It's just 600 jacks, 600 people, 6,000 jacks. It's hard work, but it's obvious to us. We can do that. But you then get into it and you're like, wait, but this doesn't actually solve something that's core and real. And I see that all the time. I mean yeah, you know, Yehuda said we looked at Ember. Let's be clear. We have no alliance to Ember. It's not like we're Ember fanboys. We absolutely looked at other frameworks including React and lots of things. Every time we looked at alternatives, we'd always say, yeah, but it's so easy to do X. But we have a real app. And the real things are so hard. And there's so much better with Ember. We just have to keep on coming back. You know, just one super simple concrete example. I don't know how many of you guys here subscribe to The Skylight, almost daily, which seems to come out every two weeks email. But I love it. We got one today, thank you. And they just like kind of write a little bit about what's going on in development. And about a month ago, there was one that brought on a new person. And they were talking about they were working on doing some server-side JavaScript as well. Or Rails, gosh, how complex is this? I can't even say it. The JavaScript in the Rails app, as opposed to the JavaScript in the Ember app, because this is an insane world we're in. And they were just saying like, yeah, and Trim doesn't exist in standard JavaScript. And so of course we're used to that in Ember. So now what are we gonna do? Are we gonna polyfill it? Are we just gonna, and you realize like, oh my God, this complexity is literally insane right now. And I would argue strongly that solving the smallest possible problems, like oh, of course, well let's just make a Trim module. No, that's not actually gonna be here how we solve that. The way we solve this is through a web of trust. Talk a lot about trust. But the way we solve this is by standing on other people. The way we solve this is by getting leverage. A guy I worked with at Heroku, Mark McGranigan, he's now at Stripe, one of my favorite engineers I've ever had the pleasure to work with. He for years would talk about how important leverage was, and again, it's like, by the way, if you're getting the theme, I'm slow. So he'd talk about leverage, and I just didn't really understand what he's talking about. And again, it's been coming to me. It's been coming more and more. Leverage is how we build greater things together. And you start to think about it and you realize how completely obvious this is. I mean, every talk I've been here listening to today and yesterday implicitly talks about, or explicitly actually, you've been talking about how you need to stand on others. You need to build the leverage. And that's absolutely true. Anything from the technology, we don't even think anymore about the stack of technology that goes into the hardware, because we're software people, but it's insanely deep. And so when you start to decompose, what does it actually take to get leverage, to build on top of these things? I think there's four key points. One is opinionated. Opinionated is not a bad word. By the way, opinionated doesn't mean asshole. Opinionated means I'm trying to help you solve a problem. And that is so critical to me. It means that by, I don't need to be thinking about the six ways I can do something. It's not like, oh yeah, you could do X and Y and Z. And by the way, I used to be a system in back in the 90s and I was really into Pearl. And the community, if you're not aware, they celebrate there's not just one way to do it. And that's true, except you're always, always, always doing it. And today I was talking to someone who was talking about how they were trying to serve up a single page app and they just needed to put up something on the server side but then they realized that they had to get some middleware to take care of a small piece. And the next thing they knew, they were basically writing a web server again. And you just realize how completely insane that is whereas if you have a strong opinion on it, if you have software that's opinionated and says, look, look, we've thought about this. Just you focus here, we'll focus here. I, it's completely required. Two is documented. And I am so glad to see the Ember team creating the learning team, the learning team. I can't underestimate this room by definition is already four standard deviations away from three, I guess that's too much. Two standard deviations away from the reality of the person who's really gonna be trying to adopt this in general. And if all Ember does is gets the people in this room it's failed. If Ember can get the orders of magnitude more people which it already has, that's great. That's where it needs to go. And it is absolutely the documentation that comes from that. The third piece is performance. Performance, we can have a great discussion of whether that's the right word or not. I love performance personally. But performance is super, super important. If you cannot do what you need to do, if it is so terrible, if the experience doesn't work, we don't need to talk about it. And they were just talking about this in the previous presentation. You can't have a trade-off between productivity and performance. But I do put it in bold, the most important one to me, the absolute most important one, and frankly one that I almost want to get, not almost, I want to talk for an hour about is trust. Without trust you've got nothing. And trust to me means so many things. It means can I trust Ember to not screw me? Yeah, absolutely. I'm not worried about getting screwed. But can I trust Ember to have a roadmap that's gonna make my app better? Whoa. If the answer to that is yes, we're playing a whole different game. Now it's interesting to note that a lot of times right now in the JavaScript community, I feel like we're not even at the first level. We're not even saying can I, again, the left pad is not, I don't mean to pick, it's just it brings up a conversation we're having right now. Who can you trust? And I will argue strongly the answer isn't dependencies are bad. It's you need to understand who you are depending on and you need to understand what contracts are in place to make that trust happen. And I think NPM is doing a great job of making that more truthful for us today. One of the things that I love about Ember, the same way I've loved about Rails is that I actually can trust that in every way on this stack of trust that they are both looking at how can we make sure that this app is gonna work for you. They're doing things like the fast releases and they're making sure that there's compatibility. They're making sure that they're continually iterating. They're not going off for six years or 20 years and disappearing. That this community is constantly building builds trust. The fact that they are talking about what the challenges are builds trust. All of these things to me are critical for building trust. So this is Canvas. I think some of you've seen it at this point. I really appreciate all the support we've had since we launched it yesterday. It was great. I love watching the live notes show up. That was like definitely we were talking last night about the surprises and that was the number one surprise is seeing that go. For those of you who didn't see it yet, Canvas is a collaborative note-taking app today. We have much more ambitious plans. This is the framework for where we wanna go. And when we think about these ambitious plans, we really start to say, well how do we even change the way that users start to think about and interact with computers? Not in some crazy like, I'm gonna put a headband on and read your brains, but just can we start to introduce concepts that allow you to be much more productive? And what I love is as we're building these things, we're able to think about okay, what does it mean to really embed GitHub and Trello and Slack and some of the next things you wanna do, not how am I gonna worry about the potential ways in which we can get that done? Yes, we have technical challenges of course. But Ember for us is just hugely immensely helpful. Example of it is if you go to the, if you're looking at Canvas and you see a list and none of you have enough yet, but if you see a list of like 50 or 100 canvases in your list, it gets slow. And we looked into it and Ember's rendering just takes two seconds, it's a long list, it sucks. But guess what, you guys are gonna make it better. I have complete trust and faith that over the next week, six months, six year, whatever the timeframe is, this is going to get better. And that, I just can't begin to underestimate how powerful that is. It's the same reason that Heroku's still on Amazon today. People are, our Amazon bill was incomprehensible. And I can tell you for a fact that we could have saved money. Absolutely could have saved money. No, we did the full analysis. But we were buying into the trust that Amazon's gonna make it better. They're going to be caring about the things that we care about. They're going to be caring about us. They're going to be on this path with us and we trust them to be there. And that is all the difference in the world. It really is. So, one last thing I wanted to talk about, and that's Moxie. Earlier I was saying these guys must have been crazy. They weren't crazy, and they had Moxie. This isn't a word that gets used nearly enough today. So let me be a little silly and pedantic. What does Moxie mean? Moxie is force of character, determination, or nerve. Moxie is not, these guys have Moxie. I love this picture by the way. You've got three guys in bowler caps sitting on the biggest steam digger I've ever seen. And they're like, yeah, we're gonna frickin' reverse the river. He's right, you got a problem with that? Now, it's super, super important to think about, like with the analogy here, they didn't, in fact, this absolutely happened. They said, we're gonna reverse the river. They started going on the project. It turns out there was literally not a single technique or equipment available in the world that was sufficient to build the canal. They had to come up with entirely new physical equipment for moving the dirt, or digging, these steam engines could do buckets at a time, but how do you actually transport it? You're building a canal 24 feet deep. So they didn't say, well, we're gonna build a canal from here to here with these tools and come hell or high water, that's gonna happen. What they said is we're gonna have a vision of the future. And the vision of the future is we are going to help reverse, we are gonna reverse the river. And then we are going to be very responsive to what we see in front of us every day. We are going to have the Moxie to know that our values, our goal, is absolutely what we have to stay behind, but we are gonna constantly be responding to where we are today. And so they actually, as part of this 20 year effort, invented entirely new mechanisms of moving dirt that ultimately is what enabled the Panama Canal to be built. The Panama Canal couldn't have used all the, I guess they called it the Chicago method, because why wouldn't you? But they used the Chicago method to build the Panama Canal as a side effect of this. There's another thing of Moxie that even as they're solving these problems, I guarantee you, I wasn't there, I don't know, but I'm still willing to go out in a bit and say, for 20 years people were telling them you're insane. There are absolutely people telling them you're wrong, this is the wrong way to do it, you're insane. And they, I hope, I hope they'd say yeah, you know, you have concerns, you're right, but we believe that this is something we can do together and we believe that we can build something ambitious together and they kept at it. They didn't say you're right, the zeitgeist is against it. No, we're gonna keep at it. Yeah, too many stories, shut it down. So, sorry, there's like five books on this that I've read because I just love this topic so much and every angle has like more diversions that I wanna go down into. So, I wanna be really clear. I'm not advocating that you take a 20 year effort and you say, well we know where Ember needs to go. And if you wanna build ambitious apps, check back in 20 years, if you wanna. I am advocating that you say, we understand that building apps is broken today and that we can make it better, that we can stand, we can create another layer on the abstraction stack, that we can help people stand on our shoulders to build something even better. And we're gonna do that by keeping that vision. We're gonna constantly say that's where we're going and it's totally okay if people say you're crazy. It really is, I'm not hurting anyone. There's nothing wrong with that. Maybe you are by the way, maybe we're all crazy. That's totally fun, but we're gonna have this vision and we're gonna keep on working against it. And every day we're gonna make it better. We're gonna work on making it better every day. So thank you, I hope you have a chance to use Canvas, usecanvas.com, gotta put a plug in. And thank you for having us at EmberConf and the EmberConf team. Thank you, it's amazing.