 My name is Jack Watson-Hamblin. I run the motion-in-motion screencasts. And I'm going to talk to you about how to make the Ruby motion community better and profit. It's a big focus of mine, because I absolutely love the Ruby motion community. But before I actually start, I'm going to ask you guys to do an applause, but don't start yet. Because I want to ask, don't make me that guy that asked you to do it again, because it wasn't good enough. So I want you guys to give a big applause for hip-bite, infrared, pixay, terrible labs, RubyMind, and all of the speakers that have taken their time to sort this out, get this going. And if you guys can stand up and give a huge, huge applause for them all, it would be awesome. Awesome. So how to make the Ruby motion community better and profit? Get involved. The end. That's a dramatic effect. Anyway, so there's some firsts for me coming to this conference. It's the first time I've been overseas. So that was massive. Jet lag has been horrible. This is actually my first real conference talk. I do a lot of teaching and meetups and things like that. But this is my first speaking, especially in front of this many people. And this is also the first one I've had 144 slides in one talk. You'll find out why later in the talk that I ended up like that. But I couldn't work out how to condense them all. Maybe you might have heard the saying, what is it? I didn't have time to write a short letter. So I wrote you a long run. So I'm going to have to try and get through all the slides in average of 12.5 seconds. But number five is it's also the first time I screamed when I turned on a light. This was the heat light in my bathroom. And like Will said, it's like something from The Shining. It freaked me out. It was so full on. So this is my talk and a talk exception about how I stayed alive in the US. Because honestly, I have no idea what I'm doing. And for the other speakers of the day, I expect this to be in like three talks each conference. I swear I'll always see this at least three times. So if you haven't got it, quickly add it in before you come up. So one of the first things I noticed as soon as I got here and out of the airport was your roads are really scary. Seriously, I was afraid to cross the road. I was so over-tired on the first day. I didn't sleep on the plane. And in Australia, most of the stuff that you guys do, we would have crashed. We're crap drivers in capacity, apparently. But like, it was fun. And the second was, what is this monopoly money? I went to the bank. I went to the bank to get my currency converted. And it was all the same size and it's paper. I'm like, I'm going to leave this in the envelope. I worried I'm going to rip it. But my friends and family were all like, what is this? But third was, more importantly, what is a dime? I didn't look funny, it was 10 cents. But why not just say it was 10 cents? I actually have so much change in my wallet at the moment because I don't know how to use your coins. So I've just been using notes and F-boss. But so I did end up finding people that knew how to teach me, that I could get to teach me. And these people were in service and retail. So for a good reason, I went and talked to these people because they used to talk to people all the time. And the majority of them were pretty friendly and they get a good laugh when I ask what a dime is or a penny. But most importantly, they might not realize it, but teaching is actually a lot to do with their job. They teach you about the products, or if you're at a restaurant, they may teach you about the beers and the things on the menu. And they help you, they assist you. And they do this by being comfortable with being approachable. This is really important for them because otherwise you're not going to talk to them. You're not going to get a good service. You're not going to get the service that you expect. Not going to give good tips, not going to give good reviews. So they have to be really comfortable with being approachable. So I've got a question. How do you guys learn? And I don't mean like, are we blogs or... I watched that awesome motion and motion screencast. I mean, what's the other side of learning? What has to happen before you can learn? Has anyone gotten an answer? Someone teaches you. You have to have someone on that other end that's writing those blog posts, that's making those screencasts, that's running those teaching sessions. Someone actually has to teach you. And you guys all remember that awesome teacher that we had at school, the one that sort of let us sit there and watch movies instead of actually doing proper work. Or maybe they actually did teach you something. But you remember these people pretty well. You tell stories about them. You might have that one favorite teacher that you mention to your friends and family sometimes and reminisce about. They're a really happy memory. And think about the speakers here. A lot of the speakers here, you know them from teaching. Even the gem creators are simply just teaching you an easier way to do something which, of course, in real emotion is really important because we don't want to write nasty objective C-like code. But my slides and the project have refused to work. You all know a secret. This is a secret that stares, that we're all so flooded by every day. But we forget it. This slide, this projector just really doesn't like me. We live in an age where anyone can teach. Quite literally anyone. If you have a computer, if you have a phone, a tablet, you don't even need a computer. If you have just an internet connection and some internet-enabled device, you have the ability to teach. You just need to be comfortable with being approachable. Just like those people in service and retail, you need to express the idea that you are willing to teach people. You could be that happy memory as well. And the best part is you don't have to be an expert. Just re-teach what you just learned. Log about it, record yourself, maybe even write a book, which I'll make a bit of a confession. I'm writing a book at the moment. Once again, I have no idea what I'm doing, but this is also a different one of these dog pictures so you guys still need to add two more dog pictures. So, the other option is you can start a meet-up and pretend just like you are an expert. There's four of us, oh, well, the three of us here from Australia and a fourth one that stayed. We did that. But yeah, the people that understand how to learn something best are the people that just learned it. These are the people that have just gone through all of the problem-solving steps. And honestly, this is where a lot of my ideas for screencasts come from. I end up doing something with one of my jobs or I'm doing a bit of research online and searching through Apple's developer docs and I end up finding out something new and I go, all right, cool. I recommend a lot of people would actually be able to use this. I'm gonna do a screencast on it. So, if you've learned something complicated recently, that's one of the best things to actually share how you walk people, how you learned it so that way you can walk people through it and the way you understood it. There's also, have any of you guys seen this hashtag? Yeah? It was one of Avdegrin's ideas where he's got this www.pairprogramwith.me. And it's an awesome idea, it's got a bunch of resources on remote pair programming and the idea of just meeting up with random people online and teaching them or pair programming, pair programming with them on different subjects and different things that you're working on. So, what you can do is you can skip some Game of Thrones and offer to teach someone one-on-one. But the important part is you need to record it. This will really help anyone else that's struggling with this problem because if there's one person that's gonna be struggling with it, there's likely gonna be quite a few other people that can then watch this recording and see how both of you work together to work out this problem. But of course, it's maybe a good idea to split it up. If any of you have actually watched my pairing sessions on motion-to-motion, it can be a pain to sit there for an hour watching people actually work. So, I've got Matthew Sinclair's adventures with Rescue and Core Data, he's sitting just here. Yeah. So, I reckon he has a great example for what I'm talking about. Recently, he's working on one of his applications and he was trying to work out how to get Rescue and Core Data integrated so he could use NSFed's results controller, speed up his application. And it was a pretty difficult learning process. Those are things that are not easy to pick up straight away. And what he ended up doing, and he was saying this morning that he's gonna end up expanding on it as well in the future, he wrote a very short blog post. It wasn't anything in great detail, but at least he wrote something that explained the problem, explained what he was trying to do, and then linked to all of the resources that he used. So, you don't actually need to do anything really complicated and spend a lot of time on it. Just at least share it with people because then anyone else can share that with somebody that's asking about it and it can be a good central resource to refer to. There's also Garrett Hyland's, is that how you pronounce it? Yeah, cool. Garrett Hyland's Adventures with Ruby Motion. Garrett's the fourth person that helps us organize Sydney, the Sydney Motion Meetup Group. And he, it's less recently now, but he was recently just starting to learn Ruby Motion. And he jumped in when Will and Matt and I were talking about doing the Motion Meetup Group. And he went, I would really like to join him because then I can share my experiences just starting to learn and explain how with my background I started learning Ruby Motion and walk people through it. I thought that was an amazing idea. The fact that he actually had no massive experience and for me that was a, I wouldn't have done that a year ago at all. Still might not even do it now. He actually decided, all right, I'm gonna do this. And even though I'm not even close to an expert, I'm going to explain how I learned it. It was a fantastic idea and he had great talks. He was really well received. So if you're a bit worried about a return on investment, fine, sell it. Work for me. Use Gumroad. Gumroad's a really good place to sell digital resources. But that's not where the real money comes from at all. Now, is this idea as teaching as a resume? Yeah, maybe it kind of works. It's handy to have, but the real big advantage of teaching is the networking. Because of course it's not what you know, it's who you know, sort of. But every person we talk to and every person that you teach might end up being someone that hires you or refers you to a friend or one of their friends. So if you wanna get started on freelancing, then teaching is actually where the really big money is. Because not only do you get a passive income, but you get a much bigger network. This network isn't just the people that you talk to one-on-one or train one-on-one. These are people that are reading a blog post, watching your recordings of one-on-one training, watching your screencasts, looking at the previews of your book. You get this network of people that you might not have even talked to that you might get work from. And if anyone here is on freelancing, you can probably know that networking is a really, really important part of trying to make it on your own. And I added too many animations. So is anybody here unsure on where to start? I'm glad because the next slide was what? Because I just said, just reteach. Seriously, this isn't the whole community of this conference. It's only a small subset. So after today, we've got two days worth of material that you can then go and reteach to your colleagues, to you can write a blog post about it, you can do your own screencast as a take on it. And with teaching, there's also another benefit. You learn more and you learn much faster. Seriously, ask anyone that teaches online. This was something that Chris Coy has mentioned and a lot of other screencasters and bloggers have mentioned. Their skills skyrocketed when they started teaching. I've been involved with hiring a couple of people in the past when I've gone to consult at some jobs. And honestly, if someone was teaching on an even somewhat regular basis, I would much prefer to hire them over someone with more experience because given a small amount of time, they're gonna pass that other person. I can guarantee you that. They will quickly pass the experience level, they will have more passion, they will be better workers. Now, some of you might have this excuse of I don't have the time to teach. So I will prove you wrong at the end, but I'm gonna tell you something for now. I've heard most of this while waiting for 40 minutes on a train, waiting for 40 minutes for a train. On my phone, which this is actually why it's mainly title slides because I couldn't do everything on my phone. And the rest of it, I did it on the plane on the way here. So the point I'm trying to make here is use your constraints to your advantage. That's really important. I mean, a lot of you know this, it applies to a lot of things. But still, get creative with it. And I'm gonna take this further in a second. But first I wanna talk about the other method I'm gonna bring up today for making the Ruben Motion Community better. We've got two methods. I was originally gonna talk about three methods, the third being about diversity. But after talking in some of the interviews, I've decided to take this online with a little podcast. I'm hoping to have Ash Dryden as the first diversity advocate, which will be fantastic, I'm really excited. How many of you here follow Ash Dryden on Twitter? Awesome, because read her stuff. She is an amazing diversity advocate. I'm really glad that she's agreed to potentially be the first interviewee on the podcast. But anyway, so you've seen one method. The next is, of course, open source. Ba-ba, Jack, I've heard this before, ba-ba-ba. Anyway, but another question for you. How many of you here work on code most days of the week? That's what I thought. You have something to open source. You do. Take my slides, there you go. Take absolutely anything that isn't business logic and extract it into a gem. For example, MIM input toolbar. This is one that if you watch my screencast, some of the recent screencasts you might have seen me talk about. It's very, very, very simple, tiny little gem. And all it does is it adds this toolbar to the top of your keyboard. So if you've got a little form, that way you can do a custom form. Previous, next, done. They do what they say. Done gets rid of the keyboard. Next goes to the next field. Previous goes to the previous field. And it's only like 15 minutes to pull this out of what I was doing it in. So another question for you. Raise your hand if you use gems and pods or any other open source software. That's what I thought. Then you can help make them better. We all know these things. The report bugs is what's gonna come up in a second. Report bugs, suggest features. And then make them better for you if you have the time and submit a pull request. This one does require a bit more time, but I see a lot of you people do it. You're already doing the hard bit. You're doing the work. You're sitting there using these gems, using these pods, creating this code. That's sort of the hard bit, the creation. All you actually have to do is extract it out or let someone know that there's a bug or tell someone that, hey, this is kind of hard to use. Just by doing your job, you can be making the community better. It requires about 15 minutes extra a day if you choose to do it regularly. I'll talk about that more at the end, but yeah, so it takes about 15 minutes to copy code out into a gem, especially if they're little small ones. We'll go with the sort of unix philosophy of everything's little small components. If you need instructions, one command. And you just start copying and pasting stuff. If it's working and it's really, really small, it might be good to add tests, but to just at least get it out there at first, you can add tests a bit later, or hopefully you've already tested your code and you can extract the test with it. But I've also got this, which is writing gems for Ruby and RubyMotion, which is that blog.motionemotion.tv, gems for Ruby or RubyMotion. So there's a little resource for you and there's a fair few resources in the developer center as well, and on my blog and a couple of other blogs on writing gems for RubyMotion. And in terms of the reporting bugs and suggesting features and things like that, write down your thoughts on GitHub instead of complaining to a coworker. If you don't have a coworker, fine. Just write out your thoughts in a new tab. All you have to do is open up GitHub and quickly put it into an issue. It doesn't have to be extremely descriptive, leave a comment saying I'm gonna work on this more later when I have time, but at least get it out quickly. Your code doesn't need to be amazing either. There's a lot of worry, I see some very senior programmers that still have an entered open source because they're, and this was definitely me up until very, very recently. I've only started putting my code out there last couple of months and it's scary putting your code out for everyone to see, but your code doesn't need to be amazing. People are gonna give you code reviews but it's a great way to learn as well. You'll find out that most of the open source community can actually be amazingly accepted. It doesn't have to be something that a million people might use either, because your 15 minutes might save a few people just a few hours. Tell you what, it's a really nice feeling. It feels good to know that you've gone and helped just a couple of people out and I don't have any big gems that are out there, but there's been some that have had like 50 downloads or a couple hundred downloads. They're not massive usage and most of those would probably be some automated program that are downloading them, but it's good to know that maybe a few people have tried it out and it might be somewhere in production. I mean, ask any of the gem creators here or mark with all these open source applications. That work has really helped a lot of people, but the good part as well is that you can reuse it as well. You've got this small library that you know it works. I use MIM input toolbar and a lot more of my testing things out and things like that and I possibly use it in the work we're doing at the moment, I can't remember, but you can reuse it. It's an extra tool in your tool belt. So coming back to that idea of getting creative with your time, I'm gonna talk about using your time wisely when you're sharing your code because that's not what I've just been talking about. So instead of spending an hour or two writing documentation, that can be another really hard bit about releasing something open source is writing good documentation, spending an hour or two teaching someone. And in exchange, ask them to write the docs for you because they're some of the best teachers. Thank you. That's right, the people that just learned something. So you teach them, you walk through how they've learned it, you walk them through, ask any questions, make sure that you both take notes and then in exchange, they'll write the documentation for you and you get this great documentation that anyone of any experience of will be able to understand because it'll end up being detailed and walk through little bits that might be little gotchas that some people might not get plus record and share the training as well. You can put this up in the documentation, that training video that you originally did so people that are really interested can then look into it a bit more. So I'm getting closer to the end. I've got a bit of a game plan for you guys. So this requires seriously 15 minutes a day. Days one and two, extract some of your app's code and you pull it out into a gem and then start using that in your application straight away. Days three and four, you write some basic documentation unless you're gonna go with teach someone and get them to write a strategy. Days five to eight because a blog post, a short blog post can take about an hour to write. Use four days and you write a little blog post just sharing some of the ideas that you have or sharing something you've just learned. In days nine and 10, this requires you to at least maybe mention on Twitter that you're willing to accept questions to your email, let people know that you're willing to help and then spend half an hour of those two days just answering a couple of emails and helping people in the community to understand things better. And of course if you've got some weekends free, I always suggest of course that you spend as much time with your family as much as you can but if you do have some weekends free where you're all just sitting at home, pair with someone, teach them something they're struggling with or teach them about one of your gems and in exchange they write some documentation that's been an hour or two over that weekend really getting to know someone, really getting to understand their problems and teach them. So how hard is that really? 15 minutes a day. Now there is a reality. What I'm mentioning here, you could probably relate to the idea of, I'm gonna exercise every day. But the fact is life gets busy and I don't expect this to be something that you constantly do. You can jump in and out of this. You can maybe do it for a week at a time and then you might have a month or two break. It might just be in the quiet points of your life. But we have a lot of people here and a lot of people in the community and it's just a few of them we're doing it on even in a regular basis. We'd have a lot more blog posts and a lot more gems coming out that people can use. And so last round I met up with the guys from Terrible Labs and they asked me to call them out because they need to write a bit more and get more involved in the community. So you might be working at a sort of small, medium, maybe even a large-sized company. So you might be able to get a company game plan together. Something that you can all do together. So there's Creator competitions which was mentioned last night where you guys actually have little competitions where each week whoever wins gets whatever where you create gems and blog posts throughout the week or throughout the month and whoever has the most gets something. You can also use it for business value. You can educate your clients with blog posts and screencasts. We used to do this at 6.2 and Innovation Lab where I used to work a couple of years ago. We'd actually make screencasts before we handed off a website or an application to a client to explain the backend management, what tools we use, those sorts of things. And that worked really well. That little quote from Claude, Mike, you named the board wrong. It's crushing content production, not content production. So once again mentioning terrible labs. But okay, so we've got about 140 people here I think I last heard. Imagine if just 10 of us did this every single week, 15 minutes a day. That's 10 gems every fortnight. 10 blog posts every fortnight which Todd will be happy about because then it can share it in dispatch. But the result of that is hundreds or thousands of people that will be helped just from your small amount of effort each day. And I don't count this as an excuse. The someone else will is not an excuse because if everyone starts doing that which is what ends up happening, then nothing happens. And the roofing and motion community is growing very quickly but there needs to be a lot more people getting involved. Because our industry roofs super fast. We all know this. The tech industry in general is a hugely fast paced industry and then you add in web and mobile as well like our specific sectors are moving at a blazing rate. And imagine being a newcomer. A lot of you might have been doing this for a while but imagine being a newcomer the next generation that are coming into this. That's gonna be really hard to keep up with because you've gotta try and learn all the history as well as keep up with what we're already struggling to keep up with. They learn from people like you and me doing these things, writing these blog posts, having well-documented gems that will make things easier so they can learn the complicated things later. So, this is almost the end for real this time. Give me money. Little, well, somewhat long plug. I have my, I skipped a slide, motion and motion screencasts. There is a coupon for just you guys. I'm gonna turn this off tomorrow before I get on the plane. So, it's InSpec 2014 and the site is mobile friendly so you can sign up now if you like, intent. I've also got a book I'm writing. It's called Reformation for Rails Developers. This is a pay what you want book. It's got part one released so far. You can pay anything from a dollar to like, see the $999 or $9,999. And in that case, I'll fly to wherever you are and give you a massive hug. Now, I also do training as well. I do, I have an account on AirPairMe. I'm one of the ribbon motion experts on AirPairMe. I think Mark is as well. Or you can contact me through my email or call my Australian number, which I can't imagine most of you doing except for Matt and Will. And actually get some one-on-one training. There's also Hiami, talk to Todd. I work through infinite red a lot of time. So yeah, talk to Todd or Ken. And I'm running out of time but I'll make this really quick. I've got one question for you before I take questions. And first though, I'm gonna have motion-emotion3.0 for Blackberry and MS-Dosphone. So you get what I mean. I'm gonna start covering OSX and Android really soon. I'm hoping to have an Android episode out in the next couple of weeks. And I'm gonna be working as much as possible to get some really good resources out there for everyone to learn Android, to do OSX development, as well as keep up with the iOS development stuff. And at some point, I might eventually get to two episodes a week but we'll see how that goes. Anyway, so my question is Rails in motion. How many of you would actually pay for a subscription, $9 a month, for a Ruby on Rails episode each week? With Jayman. Brian Bates has sort of gone MIA. And yeah, so I'm hoping to not replace Rails caskers. All of us love that. But is anyone interested in that? Cool. So thank you. And do I have time for questions? Yeah, I do. Ha ha ha.