DPS909 and OSD600 Fall 2013 Notes
The fall 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, we go deep into open web development with a case study.
Part I – Essential Open Source Development Skills and Concepts
- Course introduction
- Success in this course requires:
- Willingness to be lost and not panic
- Being driven, persistence
- Willingness to ask for help
- Willingness to give others help
- Independent learning
- Doing more, much more, than the bare minimum
- Intro to open source
- Lab - Intro to Git
- Complete the online git introduction at Code School.
- Create an account on this wiki for yourself (note: requires manual creation)
- Add your info to the Fall 2013 Open Source 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
- Pick one Closed and one Open license/eula, and read them from start to finish. Pick 3 things that struck you, blog about it and your reactions to the readings 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.
- Mozilla Manifesto - http://www.mozilla.org/en-GB/about/manifesto/
- Download and Install git
- Pro Git, online book
- Git Reference
- Visual Git Reference
- Version Control by Example, online book
- Overview of Git Tutorials (many good ones)
- Howto: Working with Open Bugs on Bugzilla
- Start learning git!: Watch video tutorials and/or Read chapters 1 and 2 of Pro Git, etc.
- Install and Setup git locally
- Get a project: Project List (projects will be introduced on Thursday)
- What is it?
- What are you doing for 0.1?
- What does it involve in the way of technologies?
- What do you need to learn in order to do it, how will you learn it?
- What fears or concerns do you have?
- Setup ssh keys on matrix for your github account
- Case Study - Debugging Webmaker.org Events Crash
- We've been trying to fix a really bad crash for the past week - https://bugzilla.mozilla.org/show_bug.cgi?id=914904
- Open Source relies on History
- Issues, Bugs (why we did what we did, who reviewed it)
- Source Code Revision History (what we did, who did it, when it was done)
- Often fixing things requires knowing the past more than digging into the code itself
- Compare View (what changed between two shipped versions of the app?) https://github.com/mozilla/webmaker.org/compare/v0.0.140...v0.0.142 (notice the syntax /compare/[revA]...[revB]
- When, where did we move webmaker-events into webmaker.org? https://bugzilla.mozilla.org/show_bug.cgi?id=912241
- The code that landed (i.e., got checked in) on Sept 4th: https://github.com/mozilla/webmaker.org/commit/c9951521b5fb9113b3e46cbbb87125bc60b22f81
- Something looks wrong in this code: using Blame to figure out who did what, when: https://github.com/mozilla/webmaker-events/blame/master/controllers/events.js
- We're missing some code! https://github.com/mozilla/webmaker-events/commit/4c971c81f619c0fc63946f4380ca9a384d9633cc
- Let's fix things, we need a new bug: https://bugzilla.mozilla.org/show_bug.cgi?id=916839