Seneca College is working on many joint research and development projects with Mozilla and Fedora. These projects are listed below. Many of the projects below are part of the DPS909 or OSD600 courses or the LUX Program.
This page lists many of the research and coursework projects that are being done between Seneca faculty, students, and various Open Source communities, including Mozilla, Fedora, and OpenOffice.org. 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. To claim a project, move it from the Potential Projects page to Active Project table below and create a link to a new project page based on the Sample Project page.
|Project Name||Description||Leader(s)||Community or Communities|
|Windows Data Migration Tool||Anaconda supports partition resizing (including NTFS) in Rawhide now. It would be great to combine this with a data migration tool for Windows or dual booting users.||Nestor Chan||Fedora|
|Add IPv6 Support to Condor||Sooner or later we're going to have to live with IPv6. Many applications are very tied to IPv4 and that includes Condor. Understand what IP addresses really mean to Condor, like many existing systems, and what the implications of an IPv6 conversion means and how it can be done. There are many resources about IPv6 interfaces, but not many good transition guides, and fewer that address what the change can really mean to an application - Condor takes addresses and passes them as ascii text between components.||Kezhong Liang||Fedora|
|Corresponding Source Web App||Finish design and implement web application that provides downloadable SRPMS for any package+tag in the Fedora Package Source Code Control system. While we provide SRPMS for all packages at release, the updates and rawhide trees churn their packages more rapidly, and will remove the koji-built SRPMS when the binary packages are removed. This would allow people to request source corresponding to the packages they have on ISO media or otherwise.||Patricia Constantino||Fedora|
|Thunderbird Draft Scheduler Extension||Write an extension for Thunderbird so that the user has the ability to mark a draft email for sending later. This is not the same as having to save emails in your DRAFT box because users would have to remember to go back in and click Send later. What is different here is that users could set the date and time for each email to be sent.||James Evangelista||Thunderbird|
|Creating an MDRK spin||The Mozilla Developer Resource Kit is a set of tools, code, and documentation intended to make it easy for new Mozilla developers to get up to speed. Package the MDRK components (including the software tools, a Moz source tree, and documentation) as RPM packages and then create a Fedora "spin" (Live + Installable DVD) of these packages.
Edit the spin image (from Revisor/Live CD Tools) so that, in addition to being a bootable/installable disc, the image can be run in a VM under Windows/Mac OSX. The disc image must be edited to include Windows/Mac OSX versions of the tools, so that if the disc is inserted into a running Windows or Mac OSX system, the appropriate version can be installed.
|Canvas3D XUL Runner App||Installing a test version of Canvas3D has been a logistical nightmare. This project aims to create a XUL Runner version of the Canvas3D extension which will be easy to download and run, and can update itself as the project progresses.||Leonard Lee||Mozilla|
|Canvas3D JS Library||A project to add JS APIs on top of the canvas3d element in order to support 3D and game development.||Cathy Leung||Mozilla|
|Mozilla Developer Resource Kit||A project to create a resource kit (i.e., DVDs) containing the tools, documentation, source code, and learning materials necessary for a new developer or student to begin developing Mozilla.||David Humphrey||Mozilla|
|Create Local MXR||Many developers without highspeed network access would like to be able to use MXR but can't. Build a lightweight, installable Windows package that gives the full functionality of MXR locally. Create a Prism front-end specific for the task of using this local MXR.||David Humphrey||Mozilla|
|Add an Infobar style warning for window resize/move||Many (poorly behaved) web sites attempt to move and/or resize your browser window. It is possible to stop this behaviour (cf. dom.disable_window_move_resize) but it would be nice to have an infobar that informed the user that a web page attempted to move/resize the window, and allow it or ignore it (default). This behaviour is similar to the current Pop-up Blocker already present in Firefox. NOTE: it is not clear whether such a feature would be accepted in the tree or if this would need to be done as an extension.||Tony Lai||Mozilla|
|Contribute to Private Browsing Tests||The new Private Browsing feature (see bug 248970 and the test plan) needs thorough tests written in order to insure its proper functionality. This will involve collaborating with those writing the patch and tests in order to develop a full suite of tests.||Aaron Train||Mozilla
|Profile the build system||It's a well known fact that it takes longer to build on Windows than on a comparable Linux or Mac machine. We don't know exactly why, however. There have been many theories, but no real data. Profiling the build system would allow us to figure out where all of the time is being spent. The best place to start might be by adding some profiling to GNU Make, to figure out which targets in our makefiles take the most time. From there, depending on the results, profiling could be added to other parts of the build system to narrow down specific bottlenecks.
|Thunderbird Image Auto-Resize||Write an extension for Thunderbird that gives functionality similar to that of Outlook, where image attachments in an email can be automatically re-sized to one of a set of smaller sizes. This is helpful for users who would otherwise try to send megabytes of image data, when they can safely scale the images down and still share their pictures with friends.
|NetworkManager Web Authentication||NetworkManager knows how to connect to many different types of networks, both wired and wireless, and can auto-authenticate to WEP and WPA networks. However, it can't auto-authenticate to networks that require a web-based login, which includes many wired and wireless networks such as SeneNET and AirYork.
Modify NetworkManager so that it talks (though dbus) to a Firefox extension for automatic login to a web-authenticated network.
Resources: ctyler, (roc, callion for dbus)
|Make Ubiquity Work In Thunderbird||Ubiquity is a cool extensible natural language front-end to Firefox. It could do wonders in Thunderbird as well. Aza Raskin and other Ubiquity hackers are happy to help someone do that with their Ubiquity knowledge, and #maildev will be happy to assist w/ Thunderbird knowledge.
Resources: aza, ubiquity-firefox mailing list)
|Scott Lunel and Thomas Brown||Thunderbird|
|Add Bit Torrent support to Songbird||Songbird is the best music player in the known universe! Unfortunately, it does not have support for importing media directly from a torrent to the user library. This project will provide that support.||Anthony Hughes||Songbird|
|Fix nsIProcess||Create a new spec for the nsIProcess API and implement interprocess commmunication. The current API is not fully implemented and lacks ipc.
See this bug: https://bugzilla.mozilla.org/show_bug.cgi?id=442393
Resources: humph, bsmedberg
|Colour Management Tests||Write reftests to compare images in order to deal with floating point tolerance. This includes dealing with things like Monitor Profiles, profiles in JPEG (i.e., JPEGs get changed based on colour profile info). See discussion of colour profiles in Firefox 3 here. It would be useful to be able to compare to PNGs with a reftest, perhaps creating an image diff tool, where pixels outside a floating point tolerance (> 0.n) would somehow be highlighted so you can see what is different.
This will require some graphics and image knowledge (i.e., Photoshop, what colour is on a computer, etc).
Resources: #gfx, joe, vlad, bholley, [http://bholley.wordpress.com/2008/09/12/so-many-colors/ discussion of Mozilla colour profiles
|Ezadkiel Villarico Marbella||Mozilla|
|Bugzilla Unit Tests Using Test::More||Add unit tests using Test::More for every method in every object in Bugzilla.||Irina Sh.||Bugzilla|
|Update TryServer to Work with Hg (Mercurial)::More||Last semester Armen built a TryServer here at Seneca. It is currently functional with CVS but it needs to be updated to work with Hg. Also a component for allowing students to login to queue builds and retrieve builds is needed.||Nino D'Aversa||Mozilla|
|Package JBoss||JBoss is a Java middleware project with a large number of sub projects. Packaging JBoss and maintaining them is a challenging task and would require several weeks of full time work. Since OpenJDK and a number of Java components is already in Fedora 9, it should help get started.||John Ford||Fedora/JBoss|
|Per-Site/Per-Tab User-Agent Modification||Create an extension that lets a web developer modify the User-Agent string on a persistent per-site, per-tab basis. There's already a user-agent-switcher in the FF-addons (https://addons.mozilla.org/en-US/firefox/addon/59) but it doesn't isolate the user agent per site or per tab. Strong features might include a separation of the browser identification and language support, optional persistence across browsing sessions and a UI that by default hides the UA string behind the name/version of the browser it represents. See this discussion of the UA's history.||Johann Manzano||Mozilla
|Func/Network Automation||Func is a network applications framework that allows for powerful remote manipulation and scripting of very large numbers of Fedora machines. This idea is to expand Func by writing lots of useful modules to do all sorts of powerful remote things, making it into the world's best API for remote scripting Fedora over lots of machines at once -- with an emphasis on integrating Func with other tools we already have in Fedora. This would be a particular good project for someone who had an interest in networking, clusters, automation, or security related topics. Contributions to Func wouldn't be limited to just writing modules, as anything networking/automation related is fair game.||Gregory Masseau||Fedora|
|Func/Network Automation||Func is a network applications framework that allows for powerful remote manipulation and scripting of very large numbers of Fedora machines. This idea is to expand Func by writing lots of useful modules to do all sorts of powerful remote things, making it into the world's best API for remote scripting Fedora over lots of machines at once -- with an emphasis on integrating Func with other tools we already have in Fedora. This would be a particular good project for someone who had an interest in networking, clusters, automation, or security related topics. Contributions to Func wouldn't be limited to just writing modules, as anything networking/automation related is fair game.||Milton Paiva||Fedora
|Mercurial history browsing||We're just starting to use an exciting new distributed version control tool: Mercurial.One of the exciting things about Mercurial is that the history—the list of all the changes that have ever been checked in—is not linear. It frequently has branches and merges. This is actually a good, important feature, as you know if you've read a little about distributed version control. The downside is that the history becomes a maze of twisty little passages. Benjamin Smedberg's demo shows the history of a repository with lots of merges (each box is a check-in; you can click on the boxes to move around).There have been a couple attempts at showing history in an intuitive, graphical way. Mercurial comes with a web UI for browsing the repository, including history (here's what it looks like). It also comes with an "hg glog" extension that draws history as ASCII art, and an "hg view" extension that does roughly the same thing with a little GUI. Sadly, none of these applications qualifies as awesome.Your mission is to rectify this sad situation by writing an awesome browser-based UI for navigating Mercurial repository history.||Siddharth Kalra||Mozilla|
|PGO Related Bugs||On Windows, Mozilla has begun using profile-guided optimization to make execution of the browser faster (i.e., you run your binary and see how it is likely to run, and optimize for those code paths). Currently, there are parts of the Mozilla source code that have bugs or crash when run in PGO builds. This project will mean trying to isolate these bugs by doing PGO builds of these components, creating test cases, debugging, and hopefully fixing things.
Resources: ted, sdwilsh, and others based on component.
|Implementing an Archive Method for Auto-saving Mail||(Bug 451995) Currently in Thunderbird, there is no way to archive emails. This project will implement an archive method to save messages so that they are available for searching and other uses but are no longer visible in the users Inbox. Instead they will be moved to a archived folder.||Bartosz Barcicki||Thunderbird|
|XUL Application Packaging||Help to develop an automated packaging system for XULRunner applications.
Resources: plasticmillion, mfinkle, #mozpad, #prism
|Add DTrace Probes and scripts for Mozilla Code base
DTrace was created by Sun in OpenSolaris to allow developers to write simple scripts in order to probe and instrument executing programs in a way not possible otherwise. One of the advantages of DTrace is that it allows you to turn on probing when you need it, but not incur an execution penalty with regard to performance (i.e., when probes aren't being scripted, they aren't run). This requires developers to add "probes" to their source code. For example, if you wanted to know when a particular function is entered/exited, get info about what happened, etc. you could add probes to the particular function. Writing the probes is not difficult, however there are hundreds or thousands of probes that Mozilla would like across its code base.
|Finish Weave/Thunderbird integration||Weave is Mozilla's services project. It currently allows different Firefox installations to synchronize bookmarks, etc. We'd like Thunderbird to be a full-fledged Weave client as well. Some [??? work has already been done], but more is required to get utility. Possible scenarios include:
* thunderbird accounts synchronized (configure once, use everywhere) * automatic bookmarking in Firefox of URLs sent to/from friends * access to Thunderbird address book from Firefox
References: bug 446444 Resources: dmose
|Create Content Security Policy test suite||
References: http://people.mozilla.org/~bsterne/content-security-policy/, bug 411791, bug 390910
Resources: bsterne, dveditz, shaver
|Func/Network Automation||Func is a network applications framework that allows for powerful remote manipulation and scripting of very large numbers of Fedora machines. This idea is to expand Func by writing lots of useful modules to do all sorts of powerful remote things, making it into the world's best API for remote scripting Fedora over lots of machines at once -- with an emphasis on integrating Func with other tools we already have in Fedora. This would be a particular good project for someone who had an interest in networking, clusters, automation, or security related topics. Contributions to Func wouldn't be limited to just writing modules, as anything networking/automation related is fair game.||Varinder Singh||Fedora|
|Wubi port to Fedora||The Windows Ubuntu Installer: Wubi make trying out Ubuntu Linux as easy as possible. Unlike a regular dual-boot configuration, Wubi doesn't require users to create a partition on their hard drives for Ubuntu. When Ubuntu is installed with Wubi, it can be uninstalled directly from the Add/Remove Programs utility in Windows. This project is to have a Wubi style install for Fedora.||Louis Daly||Fedora/Ubuntu|
|Apport port to Fedora||Apport is a bug-reporting tool for Ubuntu. When a program crashes, it catches information about the program and what happened, and then sends that information off to the developers, so that they can (hopefully) fix the problem. This would be a useful thing to have in Fedora, since it would help developers gather information about bugs, and it allows users to have a simple, user-friendly way to contribute bug reports and whatnot.||Stephen Carter||Fedora/Ubuntu|
|Manage downloads to Temp Directory||Often files downloaded by the browser are put in a temporary folder that is emptied on close. Users (and especially novice users) should be protected from inadvertent data loss as a result of important files being saved to this temp folder. This project will add fixes to the browser so that users are protected.||Clifton Fernandes||Mozilla|
|Spellcheck Extension for Arbitrary Web Pages||Write an extension to leverage the existing spellcheck code in Mozilla and add the ability to highlight spelling mistakes for a given web page (i.e., vs. a textbox).||Aaron Hooper||Mozilla|
|Add Source Server Support for Mercurial||Previously we added source indexing to release builds using CVS as a backend for pulling source files. Since then, Mozilla has moved to Mercurial from CVS. This project will add support so that Mercurial can be used too. See bug# 440001.||Jesse Valianes||Mozilla|
|HTML page set sanitizer||The Talos performance testing system at Mozilla currently runs on a large set of web pages pulled from the Alexa Top 500. These pages can't be redistributed, since they're mirrors of copyrighted web pages. In addition, many of them contain adult content. This makes it difficult for people to duplicate the Talos results or to test changes that have an expected performance impact.||Neil David||Mozilla|
|Update Condor Build System||At the foundation of many good applications is its build infrastructure. The latest generation of tools includes GNU make with a very powerful interpreted language and ever increasing functionality in autotools. Condor has a build system from a few generations back. It uses imake, originally designed for building X. While new systems are more powerful and provide enhanced functionality, there isn't always a clear mapping to features of older systems. Don't only find a way to use newer tools to build Condor, but find a way to use the power of current generation tools in ways that aren't just a straight mapping of need satisfied by older systems.||Paul DiRezze||Fedora|
See the Historical Projects page for projects which were previously active.