Open main menu

CDOT Wiki β

Changes

DPS909 and OSD600 Fall 2010 Weekly Schedule

10,642 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 ==
 
* Open, collaborative, geographically dispersed development and the web
** Synchronous vs. Asynchronous Communication
** Timezones
* The function and value of community
** [http://www.mozilla.org/foundation/ Mozilla Foundation (MoFo)]
** [http://en.wikipedia.org/wiki/Mozilla_Corporation Mozilla Corporation (MoCo)], [http://www.oxymoronical.com/experiments/mozmap/ map of offices/individuals]
** Mozilla Community
*** Other companies or institutions working on Mozilla technology
*** Individual Contributors
 
* Where can the Mozilla community be found? [[Overview of Mozilla Communication]]
** IRC - [https://wiki.mozilla.org/Education/Learning/Irc Intro to Internet Relay Chat (IRC)]
** [http://en.wikipedia.org/wiki/Blog Blogs] and [http://en.wikipedia.org/wiki/Planet_(blog) Planets]
*** How to blog?
*** How do people use blogs?
*** [http://planet.mozilla.org Planet Mozilla]
*** [http://zenit.senecac.on.ca/~chris.tyler/planet/ OpenSource@Seneca Planet]
** [http://twitter.com Twitter]
*** Use of Twitter in conjunction with blogging
** [[Overview_of_Mozilla_Communication#Wikis|Wikis]]
*** [[Main_Page|Seneca Course Wiki]]
*** [http://developer.mozilla.org Mozilla Developer Center (MDC)]
*** [http://wiki.mozilla.org Mozilla Wiki (wikimo)]
*** 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://meta.wikimedia.org/wiki/Help:Editing Editing help]
** [[Overview_of_Mozilla_Communication#Weekly_Calls|Public, project-wide status calls]]
** [[Overview_of_Mozilla_Communication#Mailing_Lists.2FNewsgroups|Mailing Lists]]
** [[Overview_of_Mozilla_Communication#Bugzilla|Bugzilla]] - http://bugzilla.mozilla.org
** [[Overview_of_Mozilla_Communication#.27The_Tree.27:_Tinderbox.2C_HG.2C_Try_Server.2C_Talos|The "Tree"]]
*** Mercurial (hg)
*** Tinderbox, Tinderbox Push Log
 
* '''Readings/Resources'''
** [[Mozilla Community]] (on-line lecture) by Mozilla's [https://wiki.mozilla.org/User:Beltzner Mike Beltzner]
** [http://arstechnica.com/open-source/news/2009/06/academic-source-code-dust-up-symptom-of-cs-education-ills.ars Ars Technica article on the value of academic blogging and open source]
 
* '''Lab'''
** [[Firefox Performance Testing Lab Fall 2010|Firefox Performance Testing]]
 
* '''TODO'''
** Ensure all TODO items from week 1 are '''completed'''
** Complete Lab as a group by end of week
** Begin (or continue) reading the [http://zenit.senecac.on.ca/~chris.tyler/planet/ CDOT Blog Planet], as this is where we will share class announcements and discussions.
** Consider creating an account on Twitter to use in conjunction with your blog
** Dial-in to one of the Mozilla Status calls happening this week, and blog about the experience. I'd recommend the Firefox call.
** Join at least one Mozilla Mailing list
** '''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.
 
 
== Week 3 (Sept 20) – Bugs, Bugzilla, and Testing ==
 
* What is a bug?
** Open vs. Closed Bug Tracking
*** Microsoft - http://connect.microsoft.com/
*** Mozilla - https://bugzilla.mozilla.org
*** Chrome - http://code.google.com/p/chromium/issues/list
** Searching for Bugs
** How to File a Bug
** Dupes, Depends, Blocks
** Following bugs through bugzilla
 
* '''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'''
** Continuing... [[Firefox Performance Testing Lab Fall 2010|Firefox Performance Testing]]
 
* '''TODO'''
** 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.