The MapServer Website and What You Can Do About It
The page describes the setup and installation of the current MapServer website and lists items that we need help with.
The current website is running on Plone 2.1.4. Most of the layout, installation, and content migration was done by Jeff McKenna, Kari Geurts, Pericles Nationales and myself during November 2004 through June 2005. The MapServer website went live for the project in December of 2005, and since the 4.8 release, the project has used the website to organize documentation, collaborate on software development, and support user contribution in the form of user-contributed documents and comments on existing documents.
Plone Products that provide additional functionality
Plone is a pluggable system that is composed of an object database (ZODB), an object publisher, and a web server. Our content is stored in a file called Data.fs (currently ~600mb at the time of this writing). In addition to this database, we have some Plone products installed that provide additional functionality.
- Plone2Pdf - Allows most of the content types to be output as a PDF using htmldoc. This takes care of our printing needs on the website for the most part (there are a few issues here and there with </pre> content sometimes).
- Gallery - I wrote a Plone product called Gallery that is used to maintain the MapServer website gallery. It is fairly minimal, however, and some updates and changes would be nice to make it easier to use and to view.
- CMFQuestions - Allows the creation of polls that registered users of the site can participate in.
- PloneHelpCenter - This is the /docs section. It is comprised of a number of document types (FAQ, HowTo, etc.) that organize our documentation. PloneHelpCenter was early beta software when it was first installed on the MapServer website. It has continued to evolve, and it currently serves as the documentation for the main Plone.org website itself.
- LinguaPlone - LinguaPlone is a product that supports (almost) seemless management of documents that are in multiple languages. LinguaPlone has a few issues here and there (older versions found no documents if a doc in the users's currently selected language weren't available). The currently installed version of PloneHelpCenter does not support the use of LinguaPlone, but later versions do.
- CMFSquid, CacheSetup - These products support caching of the site in products like squid. The MapServer website gets enough traffic that caching strategies are fairly important. Dynamically rendering pages for every request is CPU and RAM intensive, and serving cached content makes things much snappier -- especially for a site that doesn't change that much.
Website Hardware and system
The website runs on a Sun V880R at the University of Minnesota. While not the fastest box in the world, it is very stable and capable hardware. The machine runs a number of websites for Tom Burk's group, as well as an Oracle instance. We're guests there and we try not to make a mess :) Trent Erickson at UMN is the master admin for the machine, and if something urgent comes up, he should be contacted through Tom Burk, Steve Lime, or Howard Butler.
The Plone application server runs as the user 'hobu'. The reason why I did this was to create a user environment complete with libraries and applications needed to run Plone. This includes Python and utilities like htmldoc. In the future, we will probably move all of this stuff to a user called 'plone' on the local system, but since I've been the only one doing any administration, there hasn't been a need yet.
In addition to Plone, Squid is also used to do caching for the site in conjunction with the two Plone products described above. Trent Erickson at UMN is the one that did the Squid setup. Not all of the content is cached in Squid. For example, if you are logged in to the site, everything you see should be dynamically rendered. Caching is supposed to only happen for anonymous users and only for certain types of content (HelpCenter content, regular Pages, etc).
Call for Participation
Currently, the website is maintained mostly by me with help from Trent Erickson. Content maintenance is done by the MapServer developers and Jeff McKenna. Here is a list of items that I have identified that have yet to be done. We're looking for volunteers that can help with all areas of the website. If you're a system admin, we need you. If you're a Plone/Python hacker, your skills would be great. If you want to tweak documents and help organize things that'd be great too.
The site needs to be migrated to Plone 2.5. Plone 2.5 brings some very useful improvements, mostly related to caching and the nice ability to allow you to reorder items by dragging them around. The migration to Plone 2.5 is a multi-part process, and it will require some additional things along the way.
- PloneHelpCenter needs to be brought forward to a more current version. We want to support LinguaPlone in the /docs section of the site. The new version of PHC also has some cosmetic improvements. During the website's development, we customized the PHC templates quite a bit. There would be some programming/scripting required to get things looking the way they currently do.
- LinguaPlone and the multi-language stuff needs to be cleaned up and streamlined. We really, really, really want to support multilingual content in a relatively painless manner. It is half-assed and horrible right now. Unfortunately, support for the main section of the site that needs work won't be there until the site is upgraded and both Plone, LinguaPlone, and PHC are brought forward to the latest versions.
We desperately need a "How to Contribute to this Website" document. Ideally, this would be written by someone not that familiar with contributing and they document their process as they learn how to do so.
We always need more documents. If you learned how to do something, even if you think it wasn't that significant, someone else probably needs to learn that too at some point. You don't have to only be a software developer to contribute to the MapServer project.
An additional admin with familarity with Plone would be great. Even if you don't know Plone currently, you could take a copy of the site and start playing around and learning.
Someone with Squid experience to help us figure out the caching thing would be nice. Trent and I aren't confident that the approach we've taken is the best, and any opportunity to improve this area would be good.
Implement one of the Plone CVS/SVN viewers to allow the browsing of the source code from within the site.
Write a script to serialize all of /docs into text format that can be packaged with the source code during releases.
Write a Plone product to implement a "Code Snippet" gallery, where members of the site can exchange mapfiles (with pictures of renders), MapScript code, etc.
Clean up outstanding issues with RSS generation. There are a few (many?) areas of the site that have problems generating RSS. Some is caused by Plone bugs, some is caused because that area of the site doesn't support it yet.
Live mirror of the site on TelaScience.
Describe and document which areas of the site are editable by whom and how
...



