1
edit
Changes
→Development updates
=Description=
This project aims to turn the [http://142.204.133.123/dxr DXR] into an extension that can be installed in Firefox or distributed as a XUL/[http://labs.mozilla.com/2007/10/prism/ Prism] application. This will allow developers with limited or no internet connection to access it the Mozilla source code and documentation in an offlineenvironment. The extension will also provide a low-bandwidth solution for pushing applying updates to on a timed interval or at the end-user's command.
The [http://142.204.133.123/dxr DXR] is a compilation of Mozilla developer documentation. The plan is for this material to be distributed on a Fedora Live DVD that will allow the user to access these materials offline or, alternatively, install them for use on a Windows machine.
Currently the Local MXR and MDRK exist as web applications that run only on Fedora and require the installation of MySQL, Perl and apache. These projects have to be setup manually and are not installable.
Our part in this project would be to convert these projects so that they can be installed cross-platform as a Mozilla Firefox extension.
=Details=
==Related Projects==
* [[Mozilla_Developer_Resource_Kit|Mozilla Developer Resource Kit]]: This is the over-arching project of which the PDXR is but one piece.
* [[Creating_an_MDRK_spin|Creating an MDRK spin]]: This is how this project will eventually be distributed.
* [[Create_Local_MXR|Create a local mxr]]: It is hoped that by solving the more difficult problem of packaging the dxr, the problem of packaging other materials such as an mxr or developer documentation will also be solved.
==Technical Overview==
===Business Rules===
* Commit to lowest file size bandwidth
===About The SourceCode===
* Backend: Perl
* Database: SQLite
* Interface: XUL
===Perl Interpreter===
Perl will be needed to create pages from database queries. It needs to be able to run from within the extension on Windows, Linux, and Mac. [http://perldoc.perl.org/perlembed.html Perlembed] allows us to use Perl from C, which means that we could compile our program with headers that will be able to alternate between Windows, Linux, and Mac.
===Web Server===
<pre style="font-family:Verdana,Helvetica,sans-serif;border:1px solid #F4C430;font-weight:bold">We are still researching for a light-weight webserver. This section be updated regularly.</pre>
Our picks (so far):
* [http://shttpd.sourceforge.net/ SHTTPD]
* [http://dclib.sourceforge.net/ dlib C++]
* [https://neuro-tech.net/files/ Cheetah Server]
* [http://www.documentroot.com/code/ppcgid Pure Perl CGId]
* [http://nginx.net/ nginx] ([http://wiki.codemongers.com/NginxEmbeddedPerlExample?highlight=(embed) Embedding example code])
List of web servers:
* [http://en.wikipedia.org/wiki/Tiny_web_servers Wikipedia's List]
* [http://www.ibm.com/developerworks/web/library/wa-ltwebserv IBM's List]
===Features===
====Mozilla-Central====
====Update Server====
====Application====
======Extention======
======DXR======
The core application has presentation. The front-end is mostly implemented by [http://vocamus.net/dave/ David Humphrey] on his [http://zenit.senecac.on.ca/wiki/dxr/ DXR]. We need to modify the UI to implement the following functionalities:* Navigation
* Database querying
* Update services
* Data transaction
==Related Projects====UI======* Navigation* Tree:**Source Code**Documentation '''(Source code documentation)'''**Help '''(PDXR Documentation)'''**Options*** Automatic updates*** Prompted updates*** Session saving =Roadmap= * Port [http://zenit.senecac.on.ca/wiki/dxr/ DXR] <small>'''(1 week)'''</small> * Modify UI <small>'''(4 weeks total)'''</small>** Left panel:*** Source Code*** Documentation <small>(Source code documentation) '''(1 week)'''</small>*** Help <small>(PDXR Documentation) '''(2 weeks)'''</small> *** Options <small>'''(1 week)'''</small>**** Automatic updates**** Prompted updates**** Session saving * Implement the web server <small>'''(1 week)'''</small>** Test the web server on the different platforms
* [[Mozilla_Developer_Resource_Kit|Mozilla Developer Resource Kit]]: This is Implement the over-arching project of which the PDXR is but one piece.Perl parser <small>'''(1 week)'''</small>* [[Creating_an_MDRK_spin|Creating an MDRK spin]]: This is how this project will eventually be distributed.* [[Create_Local_MXR|Create a local mxr]]: It is hoped that by solving the more difficult problem of packaging the dxr, Test Perl scripts on the problem of packaging other materials such as an mxr or developer documentation will also be solved.different platforms
* Code the CGI tools <small>'''(4 weeks)'''</small>
=News & Updates=
==Development updates==
Project is on hiatus from Jan 2009. It may restart in May 2009 or September 2009 depending on the schedule of the contributors.
==Meetings (Chronological)==
[[Portable_DXR/meeting_103008|Oct 30, 2008]]: Group meeting to map out high level design.
[[Portable_DXR/meeting_110508|Nov 5, 2008]]: Team meeting with David Humphrey about progress.
==Team Blogs==
* [http://jamesboston.ca/cms/taxonomy/term/22 James Boston]: All relevant posts are tagged 'pdxr'.* [http://sameropensource.blogspot.com Samer Ziadeh]* [http://www.jerrypau.ca/?cat=3 Jerry Pau]
==IRC==* [httpirc://sameropensourceirc.blogspotmozilla.com Samer Ziadehorg/PDXR #PDXR]* [irc://irc.mozilla.org/seneca #seneca]
* Need to get figure out how to mash a perl web server into an extension. <small>'''(and pythonby 27/11/08)''' ([[User:Jtpau|Jerry Pau]])</small>** Which Mashup should we use?*** Consumer Mashups*** Data Mashups*** Business Mashups** Do we make sure the web server is up to date?*** How would we do that?) interpreter into *** Are we going to add options in the setting regarding to the extension or into an installer so it lives locally as well.updates?**** Automatically check for updates**** Prompt before download updates**** Prompt before installing updates**** Never ask again
* Someone has to figure out Explain how to mash a web server into an extension.these work: <small>'''(by 27/11/08)''' ([[User:Jamesboston|James Boston]])<br/small>There is research ** Get updates from David's [http://zenit.senecac.on.ca/wiki/dxr/ DXR] or Mozilla-Central.** Push updates to be done there on all the options, compare them (which platform, license, complexity, etc.)extension.
* Have to figure out how to aDesign of the interface of PDXR that will be using [https://developer.mozilla.org/en/Dehydra Dehydra] <small>'''(by 27/11/08) get updates from David's dxr or mozilla-central; b'' ([[User:Jtpau|Jerry Pau]] & [[User:Samer.Ziadeh|Samer Ziadeh]]) push updates to the extension</small>.