Fall 2007 Weekly Schedule

From CDOT Wiki
Revision as of 22:07, 18 November 2007 by David.humphrey (talk | contribs)
Jump to: navigation, search

Introduction

The fall is broken into two parts. First, open source and Mozilla specific skills and ideas are taught. Students learn how to deal with the tools, techniques, and practices of the Mozilla project and its community. Second, students are taught about Mozilla’s extensibility model, and how to write Firefox Addons and Extensions.

Part I – Essential Mozilla Development Skills and Concepts

Week 1 (Sept 3) Course introduction

Week 2 (Sept 10) - Collaborative and Community Development Practices

Week 3 (Sept 17) - 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
  • Using Make to build software
    • Intro to Make
    • Mozilla has over 50,000 Makefiles
  • Building Mozilla from Source
  • TODO
    • Watch online lectures about the Mozilla build system.
    • Practice creating a simple makefile
    • Do a Debug Mozilla build on your home machine and blog about the experience
    • Finalize your project choice, form a group (if you are working in a group), and create a proper project page for your project in the Project List. See the full project instructions.
  • NOTE
    • Thursday's class will be special, as we will have a guest speaker flying here to talk to you about the build. Please have your build done before Thursday so you can ask questions and understand what he's talking about.

Week 4 (Sept 24) - Navigating the Mozilla source tree

  • TODO
    • Lab - Learning to use LXR/MXR effectively: Source Code Reading Lab - Blog about your experience.
    • Lab - cvs diff and patch: Incremental Build Lab
    • Practice doing incremental builds and applying patches
    • Identify the main file(s) that your project will be changing and blog about your experience finding them and your observations about those files.
    • State your 0.1 release target on your project's wiki page (explain what you will have completed by the time you reach 0.1 release). Discuss this with your professor.
    • Review, and where appropriate, comment on blog postings by other students.

Week 5 (Oct 1) – Bugs, Bugzilla, and Debugging

  • TODO
    • Create a bugzilla account
    • Find 5+ bugs related to your project, and add them to your project wiki page
    • CC yourself on two bugs that relate to your project
    • Watch a user in bugzilla for the week and blog about the experience (Ted, Andrew, someone else related to your project)
    • Come up with some ways for others to contribute to your project and add them to your project wiki page. Remember, you're asking for help, so be clear about what you need done, and make it easy so that people will pick you vs. another project.

Week 6 (Oct 8) – Developing the Browser

  • Readings/Resources
  • TBA
  • TODO
    • Complete the lab and post a patch to your personal wiki page.
    • Look at the list of current FF3/Gecko1.9 blocker bugs and CC yourself on three bugs that are related to your project, or that you find interesting.
    • Write a blog summary of our experience watching a user in bugzilla from last week
    • Write a blog summary updating your progress on your 0.1 release.
    • Make sure your project wiki page is up to date and matches your 0.1 release goals.
    • Start looking for opportunities to help other projects as part of your contrib mark. Each student should have a list of ways you can get involved on their project wiki page.


Week 7 (Oct 15) – Extending the Browser

  • TODO
    • Complete the lab and post the .xpi to your personal wiki page.
    • Blog about your experience writing your first extension. What was hard? What did you find confusing?
    • Complete your 0.1 release and write a blog post about what you've created, how to use it, and where to give feedback
    • Make sure you are ready for FSOSS (e.g., registered, read the assignment)
  • NOTE
    • Thursday's class will be special, as we will have a guest speaker (Mark Finkle) flying here to talk to you about Firefox Extensions. Please have your lab completed before Thursday so you can ask questions and understand what he's talking about. Those of you working on extension related projects should also take the opportunity to ask more questions.


Week 8 (Oct 29) – FSOSS Reflections, Debugging Continued

  • FSOSS assignment due this week (BSD - paper, CPA - blog post)
  • Class discussion of FSOSS of Open Source
  • More on Debugging (VS.NET, gdb, dtrace)
  • TODO
    • Complete any outstanding labs or blog/wiki/project requirements.
    • Actively seek out contrib opportunities with other projects in the class
    • We are looking for help transcoding and posting videos from FSOSS and the guest talks for contrib marks. If you are interested, please speak to Chris or Dave.
  • NOTE
    • Thursday's class will be special, as we will have a guest speaker (Vladimir Vukicevic) flying here to talk to you about Mozilla Debugging Techniques and Tools.


Week 9 (Nov 5) – Bug Fixing

  • TODO
    • Complete your 0.2 plan and update your project wiki page.
    • Blog about your 0.2 plans as well as any help you need from other students
    • Complete and add 2 new contributions to your personal list of contributions.
    • Complete this week's lab (hopefully during class time). Make sure you complete the Wiki and Blog requirements in the lab.


Week 10 (Nov 12) – XPCOM - Modular Development in Mozilla

  • TODO
    • 0.2 release is due sometime this week.
      • Update your wiki page
      • Upload your release "code"
      • Blog about your release, giving any instructions on how to use it, screenshots of it being used, etc.
    • Complete this week's lab before Thursday's lecture. Put a zip with all your files on your personal wiki page when done.
  • NOTE


Week 11 (Nov 19) – XPCOM II - Using XPCOM from JS/Chrome

  • TODO
    • Complete lab
    • Blog about the experience
    • Update your project wiki page with a final roadmap for your 0.3 release