Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Preview
Start a free Courses trial
to watch this video
In this episode we’ll be talking to Treehouse Teacher, author, and Nintendo ROM Hacker Jay McGavren.
More about Jay
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
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 upYou need to sign up for Treehouse in order to set up Workspace
Sign up