 Is it just me or does that guy look kind of skeptical? Yeah, he's probably heard me talk before. So I typically, in the last year or so, I have been giving the most dire, pessimistic, downer kind of talks you can imagine. It turns out they're really popular because I guess I catch the mood of the times. So my most popular talk ever is one called Agile is Dead. And that's really pretty negative. And I rolled out one called OO is Dead not too long ago. And that's pretty popular too. So it appears like this is kind of like Shard and Freud. It's kind of like the world is ending. We may as well have a party kind of thing. So I thought, what am I going to do here? Can I do Ruby is Dead? No, I'm not going to do that. I love Ruby too much. But I still needed something which was kind of like inspiring. But this time positive. So what I'm going to do is tell you that web apps are dead. The browser is dead. I've been saying the browser. My external memory chat here might be able to tell me, when did I first say browser is dead? 2008. And I say the browser is dead. And everybody goes, yes, Dave. And then they walk away with, that guy's an idiot, all right? And I keep saying it. And they keep saying that guy's an idiot. I'm going to say it again today. And you're going to go away and say that guy's an idiot. But I'm not. One day it will be dead. And it's actually, I think, closer than you think. Because already the majority of traffic now is going to mobile devices. And if you use a browser on a mobile device on a decent site, it sure enough looks like an app. So we're not using the browser the way we used to use the browser. So I'm going to tell you right now to stop writing web apps because that's boring and it's not the future. Instead, I want you to change the world. And I'm going to try to inspire you to look at new ways of writing code and new things to do with that code. I don't think there's a scrap of Ruby or any other language in these slides, which I apologize. But let's see how we get on. First of all, understand that being crazy is actually a prerequisite for changing the world, all right? If you sit there and try and ameliorate everything and make everything smooth and flat, then you're not going to change anything. You're going to make life happy for people, but you're not going to change anything. So it takes the unreasonable man or woman to change the world. You have to do things that are unexpected. You have to do things that may be counterintuitive. And you have to do things that are uncomfortable. And the chances are you'll fail, but you'll have fun along the way. And even those failures add up to something in the end. So you have to be a little bit unreasonable. And if I had to choose a profession whose people were unreasonable, I think the software would probably be highest on my list. But no one likes change, right? Change is really, really scary. And so it's kind of fun if you actually go through and look for quotes on change. Yet all sorts of stuff. Speak to me. Oh, no one likes buttons either, all right? I mean, this is like classic cliched stuff. The horse is here to stay. Ultimate engagement, automobile is a novelty, a fad. New York Times famously said in 1924 that a rocket will never be able to leave the Earth's atmosphere. And the article was actually written by a physicist who said the reason it won't is because in space there's no air for the rocket exhaust to push against. If there are any physicists in this room, you are currently slitting your wrists because that is just so stupid that they actually published a formal front page retraction when, I can't remember what it was. I guess it was one of the first American rocket went up. Another fairly famous one, Thomas Watson, I think there is a world market for perhaps five computers. Well, maybe per person, yeah. I mean, my cell phone's got more than that in terms of processors. Ken Olson ran deck. There is no reason why anyone would want a computer in their home. And at the time, that was probably true because you'd have to dedicate two rooms to it. But all right, not exactly prophetic. This is an amusing one, right? Cellular phones will absolutely not replace local wire systems, even if you protect it beyond our lifetimes. It won't be cheap enough. And the guy who said that in 1981 was the Motorola Director of Research, who presumably is no longer the Motorola Director of Research. And this is my favorite. Being British, this is laden with just so much sarcasm and irony and bitterness that I just love it. I absolutely love it, right? A parliamentary committee says the light bulb, it's good enough for our transatlantic friends. And in case you couldn't work out who transatlantic friends are, that's Americans. But unworthy of the attention of practical or scientific men. So simultaneously, we can put down a technology, an entire population, and women. Perfect. I am so proud of my country. Famous Gibson quote, the future is already here. It is not very evenly distributed. Nothing I'm going to talk about is novel, new, or doesn't exist really. It's just a question of putting the pieces together in the right way. But it's going to be perceived as being a disruptive technology. We've all known disruptive technologies. I mean, the wheel was a disruptive technology. The telephone was a disruptive printing, disruptive technology. There are a number of disruptive technology. And what we mean by that is a technology that has an unintended consequence. It comes along, and it takes off in a way that we weren't expecting. Or it has bad effects in a way that we weren't expecting. Whatever it is, it's got some kind of synergy with the world it lives in. And that makes it disruptive. Now, how do disruptive technologies come about? Well, if you see these interviews of famous Hollywood stars, and they'll say, to what do you attribute your overnight success? And they get all huffy and say, it wasn't overnight. It was 16 years living in a hovel and acting up on a cardboard box and then eventually. And to some extent, there's truth in that. And the same is true of disruptive technologies. Because it is not the case that one morning, God says, hey, man, how about you have a cell phone? That's not how disruption happens. It actually happens in a far more boring, far more linear process. It's really just a question of the right thing appearing at the right time. And that's not necessarily predictable. So let's look at a disruptive technology and look at the path that led us to it. I may as well put this down if it's not working. Technology does so. See, if I could use my own laptop, it would work. All right, so the mobile internet, what led to it? Well, this is wrong, right? It's plausible, but it's wrong. So I just want to make the point. So let's start off with integrated circuits. So transistor comes along mid 50s, ICs come along early 60s, and the form factor gets smaller and smaller and more and more practical. And so we start having the ability to package gates into usable quantities on decently sized bits of silicon or germanium. So that's really cool. From that, people start building mini computers. Things like DEC, Ken Olson we talked earlier, right? DEC produces things like the PDP-1, PDP-8, and they're big bulky machines, but if you take them off, you'll find they actually have integrated circuits inside them, which is fantastic. And then those same machines were taken and repurposed as communications processors, the infamous imp, right? Which was basically nothing more than a data switch. So now what we can do is start linking these things together, and we end up with ARPANET, a defense slash academic network that has these imps allowing universities to talk to each other and send things back and forth. And originally it did not run on TCP, but pretty soon they realized it would be better to packet switch and they switched to TCP. And that made everything wonderful. I think that was like late 70s that they did that. Now once you've got TCP and once you've got people wanting to talk to each other, you need standards. And they came up with this RFC process. RFC is request for comments. So what they would do is they would publish specs and then they would ask people to comment on them. And the thing they got 100% right in this process is the idea that computer to computer communication should be human readable. So if you look at all of the RFC protocols, at least all the ones that we use every day, they're not sending binary strings back and forth, right? The first thing that SMTP sends is hello. Isn't that nice? But it's not just nice. It means that first of all when you're developing these, you can develop them by typing at your program. But it also means, or it makes it incredibly easy for computers to talk to computers because there's nothing to, you don't have to worry about word size or endianness or how they represent floats or whatever. It's all just text. And it's all really just ASCII tests. So it's really lowest common denominator, which is fantastic. So they did an incredibly good job. So from RFCs, we start getting HTTP, which is the low level transport protocol. And then IBM and others were working on markup languages. They had GML and SGML, and these were used to produce all of the IBM documentation, you know, their manuals, their principles of operation, this kind of stuff. And the ideas from SGML were moved into what eventually became HTML. I didn't know this until I did some research for this, that in fact there were many, many different variants of people that had taken SGML and used it to do kind of web browsing. And just HTML happened to win, thanks to Tim Berners-Lee, I think. So once we have our integrated circuits, and remember back then we were using modems to connect to things, so these would be like, you know, 1200 board, then moving up to maybe 14.4 or 28k modems. And you have integrated circuits. You can start building a more personal computer that can interact with the network. And the early personal computers were like small suitcases, but then eventually and very quickly got smaller and smaller, more practical, until we actually ended up with the PC. So then we have the PC, and that combines with HTML. And guess what? We get the browser. The very first browsers did not run on PCs. They ran on workstations. But very, very quickly, they moved into like 93. They moved into the PC world, and life has never been the same since. So simultaneously with all this is an entirely separate tree which gets us mobile networks. And I wasn't going to go through the entire process by which we arrived there. But as if by magic, we end up with a mobile network, which is capable of transmitting data. And at that point, our lives changed. At that point, we can order a taxi by pushing a button and it arrives, which I still think is remarkably cool. We can pay our bills online. We can do it. I can monitor where we have a dog that tries to run away a lot. So it's got this thing about the size of my thumb, which is a GPS receiver and a cellular modem all built into that package along with a battery. And so I can use my phone and find out where the dog is, which is stunning. So that is very, very, very, very cool. And within what, five years, 10 years, the entire, well, not the entire world, but a vast majority of the world has been changed by this. This is transformative. This is disruptive. Not just first world. Mobile adoption is actually higher in some third world countries because it's far easier to do mobile than it is to put wired infrastructure in place. So it is phenomenally disruptive. But as you see, it's all built on existing building blocks. And I think we're about to witness another shift. So what are the components that play into that shift? Well, I think probably the most important of all is open source. There are many people who still don't believe that open source can possibly exist. This idea of people writing stuff and then giving it away, that is crazy. Why do we do that? Well, we do it partly to show off and partly because everyone in this room has benefited so much from being able to use the software that you can just download from the net, that it's almost criminal not to give something back. So there's a genuine kind of like gift economy going on in the open source world and it works. When I was first starting out, when I was doing development, I would start off, first things I'd have to do is go out and buy a C compiler. I'd have to buy some kind of database package. I'd probably have to buy some terminal emulator or something else by the operating system I was running on. So to start any project back in the 80s, it was going to cost you minimum of $1,000, easily 10 if you had a database involved, just to get off the ground. And when you're in that environment, you are not inspired to go out and just try something. There's a very high cost of entry. Nowadays, I can get, I mean, literally, I had probably got what would have been millions of dollars worth of software just sitting there. And I am grateful for that every single day. So open source is a key enabler of this. We are also beginning to see the advent of mesh networks. So like my, I'm just having kind of vaguely retired from the pragmatic bookshelf. I thought I would do some of the cool things that I've always wanted to do and one of them was to wire my house. So now I've got Z-Wave everywhere, which is great because lights turn on and off randomly all the time, it's great. But the cool thing about Z-Wave, it's actually a mesh network. So unlike most of the other systems out there where you have a single base station that talks to it, with Z-Wave, they all cooperate. And so if your light switch is in a poor zone to get from the base station, it sends its stuff up through another light switch and then to your base station. So it's lower power and it is more reliable in theory. But that is a very cool enabling technology. And then to make mesh networks work, people are also developing low power protocols. These are protocols that do not require the devices to be constantly online and polling and receiving stuff and everything else. And so you can get extended battery life and still get the communications you need. On top of that, we are beginning to develop distributed false tolerant ways of storing stuff. And that's driven by the cloud. You have redundancy, you have your data spread in three or four different centers, duplicated across some of them. How do you organize things so you don't lose data ever? And there's a good theory on that, cat theory and all this kind of stuff. And there's also a lot of practical research, a lot of good distributed database technologies that allow you to have these algorithms. And it's not just databases. It's algorithms for distributing work, all of these things. And then finally, on my little list, no, not quite finally. We have tiny and cheap processors. I am a sucker for anyone saying, hey, I've got a new kind of like Raspberry Pi, whatever. If you have easy access to a quarter, take it out and have a look at it. Go on, go on. This is not the smallest, but it's the best picture I could get. This is a particle P1. It is not going to calculate 18 billionth digit of pi. It has 120 megahertz processor on it. It only has 128K RAM and a megabyte of flash. It does, however, have full Wi-Fi on it. So you can write programs and it will happily join into your networks and everything else. And just to give you an idea, it's that big. And it's dirt cheap. I mean, they sell them in bulk. That's phenomenal. Like I say, this is not processing that's going to do big, big calculations. You don't want it to. This is the process that sits in your light switch, or in your pocket doing some kind of like identity information or something like that. This is big. This is where I get into trouble, because I know this is a Ruby conference. But I'm going to mention something called Phoenix. And the reason I'm mentioning Phoenix is that everybody thinks that Phoenix is some kind of slap in the face to Rails. That Phoenix is Rails done better or something. No, it's not. And that's the biggest mistake I think the Phoenix team have done, in that they started out allowing you to create web applications with Phoenix. Phoenix is not a web framework. Phoenix is a framework that lets you switch data in a controlled manner across millions of connections. When Chris benchmarked Phoenix, I think Rackspace lent him some computing power. And they lent him a decent sized box. It was like an eight core, I don't know how many terabyte machine, a nice machine. And that was his target machine. And then I think they lent him 48 regular machines. And so he started bombarding his target machine from the regular machines. And he ran out of bombardment power when he got to two million connections simultaneously running on that one box. And he was switching. So every time a message came in, he would send it out to 1,999,999 other people. He was doing that two million times a second. So that is some really cool power. And then on top of that, I'm not really plugging elixir. The NERVS project is a project that lets you write code. And then at a single command, it will generate a binary image that you can just plug on a USB stick into a Raspberry Pi or stick onto that project whatever it was atom. So you can now generate code really, really easily. It just runs. There's no operating system. It just runs natively on the device. So what happens when you get these ideas and you put them together? Let's imagine my 18-year-old son is totally embarrassed that I have this slide in his bag. He needs to be more secure. I'm embarrassed by the sparkle transition for that scene. All right. So like all good fantasies, this one starts with Metro Man walks into a bar, all right? Now, this is two years from now, maybe. And Metro Man, although he looks like a slob, actually has little bits of technology on him. Not the way you'd recognize it today, though. These are not like a 16-inch cell phone or whatever it might be. These are little discreet things like a key fob or something like that. So one of the things he has is identity. Now, right now, where's your identity held? Nowhere. It's everywhere, all right? It's passwords. It's little dongly things. It's password managers. It's maybe sometimes nothing, all right? So one of the things that we definitely need to solve is this idea of identity. So why don't we carry in our pockets a little device, like that atom thing, which is going to maintain our identity for us? Some kind of challenge response system. That's kind of cool. And that identity, in this case, is going to talk to some processor that's just sitting there running in the bar. And he's going to say, hey, Metro Man's here. And maybe that's then going to tell the rest of the room in case someone was waiting for Metro Man. And it's going to look for messages and all that kind of cool stuff, right? And maybe at that point, his headset beeps because he's got a friend he's meeting and that friend's going to be late. A little bit to the discrete technology that dynamically plums itself together and disconnects. And all this business of, oh, I've got to get myself a Thunderbolt earpiece to fit into my whatever it is, right? Doesn't work that way anymore, I hope. So now he gets himself a latte because he's Metro Man. And he picks up a display that's lying around, right? So nowadays, free Wi-Fi is expected in all these shops in two years' time, free displays. What's a display? It's just a panel, LCD panel, with a radio in it. But the cool thing is that if we had that technology, then the display is going to connect to the network, however it can, and it's going to connect to his identity. And now it becomes his display. If he was reading a book, that book will pop up on that display exactly where it was. If he was reading his email or searching Facebook or whatever, it'll just be there. No need to log in because it knows you're you because you have the identity. And I know there's holes in this, but just bear with me. So because of that, everything is just like linking itself together, dynamically talking. It is really, really fun. One of the things he's doing is he needs to upload some work he's been doing. So he requests a low bandwidth connection, and he gets it and loads his data. Now at this point, he starts feeling a bit warm. So he asks the coffee shop if I can reduce the temperature a bit. The coffee shop holds the customers. Customers say, yeah, OK. And so the environment drops down a couple of degrees. That's kind of cool. Personally, I think it's really quite selfish because all he really had to do here was take off his damn junk donkey jacket. But this is trivial, right? This is not like world changing. This is not, you know, we have to have this now. This is just day to day. This is how life could be, it might be. Where we've moved from having computers that sit under your desk or actually computers that take up your room to computers that sit under your desk to computers that live in your pocket. But you still have to carry everything you need around with you. And I'm saying the future is pervasive computing available just everywhere. So all of these various components, all cheap little components, all talking to each other to get stuff done at his beck and call. And we can do that. So what I would like us to do is to think about, is this something I'd like to see happen? Can I start working on bits of this? Can I start playing on bits of this? And the answer is yes. I mean, everything I've talked about here is available. All of the hardware, all of the software, you can just get it. You can get yourself a Raspberry Pi one or whatever it's called, the small one now. I saw them in Micro Center in Dallas, 99 cents each. This is a box that can run Linux, 99 cents. If nothing else, go and buy 100 of them and make yourself a supercomputer. To do all this, we need services. And your list is probably better than mine in terms of the stuff that we need. This is where I'm saying basically, I think this is a really good idea. You guys go do it. But we need discovery services, compute services, storage, gateways, accounting, because at some point, this has got to actually pay for itself. And so we're going to get into micropayments and all that kind of crap. We're going to need interactions. We're going to need screens that are just basically anonymous devices that will become someone else's property for three minutes. We need voice activation, which we're getting pretty good now. We need actuators and sensors, all of this kind of cool stuff. There's a whole bunch of stuff that should play into this. Discovery is one of the key ones. I'm not 100% sure why I decided to do this picture, but so in discovery, what we're doing is we're going to be dynamic. So we're broadcasting. Actually, what I'm doing here is hypnotizing you. But it's going to be dynamic. We're going to say, hey, look, I need a network connection. I'm broadcasting this out to the world. And this guy down here, this is somebody else's processor that has to be sitting in their pocket. And he's agreed to allow it to share network connections. So it says, yeah, you can have 120 megabits off me. And it's going to be transient. And the coffee shop says, yeah, I can give you 50 megabits. And I'm fixed, so you can kind of rely on that. So the greedy thing down here says, OK, I'll have both, which is cool, establishes connections. The guy with the thing in his pocket walks out of the coffee shop like that. Connection disappears. Nothing happens. It just carries on running using the other connection. All that technology is there. We can do that. So I believe really, really strongly that we're on the cusp of being able to do this. But I also believe it's not going to happen unless we make it happen. And I don't care if you're coding in Ruby or in Elixir or in Java or in Elm or whatever it might be. There are things that we can do here to stop making this happen. Are there holes in this? Absolutely. There are holes in this. I mean, identity is a major, major issue. It's more than just a key fob, right? There's got to be some kind of additional personal thing going on there. But whatever we do, however we do it, I really think now is the time to start looking. And now is the time to start investigating. And now is the time to start playing. Because fundamentally, I think the reason that we're all doing this and the reason that we're all here is we just want to have fun. And I think this will be a whole bunch of fun. Thank you. Sure. We have time for a couple of minutes. Can you hear me? Oh, Patrick. I think probably right before Facebook became synonymous with social web. There was a lot of talk about the big happy sharing, flicker, delicious, all that sort of stuff. Do you see a problem with one single massive walled garden for this new interconnectedness? I think as long as we have open standards that do the interconnecting between these various things, it would actually be very hard for someone to impose a walled garden. I think what could happen is a Google or a Microsoft or someone could make it incredibly attractive to use their particular set of services simply because they give it for free or whatever else. So it could happen that way. But we seem to accept that OK at the moment. So I don't think that's going to be an issue. As I say, I think there's not in a way this actually makes it less likely because you're actually dividing the world into smaller chunks. And so it's easier for new people to come in and inject their technology into this environment. If you have to provide an entire infrastructure to write your email, server, or client, or whatever else, that's a big deal. If instead you just have to program something onto a little small microcontroller, that's easier. But yeah, we have to watch that. The thing though is that today we are living on a total edge of a cliff in terms of things like identity. Right now it works simply because no one has bothered to go and hack it at a big scale. But there's nothing stopping that happening. And unless we actually take the steps to do something like this, I think you could be looking at way, way worse than a wall garden going forward. But good question. You have a question. It's all about trust and how you kind of broker trust. I think that, as you talk about that identity part, that's the thing that stands out in my mind is super interesting. It's like, how do you manage trust between these devices and the trust that I am and who I said I am. Have you seen anybody doing interesting work with that piece at all, like the trust management? Yeah, I agree. So I don't know if your mic was on. But yeah, so the question was, the key, the center part of this or one of the central parts of that is clearly trust and trust management. And how do you handle that? And frankly, I don't know. But I mean, there are interesting trends. For example, the bit chain and Bitcoin is an interesting way of managing trust. And maybe we could have something along those lines with this. I don't know. And that's why I need smarter people than me, which is everybody in this room, to think about this and look at this and try implementing this. We've got a question there. I'll wait for him. Apparently, we'll wait for a mic. Yeah, I got one. I like the idea, Dave. I think it's absolutely brilliant. I love the unicorn. Not to shoot a hole in the unicorn. Does running VM on limited resources hardware still make sense, though? In what respect are you talking about? So as you're running a virtual machine on limited resources hardware, does that actually make sense versus not running a VM? And in what point that's for using Elixir or Nerve on limited resources? Yeah, I'm not saying that we have to write all this Elixir, all this and Ruby. I think that the longer term, there will be way better ways of making this work than typing out code. I mean, eventually we will get to the Star Trek Earl Grey Hot-type programming. Although why someone would want an English Lord coming out of their machine, I don't know. But I think long term, we're going to move anyway. But I think the question really for me is, how do we start the process? How do we move the steps forward? And if we wait for perfection, we'll never get anything. So what we have to do is to accept the fact that what we're doing is little small baby steps. And we're going to explore and see what's right, see what's wrong. So we may start off with, we're going to imagine that eventually we can produce these devices for $0.10 each in bulk. But for right now, we're going to accept the fact it's going to be a $10 Raspberry Pi. And it's going to be 50 times bigger than we're actually going to go in the thing. But that's the way to prototype. That's the way to experience it. It's like that guy from MIT Media Lab who walks around Boston with a small, gray super computer duct tape through his head to do the subversive reality. He knows that's not what people want to do. But that's the technology he's got to play with, and that's what he's going to use. And it's the same here. Early cell phones. I mean, I prepared to lay out the first cell phone conversation. Took place over the actual boxes that were those cell phones were probably the sizes of desks. And then gradually over the years, as the need has driven it, sizes come down and everything else. Same thing will apply here. Once we start getting this working, then we're going to start seeing the price come down, size come down, power requirements come down, all come down. And whether it runs in a virtual machine or not, I don't care. It doesn't make any difference at all to the actual underlying philosophy. And that is, let's get something out there and try it. Three, two, one. Simpler. There's no question about.