 So, um, yeah, like Coby said earlier, Randall were meant to be here giving a presentation. Building modern service-oriented architectures. I can't even get through that without trying to falsely. So, yeah, so they asked me to get it on their behalf. So, my name's Tamar. I'm Randall Thomas. And so, we were too busy enjoying our whiskey last night to really put this presentation together for you. But, you know, as I was enjoying the whiskey last night, I, you know, I came up with this alternative idea of, hey, what a Thunderbolt Lab-sponsored open whiskey bar. So that just sounded great to me. So, yeah, woo-hoo. You can all thank me, Randall, later. Except for the fact that exactly none of that is happening. So, um, Rain, where are you? Stephen Baker, where are you? Get up here, and Eric. So, if you've been to RubyConf and you've seen our, so you think you can code, panel, where we basically just get up here and argue with each other, that's pretty much what we're gonna do. So, hope you enjoy it. Oh, we're gonna take a, we'd like to take questions. So, if there's anything that you would like to know how not to do, feel free to just toss a hand up and we'll tell you how not to do it, because that's what we're really, really good at. How do you not write Ben String? I'm actually gonna give this one to Rain. I can't think of a case where we'd ever not want to write Ben String. So, I can't answer that. Literally, you literally always want Ben String. Seriously. All of it on. And I want to just keep, all right. Have you guys seen the recent blog post about Unclerc? And, if Rails possibly failing? No. Anyone, have anyone seen that? No. Don't be silly. How do we feel about Rails being a failure now, which is a fact, because it's on the internet? It was never, that's the owner's place. Yeah. Wait, is this child? Right, exactly. It never scaled. It wasn't web-scaled. It was just a thing that tied us over between Cobalt and Nub. Oh, no. Right, yeah. Big apps on Rails. Like what? We're about to intercal. Intercal, all right. Intercal on stilts, what was that? What would that be? Yes. So, is this only going to work if you guys ask questions? We're going to start doing that. We're hackable. I don't know what's new during this. This is something, I don't actually know exactly what it is, but it's made by Vic Minimitz. Hogshead. You mean, it's Hogshead? Yeah, you can get it in back. We have a question here. Yeah. This is semi-serious, so you can go ahead and... We have another question in the back. Okay. Do it. Okay. Let me just, let me make a round. I can't, yeah, that's fine. Make Colton do it. Yeah, where's Colton? Do all of them get to work here? Yeah, where's Colton? Colton. Where are you at? I didn't even have a question. So you haven't asked yet? Yeah. Okay, so I wanted to know, Twitter switched off of Rails, mostly. You're in stocks. Go ahead. I want to know, is it possible to make a scale at that level? Or do we have to go on to something else? Serious questions are no, or serious answers are no. Oh, I've got a, we've got a work, it's an autograph at work that does three billion requests a week. All. All is part of that. That's it. I mean, I don't know how many Twitter does a week, so. Audience participation. I process at least 15% of Twitter every day, all day long, 24 hours a day. Good job. How much staff? In Ruby, what? How much staff, Jeremy? Staff? Yeah. We're up to, well, we were two for a while, we're up to seven. Oh my God. That's amazing. How many years? How many years? When are you moving to scale? Oh, actually our intern took over two Rails developers the last seven years. Yeah, Colton's here, so if anybody needs a drink, how old did I get? Require relative versus require with low path, mainly. But you're doing a good job. Great job. Awesome. Keep it up. Every gem. Eight plus. Make sure, make sure there's like, go ahead and add other gems to you. The low path as well. Yeah, other gems to you. RSpec did that once, it was great. Yeah, and personally, I would like to request that everyone use unship to do that. I think I forgot about that. Here are you guys? Find other things that you don't want there and then remove them as part of it. Don't ever forget that you have access to Rails. You can change the state of anything. Hold on, hold on, hold on, hold on. Here are you guys? I just said that, I'm sorry. That's fine, we're just some people, it's not a big deal. Just some people with whiskey. And if you want to go from there, and if you want to go from bonus points, delete stuff out of loaded features. So what questions should we ask? Sorry, seriously though. I'm Ben, I've been doing Ruby for a few years. That's Ben is blithing, not blaving. Oh, he gets so pissed off when he's been blithing. My name is Ben Blithing. Blithing. Alright, the other thing that Ben does in the community, Ben and a guy named Shane Becker actually created the first conference to run in Seattle, actually seconds, because RubyConf was held there in 2002. So Ben and Shane Becker put together Cascadia Ruby Conference, and they announced it recently, it's going to be coming up the first weekend in August, in Seattle. So Ben has been an active part of the community. Thank you for pipping my conference, Kevin. You're welcome. I wasn't going to do it myself. I'm trying to decide if I want to do the rest of these. Everyone does the person just next to him. Okay. This is Stephen Becker. He's Canadian. Ask him to say out. Good. Stephen, let's see. Most recently Stephen was working, I don't actually have any idea. I think he was a G5, whatever. It doesn't really matter. I was a G5 and it's so bad. So conference sponsors G5, apparently. Awesome, awesome. Thanks. Do I get to talk about Eric? Yeah, oh, no. I'm just going to take organizer prerogative here, but the other thing Becker has done in spite of generally not wanting to claim it, he wrote the first version of RSVAC before turning it over to Dave Estells and... Estells had fuck all to do with RSVAC. I'm sorry. I mean, let me separate it here. Shalimsky. Sorry, not Estells. So now I'm going to give the mic back to Becker and let him tell you about Eric. Eric's from Seattle and he wrote Everything You Use for... Everything, something that is required by Everything You Use. Yes. How many people love Ho? Everybody. Yes, you do. If you don't, Bob Ho... Get out. Is there anyone who likes Ho that's not from Seattle? Besides Mike. Okay, Mike. He has a joke. Ken just kind of likes Seattle. Ken is a Canadian. But if Seattle would just tend to say cooler than me in Canada... This is... Oh, Kobe. More organizer prerogative. Yeah, Eric. If you didn't catch the references, he goes by Dr. Brennan on Twitter. I'm right. Okay. All right. And he also... He maintains Ruby Jams. He's a Ruby core committer. And I hired him once. Once. He's thinking about hiring me again. So... Maybe. So, this is Rain. And Rain is getting married next week. And let's see. Rain, let's see. Rain spoke last year. And then got harassed by a man where he killed two of his, say, rather inappropriate things. Unfortunately, he's not here again. And Rain is much happier. I don't know what else to say about Rain. Kobe, let's go first. Purple pimp has really loved the orange hair, though. Yes, it would. Let's see. Rain, it took me about a year before I pronounced his name, Rain. I kept wanting to call him Rain. Rain is currently at... is currently at Living Social. He's done lots of interesting things with Cloud at PHP Fog. Or they did a lot of Ruby. At least on the underside of things. Ironically, no. He's also presented in a community for, I don't know how many years, longer than I have been. And I started in those six. Apparently someone would know that it's seven years. And he generally hosts the... The last two years as hosted the Think You Can Code presentations at Ruby Company. If you haven't seen those, now I'm going to fit my own company. You can go to confricks.com and look at the talks that were there from previous years. They generally go better with this one. This one is not going up there. There's not even... This isn't even being recorded, thank god. I'm also not a Ruby core committer. And I don't maintain Ruby chips. And this is Rene who I've never met before in my life. You met her last night before the conference. So I can't really say anything. But if someone else would like to say something, that would be really awesome. Rene lives in Seattle and she was formerly a Blue Box group. And she works for herself, which she says is much, much better. The best thing about Rene is if you can get her to start laughing even a little, she's not going to stop until tomorrow. The other thing that Rene has done a tremendous amount of working in the community is an organization called Railsbridge. So she was actually down here in the last two days in a Rene workshop yesterday. You don't know, Railsbridge is an effort or a group that's designed to help get more women involved with software development, specifically the Ruby and Rails community. So the workshop had one requirement. You either had to be female or you had to accompany one to the workshop that we have. They had great attendance with that yesterday. So that gives you a brief overview of who they all are. They're also helping me probably time slot right now that snow has caused to be an issue. To be completely clear, none of us knew about this before last night when we were already drunk. So I apologize on behalf of all of my palamates except for Rene, if this is completely horrible. Rene. You're the one that told me not to do my slides. Yeah, that's true. I have a question. Unless I was paying attention, did you get a free beer to work? Yes. So the question was where the hell are Tamara and Randall and as far as I know, they're being slaggers filling in San Francisco right now. Ooh. That question was where the fuck? Precisely the question I asked Tamara last night to be clear. Can I be here? Yes. Randall bought me a lot of booze over the years. A lot of booze. I have nothing bad to say about Randall. I have nothing sober around that guy very often. I have a question for you. Whiskey, rocks, or meat? Rocks. Whatever you want. I have a question for you. I have a question for you. Whiskey, rocks, or meat? Rocks. Whatever you want. I like this. Neat personally, but it's up to you. I'm not a big fan of ice. It's straight out the bottle. It depends on if it's scotch or Irish whiskey, really. What are you going to say about Irish whiskey? This is one of the things America is doing better than Canadians. What are you going to say? Yes. So whatever. That's going to be the audience. No, but I think you just provided the segment a sheet. No. As I like to call it, rails forever. I hear it's coming out around the time that TexMate 3 comes out. So I've worked with Aaron Patterson for many years. And for about the last two years he's been working on rails. And when he started he had fewer gray hairs. But I think that is for your benefit because rails 4 will be amazing. He's also older now. I don't know about that. You get older. Can you stop the facts? Get in the way of the story. So working with Aaron and watching him do rails, there's a lot of baseballs and then he looks at his sausage and then he also plays this hat. That's what Aaron does, too. Does it in any order? Sometimes it goes rails, sausage, cat, sausage. He looks at his cat and then he goes and plays with his sausage. I haven't seen him actually play with the sausage yet. He's got that. He's got a case. It's a magical sausage with a record. What are your cases of sausage? That's more questions over here. What do you guys want to see in rails 4? Isn't that the question I just fucking asked? No. What do you guys want to see in rails 4? I want to see people using it. No, that's good. The work right now is all between this rails 2 app to a rails 3 app and it's become a bit of a pain in the ass in some cases. For the future, and I'm being completely serious here, I would like people to focus on good quality code losing your coupling a little bit so that when you have to change frameworks it's not a big, huge pain in the ass. And that's what I would like to see for rails 4. I know that's a pipe dream. Sorry, I killed that. Actually, I was about to say in the last question I haven't ridden any rails since like 2006. I've been just pure ruby back in stuff for the most part since then. Occasionally we'll maintain a rails app that's not working, but most of the time yeah, I'm just writing ruby. You're right, now I work for Living Social and we're building the funny thing to bring it back to tamer shit is we're actually moving towards a service-oriented architecture using ruby for the back-end services some of them are HTTP, some of them aren't. HTTP ones for the most part aren't rails. Anyway, serious answer. Sorry. I haven't done much rails either in the last two years but I'm mostly committing on our dock, ruby gems, rake, ruby, whatever. All the important stuff. All the stuff, all the back-end ecosystem stuff that everything else depends on. But also I use ruby to do all the random fun programming stuff I want to do as well, like I've got ruby script to control my fireplace. I use ruby to work on a little project called Puppet which is used by a lot of organizations that you probably heard of like New York Stock Exchange and for the record when their service went down that was not Puppet's fault. So Puppet is a configuration management tool that's managing possibly on the order of 100,000 or more machines around the world in hundreds of thousands of organizations, a lot of universities. It's as old as rails, it's as big as rails and it's used in far more real world situations. I don't want to get into an argument about that. It's almost as old as rails. It's also almost as good as the adventure. And it's almost as good as Chef. In the same way that it's almost as old as rails. Well, so I was going to say Chef Scripts, I've been using a lot to serve servers and contrast with Puppet. But I like a little better. They are both ruby, so it's all ruby with not rails. Also, I was going to say, has anybody played with the do we know chips that you can program on ruby? Yes. They're really cool. So for everyone, they're awesome. Yeah. Yeah, it's train completed. Exactly. That's stupid. You should feel stupid. New question. Repeat that. The animal is talking over you. I heard him. What are the things in ruby that people should know that they don't know? Ben string. Ben string. Call CC. Go watch the second so you think you can cut it. Ben string is not worth spending any mental energy on. I mean, for you. I don't mind, but for you it's not worth it. Sure, okay, fine. Serious questions or serious answers. I wish more people understood the difference between extend and include. I would like to see less abuse in errands. We've only got a few minutes. I would like for people to use better names for classes and modules. Base, instance methods and class methods. Yes, it's a module. It contains methods, asshole. Name it something smart. So, I want people to use fewer complicated mocking frameworks and just use DEF. Zero is good. Yes, DEF. You just use DEF. Maybe class.new. Yeah, anonymous classes. I wish more people did that. I did that recently. Better programming. Pretty cool. Tell your friends. Yes, over here. The question is if you could rename the splat operator what would you rename it to? What's wrong with splat? Blog. What would you call it? I would call it the thing that sometimes turns a raise into not a raise into a raise. Operator. Base argument. Eric, don't let it to the core. Back to Hope. As I'm sure we all have some time. Never mind. Eric, this is all you're going to do. Yeah. I would vlog close about this. You can get it. For everyone who has not read it, there was a lovely person who decided that Ruby should have man pages with him. I think this is a fantastic idea. More documentation is great. However, the way that he did it to package it with your gem was you would require this file in the library in your gem spec. And then it would go in monkey patch Ruby gems and throw files in there. Kind of like, well, no. The dependency being like, oh, rake can do for you. And then you just have a rake task depends on the package task depends on this. Put the stuff in the right spot, done. And then you can use it with whatever you want. Negative points for simplifying things. We all use rails. Yeah. But you're going to protect people from what you said on the show. You heard it. Come on. Sorry, when we do the code at Ruby comp, we make it really clear up front that you should not listen to anything we say. And I guess we failed to do that today. So sorry. We have an empty chair if you want it. Also, there's lots of shit in the gem spec that you shouldn't touch. And you don't know which one it is. And I can tell you, but you won't read it. Because I've been doing this way too long and I know people don't read it. So don't do that. Because more documentation is good. So don't read it. So I have a question that's a follow-up to the what do we wish people used more in Ruby? Which is, when do we wish people used less in Ruby? Did I give you some time? Nope. Ruby 1A. Ruby Enterprise Edition. Less. Less. Oh, metaprogramming. Class arrow, arrow self. I hate that shit. That drives me crazy. Rescue from Reception. Yeah, yeah. Trailing rescue nils. That's gross. So like, you know, when you call something and you don't want it to blow up, so you put rescue nil at the end, so it just returns nil instead of blowing up. Instead of actually telling you that you really had an exceptional case. Less to meter? No, less to meter. Less throwing away exceptions that are meaningful. The problem with that case is the problem with that case is that often you may have another exception that gets thrown for some other reason that you are swallowing all exceptions. When if you just rescue like IO error or whatever the error you are trying to rescue is, now you do not swallow exceptions. The big problem with that is that it breaks the chain of evidence. If you are going to figure out where something is wrong, rescue nil just stops that chain and then you are stuck in nowhere and you have no way to figure out where to go next to figure out what's wrong. The only way to figure it out is to remove the rescue nil. But if you need to do that, why is it there in this first place? Maybe you should just not cause errors that you expect to happen. Just don't ever do it. Sorry. We got into teaching there again. Anybody have a question that doesn't have a real answer? Yes. Because documentation is good and more is better. I have many, many invariant opinions on this. I have a question just sort of praying this a little bit. Why do you want know our doctor and know our eye? Why do you not want documentation? Because it's online. Should the documentation be generated ahead of time and should we put the gem that way? That's awesome if you have an internet connection which I almost never do. The problem that I have with know our eye is that people are installing stuff without documentation. And I don't have a problem with this on a per project, on a local basis for this project I don't want I just said project you are welcome. On this project I don't want documentation because I have it elsewhere at the system level. And that's okay. There's nothing wrong with that. That should be explicit. The default in RubyGems should be always to install documentation because I want you to have that as somebody who writes documentation from time to time. I want you to read it. Gem help end I think has how to go and turn it off by default. For reference. How many of you have ever actually used the documentation that is generated when you install a gem? So I have used it and it's still the wrong default. If you need it go generate. It's fine. The problem is that we are basically making everyone pay a tax for something that I use 0.5% of the time but everyone has to pay the tax all the time and nobody understands why. Most people have never used that documentation. The French case though. French case how? You're the 1% that uses that documentation that's installed. I'm the 1% that uses that documentation. I didn't count 1% of hands. If I'm the 1% that uses the documentation. I forgot what I was going to say. I'm not going to talk about documentation in general. The documentation that's installed but he just asked to have the hands on the option. So you can always generate that later, right? So the question is when you do gem install when a new user does gem install rails somebody who never used rails before and he types in pseudo gem install rails because that's what someone told him to do now we have to wait 5 minutes to get everything up and running we should try to make that amount of time we want. If the solution to that is to make our doc factor that's great but the fact of the matter is that today we are making people wait for extremely long amount of time to get up and running we should not. So when it says successfully install n gems you can use those gems you can hit control Z and be done so or if you don't want to just turn it off but I'm not going to change the default because I don't want to. I'm just telling you not to change the default or is that your personal feelings? Okay, we can look it out. My name has kittens Eric doesn't have any kittens I'm not a real puppy I'm not a puppy that's a dog You're not worthy of sympathy it's a dog dude I think the bottom line is that documentation is an advanced feature and advanced people know how to install it and the people who aren't the advanced users aren't going to use it anyway Let's talk about other things now Not documentation but using the documentation that Ruby gem Ruby gem is installed in the system Why don't we now talk about this We have a review of what's going on between the documentation How do you guys source the fire Yes, never mind I'm patching Looking at it right now The parser is amazing We'll get it Cool story Cool story bro How do you guys feel about turning the standard library into gems and also Steve, can you pronounce Javascript Javascript For you people because you put W's in it Javascript Where does your W's come from? Where did the story go bro? So What was the question again? Javascript So you pronounce it Javascript No, we say Javascript This one's going to blow your mind When I go into Vibachi in Seattle to hang out with these pundits You know what? That's a good fucking question actually I just want you to be consistent I'm all about consistency You can be wrong I heard that word by hearing it so that you are absolutely correct When I go to Vibachi I order a latte And some pasta No, I say a big one I think so The technical phrase isn't a big one Are you always your other question? No Standard library is a gem Great, great Yes, and I need to go if I'm not here about that So it's just The thing that's hard about that Is that the standard library Is actually pretty hard to pin The specific versions of Ruby So we could fix that But today the way that the standard library Happens to be developed is that Every time a feature changes in Ruby That necessitates changing the standard library They just go change it And then that thing that has been changed No longer works on older versions There shouldn't be any other gem which is Backwards So sometimes you get backward things Things like encodings Probably shouldn't be backwarded When it's dead, it's fine We've got another couple of months on the clock Whatever features get added in 2.0 May not be backwardable The point is that up until now The latest standard library has been developed With very locked specific versions and never have the gem Question, I've got one It's for Mr. Baker Who do you prefer, Terrence or Phillip? He doesn't sell part of the talk about shit Am I correct? No, they are not from Canada No, they are not from Canada No, they are not from Canada I don't think so I don't think so Are you excited about the news? That's right I do my best You're really not going to stop I just want to know I've got a I was just looking at the schedule And We've got Yaguda scheduled at 3.30 for the closing keynote for today We actually scheduled A fairly long break after this talk Would that be a Yaguda and Steve's game patch? I wanted to take this back Contrary to Ben It's all about not educating I've got a couple of questions I don't want to ask All I've got these guys up here For the people in the audience How many of you have actually contributed To an open source project? How many of you Maintain an open source project? Because one of the Dynamics that That I've seen And had some interaction With between Yaguda And Eric and Ryan And watching things Come together between Rails And Merb And some of the things that happened there There's a lot of passion that's required To generate software And a lot of effort and hours And people's lives that go into creating The open source work that we all Participate in and benefit from There are Consistently And you get this with any time And say work together Under your own property of formats So you get Lots of clashing But the point that Eric was making Earlier about Aaron Patterson Developing gray hairs is So Aaron came to His boss at the time While we were all working At AT&T Interactive And basically put together a proposal That said it had a pie graph That said I spend 8 hours a day Working for AT&T Interactive I spend 4 or 5 hours a day Working on open source software And I think there's 2 more slots And I don't remember exactly what they were One had to do a sleep and the other one was Life or something And then he proposed another graph That said what I would like this to be Is 12 hours a day of open source And that's Effectively what he got That's why his hair is going gray And that's exactly it So one of the things Is there's a ton of effort that goes into this stuff I generally For those of you who don't know me I don't write a lot of code And that's because I've written enough code In Ryan and Eric's presence To know that I'm better off hiring other people To get my code written So But the big piece One of the things that I've tried to do Is why I'm going from G5 Which is a smaller Vocally ran startup To AT&T Which is where I'm unemployed at the moment But I will more than likely be inside of AT&T In a not too distant future One of the reasons for that is because They represent a very large Pool of resources A.K. a very large pool of money A very large pool of technical resources And I Have my diatribe So if you want me to stop raise your hands I don't know I like this Okay, all right So one of the things that I believe in One of the things I'm trying to do By going back into AT&T Is open source software is not free And for every one of you To have released a project You've paid part of that cost And part of what we're Trying to do, part of what I'm trying To do at AT&T Interactive where I believe this is a true statement That Eric can correct me but Eric and Ryan now at this point Are pretty much doing Close to 100% of their time is also Out of open source software So we've now got Interactive basically employees On that team Three engineers working on open source projects Full time, they do not have other delivery responsibilities When Salesforce.com bought They then went out and hired Matt And they got other contributors No boo Who are also In hiring them Their job descriptions and what they were doing Did not change Actually I guess job Matt Has a new title but his effective role Did not change So we were making inroads with a lot of Corporations or some corporations To help fund open source Software so instead of paying Hundreds of thousands of dollars a year To license BEA or WebLogic Or one of the other large job frameworks We're shifting and trying to shift The corporate mentality to the point where Open source isn't free For small companies you end up letting Your guys work on or your people work On open source software with some portion Of their time and release things that they create To benefit your company That don't necessarily have Intellectual property value to your company But do facilitate Software development in general Let them release that stuff Because it benefits the community at large And the only way that the open source Community is going to continue To grow and continue to get Healthy and I think this applies to Software development in general Is by spreading that Attitude And part of it to Eric I think Ray said this also is Aaron is older now Brian does flow we all get older Eventually you may be an intern You may be an associate software engineer You may be a senior engineer Down the road you're going to end up Running your own company, owning your own company Being a director in a larger company Being a principal architect In a larger company Keep this in mind Keep the fact that open source Software is not free in mind Because otherwise There is a chance That the open source environment collapses And when it does We go back to a proprietary world Which in my opinion Is not a very pretty choice So part of the Software craftsmanship part of this movement Is to continue to push that Whether it's your own personal Contribution you do through your open source Projects at home or it's something You can do as part of your workforce Continue to push to make that happen And the part that I started on is There are going to be disagreements There was the Ruby gems And what I read is spine gems Which was actually slim gem Issue There's going to be some degree of drama In the community around some of these things Think about what you're saying Think about how you're saying it And remember that some of the people That you were arguing with Do put a lot of time into this You put a lot of time into this A lot of the times we have to figure out How to just get past those pieces Some of them is accepting Some of them you don't want to accept Because it's wrong and that's why We fork things You create additional versions And fragmentation in my opinion Is not horribly bad Because generally what happens is In the case of Rels and Merv They eventually came back together But they did that because there was Some Actual hard long thought That went into What happens if we continue down A major fragmented road with those two frameworks So I'm going to Give the mic to Yehuda here for a minute But anyway, the big piece is Continue doing what you're doing With open source, continue trying to make yourself Better, continue trying to make those around you Better It's not utopian It serves your own best interest I'm not a big fan of Work doing everything for others I do a lot of this stuff for my own benefit So with that I'll give you I just kind of want to reiterate What you were saying In general open source Software is harder than it looks And in general there are actual design Differences that Are that cause of this experience And I think in general What I usually try to do is try to understand What there's either assumptions That exist and trying to understand those It's very easy to get up and say This is crazy, these people are doing Retarded things, I think That's easy, and I think In general people spend Some thousands of hours of time writing software Are usually not doing retarded things They may have different values than you For instance I have very different values From the node community But I understand what their values are And identifying why my values Are different, allows me to more easily Just be like, we disagree I think in general when there are fights That's basically why Mervin Rails Worked, is that There was a fight, we sat down, we said What are the actual differences, it turned out That the differences in values were mostly Prioritization questions And adding a bunch more resources Basically solved the prioritization problem That's basically the core thing that happened there I think it's better To figure out what the values What the axioms that people have are Just say like this person So Mervin Rails Mervin Rails was a mistake Wow Do you want to talk about Mervin Rails So it wasn't I think The thing About Mervin is that We had very low resources We had specific goals that we wanted to achieve I think Matt's point about it Was about performance And in fact, there have definitely been Performance regressions, especially around active record I think people don't usually Do benchmarks of just action back Which actually has pretty good Performance characteristics When you throw an active record There were like pretty crazy regressions But in the larger Overall question of like People who write plugins should have A more solid grant system For me that was the big thing They should have a more solid grant stand-up They shouldn't be on quicksand Which was the case in Rails 2 I think the Rails presentation I've been waiting for that for years I think we got to the point Where The API that plugins use Is actually decently well defined now For most cases It's obviously not perfect But the fact about it is that When people upgrade to Rails 3.2 Usually active record plugins are not great I think so You can correct me if I'm wrong But my feeling at this point is that active record Has gotten most of the interesting features That were in that mapper that I cared about Yeah, it has gotten a lot Of the features I don't know if we're necessarily Would benefit from our murder right now We're actually looking at Doing some stuff, actually a true data mapper Where the objects Are actually just normal objects And your mapper is separate Oh yes So the way Of emerging general is if The disagreements are resource constraints Then you can fix it with the merge That basically what happened with Rails That Rails was like We would love to add more modularity But basically we're all a bunch of volunteers We have no full time and the engineer was like Seems good, we'll put two full time people on it Suddenly there was no more resource constraint problem About making things more modular That meant that the actual points of contention Are really interesting This is a little bit I want to buy Dan a beer for that Colton can you get Dan a beer Surprise sake Do you get yourself a beer Get Colton a beer If you wouldn't mind Alright, thank you Oh if you have something unrelated Do you mind if I just pop in real quick first Alright, so how many people actually get Say to do open source maybe More than 20% of the time How many would like to Why haven't you asked your boss if you can Why haven't you just done it Yeah seriously just do it What's stopping you Seriously somebody tell me what's stopping you A lot of employees That are working on projects Are stuck in a corporate environment That don't have the luxury Of contributing what they're Producing to open source But for me for instance I can contribute to stuff that I produce And work and get paid for And then make it open source Not a lot of people have the luxury A lot of employers want to lock down Everything that their employees Produce It's a hot job market I've worked in that environment And I've asked my boss Anything that creates the intellectual property Of my employer So is mine Yeah but I mean The point of making is that there's no reason Why that can't also be open source I release a ton of code that's copyright Living social A lot of the people who are Contributing to open source Are getting paid to do so The question is the legal environment So are you guys using open source Projects in your Not especially but when I write stuff You're using open source Projects I'm waiting for a lot of us Who are writing applications A lot of us are working in rail A lot of the code is not so interesting For some of the code that is interesting At least for me lately It's pretty damn proprietary Clearly does not want to get it out So then why is this stuff That's not interesting, not interesting It's kind of boilerplate Can't quite be automated There's almost two or three clubs I mean there's inherited rules But it's not always Yes So I got to Where I am today by Doing a lot of open source stuff And sometimes it was just like We're working on this thing It's kind of interesting So I'm just going to It's generic enough that everybody else should be able to do this How many people have heard of AR Mailer So I wrote that And I extracted out of A 43 things code base Because I was like This is something that we needed Because rails didn't provide Our good enough way to send emails So we'll just put it in the database And send it from the database And then it can be completely decoupled Page won't slow down and I didn't ask Any permission, I just did it Nobody cared, but I was Working with a company that was small And didn't really care what I did But I think there's a lot of it Especially tiny things You just do it And don't ask permission And you know Yeah, exactly If you get fired There's probably a good sign That it's not a good place to work for Well, yeah Who has an employer Right now That will not let you open source shit That doesn't matter to your product This is value to you But it's useful to the community It usually has nothing to do with that It usually has to do with the fact that The stuff you work on at work time Is owned by your employer There's a bureaucracy about what you have to find Someone who will give you permission to do it So in a small company You can get away with it But like if you work for a huge company It's even less I didn't ask I just asked to work on open source at AT&T So now we are basically doing I agree with you Completely Even if you don't care about whether it's theft What you're doing is you are actually Making the choice to license something on it You are basically giving up the copyright of your employer And I personally I'm very fearful of a day where That nuclear bomb explodes I feel like that open source is full of that And I'm scared of it I agree completely That that's not okay But that should not stop anybody from asking permission Like ask your manager, have your manager keep Just push on until you get permission And you will If you can't sell it to your management That it's not valuable to the company But most of the time for this generic stuff That costs a lot of money to maintain That other people can help you maintain That's beneficial to the company anyways To be able to sell it to the CEO For example, it's valuable to the company I suspect that we're probably on a calling agreement That we would like to be able to release things Into the open source that we do at work And you guys are right that there are policies In place that often prevent you from doing that Work in those environments But these guys are right that We as people in this market In the Ruby job market as sellers Of our services in a very good place Because it's such a hot market Because it's such a seller's market We're in a stronger negotiating position We can make changes to those policies Far more effectively today than we could Say five or ten years ago And those policies are not going to change Or it's changing them I don't think subverting them is correct But if we're not trying to change them You can't complain that they're not changing So we're going to company in Basically Vancouver called First Bay Probably I haven't heard of because we don't like Canadians And so we move money between We do a lot of the services that pay help us But between businesses And so one of the things that happened recently A few years ago I guess We realized before I joined the team That a lot of what we do is crud But it's just the basic Let's list some data, let's edit the data So on and so forth And so they created a project called Active Admin The entire web interface of our application Is Active Admin That gives us, the rest of us The ability to focus on what we do Which is our core competency Which is actually going to be large sums of money Around every single night And so it wasn't a hard sell to the CEO Because we've gotten bug fixes From the community Help maintaining it from the community We've gotten improvements And we've got lots of other people using this thing Especially if you work in a small company That has a small user base If you have a small piece of your code And you have a hundred users or even a thousand users And you have a piece of code And a thousand users at most are using that If you have a thousand users But if you release it as open source Unlimited number of users can use that piece of code It can exercise it, they can find bugs They can add improvements, they can help you If there's any reason why you can't sell this to a CEO There should be no reason why In a company that's hiring reputation Absolutely When we are looking at people We look at new folks Based on their open source contributions as well Oh sorry The question that Steve was People are valuing By hiring new people they're valuing The contributions to the community So if the people that I work there Have a lot of work with that person That's the other side of it If somebody is active in the open source community People that want to work there It's a recruiting budget I worked at ThoughtWorks for a little while That sucked But Martin Fowler is the recruiting budget That's what I'm paid out of Exactly So it's Ryan And Eric So the one breakdown that I see with this though Is that you're assuming that your CEO Or in my case people hire up Like Congress voting on SOPA They have no idea what they're talking about You should be able to explain this to them Open source or not rocket surgery It is to them If you have to talk to a lawyer Who's head is stuck up a certain orifice It makes it difficult The assembly line and the reasonable part You can explain it If they are reasonably intelligent people You can get through to them It may take some time, you may have to find new ways to frame it But it's possible I've seen it done a million times I don't get serious I don't get serious Well so I've gone through this A couple of times now When I started at AT&T Interactive Which is where Ryan and Eric and Aaron worked Is a wholly owned subsidiary of AT&T And as such There is a Hand-waving agreement Between a guy who runs The division that Interactive is part of So AT&T Interactive is the only company Where the CEO reports to the CEO Who reports to the CEO Who reports to the CEO So there's literally four layers Of chief executive officers So I know You're talking about new bureaucracy But Interactive Had this hand-waving agreement That was basically the guy at the head of the division Had an agreement with the CTO At AT&T that said Interactive can break a lot of rules Because you're not on a trusted telecom network We're gonna let you do that Now Because I left Interactive And came to work for G5 And Chris Kragels over here in the corner Who is a CTO of G5 One of the things that was a real Pitch for me to go to G5 Was when they'd gone and did the Funding And brought in the venture money Chris went through and looked at the entire Code base and basically said All of the code that's required to run Our application 40% of it's coming from open source The other 60% Or I could be wrong on the numbers The other 60% is stuff that we've Developed in-house Because of that If you want to attract the right talent Of the company, we have to have Some commitment to supporting The open source effort Now if you're in an organization Where the CEO barely Knows that your department exists Or if you're in an entertainment company In LA where IT Is a cost center It's not an election property rights Then the battle is going to be hard The battle is going to be, may very well be impossible And to your point, yeah We all have families Most of us do not Most of us work and we do this because we're passionate about it I mean the reason you're here How many people are here paid for this out of their own pocket? Okay So you've still got a big chunk in this room Or at this conference Because you care enough to spend the money And to spend your time to come down here How many people here are on vacation right now? Okay, so you've got a little bit of cooperation From your employers So it is a struggle The other piece I was talking about though I have left AT&T interactive Because my boss went from being the CTO Interactive to taking a VP position At AT&T corporate And I was supposed to move with him And my teams were supposed to move with us And if that transition Had gone through What Ryan and Eric and Aaron do Is part of their daily job Was a terminable offense Inside of AT&T corporate Because AT&T Had Policies within the What they call the CTO organization Policies that said You can Use open source software If it's on this white list And you can fill out exception paperwork To get onto the white list And we figured out how to manipulate the system So that you quit putting down version numbers You only put major version numbers You didn't have to go back through the process every time But That was the idea of open source You could contribute a patch Back to an open source project Or legal review The code Legal review the code There was no Concept Within that part of the organization Of releasing an open source project It hadn't occurred to them And it wasn't in their Mindset to take a project And set it loose in a while To give up an intellectual property Right Right This is the other fun part If you don't know GraphMis is released by AT&T GraphMis is released by AT&T Labs So there are Lots of segments Within the larger AT&T organization Who managed to get Exceptions In how this behavior happens And the team that I'm going to be Rejoining If you didn't see the announcement AT&T officially joined the open stack community And is now a partner as part of I'm not sure what the terminology is I don't research it, but they Have actually put the AT&T logo Which the folks in the branding department Literally look at If our logo shows up on your website It's worth this much money to you They do not call it the Death Star We have graphics of the Death Star Superimposed on the logo And it's awesome But Anyway, so Absolute issues with doing this Within large companies Within small companies where The value of what you're doing Is not always there Or is not always perceived Part of it And part of it is if you can't Change your job That's not an easy answer And it's not always an easy answer And sometimes it's not the right answer But I mean I ended up with the original Apple 1 When he went to HP with his design And basically said Do you guys want this? If not, can I have permission? If you're not going to do anything with it Can I have the permission to release it Or go do my own thing with it And I think that's the main thing Is if you've got something That you think is going to be valuable to the community At least have that discussion Try to have that discussion if you can Which is This represents no intellectual property Value to the company If you want to do something more with it And you want to help put resources behind it Great, it's valuable It's valuable to me I'm passionate about it I care about it And if you don't want to own it And help Feed it and nourish it Then let me let it go Let me put it into the community Don't just kill it Some people aren't going to get that They're going to care They're going to tell you to go back to your cube And leave them alone And part of that comes back to That's when you should really be looking Whether it's Timmy Crawford's idea Of just going to work for yourself Or looking for another employer There are a lot of people Hiring There are a lot of caveats on hire I had the discussion with When Eric said we're trying to turn the hiring We had a discussion the other day About whether or not there was any value In moving them from interactive to AT&T We're not done with that discussion But right now they're in a better place Where they're being paid Out of an engineering, marketing, recruiting budget If they move to my team I need them to deliver stuff That is proprietary and can't be open source So there would be some loss Of the amount of time they could spend on open source So right now We'll That's more or less on the table at the moment There's a lot to this process And I'm probably running on that Okay, so we've got Let's take a 15 minute break I gave one other Sure I need to absolutely review To allow you to So an alternative that could be To allow five hours a week To work on open source projects Yeah, I mean the point You just have to ask If it's important to you, ask And if they say no, find a new job But it's not like quit immediately But start looking for a job that can fulfill Start attending conferences Start talking to Our user groups, local groups Talk to other people There are lots and lots of people in the community There are lots of people in this room Who are looking for people who give a rat's ass About what you do with your software It's a celebrity, you'll be in 15 minutes Yes Alright, let's keep your hands up For just a minute The question was who's in companies that are hiring Oh, yeah Okay, now for the next question is If you are a hiring manager Who is hiring, keep your hands up Okay, look around the room If you are not happy with where you're at There are faces here Who are responsible for Bringing new people onto teams Who probably have A better understanding of open source Than your current employer You know, if you're in it Alright, well Thank you all for your participation We're going to take the 15 minute break And then we're going to come back And you're just going to give us our cue