Annotation of helloworld/www/plan.html, revision 1.14
1.1 sphjak 1:
1.6 chmille4 2: <h5 class="page-header"><a id="content" name="content">Project Plan - 11/24/08</a></h5>
1.1 sphjak 3: The project concept is to have a Firefox toolbar button that when clicked downloads the currently displayed page's html source file, all media files, and the html source pages of any linked pages. The files will be downloaded into a user specified directory. The media types that are downloaded in addition to other options will be configurable via a browser accessible preferences GUI.
5: The Media Collector will have an option to have all pictures (or some subset) stored in Google's Picasa Service or sent to a Facebook album.
7: The Media Collector will support the following media types:<br>
8: <t>o All Browser supported Image Formats<br>
9: o Some embedded video (such as youtube video, etc).
1.10 chmille4 11: <strong>Original Implementation Plan (It has changed since):</strong><br>
1.1 sphjak 12:
15: The XPCOM component layer will manage file i/o, which includes reading and writing the preferences file and writing the media output files. The XPCOM component will consist of the following functions:
35: saveLinks() <br>
1.3 sphjak 37:
1.6 chmille4 40: <h5 class="page-header"><a id="content" name="content">Write Up - 12/8/08</a></h5>
1.3 sphjak 41:
1.5 sphjak 42: <p><b>Mozdev Tools Utilized:</b><br>
1.3 sphjak 43: <ul><li>CVS - Central code/documentation repository</li>
44: <li>Mailing List - Developer communication</li>
45: <li>Web Hosting - Installation/Documentation host</li></ul>
1.5 sphjak 47: <p><b>Implementation:</b><br>
1.9 chmille4 48: <b>XPCOM</b> - The c++ component handles saving and reading preferences to and from the filesystem via the mediaDownloader object which has two member functions: DoIt() and SaveSummary().
49: The xpcom component links only to frozen libraries through xpcomglue. This allows a precompiled binary to be placed in the extension/components folder which will autoregister during installation and allow xpcom component functionality by just installing the .xpi!
1.8 chmille4 50: Another advantage of using xpcomglue is that the xpcom component can be compiled using the libraries that are downloaded with Firefox opposed to having to build MineFieldDebug from scratch, which can be difficult.<br>
1.4 sphjak 51: <b>JS</b> - Displays the pref UI, restoring previous settings. Parses the document for requested tags, handles them by type, and calls urlDownloader() on each after processing.</p>
1.3 sphjak 53: <p><b>Communication:</b><br>
54: Primary communication was via google's gmail chat, with chat transcripts being mailed to the HelloWorld mozdev mailing list. Non chat communication was via direct email, including mailing list.</p>
1.12 chmille4 55:
56: <p>For the majority of the project, communication was good with emails and chats occuring at regular if not daily intervals. As the project deadline
1.10 chmille4 57: approached, interaction increased amongst the majority of the members but dropped off with one member. Ultimately, this lack of correspondence lead to a major
1.11 chmille4 58: feature being dropped. In hindsight better communication during this critical period, would have resulted in a higher quality product and is a lesson I believe
59: all three of us will take away from this.</p>
1.14 ! chmille4 60:
1.11 chmille4 61: <p>Some of the techniques we used would be able to scale with little change, whereas other techniques would have to be completely re-thought.
62: The gmail chat would be very difficult to scale as there is no easy way for people to enter into mult-person chats.
1.10 chmille4 63: As the size of a group increased, chat would have to be transitioned to IRC. The mailing list, however, would scale very nicely and relatively few changes
1.13 chmille4 64: would have to be made as member size expanded. Task allocation and managment was handled by dividing the project up at the beginning between the three members.
1.10 chmille4 65: This strategey would not scale well and would have to be completely changed for a bigger project.</p>
1.4 sphjak 66:
1.14 ! chmille4 67: <p>Overall, this was a very interesting project that forced members to think seriously about the details of how open source works.
! 68: Although not always smooth, the project was an excellent first foray into open source and will encourage
! 69: contribution to open source projects in the future.</p>