DPS909 and OSD600 Fall 2011 Weekly Schedule and Notes
Revision as of 14:39, 19 September 2011 by David.humphrey (talk | contribs)
Contents
Introduction
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 and browser development with a case study.
Part I – Essential Open Source Development Skills and Concepts
Week 1 (Sept 5) Course introduction
Editor(s): David Humphrey
- Course introduction
- Intro to open source
- 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)
- TODO
- Pick one Closed and one Open license/eula, and read them from start to finish. Pick 3 things that struck you about them to present in class next time.
- 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 Fall 2011 Open Source Students pages
- 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 12) - Collaborative and Community Development Practices
Editor(s): David Humphrey, (need some volunteers) - http://etherpad.mozilla.com:9000/sept12-seneca-notes
- 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
- http://developer.mozilla.org (a.k.a., devmo, MDC)
- http://wiki.mozilla.org (a.k.a., wmo or wiki.m.o)
- Etherpad
- Project discussion
- 0.1 is due Sept 29th
- Popcorn, Popcorn-Maker, Popcorn-Maker Final Cut Pro, Paladin and Gladius, Processing.js, Firefox, Thunderbird, etc.
- Readings/Resources
- (on-line lecture) Mike Beltzner on Mozilla Community
- 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
- 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, blog your reactions to something that struck you or resonated.
- Talk to the project communities on irc for info about each project, potential work you might do. First milestone due in 3 weeks.
- Create a github account, if you haven't already, and update Fall 2011 Open Source Students
- Quiz on Thursday on Raymond's essay.
Weeks 3, 4 (Oct 19, 26) - Distributed Revision Control with Git
- Introducing Git
- Client Server (SVN) and Distributed (Git)
- Snapshots vs. versioned files.
- Checksums, SHA-1
- File States:
- Untracked (not known to git)
- Tracked: modified, staged, committed
- The staging area
- Basic Git Commands and Concepts
- git help <command>
- git init
- git clone
- git add
- git commit, git commit -m, git commit -a
- git rm
- git mv
- git status
- git log
- git diff, git diff --staged
- .gitignore
- Branches
- HEAD, master
- git checkout, git checkout -b
- git branch, git branch -a, git branch -d, git branch --merged, git branch --contains
- git merge
- Remotes
- origin, origin/branch
- git remote
- git remote add
- git fetch
- git pull
- git push
- gitk
- Readings/Resources
- TODO
- Watch video tutorials.
- Read relevant sections in Pro Git (chapters TBA).
- Install and Setup' git locally
- Create a github account
- Clone the github repo for your project(s)
- Blog about your experiences getting to know git:
- What problems did you have?
- What did you learn in the process?
- What surprised you?
- Blog about your project:
- 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?