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
Video Player
00:00
00:00
00:00
- 2x 2x
- 1.75x 1.75x
- 1.5x 1.5x
- 1.25x 1.25x
- 1.1x 1.1x
- 1x 1x
- 0.75x 0.75x
- 0.5x 0.5x
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