Changes

Jump to: navigation, search

DPS909 and OSD600 Fall 2010 Weekly Schedule

6,218 bytes added, 10:53, 1 November 2010
no edit summary
** '''Blog''' on your reactions to the readings for this week, and also introduce yourself.
** 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 13) - Collaborative and Community Development Practices ==
* '''Readings/Resources'''
** [http://blog.johnath.com/2010/02/04/bugzilla-for-humans/ Bugzilla for Humans] (video by Mozilla's Johnathan Nightingale)
** [[The Life-cycle of a Bug]] (on-line lecture) by Mozilla's Mike Connor
** [http://www.toolness.com/wp/?p=25 Account of fixing a first bug, by Mozilla's Atul Varma]
** [https://bugzilla.mozilla.org/show_bug.cgi?id=578967 Example of a bug off the rails]
* '''Lab'''
** Create a [https://bugzilla.mozilla.org bugzilla] account
** CC yourself on some of the Chrome Experiments bugs in Mozilla's bugzilla
** Blog about your work learning and using bugzilla, about the things you learned about using it, what was good, what was bad, and any new tools/techniques you learned this week.
** Work with #seneca on irc to figure out which bugs you need to file on your Chrome tests
** Be working on your first project release. Ask for help if you're stuck
** Register for [http://fsoss.ca FSOSS] or join as a [[Volunteer|volunteer]].
** Look at [[Fall 2010 Mozilla Open Source Project List|project list]] and get your [[Fall 2010 DPS909 and OSD600 Initial Project Plan 0.0|initial project]] plan done.
 
 
== Weeks 4, 5 (Sept 27) - Building Mozilla ==
 
* Introduction to RCS
** SVN, Mercurial, Git (more on git later)
* Build Environments
** Finding and Installing build dependencies
*** Example: [https://wiki.mozilla.org/MozillaBuild Mozilla Build] for Windows
*** Using yum, MacPorts, etc.
** Operating systems, cross-platform builds
** Machine requirements
*** Fast I/O, lots of RAM (for linking)
** Tools
** Libraries
** Settings
*** Environment variables, PATHs
 
* Build Tools
** [http://www.gnu.org/software/autoconf/ autoconf]
** [http://www.gnu.org/software/make/ make]
** Common open source approaches to automation (Python, Bash)
 
* '''Readings/Resources'''
** [[How the Build Works|How the Mozilla Build Works]] (on-line lecture) by Mozilla's J. Paul Reed
** [http://sparc.senecacollege.ca/pub/mozilla.lecture/mozilla-20073/1-Mozilla-build-system.avi Mozilla's Build System] (on-line lecture) by the owner of the Mozilla Build System, Ted Mielczarek
** [http://hgbook.red-bean.com/read/a-tour-of-mercurial-the-basics.html Introduction to Mercurial]. The [http://hgbook.red-bean.com/ full book] is excellent to read or use as a reference, but this section is a must.
** [http://vocamus.net/dave/?p=607 Great Introduction to GCC/G++] (Brian Gough's [http://www.network-theory.co.uk/docs/gccintro/ An Introduction to GCC for the GNU Compilers gcc and g++])
** [http://www.eng.hawaii.edu/Tutor/Make/ Introduction to Make and Makefiles]
 
* '''TODO'''
** '''Watch''' online lectures about the Mozilla build system.
** [http://developer.mozilla.org/en/docs/Build_Documentation Build Firefox] (or [https://developer.mozilla.org/En/Developer_Guide/Source_Code/Getting_comm-central Thunderbird]) on at least one of Windows/Linux/OSX, and preferrabely two platforms. Blog about the experience:
*** What problems did you have?
*** What did you learn in the process?
*** What surprised you?
*** '''Note:''' Do not put build output in your blog. You can use your wiki pages for that. The blog should be commentary on the experience of building a large piece of open source software.
 
 
== Weeks 6, 7 (Oct 11) - Distributed Revision Control ==
 
* 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 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]
** 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]
** [http://progit.org/book/ Pro Git, online book]
ction to Make and Makefiles]
** [https://github.com/ github server]
*** [http://help.github.com/ github documentation]
 
* '''TODO'''
** '''Watch''' video tutorials.
** '''Read''' relevant sections in [http://progit.org/book/ Pro Git]
** '''Install'' and '''Setup''' git locally
** '''Create''' a github account
** '''Create''' a git/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?
** '''Complete''' and '''Submit''' your [[DPS909 and OSD600 Fall 2010 0.1 Release|0.1 release]].
** '''Join''' [irc://irc.mozilla.org/webmademovies #webmademovies] irc channel.
 
== Week 8 (Nov 1) - JavaScript ==
 
* This week's work is an independent study of JavaScript, aimed at getting you quickly acquainted with what JavaScript is and is not. By watching lectures and building a cool JavaScript web demo, you will get a chance to take your knowledge of JS to a new level.
* JavaScript has become the most used programming language in the world. Currently, Mozilla, Apple, Google, and Microsoft all have implementations, and actively compete with each other.
* Should you learn JavaScript too? http://shouldilearnjavascript.com/
 
===Online Video Lectures by Yahoo!'s Douglas Crockford===
 
* The JavaScript Programming Language:
** [http://video.yahoo.com/video/play?vid=111593 part 1]
** [http://video.yahoo.com/video/play?vid=111594 part 2]
** [http://video.yahoo.com/video/play?vid=111595 part 3]
** [http://video.yahoo.com/video/play?vid=111596 part 4]
 
* Advanced JavaScript:
** [http://video.yahoo.com/video/play?vid=111585 part 1]
** [http://video.yahoo.com/video/play?vid=111586 part 2]
** [http://video.yahoo.com/video/play?vid=111587 part 3]
 
* '''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?
** Create an interesting open video mashup. Use HTML5 video and online services/libraries, tied together with JavaScript, to build a cool demo. Make a web demo that uses at least two of the following with HTML5 video:
*** jQuery, YUI, or Dojo
*** Google Maps API
*** Twitter API
*** Flickr API
** You may work alone or in a group of 2, and may collaborate with anyone, even other groups. You will be asked to present your demo live in class on Tuesday November 9th.

Navigation menu