Difference between revisions of "OSD600 Winter 2010 Weekly Schedule"
Line 87: | Line 87: | ||
** '''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> | ** '''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. | ** Watch online lectures for this week about open source community, blog your reactions. | ||
+ | |||
+ | == Week 3 (Jan 25) - Managing and Building Large Source Trees == | ||
+ | |||
+ | * Revision Control Systems (RCS) | ||
+ | ** Introduction to RCS | ||
+ | ** [http://en.wikipedia.org/wiki/Concurrent_Versions_System cvs], [http://en.wikipedia.org/wiki/Subversion_(software) svn], [http://en.wikipedia.org/wiki/Mercurial_(software) hg] | ||
+ | ** Common concepts and tasks | ||
+ | *** Repository | ||
+ | *** Local Working Copy | ||
+ | *** RCS Changes (changesets) vs. Backups | ||
+ | *** Typical read-only activities: Checkout, Update, Log, Status | ||
+ | |||
+ | * 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 | ||
+ | *** Virtualization - [http://www.virtualbox.org/ Virtual Box] | ||
+ | ** 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. | ||
+ | ** '''Read''' the material on Mercurial, GCC, and Make | ||
+ | ** [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 preferably 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. | ||
+ | ** '''Pick your project''' and '''complete''' your [[Winter 2010 OSD600 Initial Project Plan|Initial Project Plan]] due by Friday at midnight. |
Revision as of 11:21, 26 January 2010
Contents
Introduction
The semester is broken into two parts. First, general open source and and community (i.e., Mozilla) specific skills and ideas are taught. Students learn how to deal with the tools, techniques, and practices of their chosen project and its community. Second, students are taught about extensibility models, JavaScript, how to write Add-ons and Extensions, web libraries.
Part I – Essential Open Source Development Skills and Concepts
Week 1 (Jan 11) 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)
- Mike Shaver (Mozilla Corporation VP of Engineering) discusses the Mozilla Manifesto [MP3]
- 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 (Jan 18) - 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
- Mozilla Education 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
- Project discussion
- Readings/Resources
- Mozilla Community (on-line lecture) by Mozilla's Mike Beltzner
- Getting started in Open Source projects, or "Learning to be at the festival" (on-line lecture) by David Humphrey (given at Mozilla24 in Stanford): Formats - mpg, ogg, mp4
- Ars Technica article on the value of academic blogging and open source
- Code Swarm Community Commits Visualizations
- TODO
- Ensure all TODO items from week 1 are completed
- Begin (or continue) reading the CDOT Blog Planet, as this is where we will share class announcements and discussions.
- Create Wiki Accounts on MDC and wikimo
- 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 (Jan 25) - Managing and Building Large Source Trees
- Revision Control Systems (RCS)
- Build Environments
- Finding and Installing build dependencies
- Example: Mozilla Build for Windows
- Using yum, MacPorts, etc.
- Operating systems, cross-platform builds
- Virtualization - Virtual Box
- 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.
- Read the material on Mercurial, GCC, and Make
- Build Firefox (or Thunderbird) on at least one of Windows/Linux/OSX, and preferably 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.
- Pick your project and complete your Initial Project Plan due by Friday at midnight.