Mozilla U. Course Roadmap
Mozilla Application Development (MAD) 101
Description | Sections |
---|---|
This introductory programming course focuses on XUL and its use as
a toolkit for doing Mozilla applications and browser
extensions. Like all the courses at Mozilla University, this one
presumes basic familiarity with XML, HTML, and JavaScript, though the
emphasis is on providing a gentle introduction to the Mozilla tools
and terminology, and the basic standards "refreshers" at the beginning
of many of these courses may be enough for you to get up and running.
The course begins with a brief and high-level introduction to Mozilla technologies, moves into building several different user interfaces with XUL, and then describes the use of JavaScript to build simple application logic, to hook the UI up to application code via event handlers, and to access C++-based components via the Mozilla scriptability layer (Note: the last item, Accessing Mozilla Components from Your Application, is introductory only. Using and Creating Mozilla components is covered in detail in MAD 250: XPCOM). |
|
MAD 120: CSS in Mozilla
Description | Sections |
---|---|
Cascading style sheets are a technology that web developers are already
familiar with, but Mozilla uses CSS in some interesting and powerful
new ways, including skins, XBL, and special extensions for using CSS
with user interfaces.
Among other things, Mozilla uses CSS to define the presentation of the entire user interface, and this allows CSS developers to create new skins for application interfaces, including the browser and the other components that make up the Mozilla suite. In this course, you'll go over some of the basics of CSS, move quickly into the more advanced use of CSS in Mozilla, including reskinning the browser. |
|
MAD 130: Extending Your Mozilla Application
Description | Sections |
---|---|
This course follows up on the application programming basics and the
CSS and skins work you did in MAD 120 with some additional
technologies that provide flexibility and power to you Mozilla
applications. The course covers XPInstall, XUL overlays, and localization.
In addition to these, the Mozilla chrome registry is discussed in detail. The chrome registry manages the installation of new applications, skins, and language packs in Mozilla, as well as the inclusion of overlays and other dynamically loaded UI. |
|
MAD 150: XBL
Description | Sections |
---|---|
Though it's most often used in Mozilla to organize XUL into reusable,
high-level widgets like the XBL uses cascading style sheets to bind itself to XUL or HTML. In each binding, you can create new interface or new content that is applied dynamically at run-time. In these cases, XBL provides the framework for extending, and the content itself can be written in XUL, JavaScript, HTML, or other XML markup. In this section of the course, you'll look at the use of XBL in the Mozilla front end and learn how to create your own XBL. |
|
MAD 200: RDF in Mozilla
Description | Sections |
---|---|
The Resource Description Framework is a W3 standard for managing
resources, usually on the web. Mozilla uses RDF as a general
framework for managing data: bookmarks, mail messages, user
configurations, data-driven UI and other perishable data are all
defined in this flexible XML-based language.
RDF can be hard to understand and use effectively, but this course shows you modify and understand the use of RDF in Mozilla, and how to get started building your own Mozilla datasources. The emphasis is on the practical use of RDF, though the introduction covers the basic RDF model and syntax. |
|
MAD 250: Using and Creating XPCOM Components
Description | Sections |
---|---|
Much of the functionality in Mozilla is available in the form of components. XPCOM, Mozilla's binary component architecture, makes these components acccessible in a platform-independent and blah blah.. |
|
MAD 292: Security
Description | Sections |
---|---|
Security is a hot topic these days, especially in the open source world, where security models are exposed to external review. Security can benefit from so much inspection, blah blah... |
|
MAD 295: Web Standards Content Development & Evangelism
Description | Sections |
---|---|
As a W3C standards-compliant browser, Mozilla is an extremely useful platform for web developers. But it's also a minority voice, and so advocacy and evangelism of best practices in web design is an important goal of blah blah... |
|
MAD 299: Distributed Programming
Description | Sections |
---|---|
One of the most important aspects of the Mozilla codebase and organization is the opportunity they afford for doing distributed programming. This course describes the tools and processes at mozilla.org that make it possible for ### programmers in ### different (companies? countries?) to collaborate on a single, massive code base with a minimum of thrashing, redundancy, and strife. Some of these are tools that have been developed at mozilla.org and others have been adapted for use. Bugzilla, for example, is the primary tool for issue management, and has been adopted widely outside of Mozilla, in large and small projects. |
The course covers the following tools and methodologies:
|
MAD 300: Adding Language Bindings to Mozilla
Description | Sections |
---|---|
The XPConnect technology gives you a way to create components in the programming language of your choice and make them available to Mozilla applications. XPConnect provides the bridge between JavaScript in the Mozilla interface and the (largely C++-based) components in the Mozilla core, but developers have already used XPConnect to create similar bindings for Python, Ruby, and (coming soon) Perl. MAD 300 describes how to create XPConnect bindings for your own language following the example the PyXPCOM bridge that now exists in the Mozilla source code. |
|