Education/Courseware/MozillaForProfessors
Introduction
These notes and resources, used as part of a two-day introduction to Mozilla for professors, are made available to others who want to get a quick introduction to the Mozilla project. The focus is on getting connected into Mozilla's community, learning how to navigate Mozilla technologies and tools, and understanding how to connect educational and Mozilla project goals.
Mozilla Community
Any significant and sincere attempt to work with Mozilla must begin with an understanding of the Mozilla community. Where some technologies are the product and property of a business created by employees and overseen by managers, Mozilla is developed and used in the open as a collaborative public good. Decisions are discussed and finalized in the open, with the opportunity for public engagement. Contributions to the project come from around the world, from volunteers, from employees of large companies, from employees of small companies, and also from the Mozilla Corporation itself.
This open, public, collaborative structure makes it possible for students to become engaged in the process of fixing, improving, and advancing Mozilla. To do so effectively, they must learn how to participate in the community and have their voice and work noticed. One doesn't need permission to do any of this, but simply the knowledge of how to do it.
Communication
Because the community is so large (one of the largest open source communities in the world), and so globally distributed, different communication channels and media are used. Depending on the type of work you and your students are doing, one or more of these will be most effective.
IRC
IRC is a real-time chat protocol used extensively by Mozilla's most active developers to co-ordinate activities. You can learn more about how IRC works, and get instructions on using it in the Mozilla context here.
Almost all open source projects have IRC channels, but Mozilla is large enough that it has its own server, with hundreds of channels. Learning IRC is one thing, and then figuring out which channel(s) are the most appropriate for certain types of work/questions is another. The best starting place is the #education channel. This channel is filled with students and professors from many schools, and also some knowledgable (and sympathetic) Mozilla community members. Not every channel is going to be friendly to beginners, but the #education channel will be. You can ask anything about Mozilla, IRC, getting students connected to people within Mozilla, etc.
Here are some other points about IRC for professors:
- IRC can seem somewhat childish, with its use of short forms, nicknames, etc. However, don't dismiss it because of this. Being able to combine you, your students, and Mozilla developers in a real-time chat environment is invaluable
- Students may need some hand-holding to use irc effectively. For example, it is wise to have them start using one channel you create (e.g., /join channel name will create a new channel) and/or the #education channel. This allows them to learn the tool and how to communicate effectively online before jumping into the main developer channels.
- Getting developers to stop what they are doing and help you (and your students) on irc is a two-way thing: if all you ever do is ask questions, you're not likely to have your questions answered over the long term. The best long term strategy is to look for ways to contribute to the channels. For example, a developer may need help testing a patch, or need some info about an OS they don't have. Watching for ways to contribute helps build your credibility and place within the community.
- Similar to the previous point, IRC is not email. Joining irc, asking a question, then leaving right away is not how you should use it. Many people leave it running all the time so they can read what has happened while they were away. Maybe you'll know the answer to a question asked a few hours ago--it's fine to answer it now
- Don't overlook the value of having your students (and you!) sit idle in the main developer channels. What an amazing learning opportunity to have the chance to be able to go and "sit" in the "office" of a world-class developer project and listen to how they work.
Mailing Lists/Newsgroups
While IRC plays a central role in connecting developers around the world, it is not sufficient on its own. This is especially true when you need to talk with someone in a timezone opposite to your own. For more asynchronous communication, using Mozilla's mailing lists (which are also cached as newsgroups by Google)
Like IRC, subscribing to a number of mailing lists can greatly increase your exposure to, and awareness of, the community and what is being worked on at any given moment. It's also a good way for you to ask certain questions.
Here are a few lists that might be of interest to you and your students to get started:
- dev-apps-firefox
- dev-apps-thunderbird
- dev-builds
- dev-extensions
- dev-platform
- dev-platforms-mobile
- dev-tech-xul
See the complete list here for others. There are also various Labs Google Groups, many of which will make for good student projects.
Weekly Calls
In addition to online communication, a number of weekly status and planning calls are held. These are open to anyone wishing to join. Just as idling on IRC can be a great way to learn about the technologies and tools used my Mozilla developers, the weekly calls provide good insight into the workings of the project.
- Education/StatusMeetings
- Project wide weekly update
- Firefox status meeting
- Platform meeting
- Thunderbird status meeting
- Labs - Weave Weekly Meeting
- Labs - Bespin Weekly Meeting
Blogging
A good portion of the Mozilla community blogs. People use these blogs to demo experiments they have tried, share something they have learned, discuss their reaction to something, bring attention to things that are happening in the community, etc. Following these blogs is greatly simplified by the use of various aggregate blog planets:
- Planet Mozilla - the main blog planet for the Mozilla project.
- Mozilla Education Planet - students, professors, and Mozilla community bloggers who are connected to the education work.
- Mozilla Messaging Planet - blogs about Thunderbird, SeaMonkey, Calendar, etc.
You should start a blog and write about your work to start teaching and working on Mozilla. You should make your students do the same. You should both get these blogs added to the Mozilla Education Planet (email David Humphrey. It is hard to overstate the value of doing your work in the open, and on the web. When people can see the work that is going on, it is easier to comment, provide help, and connect with you.
Collaboration
Mozilla is focused on web technologies, and as a result, the way the project works is also heavily influenced by web based tools. Deciding to use these same tools vs. standard educational tools (e.g., Blackboard) will mean the difference between having Mozilla work with you, and being isolated in an academic silo. One nice side effect of choosing to use Mozilla's own tools is that you don't have to get anyone's permission at your institution to set up what you need: Mozilla already hosts it all, and allows anyone to create accounts.
Wikis
Mozilla uses a number of wikis, each with a different purpose. Over the past few years, a lot of work has been put into consolidating various sites and other resources into a smaller number. Here we look at the two most important.
Mozilla Developer Center (MDC)
The Mozilla Developer Center (sometimes called 'MDC' or 'devmo') is Mozilla's main documentation site. It is aimed both at developers using Mozilla technologies (extensions, XUL, JavaScript, web) and also at people developing Mozilla itself.
MDC is meant to be a polished set of documentation vs. a scratch pad for random information. You can (and should) create your own account so that you can edit mistakes, or contribute new information. If you are unsure about a change you think needs to be made, you can ask in the #devmo irc channel.
Mozilla Wiki (wiki.mozilla.org, wikimo)
Resources
- Bugzilla: Mozilla's project-wide issue tracker.
- MXR: The Mozilla Cross-Reference, for searching and consulting Mozilla source code
- Mozilla HG Repositories: Source code repositories for Firefox (mozilla-central), Thunderbird (comm-central), etc.
- Mozilla Module Owners: List of Mozilla modules, module owners, and peers.
- Mozilla Mailing Lists: List of all the Mozilla Mailing Lists.