1
00:00:00,780 --> 00:00:01,750
Welcome back.

2
00:00:02,010 --> 00:00:06,990
So it's time that we get you set up with your own developer environment so that we can get started writing

3
00:00:06,990 --> 00:00:10,080
our full stack javascript apps as soon as possible.

4
00:00:10,230 --> 00:00:15,360
Before we talk about the specific tools that we're going to use I just want to do a quick recap of the

5
00:00:15,370 --> 00:00:19,630
workflow not the concepts but the workflow from the last few videos.

6
00:00:20,130 --> 00:00:23,730
So everything starts with our server side javascript code.

7
00:00:23,730 --> 00:00:28,890
This is all the code that connects to the database and sets up our routes and starts the server.

8
00:00:29,160 --> 00:00:32,790
And then we run it in our terminal.

9
00:00:32,970 --> 00:00:37,750
In this case this is how I start the server here and then that starts my application.

10
00:00:38,070 --> 00:00:43,620
And then I have to go to my browser and visit the correct view or so and now I see the application running

11
00:00:43,630 --> 00:00:44,020
.

12
00:00:44,400 --> 00:00:50,820
So those three pieces the text editor the terminal to start the server and then the browser to view

13
00:00:50,820 --> 00:00:53,610
the application are the three things that we need.

14
00:00:53,730 --> 00:00:57,520
And we're going to use a really really awesome tool called Cloud 9.

15
00:00:57,780 --> 00:00:59,610
I'm really excited about this.

16
00:00:59,640 --> 00:01:05,070
It's something that I wish I knew about when I was teaching this to students full time when I was doing

17
00:01:05,070 --> 00:01:09,660
3 month or six month courses or even just you know evening workshops.

18
00:01:09,660 --> 00:01:16,080
This tool would have made a huge difference to my personal happiness because I spent countless hours

19
00:01:16,230 --> 00:01:22,920
helping students set up their development environments and debugging the incredibly painful and unique

20
00:01:22,950 --> 00:01:28,530
issues that arise when you have you know 20 different students or 30 different students with different

21
00:01:28,530 --> 00:01:33,490
machines who have all tried installing different things in the past and following different tutorials

22
00:01:33,500 --> 00:01:33,700
.

23
00:01:33,810 --> 00:01:39,060
And some of them are on an old version of Microsoft and some of them are on the brand new version of

24
00:01:39,330 --> 00:01:42,730
Mac OS and some of them are on their own machines that they built.

25
00:01:42,750 --> 00:01:48,440
And it's really really difficult even for a brand new machine that you haven't done anything to.

26
00:01:48,450 --> 00:01:51,790
People still run into problems installing Office stuff.

27
00:01:51,810 --> 00:01:54,390
So that's one of the reasons I'm really excited about this.

28
00:01:54,570 --> 00:01:58,480
And before I go on to talk about the other one let's talk about what it is.

29
00:01:58,620 --> 00:02:00,070
So what is cloud nine.

30
00:02:00,090 --> 00:02:04,320
The short version is that it's your complete developer environment.

31
00:02:04,320 --> 00:02:11,460
Everything that you need to make a full stack application whether it's in javascript and node or if

32
00:02:11,460 --> 00:02:19,320
it's in Ruby with rails or python it's your complete environment set up in the browser.

33
00:02:19,320 --> 00:02:21,740
So what has your text editor.

34
00:02:21,830 --> 00:02:27,150
It's actually just like supply with the same shortcuts and everything it has at your terminal where

35
00:02:27,150 --> 00:02:33,120
you run the server where you can do anything that you would do on the terminal on your machine.

36
00:02:33,120 --> 00:02:39,820
But you do it in the browser and then.

37
00:02:42,780 --> 00:02:49,020
So we'll be writing our complete applications in the browser rather than installing a terminal and possibly

38
00:02:49,020 --> 00:02:55,590
a virtual machine and installing node ourselves and NPM and every package that we need in mongoose what

39
00:02:55,590 --> 00:03:01,350
we can do with Cloud Nine is just in a few clicks we can create a brand new environment from scratch

40
00:03:01,530 --> 00:03:06,350
that has everything that we need in it and we can start writing code in a matter of seconds.

41
00:03:06,360 --> 00:03:07,640
So that's really exciting.

42
00:03:07,800 --> 00:03:12,210
And this is something that's relatively new development in computing.

43
00:03:12,210 --> 00:03:17,550
There are a few companies out there like cloud 9 and I don't want to sound like you know I'm a corporate

44
00:03:17,550 --> 00:03:18,850
shill for them.

45
00:03:18,870 --> 00:03:23,070
The reason that we're using Cloud Nine over some of the other alternatives is that they have the best

46
00:03:23,070 --> 00:03:26,640
free plan and they care a lot about open source.

47
00:03:26,760 --> 00:03:33,450
Some of the other companies have a limit of one environment per person or per account until they start

48
00:03:33,450 --> 00:03:34,650
to charge you money.

49
00:03:34,650 --> 00:03:36,270
Cloud 9 doesn't have it.

50
00:03:36,270 --> 00:03:41,850
I also happen to like it personally because you can alter the themes and make it look just like sublime

51
00:03:42,180 --> 00:03:44,850
and make your terminal look just the way that you want to.

52
00:03:44,850 --> 00:03:50,460
Another thing that applied in is that this is just as powerful as running it locally on your machine

53
00:03:50,460 --> 00:03:50,900
.

54
00:03:51,030 --> 00:03:55,170
So I don't want you to think that everything is actually running in the browser.

55
00:03:55,170 --> 00:04:00,990
What actually happens is that cloud 9 has computers somewhere else that are running the code for us

56
00:04:01,000 --> 00:04:01,160
.

57
00:04:01,320 --> 00:04:06,300
So the browser that we see in all actually show you what it looks like right here.

58
00:04:06,300 --> 00:04:10,440
This text editor this is the terminal right here.

59
00:04:10,440 --> 00:04:14,550
This isn't actually running in the browser which is a little confusing.

60
00:04:14,550 --> 00:04:21,150
Think of this as the interface and behind the scenes when I run the server and I'll do that right now

61
00:04:21,170 --> 00:04:21,480
.

62
00:04:21,870 --> 00:04:22,920
Node app.

63
00:04:23,000 --> 00:04:27,180
Yes you can see it's just like the terminal.

64
00:04:27,180 --> 00:04:30,870
My app has started up and I can go visit my app.

65
00:04:30,960 --> 00:04:34,410
So this is the app it's the the yellow cam in progress.

66
00:04:34,410 --> 00:04:36,620
This is one of the earlier stages of it.

67
00:04:36,810 --> 00:04:40,160
And this is being served from my cloud 9 terminal.

68
00:04:40,440 --> 00:04:45,540
But what that really means is that cloud 9 has a computer somewhere else that has all of this stuff

69
00:04:45,540 --> 00:04:51,870
installed has node and express and mongoose and passport and everything that we need and it has a server

70
00:04:51,870 --> 00:04:59,280
that's actually running this code here and I'm visiting the Web page that's being served by that server

71
00:04:59,280 --> 00:04:59,880
.

72
00:04:59,880 --> 00:05:06,810
Really my only reservation about having this class used cloud nine is that it's a little confusing at

73
00:05:06,810 --> 00:05:07,320
first.

74
00:05:07,380 --> 00:05:12,240
How it actually works because I've spent so much time talking about the difference between front end

75
00:05:12,270 --> 00:05:15,920
and back end and this almost seems to blend the two.

76
00:05:16,200 --> 00:05:24,120
But in reality this is just an interface for typing all of our code and setting up our files but the

77
00:05:24,120 --> 00:05:28,880
files are actually on a computer somewhere in a server that cloud 9 owns.

78
00:05:28,890 --> 00:05:34,650
Other than that little conceptual hiccup I'm really excited to have us use this in this class for another

79
00:05:34,650 --> 00:05:41,430
reason which is that it makes it so easy for me to share code and applications with you later in this

80
00:05:41,430 --> 00:05:41,850
class.

81
00:05:41,850 --> 00:05:44,800
Our applications are going to get pretty complicated.

82
00:05:44,820 --> 00:05:48,410
They might have 50 60 maybe even 100 different files.

83
00:05:48,570 --> 00:05:54,780
And if I didn't have something like Cloud 9 I would probably have to compress everything into izip and

84
00:05:54,780 --> 00:06:00,000
then upload that to the video and then you would have to download it after every lesson and then you'd

85
00:06:00,000 --> 00:06:02,460
have to install everything in order to use it again.

86
00:06:02,550 --> 00:06:08,490
And then every time I make changes if I want you to be able to see the old version and the new version

87
00:06:08,550 --> 00:06:14,100
and I have 20 different versions of an app which will happen with our yelper camp app will have lots

88
00:06:14,100 --> 00:06:18,800
of different versions as we progress if we enhance it without cloud 9.

89
00:06:18,840 --> 00:06:24,060
You would have to download a new application every time to your machine and open up the files unzip

90
00:06:24,060 --> 00:06:24,910
things.

91
00:06:24,930 --> 00:06:27,100
It would be pretty painful.

92
00:06:27,180 --> 00:06:31,300
With cloud 9 what I can do is actually share a workspace with you.

93
00:06:31,560 --> 00:06:36,080
So that means I can share the current state of all of my files here.

94
00:06:36,630 --> 00:06:38,430
I can share my terminal with you.

95
00:06:38,520 --> 00:06:40,690
I can share the app itself.

96
00:06:41,010 --> 00:06:46,060
So that's really exciting to me because it makes it easy for me to just share the state of my code.

97
00:06:46,080 --> 00:06:52,140
You can go in and look at every file without having to download 50 or 60 files every single time we

98
00:06:52,140 --> 00:06:53,420
do a new feature.

99
00:06:53,880 --> 00:06:59,370
So to summarize all of that if you can't tell I'm really excited that we're going to be able to use

100
00:06:59,370 --> 00:07:00,290
cloud 9.

101
00:07:00,300 --> 00:07:06,120
It's going to make my life a lot easier your life much easier to get started much less frustrating.

102
00:07:06,120 --> 00:07:12,750
I've had to spend in the past days and sometimes even weeks trying to debug installation issues with

103
00:07:12,750 --> 00:07:18,270
students and it's the number one thing that I've noticed will discourage a potential developer someone

104
00:07:18,270 --> 00:07:21,630
who wants to learn from actually following through and learning things.

105
00:07:21,630 --> 00:07:27,750
So cloud 9 will let us install things and set up an environment regardless of the type of computer you're

106
00:07:27,750 --> 00:07:32,250
on and the software that it's running and the chipset or whatever else there is.

107
00:07:32,400 --> 00:07:37,050
We'll get an environment set up that will be identical for all of us which I'll introduce in the next

108
00:07:37,050 --> 00:07:42,110
video but we'll get an environment set up instantly and then we can start writing code right away.

109
00:07:42,360 --> 00:07:46,650
And then also I can share my code with you really easily as well.

110
00:07:46,680 --> 00:07:50,430
So very exciting in the next video we're actually going to install our own environment.
