Alright everybody, this is going to be Office Hours
for Unit 1. Thank you all for participating so far in
taking the class. I hope itÃ¢Â€Â™s been informative for
you so far, weÃ¢Â€Â™re going to Ã¢Â€Â“ that was the easy
stuff. So after this you know weÃ¢Â€Â™re going to get
into some of the tricky things. So JohnÃ¢Â€Â™s found
some questions from the forums that weÃ¢Â€Â™re going
to go through that you guys have all had. So, letÃ¢Â€Â™s
go.
Okay, well the first question is about Google App
Engine and people had a lot of questions about
Google App Engine. How it works? How to get it
running? Problems they had. Whether we were
going to need to use it? So just if we could go
over all of that stuff real quick.
Okay, so to answer your question first or to take it
from the top basically. We chose Google App
Engine because we thought it would be the
website online. Believe it or not, even after
reading the forums I still believe itÃ¢Â€Â™s the easiest
way to get something online. That said, if you
donÃ¢Â€Â™t want to use it, you donÃ¢Â€Â™t have to. All of the
homeworks are going to be structured with the
same basic format which is submit a URL that
does Ã¢Â€Â˜XÃ¢Â€Â™. So if you can get a URL online that does
Ã¢Â€Â˜XÃ¢Â€Â™, great. So if you want to run this off your local
machine, use Apache, whatever, youÃ¢Â€Â™re allowed
to do that. But I am going to be teaching all the
lessons using Google App Engine, that will be
what IÃ¢Â€Â™ll Ã¢Â€Â“ thatÃ¢Â€Â™s what IÃ¢Â€Â™ll be demoing in the class,
thatÃ¢Â€Â™s what IÃ¢Â€Â™ll be working from and thatÃ¢Â€Â™s
generally what IÃ¢Â€Â™ll be talking about.
So the way Google App Engine works, the idea is
youÃ¢Â€Â™re just writing these Python files, and youÃ¢Â€Â™ve
got two options of running and distributing your
code. You can either use the launcher program,
which itÃ¢Â€Â™s got a little play button that will allow you
to start up your app once you add it to the
launcher. And that requires, Google App Engine
itself doesnÃ¢Â€Â™t ship with Python. You need to have
Python installed on your machine and that seems
to be where a lot of the trouble is. Google App
Engine Ã¢Â€Â“ thereÃ¢Â€Â™s two versions of it. One will work
with Python 2.7 and one will work with Python
2.5. Nothing in this course requires 2.5 or 2.7
specifically. So just get one of them working and
go from there.
Now once youÃ¢Â€Â™ve got your app running locally,
then you can either use the launcher to upload
the app or you can use the console utility.
Personally I use the console utility, you just say, I
think app config update and you point it at the
directory where your files are and then it churns
for a little while and then you can go to your
accountname.appspot.com and see your app. So
if you have any specific troubles, post them in the
forum. Other students have been really helpful
with specific sysadmining answers and that sort
of thing. So keep asking, keep working at it. This
first homework is basically just get this thing
online and I know that can be a pain on some of
your machines. So letÃ¢Â€Â™s just get this thing online
so we can move onward with the course. And if
you want to use something else, knock yourself
out, weÃ¢Â€Â™re not going to be able to help you but
youÃ¢Â€Â™re free to learn and try it on your own.
Okay. The next question is from Brian Y and he
wants to know, what are some useful things to
.know about frontend web app development?
Okay, cool. So, good question, because weÃ¢Â€Â™re not
going to be spending a whole lot of time on
frontend web app development in this class. The
main pieces of technology you want to know
would be JavaScript and CSS. JavaScript is a
separate programming language that runs in the
browser and you serve JavaScript just like you
would serve HTML and you can manipulate your
HTML, you can manipulate CSS and that sort of
stuff. Google for a JavaScript tutorial and you will
have plenty of resources to learn from. And CSS,
thatÃ¢Â€Â™s basically another type of file you would
serve from your web server and that controls the
styling, the colors, the font sizes, the layout of
your HTML. IÃ¢Â€Â™ll use CSS in this class and IÃ¢Â€Â™ll
provide you when we start getting into some of
the more complex websites youÃ¢Â€Â™re going to be
building like when we start doing the blog stuff, IÃ¢Â€Â™ll
point to where my CSS is so you can download
that and use it if you want. But for the most part,
you know, the way weÃ¢Â€Â™re doing the grading on all
of these homeworks is weÃ¢Â€Â™re going to have our
own piece of software thatÃ¢Â€Â™s basically
manipulating your website and itÃ¢Â€Â™s really hard for
us to see if your website even looks right, so the
appearance of things is not something we can
really grade anyway, but if you have some
professional pride and want to make things look
nice, JavaScript and CSS are the technologies
you want to learn and you can use those on your
own if you want to learn in this class, itÃ¢Â€Â™s not
going to affect how we grade homeworks or
anything like that. So, good question.
Okay. Brian Y has a number of additional questions.
Okay.
And one of them is, is Google App Engine a good
solution for large scale projects and are there any
unforeseen difficulties? What costs involved with that?
Sure, well there are costs, there are literal costs.
Google App Engine is free at a small scale, so it
will work for all of our homeworks but if you want
to run it at a larger scale youÃ¢Â€Â™ve got to pay for the
bandwidth you use and how much data you store
and that sort of things. I personally havenÃ¢Â€Â™t used
App Engine in production, but udacity.com itself
runs on Udacity. So many people do use it in
production. ItÃ¢Â€Â™s a great way to get started and the
things IÃ¢Â€Â™ll be focusing on this class you can take
with you outside of App Engine. I am basically
going to be talking about high level concepts.
ThereÃ¢Â€Â™s a lot of things that App Engine provides
that weÃ¢Â€Â™ll actually be building ourselves. So when
we start doing user registration and cookies and
that sort of stuff, weÃ¢Â€Â™re just going to take that from
the top anyway because I want you to understand
the technologies and it won't be specific to App
Engine or what other framework youÃ¢Â€Â™d like to use.
So the short answer is, yes you can use it for
large scale projects. I personally donÃ¢Â€Â™t have a lot
of experience doing that, so if youÃ¢Â€Â™ve got more
specific questions, hit up the forums.
Great. Another question that Brian Y had was
what kind of challenges you ran into when .
developing Reddit and Hipmunk?.
Okay, so thatÃ¢Â€Â™s actually basically what this whole
course is about. So I am not going to answer that
specifically here. I could perhaps do a seven-
lecture series about things I learned doing Reddit
and Hipmunk. But specifically Unit 7 is going to
be about those types of problems. Unit 7 is how
to build websites in the real world and some of
the other things youÃ¢Â€Â™ll have to think about. How to
deal with like large numbers of users, customer
service and all those kind of little things that we
had to think about getting Reddit off the ground or
getting Hipmunk off the ground. Well IÃ¢Â€Â™ll spend a
whole lot of time talking about that unit, in Unit 7,
so if you hang with me until then, youÃ¢Â€Â™ll get your answer.
Okay. The next question is from I-n-sa and she
wants to know how weÃ¢Â€Â™re going to be graded. In
101 quizzes werenÃ¢Â€Â™t graded, homework was and
the final counted for half, I believe, and she was
wondering what exactly is going to be the structure of this?
Okay, sure. So in this class there isnÃ¢Â€Â™t going to be
a final. There are going to be homeworks at the
end of each unit that basically involve you getting
your website online that does things. So the
homeworks are the most important thing. If you
can pass those homeworks you know how to
build basic websites and thatÃ¢Â€Â™s the goal of this
class. ThatÃ¢Â€Â™s what I want you to leave this class
being able to do. So the in-lecture quizzes, those
donÃ¢Â€Â™t count towards your grade. Those are
basically to keep you engaged, to keep you
paying attention and to sometimes introduce
some new concepts, but those arenÃ¢Â€Â™t required;
the homeworks are. So itÃ¢Â€Â™s important that you
figure those out and get those online. Now you
donÃ¢Â€Â™t actually have to have those homeworks
working each week. ItÃ¢Â€Â™s my understanding that we
can test those any time. So at the homework due
date after which weÃ¢Â€Â™ll post the solutions, but the
solutions arenÃ¢Â€Â™t going to be Ã¢Â€Â“ when building
websites a lot of the challenge isnÃ¢Â€Â™t knowing what
code to write, itÃ¢Â€Â™s how to get this thing online, how
to get the pieces to fit together. So youÃ¢Â€Â™re still
going to have to figure that out and get these
things online and thatÃ¢Â€Â™s where your grade is going to come
from.
ThatÃ¢Â€Â™s it for Office Hours. I want to thank
everybody whoÃ¢Â€Â™s been hanging out in the forums
answering questions, itÃ¢Â€Â™s been really, really
helpful. I know this stuff can be frustrating getting
things working. Sean here will be in the forums to
help. HeÃ¢Â€Â™s kind of my guy on the ground making
sure everything is going smoothly. So if youÃ¢Â€Â™re
stuck hang out in the forums. IÃ¢Â€Â™ll be in IRC as well
if you want to chat with me during the day and
good luck with the rest of the course.
Real quick, what is the IRC channel because
some of our students might not know that?
Yes, okay. ItÃ¢Â€Â™s on freenode, and I believe it is
##udacity-cs253 and there should be some
information about how to get in there on the
forums.
Okay, great.
Alright, guys. Good luck.