Difference between revisions of "OSD600 Winter 2010 Weekly Schedule"

From CDOT Wiki
Jump to: navigation, search
Line 88: Line 88:
 
** 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 ==
+
== Week 3 and 4 (Jan 25) - Managing and Building Large Source Trees ==
  
 
* Revision Control Systems (RCS)
 
* Revision Control Systems (RCS)
Line 133: Line 133:
 
*** '''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.
 
*** '''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.
 
** '''Pick your project''' and '''complete''' your [[Winter 2010 OSD600 Initial Project Plan|Initial Project Plan]] due by Friday at midnight.
 +
 +
== Week 5 (Feb 8) - Navigating the Mozilla source tree ==
 +
 +
* Learning to be Lost Productively
 +
** Adding to Mozilla is not like writing a program from scratch
 +
** Leverage the existing code by reading, studying, and copying existing code and styles
 +
* Mozilla Source Code structure and style
 +
** [https://developer.mozilla.org/En/Mozilla_Coding_Style_Guide Mozilla Coding Style Guide]
 +
** [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Directory_Structure Mozilla directory structure]
 +
** [https://developer.mozilla.org/En/Source_code_directories_overview Mozilla Source Code Directory Overview]
 +
** [http://www.mozilla.org/hacking/portable-cpp.html Portability Rules for C++]
 +
* Searching for Code
 +
** http://mxr.mozilla.org
 +
*** [http://mxr.mozilla.org/mozilla-central/ Firefox Source code (trunk)]
 +
*** [http://mxr.mozilla.org/comm-central/ Thunderbird, SeaMonkey Source (trunk)]
 +
** [http://scotland.proximity.on.ca/dxr DXR] - a Seneca/Mozilla project to add more data to MXR.
 +
* How to Make Changes
 +
** building with ''client.mk,'' ''clobber'' builds, ''incremental builds''
 +
** Working with Patches
 +
*** [http://developer.mozilla.org/en/docs/Creating_a_patch Creating a patch]
 +
 +
* '''Readings/Resources'''
 +
** Reading: Chapter 11 (pages 379-397) of Diomidis Spinellis, ''Code Reading: The Open Source Perspective'', ISDN 0-201-79940-5 - [http://www.spinellis.gr/codereading/ information about the book] - [http://proquest.safaribooksonline.com/?uiCode=seneca&xmlId=0201799405 eBook version via Seneca Library and Safari]
 +
 +
* '''TODO'''
 +
** Lab - [[Real World Mozilla Source Code Reading Lab|Source Code Reading Lab]]
 +
** Lab - [[Working with Patches Lab|Working with patches]]
 +
** Begin work on your project, based on your initial project plan.
 +
** Review, and where appropriate, comment on blog postings by other students.

Revision as of 10:48, 9 February 2010

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

  • 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

  • Project discussion
  • 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 and 4 (Jan 25) - Managing and Building Large Source Trees

  • Revision Control Systems (RCS)
    • Introduction to RCS
    • cvs, svn, 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
    • Operating systems, cross-platform builds
    • Machine requirements
      • Fast I/O, lots of RAM (for linking)
    • Tools
    • Libraries
    • Settings
      • Environment variables, PATHs
  • Build Tools
    • autoconf
    • make
    • Common open source approaches to automation (Python, Bash)
  • 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.

Week 5 (Feb 8) - Navigating the Mozilla source tree