https://wiki.cdot.senecacollege.ca/w/api.php?action=feedcontributions&user=Reed&feedformat=atomCDOT Wiki - User contributions [en]2024-03-29T07:47:42ZUser contributionsMediaWiki 1.30.0https://wiki.cdot.senecacollege.ca/w/index.php?title=Project_List&diff=12695Project List2007-09-21T04:06:24Z<p>Reed: /* Bugfixing on the GFX backend */</p>
<hr />
<div>[[IMAGE: MozillaAtSeneca3.jpg]]<br />
= Introduction =<br />
<br />
This page lists many of the research and coursework projects that are being done between Seneca faculty, students, and Mozilla. All of these projects are open source, and you can get involved with any of the current ones, or look at the list of [[Potential Projects]]. If you'd like to create your own project, please use the [[Sample Project]] page as a template. <br />
<br />
= Projects = <br />
<br />
This list includes active and historical (e.g., completed or orphaned) projects. You can also see a list of [[Potential Projects]] that need people.<br />
<br />
== Active Projects == <br />
<br />
=== [[Mozilla@Seneca Wiki Administration]] ===<br />
This wonderful wiki needs attention too! Already there are configuration issues that need to get fixed, extensions we could be using, etc. As we push further with this, we'll come up with more things too. This work will require knowledge of PHP, server administration, knowledge of [http://www.mediawiki.org/wiki/MediaWiki MediaWiki].<br />
<br />
=== [[CSS guide]] ===<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] would like to add a CSS guide to its set of major documents, covering at least the top 100 CSS properties in use on the web today. This data can be obtained through tools . It should include numerous examples, and a fair number of small tutorial/how-to sections for different common tasks or requests from web authors. <br />
<br />
Reference: [http://developer.mozilla.org/en/docs/CSS_Reference CSS Reference]<br />
<br />
=== [[Mozilla@Seneca Cluster Administration]] ===<br />
<br />
Administration of the Mozilla cluster at Seneca.<br />
<br />
=== [[Mozilla Metrics]] ===<br />
<br />
This project focus is to building an extension that will enable Firefox to gather user metric data. Data would be collected on those who have the extension installed and have opted-in on metrics collecting. The collected data would then be transmitted to Mozilla servers for furthering processing. The data is intended to be public, and would be used to get a better understanding of how users interact Firefox.<br />
<br />
=== [[Mozilla Source and Symbol Server]] ===<br />
<br />
Create a source code server to work with Mozilla's current symbol server. This will allow users to do full debugs of nightly release builds with access to remote symbols and full source code.<br />
<br />
=== [[Testing of Canadian Banking and Financial Sites in Mozilla]] ===<br />
<br />
This project will focus on improving the user experience at banking and other financial sites for Canadian Mozilla users. This includes determining which sites are relevant, insuring proper behavior for Firefox 3 on these sites, etc. <br />
<br />
=== [[Localized Search in Firefox Search Box]] ===<br />
<br />
This project creates a mechanism for Firefox to pick up a web site's search mechanism and make it accessible to the user through the Firefox search box so that users have a consistent place to look for site-specific search.<br />
<br />
=== [[ Improve Mozilla Application and Platform Documentation]] ===<br />
<br />
Not enough is understood about the various communities and companies who develop with Mozilla, as opposed to those who work on the Mozilla code itself. A proper survey needs to be conducted in order to find out which APIs are being used and how, what is hard, what could be improved, etc. The Mozilla Platform Application Developers is interested in changing this. Their goal is to work with the Mozilla development community to survey, understand, and document the current state of the art. In this project you will work with the mozpad community to connect with projects/companies in orbit around Mozilla and do interviews with their developers. You will then document this information.<br />
<br />
=== [[Web-based Virtual Machine Management]] ===<br />
<br />
Create a web-based rapid provisioning system for virtual machines, building on work started by Ben Hearsum. A user could select an operating system, toolchain, and source branch and the VM would be configured and started (using Xen, KVM, or another hypervisor/backend).<br />
<br />
=== [[Buildbot and EC2]] ===<br />
<br />
The Buildbot is software for automatically building and testing other software. EC2 is Amazon's "Elastic Compute Cloud", a service that lets you run Virtual Machines on Amazon's computing grid using a web API. It would be awesome if BuildBot had an EC2 module, and could spawn Virtual Machines on-demand to perform tasks. Conveniently, BuildBot is written in Python, and there's a Python library for interfacing with EC2.<br />
<br />
=== [[Localization - en-CA]] ===<br />
<br />
Localize Mozilla for Canadian English (en-CA).<br />
<br />
* References: Mic, Alix, Axel<br />
<br />
=== [[Desktop Social Networking Integration]] ===<br />
<br />
Alter [http://wiki.mozilla.org/Labs/The_Coop The Coop] experimental extension so it uses generic API instead of Facebook specifically; put the generic API in the "desktop data engine" also used by [http://live.gnome.org/OnlineDesktop/Sidebar BigBoard] (and hopefully other desktop apps in the future). Resources: RH online desktop team.<br />
<br />
=== [[Tinderbox front page improvements]] ===<br />
<br />
[http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox Tinderbox] is a web app showing the results of multiple machines building Firefox, running unit tests on it, and running performance tests on it, all on three different platforms (Windows, Linux, Mac). The display is very crowded right now, and can be difficult to read. In addition, some of the interesting information (changes in performance, for example) are hard to notice. The tinderbox server software recently was updated to include [http://www.json.org/ JSON] output, which means that webpages can now easily access the data to build their own displays. Using this data, create a new display for the Tinderbox data that helps developers monitor the status of the builds and performance data.<br />
<br />
* [http://tinderbox.mozilla.org/Firefox/json.js Tinderbox JSON data]<br />
* [http://people.mozilla.org/~rhelmer/mockups/tinderbox/ajax.html An example page using the data]<br />
* [http://mavra.perilith.com/~luser/tboxtest.html Another example page using the data]. (Requires a [http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/ recent Firefox 3 build])<br />
<br />
=== [[Firefox Session Saver Extension]] ===<br />
<br />
Write a simple (i.e., nothing more than a simple "save session") extension to leverage the existing [http://developer.mozilla.org/en/docs/Session_restore_API Session Store API] in order to allow the user to save his/her currently open tabs and restore them. This is similar to what Firefox does when it unexpectedly crashes and gives the user the option to restore a previous session. NOTE: there are extensions that do this already, but many of them are more feature rich than need be. See also [http://www.beltzner.ca/mike/archives/2007/05/28/resurrect_your_session.html this blog post].<br />
<br />
=== [[Bugfixing on the GFX backend]] ===<br />
<br />
The GFX backend for Firefox 3 has been ripped out and re-written, and it requires some debugging and small amounts of implementation work on Linux and Mac. Assist the GFX developers to ship their product for the start of the new year.<br />
<br />
=== [[Plugin-watcher]] ===<br />
<br />
Firefox sometimes gets a bad reputation for crashing or locking up when a plugin such as Adobe Flash or Windows Media Player causes the problem. Add code to Firefox (or write an extension) so that when a plugin misbehaves, a dialog is presented informing the user so that they can take corrective action (disabling the plugin) or filing a bug with the right party (this warning could be similar to the warning that appears when a JS script in a web page hogs too much CPU time. As a minimum it should identify that a plugin is to blame; better would be to inform the user of the plugin's name; best would be to provide an option to temporarily disable the plugin). <br />
<br />
=== [[Add support for more compilers to distcc]] ===<br />
<br />
An earlier project added multi-compiler support to distcc, and then MSVC support. The framework is now in place to support even more compilers. Add support for another compiler, perhaps Java, C#, or something else.<br />
<br />
=== [[Radio Button Bookmarks Extension]] ===<br />
<br />
Create an extension to provide [http://groups.google.com/group/mozilla.dev.apps.firefox/browse_thread/thread/f2eeb10d0436af3f radio-button style bookmarks].<br />
<br />
== Historical Projects ==<br />
<br />
=== [[APNG]] ===<br />
<br />
[[APNG]] stands for Animated PNG, an extension to the PNG specification to allow for animated PNG images. Similar to how Animated GIF is an extension of GIF. Create such a thing.<br />
<br />
=== [[Extending the Buildbot]] ===<br />
<br />
This project is a catch-all for Buildbot development done here. The Buildbot is an automated build system written in python. It is used on the Mozilla Seneca Cluster.<br />
<br />
Related skills: Python<br />
<br />
=== [[Distcc With MSVC]] ===<br />
<br />
Speed up Mozilla's builds by letting them use MSVC with distcc on Windows.<br />
<br />
=== [[Bug Triage Extension|Buggy Bar - Bug Triage Extension]] ===<br />
<br />
Mike Beltzner suggested this one after his talk. The idea is to make it trivial for testers to follow-through a bug's Steps To Reproduce (STR) so as to confirm it. A tester should be able to use this Extension to ask for a bug (i.e., one would be picked for him/her--no querying) and then a sidebar or similar would appear showing the steps to follow. Under that would need to be a way (e.g., buttons) to say that the bug is confirmed or not. Ideally the QA team could prioritize bugs so they appear in this list automatically, making it easier for testers to get the "right" bugs quickly.<br />
<br />
Reference: talk to beltzner.<br />
<br />
=== [[OS X Keychain integration]] ===<br />
<br />
It would be great to store Firefox's saved passwords in the [http://en.wikipedia.org/wiki/Apple_Keychain OS X keychain], for consistency and ease of use.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=106400 Bug 106400]<br />
<br />
=== [[Delta debugging framework]] ===<br />
<br />
[http://en.wikipedia.org/wiki/Delta_Debugging Delta debugging] is an automated approach to debugging that isolates failures systematically. Given a failing test that can be mechanically verified (including a browser crash), [http://en.wikipedia.org/wiki/Delta_Debugging delta debugging] is a way of automatically isolating the change that introduced the failure. Having a framework in place to pull builds from CVS, bisect by date and change set (using [http://en.wikipedia.org/wiki/Bonsai_CVS_code_management_system bonsai ] data -- remember, CVS doesn't have changesets!), and report results would let computers make developers more productive.<br />
<br />
=== [[D-Bus and other Linux desktop integration improvements]] ===<br />
<br />
Various Linux distributors have patches in their Firefox packages that add bits and pieces of Linux integration, and we'd like to see even more available. One particular area of interest is controlling the browser via [http://en.wikipedia.org/wiki/D-BUS d-bus], and exposing [http://en.wikipedia.org/wiki/D-BUS dbus] events to the application and extensions.<br />
<br />
===[[Generalization of Joga extension]] ===<br />
<br />
We worked with partners to create an [http://www.joga.com/jogacompanion.aspx extension] for delivering World Cup scoring updates as well as providing country-specific themes. We'd like someone to take it apart, remove or refactor the [http://www.joga.com/jogacompanion.aspx Joga]-specific pieces so that it can be used for other such data sources (hello, hockey?), and write some basic documentation for how to create your own notification-and-theme extension from the toolkit that results.<br />
<br />
Related tech and skills: XUL, JavaScript, documentation, web services<br />
<br />
=== [[XULRunner Guide]] ===<br />
<br />
The [http://en.wikipedia.org/wiki/XULRunner XULRunner project] provides an "application runner" for building apps -- like Firefox, Thunderbird, and Sunbird -- atop the [http://developer.mozilla.org/en/docs/Toolkit_API Mozilla toolkit] framework. It needs a guide outlined, high-priority parts written, and examples created to help people get started.<br />
<br />
Related tech and skills: XUL, documentation, cross-platform testing<br />
<br />
Reference: http://cs.senecac.on.ca/fsoss/2006/workshop.html#XULRunner<br />
<br />
=== [[Breakpad development and server operation]] ===<br />
<br />
The [http://code.google.com/p/google-breakpad/ Breakpad project] is developing an open source crash reporting and analysis system, analogous to [http://en.wikipedia.org/wiki/Crash_reporter#Talkback Talkback]. There's lots of work to do on wiring it into the build system, operating servers for collecting and analyzing data, and extending Firefox's use of it to collect additional helpful information (like installed extensions, memory usage, etc.) <br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=216827 Bug 216827], [http://gemal.dk/blog/2006/09/13/talkback_to_be_replaced_by_airbag/?from=rss-category here], and [http://benjamin.smedbergs.us/blog/2006-09-12/deploying-the-airbag/ here]<br />
<br />
=== [[Calendar stuff]] ===<br />
<br />
The [http://www.mozilla.org/projects/calendar/ Calendar project] has lots of stuff for people to do, from [http://www.microsoft.com/exchange/default.mspx Exchange] connectors to off-line caching to bug fixes and minor features galore. A good place to start is the #calendar IRC channel on moznet.<br />
<br />
=== [[Unit Testing]] ===<br />
<br />
Programmatic testing of software. The participant will take a section of code and write unit tests for it, fully testing all aspects of the code. This may require the creation of a unit testing framework and interfacing with other developers who know a particular module or service. The programmer will be adept at finding boundary cases and creating tests that deliberately break the software through code. These may lead to the creation of bugs in [http://bugzilla.mozilla.org bugzilla].<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[DDE Bug Within The Address Bar]] ===<br />
<br />
Currently there is a bug in Firefox such that when running 3 or more instances of the browser, the address bar loses focus when cutting and pasting a string. Regular typing works perfectly when the bug is present. The purpose of this project is to track down and attempt to fix this bug. <br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=220900 Bug 220900].<br />
<br />
=== [[MDC Infrastructure]] ===<br />
<br />
Integrate new features to MDC, work on existing bugs and fix compatibility issues for the upgrade of Mediawiki to 1.7. (Tentative description)<br />
<br />
=== [[Firefox Performance Testing : A Python framework for Windows]] ===<br />
<br />
Building new tests, improving on existing ones, strengthening the framework itself and porting it to other OS's. Related to the '''Performance Testing Project'''<br />
<br />
Reference: alice<br />
<br />
=== [[Vista Testing]] ===<br />
<br />
Testing Firefox on the new Microsoft Vista operating system.<br />
<br />
=== [[Source Code Indexing Service Analysis]] ===<br />
<br />
Mozilla is evaluating Subversion for revision control, and at the same time wants to look at other source indexing services. This project will setup, document, and test other potential services (e.g., fisheye, opengrok, mxr) on one of the Seneca-Mozilla servers. In each case this requires configuration changes and some scripting to get the services to properly integrate with Mozilla’s other on-line tools. When the test services are installed and synched with the live source tree, Mozilla will point its developers to them and get feedback—-the students will help collect and synthesize this feedback.<br />
<br />
=== [[mozilla_based_accessibility|Mozilla Based Accessibility]] ===<br />
<br />
To work with the accessibility team on screen reader compatibility issues outside of Firefox, fixing bugs using XUL in Songbird or Thunderbird or Sunbird calendar etc.<br />
<br />
=== [[Simple_Citation|Simple Citation]] === <br />
<br />
Create a Firefox extension that will allow citations to be easily generated.<br />
<br />
=== [[Functional Testing]] ===<br />
<br />
Testing performed from a user's perspective. Includes the running and writing of test cases in [http://litmus.mozilla.org Litmus], filing and tracking bugs through [bugzilla.mozilla.org bugzilla], stress-testing and exploratory debugging. This project requires a dedication to breaking software in an organized and repeatable fashion. There is no such thing as "the wrong way" to use software and the functional tester is adept at abusing a system in previously-unknown ways.<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[Firefox Performance Testing : A Python framework for Windows | Performance Testing]] ===<br />
<br />
Extending the performance toolkit and tinderbox reporting system. The project begins with a framework for testing page loads and startup times in Win32. The successful completion of this project will see this framework develop into a more robust system complete with processor-timing information and graphing. Memory analysis and samples during runs would also be beneficial. Further success or sub-projects could include porting the system Linux and OS X platforms.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=346785 Bug 346785]. Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[XML_3D_-_BTS530/630_Project|XML 3D Project]] ===<br />
<br />
This project is being built by Mark Paruzel and Yi (Eric) Shen for BTS530. It involves the incorporation of new HTML tags into a document that would correspond to a 3D interface. The successful completion of this project will yield an easy-to-use developer interface that takes advantage of client-side 3D hardware.<br />
<br />
=== [[Mozilla Web Tools]] ===<br />
<br />
While most people think only about the building of browsers, Mozilla also has substantial investment in server-side web tools. This project is a catch-all for activities related to PHP and other web development.<br />
<br />
=== [[Testing Mozilla Linux/Runtime Requirements]] ===<br />
<br />
Mozilla is in the process of finalizing a set of Linux library and runtime requirements for distributions wanting to ship Mozilla software. This project will test various bugs against two different sets of runtime setups, hoping to expose any issues with the new requirements.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Reed&diff=12440User:Reed2007-09-14T01:28:42Z<p>Reed: /* IRC */</p>
<hr />
<div>== Just me... ==<br />
<br />
Hi! I'm '''Reed Loden''' (reed@IRC). :)<br />
My e-mail address is my first name at my full name dot com.<br />
<br />
I'm a [http://www.mozilla.org/ Mozilla Project] volunteer who likes to put his fingers in just about everything. I'm also a webmaster for [http://www.mozilla.org/ www.mozilla.org] and [http://www.mozilla.com/ www.mozilla.com], triage monkey for [https://bugzilla.mozilla.org/ Bugzilla], and wordsmith for Firefox, along with being active in lots of other Mozilla-related projects, especially webtools. I was a summer intern at the Mozilla Corporation in 2007 where I worked as a Systems Administrator in IT.<br />
<br />
== Passions ==<br />
<br />
My passions include webtools and system administration, so if you're interested in either of those topics, feel free to talk to me on IRC.<br />
<br />
== IRC ==<br />
<br />
I've been using IRC for a while now (going on 8 years), and I have had my share of developing IRC server daemons and services for various networks. This also means that if you have a question about something IRC-related, feel free to talk to me.<br />
<br />
== Miscellaneous ==<br />
<br />
I'm interested in making a Despot v2.<br />
<br />
I'm also a webmaster for [http://www.gnu.org/ www.gnu.org].<br />
<br />
''I will put more stuff here as time allows.''</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Reed&diff=12439User:Reed2007-09-14T01:21:55Z<p>Reed: /* Just me... */</p>
<hr />
<div>== Just me... ==<br />
<br />
Hi! I'm '''Reed Loden''' (reed@IRC). :)<br />
My e-mail address is my first name at my full name dot com.<br />
<br />
I'm a [http://www.mozilla.org/ Mozilla Project] volunteer who likes to put his fingers in just about everything. I'm also a webmaster for [http://www.mozilla.org/ www.mozilla.org] and [http://www.mozilla.com/ www.mozilla.com], triage monkey for [https://bugzilla.mozilla.org/ Bugzilla], and wordsmith for Firefox, along with being active in lots of other Mozilla-related projects, especially webtools. I was a summer intern at the Mozilla Corporation in 2007 where I worked as a Systems Administrator in IT.<br />
<br />
== Passions ==<br />
<br />
My passions include webtools and system administration, so if you're interested in either of those topics, feel free to talk to me on IRC.<br />
<br />
== IRC ==<br />
<br />
I've been using IRC for a while now (going on 7 years), and I have had my share of developing IRC server daemons and services for various networks. This also means that if you have a question about something IRC-related, feel free to talk to me.<br />
<br />
== Miscellaneous ==<br />
<br />
I'm interested in making a Despot v2.<br />
<br />
I'm also a webmaster for [http://www.gnu.org/ www.gnu.org].<br />
<br />
''I will put more stuff here as time allows.''</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Delta_debugging_framework&diff=11027Delta debugging framework2007-03-16T05:01:19Z<p>Reed: /* Nov. 26, 2006 */ I moved /deltatest to the main cvs pserver</p>
<hr />
<div>== Project Name ==<br />
<br />
Delta debugging framework <br />
<br />
== Project Description ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
[http://en.wikipedia.org/wiki/Delta_Debugging Delta debugging] is an automated approach to debugging that isolates failures systematically. Given a failing test that can be mechanically verified (including a browser crash), [http://en.wikipedia.org/wiki/Delta_Debugging delta debugging] is a way of automatically isolating the change that introduced the failure. <br />
<br />
For developers, the occurrence of a scenario similar to this happens all too often: a developer codes a piece of functionality that works. Then, over a period of time, multiple changes to the program source files are made and that piece of functionality stops working. The cause of the regression could be any of the changes that were made since the time the functionality was last known to work.<br />
<br />
To isolate the cause of the regression, the developer begins the debugging process. Generally, debugging is a manual process where the developer must walk through the code while trying to keep track of variables and function calls. Sure, there are debuggers that can help you keep track of variables, the call stack, watch certain blocks of code, and execute the code step by step, however debugging is still mainly a manual process.<br />
<br />
Written in perl, given<br />
# that the source code is located in an SVN repository (support for CVS in the future)<br />
# a test case that can automatically verify whether or not a piece of functionality of a program works or not<br />
# a way to automatically build the program from the source code (if needed)<br />
the delta debugging framework aims to automatically isolate the failure-inducing changes to the source code that caused a regression.<br />
<br />
== Project License ==<br />
<br />
Written in perl, given a test case that can automatically verify whether or<br />
<br />not a piece of functionality of a program works or not, the delta debugging<br />
<br />framework aims to automatically isolate the failure-inducing changes to the<br />
<br />source code that caused a regression.<br />
<br /><br />
<br /><br />
Copyright (C) 2006 Richard Chu, Aditya Nanda Kuswanto, Dean William Woodside<br />
<br /><br />
<br /><br />
This program is free software; you can redistribute it and/or modify it under<br />
<br />the terms of the GNU General Public License as published by the Free Software<br />
<br />Foundation; either version 2 of the License, or (at your option) any later<br />
<br />version.<br />
<br /><br />
<br /><br />
This program is distributed in the hope that it will be useful, but WITHOUT<br />
<br />ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS<br />
<br />FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.<br />
<br /><br />
<br /><br />
You should have received a copy of the GNU General Public License along with<br />
<br />this program; if not, write to the Free Software Foundation, Inc., 59 Temple<br />
<br />Place, Suite 330, Boston, MA 02111-1307 USA<br />
<br /><br />
<br /><br />
[http://www.opensource.org/licenses/gpl-license.php The GNU General Public License (GPL) Version 2, June 1991]<br />
<br /><br />
<br />Contact Information about the authors of the delta debugging framework can be found<br />
<br />on our individual profile pages.<br />
<br />
== Project Leader(s) ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
''Name(s) of primary people working on the project. If you want to join a project as leader, discuss with other leaders first. Include links to personal pages within wiki.''<br />
<br />
;[[User:RichardChu|Richard Chu]]<br />
;[[User:dwwoodsi|Dean Woodside]]<br />
;[[User:Ankuswan|Aditya Nanda Kuswanto]]<br />
<br />
== Project Contributor(s) ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
''Name(s) of people casually working on the project, or who have contributed significant help. Include links to personal pages within wiki. <br />NOTE: only Project Leader(s) should add names here. You '''can’t''' add your own name to the Contributor list.''<br />
<br />
[[User:Reed|Reed Loden]] - Setup the CVS repository for us with the web front-end. Provided direction in querying Bonsai (a means to extract the output in XML).<br><br />
[[User:Elichak|Liz Chak]] - Documentation of the subroutines in the svn.pl and makewrapper.pl source files.<br />
<br />
== Project Source Repository ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
Assuming you have [http://subversion.tigris.org/ SVN], the project's source can be obtained via SVN using the following command:<br />
<br />
svn checkout svn://cdot.senecac.on.ca/deltadbg<br />
<br />
The source can also be obtained at the following links:<br />
* [http://matrix.senecac.on.ca/~rchu2/ddf/ddf.zip Delta Debugging Framework.zip]<br />
* [http://matrix.senecac.on.ca/~rchu2/ddf/ddf.tar.bz2 Delta Debugging Framework.tar.bz2]<br />
<br />
The test cases can be obtained via SVN using the following command<br />
<br />
svn checkout svn://cdot.senecac.on.ca/deltatest<br />
<br />
The source can also be obtained at the following links:<br />
* [http://matrix.senecac.on.ca/~rchu2/ddf/deltatest.zip DeltaTest.zip]<br />
* [http://matrix.senecac.on.ca/~rchu2/ddf/deltatest.tar.bz2 DeltaTest.tar.bz2]<br />
<br />
== Project Details ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
''Provides more depth than the Project Description. This is the place for technical discussions, project specs, or other details. If this gets very long, you might consider breaking this part into multiple pages and linking to them.''<br />
<br />
<br />
Based on the papers on delta debugging that I've sifted through (with [http://www.infosun.fmi.uni-passau.de/st/papers/computer2000/computer.pdf ''From Automated Testing to Automated Debugging''] by Andreas Zeller being the most understandable to non-math wizards, and [http://www.infosun.fmi.uni-passau.de/st/papers/tr-99-01/esec99.pdf ''Yesterday, my program worked. Today, it does not. Why?''] also by Andreas Zeller probably being the most relevant to our project), here is an outline of my understanding of delta debugging, a summary of the concepts that must be taken into account while working on the delta debugging framework project, and an outline of the conceptual stages of developing the delta debugging framework.<br />
<br />
<br />
Delta debugging is an algorithm that can automatically and systematically isolate/narrow down the failure-inducing circumstances that are necessary to produce the bug. Delta debugging can be applied to isolating various types of failure-inducing circumstances, including:<br />
* program input<br />
* user interaction (key presses, button presses, mouse clicks, etc.) <br />
* program code modification (adding / updating / deleting variables, functions, classes, etc.)<br />
<br />
<br />
How? From my understanding, given a known bug and a known set of circumstances that can reproduce the bug, we can continually execute tests that vary the circumstances until a minimal subset of circumstances that can reproduce the bug is left. That is, for each test, a circumstance is removed, and if the bug is still present, than that circumstance can theoretically be eliminated as the cause of the bug from the set of circumstances. In this project's case, the circumstance will be certain change(s) to the program code that caused a regression in the program.<br />
<br />
<br />
[''Note: The rest of this post contains mathematical concepts that I may not fully understand but am trying to put into terms understandable to non-math wizards. A dangerous combination.'']<br />
<br />
<br />
Before we continue, here are some important terms to understand.<br />
* '''Configuration'''. A subset of all changes made to source code since the last known good version and the version with the regression.<br />
* '''Test'''. A test case or function that can determine whether a configuration contains the failure-inducing change (Fails), doesn't contain the failure-inducing change (Passes), or produces indeterminate results (possibly because of interference or inconsistency).<br />
* '''Subset'''. Given two sets (''A'' and ''B''), ''A'' is a subset of ''B'' if and only if all of the elements of set ''A'' are in set ''B''.<br />
* '''Superset'''. Given two sets (''A'' and ''B''), ''B'' is a superset of ''A'' if and only if ''B'' contains all of the elements of ''A''.<br />
* '''Union'''. Given two sets (''A'' and ''B''), the union of ''A'' and ''B'' contain all elements of ''A'' and ''B''.<br />
* '''Intersection'''. Given two sets (''A'' and ''B''), the intersection of ''A'' and ''B'' are the elements that are in both ''A'' and ''B''.<br />
<br />
<br />
With regards to the delta debugging algorithm, we must take into account these possible concepts that may complicate it:<br />
<br />
* '''Interference'''. Each individual change may not cause the program to regress, but applying a combination of changes together causes the regression. Thus, there must be a method to identify the set of changes that cause the regression. <br />In the case of interference, we must recursively test both halves with all changes in one half of the configuration remaining applied. <br />
<br />
* '''Inconsistency'''. Changes in the source code may be dependent on other changes in the source code and without them the program cannot be compiled and tested successfully. Thus, there must be a method to identify and handle dependencies (such as a dependency graph). <br />[Wild, far left field thought: How can we ensure that when applying a configuration, it is consistent? Well, in the [http://en.wikipedia.org/wiki/Compilers#Compiler_design compiler process], there is a lexical analysis step which breaks the source code into tokens, then there is a dependence analysis step which produces constraints/dependencies between the tokens. Theoretically, if we can harness parts of the compilation process, we could have a method of knowing the dependencies between the changes in the source code.]<br />
<br />
* '''Granularity'''. A single logical change may consist of hundreds of lines of code, yet only a couple lines of the change may be responsible for the regression. Thus, There must be a method to break the change into smaller manageable chunks.<br />
<br />
*'''Monotony'''. If a change causes a failure, any configuration that includes this change fails as well (makes sense to me). If a configuration does not cause a failure, then all subsets of the configuration do not cause a failure, thus they can be eliminated from the change set (makes some sense to me. However, if my understanding is correct, while a subset of the configuration does not cause the failure by itself, the concept of interference suggests that the subset combined with another configuration may cause the regression).<br />
<br />
*'''Unambiguity'''. A failure is caused by only one configuration (No interference). Thus, for efficiency, we do not have to search the other configuration for more failure-inducing changes. Whether or not a configuration is ambiguous or unambiguous, a failure-inducing change will be produced. However, for completeness with regard to finding all failure-inducing changes, it is preferred to search both configurations.<br />
<br />
<br />
Now that we are aware of the different concepts that we must take into account with regards to delta debugging, the next section will outline some facts and assumptions that are being made, and attempt to define the vision and process of the delta debugging framework.<br />
<br />
<br />
== Project Principles ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
# The source tree for the Mozilla project is HUGE. With many different source file types (C++, JS, XUL, etc.) in many different directories.<br />
# Failure-inducing change(s) will unlikely be localized to a single directory and file. Failure-inducing change(s) may be spread across many different directories and source files.<br />
# The source files could be of the same type (C++), mixed type (C++, JS), same directory, different directory. It shouldn't matter. The framework should be source type and location agnostic.<br />
# The failure-inducing change(s) may not be localized to a single developer. The failure-inducing change(s) may have been caused by another developer's change(s) to a source file they were working on. That is, a single developer's source scope may not be encapsulated but interconnected and interdependent on other developers source code.<br />
# The developer's current version of the source code contains the regression.<br />
# The developer has a test case that can be used indicate whether the test passes/fails/is indeterminate.<br />
# The developer will NOT know the date/version of the last known good version.<br />
<br />
== Project Flowchart ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
The flowchart represents the simplistic version of the delta debugging algorithm. It will theoretically find a failure-inducing change set but not necessarily the minimal set or the full set of failure-inducing change(s). The algorithm is depicted as recursively linear however it could be binarily recursive. In the linear version, the theoretical maximum number of iterations (worst case scenario) is:<br />
<br />
[[Image:Dd_maxiterations.PNG]]<br />
<br />
where ''n'' represents the total number of changes and ''r'' is a subset of ''n''.<br />
<br />
In other words, the summation of the combinations of changes without repetitions that can be made given that the size of the change set can vary from 1 to ''n''.<br />
<br />
<br />
''' Updated Delta Debugging Flowchart. '''<br />
<br />
<br />
[[Image:Dd_flowchart1.PNG]]<br />
<br />
Here are some thoughts regarding the flowchart:<br />
# The whole process revolves around a certain '''Test''', which must be passed to complete the process. It is assumed that the source code passed this test before, but not anymore due to recent changes to the tree. The framework will locate these changes.<br />
# The '''Test''' is a versatile module and can be adapted to accept any tests the user may use.<br />
# When the initial test fails, the framework first attempts to locate which changeset causes this failure. This is done by "going back through time", retrieving the trees from previous revisions, and running each tree through the same test. The idea is to locate the latest revision where the test passes successfully.<br />
# Once this revision is identified, the framework will extract the '''diff''', the difference between the two revisions.<br />
# The framework will then use this '''diff''' to break down the difference possibilities (e.g. directory, file, etc) and isolate the cause of the failure.<br />
# Once this is done, the framework will deliver the cause of the failure in a report for the user and the operation is finished.<br />
<br />
<br />
== Project Test Cases ==<br />
<br />
The test cases used in this project are located in the [[Delta_debugging_testcases|Delta Debugging Testcases page]].<br />
<br />
== Project Roadmap ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
[[Delta Debugging Framework Roadmap|Delta Debugging Framework Roadmap]]<br />
<br />
The page outlines our current vision of the delta debugging framework and a roadmap of the work that needs to be completed to accomplish our vision. This roadmap may be subject to change and/or expanded as our vision expands through feedback and requests from others, our own ideas, etc.<br />
<br />
== Partial Class Diagram ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
Most of the classes in blue exist in the source repository. The classes in pale yellow are classes that won't be completed in the first release.<br />
<br />
<br />
[[Image:Dd_partialclassdiagram2.PNG]]<br />
<br />
<br />
== Project News ==<br />
<br />
([[#top|&uarr; top]])<br />
<br />
''This is where your regular updates will go. In these you should discuss the status or your work, your interactions with other members of the community (e.g., Seneca and Mozilla), problems you have encountered, etc. Put detailed technical information into the Project Details page (i.e., update it as you go), and save this section for news about participation in the project.''<br />
<br />
=== Dec. 22, 2006 ===<br />
<br />
I haven't posted an update in a while. So what's been done?<br />
<br />
I finally had some time to do a second round of testing & debugging of the delta debugging framework. And guess what? It ''seems'' to work now. The problem? Combination of logical errors when applying and unapplying changes in the framework and a bad test case. Go figure.<br />
<br />
However, before I get ahead of myself and officially tag and release the delta debugging framework as version 0.1, I would like to test it out on another test program. Hopefully, this can be done this weekend. And if all goes well, version 0.1 will be officially released before the end of the year.<br />
<br />
<br />
<br />
=== Dec. 13, 2006 ===<br />
<br />
Created [[Delta_debugging_testcases|Delta Debugging Testcases]] page to discuss the nature of the test cases created to test the algorithm. Included in the page are 2 testcases created so far, the '''HelloWorld''' binary test and the '''Sudoku''' test. Both tests can be found in the '''deltatest''' svn repository. The repository can be checked out using this command:<br />
<pre> svn checkout svn://cdot.senecac.on.ca/deltatest </pre><br />
<br />
Exactly 12 days before Christmas, the delta debugging framework has been released under the [http://www.opensource.org/licenses/gpl-license.php GPL Version 2] License.<br />
<br />
Unfortunately, we haven't had the time to test the delta debugger much since Dec. 09, 2006 because of exams, other school work; Planning to spend some time this weekend to test the delta debugger and figure out why it currently seems to not be able find the minimal set of failure inducing directories/files (whether its because of unreliable test case or logical error in the program).<br />
<br />
A roadmap of our vision of the direction of the project will be heading in the future will be created and posted soon.<br />
<br />
<br />
=== Dec. 11, 2006 ===<br />
<br />
Uploaded testcase for '''HelloWorld''' binary at '''deltatest svn'''. The test simulates the error that may occur when compilation fails due to syntax error. The exalted HelloWorld program is located on the HelloWorld directory, while the test definition is at HelloTestCase1.pm. The algorithm detects failed test and reverts the affected file to the version where the test passes.<br />
<br />
Note for the future: improve user feedback functions!<br />
<br />
<br />
=== Dec. 10, 2006 ===<br />
<br />
Where is the CVS/Bonsai work heading? Here is a breakdown of the past 3-4 weeks:<br />
* Initially was going for a straight wrapper around CVS ala the style Richard used for SVN.<br />
* Tried to find some functionality within Bonsai that could make it easier.<br />
* Talked to Reed Loden, he set up a repository for us to try with. Thanks Reed!<br />
* Thought that there may be some additional (read: unpublished) tools that could be worked with. Got in contact with some of the "Project Participants" listed on [http://www.mozilla.org/projects/bonsai/]. Was told the person in particular wasn't a contributor (just submitted a bug report). They in turn pointed me to [irc://irc.mozilla.org/#mozwebtools #mozwebtools].<br />
* Lurked on [irc://irc.mozilla.org/#mozwebtools #mozwebtools] for a few weeks. Talked to 'justdave' about Bonsai. Reed Loden chimed up and informed me that Bonsai can output to XML using ?xml=1 on the query (score! thanks again).<br />
* Researched some PERL parsing utilities. Trying out XML::LibXML for DOM-style parsing.<br />
* Hopefully wrap something up by Wednesday. Failing that, might just go with simple CVS wrapper of some sort.<br />
<br />
<br />
<br />
=== Dec. 09, 2006 ===<br />
<br />
What has been done since last week?<br />
* Got a test program and uploaded it to svn://cdot.senecac.on.ca/deltatest. The pristine working version is revision 4. The latest committed copy is revision 8. The regressive code was committed somewhere in between. <br />
* Started testing the delta debugging framework. <br />
<br />
The results of the testing?<br />
<br />
'''Finding the minimal revision set/last known good revision''' <br />
<br />
Works. The delta debugger correctly reverts to a previous revision, builds the source code, and runs the test case. The test case returns the proper results on whether or not it passes or fails. The delta debugger correctly stops at revision 4 - the last known good version.<br />
<br />
'''Finding the minimal failure-inducing set of directories'''<br />
<br />
Indeterminate. There is only 1 directory in the source repository so that directory should be returned as the minimal failure inducing set of directories. Does it return it? yes and no.<br />
<br />
The delta debugger correctly applies all of the changes within that directory. And I think it correctly builds the source tree and runs the test case. However, the return code of the test case is not as expected. I expect the test case to report that the test fails, however, it reports that it passes. Thus, the delta debugger returns no directories as failure inducing.<br />
<br />
However, if I force the test case to return the expected result, then the delta debugger correctly returns the directory as the failure-inducing one.<br />
<br />
I suspect (or at least hope) that the indeterminate results of finding the failure inducing set of directories is because of a possibly unreliable or inconsistent test case. However, I can not be sure until I rule out the test case as the problem.<br />
<br />
'''Finding the minimal failure-inducing set of files'''<br />
<br />
Indeterminate. There are multiple source files in the repository. Does it return the correct failure-inducing source file? I don't know. I have the same suspicions for this as for the directory changeset.<br />
<br />
Based on the testing, it seems to be able to cycle through every combination of changes in the changeset, apply the combination of changes, build the source code, and run the test case. The test case just seems to not report the correct test results.<br />
<br />
<br />
<br />
=== Dec. 03, 2006 ===<br />
<br />
Committed some updated to the SVN repository.<br />
* The test framework. There are a couple of files to the framework: Test.pl, TestCase.pl, TestSuite.pl, TestResult.pl, TestRunner.pl. It is loosely based off of the design of the JUnit framework. Why such an elaborate design just for the need of users to define the test case that can determine whether or not a piece of functionality works or not to be run? For a few reasons that I may be adamant about:<br />
# To use the delta debugging framework, the user should not have to touch the DeltaDebugger.pl file to define the tests and how to run them. Using the testing framework, this can be done by subclassing the TestCase.pl class and overriding the run() subroutine.<br />
# For the delta debugger to work, it needs to know whether the test case passes or fails. Using the test framework, I hope to control the possible return codes of the tests to either pass or fail only.<br />
* testtest.pl that tests the functionality of the test framework.<br />
* updates to DeltaDebugger.pl to make use of the test framework.<br />
<br />
<br />
Crunch time. One week left. The high priority tasks that still need to be done:<br />
# Acquisition of a program we could use to test the delta debugging framework. See [[#How_to_Get_Involved|How To Get Involved]] for more info.<br />
# Test, debug the delta debugging framework.<br />
<br />
<br />
=== Nov. 26, 2006 ===<br />
<br />
Committed some updates to the SVN repository.<br />
* Updated the delta debugging algorithm module. I didn't realize this yesterday but the algorithm to find the minimal set of failure inducing files (and code block and line of code changes if those changeset types ever gets dones) is the same (with minor modifications) as the algorithm that can find the minimal set of failure inducing directories. Thus I generalized that algorithm to remove the directory changeset specific code so that it will work with all other types of changesets.<br />
* Removed the debugging/test related code from the source files.<br />
CVS Repository Setup (thanks to [[user:reed|Reed Loden!]]): '''hera.senecac.on.ca/deltatest'''<br />
*[http://hera.senecac.on.ca:43080/viewvc.cgi/?root=deltatest ViewVC Web Repository Browser]<br />
*If you want commit access for whatever reason, email one of the project members<br />
<br />
'''Milestone:'''<br />
* Even though the test framework is incomplete, I think we can go ahead and begin the initial testing of the delta debugger on a real regressive program as I think we are ready. Coincidentally, exactly 2 months after the first project news posting on Sept. 26, 2006.<br />
<br />
=== Nov. 25, 2006 ===<br />
<br />
I haven't posted an update in a while so here goes. What's been done since then?<br />
<br />
Committed some updates to the SVN repository.<br />
* Modified the Changeset hierarchy of classes. Added a getChange() subroutine that takes an index and retrieves the change from the changeset. Also modified the getChangeset() subroutine to optionally take an array of directories/files to limit the search scope to within the directories/files passed in. These changes are possibly dangerously untested.<br />
* Committed the DeltaDebugger.pl file. This file houses the actual delta debugging algorithm. It requires three user-defined pieces of information: a Build object, an RCS object, and the automated test cases. Currently, it can theoretically find the failure inducing revision, and the minimal failure inducing set of directories. <br />
* Committed a DeltaDebuggerTest.pl file. It just tests the correctivity of the theoretical.<br />
<br />
<br />
In the works:<br />
* Continue working on the delta debugging algorithm. Need to be able to find the minimal failure inducing set of files.<br />
* Test framework. Allow users to plug in test cases/suites without touching the DeltaDebugger.pl module.<br />
<br />
<br />
The deadline for a version 0.01 release is looming. 1-2 weeks left to get this done. What needs to be done to accomplish this?<br />
* Finish everything that is in the works real soon.<br />
* Need a test program that we could use and upload to our test SVN repository to test the delta debugging framework. Ideally, the test program will meet the following requirements:<br />
# Has source files that span multiple directories wide and deep yet be small enough that the delta debugging can be done in a short amount of time so that all aspects of the delta debugger can be tested.<br />
# Has a regression. Or can easily be modified so that some functionality will stop working.<br />
# Has an automated test case that tests the regressive functionality.<br />
* Put theory into practice. So far the delta debugging algorithm has not been tested on a real program. The correctness of the algorithm has only been confirmed in theory. We need to test the algorithm in a production environment real soon.<br />
<br />
<br />
=== Nov. 19, 2006 ===<br />
<br />
The earlier crash case we had (see the update directly below) was a non-regressive bug--there was no former build that worked with it.<br />
<br />
Going to use [https://bugzilla.mozilla.org/show_bug.cgi?id=325377 Bug #325377] instead. Having difficulty identifying when it was first introduced--the information in the bug report doesn't seem to be quite accurate. Using the nightly builds as archived at [http://archive.mozilla.org/pub/mozilla/nightly/ http://archive.mozilla.org/pub/mozilla/nightly/] to narrow it down.<br />
<br />
Fortunately this crash is easily automated and does not require user interaction.<br />
<br />
<br />
=== Nov. 18, 2006 ===<br />
<br />
*<strike>Found a suitable crash case thanks to the people of [irc://irc.mozilla.org#qa #qa] (in particular, asqueella and Aleksej). For full details on the bug, see [https://bugzilla.mozilla.org/show_bug.cgi?id=354300 Bug #354300].</strike><br />
<br />
*Talked to Reed Loden on IRC. He will be setting up a CVS repository for us something this coming week (Tuesday at earliest).<br />
<br />
<br />
=== Nov. 17, 2006 ===<br />
<br />
Committed some updates to the SVN repository.<br />
* Changed applyChanges subroutine to take array of indices instead of scalar of an index. <br />
* Added unapplyChanges subroutine to Changeset classes.<br />
* [http://www.cpan.org/modules/by-module/Math/Math-Combinatorics-0.08.readme Math::Combinatorics], shamelessly stolen from [http://www.cpan.org/modules/by-module/Math/Math-Combinatorics-0.08.tar.gz here]. This module is used in the Delta Debugging Algorithm module to help find the minimal failure-inducing changeset.<br />
<br />
In the pipeline:<br />
* Delta Debugging Algorithm partially complete. Unthoroughly tested though can theoretically find the directories that contain the failure inducing changes.<br />
* Test cases and samples we may be able to use to test the algorithm.<br />
<br />
Uploaded files into '''scen1''' directory, containing test module for '''binaryTest'''. The test is ready to be used in the algorithm. The directory contains:<br />
* '''binaryTest.pl''' - test to detect the existence of a file.<br />
* '''helloWorld.pl''' - enough said!<br />
* '''binaryTestCaller.pl''' - runs '''helloWorld.pl''', pipe the result to '''hello.log''', and have '''binaryTest.pl''' attempt to detect it.<br />
This is the working version of the code, labeled '''revision 12'''. Now I have to find a way to wreck it........<br />
<br />
<br />
=== Nov. 14, 2006 ===<br />
<br />
The development of testing system for the framework is in the works. The first scenario revolves around a test called '''BinaryExist''', which has been shamelessly ripped from the Tinderbox script. All this test does is check whether a given file exists in the system. While this test can aspire for great things, right now it's doing simple thing, like checking whether its client Hello World program is doing what it's supposed to. Initial testing reveals that this test has potential. Will be uploaded to the SVN soon.<br />
<br />
<br />
=== Nov. 05, 2006 ===<br />
<br />
I didn't know where else to put this so I'm putting this here. While searching around for the elusive Mozilla tests that are run in Tinderbox, I found [http://wiki.mozilla.org/SoftwareTesting:Scratchpad this gem]. All of the tests are apparently located in the ''mozilla/testing'' directory and can be checked out using this command while at the ''mozilla'' directory:<br />
<br />
cvs update -d testing<br />
<br />
The tests we would most likely be interested in are located in the ''tinderbox-standalone-tests'' subdirectory. Based on a quick scan of the perl files there, the ''test-mozilla.pl'' file in that directory seems to drive the tests located in the ''Tests'' subdirectory which seem to contain a lot of performance tests. The arguments that the test subroutines receive (such as build directory and binary name) seem to come from the ''Settings.pm'' file located in the ''Util'' directory.<br />
<br />
Attempts to run the tests have so far been unsuccessful. If someone (hint hint) could figure out how to run these tests and how these tests work that would be great.<br />
<br />
<br />
=== Oct. 31/Nov. 01, 2006 ===<br />
<br />
Committed some updates to the SVN repository.<br />
* Added file DirectoryChangeset.pl. This file gets a list of directories changed since the revision number passed in.<br />
* Added file DirectoryChange.pl. This file encapsulates the idea of a changed directory, sort of. Basically holds revision number and path of directory.<br />
<br />
UPDATE:<br />
* I didn't feel tired so I added an applyChange() subroutine to the Changeset classes and ChangesetFactory class. This allows the user to apply a change (specified by the index passed in to the subroutine) in a changeset. <br />
<br />
Up Next:<br />
* Based on how much time I predict I will have left to work on this, I don't think I will have enough time to do the Change/Changeset classes for Codeblock or Line. Therefore, it's time to skip ahead and work on the application of changes. Should the user be able to pass in an array of indices of changes to apply in a changeset? Or is just allowing the user to give one index good enough? We may find that out soon enough when we try to implement the delta debugging algorithm.<br />
<br />
<br />
=== Oct. 26, 2006 ===<br />
<br />
Committed some updates to the SVN repository.<br />
* Fixed a small bug with the regular expression in FileChangeset.pl's getChangeset() subroutine.<br />
* Changed the data that is returned in the getChangeset() subroutines. Used to return the Change set. Now returns the number of changes in the change set. This should decrease memory requirements.<br />
* Merged some functions in FileChangeset.pl that was created based on an erroneous logical assumption.<br />
<br />
Up Next:<br />
* Continue working on the Changeset/Change subclasses. Need to do Directory, Code block, and Line.<br />
<br />
<br />
=== Oct. 24/25, 2006 ===<br />
<br />
Committed some updates to the SVN repository.<br />
<br />
Updates:<br />
* Updated the package names for all files.<br />
* Updated the svn.pl file - fixed a small bug.<br />
* Updated makewrapper.pl - removed debug statements. I should probably rename the file to something better.<br />
<br />
Additions:<br />
* Created ChangesetFactory.pl - Returns a change set based on the type of change set (revision, directory, file, code block, line).<br />
* Created RevisionChangeset.pl - Gets and returns all of the changes made in a specified revision.<br />
* Created FileChangeset.pl - Gets and returns a list of the paths to the files that were changed since a specified revision. <br />
* Created FileChange.pl - Encapsulates the idea of a Change to a file. Basically stores revision number and file path.<br />
* Created ChangesetTest.pl - Tests the subroutines in the classes and the interactions between the classes.<br />
<br />
Up Next:<br />
* Continue working on the Changeset/Change subclasses. Need to do Directory, Code block, and Line.<br />
<br />
<br />
=== Oct. 17, 2006 ===<br />
<br />
The quest to build a suitable "wrapper" for the build system is not doing well. So far I have only observed various build logs posted on [http://tinderbox.mozilla.org Tinderbox] for the SeaMonkey build. Here are some observations I come up with.<br />
* Successful builds - green or yellow on Tinderbox<br />
<br />
<pre><br />
seamonkey-bin exists, is nonzero, and executable.<br />
seamonkey-bin exists, is nonzero, and executable.<br />
seamonkey-bin binary exists, build successful.<br />
</pre><br />
<br />
* Broken builds - red on Tinderbox<br />
<br />
<pre><br />
gmake[6]: *** [nsAttrValue.o] Error 1<br />
...<br />
gmake: *** [alldep] Error 2<br />
</pre><br />
<br />
Analyzing build logs may be the "lazy" solution to building a wrapper to detect build failures, but that's the best thing we've got so far. Searches for any of the strings listed above in LXR did not yield valuable result, which means the build system remains a mystery to us. Thoughts:<br />
* Tinderbox builds rely on report logs to capture build data. If we can figure out how to get tap into this process, we can better plan our prototype.<br />
* Tinderbox performs a build operation first, and then automatically starts a bunch of tests (e.g. MozillaAliveTest, regxpcom test). These tests do not exist within LXR, either, which means they reside outside the tree. If we can find the script that fires these tests, we can probably create our first prototype as a test and hook it into the build system.<br />
So many questions... Perhaps I should start hanging out at [irc://irc.mozilla.org/build #build].<br />
<br />
<br />
=== Oct. 15, 2006 ===<br />
<br />
Updated the file ''svn.pl''. Added the ''diff'' subroutine. It's a wrapper around the ''svn diff'' command. Updated the ''update'' subroutine. Added another argument and made them both optional. Subroutine can now accept a directory/file argument in addition to revision number.<br />
<br />
Also, currently working on creating some subroutines that can break up a changeset based on the type requested. Changeset types include: <br />
* Revision. A revision may be a changeset. However, MANY changes may occur in each revision so it may be wise to break up the revision into smaller changesets.<br />
* Directory. All changes made within a directory may be considered a changeset. Again, MANY changes may occur within a directory, so it may be wise to break it up into smaller changesets.<br />
* File. All changes made within a file may be considered a changeset. Again, MANY changes may occur within a file, so it may be wise to break up the revision into smaller changesets.<br />
* Code block. Logical code blocks may be considered a changeset.<br />
* Line. A line in a file is the lowest change denominator.<br />
<br />
The lower down the list you go, the higher the possibility of inconsistencies (inability to successfully compile source tree).<br />
<br />
<br />
=== Oct. 10, 2006 ===<br />
<br />
Added two files to the SVN repository: ''makewrapper.pl'' and ''maketest.pl''. I have no idea if the files will be useful or if I just wasted my time.<br />
<br />
''makewrapper.pl'' is a light wrapper around the GNU make utility used to build the source tree. This wrapper was created to be able to programmatically execute the make command with various [http://www.gnu.org/software/make/manual/html_node/Options-Summary.html#Options-Summary options]. One thing I haven't figured out yet is how to get the exit status code that GNU make returned (0 - successful; 2 - error) after it finishes executing so that I can return that exit code in the ''build'' subroutine.<br />
<br />
''maketest.pl'' just tests the subroutines in ''makewrapper.pl''.<br />
<br />
Starting to get a hang of Perl again after not using it for quite some time.<br />
<br />
<br />
=== Oct. 09, 2006 ===<br />
<br />
Added two files to the SVN repository: ''svn.pl'' and ''svntest.pl''. I have no idea if the files will be useful or if I just wasted my time.<br />
<br />
''svn.pl'' is a light wrapper around a couple svn commands used to manipulate the svn repository and user's working copy. This wrapper was created to be able to programmatically execute [http://svnbook.red-bean.com/nightly/en/svn.ref.html SVN commands]. One thing I haven't figured out yet is how to get the exit status code that is returned after every SVN command is executed as I would like to return this exit code in the subroutines.<br />
<br />
''svntest.pl'' just tests the subroutines in ''svn.pl''.<br />
<br />
Of note, Perl's object-orientedness is quite different from the other object-oriented languages that I am used to such as C++ and Java.<br />
<br />
<br />
=== Oct. 03, 2006 ===<br />
<br />
Discussed the project with dave humphrey. The gist of the discussion is:<br />
<br />
<vipers101> dave: I hereby present you, richard!<br />
<br />
<vipers101> richard: say something!<br />
<br />
<dave> pffft...way to play like a team<br />
<br />
<vipers101> I prefer to have my team share my griefs<br />
<br />
......<br />
<br />
<dave> let's assume you've got a program that used to work, but now it crashes. you'd like to figure out what changes to the code introduced the crash. you can programmatically test for the existence of the crash. so you want to have the computer go back in time and figure out what was the delta (e.g., changeset) where the crash started. you want to be able to isolate the problem down to a set of changes to a set of files. further if possible. let's say you have revisions 200 to 500, and you know the bug is caused by *something* in there. so you want to bisect your way through those changesets (in SVN each of those numbers is a changeset) until you can see where the bug was introduced<br />
<br />
<vipers101> dave: you mean the bugs are not introduced by the recent work?<br />
<br />
<dave> you don't know. you can't assume. maybe, maybe not. remember that working on a huge codebase means that there will be lots of changes going on around your work. so if you do a checkin, they take the weekend off, 50 other people could checkin before your next commit. what you need is a way to test for the problem (maybe a return code). then you need to be able to automatically pull and build the code, and run that test. wash, rinse, repeat<br />
<br />
<richard> if i get this, i can't assume that the user will already have a test case/function that returns pass/fail?<br />
<br />
<dave> right. you probably need to write something to figure this out. so a hung browser might mean you have a timer that watches for an event. or you might wait on a return code. a crash is probably easiest to test for. this is what I mean by writing a "wrapper".<br />
<br />
<vipers101> richard: I think we just have a new task list<br />
<br />
<br />
=== Sept. 26, 2006 ===<br />
<br />
I read through your documentation here, and it is looking good. I also spoke to Shaver by phone this morning, and we chatted briefly about this project. He suggests that you start your work by looking for a suitable '''Crash Case''', one that happens reliably. Then you need at what would be necessary in order to bisect the change set (e.g., [http://www.mozilla.org/bonsai.html bonsai] data) in order to get closer to the change that introduced the bug. Shaver suggested that robc (Rob Campbell) might be a good person to help you brainstorm on this.<br />
<br />
== How to Get Involved ==<br />
<br />
We need a test program that we could use and upload to our test SVN repository to test the delta debugging framework. Ideally, the test program will meet the following requirements:<br />
# Has source files that span multiple directories wide and deep yet be small enough that the delta debugging can be done in a short amount of time so that all aspects of the delta debugger can be tested.<br />
# Has a regression. Or can easily be modified so that some functionality will stop working.<br />
# Has an automated test case that tests the regressive functionality.<br />
If you don't have a program that meets the first requirement, we could also use test programs that have multiple source files. The key being that the program has more than one source file. Programs that are contained in only one source files are useless to us.<br />
<br />
If you have a program that meets these requirements, and you want to contribute to this project, then holla.<br />
<br />
<br />
<hr /><br />
<br />
<br />
If you are looking for an easy way in which to contribute to this project, you can jump in by writing one or more tests for the test suite. This does not require that you learn about the delta debugging inner-workings or structure.<br />
<br />
Basic Advice:<br />
* You '''must''' be able to automate the test--no human intervention is allowed.<br />
* Possible test types include:<br />
*: '''Crashing'''<br />
*:: Can you crash the program with a minimal collection of circumstances (steps) that are easily reproducable? (In other words, can you write a script so that this happens in a controlled manner.)<br />
*: '''Performance-related'''<br />
*:: Is there a threshold for unacceptable consumption of time and/or space that is reason for concern?<br />
*: '''Program hanging'''<br />
*:: Does the program hang? Will it occur in a certain functionality of the software that is possible to isolate (reproduce) through scripted means?<br />
*: '''Unexpected return codes'''<br />
*:: What is a normal return code for the program? What is considered unexpected? Script a series of actions and pass the return code up to the test framework.<br />
* Each test will fit into the test framework (which, at this point, still has to be designed). The tests must follow a few rules (again, undecided at this point).<br />
<br />
Please check back in a few days. Expect some templates and samples up shortly to help get you going. <u>The currently listed test types are subject to change.</u><br />
<br />
<br />
==Future of the Project==<br />
Here are some of the ideas related to the continuation of this project. Included are some personal ideas of the team members, tasks to reach the overall objective (a working, robust, Delta Debugging Framework for Mozilla), and additional features/functionality that would enhance the framework. This is subject to change, and a project roadmap will be written in the near future.<br />
<br />
===CVS Support via Bonsai===<br />
For the exploration into Bonsai and to see where it is/was heading, please view the [[delta debugging framework bonsai direction|Bonsai Direction]]. It is likely that a workable solution could be produced utilizing some of the details found in the link. This functionality would be particularly useful to Mozilla as this [Bonsai] is the technology they currently use.<br />
<br />
===Enhancement of the Algorithm===<br />
Richard's great algorithm can be further enhanced using a binary search-like approach that splits the revision from the current, all the way back to when the regression was first noticed (or, alternatively, when the crash case last known to have worked). Currently it works in a sequential manner, testing all previous revisions in order.<br />
<br />
:'''More Granularity'''<br />
:For this course, Richard's algorithm supported down to the file-level of change. In the future, it could go as far as evaluating changes in lines of code.<br />
<br />
===Fleshed Out Test Suite Design===<br />
The test suite test types should be further fleshed out and individual tests gathered (no participation from the class was possible due to time constraints; the test suite design wasn't fully explored and documented). Test suites could be put together for each major Mozilla.org project (Firefox, Thunderbird, Sunbird, Bugzilla, etc.).<br />
<br />
===More Crash Cases===<br />
More crash cases need to be found for the success in testing the project.<br />
<br />
===Unit Tests===<br />
A debugging framework, more so than other projects, should have its code quality tested and scrutinized heavily.<br />
<br />
===Code Review===<br />
Perhaps some manual audits could be performed by hand from outside contributors in the future.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=SVN_Repositories&diff=10220SVN Repositories2007-02-15T20:04:29Z<p>Reed: s/Airbag/Breakpad/</p>
<hr />
<div>This is a list of repositories that have been set up for the projects in the course:<br />
<br />
Accessibility<br />
svn://cdot.senecac.on.ca/accessibility<br />
<br />
Breakpad:<br />
svn://cdot.senecac.on.ca/airbag<br />
<br />
Bug Triage:<br />
svn://cdot.senecac.on.ca/bugtriage<br />
<br />
BuildBot:<br />
svn://cdot.senecac.on.ca/buildbot<br />
<br />
Calendar:<br />
svn://cdot.senecac.on.ca/calendar<br />
<br />
CSS Guide:<br />
svn://cdot.senecac.on.ca/cssguide<br />
<br />
DBUS:<br />
svn://cdot.senecac.on.ca/dbus<br />
<br />
Delta Debugging:<br />
svn://cdot.senecac.on.ca/deltadbg<br />
<br />
Test repository for delta debugging:<br />
svn://cdot.senecac.on.ca/deltatest<br />
<br />
DistCC<br />
svn://cdot.senecac.on.ca/distcc<br />
<br />
Joga Extension:<br />
svn://cdot.senecac.on.ca/joga<br />
<br />
Something:<br />
svn://cdot.senecac.on.ca/mdci<br />
<br />
OS X Keychain:<br />
svn://cdot.senecac.on.ca/osxkeychain<br />
<br />
Performance Testing:<br />
svn://cdot.senecac.on.ca/perftest<br />
<br />
Same Window Extension:<br />
svn://cdot.senecac.on.ca/samewindow<br />
<br />
Win32 Bugs:<br />
svn://cdot.senecac.on.ca/win32bugs<br />
<br />
XUL Runner:<br />
svn://cdot.senecac.on.ca/xulrunner</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Mozilla@Seneca_Cluster_Administration/Archive&diff=10219Mozilla@Seneca Cluster Administration/Archive2007-02-15T20:04:03Z<p>Reed: s/Airbag/Breakpad/</p>
<hr />
<div>This page holds old news and project details from the [[Mozilla@Seneca Cluster Administration]] page.<br />
<br />
== Details ==<br />
<br />
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=2 cellspacing=0><br />
<th>Task</th><br />
<th style="width: 10%>Priority</th><br />
<th style="width: 30%">Status</th><br />
<tr><br />
<td><strike>Setup Win2k3 VM for Liz</strike></td><br />
<td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td><br />
<td>'''Complete'''</td><br />
</tr><br />
<tr><br />
<td><strike>Setup Linux VM for [[Breakpad development and server operation|Breakpad]] project.</strike></td><br />
<td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td><br />
<td>'''Complete'''</td><br />
</tr><br />
<tr><br />
<td><strike>Setup NFS server on linux9</strike></td><br />
<td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td><br />
<td>'''Complete'''</td><br />
</tr><br />
<tr><br />
<td><strike>Setup SMB server on linux9</strike></td><br />
<td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td><br />
<td>'''Complete'''</td><br />
</tr><br />
<tr><br />
<td><strike>Setup VM for CVS/bonsai mirror</strike></td><br />
<td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td><br />
<td>'''Complete'''</td><br />
</tr><br />
<tr><br />
<td><strike>Find out why apache doesn't work through the initscripts on linux2</strike></td><br />
<td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td><br />
<td>SELinux was the problem. Fixed by "setsebool -P httpd_disable_trans 1"</td><br />
</tr><br />
</table><br />
<br />
== News ==<br />
<br />
=== September 2006 ===<br />
Sept. 25, 2006<br />
:* TryScheduler is setup, need to test it.<br />
<br />
Sept. 26, 2006<br />
:* Big Errors when attempting to use 'buildbot try'. Posted to the mailing list about it.<br />
<br />
Sept. 28, 2006<br />
* Win2 was imaged and win4 and win5 brought online.<br />
:* linux12 - linux15 were brought online.<br />
<br />
Sept. 29, 2006<br />
:* Buildbot maintainer replied to my mailing list post. What he says looks promising, I will be testing it out this weekend.<br />
<br />
Sept. 30, 2006<br />
:* Fixed the first error with 'buildbot try'. Getting a new problem related to 'cvs diff', need to post to the mailing list again.<br />
<br />
=== October 2006 ===<br />
22:43, 1 October 2006 (EDT)<br />
:* New problem can be fixed by adding '-N' flag. Need to post to mailing list and see if this can be changed in trunk.<br />
<br />
13:23, 5 October 2006 (EDT)<br />
:* Port forwards to the VMs were enabled. I spent a few hours figuring out why I couldn't connect to the Windows 2003 server with RDP, turns out the encryption level was too high.<br />
:* [[User:shaver|shaver]] would like to get a list of things we need to do before bringing new VMs online. I think this is a good idea. It would be unfortunate if projects were held up because of politics.<br />
<br />
15:00, 6 October 2006 (EDT)<br />
:* Ubuntu Desktop and Ubuntu Server generic images are now available in /usr2/Generic VMs. Windows 2003 to come.<br />
<br />
17:16, 30 October 2006 (EST)<br />
:* Played with buildbot try some more. I found out that it is not a stable feature yet. I'm thinking about whether I want to take on development of it.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Mozilla@Seneca_Cluster_Administration/Forwarded_Ports&diff=10218Mozilla@Seneca Cluster Administration/Forwarded Ports2007-02-15T20:03:23Z<p>Reed: s/Airbag/Breakpad/</p>
<hr />
<div>This page describes ports forwarded from Hera to the machines sitting behind it.<br />
<br />
If you have forgotten how to access your VM please consult the table at the bottom of this page. If you have forgotten which machine you are using please consult the [[Mozilla@Seneca Cluster Administration/Cluster Machine Tasks|Cluster Machine Tasks]] page. Please do these things before asking for help.<br />
<br />
=Linux Hosts=<br />
<br />
Linux hosts have forwards to 4 ports: 22, 80, 443, and 5900.<br />
<br />
Linux1 has the following:<br />
* hera.senecac.on.ca:1022 -> linux1:22<br />
* hera.senecac.on.ca:180 -> linux1:80<br />
* hera.senecac.on.ca:1443 -> linux1:443<br />
* hera.senecac.on.ca:1900 -> linux1:5900<br />
<br />
So to connect with ssh to linux1 you would do the following:<br />
:<pre>ssh -p 1022 username@hera.senecac.on.ca</pre><br />
<br />
The rest of the Linux nodes following the same format, replacing the '1' with their number. For example, to access VNC on linux11 you would do the following:<br />
:<pre>vncviewer hera.senecac.on.ca:11900</pre><br />
<br />
There are 15 total Linux machines at the time of this writing.<br />
<br />
=Windows Hosts=<br />
<br />
Windows hosts have forwards to 3 ports: 80, 443, and 3389.<br />
<br />
Win1 has the following:<br />
* hera.senecac.on.ca:31080 -> win1:80<br />
* hera.senecac.on.ca:31443 -> win1:443<br />
* hera.senecac.on.ca:31389 -> win1:3389<br />
<br />
To connect to win1 with Remote Desktop open up your RDP client and type the following for the 'host': 'hera.senecac.on.ca:31389'.<br />
<br />
The rest of the Windows machines follow the same format replacing the '31' with '3x' where x is the number of the machine. For example, to access port 80 on win3 you need to use the URL 'http://hera.senecac.on.ca:33080'.<br />
<br />
There are 5 total Windows machines at the time of this writing.<br />
<br />
=Virtual Machines=<br />
<br />
The following table lists all of the port fowards for Virtual Machines:<br />
<br />
<table style="width: 60%;" class="standard-table" cellborder=1 border=1 cellpadding=2 cellspacing=0><br />
<th style="width: 20%">Machine</th><br />
<th style="width: 20%">Operating System</th><br />
<th style="width: 30%">Forwarded Ports</th><br />
<tr><br />
<td>breakpad</td><br />
<td>Ubuntu 6.06</td><br />
<td><br />
<table style="width: 100%;" cellborder="0" border="0" cellpadding=2 cellspacing=0 align="center"><br />
<tr><br />
<td style="font-weight: bold; text-decoration:underline;">Port on Hera</td><br />
<td style="font-weight: bold; text-decoration:underline;">Port on the host</td><br />
</tr><br />
<tr><br />
<td>40022</td><td>22</td><br />
</tr><br />
<tr><br />
<td>40080</td><td>80</td><br />
</tr><br />
<tr><br />
<td>40443</td><td>443</td><br />
</tr><br />
<tr><br />
<td>40900</td><td>5900</td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
<tr><br />
<td>functest</td><br />
<td>Windows Server 2003</td><br />
<td><br />
<table style="width: 100%;" cellborder="0" border="0" cellpadding=2 cellspacing=0 align="center"><br />
<tr><br />
<td style="font-weight: bold; text-decoration:underline;">Port on Hera</td><br />
<td style="font-weight: bold; text-decoration:underline;">Port on the host</td><br />
</tr><br />
<tr><br />
<td>41080</td><td>80</td><br />
</tr><br />
<tr><br />
<td>41443</td><td>443</td><br />
</tr><br />
<tr><br />
<td>41389</td><td>3389</td><br />
</tr><br />
<tr><br />
<td>41900</td><td>5900</td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
<tr><br />
<td>cvs</td><br />
<td>Ubuntu 6.10</td><br />
<td><br />
<table style="width: 100%;" cellborder="0" border="0" cellpadding=2 cellspacing=0 align="center"><br />
<tr><br />
<td style="font-weight: bold; text-decoration:underline;">Port on Hera</td><br />
<td style="font-weight: bold; text-decoration:underline;">Port on the host</td><br />
</tr><br />
<tr><br />
<td>43022</td><td>22</td><br />
</tr><br />
<tr><br />
<td>43080</td><td>80</td><br />
</tr><br />
<tr><br />
<td>43443</td><td>443</td><br />
</tr><br />
<tr><br />
<td>2401</td><td>2401</td><br />
</tr><br />
<tr><br />
<td>43900</td><td>5900</td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
</table></div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Mozilla-Seneca_Projects_QA&diff=10217Mozilla-Seneca Projects QA2007-02-15T20:02:48Z<p>Reed: s/Airbag/Breakpad/</p>
<hr />
<div>== Talk Details == <br />
<br />
* '''Date''': Sept 27, 2006<br />
* '''Speaker''': Mike Shaver, Mozilla Corporation<br />
* '''License''': [http://creativecommons.org/licenses/by-sa/2.5/ CC-BY-SA]<br />
<br />
== Media ==<br />
<br />
* [http://ilearn.senecac.on.ca/mozillalectures/lecture3part1.html Part I] (streaming)<br />
* [http://ilearn.senecac.on.ca/mozillalectures/lecture3part2.html Part II] (streaming)<br />
* [http://ilearn.senecac.on.ca/mozillalectures/mozillalecture3.mp3 MP3] (94 MB)<br />
<br />
== Talk Outline ==<br />
<br />
Students were asked to post questions for Shaver. He used this list as his starting point:<br />
<br />
=== General Interest ===<br />
<br />
* How long have you been working on Mozilla?<br />
<br />
* If you were a tree, what kind of tree would you be? (dria)<br />
<br />
* Do you ever use a web browser that is not Firefox? If so, what would be one feature from that browser that you would like to see in Firefox? (moe)<br />
<br />
* Computer technologies move very quickly and what's the best today may become obsolete next year, usually because of the 'new thing' nobody thought about. Are you considering this in choosing worthwhile projects within the Mozilla Foundation and can you share any of your ideas on this topic? (andrew)<br />
<br />
* Mozilla is a not-for-profit corporation. Where does a corporation of this size look for funding? Would a for-profit Mozilla be viable? (lorne/halcyon1234)<br />
<br />
* How do you evaluate Firefox as good quality? ([[User:Paul|Paul]])<br />
<br />
* What kind of enhancements do you think people want, or asked to see, in future versions of Firefox and Thunderbird?<br />
<br />
=== Project Specific ===<br />
<br />
* A number of the projects have connections, for example, the d-bus and AppleScript project both need to allow data from outside to pass into the browser. Can you comment on this? Where to start in terms of the Mozilla side?<br />
<br />
* What types of "web services" can you imagine people wanting to connect a generalized-Joga extsion to?<br />
<br />
* Many of the projects have extension pieces (e.g., Joga, Bug Triage extension, etc.), and it seems like connecting these to the XULRunner project might be a good idea. Can you talk a bit about XULRunner with regard to these projects?<br />
<br />
* There is a lot of talk about Breakpad as a potential replacement for Talkback. Can you talk about Breakpad and what you see as the possible outcomes for people working on this? Where does Firefox connect to Breakpad (i.e., where are the points of contact within Mozilla to an Breakpad server)?<br />
<br />
* Would you be able to comment on the involvement of Apple in Firefox, more specifically the integration of the OS X Keychain?<br />
<br />
* A couple of projects require the creation or modification of UI in Firefox. Could you provide us with some insight as to how the code behind Firefox interacts with the user?<br />
<br />
* What is the relationship between a window, its tabs, and the tab's history? (not for a current project, just an extension idea that's been bouncing around in my head for a bit) ([[User:Themystic|mystic]])<br />
<br />
* What is your vision on the Delta Debugging project? How would this project help in testing the Firefox builds? Where can we get the crashing test cases? ([[User:Ankuswan|vipers101]])<br />
<br />
* Often times while working on a Mozilla project there isn't a concrete direction and there isn't a real solution out there. The developer has to work at their own pace to ensure the success of the project. Do you mind sharing some of your earlier experiences while you were working on some of the complex Mozilla projects, specifically how you found your direction, solutions to problems, etc.? ([[User:Elichak|elichak]])<br />
<br />
* How do you test Firefox by using Unit Testing currently? ([[User:Paul|Paul]])<br />
<br />
* What features should be considered when integrating D-Bus into Firefox? Some ideas were to notify Firefox of the network connectivity status or hot-swappable changes. Can you overwhelm us with some more that you would like to see?<br />
<br />
* How does Firefox currently communicate with the Linux system and applications? Specifically, what technologies are currently used in Firefox (ex. DCOP, CORBA) to do this communication in the Linux environment, and is there a framework that Mozilla has created that these and emerging technologies (D-Bus) should use?<br />
<br />
* "The D-Bus API isn't finished yet, and the design is by no means set in stone." -freedesktop.org. When D-Bus 1.0 is offically deployed will Firefox require D-Bus as a dependency in future releases?<br />
<br />
* How do you expect D-Bus effecting the current technologies used for interoperability considering there is a port for Windows ([http://sourceforge.net/projects/windbus winDBus])?<br />
<br />
=== Open Source Development Best Practices/Skills ===<br />
<br />
* It's clear that one of the main advantages of open source development is being able to use/consult/model/etc. existing code. How does one do this practically? For example, with respect to the [[OS X Keychain integration]] project, knowing that this has been done in other projects, where does one begin and how?<br />
<br />
* A number of previous speakers have mentioned LXR. Can you show us some of the ways you use LXR?<br />
<br />
* Some of the Mozilla projects for this course involves writing technical documentation. Is there any standards we should be following? Is there a template and/or sample that we can use? ([[User:Mylau|mylau]])<br />
<br />
* Most developers take QA testing lightly. Do you mind sharing why testing is important (especially within the Mozilla community). Give an idea of how to approach testing when a Mozilla developer is given a program (maybe touch on Performance Testing: Python Framework)? ([[User:Elichak|elichak]])</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Mozilla@Seneca_Cluster_Administration/Cluster_Machine_Tasks&diff=10216Mozilla@Seneca Cluster Administration/Cluster Machine Tasks2007-02-15T20:02:09Z<p>Reed: s/Airbag/Breakpad/</p>
<hr />
<div>[[Mozilla@Seneca Cluster Administration|Back to Mozilla@Seneca Cluster Administration]]<br />
== Physical Machines ==<br />
<table style="width: 100%" class="standard-table" cellborder=1 border=1 cellpadding=2 cellspacing=0><br />
<th>Machine</th><br />
<th>Users</th><br />
<th>Daemons and Software</th><br />
<tr><br />
<td>Linux1</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|shaver]], rhelmer, justin</td><br />
<td><br />
* Buildbot slave<br />
** Places<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux2</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|shaver]], [[User:sancus|sancus]], rhelmer, justin</td><br />
<td><br />
* Apache<br />
* Mysql<br />
* Buildbot slave<br />
** Places<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux3</td><br />
<td>[[User:bhearsum|ben]], clouserw, horton, [[User:shaver|mike]], morgamic, rhelmer, justin</td><br />
<td><br />
* Apache<br />
* Mysql<br />
* Buildslave<br />
** trunk<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux4</td><br />
<td>bclary, [[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin</td><br />
<td><br />
* Apache<br />
* VNC<br />
* Buildslave<br />
** trunk<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux5</td><br />
<td>bclary, [[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin</td><br />
<td><br />
* Apache<br />
* VNC<br />
* Buildslave<br />
** trunk<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux6</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin</td><br />
<td><br />
* Apache<br />
* VNC<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux7</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin</td><br />
<td><br />
* VMware (port 443)<br />
** [[#breakpad|breakpad]]<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux8</td><br />
<td>[[User:bhearsum|ben]], cameron, fligtar, lars, majken, mark, [[User:shaver|mike]], [[User:sancus|sancus]], rhelmer, justin</td><br />
<td><br />
* Apache<br />
* Mysql<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux9</td><br />
<td>[[User:bhearsum|ben]], [[User:elichak|elichak]], [[User:shaver|mike]], vladimir, rhelmer, justin, dave</td><br />
<td><br />
* Buildmaster<br />
** trunk (port 2005)<br />
** cairo (port 2001)<br />
* nfsd<br />
** /usr2<br />
* smbd<br />
** /usr2<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux10</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], vladimir, rhelmer, justin</td><br />
<td><br />
* VMware (port 443)<br />
** [[#functest|functest]]<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux11</td><br />
<td>[[User:bhearsum|ben]], john, [[User:shaver|mike]], vladimir, rhelmer, justin</td><br />
<td><br />
* VMware (port 443)<br />
** [[#opengrok|opengrok]]<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux12</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin, reed</td><br />
<td><br />
* VMware (port 443)<br />
** [[#cvs|cvs]]<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux13</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin, reed</td><br />
<td><br />
* Opengrok<br />
</td><br />
</tr><br />
<tr><br />
<td>Linux14</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin, davehg</td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>Win1</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin</td><br />
<td><br />
* Mozilla Build Tools (7-zip, NSIS, cygwin)<br />
* Visual Studio 2005<br />
* Visual Studio 2003<br />
* Python 2.4 (twisted 2.4)<br />
* VMware (port 443)<br />
* Buildslave<br />
** Places<br />
</td><br />
</tr><br />
<tr><br />
<td>Win2</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin</td><br />
<td><br />
* Mozilla Build Tools (7-zip, NSIS, cygwin)<br />
* Visual Studio 2005<br />
* Visual Studio 2003<br />
* Python 2.4 (twisted 2.4)<br />
* VMware (port 443)<br />
* Buildslave<br />
** Places<br />
</td><br />
</tr><br />
<tr><br />
<td>Win3</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], rhelmer, justin, andrew</td><br />
<td><br />
* Mozilla Build Tools (7-zip, NSIS, cygwin)<br />
* Visual Studio 2005<br />
* Visual Studio 2003<br />
* Python 2.4 (twisted 2.4)<br />
* VMware (port 443)<br />
</td><br />
</tr><br />
<tr><br />
<td>Win4</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], [[User:themystic|tom]], rhelmer, justin</td><br />
<td><br />
* Mozilla Build Tools (7-zip, NSIS, cygwin)<br />
* Visual Studio 2005<br />
* Visual Studio 2003<br />
* Python 2.4 (twisted 2.4)<br />
* VMware (port 443)<br />
* distcc related things<br />
* cygwin sshd on port 80<br />
</td><br />
</tr><br />
<tr><br />
<td>Win5</td><br />
<td>[[User:bhearsum|ben]], [[User:shaver|mike]], vlad, rhelmer, justin, cesar</td><br />
<td><br />
* Mozilla Build Tools (7-zip, NSIS, cygwin)<br />
* Visual Studio 2005<br />
* Visual Studio 2003<br />
* Python 2.4 (twisted 2.4)<br />
* VMware (port 443)<br />
* Distcc<br />
</td><br />
</tr><br />
<br />
</table><br />
<br />
== Virtual Machines ==<br />
<table style="width: 100%" class="standard-table" cellborder=1 border=1 cellpadding=2 cellspacing=0><br />
<th>Machine</th><br />
<th style="width:7%">IP Address</th><br />
<th>Users</th><br />
<th>Daemons and Software</th><br />
<tr><br />
<td id="breakpad">breakpad</td><br />
<td style="text-align: center">10.5.1.40</td><br />
<td><br />
* dejan<br />
</td><br />
<td></td><br />
</tr><br />
<tr><br />
<td id="functest">functest</td><br />
<td style="text-align: center">10.5.1.41</td><br />
<td><br />
* philly<br />
</td><br />
<td></td><br />
</tr><br />
<tr><br />
<td id="opengrok">opengrok</td><br />
<td style="text-align: center"></td><br />
<td><br />
* [[User:john64|john]]<br />
</td><br />
<td><br />
* opengrok<br />
</td><br />
</tr><br />
<tr><br />
<td id="cvs">cvs</td><br />
<td style="text-align: center">10.5.1.43</td><br />
<td><br />
* [[User:reed|reed]]<br />
</td><br />
<td><br />
* Mozilla CVS Mirror (2401)<br />
* CVS for the Delta Debugging Project (5900)<br />
* SSH (22)<br />
* Apache (80)<br />
</td><br />
</tr><br />
</table></div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_List&diff=10211Project List2007-02-15T19:55:40Z<p>Reed: s/Airbag/Breakpad/</p>
<hr />
<div>[[IMAGE: MozillaAtSeneca3.jpg]]<br />
<br />
You can get involved with any of the projects below. Please see [[Assignment 2]] for details. To join a project create a page for it, following the example of [[Sample Project]] below. <br />
<br />
== Active Projects ==<br />
<br />
===[[Generalization of Joga extension]] ===<br />
<br />
We worked with partners to create an [http://www.joga.com/jogacompanion.aspx extension] for delivering World Cup scoring updates as well as providing country-specific themes. We'd like someone to take it apart, remove or refactor the [http://www.joga.com/jogacompanion.aspx Joga]-specific pieces so that it can be used for other such data sources (hello, hockey?), and write some basic documentation for how to create your own notification-and-theme extension from the toolkit that results.<br />
<br />
Related tech and skills: XUL, JavaScript, documentation, web services<br />
<br />
=== [[XULRunner Guide]] ===<br />
<br />
The [http://en.wikipedia.org/wiki/XULRunner XULRunner project] provides an "application runner" for building apps -- like Firefox, Thunderbird, and Sunbird -- atop the [http://developer.mozilla.org/en/docs/Toolkit_API Mozilla toolkit] framework. It needs a guide outlined, high-priority parts written, and examples created to help people get started.<br />
<br />
Related tech and skills: XUL, documentation, cross-platform testing<br />
<br />
Reference: http://cs.senecac.on.ca/fsoss/2006/workshop.html#XULRunner<br />
<br />
=== [[Breakpad development and server operation]] ===<br />
<br />
The [http://code.google.com/p/google-breakpad/ Breakpad project] is developing an open source crash reporting and analysis system, analogous to [http://en.wikipedia.org/wiki/Crash_reporter#Talkback Talkback]. There's lots of work to do on wiring it into the build system, operating servers for collecting and analyzing data, and extending Firefox's use of it to collect additional helpful information (like installed extensions, memory usage, etc.) <br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=216827 Bug 216827], [http://gemal.dk/blog/2006/09/13/talkback_to_be_replaced_by_airbag/?from=rss-category here], and [http://benjamin.smedbergs.us/blog/2006-09-12/deploying-the-airbag/ here]<br />
<br />
=== [[Calendar stuff]] ===<br />
<br />
The [http://www.mozilla.org/projects/calendar/ Calendar project] has lots of stuff for people to do, from [http://www.microsoft.com/exchange/default.mspx Exchange] connectors to off-line caching to bug fixes and minor features galore. A good place to start is the #calendar IRC channel on moznet.<br />
<br />
=== [[OS X Keychain integration]] ===<br />
<br />
It would be great to store Firefox's saved passwords in the [http://en.wikipedia.org/wiki/Apple_Keychain OS X keychain], for consistency and ease of use.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=106400 Bug 106400]<br />
<br />
=== [[CSS guide]] ===<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] would like to add a CSS guide to its set of major documents, covering at least the top 100 CSS properties in use on the web today. This data can be obtained through tools . It should include numerous examples, and a fair number of small tutorial/how-to sections for different common tasks or requests from web authors. <br />
<br />
Reference: [http://developer.mozilla.org/en/docs/CSS_Reference CSS Reference]<br />
<br />
=== [[Delta debugging framework]] ===<br />
<br />
[http://en.wikipedia.org/wiki/Delta_Debugging Delta debugging] is an automated approach to debugging that isolates failures systematically. Given a failing test that can be mechanically verified (including a browser crash), [http://en.wikipedia.org/wiki/Delta_Debugging delta debugging] is a way of automatically isolating the change that introduced the failure. Having a framework in place to pull builds from CVS, bisect by date and change set (using [http://en.wikipedia.org/wiki/Bonsai_CVS_code_management_system bonsai ] data -- remember, CVS doesn't have changesets!), and report results would let computers make developers more productive.<br />
<br />
=== [[D-Bus and other Linux desktop integration improvements]] ===<br />
<br />
Various Linux distributors have patches in their Firefox packages that add bits and pieces of Linux integration, and we'd like to see even more available. One particular area of interest is controlling the browser via [http://en.wikipedia.org/wiki/D-BUS d-bus], and exposing [http://en.wikipedia.org/wiki/D-BUS dbus] events to the application and extensions.<br />
<br />
=== [["Avoid loading the same page twice" Extension]] ===<br />
<br />
Create an extension to Firefox so that when a bookmark is clicked, and that site is already open in any tab in any window, that tab/window is brought to the front rather than loading the page again.<br />
<br />
Related tech and skills: XUL, JavaScript<br />
<br />
=== [[APNG]] ===<br />
<br />
[[APNG]] stands for Animated PNG, an extension to the PNG specification to allow for animated PNG images. Similar to how Animated GIF is an extension of GIF. Create such a thing.<br />
<br />
=== [[Mozilla@Seneca Wiki Administration]] ===<br />
This wonderful wiki needs attention too! Already there are configuration issues that need to get fixed, extensions we could be using, etc. As we push further with this, we'll come up with more things too. This work will require knowledge of PHP, server administration, knowledge of [http://www.mediawiki.org/wiki/MediaWiki MediaWiki].<br />
<br />
=== [[Bug Triage Extension|Buggy Bar - Bug Triage Extension]] ===<br />
<br />
Mike Beltzner suggested this one after his talk. The idea is to make it trivial for testers to follow-through a bug's Steps To Reproduce (STR) so as to confirm it. A tester should be able to use this Extension to ask for a bug (i.e., one would be picked for him/her--no querying) and then a sidebar or similar would appear showing the steps to follow. Under that would need to be a way (e.g., buttons) to say that the bug is confirmed or not. Ideally the QA team could prioritize bugs so they appear in this list automatically, making it easier for testers to get the "right" bugs quickly.<br />
<br />
Reference: talk to beltzner.<br />
<br />
=== [[Extending the Buildbot]] ===<br />
<br />
This project is a catch-all for Buildbot development done here. The Buildbot is an automated build system written in python. It is used on the Mozilla Seneca Cluster.<br />
<br />
Related skills: Python<br />
<br />
=== [[Distcc With MSVC]] ===<br />
<br />
Speed up Mozilla's builds by letting them use MSVC with distcc on Windows.<br />
<br />
=== [[Unit Testing]] ===<br />
<br />
Programmatic testing of software. The participant will take a section of code and write unit tests for it, fully testing all aspects of the code. This may require the creation of a unit testing framework and interfacing with other developers who know a particular module or service. The programmer will be adept at finding boundary cases and creating tests that deliberately break the software through code. These may lead to the creation of bugs in [http://bugzilla.mozilla.org bugzilla].<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[DDE Bug Within The Address Bar]] ===<br />
<br />
Currently there is a bug in Firefox such that when running 3 or more instances of the browser, the address bar loses focus when cutting and pasting a string. Regular typing works perfectly when the bug is present. The purpose of this project is to track down and attempt to fix this bug. <br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=220900 Bug 220900].<br />
<br />
=== [[MDC Infrastructure]] ===<br />
<br />
Integrate new features to MDC, work on existing bugs and fix compatibility issues for the upgrade of Mediawiki to 1.7. (Tentative description)<br />
<br />
=== [[Firefox Performance Testing : A Python framework for Windows]] ===<br />
<br />
Building new tests, improving on existing ones, strengthening the framework itself and porting it to other OS's<br />
<br />
Related to the '''Performance Testing Project'''<br />
<br />
Reference: alice<br />
<br />
'''Note: Not the typical mundane black box testing'''<br />
<br />
=== [[Vista Testing]] ===<br />
<br />
Testing Firefox on the new Microsoft Vista operating system.<br />
<br />
=== [[Mozilla@Seneca Cluster Administration]] ===<br />
<br />
Administration of the Mozilla cluster at Seneca.<br />
<br />
=== [[Source Code Indexing Service Analysis]] ===<br />
<br />
Mozilla is evaluating Subversion for revision control, and at the same time wants to look at other source indexing services. This project will setup, document, and test other potential services (e.g., fisheye, opengrok, mxr) on one of the Seneca-Mozilla servers. In each case this requires configuration changes and some scripting to get the services to properly integrate with Mozilla’s other on-line tools. When the test services are installed and synched with the live source tree, Mozilla will point its developers to them and get feedback—-the students will help collect and synthesize this feedback.<br />
<br />
=== [[mozilla_based_accessibility|Mozilla Based Accessibility]] ===<br />
<br />
To work with the accessibility team on screen reader compatibility issues outside of Firefox, fixing bugs using XUL in Songbird or Thunderbird or Sunbird calendar etc.<br />
<br />
=== [[Simple_Citation|Simple Citation]] === <br />
<br />
Create a Firefox extension that will allow citations to be easily generated.<br />
<br />
=== [[Functional Testing]] ===<br />
<br />
Testing performed from a user's perspective. Includes the running and writing of test cases in [http://litmus.mozilla.org Litmus], filing and tracking bugs through [bugzilla.mozilla.org bugzilla], stress-testing and exploratory debugging. This project requires a dedication to breaking software in an organized and repeatable fashion. There is no such thing as "the wrong way" to use software and the functional tester is adept at abusing a system in previously-unknown ways.<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[Firefox Performance Testing : A Python framework for Windows | Performance Testing]] ===<br />
<br />
Extending the performance toolkit and tinderbox reporting system. The project begins with a framework for testing page loads and startup times in Win32. The successful completion of this project will see this framework develop into a more robust system complete with processor-timing information and graphing. Memory analysis and samples during runs would also be beneficial. Further success or sub-projects could include porting the system Linux and OS X platforms.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=346785 Bug 346785]. Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[XML_3D_-_BTS530/630_Project|XML 3D Project]] ===<br />
<br />
This project is being built by Mark Paruzel and Yi (Eric) Shen for BTS530. It involves the incorporation of new HTML tags into a document that would correspond to a 3D interface. The successful completion of this project will yield an easy-to-use developer interface that takes advantage of cient size 3D hardware.<br />
<br />
=== [[Font Testing]] ===<br />
<br />
This project - recently started at the English Language Institute to find/report problems with font in Firefox 3.<br />
<br />
== Potential Projects -- You busy? ==<br />
<br />
=== [[Sample Project]] ===<br />
<br />
This is a sample project stub. You can use the template for [[Sample Project]] in order to create a project page for one of the stubs below. This is how you 'sign-up' for a project.<br />
<br />
NOTE: if someone has already created the project page, speak to this person and see if you can join them. If so, simply add your name to the '''Project Leader(s)''' page. Otherwise, you can become a contributor later.<br />
<br />
=== Moving to a non-recursive build system ===<br />
<br />
The Mozilla build system currently recurses through thousands of invocations of "make" for a single build. New techniques allow many makefiles to be read by a single make process, which will speed up builds and allow for more correct dependency evaluation.<br />
<br />
Related tech and skills: makefiles<br />
<br />
=== Developing the Tamarin build system ===<br />
<br />
The new Tamarin project is developing a cross-platform build system based on a python replacement for GNU autoconf. Assistance is needed to develop, test, and document this new build system. Note: access to virtual machines of various operating systems such as Linux, Windows, FreeBSD, and<br />
OpenSolaris would be very useful for testing purposes.<br />
<br />
=== SVN access control via LDAP ===<br />
<br />
We have a tool called "[https://despot.mozilla.org/ Despot]" which gives us fine-grained control over access to the [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS Mozilla CVS repository]. As we start to have development hosted in [http://weblogs.mozillazine.org/preed/2006/08/subversive_subversion_conversi.html Subversion] (SVN), with account information maintained in [http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol LDAP], we'd like to have a tool to enforce and manage such controls there as well.<br />
<br />
Related tech and skills: server config, LDAP, scripting, web interface/app development<br />
<br />
Reference: See https://despot.mozilla.org/help.html and http://lxr.mozilla.org/mozilla/source/webtools/despot/README. Also, please speak with [[User:Reed|Reed Loden]] (reed) about this project.<br />
<br />
=== [[Updating JS guide and JS reference]] ===<br />
<br />
The current [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide JavaScript guide] and [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference reference ] are valuable, but in serious need of updating in both structure and content (new language features, more relevant compatibility information, improved examples).<br />
<br />
Related tech and skills: documentation, JavaScript<br />
<br />
=== [[Bugzilla component-watching]] ===<br />
<br />
It's common for a developer to want to "watch" all the bugs that are filed in a certain [https://bugzilla.mozilla.org Bugzilla] component. Mozilla uses a convoluted and painful system of synthetic accounts to simulate this capability, and we'd all really prefer to be able to do it more directly and with less opportunity for error.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=76794 Bug 76794]<br />
<br />
=== Updating and migrating of MDC content ===<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] has rights to a bunch of content that's still hosted on various strange corners of http://www.mozilla.org and the old [http://developer.mozilla.org/en/docs/DevEdge DevEdge] archives. There are some gems in there that need dusting off and updating to reflect the realities of the modern web.<br />
<br />
Related tech and skills: web authoring, documentation, scripting, technology domains of chosen articles.<br />
<br />
=== Test framework development ===<br />
<br />
We have a number of promising prototype or proof-of-concept test frameworks for exercising Mozilla code from different directions. They need varying amounts of work to make them more robust and general, document them, and integrate them into different kinds of automation.<br />
<br />
Related tech and skills: Python, Perl, Makefiles, shell scripting, JavaScript<br />
<br />
=== OpenDarwin tinderbox image ===<br />
<br />
We would love to have a [http://en.wikipedia.org/wiki/Tinderbox_%28software%29 Tinderbox] image (e.g., VM) for testing and building on the Mac, based on the [http://www.opensource.apple.com/darwinsource/ freely-available OS X source]. Also, we'd like to get it wired into [[User:Bhearsum|Ben Hearsum's]] (bhearsum) [http://en.wikipedia.org/wiki/Buildbot buildbot] system.<br />
<br />
Related tech and skills: system configuration, scripting, light C/C++, Makefile<br />
<br />
=== FAQ mining for extension developers ===<br />
<br />
Literally every day, there are informal exchanges on IRC (e.g., #extdev, #developers, #firefox, #seneca, etc.) and newsgroups that are fantastic fodder for small, focused documents. Collect these exchanges and fleshing them out as recipes for extension authors that include sample code.<br />
<br />
=== Automated Testing ===<br />
<br />
Pro grammatically driving the browser to perform human-like tasks repeatedly. The programmer will have to create a framework for driving browser components in JavaScript or other scripting language to repeatedly test various pieces of the application. Ideally, the successful completion of this task will see a test or suite of tests that can be invoked by command line to start the browser, run the test suites and then exit and record the results for display or analysis.<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[OpenGL Backend in Firefox 3]] ===<br />
<br />
Creating a Wrapper around OpenGL inside the core of Firefox for future developement of Canvas. The programmer of this project will have to work with the existing rendering code and create bindings to OpenGL calls that will be eventually used through Canvas and JavaScript. The completion of this code will eventually make its way into the firefox v3 trunk. (Subject to revision by Dave/Vlad)<br />
<br />
Reference: Vlad.<br />
<br />
=== [http://cs1.senecac.on.ca/wiki/index.php/Applescript_support_for_Firefox AppleScript support for Firefox] ===<br />
<br />
Lots of people would like to script Firefox from [http://en.wikipedia.org/wiki/AppleScript AppleScript] (or, more generally, from the [http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA]), and extension authors would like to be able to call out to [http://en.wikipedia.org/wiki/AppleScript AppleScript]/[http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA] from their code as well.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=125419 Bug 125419]<br />
<br />
=== Data Mining of Hendrix Data===<br />
<br />
This project involves the creation of reports using Hendrix data of user feedback, to better understand major issues being reported and converting them into new bugs or finding and updating existing ones.<br />
<br />
=== Talkback Report Challenge 1 ===<br />
<br />
Reference: http://wiki.mozilla.org/Mozilla_QA_Community:Talkback_Report_Challenge_1 <br />
<br />
=== Litmus Extension ===<br />
<br />
We wanted to have an extension that would be able to serve users testcases to try and allow them to submit results to [http://litmus.mozilla.org http://litmus.mozilla.org]. We could expand the feature set of the extension to do a lot of other cool things with Bugzilla and Website Reporter integration. So we need some ideas there. If you're interested, you could collaborate with [[User:djhamp-g|David Hamp-Gonsalves]] to work on this together. <br />
<br />
=== QMO Help ===<br />
<br />
Help is needed in getting QMO together. If anyone is interested in website design, php hacking, or general graphics work, we can use some help getting QMO into better shape. <br />
<br />
Reference: [http://quality.mozilla.org/?p=5 http://quality.mozilla.org/?p=5]<br />
<br />
=== Help Ship Firefox 2.0.0.2 and 1.5.0.10 ===<br />
<br />
If you're interested in testing, you can run test cases through [http://litmus.mozilla.org http://litmus.mozilla.org].</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Airbag_development_and_server_operation/Archive_2006&diff=10210Airbag development and server operation/Archive 20062007-02-15T19:54:39Z<p>Reed: Airbag development and server operation/Archive 2006 moved to Breakpad development and server operation/Archive 2006: s/Airbag/Breakpad/</p>
<hr />
<div>#REDIRECT [[Breakpad development and server operation/Archive 2006]]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Talk:Breakpad_development_and_server_operation&diff=10207Talk:Breakpad development and server operation2007-02-15T19:54:10Z<p>Reed: Talk:Airbag development and server operation moved to Talk:Breakpad development and server operation: s/Airbag/Breakpad/</p>
<hr />
<div>Check out http://lxr.mozilla.org/seamonkey/source/toolkit/airbag/airbag/src/processor/ ([[User:David.humphrey|David.humphrey]] 21:04, 26 October 2006 (EDT))<br />
<br />
See this new bug: https://bugzilla.mozilla.org/show_bug.cgi?id=360327 ([[User:David.humphrey|David.humphrey]] 09:17, 11 November 2006 (EST))<br />
<br />
In the recent lab I referred you to a bug that we were using, [https://bugzilla.mozilla.org/show_bug.cgi?id=325377 Bug 325377]. It came to my attention that it doesn't crash the lab builds of Firefox (1.5.0.6 I believe). Dejan was using 3.something and I've tested it on 2.0 in which cases it works. Just a heads-up in case you wonder why it won't cause lab machines to crash (though it does make it slow as molasses).</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Airbag_development_and_server_operation&diff=10206Airbag development and server operation2007-02-15T19:54:10Z<p>Reed: Airbag development and server operation moved to Breakpad development and server operation: s/Airbag/Breakpad/</p>
<hr />
<div>#REDIRECT [[Breakpad development and server operation]]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Talk:Airbag_development_and_server_operation&diff=10208Talk:Airbag development and server operation2007-02-15T19:54:10Z<p>Reed: Talk:Airbag development and server operation moved to Talk:Breakpad development and server operation: s/Airbag/Breakpad/</p>
<hr />
<div>#REDIRECT [[Talk:Breakpad development and server operation]]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=CVS_Mirror&diff=9825CVS Mirror2007-01-21T22:01:32Z<p>Reed: </p>
<hr />
<div>Seneca now has its own mirror of mozilla.org's CVS and related services<br />
<br />
To use the local mirror, set your '''CVSROOT''' to:<br />
<br />
:pserver:anonymous@hera.senecac.on.ca:/cvsroot<br />
<br />
The local mirror is an exact duplicate of cvs-mirror.mozilla.org, so anything you can do with cvs-mirror, you can do with the mirror.<br />
<br />
<br />
----<br />
<br />
<br />
Besides a CVS mirror, other services are also mirrored:<br />
<br />
[http://hera.senecac.on.ca:43080/bonsai/ Bonsai]<br />
<br />
[http://hera.senecac.on.ca:43080/viewvc.cgi/ ViewVC]<br />
<br />
[http://hera.senecac.on.ca:43080/source/ OpenGrok]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Pcvitori&diff=6675User:Pcvitori2006-11-26T04:11:44Z<p>Reed: </p>
<hr />
<div>=About Me=<br />
<br />
Hi, I'm '''Philip Vitorino''' (philly in IRC). I am currently a fourth year student of the Bachelor's of Software Development (BSD) Program at Seneca College. <br />
<br />
'''Email''': pcvitori at learn.senecac.on.ca<br />
<br />
=Projects=<br />
<br />
:[[OS_X_Keychain_integration|OS X Keychain Integration]] (Project Lead)<br />
:[[Simple_Citation|Simple Citation]] (Project Lead)<br />
:[[Mozilla%40Seneca_Wiki_Administration|Mozilla Seneca Wiki Administration]] (Project Contributor)<br />
:[[Vista_Testing|Vista Testing]] (Project Contributor)<br />
:[[Distcc_With_MSVC|Distcc With MSVC]] (Project Contributor)<br />
<br />
=Contributions=<br />
<br />
:[[Special:Contributions/Pcvitori|My Contributions]]<br />
<br />
:[https://bugzilla.mozilla.org/show_bug.cgi?id=359418 Bug# 359418]<br />
<br />
=Assignments=<br />
<br />
:[http://cs1.senecac.on.ca/wiki/index.php/Assignment_1_%28Pcvitori%29 Assignment 1]<br />
<br />
:[[XPConnect|Mozilla Technology Summary - XPConnect]]<br />
<br />
:[[Mozilla.dev.tech.layout|Newsgroup Summary]]<br />
<br />
:[[LXR_Findings:_View_Image|LXR Exercise: View Image]]<br />
<br />
=External Links=<br />
<br />
:[http://www.philv.com philv.com]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Mozilla@Seneca_Cluster_Administration/Forwarded_Ports&diff=6613Mozilla@Seneca Cluster Administration/Forwarded Ports2006-11-25T02:20:07Z<p>Reed: /* Virtual Machines */</p>
<hr />
<div>This page describes ports forwarded from Hera to the machines sitting behind it.<br />
<br />
If you have forgotten how to access your VM please consult the table at the bottom of this page. If you have forgotten which machine you are using please consult the [[Mozilla@Seneca Cluster Administration/Cluster Machine Tasks|Cluster Machine Tasks]] page. Please do these things before asking for help.<br />
<br />
=Linux Hosts=<br />
<br />
Linux hosts have forwards to 4 ports: 22, 80, 443, and 5900.<br />
<br />
Linux1 has the following:<br />
* hera.senecac.on.ca:1022 -> linux1:22<br />
* hera.senecac.on.ca:180 -> linux1:80<br />
* hera.senecac.on.ca:1443 -> linux1:443<br />
* hera.senecac.on.ca:1900 -> linux1:5900<br />
<br />
So to connect with ssh to linux1 you would do the following:<br />
:<pre>ssh -p 1022 username@hera.senecac.on.ca</pre><br />
<br />
The rest of the Linux nodes following the same format, replacing the '1' with their number. For example, to access VNC on linux11 you would do the following:<br />
:<pre>vncviewer hera.senecac.on.ca:11900</pre><br />
<br />
There are 15 total Linux machines at the time of this writing.<br />
<br />
=Windows Hosts=<br />
<br />
Windows hosts have forwards to 3 ports: 80, 443, and 3389.<br />
<br />
Win1 has the following:<br />
* hera.senecac.on.ca:31080 -> win1:80<br />
* hera.senecac.on.ca:31443 -> win1:443<br />
* hera.senecac.on.ca:31389 -> win1:3389<br />
<br />
To connect to win1 with Remote Desktop open up your RDP client and type the following for the 'host': 'hera.senecac.on.ca:31389'.<br />
<br />
The rest of the Windows machines follow the same format replacing the '31' with '3x' where x is the number of the machine. For example, to access port 80 on win3 you need to use the URL 'http://hera.senecac.on.ca:33080'.<br />
<br />
There are 5 total Windows machines at the time of this writing.<br />
<br />
=Virtual Machines=<br />
<br />
The following table lists all of the port fowards for Virtual Machines:<br />
<br />
<table style="width: 60%;" class="standard-table" cellborder=1 border=1 cellpadding=2 cellspacing=0><br />
<th style="width: 20%">Machine</th><br />
<th style="width: 20%">Operating System</th><br />
<th style="width: 30%">Forwarded Ports</th><br />
<tr><br />
<td>airbag</td><br />
<td>Ubuntu 6.06</td><br />
<td><br />
<table style="width: 100%;" cellborder="0" border="0" cellpadding=2 cellspacing=0 align="center"><br />
<tr><br />
<td style="font-weight: bold; text-decoration:underline;">Port on Hera</td><br />
<td style="font-weight: bold; text-decoration:underline;">Port on the host</td><br />
</tr><br />
<tr><br />
<td>40022</td><td>22</td><br />
</tr><br />
<tr><br />
<td>40080</td><td>80</td><br />
</tr><br />
<tr><br />
<td>40443</td><td>443</td><br />
</tr><br />
<tr><br />
<td>40900</td><td>5900</td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
<tr><br />
<td>functest</td><br />
<td>Windows Server 2003</td><br />
<td><br />
<table style="width: 100%;" cellborder="0" border="0" cellpadding=2 cellspacing=0 align="center"><br />
<tr><br />
<td style="font-weight: bold; text-decoration:underline;">Port on Hera</td><br />
<td style="font-weight: bold; text-decoration:underline;">Port on the host</td><br />
</tr><br />
<tr><br />
<td>41080</td><td>80</td><br />
</tr><br />
<tr><br />
<td>41443</td><td>443</td><br />
</tr><br />
<tr><br />
<td>41389</td><td>3389</td><br />
</tr><br />
<tr><br />
<td>41900</td><td>5900</td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
<tr><br />
<td>cvs</td><br />
<td>Ubuntu 6.10</td><br />
<td><br />
<table style="width: 100%;" cellborder="0" border="0" cellpadding=2 cellspacing=0 align="center"><br />
<tr><br />
<td style="font-weight: bold; text-decoration:underline;">Port on Hera</td><br />
<td style="font-weight: bold; text-decoration:underline;">Port on the host</td><br />
</tr><br />
<tr><br />
<td>43022</td><td>22</td><br />
</tr><br />
<tr><br />
<td>43080</td><td>80</td><br />
</tr><br />
<tr><br />
<td>43443</td><td>443</td><br />
</tr><br />
<tr><br />
<td>2401</td><td>2401</td><br />
</tr><br />
<tr><br />
<td>43900</td><td>5900</td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
</table></div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=CVS_Mirror&diff=4685CVS Mirror2006-10-06T00:27:06Z<p>Reed: </p>
<hr />
<div>Seneca now has its own mirror of mozilla.org's CVS and related services<br />
<br />
To use the local mirror, set your '''CVSROOT''' to:<br />
<br />
:pserver:anonymous@hera.senecac.on.ca:/cvsroot<br />
<br />
The local mirror is an exact duplicate of cvs-mirror.mozilla.org, so anything you can do with cvs-mirror, you can do with the mirror.<br />
<br />
<br />
----<br />
<br />
<br />
Besides a CVS mirror, other services are also mirrored:<br />
<br />
[http://hera.senecac.on.ca:43080/bonsai/ Bonsai]<br />
<br />
[http://hera.senecac.on.ca:43080/viewvc.cgi/ ViewVC]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=CVS_Mirror&diff=4682CVS Mirror2006-10-06T00:25:58Z<p>Reed: </p>
<hr />
<div>Seneca now has its own mirror of mozilla.org's CVS and related services<br />
<br />
To use the local mirror, set your '''CVSROOT''' to:<br />
<br />
:pserver:anonymous@hera.senecac.on.ca:/cvsroot<br />
<br />
The local mirror is an exact duplicate of cvs-mirror.mozilla.org, so anything you use cvs-mirror for, you can use the local mirror.<br />
<br />
<br />
----<br />
<br />
<br />
Besides a CVS mirror, other services are also mirrored:<br />
<br />
[http://hera.senecac.on.ca:43080/bonsai/ Bonsai]<br />
<br />
[http://hera.senecac.on.ca:43080/viewvc.cgi/ ViewVC]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=CVS_Mirror&diff=4680CVS Mirror2006-10-06T00:24:20Z<p>Reed: </p>
<hr />
<div>Seneca now has its own mirror of mozilla.org's CVS and related services<br />
<br />
To use the local mirror, set your '''CVSROOT''' to:<br />
<br />
:pserver:anonymous@hera.senecac.on.ca:/cvsroot<br />
<br />
The local mirror is an exact duplicate of cvs-mirror.mozilla.org, so anything you use cvs-mirror for, you can use the local mirror.<br />
<br />
----<br />
<br />
Besides a CVS mirror, other services are also mirrored<br />
<br />
[http://hera.senecac.on.ca:43080/bonsai/ Bonsai]<br />
<br />
[http://hera.senecac.on.ca:43080/viewvc.cgi/ ViewVC]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=CVS_Mirror&diff=4676CVS Mirror2006-10-06T00:11:30Z<p>Reed: </p>
<hr />
<div>== Seneca now has its own mirror of mozilla.org's CVS and related services ==<br />
<br />
To use the local mirror, use :pserver:anonymous@hera.senecac.on.ca:/cvsroot as your CVSROOT. The local mirror is an exact duplicate of cvs-mirror.mozilla.org, so anything you use cvs-mirror for, you can use the local mirror.<br />
<br />
== Besides a CVS mirror, other services are also mirrored ==<br />
<br />
[http://hera.senecac.on.ca:43080/bonsai/ Bonsai]<br />
<br />
[http://hera.senecac.on.ca:43080/viewvc.cgi/ ViewVC]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=CVS_Mirror&diff=4675CVS Mirror2006-10-06T00:10:29Z<p>Reed: /* Besides a CVS mirror, other services are also mirrored. */</p>
<hr />
<div>== Seneca now has its own mirror of mozilla.org's CVS and related services ==<br />
<br />
To use the local mirror, use :pserver:anonymous@hera.senecac.on.ca:/cvsroot as your CVSROOT. It's an exact duplicate of cvs-mirror.mozilla.org.<br />
<br />
== Besides a CVS mirror, other services are also mirrored ==<br />
<br />
[http://hera.senecac.on.ca:43080/bonsai/ Bonsai]<br />
<br />
[http://hera.senecac.on.ca:43080/viewvc.cgi/ ViewVC]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=CVS_Mirror&diff=4674CVS Mirror2006-10-06T00:10:07Z<p>Reed: </p>
<hr />
<div>== Seneca now has its own mirror of mozilla.org's CVS and related services ==<br />
<br />
To use the local mirror, use :pserver:anonymous@hera.senecac.on.ca:/cvsroot as your CVSROOT. It's an exact duplicate of cvs-mirror.mozilla.org.<br />
<br />
== Besides a CVS mirror, other services are also mirrored. ==<br />
<br />
[http://hera.senecac.on.ca:43080/bonsai/ Bonsai]<br />
<br />
[http://hera.senecac.on.ca:43080/viewvc.cgi/ ViewVC]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=CVS_Mirror&diff=4673CVS Mirror2006-10-06T00:07:43Z<p>Reed: Initial page</p>
<hr />
<div>== Seneca now has its own mirror of mozilla.org's CVS and related services ==<br />
<br />
To use the local mirror, use :pserver:anonymous@hera.senecac.on.ca:/cvsroot as your CVSROOT. It's an exact duplicate of cvs-mirror.mozilla.org.<br />
<br />
[http://hera.senecac.on.ca:43080/bonsai/ Bonsai]<br />
<br />
[http://hera.senecac.on.ca:43080/viewvc.cgi/ ViewVC]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_List&diff=3477Project List2006-09-26T01:01:35Z<p>Reed: </p>
<hr />
<div>[[IMAGE: MozillaAtSeneca3.jpg]]<br />
<br />
You can get involved with any of the projects below. Please see [[Assignment 2]] for details. To join a project create a page for it, following the example of [[Sample Project]] below. <br />
<br />
== Active Projects ==<br />
<br />
===[[Generalization of Joga extension]] ===<br />
<br />
We worked with partners to create an [http://www.joga.com/jogacompanion.aspx extension] for delivering World Cup scoring updates as well as providing country-specific themes. We'd like someone to take it apart, remove or refactor the [http://www.joga.com/jogacompanion.aspx Joga]-specific pieces so that it can be used for other such data sources (hello, hockey?), and write some basic documentation for how to create your own notification-and-theme extension from the toolkit that results.<br />
<br />
Related tech and skills: XUL, JavaScript, documentation, web services<br />
<br />
=== [[XULRunner Guide]] ===<br />
<br />
The [http://en.wikipedia.org/wiki/XULRunner XULRunner project] provides an "application runner" for building apps -- like Firefox, Thunderbird, and Sunbird -- atop the [http://developer.mozilla.org/en/docs/Toolkit_API Mozilla toolkit] framework. It needs a guide outlined, high-priority parts written, and examples created to help people get started.<br />
<br />
Related tech and skills: XUL, documentation, cross-platform testing<br />
<br />
Reference: http://cs.senecac.on.ca/fsoss/2006/workshop.html#XULRunner<br />
<br />
=== [[Updating JS guide and JS reference]] ===<br />
<br />
The current [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide JavaScript guide] and [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference reference ] are valuable, but in serious need of updating in both structure and content (new language features, more relevant compatibility information, improved examples).<br />
<br />
Related tech and skills: documentation, JavaScript<br />
<br />
=== [http://cs1.senecac.on.ca/wiki/index.php/Applescript_support_for_Firefox AppleScript support for Firefox] ===<br />
<br />
Lots of people would like to script Firefox from [http://en.wikipedia.org/wiki/AppleScript AppleScript] (or, more generally, from the [http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA]), and extension authors would like to be able to call out to [http://en.wikipedia.org/wiki/AppleScript AppleScript]/[http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA] from their code as well.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=125419 Bug 125419]<br />
<br />
=== [[Airbag development and server operation]] ===<br />
<br />
The [http://code.google.com/p/airbag/ Airbag project] is developing an open source crash reporting and analysis system, analogous to [http://en.wikipedia.org/wiki/Crash_reporter#Talkback Talkback]. There's lots of work to do on wiring it into the build system, operating servers for collecting and analyzing data, and extending Firefox's use of it to collect additional helpful information (like installed extensions, memory usage, etc.) <br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=216827 Bug 216827], [http://gemal.dk/blog/2006/09/13/talkback_to_be_replaced_by_airbag/?from=rss-category here], and [http://benjamin.smedbergs.us/blog/2006-09-12/deploying-the-airbag/ here]<br />
<br />
=== [[Calendar stuff]] ===<br />
<br />
The [http://www.mozilla.org/projects/calendar/ Calendar project] has lots of stuff for people to do, from [http://www.microsoft.com/exchange/default.mspx Exchange] connectors to off-line caching to bug fixes and minor features galore. A good place to start is the #calendar IRC channel on moznet.<br />
<br />
=== [[OS X Keychain integration]] ===<br />
<br />
It would be great to store Firefox's saved passwords in the [http://en.wikipedia.org/wiki/Apple_Keychain OS X keychain], for consistency and ease of use.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=106400 Bug 106400]<br />
<br />
=== [[CSS guide]] ===<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] would like to add a CSS guide to its set of major documents, covering at least the top 100 CSS properties in use on the web today. This data can be obtained through tools . It should include numerous examples, and a fair number of small tutorial/how-to sections for different common tasks or requests from web authors. <br />
<br />
Reference: [http://developer.mozilla.org/en/docs/CSS_Reference CSS Reference]<br />
<br />
=== [[Delta debugging framework]] ===<br />
<br />
[http://en.wikipedia.org/wiki/Delta_Debugging Delta debugging] is an automated approach to debugging that isolates failures systematically. Given a failing test that can be mechanically verified (including a browser crash), [http://en.wikipedia.org/wiki/Delta_Debugging delta debugging] is a way of automatically isolating the change that introduced the failure. Having a framework in place to pull builds from CVS, bisect by date and change set (using [http://en.wikipedia.org/wiki/Bonsai_CVS_code_management_system bonsai ] data -- remember, CVS doesn't have changesets!), and report results would let computers make developers more productive.<br />
<br />
=== [[D-Bus and other Linux desktop integration improvements]] ===<br />
<br />
Various Linux distributors have patches in their Firefox packages that add bits and pieces of Linux integration, and we'd like to see even more available. One particular area of interest is controlling the browser via [http://en.wikipedia.org/wiki/D-BUS d-bus], and exposing [http://en.wikipedia.org/wiki/D-BUS dbus] events to the application and extensions.<br />
<br />
=== [["Avoid loading the same page twice" Extension]] ===<br />
<br />
Create an extension to Firefox so that when a bookmark is clicked, and that site is already open in any tab in any window, that tab/window is brought to the front rather than loading the page again.<br />
<br />
Related tech and skills: XUL, JavaScript<br />
<br />
=== [[APNG]] ===<br />
<br />
[[APNG]] stands for Animated PNG, an extension to the PNG specification to allow for animated PNG images. Similar to how Animated GIF is an extension of GIF. Create such a thing.<br />
<br />
=== [[Mozilla@Seneca Wiki Administration]] ===<br />
This wonderful wiki needs attention too! Already there are configuration issues that need to get fixed, extensions we could be using, etc. As we push further with this, we'll come up with more things too. This work will require knowledge of PHP, server administration, knowledge of [http://www.mediawiki.org/wiki/MediaWiki MediaWiki].<br />
<br />
=== [[Bug Triage Extension]] ===<br />
<br />
Mike Beltzner suggested this one after his talk. The idea is to make it trivial for testers to follow-through a bug's Steps To Reproduce (STR) so as to confirm it. A tester should be able to use this Extension to ask for a bug (i.e., one would be picked for him/her--no querying) and then a sidebar or similar would appear showing the steps to follow. Under that would need to be a way (e.g., buttons) to say that the bug is confirmed or not. Ideally the QA team could prioritize bugs so they appear in this list automatically, making it easier for testers to get the "right" bugs quickly.<br />
<br />
Reference: talk to beltzner.<br />
<br />
=== [[Extending the Buildbot]] ===<br />
<br />
This project is a catch-all for Buildbot development done here. The Buildbot is an automated build system written in python. It is used on the Mozilla Seneca Cluster.<br />
<br />
Related skills: Python<br />
<br />
=== [[Distcc With MSVC]] ===<br />
<br />
Speed up Mozilla's builds by letting them use MSVC with distcc on Windows.<br />
<br />
=== [[Unit Testing]] ===<br />
<br />
Programmatic testing of software. The participant will take a section of code and write unit tests for it, fully testing all aspects of the code. This may require the creation of a unit testing framework and interfacing with other developers who know a particular module or service. The programmer will be adept at finding boundary cases and creating tests that deliberately break the software through code. These may lead to the creation of bugs in [http://bugzilla.mozilla.org bugzilla].<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[OpenGL Backend in Firefox 3]] ===<br />
<br />
Creating a Wrapper around OpenGL inside the core of Firefox for future developement of Canvas. The programmer of this project will have to work with the existing rendering code and create bindings to OpenGL calls that will be eventually used through Canvas and JavaScript. The completion of this code will eventually make its way into the firefox v3 trunk. (Subject to revision by Dave/Vlad)<br />
<br />
Reference: Vlad.<br />
<br />
=== [[MDC Infrastructure]] ===<br />
<br />
Intergrate new features to MDC, work on existing bugs and fix compatibility issues for the upgrade of Mediawiki to 1.7. (Tentative description)<br />
<br />
=== [[Firefox Performance Testing : A Python framework for Windows]] ===<br />
<br />
Building new tests, improving on existing ones, strengthening the framework itself and porting it to other OS's<br />
<br />
Related to the '''Performance Testing Project'''<br />
<br />
Reference: alice<br />
<br />
'''Note: Not the typical mundane black box testing'''<br />
<br />
=== [[Vista Testing]] ===<br />
<br />
Testing Firefox on the new Microsoft Vista operating system.<br />
<br />
=== [[Mozilla@Seneca Cluster Administration]] ===<br />
<br />
Administration of the Mozilla cluster at Seneca.<br />
<br />
== Potential Projects -- You busy? ==<br />
<br />
=== [[Sample Project]] ===<br />
<br />
This is a sample project stub. You can use the template for [[Sample Project]] in order to create a project page for one of the stubs below. This is how you 'sign-up' for a project.<br />
<br />
NOTE: if someone has already created the project page, speak to this person and see if you can join them. If so, simply add your name to the '''Project Leader(s)''' page. Otherwise, you can become a contributor later.<br />
<br />
<br />
=== SVN access control via LDAP ===<br />
<br />
We have a tool called "[https://despot.mozilla.org/ Despot]" which gives us fine-grained control over access to the [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS Mozilla CVS repository]. As we start to have development hosted in [http://weblogs.mozillazine.org/preed/2006/08/subversive_subversion_conversi.html Subversion] (SVN), with account information maintained in [http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol LDAP], we'd like to have a tool to enforce and manage such controls there as well.<br />
<br />
Related tech and skills: server config, LDAP, scripting, web interface/app development<br />
<br />
Reference: See https://despot.mozilla.org/help.html and http://lxr.mozilla.org/mozilla/source/webtools/despot/README. Also, please speak with [[User:Reed|Reed Loden]] (reed) about this project.<br />
<br />
=== [[Bugzilla component-watching]] ===<br />
<br />
It's common for a developer to want to "watch" all the bugs that are filed in a certain [https://bugzilla.mozilla.org Bugzilla] component. Mozilla uses a convoluted and painful system of synthetic accounts to simulate this capability, and we'd all really prefer to be able to do it more directly and with less opportunity for error.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=76794 Bug 76794]<br />
<br />
=== Updating and migrating of MDC content ===<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] has rights to a bunch of content that's still hosted on various strange corners of http://www.mozilla.org and the old [http://developer.mozilla.org/en/docs/DevEdge DevEdge] archives. There are some gems in there that need dusting off and updating to reflect the realities of the modern web.<br />
<br />
Related tech and skills: web authoring, documentation, scripting, technology domains of chosen articles.<br />
<br />
=== Test framework development ===<br />
<br />
We have a number of promising prototype or proof-of-concept test frameworks for exercising Mozilla code from different directions. They need varying amounts of work to make them more robust and general, document them, and integrate them into different kinds of automation.<br />
<br />
Related tech and skills: Python, Perl, Makefiles, shell scripting, JavaScript<br />
<br />
=== OpenDarwin tinderbox image ===<br />
<br />
We would love to have a [http://en.wikipedia.org/wiki/Tinderbox_%28software%29 Tinderbox] image (e.g., VM) for testing and building on the Mac, based on the [http://www.opensource.apple.com/darwinsource/ freely-available OS X source]. Also, we'd like to get it wired into [[User:Bhearsum|Ben Hearsum's]] (bhearsum) [http://en.wikipedia.org/wiki/Buildbot buildbot] system.<br />
<br />
Related tech and skills: system configuration, scripting, light C/C++, Makefile<br />
<br />
=== FAQ mining for extension developers ===<br />
<br />
Literally every day, there are informal exchanges on IRC (e.g., #extdev, #developers, #firefox, #seneca, etc.) and newsgroups that are fantastic fodder for small, focused documents. Collect these exchanges and fleshing them out as recipes for extension authors that include sample code.<br />
<br />
=== Functional Testing ===<br />
<br />
Testing performed from a user's perspective. Includes the running and writing of test cases in [http://litmus.mozilla.org Litmus], filing and tracking bugs through [bugzilla.mozilla.org bugzilla], stress-testing and exploratory debugging. This project requires a dedication to breaking software in an organized and repeatable fashion. There is no such thing as "the wrong way" to use software and the functional tester is adept at abusing a system in previously-unknown ways.<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== Performance Testing ===<br />
<br />
Extending the performance tookit and tinderbox reporting system. The project begins with a framework for testing pageloads and startup times in Win32. The successful completion of this project will see this framework develop into a more robust system complete with processor-timing information and graphing. Memory analysis and samples during runs would also be beneficial. Further success or subprojects could include porting the system Linux and OS X platforms.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=346785 Bug 346785]. Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== Automated Testing ===<br />
<br />
Programmatically driving the browser to perform human-like tasks repeatedly. The programmer will have to create a framework for driving browser components in JavaScript or other scripting language to repeatedly test various pieces of the application. Ideally, the successful completion of this task will see a test or suite of tests that can be invoked by command line to start the browser, run the test suites and then exit and record the results for display or analysis.<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_List&diff=3476Project List2006-09-26T01:00:52Z<p>Reed: Move bugzilla component watching</p>
<hr />
<div>[[IMAGE: MozillaAtSeneca3.jpg]]<br />
<br />
You can get involved with any of the projects below. Please see [[Assignment 2]] for details. To join a project create a page for it, following the example of [[Sample Project]] below. <br />
<br />
== Active Projects ==<br />
<br />
===[[Generalization of Joga extension]] ===<br />
<br />
We worked with partners to create an [http://www.joga.com/jogacompanion.aspx extension] for delivering World Cup scoring updates as well as providing country-specific themes. We'd like someone to take it apart, remove or refactor the [http://www.joga.com/jogacompanion.aspx Joga]-specific pieces so that it can be used for other such data sources (hello, hockey?), and write some basic documentation for how to create your own notification-and-theme extension from the toolkit that results.<br />
<br />
Related tech and skills: XUL, JavaScript, documentation, web services<br />
<br />
=== [[XULRunner Guide]] ===<br />
<br />
The [http://en.wikipedia.org/wiki/XULRunner XULRunner project] provides an "application runner" for building apps -- like Firefox, Thunderbird, and Sunbird -- atop the [http://developer.mozilla.org/en/docs/Toolkit_API Mozilla toolkit] framework. It needs a guide outlined, high-priority parts written, and examples created to help people get started.<br />
<br />
Related tech and skills: XUL, documentation, cross-platform testing<br />
<br />
Reference: http://cs.senecac.on.ca/fsoss/2006/workshop.html#XULRunner<br />
<br />
=== [[Updating JS guide and JS reference]] ===<br />
<br />
The current [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide JavaScript guide] and [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference reference ] are valuable, but in serious need of updating in both structure and content (new language features, more relevant compatibility information, improved examples).<br />
<br />
Related tech and skills: documentation, JavaScript<br />
<br />
=== [http://cs1.senecac.on.ca/wiki/index.php/Applescript_support_for_Firefox AppleScript support for Firefox] ===<br />
<br />
Lots of people would like to script Firefox from [http://en.wikipedia.org/wiki/AppleScript AppleScript] (or, more generally, from the [http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA]), and extension authors would like to be able to call out to [http://en.wikipedia.org/wiki/AppleScript AppleScript]/[http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA] from their code as well.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=125419 Bug 125419]<br />
<br />
=== [[Airbag development and server operation]] ===<br />
<br />
The [http://code.google.com/p/airbag/ Airbag project] is developing an open source crash reporting and analysis system, analogous to [http://en.wikipedia.org/wiki/Crash_reporter#Talkback Talkback]. There's lots of work to do on wiring it into the build system, operating servers for collecting and analyzing data, and extending Firefox's use of it to collect additional helpful information (like installed extensions, memory usage, etc.) <br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=216827 Bug 216827], [http://gemal.dk/blog/2006/09/13/talkback_to_be_replaced_by_airbag/?from=rss-category here], and [http://benjamin.smedbergs.us/blog/2006-09-12/deploying-the-airbag/ here]<br />
<br />
=== [[Calendar stuff]] ===<br />
<br />
The [http://www.mozilla.org/projects/calendar/ Calendar project] has lots of stuff for people to do, from [http://www.microsoft.com/exchange/default.mspx Exchange] connectors to off-line caching to bug fixes and minor features galore. A good place to start is the #calendar IRC channel on moznet.<br />
<br />
=== [[OS X Keychain integration]] ===<br />
<br />
It would be great to store Firefox's saved passwords in the [http://en.wikipedia.org/wiki/Apple_Keychain OS X keychain], for consistency and ease of use.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=106400 Bug 106400]<br />
<br />
=== [[CSS guide]] ===<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] would like to add a CSS guide to its set of major documents, covering at least the top 100 CSS properties in use on the web today. This data can be obtained through tools . It should include numerous examples, and a fair number of small tutorial/how-to sections for different common tasks or requests from web authors. <br />
<br />
Reference: [http://developer.mozilla.org/en/docs/CSS_Reference CSS Reference]<br />
<br />
=== [[Delta debugging framework]] ===<br />
<br />
[http://en.wikipedia.org/wiki/Delta_Debugging Delta debugging] is an automated approach to debugging that isolates failures systematically. Given a failing test that can be mechanically verified (including a browser crash), [http://en.wikipedia.org/wiki/Delta_Debugging delta debugging] is a way of automatically isolating the change that introduced the failure. Having a framework in place to pull builds from CVS, bisect by date and change set (using [http://en.wikipedia.org/wiki/Bonsai_CVS_code_management_system bonsai ] data -- remember, CVS doesn't have changesets!), and report results would let computers make developers more productive.<br />
<br />
=== [[D-Bus and other Linux desktop integration improvements]] ===<br />
<br />
Various Linux distributors have patches in their Firefox packages that add bits and pieces of Linux integration, and we'd like to see even more available. One particular area of interest is controlling the browser via [http://en.wikipedia.org/wiki/D-BUS d-bus], and exposing [http://en.wikipedia.org/wiki/D-BUS dbus] events to the application and extensions.<br />
<br />
=== [["Avoid loading the same page twice" Extension]] ===<br />
<br />
Create an extension to Firefox so that when a bookmark is clicked, and that site is already open in any tab in any window, that tab/window is brought to the front rather than loading the page again.<br />
<br />
Related tech and skills: XUL, JavaScript<br />
<br />
=== [[APNG]] ===<br />
<br />
[[APNG]] stands for Animated PNG, an extension to the PNG specification to allow for animated PNG images. Similar to how Animated GIF is an extension of GIF. Create such a thing.<br />
<br />
=== [[Mozilla@Seneca Wiki Administration]] ===<br />
This wonderful wiki needs attention too! Already there are configuration issues that need to get fixed, extensions we could be using, etc. As we push further with this, we'll come up with more things too. This work will require knowledge of PHP, server administration, knowledge of [http://www.mediawiki.org/wiki/MediaWiki MediaWiki].<br />
<br />
=== [[Bug Triage Extension]] ===<br />
<br />
Mike Beltzner suggested this one after his talk. The idea is to make it trivial for testers to follow-through a bug's Steps To Reproduce (STR) so as to confirm it. A tester should be able to use this Extension to ask for a bug (i.e., one would be picked for him/her--no querying) and then a sidebar or similar would appear showing the steps to follow. Under that would need to be a way (e.g., buttons) to say that the bug is confirmed or not. Ideally the QA team could prioritize bugs so they appear in this list automatically, making it easier for testers to get the "right" bugs quickly.<br />
<br />
Reference: talk to beltzner.<br />
<br />
=== [[Extending the Buildbot]] ===<br />
<br />
This project is a catch-all for Buildbot development done here. The Buildbot is an automated build system written in python. It is used on the Mozilla Seneca Cluster.<br />
<br />
Related skills: Python<br />
<br />
=== [[Distcc With MSVC]] ===<br />
<br />
Speed up Mozilla's builds by letting them use MSVC with distcc on Windows.<br />
<br />
=== [[Unit Testing]] ===<br />
<br />
Programmatic testing of software. The participant will take a section of code and write unit tests for it, fully testing all aspects of the code. This may require the creation of a unit testing framework and interfacing with other developers who know a particular module or service. The programmer will be adept at finding boundary cases and creating tests that deliberately break the software through code. These may lead to the creation of bugs in [http://bugzilla.mozilla.org bugzilla].<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== [[OpenGL Backend in Firefox 3]] ===<br />
<br />
Creating a Wrapper around OpenGL inside the core of Firefox for future developement of Canvas. The programmer of this project will have to work with the existing rendering code and create bindings to OpenGL calls that will be eventually used through Canvas and JavaScript. The completion of this code will eventually make its way into the firefox v3 trunk. (Subject to revision by Dave/Vlad)<br />
<br />
Reference: Vlad.<br />
<br />
=== [[MDC Infrastructure]] ===<br />
<br />
Intergrate new features to MDC, work on existing bugs and fix compatibility issues for the upgrade of Mediawiki to 1.7. (Tentative description)<br />
<br />
=== [[Firefox Performance Testing : A Python framework for Windows]] ===<br />
<br />
Building new tests, improving on existing ones, strengthening the framework itself and porting it to other OS's<br />
<br />
Related to the '''Performance Testing Project'''<br />
<br />
Reference: alice<br />
<br />
'''Note: Not the typical mundane black box testing'''<br />
<br />
=== [[Vista Testing]] ===<br />
<br />
Testing Firefox on the new Microsoft Vista operating system.<br />
<br />
=== [[Mozilla@Seneca Cluster Administration]] ===<br />
<br />
Administration of the Mozilla cluster at Seneca.<br />
<br />
== Potential Projects -- You busy? ==<br />
<br />
=== [[Sample Project]] ===<br />
<br />
This is a sample project stub. You can use the template for [[Sample Project]] in order to create a project page for one of the stubs below. This is how you 'sign-up' for a project.<br />
<br />
NOTE: if someone has already created the project page, speak to this person and see if you can join them. If so, simply add your name to the '''Project Leader(s)''' page. Otherwise, you can become a contributor later.<br />
<br />
=== SVN access control via LDAP ===<br />
<br />
We have a tool called "[https://despot.mozilla.org/ Despot]" which gives us fine-grained control over access to the [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS Mozilla CVS repository]. As we start to have development hosted in [http://weblogs.mozillazine.org/preed/2006/08/subversive_subversion_conversi.html Subversion] (SVN), with account information maintained in [http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol LDAP], we'd like to have a tool to enforce and manage such controls there as well.<br />
<br />
Related tech and skills: server config, LDAP, scripting, web interface/app development<br />
<br />
Reference: See https://despot.mozilla.org/help.html and http://lxr.mozilla.org/mozilla/source/webtools/despot/README. Also, please speak with [[User:Reed|Reed Loden]] (reed) about this project.<br />
<br />
<br />
=== [[Bugzilla component-watching]] ===<br />
<br />
It's common for a developer to want to "watch" all the bugs that are filed in a certain [https://bugzilla.mozilla.org Bugzilla] component. Mozilla uses a convoluted and painful system of synthetic accounts to simulate this capability, and we'd all really prefer to be able to do it more directly and with less opportunity for error.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=76794 Bug 76794]<br />
<br />
<br />
=== Updating and migrating of MDC content ===<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] has rights to a bunch of content that's still hosted on various strange corners of http://www.mozilla.org and the old [http://developer.mozilla.org/en/docs/DevEdge DevEdge] archives. There are some gems in there that need dusting off and updating to reflect the realities of the modern web.<br />
<br />
Related tech and skills: web authoring, documentation, scripting, technology domains of chosen articles.<br />
<br />
<br />
=== Test framework development ===<br />
<br />
We have a number of promising prototype or proof-of-concept test frameworks for exercising Mozilla code from different directions. They need varying amounts of work to make them more robust and general, document them, and integrate them into different kinds of automation.<br />
<br />
Related tech and skills: Python, Perl, Makefiles, shell scripting, JavaScript<br />
<br />
=== OpenDarwin tinderbox image ===<br />
<br />
We would love to have a [http://en.wikipedia.org/wiki/Tinderbox_%28software%29 Tinderbox] image (e.g., VM) for testing and building on the Mac, based on the [http://www.opensource.apple.com/darwinsource/ freely-available OS X source]. Also, we'd like to get it wired into [[User:Bhearsum|Ben Hearsum's]] (bhearsum) [http://en.wikipedia.org/wiki/Buildbot buildbot] system.<br />
<br />
Related tech and skills: system configuration, scripting, light C/C++, Makefile<br />
<br />
=== FAQ mining for extension developers ===<br />
<br />
Literally every day, there are informal exchanges on IRC (e.g., #extdev, #developers, #firefox, #seneca, etc.) and newsgroups that are fantastic fodder for small, focused documents. Collect these exchanges and fleshing them out as recipes for extension authors that include sample code.<br />
<br />
<br />
=== Functional Testing ===<br />
<br />
Testing performed from a user's perspective. Includes the running and writing of test cases in [http://litmus.mozilla.org Litmus], filing and tracking bugs through [bugzilla.mozilla.org bugzilla], stress-testing and exploratory debugging. This project requires a dedication to breaking software in an organized and repeatable fashion. There is no such thing as "the wrong way" to use software and the functional tester is adept at abusing a system in previously-unknown ways.<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== Performance Testing ===<br />
<br />
Extending the performance tookit and tinderbox reporting system. The project begins with a framework for testing pageloads and startup times in Win32. The successful completion of this project will see this framework develop into a more robust system complete with processor-timing information and graphing. Memory analysis and samples during runs would also be beneficial. Further success or subprojects could include porting the system Linux and OS X platforms.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=346785 Bug 346785]. Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.<br />
<br />
=== Automated Testing ===<br />
<br />
Programmatically driving the browser to perform human-like tasks repeatedly. The programmer will have to create a framework for driving browser components in JavaScript or other scripting language to repeatedly test various pieces of the application. Ideally, the successful completion of this task will see a test or suite of tests that can be invoked by command line to start the browser, run the test suites and then exit and record the results for display or analysis.<br />
<br />
Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Guest_Lectures&diff=2439Guest Lectures2006-09-18T06:11:41Z<p>Reed: Correct robcee's nickname</p>
<hr />
<div>During the Fall 2006 offering of DPS909, Mozilla Corporation has agreed to support our work and participate in the course by delivering guest lectures. This is an incredible opportunity for us, and to say thank-you we will be recording each lecture and making them available on-line for use by the wider Mozilla community. <br />
<br />
* '''September 6''': [http://shaver.off.net/diary/ Mike Shaver] (shaver), [http://blog.vlad1.com/ Vladimir Vukićević] (vlad) Introduction to Mozilla<br />
* '''September 13''': [http://www.beltzner.ca/mike/ Mike Beltzner] (beltzner) Mozilla Community<br />
* '''September 20''': [http://weblogs.mozillazine.org/preed/ J. Paul Reed] (preed) How the Build Works<br />
* '''October 4''': [http://shaver.off.net/diary/ Mike Shaver] (shaver) The Mozilla Source Tree<br />
* '''October 11''': [http://steelgryphon.com/blog/ Mike Connor] (mconnor) The Life-cycle of a Bug<br />
* '''October 20''': [http://roberthelmer.com/blog/ Rob Helmer] (rhelmer) Release Builds: from source tree to exe<br />
* '''November 1''': [http://antennasoft.net/robcee/ Rob Campbell] (robcee) QA and Testing<br />
* '''November 22''': [http://shaver.off.net/diary/ Mike Shaver] (shaver) Extensions and XULRunner<br />
* '''November 29''': [http://blog.vlad1.com/ Vladimir Vukićević] (vlad) The Future of Mozilla</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Bhearsum&diff=1851User:Bhearsum2006-09-15T22:20:02Z<p>Reed: </p>
<hr />
<div>== About me ==<br />
<br />
I'm a 4th semester CPA student at Seneca. I've been a user of open source software for about 5 years and I'm glad to finally be giving back to the community.<br />
<br />
I work at The Learning Centre when I'm not in class, doing homework, or on IRC.<br />
<br />
== Current Projects ==<br />
Currently I hack on the [[Extending the Buildbot|Buildbot]]. I've released patches to add [[Tinderbox]] and [[Bonsai]] support so far. I'm also managing the Mozilla Seneca cluster.<br />
<br />
== Assignments ==<br />
[[Assignment 1 (bhearsum)|Assignment 1]]<br />
<br />
== External Links ==<br />
* [http://buildbot.sourceforge.net Buildbot]<br />
* [http://tinderbox.mozilla.org Tinderbox]<br />
* [http://bonsai.mozilla.org Bonsai]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Newsgroups_Summaries&diff=1633Newsgroups Summaries2006-09-15T14:25:55Z<p>Reed: </p>
<hr />
<div>The Mozilla Newsgroups (also available as [https://lists.mozilla.org/listinfo mailing lists])<br />
<br />
http://developer.mozilla.org/en/docs/Newsgroup_summaries<br />
http://wiki.mozilla.org/MDC_newsgroup_summaries<br />
<br />
Groups and number of new topics (i.e., not individual messages) of messages since January 2006<br />
<br />
# mozilla.dev.apps.firefox (404)<br />
# mozilla.dev.l10n (317)<br />
# mozilla.dev.tech.js-engine (247)<br />
# mozilla.dev.planning (224)<br />
# mozilla.dev.builds (181)<br />
# mozilla.dev.apps.thunderbird (163)<br />
# mozilla.dev.tech.layout (76)<br />
# mozilla.dev.quality (59)<br />
# mozilla.dev.security (29)<br />
# mozilla.dev.i18n (14)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=People&diff=1631People2006-09-15T14:07:55Z<p>Reed: </p>
<hr />
<div>A list of people involved with Mozilla@Seneca. Please add your name in alphabetical order with a link to a User page if you have one.<br />
<br />
* '''Name''' ('''IRC Nick''')<br />
<br />
* [[User:Andrew|Andrew Smith]] (andrew)<br />
* [[User:Bhearsum|Ben Hearsum]] (bhearsum)<br />
* [[User:David.humphrey|Dave Humphrey]] (dave or humph)<br />
* [[User:dtolj|Dejan Tolj]] (dtolj)<br />
* [[User:mylau|Michael Lau]] (mylau)<br />
* Mike Shaver (shaver)<br />
* [[User:moe|Mohammad Tirtashi]] (moe)<br />
* [[User:PStD|Paul St-Denis]] (pstdenis)<br />
* [[User:Pcvitori|Philip Vitorino]] (philly)<br />
* [[User:Reed|Reed Loden]] (reed)<br />
* [[User:Sherman|Sherman Fernandes]] (sherman)<br />
* [[User:Themystic|Tom Aratyn]] (mystic)<br />
* [[User:Vpmirand|Vanessa Miranda]] (vanessa)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=People&diff=1602People2006-09-14T02:55:04Z<p>Reed: </p>
<hr />
<div>A list of people involved with Mozilla@Seneca. Please add your name in alphabetical order with a link to a User page if you have one.<br />
<br />
* '''Name''' ('''IRC Nick''')<br />
<br />
* [[User:Andrew|Andrew Smith]] (andrew)<br />
* [[User:Bhearsum|Ben Hearsum]] (bhearsum)<br />
* Dave Humphrey (dave or humph)<br />
* [[User:dtolj|Dejan Tolj]] (dtolj)<br />
* [[User:mylau|Michael Lau]] (mylau)<br />
* Mike Shaver (shaver)<br />
* [[User:moe|Mohammad Tirtashi]] (moe)<br />
* [[User:PStD|Paul St-Denis]] (PStD)<br />
* [[User:Pcvitori|Philip Vitorino]] (philly)<br />
* [[User:Reed|Reed Loden]] (reed)<br />
* [[User:Themystic|Tom Aratyn]] (mystic)<br />
* [[User:Vpmirand|Vanessa Miranda]] (vanessa)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=People&diff=1601People2006-09-14T02:54:44Z<p>Reed: </p>
<hr />
<div>A list of people involved with Mozilla@Seneca. Please add your name in alphabetical order with a link to a User page if you have one.<br />
<br />
* '''Name''' ('''IRC Nick''')<br />
<br />
* [[User:Andrew|Andrew Smith]] (andrew)<br />
* [[User:Bhearsum|Ben Hearsum]] (bhearsum)<br />
* [[User:dtolj|Dejan Tolj]] (dtolj)<br />
* Dave Humphrey (dave or humph)<br />
* [[User:mylau|Michael Lau]] (mylau)<br />
* Mike Shaver (shaver)<br />
* [[User:moe|Mohammad Tirtashi]] (moe)<br />
* [[User:PStD|Paul St-Denis]] (PStD)<br />
* [[User:Pcvitori|Philip Vitorino]] (philly)<br />
* [[User:Reed|Reed Loden]] (reed)<br />
* [[User:Themystic|Tom Aratyn]] (mystic)<br />
* [[User:Vpmirand|Vanessa Miranda]] (vanessa)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=People&diff=1598People2006-09-14T02:31:18Z<p>Reed: </p>
<hr />
<div>A list of people involved with Mozilla@Seneca. Please add your name in alphabetical order with a link to a User page if you have one.<br />
<br />
* '''Name''' ('''IRC Nick''')<br />
<br />
* [[User:Themystic|Tom Aratyn]] (mystic)<br />
* [[User:Bhearsum|Ben Hearsum]] (bhearsum)<br />
* Dave Humphrey (dave or humph)<br />
* [[User:mylau|Michael Lau]] (mylau)<br />
* [[User:Reed|Reed Loden]] (reed)<br />
* [[User:Vpmirand|Vanessa Miranda]] (vanessa)<br />
* Mike Shaver (shaver)<br />
* [[User:Andrew|Andrew Smith]] (andrew)<br />
* [[User:PStD|Paul St-Denis]] (PStD)<br />
* [[User:moe|Mohammad Tirtashi]] (moe)<br />
* [[User:dtolj|Dejan Tolj]] (dtolj)<br />
* [[User:Pcvitori|Philip Vitorino]] (philly)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=People&diff=1597People2006-09-14T02:30:57Z<p>Reed: </p>
<hr />
<div>A list of people involved with Mozilla@Seneca. Please add your name in alphabetical order with a link to a User page if you have one.<br />
<br />
* '''Name''' ('''IRC Nick''')<br />
<br />
* [[User:Themystic|Tom Aratyn]] (mystic)<br />
* [[User:Bhearsum|Ben Hearsum]] (bhearsum)<br />
* Dave Humphrey (dave or humph)<br />
* [[User:dtolj|Dejan Tolj]] (dtolj)<br />
* [[User:mylau|Michael Lau]] (mylau)<br />
* [[User:Reed|Reed Loden]] (reed)<br />
* [[User:Vpmirand|Vanessa Miranda]] (vanessa)<br />
* Mike Shaver (shaver)<br />
* [[User:Andrew|Andrew Smith]] (andrew)<br />
* [[User:PStD|Paul St-Denis]] (PStD)<br />
* [[User:moe|Mohammad Tirtashi]] (moe)<br />
* [[User:Pcvitori|Philip Vitorino]] (philly)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Talk:Project_List&diff=1578Talk:Project List2006-09-13T04:26:29Z<p>Reed: </p>
<hr />
<div>== Project Ideas == <br />
<br />
Doctor v2 (LDAP authentication with support for changing both pages in CVS and Subversion)<br />
<br />
Tinderbox / Bonsai (Subversion support, tinderbox 2, etc.) [work with bear]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=People&diff=1570People2006-09-13T01:30:00Z<p>Reed: </p>
<hr />
<div>A list of people involved with Mozilla@Seneca. Please add your name in alphabetical order with a link to a User page if you have one.<br />
<br />
* '''Name''' ('''IRC Nick''')<br />
<br />
* [[User:Themystic|Tom Aratyn]] (mystic)<br />
* [[User:Bhearsum|Ben Hearsum]] (bhearsum)<br />
* Dave Humphrey (dave or humph)<br />
* [[User:mylau|Michael Lau]] (mylau)<br />
* [[User:Reed|Reed Loden]] (reed)<br />
* Mike Shaver (shaver)<br />
* [[User:Andrew|Andrew Smith]] (andrew)<br />
* [[User:PStD|Paul St-Denis]] (PStD)<br />
* [[User:moe|Mohammad Tirtashi]] (moe)<br />
* Philip Vitorino (philly)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=People&diff=1547People2006-09-12T22:50:22Z<p>Reed: Alphabetize the list</p>
<hr />
<div>A list of people involved with Mozilla@Seneca. Please add your name in order, with a link to a page if you have one.<br />
<br />
* '''Name''' ('''IRC Nick''')<br />
<br />
* [[User:Themystic|Tom Aratyn]] (mystic)<br />
* [[User:Bhearsum|Ben Hearsum]] (bhearsum)<br />
* Dave Humphrey (dave or humph)<br />
* Michael Lau (mylau)<br />
* [[User:Reed|Reed Loden]] (reed)<br />
* Mike Shaver (shaver)<br />
* Paul St-Denis (PStD)<br />
* [[User:moe|Mohammad Tirtashi]] (moe)<br />
* Philip Vitorino (philly)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Reed&diff=1535User:Reed2006-09-12T20:14:50Z<p>Reed: </p>
<hr />
<div>== Just me... ==<br />
<br />
Hi! I'm '''Reed Loden''' (reed@IRC). :)<br />
My e-mail address is my first name at my full name dot com.<br />
<br />
I'm a [http://www.mozilla.org/ Mozilla Project] volunteer who likes to put his fingers in just about everything. I'm also a webmaster for [http://www.mozilla.org/ www.mozilla.org] and [http://www.mozilla.com/ www.mozilla.com], triage monkey for [https://bugzilla.mozilla.org/ Bugzilla], and wordsmith for Firefox, along with being active in lots of other Mozilla-related projects.<br />
<br />
== Passions ==<br />
<br />
My passions include webtools and system administration, so if you're interested in either of those topics, feel free to talk to me on IRC.<br />
<br />
== IRC ==<br />
<br />
I've been using IRC for a while now (going on 7 years), and I have had my share of developing IRC server daemons and services for various networks. This also means that if you have a question about something IRC-related, feel free to talk to me.<br />
<br />
== Miscellaneous ==<br />
<br />
I'm interested in making a Despot v2.<br />
<br />
I'm also a webmaster for [http://www.gnu.org/ www.gnu.org].<br />
<br />
''I will put more stuff here as time allows.''</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Reed&diff=1534User:Reed2006-09-12T20:11:44Z<p>Reed: </p>
<hr />
<div>== Just me... ==<br />
<br />
Hi! I'm '''Reed Loden''' (reed@IRC). :)<br />
<br />
I'm a [http://www.mozilla.org/ Mozilla Project] volunteer who likes to put his fingers in just about everything. I'm also a webmaster for [http://www.mozilla.org/ www.mozilla.org] and [http://www.mozilla.com/ www.mozilla.com], triage monkey for [https://bugzilla.mozilla.org/ Bugzilla], and wordsmith for Firefox, along with being active in lots of other Mozilla-related projects.<br />
<br />
== Passions ==<br />
<br />
My passions include webtools and system administration, so if you're interested in either of those topics, feel free to talk to me on IRC.<br />
<br />
== IRC ==<br />
<br />
I've been using IRC for a while now (going on 7 years), and I have had my share of developing IRC server daemons and services for various networks. This also means that if you have a question about something IRC-related, feel free to talk to me.<br />
<br />
== Miscellaneous ==<br />
<br />
I'm interested in making a Despot v2.<br />
<br />
''I will put more stuff here as time allows.''</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Reed&diff=1533User:Reed2006-09-12T20:10:10Z<p>Reed: Add start of my page.</p>
<hr />
<div>Hi! I'm '''Reed Loden''' (reed@IRC). :)<br />
<br />
I'm a [http://www.mozilla.org/ Mozilla Project] volunteer who likes to put his fingers in just about everything. I'm also a webmaster for [http://www.mozilla.org/ www.mozilla.org] and [http://www.mozilla.com/ www.mozilla.com], triage monkey for [https://bugzilla.mozilla.org/ Bugzilla], and wordsmith for Firefox, along with lots of other fun stuff.<br />
<br />
My passions include webtools and system administration, so if you're interested in either of those topics, feel free to talk to me on IRC.<br />
<br />
I've been using IRC for a while now (going on 7 years), and I have had my share of developing IRC server daemons and services for various networks. This also means that if you have a question about something IRC-related, feel free to talk to me.<br />
<br />
''I will put more stuff here as time allows.''</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_List&diff=1532Project List2006-09-12T20:05:08Z<p>Reed: /* SVN access control via LDAP */</p>
<hr />
<div>You can get involved with any of the projects below. Please see [[Assignment 2]] for details. To join a project create a page for it, following the example of [[Sample Project]] below. <br />
<br />
== [[Sample Project]] ==<br />
<br />
This is a sample project stub. You can use the template for [[Sample Project]] in order to create a project page for one of the stubs below. This is how you 'sign-up' for a project.<br />
<br />
NOTE: if someone has already created the project page, speak to this person and see if you can join them. If so, simply add your name to the '''Project Leader(s)''' page. Otherwise, you can become a contributor later.<br />
<br />
== Generalization of Joga extension ==<br />
<br />
We worked with partners to create an [http://www.joga.com/jogacompanion.aspx extension] for delivering World Cup scoring updates as well as providing country-specific themes. We'd like someone to take it apart, remove or refactor the [http://www.joga.com/jogacompanion.aspx Joga]-specific pieces so that it can be used for other such data sources (hello, hockey?), and write some basic documentation for how to create your own notification-and-theme extension from the toolkit that results.<br />
<br />
Related tech and skills: XUL, JavaScript, documentation, web services<br />
<br />
== SVN access control via LDAP ==<br />
<br />
We have a tool called "[https://despot.mozilla.org/ Despot]" which gives us fine-grained control over access to the [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS Mozilla CVS repository]. As we start to have development hosted in [http://weblogs.mozillazine.org/preed/2006/08/subversive_subversion_conversi.html Subversion] (SVN), with account information maintained in [http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol LDAP], we'd like to have a tool to enforce and manage such controls there as well.<br />
<br />
Related tech and skills: server config, LDAP, scripting, web interface/app development<br />
<br />
Reference: See https://despot.mozilla.org/help.html and http://lxr.mozilla.org/mozilla/source/webtools/despot/README. Also, please speak with [[User:Reed|Reed Loden]] (reed) about this project.<br />
<br />
== XULRunner Guide ==<br />
<br />
The [http://en.wikipedia.org/wiki/XULRunner XULRunner project] provides an "application runner" for building apps -- like Firefox, Thunderbird, and Sunbird -- atop the [http://developer.mozilla.org/en/docs/Toolkit_API Mozilla toolkit] framework. It needs a guide outlined, high-priority parts written, and examples created to help people get started.<br />
<br />
Related tech and skills: XUL, documentation, cross-platform testing<br />
<br />
Reference: http://cs.senecac.on.ca/fsoss/2006/workshop.html#XULRunner<br />
<br />
== Updating and migrating of MDC content ==<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] has rights to a bunch of content that's still hosted on various strange corners of http://www.mozilla.org and the old [http://developer.mozilla.org/en/docs/DevEdge DevEdge] archives. There are some gems in there that need dusting off and updating to reflect the realities of the modern web.<br />
<br />
Related tech and skills: web authoring, documentation, scripting, technology domains of chosen articles.<br />
<br />
== Updating JS guide and JS reference ==<br />
<br />
The current [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide JavaScript guide] and [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference reference ] are valuable, but in serious need of updating in both structure and content (new language features, more relevant compatibility information, improved examples).<br />
<br />
Related tech and skills: documentation, JavaScript<br />
<br />
== Test framework development ==<br />
<br />
We have a number of promising prototype or proof-of-concept test frameworks for exercising Mozilla code from different directions. They need varying amounts of work to make them more robust and general, document them, and integrate them into different kinds of automation.<br />
<br />
Related tech and skills: Python, Perl, Makefiles, shell scripting, JavaScript<br />
<br />
== OpenDarwin tinderbox image ==<br />
<br />
We would love to have a [thttp://en.wikipedia.org/wiki/Tinderbox_%28software%29 Tinderbox] image (e.g., VM) for testing and building on the Mac, based on the [http://www.opensource.apple.com/darwinsource/ freely-available OS X source]. Also, we'd like to get it wired into [[User:Bhearsum|Ben Hearsum's]] (bhearsum) [http://en.wikipedia.org/wiki/Buildbot buildbot] system.<br />
<br />
Related tech and skills: system configuration, scripting, light C/C++, Makefile<br />
<br />
== FAQ mining for extension developers ==<br />
<br />
Literally every day, there are informal exchanges on IRC (e.g., #developers, #firefox, #seneca, etc.) and newsgroups that are fantastic fodder for small, focused documents. Collect these exchanges and fleshing them out as recipes for extension authors that include sample code.<br />
<br />
== Bugzilla component-watching ==<br />
<br />
It's common for a developer to want to "watch" all the bugs that are filed in a certain [https://bugzilla.mozilla.org Bugzilla] component. Mozilla uses a convoluted and painful system of synthetic accounts to simulate this capability, and we'd all really prefer to be able to do it more directly and with less opportunity for error.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=76794 Bug 76794]<br />
<br />
== Applescript support for Firefox ==<br />
<br />
Lots of people would like to script Firefox from [http://en.wikipedia.org/wiki/AppleScript AppleScript] (or, more generally, from the [http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA]), and extension authors would like to be able to call out to [http://en.wikipedia.org/wiki/AppleScript AppleScript]/[http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA] from their code as well.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=125419 Bug 125419]<br />
<br />
== Airbag development and server operation ==<br />
<br />
The [http://code.google.com/p/airbag/ Airbag project] is developing an open source crash reporting and analysis system, analogous to [http://en.wikipedia.org/wiki/Crash_reporter#Talkback Talkback]. There's lots of work to do on wiring it into the build system, operating servers for collecting and analyzing data, and extending Firefox's use of it to collect additional helpful information (like installed extensions, memory usage, etc.) <br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=216827 Bug 216827]<br />
<br />
== Calendar stuff ==<br />
<br />
The [http://www.mozilla.org/projects/calendar/ Calendar project] has lots of stuff for people to do, from [http://www.microsoft.com/exchange/default.mspx Exchange] connectors to off-line caching to bug fixes and minor features galore. A good place to start is the #calendar IRC channel on moznet.<br />
<br />
== OS X Keychain integration ==<br />
<br />
It would be great to store Firefox's saved passwords in the [http://en.wikipedia.org/wiki/Apple_Keychain OS X keychain], for consistency and ease of use.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=106400 Bug 106400]<br />
<br />
== CSS guide ==<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] would like to add a CSS guide to its set of major documents, covering at least the top 100 CSS properties in use on the web today. This data can be obtained through tools . It should include numerous examples, and a fair number of small tutorial/how-to sections for different common tasks or requests from web authors. <br />
<br />
Reference: [http://developer.mozilla.org/en/docs/CSS_Reference CSS Reference]<br />
<br />
== Delta debugging framework ==<br />
<br />
[http://en.wikipedia.org/wiki/Delta_Debugging Delta debugging] is an automated approach to debugging that isolates failures systematically. Given a failing test that can be mechanically verified (including a browser crash), [http://en.wikipedia.org/wiki/Delta_Debugging delta debugging] is a way of automatically isolating the change that introduced the failure. Having a framework in place to pull builds from CVS, bisect by date and change set (using [http://en.wikipedia.org/wiki/Bonsai_CVS_code_management_system bonsai ] data -- remember, CVS doesn't have changesets!), and report results would let computers make developers more productive.<br />
<br />
== D-Bus and other Linux desktop integration improvements ==<br />
<br />
Various Linux distributors have patches in their Firefox packages that add bits and pieces of Linux integration, and we'd like to see even more available. One particular area of interest is controlling the browser via [http://en.wikipedia.org/wiki/D-BUS d-bus], and exposing [http://en.wikipedia.org/wiki/D-BUS dbus] events to the application and extensions.<br />
<br />
== "Avoid loading the same page twice" Extension ==<br />
<br />
Create an extension to Firefox so that when a bookmark is clicked, and that site is already open in any tab in any window, that tab/window is brought to the front rather than loading the page again.<br />
<br />
Related tech and skills: XUL, JavaScript</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_List&diff=1531Project List2006-09-12T20:04:29Z<p>Reed: /* SVN access control via LDAP */ Add link to me.</p>
<hr />
<div>You can get involved with any of the projects below. Please see [[Assignment 2]] for details. To join a project create a page for it, following the example of [[Sample Project]] below. <br />
<br />
== [[Sample Project]] ==<br />
<br />
This is a sample project stub. You can use the template for [[Sample Project]] in order to create a project page for one of the stubs below. This is how you 'sign-up' for a project.<br />
<br />
NOTE: if someone has already created the project page, speak to this person and see if you can join them. If so, simply add your name to the '''Project Leader(s)''' page. Otherwise, you can become a contributor later.<br />
<br />
== Generalization of Joga extension ==<br />
<br />
We worked with partners to create an [http://www.joga.com/jogacompanion.aspx extension] for delivering World Cup scoring updates as well as providing country-specific themes. We'd like someone to take it apart, remove or refactor the [http://www.joga.com/jogacompanion.aspx Joga]-specific pieces so that it can be used for other such data sources (hello, hockey?), and write some basic documentation for how to create your own notification-and-theme extension from the toolkit that results.<br />
<br />
Related tech and skills: XUL, JavaScript, documentation, web services<br />
<br />
== SVN access control via LDAP ==<br />
<br />
We have a tool called "[https://despot.mozilla.org/ Despot]" which gives us fine-grained control over access to the [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS Mozilla CVS repository]. As we start to have development hosted in [http://weblogs.mozillazine.org/preed/2006/08/subversive_subversion_conversi.html Subversion] (SVN), with account information maintained in [http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol LDAP], we'd like to have a tool to enforce and manage such controls there as well.<br />
<br />
Related tech and skills: server config, LDAP, scripting, web interface/app development<br />
<br />
Reference: See https://despot.mozilla.org/help.html and http://lxr.mozilla.org/mozilla/source/webtools/despot/README. Also, please speak with [[User:Reed Reed Loden]] (reed) about this project.<br />
<br />
== XULRunner Guide ==<br />
<br />
The [http://en.wikipedia.org/wiki/XULRunner XULRunner project] provides an "application runner" for building apps -- like Firefox, Thunderbird, and Sunbird -- atop the [http://developer.mozilla.org/en/docs/Toolkit_API Mozilla toolkit] framework. It needs a guide outlined, high-priority parts written, and examples created to help people get started.<br />
<br />
Related tech and skills: XUL, documentation, cross-platform testing<br />
<br />
Reference: http://cs.senecac.on.ca/fsoss/2006/workshop.html#XULRunner<br />
<br />
== Updating and migrating of MDC content ==<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] has rights to a bunch of content that's still hosted on various strange corners of http://www.mozilla.org and the old [http://developer.mozilla.org/en/docs/DevEdge DevEdge] archives. There are some gems in there that need dusting off and updating to reflect the realities of the modern web.<br />
<br />
Related tech and skills: web authoring, documentation, scripting, technology domains of chosen articles.<br />
<br />
== Updating JS guide and JS reference ==<br />
<br />
The current [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide JavaScript guide] and [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference reference ] are valuable, but in serious need of updating in both structure and content (new language features, more relevant compatibility information, improved examples).<br />
<br />
Related tech and skills: documentation, JavaScript<br />
<br />
== Test framework development ==<br />
<br />
We have a number of promising prototype or proof-of-concept test frameworks for exercising Mozilla code from different directions. They need varying amounts of work to make them more robust and general, document them, and integrate them into different kinds of automation.<br />
<br />
Related tech and skills: Python, Perl, Makefiles, shell scripting, JavaScript<br />
<br />
== OpenDarwin tinderbox image ==<br />
<br />
We would love to have a [thttp://en.wikipedia.org/wiki/Tinderbox_%28software%29 Tinderbox] image (e.g., VM) for testing and building on the Mac, based on the [http://www.opensource.apple.com/darwinsource/ freely-available OS X source]. Also, we'd like to get it wired into [[User:Bhearsum|Ben Hearsum's]] (bhearsum) [http://en.wikipedia.org/wiki/Buildbot buildbot] system.<br />
<br />
Related tech and skills: system configuration, scripting, light C/C++, Makefile<br />
<br />
== FAQ mining for extension developers ==<br />
<br />
Literally every day, there are informal exchanges on IRC (e.g., #developers, #firefox, #seneca, etc.) and newsgroups that are fantastic fodder for small, focused documents. Collect these exchanges and fleshing them out as recipes for extension authors that include sample code.<br />
<br />
== Bugzilla component-watching ==<br />
<br />
It's common for a developer to want to "watch" all the bugs that are filed in a certain [https://bugzilla.mozilla.org Bugzilla] component. Mozilla uses a convoluted and painful system of synthetic accounts to simulate this capability, and we'd all really prefer to be able to do it more directly and with less opportunity for error.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=76794 Bug 76794]<br />
<br />
== Applescript support for Firefox ==<br />
<br />
Lots of people would like to script Firefox from [http://en.wikipedia.org/wiki/AppleScript AppleScript] (or, more generally, from the [http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA]), and extension authors would like to be able to call out to [http://en.wikipedia.org/wiki/AppleScript AppleScript]/[http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html OSA] from their code as well.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=125419 Bug 125419]<br />
<br />
== Airbag development and server operation ==<br />
<br />
The [http://code.google.com/p/airbag/ Airbag project] is developing an open source crash reporting and analysis system, analogous to [http://en.wikipedia.org/wiki/Crash_reporter#Talkback Talkback]. There's lots of work to do on wiring it into the build system, operating servers for collecting and analyzing data, and extending Firefox's use of it to collect additional helpful information (like installed extensions, memory usage, etc.) <br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=216827 Bug 216827]<br />
<br />
== Calendar stuff ==<br />
<br />
The [http://www.mozilla.org/projects/calendar/ Calendar project] has lots of stuff for people to do, from [http://www.microsoft.com/exchange/default.mspx Exchange] connectors to off-line caching to bug fixes and minor features galore. A good place to start is the #calendar IRC channel on moznet.<br />
<br />
== OS X Keychain integration ==<br />
<br />
It would be great to store Firefox's saved passwords in the [http://en.wikipedia.org/wiki/Apple_Keychain OS X keychain], for consistency and ease of use.<br />
<br />
Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=106400 Bug 106400]<br />
<br />
== CSS guide ==<br />
<br />
The [http://developer.mozilla.org Mozilla Developer Center] would like to add a CSS guide to its set of major documents, covering at least the top 100 CSS properties in use on the web today. This data can be obtained through tools . It should include numerous examples, and a fair number of small tutorial/how-to sections for different common tasks or requests from web authors. <br />
<br />
Reference: [http://developer.mozilla.org/en/docs/CSS_Reference CSS Reference]<br />
<br />
== Delta debugging framework ==<br />
<br />
[http://en.wikipedia.org/wiki/Delta_Debugging Delta debugging] is an automated approach to debugging that isolates failures systematically. Given a failing test that can be mechanically verified (including a browser crash), [http://en.wikipedia.org/wiki/Delta_Debugging delta debugging] is a way of automatically isolating the change that introduced the failure. Having a framework in place to pull builds from CVS, bisect by date and change set (using [http://en.wikipedia.org/wiki/Bonsai_CVS_code_management_system bonsai ] data -- remember, CVS doesn't have changesets!), and report results would let computers make developers more productive.<br />
<br />
== D-Bus and other Linux desktop integration improvements ==<br />
<br />
Various Linux distributors have patches in their Firefox packages that add bits and pieces of Linux integration, and we'd like to see even more available. One particular area of interest is controlling the browser via [http://en.wikipedia.org/wiki/D-BUS d-bus], and exposing [http://en.wikipedia.org/wiki/D-BUS dbus] events to the application and extensions.<br />
<br />
== "Avoid loading the same page twice" Extension ==<br />
<br />
Create an extension to Firefox so that when a bookmark is clicked, and that site is already open in any tab in any window, that tab/window is brought to the front rather than loading the page again.<br />
<br />
Related tech and skills: XUL, JavaScript</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=People&diff=1528People2006-09-12T19:57:15Z<p>Reed: Add myself, per humph</p>
<hr />
<div>A list of people involved with Mozilla@Seneca. Please add your name in order, with a link to a page if you have one.<br />
<br />
* '''Name''' ('''IRC Nick''')<br />
<br />
* [[User:Bhearsum|Ben Hearsum]] (bhearsum)<br />
* Dave Humphrey (dave or humph)<br />
* Michael Lau (mylau)<br />
* [[User:Reed|Reed Loden]] (reed)<br />
* Mike Shaver (shaver)<br />
* Paul St-Denis (PStD)<br />
* Mohammad Tirtashi (moe)<br />
* Philip Vitorino (philly)</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=FAQ&diff=1452FAQ2006-09-12T03:38:19Z<p>Reed: /* IRC */</p>
<hr />
<div>==IRC==<br />
<br />
# '''Question''': What is the best way to share long error messages or other text that is too big to copy/paste into IRC?<br />
:: '''Answer''': Use pastebin at http://pastebin.mozilla.org to copy/paste your output. Then paste the resulting URL into IRC.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=FAQ&diff=1451FAQ2006-09-12T03:37:43Z<p>Reed: /* IRC */</p>
<hr />
<div>==IRC==<br />
<br />
# '''Q''': What is the best way to share long error messages or other text that is too big to copy/paste into IRC?<br />
:: '''A''': Use pastebin at http://pastebin.mozilla.org to copy/paste your output. Then paste the resulting URL into IRC.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_List&diff=1442Project List2006-09-12T01:26:38Z<p>Reed: /* CSS guide */ Add link to devmo</p>
<hr />
<div>''This page needs to be beaten, savagely, with the link-to-relevant-stuff stick. Please help yourself!''<br />
<br />
== Generalization of Joga extension ==<br />
<br />
We worked with partners to create an extension for delivering World Cup scoring updates as well as providing country-specific themes. We'd like someone to take it apart, remove or refactor the Joga-specific pieces so that it can be used for other such data sources (hello, hockey?), and write some basic documentation for how to create your own notification-and-theme extension from the toolkit that results.<br />
<br />
Related tech and skills: XUL, JavaScript, documentation, web services<br />
<br />
== SVN access control via LDAP ==<br />
<br />
We have a tool called "Despot" which gives us fine-grained control over access to the Mozilla CVS repository. As we start to have development hosted in subversion, with account information maintained in LDAP, we'd like to have a tool to enforce and manage such controls there as well.<br />
<br />
Related tech and skills: server config, LDAP, scripting, web interface/app development<br />
<br />
== XULRunner Guide ==<br />
<br />
The XULRunner project provides an "application runner" for building apps -- like Firefox, Thunderbird, and Sunbird -- atop the Mozilla toolkit framework. It needs a guide outlined, high-priority parts written, and examples created to help people get started.<br />
<br />
Related tech and skills: XUL, documentation, cross-platform testing<br />
<br />
== Updating and migrating of MDC content ==<br />
<br />
The Mozilla Developer Center has rights to a bunch of content that's still hosted on various strange corners of mozilla.org and the old DevEdge archives. There are some gems in there that need dusting off and updating to reflect the realities of the modern web.<br />
<br />
Related tech and skills: web authoring, documentation, scripting, technology domains of chosen articles.<br />
<br />
== Updating JS guide and JS reference ==<br />
<br />
The current JavaScript guide and reference are valuable, but in serious need of updating in both structure and content (new language features, more relevant compatibility information, improved examples).<br />
<br />
Related tech and skills: documentation, JavaScript<br />
<br />
== Test framework development ==<br />
<br />
We have a number of promising prototype or proof-of-concept test frameworks for exercising Mozilla code from different directions. They need varying amounts of work to make them more robust and general, document them, and integrate them into different kinds of automation.<br />
<br />
Related tech and skills: Python, Perl, Makefiles, shell scripting, JavaScript<br />
<br />
== OpenDarwin tinderbox image ==<br />
<br />
We would love to have a tinderbox image for testing and building on the Mac, based on the freely-available OS X source. Would you love that too? (Also, we'd like to get it wired into Ben Hearsum's buildbot system.)<br />
<br />
Related tech and skills: system configuration, scripting, light C/C++, Makefile<br />
<br />
See http://www.opensource.apple.com/darwinsource/<br />
<br />
== FAQ mining for extension developers ==<br />
<br />
Literally every day, there are informal exchanges on IRC and newsgroups that are fantastic fodder for small, focused documents. Collecting these exchanges, fleshing them out as recipes for extension authors, and writing sample code -- what better way to spend your afternoons?<br />
<br />
== Bugzilla component-watching ==<br />
<br />
It's common for a developer to wish to "watch" all the bugs that are filed in a certain Bugzilla component. Mozilla uses a convoluted and painful system of synthetic accounts to simulate this capability, and we'd all really prefer to be able to do it more directly and with less opportunity for error. [https://bugzilla.mozilla.org/show_bug.cgi?id=76794 Bug 76794]<br />
<br />
== Applescript support for Firefox ==<br />
<br />
Lots of people would like to script Firefox from AppleScript (or, more generally, from the OSA), and extension authors would like to be able to call out to AppleScript/OSA from their code as well. [https://bugzilla.mozilla.org/show_bug.cgi?id=125419 Bug 125419]<br />
<br />
== Airbag development and server operation ==<br />
<br />
The Airbag project is developing an open source crash reporting and analysis system, analogous to Talkback. There's lots of work to do on wiring it into the build system, operating servers for collecting and analyzing data, and extending Firefox's use of it to collect additional helpful information (like installed extensions, memory usage, etc.) [https://bugzilla.mozilla.org/show_bug.cgi?id=216827 Bug 216827]<br />
<br />
== Calendar stuff ==<br />
<br />
The [http://www.mozilla.org/projects/calendar/ Calendar project] has lots of stuff for people to do, from Exchange connectors to off-line caching to bug fixes and minor features galore.<br />
<br />
== OS X Keychain integration ==<br />
<br />
It would be great to store Firefox's saved passwords in the OS X keychain, for consistency and ease of use. [https://bugzilla.mozilla.org/show_bug.cgi?id=106400 Bug 106400]<br />
<br />
== CSS guide ==<br />
<br />
The Mozilla Developer Center would like to add a CSS guide to its stable of major documents, covering at least the top 100 CSS properties in use on the web today. It should be replete with examples, and a fair number of small tutorial/how-to sections for different common tasks or requests from web authors.<br />
[http://developer.mozilla.org/en/docs/CSS_Reference CSS Reference]<br />
<br />
== Delta debugging framework ==<br />
<br />
Given a failing test that can be mechanically verified (including crashes), delta debugging is a way of automatically isolating the change that introduced the failure. Having a framework in place to pull builds, bisect by date and change set (using bonsai data -- remember, CVS doesn't have changesets!), and report results would let computers make developers more productive.<br />
<br />
== dbus and other Linux desktop integration improvements ==<br />
<br />
Various Linux distributors have patches in their Firefox packages that add bits and pieces of Linux integration, and we'd like to see even more available. One particular area of interest is controlling the browser via dbus, and exposing dbus events to the application and extensions.<br />
<br />
== "Avoid loading the same page twice" Extension ==<br />
<br />
Whenever i click on a bookmark of a site that i already have open in any tab in any window it would switch to that tab and bring that window to the front rather than loading the page again.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=DPS909&diff=1441DPS9092006-09-12T01:20:21Z<p>Reed: /* [http://cs.senecac.on.ca/index.php?outline=DPS909 Subject Description] */</p>
<hr />
<div>=Topics in Open Source Development=<br />
<br />
==[http://cs.senecac.on.ca/index.php?outline=DPS909 Subject Description]==<br />
<br />
This course introduces students to the technological, social, and pragmatic aspects of developing open source software through direct involvement in a real open source project/projects. Students will learn to use the tools, techniques, and strategies of OS developers. This is a project-based programming course. The particular open source project(s) to be studied will vary with each offering and be announced at the beginning of the semester. <br />
<br />
This offering of DPS909 will focus on the [http://www.mozilla.org/ Mozilla Project] and [http://developer.mozilla.org Mozilla development]. Students will be exposed to and taught the Mozilla tools, processes, and code base. In addition, they will also participate in the Mozilla community and in real Mozilla [[Project List|projects]].<br />
<br />
==Graded Work==<br />
<br />
* 10% – [[Assignment 1]] (Build Firefox)<br />
* 50% – Assignment 2 (Major Project)<br />
* 20% – [http://wiki.mozilla.org/MDC_newsgroup_summaries Newsgroups Summaries] (will discuss on Friday)<br />
* 5% – Assignment based on Symposium<br />
* 15% – Quizzes (will be announced)<br />
<br />
==Resources==<br />
<br />
* [[Guest Lectures|Mozilla Guest Lectures]]<br />
* [[Project List]]<br />
* [[Course Software Setup]]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=DPS909&diff=1440DPS9092006-09-12T01:19:27Z<p>Reed: /* Graded Work */</p>
<hr />
<div>=Topics in Open Source Development=<br />
<br />
==[http://cs.senecac.on.ca/index.php?outline=DPS909 Subject Description]==<br />
<br />
This course introduces students to the technological, social, and pragmatic aspects of developing open source software through direct involvement in a real open source project/projects. Students will learn to use the tools, techniques, and strategies of OS developers. This is a project-based programming course. The particular open source project(s) to be studied will vary with each offering and be announced at the beginning of the semester. <br />
<br />
This offering of DPS909 will focus on the [http://www.mozilla.com/ Mozilla Project] and [http://developer.mozilla.org Mozilla development]. Students will be exposed to and taught the Mozilla tools, processes, and code base. In addition, they will also participate in the Mozilla community and in real Mozilla [[Project List|projects]].<br />
<br />
==Graded Work==<br />
<br />
* 10% – [[Assignment 1]] (Build Firefox)<br />
* 50% – Assignment 2 (Major Project)<br />
* 20% – [http://wiki.mozilla.org/MDC_newsgroup_summaries Newsgroups Summaries] (will discuss on Friday)<br />
* 5% – Assignment based on Symposium<br />
* 15% – Quizzes (will be announced)<br />
<br />
==Resources==<br />
<br />
* [[Guest Lectures|Mozilla Guest Lectures]]<br />
* [[Project List]]<br />
* [[Course Software Setup]]</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Assignment_1&diff=1439Assignment 12006-09-12T01:17:12Z<p>Reed: /* Comments */ Correct link to Course_Software_Setup page</p>
<hr />
<div>==“Build the Fox”==<br />
<br />
Assignment 1 is meant to get you up to speed on the Mozilla environment as quickly as possible.<br />
<br />
===Due Date===<br />
<br />
Wednesday September 20th.<br />
<br />
===Marks===<br />
<br />
____/20 (Build Completed) + ___/10 (All Requirements Met) + ___/5 (Report)<br />
<br />
Worth 10% of your final grade.<br />
<br />
===Requirements===<br />
<br />
Build Firefox on Windows, Linux, or Mac. For help see: http://developer.mozilla.org<br />
<br />
You must hand-in a report (approximately 2-4 pages) detailing:<br />
<br />
# Steps you took to complete the build<br />
# Software you installed<br />
# Problems you encountered<br />
# How you solved those problems<br />
# Resources you used to complete your work (people, web sites, etc.)<br />
# Screenshot of Help > About Mozilla Firefox in your custom build<br />
# Conclusions and reflections on your first experience building Firefox<br />
<br />
===Comments===<br />
<br />
See hardware/software setup information in DPS909 [[Course Software Setup]]<br />
<br />
You '''will''' have problems. Don’t give up! It’s ok to help each other.</div>Reedhttps://wiki.cdot.senecacollege.ca/w/index.php?title=Guest_Lectures&diff=1438Guest Lectures2006-09-12T01:13:28Z<p>Reed: Add links to blogs</p>
<hr />
<div>During the Fall 2006 offering of DPS909, Mozilla Corporation has agreed to support our work and participate in the course by delivering guest lectures. This is an incredible opportunity for us, and to say thank-you we will be recording each lecture and making them available on-line for use by the wider Mozilla community. <br />
<br />
* '''September 6''': [http://shaver.off.net/diary/ Mike Shaver] (shaver), Vladimir Vukićević (vlad) Introduction to Mozilla<br />
* '''September 13''': [http://www.beltzner.ca/mike/ Mike Beltzner] (beltzner) Mozilla Community<br />
* '''September 20''': [http://weblogs.mozillazine.org/preed/ J. Paul Reed] (preed) How the Build Works<br />
* '''October 4''': [http://shaver.off.net/diary/ Mike Shaver] (shaver) The Mozilla Source Tree<br />
* '''October 11''': [http://steelgryphon.com/blog/ Mike Connor] (mconnor) The Life-cycle of a Bug<br />
* '''October 20''': [http://roberthelmer.com/blog/ Rob Helmer] (rhelmer) Release Builds: from source tree to exe<br />
* '''November 1''': [http://antennasoft.net/robcee/ Rob Campbell] (rcampbell) QA and Testing<br />
* '''November 22''': [http://shaver.off.net/diary/ Mike Shaver] (shaver) Extensions and XULRunner<br />
* '''November 29''': [http://blog.vlad1.com/ Vladimir Vukićević] (vlad) TBA</div>Reed