DPS909 and OSD600 Fall 2010 Weekly Schedule
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.