Difference between revisions of "DPS909 and OSD600 Fall 2008 Weekly Schedule"
(→Week 3 (Sept 15) - Managing and Building large source trees) |
(added week 4 materials) |
||
Line 104: | Line 104: | ||
* '''NOTE''' | * '''NOTE''' | ||
** Tuesday's class will be special, since the [https://wiki.mozilla.org/DeveloperDays/TorontoSept2008/Schedule Mozilla Developer Day] will be happening downstairs in '''T1014''', and '''S1209'''. You are all invited to attend any/all of the Monday/Tuesday sessions. There will be no formal class/lab, as we will be attending the event. | ** Tuesday's class will be special, since the [https://wiki.mozilla.org/DeveloperDays/TorontoSept2008/Schedule Mozilla Developer Day] will be happening downstairs in '''T1014''', and '''S1209'''. You are all invited to attend any/all of the Monday/Tuesday sessions. There will be no formal class/lab, as we will be attending the event. | ||
+ | |||
+ | |||
+ | == Week 4 (Sept 22) - 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 | ||
+ | * Mozilla Source Code structure and style | ||
+ | ** [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Directory_Structure Mozilla directory structure] | ||
+ | ** [http://mozilla.org/hacking/mozilla-style-guide.html Developer style guide] | ||
+ | ** [http://www.mozilla.org/hacking/portable-cpp.html Portability Rules for C++] | ||
+ | * Searching for Code | ||
+ | ** http://mxr.mozilla.org | ||
+ | ** http://zenit.senecac.on.ca/wiki/dxr | ||
+ | * How to Make Changes | ||
+ | ** building with ''client.mk'' vs. ''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 - Learning to use LXR/MXR effectively: [http://zenit.senecac.on.ca/wiki/index.php/Real_World_Mozilla_Source_Code_Reading_Lab Source Code Reading Lab] - Blog about your experience. | ||
+ | ** Lab - cvs diff and patch: [http://zenit.senecac.on.ca/wiki/index.php/Real_World_Mozilla_Incremental_Build_Lab Incremental Build Lab] | ||
+ | ** Practice doing incremental builds and applying patches | ||
+ | ** 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. |
Revision as of 09:17, 22 September 2008
Introduction
The fall is broken into two parts. First, general open source and and community (i.e., Mozilla, OpenOffice.org) 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, and how to write Add-ons and Extensions.
Part I – Essential Open Source Development Skills and Concepts
Week 1 (Sept 1) 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
- Intro to the OpenOffice.org project
- 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 discusses the Mozilla Manifesto [MP3]
- TODO
- 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
- 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.
- 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 8) - Collaborative and Community Development Practices
- Collaborative development using on-line tools
- Intro to Internet Relay Chat (IRC)
- Blogs and Planets
- Using Wikis for collaborative writing
- Wikipedia and MediaWiki
- 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
- Wikis used by Mozilla and OpenOffice.org
- http://developer.mozilla.org (a.k.a., devmo, MDC)
- http://wiki.mozilla.org (a.k.a., wmo or wiki.m.o)
- http://wiki.services.openoffice.org/wiki/Main_Page
- Project discussion
- Guests
-
On Thursday September 11th during class, we'll be joined by OpenOffice.org's Community Manger, Louis Suarez-Potts . Louis will talk about open source community, the OpenOffice.org project, and answer your questions.Postponed - Also on Thursday September 11th from 5:00 - 6:00, the Fedora project leader, Paul Frields, will be hosting an IRC discussion on freenode:#seneca for the LUX students. You are encouraged to join and listen to Paul discuss the Fedora project, Linux, and how their community works. You can also see a video of Paul talking about Fedora here.
-
- 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
- Learning Collaborative Development Lab Fall 2008
- TODO
- Ensure all TODO items from week 1 are completed
- 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
- Complete this week's lab by Friday.
- Look at the Potential Projects page and pick 3 projects on which you'd like to work--next week, you'll narrow this to just one. List them here along with your name.
- Add your wiki page to the class list for your section: Students in DPS909 Fall 2008 or Students in OSD600 Fall 2008
Week 3 (Sept 15) - Managing and Building large source trees
- Revision Control Systems (RCS)
- Using Make to build software
- Intro to Make
- Building Large Open Source Projects from Source
- Readings/Resources
- Two simple makefile examples
- How the Mozilla Build Works (on-line lecture) by Mozilla's J. Paul Reed
- Release Builds: from source tree to exe (on-line lecture) by Mozilla's Robert Helmer
- Mozilla's Build System (on-line lecture) by Mozilla's Ted Mielczarek
- TODO
- Watch online lectures about the Mozilla build system.
- Attend part/all of the Mozilla Developer Day (T1014, S1209) and blog about your experience, what you learned, who you met, etc.
- Create a simple makefile
- Do the lab on your home machine and blog about the experience. 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 start working on it. Create a proper project page for your project in the Project List. See instructions here.
- NOTE
- Tuesday's class will be special, since the Mozilla Developer Day will be happening downstairs in T1014, and S1209. You are all invited to attend any/all of the Monday/Tuesday sessions. There will be no formal class/lab, as we will be attending the event.
- 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
- Mozilla Source Code structure and style
- Searching for Code
- How to Make Changes
- building with client.mk vs. incremental builds
- Working with Patches
- Readings/Resources
- Reading: Chapter 11 (pages 379-397) of Diomidis Spinellis, Code Reading: The Open Source Perspective, ISDN 0-201-79940-5 - information about the book - eBook version via Seneca Library and Safari
- 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
- 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.