Automating Tedious Tasks, Ruby, and Rom Hacking with Jay McGavren8:08 with Craig Dennis
In this episode we’ll be talking to Treehouse Teacher, author, and Nintendo ROM Hacker Jay McGavren.
Hi, I'm Craig, welcome to the Treehouse Show. 0:00 The Treehouse Show is our weekly conversation with the Treehouse community. 0:02 In this episode we'll be talking to Treehouse teacher, author, and 0:10 Nintendo ROM hacker Jay McGavren. 0:13 >> Thanks for being on the show, Jay. 0:16 >> My pleasure. 0:17 >> I was wondering, 0:19 could you tell the students how you got started in technology? 0:20 >> My parents registered me for this computer camp when I was six. 0:24 >> Nice. >> Yeah so pretty young, and 0:28 it basically consisted of these were ancient Commodore computers, so this 0:31 consisted of animating a bird flapping its wings on the screen using text characters. 0:36 >> Well that's awesome, that must have been killer at six. 0:41 >> Yeah exactly, well and it got me entranced. 0:44 And it was terrible, there were go to statements and everything, but 0:46 it worked and I was hooked, and I was dabbling through my 20s. 0:51 Then I was working in a data entry job, 0:55 I was basically manually copying text from one database to another. 0:58 >> Jeez. >> Except one used this horrible ancient 1:04 green screen interface that nobody could automate. 1:07 >> Okay. 1:10 >> But since I had to do this job every day and I hated it so much, 1:10 I automated it. 1:14 >> You coded yourself out of a job. 1:15 >> Basically, yeah. 1:17 >> Okay nice, what did you automate that with? 1:18 >> Pearl, actually. 1:20 >> Okay. 1:21 >> Which I don't know if everybody is familiar with Pearl, it's an older 1:23 scripting language not quite as popular these days as it was in its heyday. 1:28 But a lot of the early web apps ran on Pearl just cuz 1:32 it's a super versatile scripting language. 1:35 >> Right. >> Ruby is kind of a descendant, 1:38 indirect descendant of Pearl. 1:40 >> Sure, yeah I could see that, they look kind of similar. 1:42 >> Yeah. 1:44 >> So have you coded yourself out of other jobs? 1:45 >> I wouldn't say I've lost any jobs because of coding, although it's resulted 1:48 in promotions, mostly my tools wind up helping me in what I'm already doing. 1:53 >> Okay what's an example, 1:57 what's the first thing that you ever did that you can think with that? 2:00 >> This has been a long time ago, but I had a newspaper route as a kid. 2:03 >> Like paper boy? 2:08 >> Yeah basically, and everybody I was delivering papers to had special requests, 2:09 I had to keep track of whether they wanted stuff delivered in the morning or 2:15 the afternoon. 2:20 And I didn't really own a spreadsheet program or a database program, 2:21 in fact I didn't really know they existed at the time. 2:25 So I coded a database from scratch to help me track what 2:28 all these newspaper customers wanted. 2:32 >> Wow, that's amazing. 2:36 So, what do you teach here at Treehouse? 2:37 >> Ruby. 2:41 >> Can you talk to me a little bit about Ruby, what's Ruby good for? 2:42 >> Ruby is at its heart a scripting language, it's been used for 2:47 much more complicated things than simple scripts, but it's really flexible. 2:51 You can do things like if you have an object you can assign new methods, 2:56 snippets of code that you can run on that object, you can do that on the fly 3:01 which is something that's really hard to do with a lot of other languages. 3:06 >> I think I've seen something like I can do eight, the number eight dot days and 3:09 it just all of a sudden makes now I'm talking about eight days. 3:14 >> Exactly, if a day's method has been loaded on the number eight and 3:18 you can add one on the fly if you want. 3:22 That flexibility right there, that's key to what makes Ruby so awesome, and 3:26 it's what lets you do things like talk to databases really easily. 3:30 Ruby on Rails is totally based on talking to databases, 3:35 that's like 75% of the Rails code is just writing data out to your database 3:38 and Ruby just offers amazing flexibility in that regard. 3:44 >> Awesome, and we cover a bunch of that content here, right? 3:49 >> Yes, we take students everywhere from learning the program for the first 3:52 time in Ruby all the way up through creating their own websites in Rails. 3:57 >> Wow, awesome. 4:03 >> I'm also dipping my toe into teaching a little bit of GO as well [CROSSTALK] 4:04 programming language. 4:07 >> GO, okay what is that? 4:09 >> That is a programming language from Google. 4:12 >> Okay. 4:14 >> Google, as you can imagine, has to serve quite a lot of customers at any 4:15 given time with any program they write. 4:19 So they need something that can handle a lot of operations simultaneously, 4:22 they need stuff where a lot of developers can collaborate 4:27 on a piece of software at the same time. 4:31 And so they created a language from scratch that served those needs for 4:33 them, and the resulting programs are really fast so it's pretty cool. 4:37 >> Cool, awesome, and what courses are out for that right now? 4:41 >> Right now just Go language overview which we're kind of targeting at people 4:45 who already have a little bit of development experience, 4:48 and we're gonna be looking at introducing 4:51 more courses in the future that are a bit more beginner oriented. 4:54 >> Awesome, that's great, 4:58 I'm looking forward to learning that actually, that's cool. 4:59 One of my favorite questions that I get to ask here. 5:02 What is something that the students might not know from watching your Ruby and 5:05 Go courses? 5:09 >> Well I definitely don't have a chance to teach this during the courses. 5:11 I used to hack, you remember the old Nintendo entertainment system right? 5:15 >> Of course, yeah. 5:19 >> I used to hack game ROMs for that because [CROSSTALK] long after 5:20 the Nintendo was out people came out with this software called 5:25 emulators that let you run the old games on your computer. 5:29 >> If you have the game. 5:34 >> If you have the game, let's keep it legal here. 5:35 If you are able to run the game on your computer that means you have a file on 5:38 your computer that holds all the game's content and you can edit that file. 5:42 So people have released software that lets you go in and edit all the maps, 5:47 there was one out there for the- >> Wait, what's a map? 5:53 >> The levels that you play through. 5:56 >> No way. >> Yeah, so there was one for 5:58 The Legend of Zelda, there was one for Metroid. 5:59 I did a really sloppy edit with The Legend of Zelda, 6:02 it was really limited in what I could do, people had some fun with that though. 6:05 >> What did you do, what's an example? 6:10 >> I changed the entire over world, the entire map that you play through, 6:12 just all new rooms, all new content. 6:17 I couldn't change the dungeons though, 6:20 cuz the editor hadn't figured out that part of the file yet, how to edit that. 6:22 >> So let me get this straight, so you're playing Legend of Zelda with the character 6:27 and the levels look different, you can make your own. 6:30 >> Yep. 6:33 >> Whoa! 6:33 >> And I mean, these are really old by now so, 6:34 they're probably still out there if people want to hunt them down though. 6:37 >> Wow, that's super cool. 6:42 >> Just do a little clever Google searching. 6:43 >> Yeah, you'll have to share some links with me, 6:45 I'll put it in the teacher's notes of this video. 6:47 >> Cool. >> Awesome, that's so cool man. 6:48 I also wanted to give a shot out, you seem to always be creating stuff for 6:51 us teachers here to use internally, it seems like shell tools and 6:56 things like that, can you talk a little bit about that, custom development tools? 6:59 >> Sure, I mean this is basically 7:03 once again if there's a part of the process that is a little repetitive, 7:06 involves a lot of typing, I have to automate it, right. 7:10 And I also can't resist showing off what I've done, 7:13 just in case it helps somebody else. 7:15 The latest thing I did was I found the API for Slack, 7:17 there are some commands that our developers at Treehouse have to issue 7:21 in Slack to reserve the ability to send out new versions of the Treehouse site. 7:28 I figured out how to talk to the Slack bot from the command line, 7:34 and since there's a bunch of get commands that you have to enter from the command 7:38 line anyway, this lets you take care of Slack as well simultaneously, so 7:43 I just shared those commands with everybody, yeah. 7:47 >> Nice, awesome. 7:50 Check the notes attached to this video for more information on Jay and 7:55 Nintendo ROM hacking, how cool is that? 7:59 Once again thanks for watching the Treehouse show, to get in touch with 8:02 the show reach out to me on Twitter or hit us up in the Treehouse community. 8:04 See you next time. 8:07
You need to sign up for Treehouse in order to download course files.Sign up