 So, let's see, let's see if this works. Okay, we do this. So I change this number, and I can set it. I change the number again, right? And I can set it, and I'll change this. I'm not giving it, I'm not giving it all. Okay, can you hear this? Yeah. Okay, so I change the numbers, right? And the music changes. Yeah. And right now I'm using that power for good. But I can also use it for evil. Okay. So if changing the number is actually generated randomly, right? It's a key number generator, right? Up here. But up here, it's actually entirely random, right? Because if it was entirely random, it would sound really fucking bad, right? And not that plain, right? What it's actually doing is it's throwing random numbers against a probability matrix, which is what's defined here. If we change the probability matrix, we actually change the drums with the current API. This doesn't have to be this way, but if we want to make it slower, we have to stop and restart. There you go. What did I do? Okay, so it was cool while I lasted. So I'm going to get to the presentation now. Because frankly, I have no idea why I stopped working, and I don't want to find out. Reboot! This is not worth working about. It's some crap. Oh, I bet you I know. Start Rails. Yes, that would help. Mostly with the same data, I just played at a different speed. So now I'm going to sort of explain the code a little bit and do the whole presentation thing. So here we go. Okay, this is amplifying my voice? Yes. Okay. I mean, it could be louder. I'll shout. Never mind. Okay, so I work for a company called ENTP. I have done about one day's worth of work for them, and I've been working for them for maybe two or three weeks. So my conclusion from this is ENTP is great, right? And that you should fear us, you know, here's some scary stuff because we are elite, et cetera. Okay, so one thing that people talk about a lot, right, is Java versus Ruby or PHP versus Ruby, Perl versus Ruby, Python versus Ruby. I have a definitive final answer to these questions, and I'm going to answer them with code, okay? But first, I'm going to show you pics of a techno party in the city of Los Angeles called Compression, and it starts with a laptop, right? And if you pay close attention, there's a laptop in almost every one of these pictures. And what's interesting is that as programmers, we can say, you know, this is going to be a wicked party. I'm going to bring my laptop, right? This is kind of a new thing for other people to say. But these are people who are saying, this is going to be a wicked party, I'm going to bring my laptop, right? And people who are saying, this is going to be a wicked party because so-and-so is going to bring his laptop. So it's kind of interesting because this laptop-party connection is now a connection that people are making outside nerdland. So that's kind of interesting. So my name is Giles Boquette, not Giles, for those of you who may have said that. And you can actually say it Boquette because that is the correct pronunciation. I'm just so used to the incorrect pronunciation, ironically, that I say it wrong. Anyway, here's me with a laptop, here's me at a party. Okay, so one thing that people talk about on the blog world stuff is, you know, are programmers artists, right? Like some people say a programmer is a type of artist and some people have, you know, like this idea that a programmer is a thing which behaves in a way similar to an artist because we're creative, we make things, right? Kai's Power Tools is extremely old-school visual software. It's like the psychedelic stuff from 1992. He said that the process of like releasing new software with new features and getting people to buy this version, that version was a type of performance art. Zed Shaw, the infamous, referred to a mongrel as something which started as an art project. And, of course, everyone knows this guy, Steve Jobs, who said that real artists ship. The canonical example of this whole like hacker, you know, artist thing is Leonardo da Vinci who was, of course, an artist who also participated in and made contributions to the science of his day, right? And although he was a real artist, he did not ship. This is a hang glider which he designed in the 1500s which people did not build, right? This is a bridge that the Swedish government built, 501 years after Leonardo designed it. And if we judge Leonardo by release early release often, we have to consider him a failure. But he is like one of the most accomplished geniuses of all time. So the column of failure is kind of crazy. We should say it's a failure of his society, right? Because they were unable to leverage that talent that they had. So, you know, he was a hacker and a painter, right? And there was this book, Hackers and Painters, which I, you know, thought was fantastic. I still really like. And the guy who wrote this book said, if you think my book is awesome, wait till you see my programming language. And he said, I'm going to have a kick-ass programming language. It's going to be called ARC. It will change your lives, right? So ARC was announced in 2001 and released in 2008 and did not actually get the reception that Paul Graham expected it to get, right? No one really cared, right? And he was like, I can't believe you Philistines don't appreciate the genius of ARC. And he issued a challenge and he's like, do this better, right? And he did some web app in like five lines, right? And he's like, this is the ARC challenge. And so a whole bunch of people defeated the ARC challenge in a whole bunch of languages. And in my opinion, the definitive defeat came from Jim Wyrick using code he had actually written three years before in 2005. And it leveraged continuations and basically made ARC fail. Or in my opinion, ARC equals fail. So real artists ship. Don't wait seven years if you got something good. Or if you think you have something good. And here's the one site that uses ARC went down. Fail. By which I mean fail, or in other words, fail. So here's water arcing over this guy. The idea of ARC was really cool. I was sold on it until I actually saw the thing, right? So, okay. I created something that I thought like lived up to that, right? And I called it ARCs, right? Or, you know, more accurately, I called it archaeopteryx. But you're free to use the nickname because no one can seem to remember the spelling. For some reason I was just like, I know, I'll give it the most unique spelling possible. It'll be easy to Google. And everybody knows the archaeopteryx because it's the coolest dinosaur. But remember that, I was wrong. Anyway, I don't understand why you guys don't remember the archaeopteryx, but it was a cool dinosaur in my opinion. It's a Ruby MIDI generator. Now MIDI is a language used by synthesizers to talk to computers or to other synthesizers or for computers to talk to computers. It stands for musical instrument digital interface, right? And there is actually a gem out there for creating MIDI files called MIDI Lib. You can gem install it. And I actually used this with more continuations coded by Jim Warrick, which I stole from the Ruby way. This is the first edition. And combined with some stuff that did fractals to make some music, which was cool but too freaking weird, as the label might indicate. And let me just, I got it here. Let me just see if I can play it. Yeah, okay. So when I say it's cool but too freaking weird, you get the idea, right? I mean, it's cool to do, right? But it is too freaking weird. So if you want to, you can, you know, find more info about it here. But, you know, let's face it, it's R2-D2 doing avant-garde electronic music. So, you know, it might be good maybe for some weird ambience stuff, but it doesn't get the job done. So I, before the guys who founded Heroku, founded Heroku, I worked for them for a consultancy they had called BitScribe. And I actually found out the guy, there, Adam Wiggins, actually built a system like Archeopteryx for Burning Man. And basically, he had a real-time automatic robot DJ running in his tent, like, at all times, just off the laptop. And I was like, dude, you have to, like, show me this code. This is amazing. This is the most incredible thing I ever heard of. And he's like, well, I just think of it as something kind of silly, right? It's just, like, fun, right? And like, earlier, I did this presentation to really threaten people that if they referred to Archeopteryx as merely fun, they would be slapped. And, you know, to a certain extent, I wasn't kidding. There was someone called it fun, and I didn't slap him, but I was quite serious about it, because real artists ship, right? So here's some good-looking women. Now, everybody knows and respects, and indeed many of you own the t-shirt for this company, Engine Yard, right? And Engine Yard is known to have received a bunch of money from Venture Capital, right? They're leveraging that for open source, right? Now, this is really interesting, right? This will all be relevant sooner or later, just in case you're wondering. They got their money from a company their initial round, at least, from a company called Benchmark Capital, which has a really good strategy for open source. And these are some of the companies they funded besides Engine Yard, right? And basically, all those companies, they do open source development and make money on technical support. And what Engine Yard is doing is doing open source development and making money on hosting and scaling, right? So the Benchmark Capital approach to open source, they think, and I believe I agree with them, they go with this approach. Open source enriches the ecosystem, right? By making the software available, you make it possible for more people to build stuff with the software. So what you do is you build that market and then you provide services against that market. So it enables you to create markets in a weird sort of magical sense. So I actually am not a fan of Benchmark Capital in the biggest way. Like if you go back to the days of Leonardo, right, there was this system of patronage where a wealthy landed noble would say, you know, here is my artist, I am the artist's patron, right? And if programmers are artists, then this phenomenon where wealthy landed nobles say here is my programmer, I am the programmer's investor, it's kind of a similar thing. And in the boom, which is when I moved to San Francisco and got involved in technology in a serious way, there were a lot of startups and the dominant meme at the time, now maybe this just dates me, maybe it just shows how old I am, but the dominant meme at the time was that, hey, you know, startups, it's an adventure, right? But the weird thing about that is it's an adventure which requires patience, right? Because you get stock options, it takes four years. So just to contextualize this term adventure, right? I come from Chicago, I've like, you know, slid down mountains in the snow when I lived in Santa Fe, been snowed in with blizzards in Chicago. I once fell down a waterfall, I got arrested for not paying speeding tickets. When I was 19, I moved to a bad neighborhood in Chicago because I felt getting good at screenwriting was more important than living somewhere safe. And I actually lived kind of in a ghetto area, and there was a lot of gunfire, and you know, even some on the second row, like that little baby Uzi, I actually heard that many times. So it was kind of scary, I was threatened by gangsters, this guy across the street was beaten up, my brother came to visit me and got shot at, and I've been to like illegal parties in foreign countries, and when I lived in New Mexico, there was frequently bear droppings outside my door, like within 10 feet, and they were fresh. Recently my parents actually, their car window was smashed in by a bear to get the dog food in the car. So my dad, there he is, is going to buy a shotgun, and he already owns a 357 Magnum, which for a while I carried on a daily basis because there was a mountain lion in the forest there. Now, being young, and my parents are old, right, after a while I got tired of being in the wilderness, but I still wanted to come visit them, right, so I would go and I'd be like, hey, you know, aren't I a good son? I'm going to go visit my parents and they're going to have meaning, right? So I go up there and I'm like, hey mom, hey dad, I know you're bored out of your minds just sitting around being you. I've come to like shed light on your existence. And they're like, oh, that's wonderful, we've just killed a rattlesnake with a shovel. Then we throw it on the barbecue, so if you just wait a bit, you can have some barbecue rattlesnake. Would you like some tea, right? During that time, Coyotes tried to kill my dog a psycho through rocks at my dad until I threatened him with a piece and one time I did a 180 on the 101 going downhill backwards in heavy traffic at 80 miles per hour in Hollywood, which is a reasonable way for Lindsay Lohan to drive, but it was not good for me. And when I was 10, I used to we had like a 1.5 story garage and I used to go up on the roof and jump off for fun, right? Now, this basically when it comes to adventure, I'm almost not scared of anything. I mean, really, this is the only exception. I am terrified of hippos, but other than that, it's hard to scare me, right? I'm not averse to adventure. So these venture capital people are like, dude, you should do what I'm doing, right? It's an adventure. And I'm like, okay, tell me about this adventure. Well, what you do is you sit for four years at a desk and I'm like, what is this, these people are weasel brain muppet fuckers, right? Spec fails, right? Expected adventure got desk, you know, and this is why I'm afraid of hippos. Here is a hippo chasing a man and trying to eat him. I forgot why I put that here, but it doesn't matter. Here's a story about a Rubik's Cube, right? There was a manager who, like many managers in a corporation, he sometimes had unscrupulous, evil corporation conversations. And he wanted to distract engineers, right? So what he did, he didn't go into like another room, he didn't get on his cell, he didn't get on I.M. He just kept a Rubik's Cube on his desk, right? And any time he wanted to have some kind of evil conversation, he went hey engineer, and he throws him the Rubik's Cube, engineer's like, oh, dude, dude, dude, and then he just had the conversation right there. We're gonna, you know, set the servers on fire. Don't worry, the engineer is cool with it. You got a problem? See, he's cool with it, right? So what I hesitate to suggest this, but the possibility exists that some of the cool projects that you get in certain corporations are shiny objects to distract you, which simply keep you there, right? I mean, what happens with this shiny object? There's all sorts of people gathered underneath it, right? I get to play with this shiny object. Yay! I get to play with this shiny object. Yay! Oh, you need me to fix something? No problem. Okay, I'm back to this shiny object, right? Because you have to consider the possibility that these people who are telling you that sitting at a desk is an adventure, you have to consider the possibility that they're not fools, right? And if you consider that possibility, the only explanation is that they're liars, right? Because why? Why would they call it an adventure? There are plenty of good reasons to sit at a desk. Why create a mythology around it, right? Well, it goes back to that thing of patronage, right? If you're an artist and you have a patron and it's 1500, your job implicitly is to make the patron look good, right? You'll paint paintings of them and their warts will not appear in the paintings, right? They'll be 20 to 50 pounds lighter, right? They'll be a little bit taller, they'll be a little bit better looking, they'll be wearing more expensive clothes than they really were, right? Your job is to make them look good. Now with venture capital, what they do is they all fund the same projects, right? And then they go to parties and brag about how their programmers doing this are the best ones doing this, right? Again, they're trying to look good, right? And this woman here is essentially wearing programmers, right? These people are her fashion accessory, right? And I admire someone who has the balls to do that. But, you know, I don't really think these guys aspire to be somebody's fashion accessory, right? In some respects, it's the same system and the only thing that's really changed in 500 years is there's this escape clause, right? Which is that you can have an IPO and if you're extremely lucky, you become an investor yourself, like the YouTube guys, right? And then you don't have to be anybody's pet monkey because you can go out and buy startups or invest in startups and collect pet monkeys of your own, right? And this is why if you work for Google, they buy you shitloads of toys. It's in their economic interest, right? For you and us to think of ourselves as children, right? Because then they get to say who's your daddy, right? They get to be the daddy, right? If you're children, they're the daddy. They get to say, it's my money. I'm the boss. And this is what happened to Leonardo, right? He had this bridge. He's like, damn it, this bridge will be awesome, right? This hang glider will be awesome. And everyone is like, oh, you know, he went to these patrons, these landed nobles, right? And they're like, Leonardo is having fun, right? Here's a hang glider. People can fly. Oh, that wacky Leonardo is having fun, right? And what we do as people who create things that did not exist before, possibility is a big part of what we do, right? But when your possibility, you know, range that you can work with is constrained by what other people are, you know, aware of, then if they are operating with a much smaller possibility, you kind of screwed. And this is one of the results of that approach, right? Pets.com, $100 million and a sock puppet, right? Fail, right? The stock market graph that, you know, resembles the graph seen prior to the Great Depression. Fail, right? Now I, after the dot com bust, lived in this camper here. Fail, right? You can even see, well you can't really, but there's a zero one indicating the year. I was making $7.50, $7.50, right? And prior to that, maybe three months earlier, I had been making 75, maybe maybe six, I don't know. Six months, I mean. So that sucked. And I was like, fuck, right? And specifically, I was like, fuck programming, right? And I went back to school and I was studying art and I was learning to draw. And this is all the stuff that I drew during that time, right? And I was really happy with that. But I was also studying music and I made some records and they did not sell at all. So, you know, fail, fail, fail, right? And this is a really good quote. The only heroic artists are the ones who get paid, right? And I was not one of those artists. I was a starving artist who did not ship. Now it could have been worse, right? I don't know if you realize this, but hippos eat people, right? It could have been worse. I could have been bitten by a hippo. This is not false. I'm just telling you. They eat people. I've seen them eating impalas and gazelles. I'm sorry. It's a little bit of a tangent. But I was just, I was looking on YouTube, okay? And there's this, this caption and you know, you look at hippo videos and it's like, click here. It's beautiful. A hippo saves the life of an impala, right? And the caption says, the hippo sees the crocodile attacking the impala, right? Attempts to save the impala, but tragically the impala dies, okay? Then I watch the video. This is what actually happens. The hippo sees the crocodile attempting to eat the impala. The hippo goes over, the crocodile runs away in fear and the hippo then nudges the impala to shore and then the impala tragically dies as in the caption. But the reason it tragically dies is because the hippo puts its giant mouth over the impala's head. Anyway, so when I think of venture capital, I think of two things. I think of economic instability and sock puppets, okay? And I would call that failure, right? And I would call that a failure of wasted money as well as wasted talent because the reality is if those $200 million had not gone into a technology venture which resulted in nothing more than a sock puppet, it might have gone into some companies that had done something worthwhile, right? And if instead of saying I'm going to invest into a bunch of companies to make a bunch of bullshit that nobody needs, if instead they had said I'm going to keep this $200 until I have a reason to spend it, you know? That might have been a better way to fund a technology company. Anyway, out of all this like dot-com bust madness which, you know, some of you probably don't even remember because I'm so, you know, whatever, but came this thing getting real from the same place that gave us rails, right? And this was a very well-received book. It basically said that you should disregard venture capital, build something profitable, don't quit your day job, just do it on the side because web apps are cheap to build, right? They use commodity hardware, they use open-source free software. They're cheap and I very firmly believe this strategy is fantastic because when you do this, it's your money, you're the boss, and the realm of possibility that you operate in is much, much bigger, right? And this is where Basecamp came from, quite famously. It's also how delicious and Dig were made, even Facebook, there's R2D2. MeasureMap was done this way, GitHub sort of, Twitter sort of, you know, cheap is a big win. Engineyard sort of falls into this model as well, right? They weren't built on the side, people were quitting their day jobs but they were profitable from the get-go and that was a goal to be profitable from the get-go. They weren't thinking we're going to get the users and then add the profit, right? And because they were profitable from the get-go, people from Engineyard have told me, right, we have an unprecedented level of freedom from the venture capitalists, right? They let us do what we believe we should do, right? And Ezra told me, like when it happened he said, it's great because they need us, we don't need them. So we get to, you know, have a certain amount of leeway we can actually negotiate and when you're dealing with people who want a huge chunk of your company, it's really good to be able to negotiate and in fact there's a crisis going on in venture capital because internet startups don't need venture capital anymore, right? As startups become cheaper to launch, more and more venture capitalists are finding themselves living down in the cold, right? So cheap is a big win and we all know that that's where Rails came from. Something similar is this project adhesion which you've heard about before today, I'm sure. Jay Phillips, the guy who created it, he said my career is adhesion because basically, you know, this was something he posted on his blog. He created this when he was in college. He went and snuck into a conference he didn't even register for and started presenting it to people and then he presented it to a bunch more people, right? And he got people interested in it and they started using it, right? And what happened was soon he was able to, you know, do adhesion consulting full-time, right? That's actually not what he's doing now but he was operating in a niche market that he created, right? And that's actually the benchmark capital strategy applied at an extremely small level, right? Open source enriches the ecosystem, you build the market, then provide the services, right? My career is adhesion, right? He created the framework and then provided services against it, right? So it might not just be that venture capital is having these problems because they are now too cheap to fund. It could also be that they're too small to see, right? I believe that in a sense Jay Phillips is a successful internet startup, right? And I believe that anyone here can also be a successful internet startup, right? I mean you just follow the same strategy which brings us back to ARX and why it isn't just about fun. Now nobody's actually going to get slapped, right? But if we use our imagination and imagine, you know, somehow like I get lucky enough to say one day my career is Archaeopteryx. Well, part of the way that can happen is I have European citizenship through, you know, my English parents. Here's a guy who's English who allegedly makes 25 grand per night DJing, right? And this is what he DJs on and it looks like a DJ mixer, but it's not. It's actually a custom built MIDI controller because he uses software to DJ and that software gives him new creative possibilities. Archaeopteryx, because it leverages MIDI, can control that software and did control that software last month in Toronto where I actually did a DJ set with it. The downside of all this is that I'm not getting as much sleep as I would like. The upside is that I believe maybe I am in the process of creating a niche market and I've actually spoken to like via email to a very, very big name DJ in the techno niche market who, you know, maybe sort of could become a client who knows. You know, not conclusive but possible. So, you know, the goal is just for it to be profitable, right? But the thing is it doesn't have to be hugely profitable because it wasn't hugely expensive to create in the first place, right? So I don't even need to say my career is Archaeopteryx for this to be a success. If I say my career includes Archaeopteryx, it's a success. Like Chris was saying yesterday with side projects, right? I mean just the things that I've learned from coding it make it a success, right? So, you know, if the best thing that I end up able to say about all this is that my career includes Archaeopteryx, that is not a bad worst case scenario, right? It's pretty good, right? So, you know, my plan includes no IPO, right? All I want to do is make a profit with it somehow. And the way you do that is you provide something superior at an equivalent price point to your competition. So, the long-term goal with Archaeopteryx it includes, you know, probability matrix rhythm generation, which I already have, claustile flexible method redefinition, which I'll explain in a second. Also, user-generated psychedelic visuals where the entire crowd is the user because this is social software. So let me explain the first two parts. The probability matrix rhythm generation and the common-list object system style flexible method redefinition. And these all come from the strengths of Ruby which is incredibly flexible so it allows you to experiment like a mad scientist. And here's another mad scientist. So, the object-oriented programming approach is inspired by the common-list object system but these sides just let you out of date because really it's modeling JavaScript. I mean it's almost exactly the same as the way JavaScript functions work with respect to objects. And that's again because Ruby is incredibly flexible. So, here's how it works. It's basically lambdas, right? Who knows what a lambda is? Okay, so about half, maybe two-thirds, three-fourths, many people. Okay, for those of you who don't a lambda is an object which is made of executable code, right? So it's as if you could take a method and just pass it around anywhere you want, right? But lisp guys are so gung-ho about lambda that they actually put lambda in tattoos on their arms. I mean this is unusual even for a lisp guy but there isn't a lisp guy in the world who doesn't understand the sentiment. Okay, this over-uses lambda to such a degree that the first line of code in the whole library is alias l to lambda because I needed to make it like almost syntactic, right? And if you change it to l you know it's currently a keyword, right? If you change it to l, it's almost like making a syntax. So here's an example of it in action. This is the stuff that I was doing earlier. You've got these drum objects, right? They're created and each of these things is like a Rails options hash, right? You're just saying I got a when, it's a lambda, a number generator, it's a lambda, a next which is a lambda, right? So when, number generator, next. And they go in the drum object and here's the drum object and it starts off, I don't know if this is clear. Is this too small to font? Is this good? No? Okay. Long story short, it says atro-accessor note probabilities when next number generator. So just when it gets the attributes it just throws them in slots, right? And there is a little bit closer up. So you're taking these lambdas and putting them in these slots, right? And then to invoke them, right, you can just use the square brackets, right? So to do play like to determine if you're going to play a beat you just on this object that's in your instance variable use the square brackets. So it's kind of cool, right? You have these different things, you can throw them in there and they, you know, just show up on the object. So the probability matrix basically drum machines you normally see I want to get this on like video for posterity but I need to gesture. Hold on. So these things here indicate beats and there's buttons somewhere where you indicate drums, right? So for each beat you have this list of 16 things, right? So that's a matrix. There's rows and columns. I got to see what's going on in the back channel because I saw somebody smirking. Anyway, I'll get to that. So you're creating a what the hell? Fail. Okay. So you're creating a matrix, right? When you use a normal drum machine, right? And the matrix consists of yes or no. So all the probability matrix gives you is the ability to say maybe, right? And maybe is expressed as a floating point value between 0 and 1, right? So here's the probability matrix code which you saw when I was doing the drums, right? And like up there, probability is 36, 1.0 0, 0, 0, 0, 1.0, right? I'm saying it's guaranteed to play on the first beat. Then there's a bunch of beats where it will never play and another beat will always play. And most of these are somewhere between 0 and 1. They're not as absolute as that, right? If you throw random numbers at this, right? And it's a different random number in each case. It generates infinite beats for you continually and they'll always be original. The normal object-oriented programming, right? Going back to that. An object has a method defined in the class, right? With this approach, the object hosts a method and you can redefine it at any time. And that's just because Ruby is awesome. This is something you can normally do in Ruby, right? But most people just don't use the freedom they have and there's a problem everywhere. But the additional advantage, right, is there's another freedom because they're separate objects, right? You can throw them in a queue. Since the methods are lambdas, you can throw them in an array in case you need them later, right? And here's an example of that happening, right? Into the queue goes the lambda and then you assign to the when you run next on the queue. So in terms of design patterns, there's this idea of the strategy pattern where instead of defining how to do something, you say how you will do this is you will run this strategy and that will answer the question of how to do it. So this is what's happening here. This is a strategy pattern. But you know, since you are throwing the when into, you know, a variable based on running another because next is also a strategy, right? Go, hold on. Next is a lambda that takes a queue and returns some element from that queue, right, which is then used to play the beat. It's not just a strategy pattern. It's actually a strategy for choosing which strategy to choose, but it's a meta strategy pattern in three lines of code, which is something really awesome about Ruby. So I actually got some of the idea from that from a book called This Is Your Brain on Music because I like brains and This Is Your Brain on Music talks about patterns and meta patterns. And the example is say you're doing drums for a regular song, right? You got the verse, the chorus and the verse and they got, you know, the same thing in the verse each time, the same drum beat, but you switch to the chorus, right? So you don't want to have to write you know, all the notes because there's repetition, right? But the thing is you might have some variations in the second time you play the verse. So what you really want to be able to do is say this is how we play the verse, but you have the ability to mutate it. And with lambda that's actually very easy because you can just throw these things in the queue and just draw, you can take them out later and by being able to mutate an existing pattern, you have patterns and meta patterns, right? And here's some examples of mutate methods. So another thing that it does is it has a scheduler. A scheduler is actually a meta scheduler because it schedules scheduling, which is kind of cool, I think. You've got this go method which is badly named. First it defines a lambda, right? Generate beats is a lambda. Then it has a ton of code which ends with MIDI timer at and then it gives a time and it says generate beats, right? And that's actually a reference to the lambda. And you're actually inside the lambda when you're making that reference. So it's like a recursive call except it's actually instead of calling itself scheduling the call to itself. So that's another thing that's cool about Ruby. It's kind of like Cthulhu and then it goes beyond sanity. So this meta scheduler schedule scheduling, that actually enables it to run infinitely, right? With very low overhead. The threads are not a big deal, the CPU is not a big deal, the RAM is not a big deal. And I actually tested this with a thing that generates ambient music, ran for more than an hour with no issues. And I'm going to test it in a bigger way in a couple weeks at Burning Man where it's going to run continually for seven days. And it also eats the VJ and I know that sounds dirty but what I mean is that it can power video, right? This is actually finished yet but it's going to be really cool and it comes about because of MIDI. MIDI gives you a great deal of leverage, right? And Rain actually was asking me, am I going to do like a C sound adapter? And the answer is no, right? And some people in San Francisco were asking me, am I going to do an OSC adapter? And the answer is no. Somebody at RailsConf asked me if I'm going to do an MSP adapter and the answers were no, no and no. And the reason is that MIDI, I have been using since I was 15, I'm now 34 so I've been using it for 19 years. But the other reason is that MIDI is a lightweight, ubiquitous protocol which has been around for 19 years. And the reason people want these other protocols is because they're smarter, they're more powerful. But that's actually a win for a protocol to be done. JSON beat out things like soap, right? Soap can wash your dishes, right? That's probably why they called it soap, right? Everything but the kitchen sink? No, we've got the kitchen sink. How else would you use the soap? Right? That's all, yeah, anyway. But JSON beats soap because it's lightweight and ubiquitous. It's dumb and tiny and that's a win. The same thing with HTTP. People tried the same shit as HTTP many times before HTTP became the win and it works because it's dumb, right? CouchDB is expected to work because it's lightweight and it can be ubiquitous. And as I say, it was designed in the 80s, right? So it's been around for a very long time. Like this runs it, this runs it, this software runs it, this other software runs it. This is a $20,000 modular synth, I'm sorry, 20,000 pound. So it's like a million dollars. It looks like it was designed by millions, but it wasn't. It takes MIDI. And this is VJ software, which also takes MIDI, right? So all you got to do is feed it some cool visuals and you can automatically modulate those visuals in sync with the music in a very, very wide range of ways. So I don't actually know, this is vaporware, I don't actually know if it's going to power video, that's a question. But another question which people at Burning Man might ask me is who is the DJ or where is the DJ? And I'm actually a robot who likes to sing, right? And it kind of brings back the mad scientist thing, but it kind of turns it on its head because it's so peaceful, right? I'm creating an environment for hippies to chill in, right? The only, you know, the counter argument there is that there's also a great deal of pyromanias involved because I'm going to be setting things on fire. I've actually seen this thing that the head of that snake was about the size of a Honda. Anyway, let's move on. This book is where like actually gets to MIDI comes from. I didn't write that part. And of course it's because these things use MIDI that I'm able to do all of this. Here's a completely gratuitous picture of Kate Beckinsale, wearing a sombrero. To counterbalance that, here's a completely gratuitous picture of George Clooney wearing a top hat. This is a picture I stole from Chris Wonstrasse company, I believe. But I think it's relevant, right? Because it's kind of sci-fi, right? This whole project is kind of insane but if it works, it'll be kind of great and that makes it insanely great. And that brings us back to Steve Jobs, who said Real Art is Ship, but he actually stole that statement from an artist called Andy Warhol, who said at first when he said good business is the best art. And this whole idea, open source enriches the ecosystem, build the market, then provide services, is good business. So this, you know, I don't need an IPO, I don't have an IPO, I can say fuck that shit, right? We don't need to build failed 2.0. But the truth is, right, I don't want to try and be like some kind of warrior picking a fight, right? Even if we built failed 2.0, it wouldn't be as bad as getting eaten by a hippo. That would really suck. Especially with wearing a sombrero. Yeah, right, this is insulted injury, right? It's like casually eating people. Why? So, you know, that would be if we had failed 2.0, it would be wasted money, wasted genius, wasted passion, right? And that's really my point, right? And why I make this whole keynotey thing, like, or want to be keynotey thing, right, where I like get up on my high horse, right? Computers are everywhere, right? If you want to ask like what can computers do, the answer is more or less anything, which means what can I build a computer business on anything, right? And that's where we get to the answer versus Ruby, PHP versus Ruby, Perl versus Ruby, or Python versus Ruby. Sorry. I strongly believe that the answer to that question is shut the fuck up, right? Because it's the wrong question, right? For me personally, the question is music with code or music without code, right? And the answer is with code, right? But it doesn't have to be music, right? It can be anything. I happen to say music because it's a passion. Another passion I have is acting, right? I study acting. I was in a student film. I write a bunch of screenplays, right? ENTP is actually working with a client that does interesting things in the field of marketing movies, right? So the question again, movies with code or movies without code, right? And the answer is with code. And here's those iPods again. Something interesting about these iPods, right? They're actually a representation of a horror archetype, which is the tentacle monster. It's something in common with Cthulhu. So this whole question of a programmer is an artist or, you know, a programmer acts as an artist or whatever ridiculous way you want to stretch the metaphor, right? A programmer is an artist if a programmer makes art, right? And again, it's the wrong question, right? Maybe a programmer is not a what but a how, right? I think everybody in here agrees that one of the answers to what is make money is the answer to how is with code, right? I'm also saying that for me the answer to what is make music and the answer to how is with code, right? Or make movies and make movies and how with code, right? What unites the people in this room is not really what, right? It's how, right? And that's why I say that a programmer is not a what but a how, right? And it's really just an answer to that idea that a programmer is an artist. I think that idea is a very self-indulgent, self-deceptive idea. And I say that because I believed it for quite some time and did some total stupid bullshit because I was like, yeah, no, I know what to do. A programmer is an artist. Oh, that didn't work. So anyway, the answer to how is with code, right? The answer to what is anything, right? So I'm not saying that this is something that everybody else in the room has to do but my approach is, you know, apply programming to your passions, right? Programmers up, VCs down, build something you believe in just because you want it to exist and remember that real artists ship. And that's basically it except my name is Giles Boquette. What the hell happened? Lincoln, oh. Hey everybody. Lincolnous is shareware. 11 days are left in my trial. If you like Lincolnous, please register. Fail. You fail. And I actually was going to register but now I'm going to make sure that key gen works. Anywho, wait, someone got my name here. Oh, okay, cool. Why cats quoted me? I can't believe this. Ladies and gentlemen, Yehuda cats approved of something I said. We've got the kitchen sink. How else would you use the soap? And he made fun of the name. Okay, I'm going to have to get him. Okay, and my name is not called archaeostrich, it's called archaeopteryx. My name is Giles Boquette, I work for ENTP and that's going to take a long time to fade out because I didn't realize I would need a credit sequence but I do. And here it is, they're going to roll, boom. So if you want to find me, I'm on Twitter, Giles Goatboy, I'm on GitHub, Giles Boquette and I'm on Google. Let's put the name Giles, I'll be number 7 on the list. At least, that's where I am now. Related projects are underway from Marcus Prins, Zed Fucking Shaw, Jeremy Voorhis and Ben Blything and a related lightning talk is on the way from Shea Arnett. And now I really am done. Questions? Go ahead. Conference did Jay Phillips sneak into exactly? I think I don't care. No, no, no. It's probably not true. Yeah, it was, it was some kind of telecom conference. It might have been something in Texas with telecom. We knew we had really arrived when people started sneaking into the conference. I think he went, I'm sure he didn't sneak into anything in the Ruby community. Nobody would do that. And the other questions? Nothing. Alright, I'm going to troll the back channel for questions. I want to book on meta patterns. I agree. Uh... Okay, that's it.