Difference between revisions of "DPS909 and OSD600 Fall 2010 Weekly Schedule"
(10 intermediate revisions by the same user not shown) | |||
Line 26: | Line 26: | ||
** '''Blog''' on your reactions to the readings for this week, and also introduce yourself. | ** '''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. | ** 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 == | == Week 2 (Sept 13) - Collaborative and Community Development Practices == | ||
Line 96: | Line 97: | ||
* '''Readings/Resources''' | * '''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 | ** [[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] | ** [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''' | * '''Lab''' | ||
Line 105: | Line 108: | ||
** Create a [https://bugzilla.mozilla.org bugzilla] account | ** Create a [https://bugzilla.mozilla.org bugzilla] account | ||
** CC yourself on some of the Chrome Experiments bugs in Mozilla's bugzilla | ** 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 | ** 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 | ** 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]]. | ** 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. |
Latest revision as of 09:53, 1 November 2010
Contents
Week 1 (Sept 7) Course introduction
- Course introduction
- Intro to open source
- Intro to Mozilla project
- Mozilla Project Overview
- Community, Foundation, Corporation
- The Mozilla Manifesto
- Mozilla platform and technologies
- Readings/Resources
- "Cathedral and Bazaar" by Eric Raymond
- "Revolution OS" [film] (see also http://www.revolution-os.com/ or QA 76.9.A25 R68 2003)
- Article about Mozilla and Firefox in the New York Times
- TODO
- Complete readings and watching/listening to this weeks resources.
- 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 page as well as the Winter 2010 students page
- 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, and also introduce yourself.
- 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 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
- Mozilla Foundation (MoFo)
- Mozilla Corporation (MoCo), 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 - Intro to Internet Relay Chat (IRC)
- Blogs and Planets
- How to blog?
- How do people use blogs?
- Planet Mozilla
- OpenSource@Seneca Planet
- Twitter
- Use of Twitter in conjunction with blogging
- Wikis
- Seneca Course Wiki
- Mozilla Developer Center (MDC)
- Mozilla Wiki (wikimo)
- Intro to course wiki
- "Yes, you can edit it!"
- Common Editing tasks, History, Reverting changes
- Watches, Recent Changes
- Comparing selected versions (cf. diff)
- Editing help
- Public, project-wide status calls
- Mailing Lists
- Bugzilla - http://bugzilla.mozilla.org
- The "Tree"
- Mercurial (hg)
- Tinderbox, Tinderbox Push Log
- Readings/Resources
- Mozilla Community (on-line lecture) by Mozilla's Mike Beltzner
- Ars Technica article on the value of academic blogging and open source
- TODO
- Ensure all TODO items from week 1 are completed
- Complete Lab as a group by end of week
- Begin (or continue) reading the 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. 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.
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
- Open vs. Closed Bug Tracking
- Readings/Resources
- Bugzilla for Humans (video by Mozilla's Johnathan Nightingale)
- The Life-cycle of a Bug (on-line lecture) by Mozilla's Mike Connor
- Account of fixing a first bug, by Mozilla's Atul Varma
- Example of a bug off the rails
- Lab
- Continuing... Firefox Performance Testing
- TODO
- Create a 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 FSOSS or join as a volunteer.
- Look at project list and get your 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: 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
- Finding and Installing build dependencies
- Readings/Resources
- How the Mozilla Build Works (on-line lecture) by Mozilla's J. Paul Reed
- Mozilla's Build System (on-line lecture) by the owner of the Mozilla Build System, Ted Mielczarek
- Introduction to Mercurial. The full book is excellent to read or use as a reference, but this section is a must.
- Great Introduction to GCC/G++ (Brian Gough's An Introduction to GCC for the GNU Compilers gcc and g++)
- Introduction to Make and Makefiles
- TODO
- Watch online lectures about the Mozilla build system.
- Build Firefox (or 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
ction to Make and Makefiles]
- TODO
- Watch video tutorials.
- Read relevant sections in 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 0.1 release.
- Join #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
- 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.