Changes

Jump to: navigation, search

DPS909 and OSD600 Fall 2011 Weekly Schedule and Notes

8,488 bytes added, 10:31, 1 November 2011
Week 8 (Oct 31) Introduction to Mozilla Firefox Development and Mouse Lock
** Proprietary Licenses, EULAs
*** [http://www.microsoft.com/About/Legal/EN/US/IntellectualProperty/UseTerms/Default.aspx Microsoft]
*** [http://www.apple.com/legal/sla/ Apple], [http://www.cnet.com/8301-30976_1-20068778-10348864.html Richard Dreyfuss reads the iTunes EULA]
*** [http://www.skype.com/intl/en-us/legal/terms/tou/ Skype]
** Open Licenses
* '''Readings/Resources'''
** [http://www.firstmonday.org/issueshtbin/issue3_3cgiwrap/raymondbin/ ojs/index.php/fm/issue/view/90 "Cathedral and Bazaar"] by Eric Raymond
** [http://video.google.ca/videoplay?docid=7707585592627775409&q=open+source "Revolution OS"] [film] (see also http://www.revolution-os.com/ or QA 76.9.A25 R68 2003)
** '''Blog''' on your reactions to the readings for this week.
** Begin learning how to use [[Irc|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
 
* Collaborative development using on-line tools
* [[Irc|Intro to Internet Relay Chat (IRC)]]
* [http://en.wikipedia.org/wiki/Blog Blogs] and [http://en.wikipedia.org/wiki/Planet_(blog) Planets]
** [http://planet.mozilla.org Planet Mozilla]
** [http://zenit.senecac.on.ca/~chris.tyler/planet/ OpenSource@Seneca Planet]
* Using Wikis for collaborative writing
** [http://www.wikipedia.org Wikipedia] and [http://www.mediawiki.org/ MediaWiki]
** Intro to course wiki
*** "Yes, you can edit it!"
*** Common Editing tasks, History, Reverting changes
*** Watches, [[Special:Recentchanges|Recent Changes]]
*** Comparing selected versions (cf. diff)
*** [http://developer.mozilla.org/en/docs/Help:Editing Editing help]
*** http://developer.mozilla.org (a.k.a., devmo, MDC)
*** http://wiki.mozilla.org (a.k.a., wmo or wiki.m.o)
** Etherpad
*** http://etherpad.mozilla.com:9000/
*** http://typewith.me/
** Twitter
* Project discussion
** 0.1 is due Sept 29th
** Popcorn, Popcorn-Maker, Popcorn-Maker Final Cut Pro, Paladin and Gladius, Processing.js, Firefox, Thunderbird, etc.
 
* '''Readings/Resources'''
* [http://ilearn.senecac.on.ca/mozillalectures/MozillaLecture1Part1_Broadband.mov (on-line lecture) Mike Beltzner on Mozilla Community]
* '''Getting started in Open Source projects, or "Learning to be at the festival"''' (on-line lecture) by David Humphrey (given at [http://www.mozilla24.com/en-US/ Mozilla24 in Stanford]): Formats - [http://videos.mozilla.org/mozilla24/1-16_david.mpg mpg], [http://videos.mozilla.org/mozilla24/1-16_david.ogg ogg], [http://videos.mozilla.org/mozilla24/1-16_david.mp4 mp4]
 
* '''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. <b>Reminder: Comments have to be approved for them to be be shown on your blog. Check your blog settings.</b>
** 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 [https://github.com/ 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
 
* '''Readings/Resources'''
** [http://git-scm.com/ Download and Install git]
** [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://sixrevisions.com/resources/git-tutorials-beginners/ Overview of Git Tutorials (many good ones)]
** Videos
*** [http://excess.org/article/2008/07/ogre-git-tutorial/ Git Basic Tutorial]
*** [http://www.youtube.com/watch?v=OFkgSjRnay4&feature=related Scott Chacon's more advanced tutorial of git]
*** [http://www.youtube.com/watch?v=4XpnKHJAok8 Linus Torvalds at Google discussing git's distributed nature]
** Github
*** [https://github.com/ github server]
*** [http://help.github.com/ github documentation]
 
* '''TODO'''
** '''Watch''' video tutorials.
** '''Read''' chapters 1 and 2 of [http://progit.org/book/ 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 [[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.

Navigation menu