Tuesday, September 25, 2012

I am science dog.

I'm taking the cs253 web development course on udacity.  Coincidentally, the lectures are being delivered by Steve Huffman, one of the founders of reddit!  He's really flying through the content, I'm struggling to keep up with a lot of the discussion.  Steve tends to glaze over details that I get hung up on -- it's like following a kid through a narrow corridor.  He keeps pausing, beckoning at you to follow, but the space gets ever narrower.  Case in point, google app engine's request handlers, lambda functions, template variables, and more.  My brain gets snagged on these and I have to take the time to research each one of them in turn, making sure I understand just to keep up with the exploding lexicon.

I am Science Dog.
As discouraging as my pace has been, it's been motivating to hear from one of the people who shaped the internet into what it is today.  One thing I really appreciate is Steve uses examples of things he learned while building his many web applications as lessons of what to do and what not to do.  And I'm sure that at one point, he was just as clueless as I am.  I hope.


  1. how useful do you find Google App Engine's webapp framework compared to other python frameworks

  2. Actually, I don't have a comparison :)

    That's one of the main reasons I'm having trouble understanding what's going on -- this is the first 'framework' I've used. I hear Django is the way to go with Python, but I expect there's a lot more configuration needed than Google App Engine. True?

    1. Well, Django has many wonderful things and IMO there aren't that many things to configure (the first framework I ever used was Zend Framework,... so my idea of "not so many configuration options" might be biased)... it does have A LOT of built in functionalities such as an ORM and the admin interface to generate the CRUD for your models... I assume this google webapp framework is more basic... but I'm not sure how much you can add to it. Pyramid and Flask don't come with a lot neither but you can build many things with it... what I actually meant by my question was that I don't know if webapp is meant to be only a tool for study, or if you can actually build a large application with it.

      I am currently completing Computer Science 101 in Udacity but I saw they have this other course and I was also interested in it because I saw Steve Huffman was part of it... I will do it once I finish 101, but you got me worried that I won't understand anything.

  3. Sorry for increasing your anxiety, my true intention was for someone to see my post and think, "if this guy can do it, I sure as hell can!"

    I think webapp is both a good testing environment & study tool. In the video lectures, Steve mentions that it's quite scalable, i.e., you can build webapps that support a very large number of users with it. It is also relatively easy to setup for a beginner.

    But don't worry, I don't have a doubt you'll be able to grasp it better than me. On a side note, some terms you mention have spawned some new questions in my brain: What is an ORM? And CRUD?

    1. I think *app engine is a good testing env..

    2. don't worry about my anxiety,... I'm originally from Argentina where your currency can devaluate 700% in a couple of weeks so "not getting it" is not such a big deal for me ;).

      ORM (Object-relational mapping) is a tool that creates an object db for you to conveniently manipulate and map data into your database. In Django the ORM is really important as the admin generator and other modules use it a lot. I don't know how the course is structured, but I imagine Steve already talked about the MVC pattern... in Django, for example, when you create a model for your app, the ORM makes it extremely simple to access your data without having to deal with SQL and the different ways it is handled in different databases. You can write an application that uses MySQL, and if at some point -for whatever reason- you need to change to Postgres you can do it by simply changing the DB adapter in the settings file.

      CRUD is short for Create Read Update and Delete... which are the basic operations you usually want for your data.

      I am far from a Django expert, but having tried several frameworks before I can honestly say that it's worth learning it and much easier than anything else I tried in the PHP ecosystem.


Let me know what you think!