Difference between revisions of "DPS909 and OSD600 Fall 2011 Weekly Schedule and Notes"

From CDOT Wiki
Jump to: navigation, search
(Weeks 3, 4 (Oct 19, 26) - Distributed Revision Control with Git: fixing typos (Oct -> Sept))
(Week 8 (Oct 31) Introduction to Mozilla Firefox Development and Mouse Lock)
 
(11 intermediate revisions by the same user not shown)
Line 111: Line 111:
 
** [http://git-scm.com/ Download and Install git]
 
** [http://git-scm.com/ Download and Install git]
 
** [http://progit.org/book/ Pro Git, online book]
 
** [http://progit.org/book/ Pro Git, online book]
 +
** [http://gitref.org/ Git Reference]
 
** [http://www.ericsink.com/vcbe/index.html Version Control by Example, online book]
 
** [http://www.ericsink.com/vcbe/index.html Version Control by Example, online book]
 
** [http://sixrevisions.com/resources/git-tutorials-beginners/ Overview of Git Tutorials (many good ones)]
 
** [http://sixrevisions.com/resources/git-tutorials-beginners/ Overview of Git Tutorials (many good ones)]
Line 124: Line 125:
 
** '''Watch''' video tutorials.
 
** '''Watch''' video tutorials.
 
** '''Read''' chapters 1 and 2 of [http://progit.org/book/ Pro Git]
 
** '''Read''' chapters 1 and 2 of [http://progit.org/book/ Pro Git]
** '''Install'' and '''Setup''' git locally
+
** '''Install''' and '''Setup''' git locally
 
** '''Create''' a github account
 
** '''Create''' a github account
 
** '''Clone''' the github repo for your project(s)
 
** '''Clone''' the github repo for your project(s)
Line 136: Line 137:
 
*** What do you need to learn in order to do it, how will you learn it?
 
*** What do you need to learn in order to do it, how will you learn it?
 
*** What fears or concerns do you have?
 
*** What fears or concerns do you have?
 +
** Add links for your [[Fall 2011 0.1 Release|0.1 Release]] when it's done.
 +
 +
== Weeks 5-7 (Oct 3-20) - JavaScript ==
 +
 +
* [http://bonsaiden.github.com/JavaScript-Garden/ JavaScript Garden]
 +
* [http://yuiblog.com/crockford/ The JavaScript Programming Language, videos by Douglas Crockford]
 +
 +
* '''TODO'''
 +
** Watch online videos
 +
** Blog your notes and reactions.  What did you learn that you didn't know?  What surprised you most about JavaScript?  What are three tricks and/or tips you learned watching these?
 +
** Work on your 0.2 and blog about your progress.  Which bugs are you working on?  How is it going?  What is working?
 +
 +
== Week 8 (Oct 31) Introduction to Mozilla Firefox Development and Mouse Lock ==
 +
 +
* Guest speaker, Mozilla co-founder [http://twitter.com/shaver Mike Shaver]
 +
 +
* Mouse Lock API
 +
** ''Question'': why does the web need mouse lock?  Answer: [http://i.imgur.com/ZzJSH.png gaming and other immersive user interfaces], [http://www.bytearray.org/?p=3732 work to implement in Flash with demo]
 +
** ''Question'': What will we be implementing? Answer: [http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html Mouse Lock W3C Spec], [https://twitter.com/#!/vincent_scheib/status/129295387050782720 written by Google's Vincent Scheib]
 +
** ''Question'': Where will we do our work?
 +
*** Mozilla Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=633602
 +
*** Our Mozilla work will go here: https://github.com/humphd/mozilla-central on the '''mouselock''' branch.
 +
*** Parallel WebKit/Chromium Work
 +
**** Chromium Bug: http://code.google.com/p/chromium/issues/detail?id=72754
 +
**** WebKit Bug: https://bugs.webkit.org/show_bug.cgi?id=68468
 +
**** Chromium Linux - http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_gtk.cc?view=log
 +
**** Chromium Windows - http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.cc?view=log
 +
**** Chromium Mac - http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_mac.mm?view=log
 +
 +
* Resources
 +
** [https://developer.mozilla.org/En/Developer_Guide/Build_Instructions Building Firefox]
 +
** [http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/ How Browsers Work]
 +
** [https://developer.mozilla.org/en/Participating_in_the_Mozilla_project Other Mozilla Developer resources]
 +
 +
* TODO
 +
** Fork and clone https://github.com/humphd/mozilla-central.
 +
** Add https://github.com/doublec/mozilla-central as an upstream remote (e.g., <code>git remote add upstream git://github.com/doublec/mozilla-central.git</code>) so you can keep your repo up-to-date with Mozilla's repo.
 +
** Get a http://bugzilla.mozilla.org account and CC yourself on [https://bugzilla.mozilla.org/show_bug.cgi?id=633602 bug 633602] so you will get updates.
 +
** Do a '''debug''' build of Firefox.  Figuring out what this means is part of the task.
 +
** Read the [http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html Mouse Lock W3C Spec].  Read it again.  Now help fill-out the information on [[Implementing the Mouse Lock API in Firefox]].
 +
** Read [http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/ How Browsers Work] and start thinking like a browser developer!
 +
 +
* Notes
 +
** We won't meet for class in person on Thursday.  Please plan to work from home/school on irc.
 +
** Use [irc://irc.mozilla.org/seneca #seneca] and [irc://irc.mozilla.org/paladin #paladin] on irc to ask questions.  Don't be shy about asking any questions.  Use [[Mouse Lock Implementation FAQ]] page in order to record questions you have, answers you have, things you overhear in person or on irc, etc.

Latest revision as of 09:31, 1 November 2011

Introduction

The fall is broken into two parts. First, general open source and and community (i.e., Mozilla) specific skills and ideas are taught. Students learn how to deal with the tools, techniques, and practices of their chosen project and its community. Second, we go deep into open web and browser development with a case study.

Part I – Essential Open Source Development Skills and Concepts

Week 1 (Sept 5) Course introduction

Editor(s): David Humphrey

  • TODO
    • Pick one Closed and one Open license/eula, and read them from start to finish. Pick 3 things that struck you about them to present in class next time.
    • Create an account on this wiki for yourself
    • Create a personal wiki page on this wiki, and add a link for yourself to the People Fall 2011 Open Source Students pages
    • Create a blog (wordpress or blogspot or whatever) and create a feed category or tag called "open source"
    • Read the Blog Guidelines for instructions on how to use your blog in the course
    • Add your blog feed and info to the Open Source@Seneca Planet List so that it appears in the OpenSource@Seneca Planet
    • Blog on your reactions to the readings for this week.
    • Begin learning how to use IRC for communication. We'll cover this in detail next week, but it's better to get started early.

Week 2 (Sept 12) - Collaborative and Community Development Practices

Editor(s): David Humphrey, (need some volunteers) - http://etherpad.mozilla.com:9000/sept12-seneca-notes

  • TODO
    • Ensure all TODO items from week 1 are completed
    • Comment in at least one other student's blog with your feedback to what they wrote. Reminder: Comments have to be approved for them to be be shown on your blog. Check your blog settings.
    • Watch online lectures for this week about open source community, blog your reactions to something that struck you or resonated.
    • Talk to the project communities on irc for info about each project, potential work you might do. First milestone due in 3 weeks.
    • Create a github account, if you haven't already, and update Fall 2011 Open Source Students
    • Quiz on Thursday on Raymond's essay.

Weeks 3, 4 (Sept 19, 26) - Distributed Revision Control with Git

  • Introducing Git
    • Client Server (SVN) and Distributed (Git)
    • Snapshots vs. versioned files.
    • Checksums, SHA-1
    • File States:
      • Untracked (not known to git)
      • Tracked: modified, staged, committed
    • The staging area
  • Basic Git Commands and Concepts
    • git help <command>
    • git init
    • git clone
    • git add
    • git commit, git commit -m, git commit -a
    • git rm
    • git mv
    • git status
    • git log
    • git diff, git diff --staged
    • .gitignore
    • Branches
      • HEAD, master
      • git checkout, git checkout -b
      • git branch, git branch -a, git branch -d, git branch --merged, git branch --contains
      • git merge
    • Remotes
      • origin, origin/branch
      • git remote
      • git remote add
      • git fetch
      • git pull
      • git push
    • gitk
  • TODO
    • Watch video tutorials.
    • Read chapters 1 and 2 of Pro Git
    • Install and Setup git locally
    • Create a github account
    • Clone the github repo for your project(s)
    • Blog about your experiences getting to know git:
      • What problems did you have?
      • What did you learn in the process?
      • What surprised you?
    • Blog about your project:
      • What are you doing for 0.1?
      • What does it involve in the way of technologies?
      • What do you need to learn in order to do it, how will you learn it?
      • What fears or concerns do you have?
    • Add links for your 0.1 Release when it's done.

Weeks 5-7 (Oct 3-20) - JavaScript

  • TODO
    • Watch online videos
    • Blog your notes and reactions. What did you learn that you didn't know? What surprised you most about JavaScript? What are three tricks and/or tips you learned watching these?
    • Work on your 0.2 and blog about your progress. Which bugs are you working on? How is it going? What is working?

Week 8 (Oct 31) Introduction to Mozilla Firefox Development and Mouse Lock

  • Notes
    • We won't meet for class in person on Thursday. Please plan to work from home/school on irc.
    • Use #seneca and #paladin on irc to ask questions. Don't be shy about asking any questions. Use Mouse Lock Implementation FAQ page in order to record questions you have, answers you have, things you overhear in person or on irc, etc.