Differences between revisions 2 and 13 (spanning 11 versions)
Revision 2 as of 2006-04-21 10:28:55
Size: 1048
Editor: barry
Comment:
Revision 13 as of 2006-06-21 15:12:19
Size: 3560
Editor: mindlace
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma page-filename DEV/versions/160
= Summer of Code ideas =
Here are some ideas in case anybody is interested in helping Mailman under Google's [[http://code.google.com/soc/|2006 Summer of Code]] program. See also the [[../Mailman 2.2|Mailman 2.2]] page for additional ideas. [[mailto:barry@python.org|Email me]] directly if you're interested.
#pragma page-filename DEV/versions/172
[[http://mindlace.net|Ethan Fremen]] is working on mailman for his [[http://code.google.com/soc/psf/appinfo.html?csaid=7124F8A458101E5A|Summer of Code Project]]. The project will use web standards, kid and mod_python to deliver a superior HTTP user experience with enhanced internationalization.
Line 5: Line 4:
 * Rewrite the web GUI to use a modern, standard templating toolkit like [[http://kid.lesscode.org/|Kid]] or [[http://cheetahtemplate.org/|Cheetah]]. The key thing here is that it must provide [[../Internationalization|internationalization]] support, hopefully much better than forcing translators to translate entire templates under the Mailman 2.1 system.
 * Provide a [[http://www.sqlite.org|SQLite]] member adaptor, either using [[http://www.pysqlite.org|PySQLite]] directly, or an abstract framework like [[http://www.sqlobject.org|SQLObject]] or [[http://sqlalchemy.org|SQLAlchemy]].
 * Write a [[http://modpython.org|mod_python]] adaptor to Mailman's CGI interface.
Any other ideas?
== Status June 21, 2006 ==
After realizing how utterly horked the current templating situation is, I've started redoing the templates as xhtml/kid. Once I'm done with that, I'll write the glue code that connects it into mailman, leveraging the existing work in Gui/ .

As this is my first i18n project, I wasn't quite aware of what it entailed. Right now I'm focusing on making it so a simple iteration over all elements in the pre-rendered DOM constitutes the entirety of the text that needs to be internationalized for the web UI.

== Technical Plan ==
 * Build a fully [[http://www.w3.org/WAI/|accessible]] web interface using xhtml without CSS or JavaScript.
 * Enhance that interface with CSS to make it visually intuitive.
 * Add JavaScript that provides additional ease of use.
 * Modules/Supporting logic modules, to be implemented or borrowed:
  * Converters
   * RFC-8222 into an ElementTree
   * .mbox files into an ElementTree
   * Elemental RFC-8222, mbox into xhtml
   * Elemental mbox into xhtml
  * Handlers
   * feed handler
   * authentication handler
  * Modules
   * glue code to patch the 1-user-per-list situation
== Notes ==
I've had to move away from the incremental approach and towards a reimplementation. I'm still working strictly from the existing implementation for feature-set, but because of the templating situation, I'll get there faster if I re-write the templates.

The decision to move to mod_python is based on the need for feed handlers that can maintain a semi-persistent cache and because I get access to Apache's internals. The existing CGI interface will be untouched, with the idea that eventually a wrapper will be found/written that provides backwards compatibility.

=== Existing templating situation ===
 * There's a mismash of MM- pseudo tags and python str/dict replacement for variable substitutions.
 * Many pages are generated by a sort of proto-dom.
 * All the pages are mid-90's tag soup, with upper case and lower case tags and invalid html attributes.
 * Many pieces of code generate strings with html markup. This is bad form and makes i18n/multiple interfaces harder.
== Timeline ==
 * May 23 - June 21: Rewrite mailman interface using xhtml templates with the following attributes:
  * Provide consistent navigation throughout the Mailman interface
  * Enhance the Administrator's user listing to allow for bulk modification and to highlight users that have been set nomail.
  * Collapse duplicate pages
  * Write pages in seperable, embeddable pieces.
 * June 23- June 30: Establish the scope of the glue modules, and write interfaces/stub classes.
 * July 3 --( 14: Write handlers and RFC8222/ mbox \)--> ElementTree converter
 * July 17 - 21: Fill in glue modules, with knowledge of how the (user)db-in-SQLAlchemy project is going.
 * July 24 - 31: Add page-editing, easy support for stylesheet changes, site and list specific themes.
 * August 1 - 4: Update documentation to reflect changes.
 * August 7 - 11: Add ease-of-use JavaScript/CSS.
 * August 14 - 21: Merge branch to trunk, and make a release of some sort.
''"a plan is just a list of things that never happen" - Benecio del Torro in The Way of the Gun''

Ethan Fremen is working on mailman for his Summer of Code Project. The project will use web standards, kid and mod_python to deliver a superior HTTP user experience with enhanced internationalization.

Status June 21, 2006

After realizing how utterly horked the current templating situation is, I've started redoing the templates as xhtml/kid. Once I'm done with that, I'll write the glue code that connects it into mailman, leveraging the existing work in Gui/ .

As this is my first i18n project, I wasn't quite aware of what it entailed. Right now I'm focusing on making it so a simple iteration over all elements in the pre-rendered DOM constitutes the entirety of the text that needs to be internationalized for the web UI.

Technical Plan

  • Build a fully accessible web interface using xhtml without CSS or JavaScript.

  • Enhance that interface with CSS to make it visually intuitive.
  • Add JavaScript that provides additional ease of use.

  • Modules/Supporting logic modules, to be implemented or borrowed:
    • Converters
      • RFC-8222 into an ElementTree

      • .mbox files into an ElementTree

      • Elemental RFC-8222, mbox into xhtml
      • Elemental mbox into xhtml
    • Handlers
      • feed handler
      • authentication handler
    • Modules
      • glue code to patch the 1-user-per-list situation

Notes

I've had to move away from the incremental approach and towards a reimplementation. I'm still working strictly from the existing implementation for feature-set, but because of the templating situation, I'll get there faster if I re-write the templates.

The decision to move to mod_python is based on the need for feed handlers that can maintain a semi-persistent cache and because I get access to Apache's internals. The existing CGI interface will be untouched, with the idea that eventually a wrapper will be found/written that provides backwards compatibility.

Existing templating situation

  • There's a mismash of MM- pseudo tags and python str/dict replacement for variable substitutions.
  • Many pages are generated by a sort of proto-dom.
  • All the pages are mid-90's tag soup, with upper case and lower case tags and invalid html attributes.
  • Many pieces of code generate strings with html markup. This is bad form and makes i18n/multiple interfaces harder.

Timeline

  • May 23 - June 21: Rewrite mailman interface using xhtml templates with the following attributes:
    • Provide consistent navigation throughout the Mailman interface
    • Enhance the Administrator's user listing to allow for bulk modification and to highlight users that have been set nomail.
    • Collapse duplicate pages
    • Write pages in seperable, embeddable pieces.
  • June 23- June 30: Establish the scope of the glue modules, and write interfaces/stub classes.
  • July 3 14: Write handlers and RFC8222/ mbox \> ElementTree converter

  • July 17 - 21: Fill in glue modules, with knowledge of how the (user)db-in-SQLAlchemy project is going.
  • July 24 - 31: Add page-editing, easy support for stylesheet changes, site and list specific themes.
  • August 1 - 4: Update documentation to reflect changes.
  • August 7 - 11: Add ease-of-use JavaScript/CSS.
  • August 14 - 21: Merge branch to trunk, and make a release of some sort.

"a plan is just a list of things that never happen" - Benecio del Torro in The Way of the Gun

MailmanWiki: DEV/Summer of Code (last edited 2015-01-12 00:48:38 by SumanaHarihareswara)