 I've never heard of this jet, so I will keep in a winging half of it, but I did make slides. That should make up for a little bit. So when I originally did this, what I wanted to do was talk about the Ruby community and why I feel so strongly about it and why I feel it's awesome. And actually it's a little more than just the Ruby community. It's kind of like a hybrid community in the tech world where it's kind of like Ruby and all these other little technologies like Redis and other things like that. But my focus for this jet is on Ruby since we're at West Virginia. So there's a reason that Ruby is strongly associated with web development. I mean everybody get bumped out, it's just web development. Well, it's not actually what you think. In my opinion, this little fact is more subtle and profound than the obvious. So what you might think of as web development, I actually think of web development as something completely different. So what's going to follow is a subtle justification and my plea to all of you to become more involved in our wonderful Ruby community. So what I'm going to do next is I'm going to talk about the benefits that we can find with the Ruby community. These are all categories of benefits that I've personally seen over the last several years. And I'm going to go and briefly discuss each one of these. We're going to go through a little bit of exploration on that. So the first one we'll start at the top is open source projects. Contributing to open source projects leads to personal growth. It leads to good opportunities. And more importantly, it leads to wonderful friendships, I mean awesome friendships. And for us, open source projects allow us an outlet. Creating with our minds is mostly why we get into the work we do. Sometimes your mother forces you into it because, alright, we're spending more money. But in reality, we do it because we love to create awesome software. So along with that, one of my favorite quotes is a quote from Water Blocky Stuff. And what he said was, when you don't create things, you become defined by your tastes rather than your ability. Think about that. Your tastes, what do they do? They only narrow and exclude people. So create. Why Lucky Stiff? Who we definitely missed. The next benefit is opportunities. Working on open source projects typically leads to various opportunities. These opportunities can be wild and wonderful. As a personal example from my book, I used to work on an open source project called Berm. It was a web development framework. And I had a lot of fun with it. I was working with an awesome team. And that working with that team led me to a very great opportunity to join Engineer in application support early on. And this was because I had a working relationship on the open source project of Berm with Ezra. Another example of opportunity that Dr. Nick Williams, who I now work for at Engineer again, is early on, he related the story of the beginning of Rails itself. DHH saw Matt speak about Ruby at a conference. He absolutely loved what he saw. And he realized that he could use it to cheat up. And he proceeded to use Ruby at Rails to create many, many opportunities for himself and others. Following this awesome principle, which we don't know. Thanks, Ed. Back down to reality a little bit. Most of the tasks we do are for humans. For example, tax calculation is counting numbers so the government can pull money from my wallet. But government persists for humans. That's a quote by Matt. So in reality, we're doing all these practical applications of the software for opportunities usually related to business. But they don't stop there. Other items that are like opportunities is education and mentorship. Education itself leads to personal growth. It leads to happenings. It leads to, again, opportunities, as I was just talking about. There are many means of obtaining education in our community, including, but not limited to, training workshops, documentation, webinars, blog posts, and if any of you have ever met Sarah Allen and Sarah May, they've run this Rails Mentors program off of their Rails Bridge workshop, which is an outreach to teach programming and technology to the broader world. And it is extremely respectful. They do a wonderful job and it's something for everybody to help out with if they can. I highly recommend it. Mentorships themselves, they form wonderful relationships. These relationships often lead to sometimes opportunities, sure, but more importantly, they result in friendships. I have several outstanding friendships for mentoring. For example, last year I participated in the Ruby Summer of Code Mentorship program. And in this program, I was paired up with this founder of Brilliant, Aussie named Darcy Legak. He's from Perth, Australia. He's Twitter is, uh, Su-Suttle? S-U-G-D-O. And we worked together closely for several months. We were on a complete opposite time schedule, but it was a wonderful experience. And this day, I am still very good friends with him. I talk to him on a regular basis, and I couldn't be happier. Another great friendship that I felt through mentoring is a good friend named Joshua Lipin, or he was a business development guy who wrote his business. He did all his business online, and it was done in .NET. He saw Ruby, he liked the language, he wanted to migrate from .NET to Ruby, and I mentored him through RailsMentors.org on converting to Ruby on Rails. And this led to another outstanding friendship where we had many learning experiences completely non-technical related as well. So I cannot stress enough that mentorship is a wonderful thing. If you're new to technology, find a mentor. If you're an old, uh, old technology student or whatever, find somebody to mentor. Not only will it help the person you're mentoring, but it will help yourself a lot in more ways than just gaining technical knowledge. One of the things that, um, kind of made me a little emotional was reading his final, Darcy's final blog post from the Ruby Summer Code Program. And what he said on there was a lot of things, but I liked this one for sure. He said, I cannot stress enough how much of an honor it has been to work with Wayne. Not only has he been very patient with me as I learned different things, but he's also taught me a hella, a lot of the hella, little knowledge. I also find it a little bit ironic that he signed up for the Ruby Summer Code Mentorship Program, and he spent the entire time working in bash shell starting with me. I cannot stress enough, uh, as Zed said just a little bit earlier, it's not just that we're in the Ruby community, it's not that Ruby is the only language. Ruby is a wonderful language, beautiful language, it's expressive, it just feels good, but it's not the only tool out there, it's not the only language out there. If you expand your set of skills, if you expand your knowledge of languages, go and embrace them, learn different languages. Each one of them has their own strong points. Each one of them will allow you to handle situations as they arrive in your careers, in your life, and just solve them in unique and wonderful ways, and more efficiently than if you only knew one language. Go out there and do that. So moving on from mentorship and education, social interaction and communication. This one's huge, okay? We live in a world where the means and methods of communication are many and varied. I communicate personally, uh, just all the time, constantly. Uh, sometimes I think I do it when I sleep, too, because I wake up realizing that I had said something I didn't know or said anything. Um, anyways, we do this, how do we do this? We do this over IRC. We do this Twitter, we do IM, Skype, Mail and List, Smoke Signals. We do it all, right? Another very important one is what we're all doing right now. We're at a conference, right? Social interaction at conferences. Make sure, while you're here this next couple of days, meet as many people as you can. Interact with them. Everyone has their own personal stories, their own experiences. I just cannot relate enough. Every time I meet somebody else from our community, I just, I'm blown away, right? The myriad of background experiences and wonderful things that I've learned from them. So meet people next to you. Meet people at breaks. Go to lunch with them. Talk. Explore. The means to which we communicate, they evolve over time. How, you know, so we got the Twitter, the IM, everything, right? Everything, the communication means evolved. But the fundamentals of how we communicate, they don't change. As Matt said in one of the quotes, they read the quote before I talk about this. Imagine you are writing a email. You're in front of a computer. You are operating a computer, plugging a mouse, typing on a keyboard, with the message itself. The message will be sent to a human over the internet. So you're working before the computer, but you're working with a human behind the computer. So no matter how the communication methods or means change, there's always a human at the other end of it. Keep that in mind. We lose things like the emotional connection, the facial expressions, the hand gestures. Look at me, I'm doing it. Right? We lose all that through the emails. And sometimes emails, you know, you send them, you're being very serious, very straightforward, very honest, and they come across as harsh, but there's still a human on the other end. Keep that in mind. So this brings us to the next benefit of being in the community, and that is personal growth, satisfaction, and happiness. When you refrain from pet jokes. Personal growth, satisfaction, and happiness, yes. They develop through friendships. Okay? These friendships are formed through the social interaction communications that we just discussed. Ruby itself is a wonderful facilitating agent for these things. Back to Matt's again. As you can tell, I love quoting this guy. He's just this adorable, cute little guy, you know. Anyways. You want to enjoy life, don't you? Your job... If you get your job done quickly and your job is fun, that's good, isn't it? Or you're smoking something pretty heavy, that's the purpose of life, your life is better because of it. Matt's. So he is all about Ruby being for enjoyment of programming, the fun of programming. Don't get lost in the mundane, enjoy what you're doing, and that really has a lot to say for personal and satisfaction and happiness. The next benefit is relationships and friendships. A few years ago, actually it couldn't be more than that, I don't remember anymore, I volunteered to take over the mono project together with a group of people from a few years ago. This led to friendships, wonderful friendships with a couple of guys, Kurt Haynes and Louise Levena, and I've been friends with them till today, constantly engaging with them. So again, working on the open source projects, being in the community, this builds friendships and relationships that are just wonderful. Shortly after that, I began getting heavily involved into the Merb Project, as I said earlier. This project itself also led to several great friendships with people like Ezra, Huda Ketz, Matt Mamedi, and several others. And then more recently, I became involved in, I created this project called RBM, RBM Manager, but I shared it with the community, openly because my friend Jamie Mamedi was like, very insistent that I do so. I handed him across to my mind to do so, and he's like, you got to share this, it's great. But, anyways, from this project at home, I've helped just thousands of people in the IRC channel, and a lot of them just kind of hang around, and then I get to talking with them, and I've started spiking with them, and I just, more and more friendships just keep arising out of these things. So, all in all, contributing to open source, being in the community, it's all about the warm and pleasant. All about the warm and pleasant. And that is Ruby's main difference from other languages. Matt's tried to emphasize, he did emphasize his feeling, in particular, how he felt using the language. And a lot of people lose sight of that, and that just makes me sad. Don't lose sight of the feeling, the warm and fuzzy. So, going back and recapping these are the categories that we've just gone over. All right? We're going to look at all these benefits we discussed. If we draw lines between each of these categories, as I've drawn them here in the circle, showing how they're all interconnected with each other. Some can be beautiful and gorgeous. And we can put on, as Jim Wyatt says, rose colored glasses. All of these are related to each other, they all interconnect. And what do you see? Well, do you see a Ruby, right? So, specifically all these benefits we've discussed, it's a neat web, right? They're interconnected in a web. A web that forms a beautiful faceted Ruby. So, when I'm talking about web development, I'm talking about community development, I'm talking about Ruby development. This kind of web, not HTTP stuff. So, if we focus, let's focus now on that the web itself. This, where's this composure? What is this web that's many faceted Ruby composed of? It's the essence of all of those benefits in the community that we're building up to. What is the composition of this? It may seem obvious, but when I say this, it seems obvious, but if you stop thinking about it, the fabric of our community is the rubies themselves. I just listed several off the top of my head. And I described the community at Mountain RV last year as a unique and awesome community. The reason I chose this description is due to the people in the community. That's why I described the that. Rubyists, I find are unique and awesome people. Every individual shares wonderful talent, experiences, knowledge. This is why I encourage you to go out and just start interacting with each other. Go out and talk to somebody you don't know, find out your story, relate your story. Only good comes out. Examples are everywhere. For example, we have Dr. Nick Williams, the comedic genius, the energy, the intentions, the good will. He's just amazing. Every time I talk with him, I energize. I want to just jump up out of my chair and go and do something good and try to help people. It's inspiring. It's great. Love it. That's why I'm working for him now. And then we have, at the very top there, we have wonderful stories, anecdotes, and this is just spun by our very young ukulele playing Jim Ware, right? So, yeah. And, um, of course, and then right next to that is Erickon Patterson, right? He's his creative expression. He conveys the concept. If any of you have ever seen him present at a conference, you know exactly what we're talking about. If you haven't, see it. If you're online, watch the videos. They're just enjoyable. And he does all this, this conveyance, this miraculous talks by wearing, just while he's like, where are you, spandex in a week? He looks like Captain America in spandex or simply a gravy key. I can't remember something. So, um, you also have why and mass. They're creative genius. They're kindness and generosity. We look at why he used to work on that project shoes. His entire goal was to help children and young, young kids learn programming. You can be able to get excited about programming because they see things happen in his shoes framework. It was wonderful. Max, Ruby. And then you also have a determination, perseverance, sheer brilliance of people like Evan Phoenix and Brian Ford. They work on the Rubidius project. And we have a look at Rubidius do something. Recently, Brian Ford published on the Rubidius site a blog entitled Why Using Rubidius. And he gave a list of personas and for each persona he detailed why that person, that persona should look into using Rubidius. I highly recommend you read every one of them. They're fascinating. They're interesting. It really sheds a lot of light on this subject. It's beyond the technical. It's also non-technical. So definitely go and check that out. Now, obviously, these are all just the ones at the top of my head. There's thousands of them. There's possibly more of this one. I'd go on and on on every one of these people here is more. But I'm not going to do that if I get bored and all sorts of things start to ruin. So I think at this point, to me at least, it's clear that we need to focus on growing our unique awesome community. Growing a community will increase all of the benefit categories that we were discussing earlier. Including the density right here of this picture. Awesome individuals that we have that make up the fabric of our community. This is just because I can fit this on the screen. All of you are on the screen as well. So, in reality, what have we learned? Well, we've learned that our community is a Ruby shaped web. So web development should be actually about community development and that we need to grow the community. Well, unfortunately, I can't really read this but right outside the library walking in, I saw this so I took a picture of it. I guess I should have tried to light it up. This is a quote on the side of the stone right outside. And what it says, it says, culture is a pyramid to which each of us brings the stone by Wallace Stenger. I believe that's a good answer. So, building on the foundation of Mr. Stenger, Ruby is a community to which each of us brings a block. And we hear it. So, anyway, so how do we grow our unique and awesome community besides bringing your blocks? Every concept that exists in our community has a certain friction to understanding which half the hamper's adoption of the concepts. So what are such judgments to that afflict people interested in becoming Rubyists and entering our community? We have difficult workflows. We really did. We have difficult to acknowledge our block as documentation and young doc as documentation is pretty good at doing it. You want to see a show? Slow time ramping up to productivity. Is programming Ruby very productive? Hell yes. Once you understand what you're doing. Ramp it up. Takes some getting there. Mean, irritable and ignorant people. They're there. They're there. So I can't be somehow measured to quantify all of these. These things that I just said, the difficult workflows, the difficult to acquire knowledge, slow time productivity of me here and what I hear from people. I believe that as an exercise to the reader. But how do we heal these wounds? In order to address difficult workflows, what do we do? Build schools. That's what we love to do is work good. For example, if I were to address the workflow issue that I had, because I needed all of my environments to be the same, I needed to be able to easily switch between projects without having pain and doing so. I remember, well this project uses this and I have these jams and pictures of there and all this stuff. No. Tools. So not once, changing what it needs to change and the tooling. Build tools to handle the workflows. Similarly, recently, Dr. Nick got me into being interested in helping people in the Windows community come into the Google community as well. And he gave me a challenge. Go and try to get a whole world browser up and running on Windows. Holy shit, that took me two hours. I don't know what the hell I'm doing. I know all about jams. How long does it need to be next? Two hours. I haven't used Windows in my ten years. Still, I'm not an idiot. Two hours. This is absolutely ridiculous. So, what I did is I spent two weeks, heads down, I had a lot of help from my friend that I mentioned from Monroe, Louis Slater. And I created Rails Installer. Now, somebody can download Rails Installer, do the wizard installer, and be up and playing with Rails in Ruby. And that's still late, all just within minutes. Minimal pain. So, we create the tools to address the workflows. We're still not done yet. We still have workflow issues. Let's go out and do that. How do we address difficult to acquire knowledge? We write concise, clear, and plentiful documentation and it really would not hurt if we inter-dejected comedy and good chuckles in our documentation. And let me give you guys two takeaways of examples of this. If you have not yet, go and read the 0MQ manual. I had tears I was laughing so hard. It was just sheer brilliance. A second shiny example of good documentation is the Mongo 2 manual. I highly recommend you give that a spin as well. It's not generated documentation from the comments and codes. It's well-thought-out written documentation that tells the story from beginning to end so that users, readers, they can follow the story. Okay? Be a shepherd, better be a flock. Cussing is a inferior sort of humor. Was that? I'm all for comedy but I think cussing is a inferior form of humor. I will agree with that and we can do humor without cussing completely. I am with you on that. I apologize for squirming. I did not need to have got humor. He's not listening at that point. See me after I'll shine my shoes. So, I'm almost about to bear with me. We're at the end of my talk. To minimize time to personal productivity, we can set up mentorships, training workshops, webinars, conferences. We do these. We need to keep doing these. This also assists with knowledge acquisition, special mentorships, get involved in Rails mentors. It's just a wonderful program. Ruby Summer Code, wonderful. I hope they do it again. And then to minimize time to personal productivity, it's like I said, mentorships. How about dealing with irritable people? That's always a fun one. And I'm actually kind of sad that he just stepped out. This starts with each of us. I'm not saying he's irritable. Give me a second. We must accept it as a personal growth challenge. Act as kind, patient, and persistent people to an extreme. I tried to set an example of this NIRC in my channel if you've ever kind of held out and watched. Hopefully, I'm portraying that. I really tried hard. Help out wherever, however you can. Believe it or not, that lesson I learned several years ago from this guy walking around here. This guy went out his way to help me. I was blue. I was green. I had no clue what I was doing or anything. My interactions with Zeb were just wonderful. He just went out of his way to help. I went to Peru. This guy was called Wormy Fringe. Later on, he just sat there and told me these awesome things that I could do that I didn't know I could do with shell stripping. It was great. Out of the blue, just helped. Do that. So, now we come to the nightcap. Now we come to my original overall point. I want you guys to pay attention here. This is my personal challenge to each of you. I want you to go forth join if you're not already in or join more open source projects contribute your lots as we said earlier whether it is simply writing documentation swear word free helping people on mail-in lists jump on IRC, help on IRC when you can go to conferences and speak about the projects or even help. Notice all these things I said that doesn't even include development. You don't have the technical traps to develop on it? No problem. You can help in so many ways. Doing those kind of things allows developers to actually develop. You get more better. Right? So, if you have the technical traps, of course, assist with development. These are all things you can do. Remember? So, one thing I used to teach at community college and the University of Buffalo in the biggest thing I took away from that was that you don't actually learn something until you teach it yourself. Okay? Help yourself by helping others. You will learn your own material far better. You maximize your learning when you go and you teach others. Do that. Teach. Mentor. Maths created the Ruby for Programmer Happiness. To me, that is a shining example of a good user experience. That is a shining example of helping others the way to help people. Share Ruby. Share love. Go forth. Become missionaries for the greater tech community at large. Go to phpcommunities.net communities. Just go out. They all have awesome experience. They have awesome things to relate. Maybe you can have them bring their experience back to our community with them. Different ways of solving problems. Different mindset. Basically, that whole pay-forward thing. Do that. Find unique and interesting people to share Ruby with. Share with them. Invite them into our wonderful community. Invite them to become a Rubyist. And remember that mimicking the true spirit of Ruby is being good, kind-hearted people, helping out with everybody. Okay? It's not about money. It's not about anything. So bring them in. Welcome them. Be happy all day. Because you give yourself. So, with that, I'm done. We have a time for each part. Any questions? Willing later now. Kirk Haynes has taught me a lot. I've learned a lot from you to Katz. My mentor has been random people all over the internet. I haven't had any of one. This was my mentor. I was learning this. And this person took time out of their day and taught me so much about it. And that's the experience that I want to try to property to everyone. Do you feel you have to put RBM users everywhere? Can I buy you a drink? Sure. I don't actually do it on my own. But we should all figure it out. I don't need to. Do you know what? Math? You know, I love actually higher mathematics, especially in model theory, which hates me. And real analysis is a very challenging stuff. And I suppose that that is a form of math that's called math. That might count. In 2002 I had brain surgery because my brain was squishing down my spinal column. That was fun stuff, right? So I want to blame that on why I am a little more bigger than that. You know, do you have a question? I'm a genius. Okay. Now this is the same as math. What our question is is how do I manage my time the balance between everything I do because I help people on RCA to respond to the emails. I was bringing Skype to people during the day to a remote pair in order to help them through their RVM setup or get them past an issue with their own shell or whatever. And I have a day job and I also have a consulting company which I have some clients for which you also mentioned. And I have four wonderful children and a wife. How do I manage it all? Very carefully. So I usually check my email and do a few things or then I get the kids ready to school and they ship them off. And then I spend the day working on my day job and then at the same time I'm actually lucky. I can balance some of this because working at engineering now it's not officially my job to work on RCA invention. But they have no problem with me helping out in the channel or whatever on RCA during the work. So I do that all day long for my RVM and do my work. And then I spend three hours from five to eight every evening with my family and then once I get the kids to bed I go back, sit down and I do their work on open source for my consulting work depending on which happens to be what I'm doing at that point. And this schedule actually, unfortunately tends to carry on with the kids as well. So I'll spend like half the day on the weekends with my family and then kind of work on RVM the rest of the time or whatever else. Any other questions? Remember what I said find somebody, introduce yourselves help them be friendly do it now.