Google Summer of Code Ideas
From MovableType
mod_perlite
Abstract
A lot of work has been done on a project to rearchitect how Apache handles CGI. In this project, which is partially complete, a new Apache module would be created a faster and more advanced alternative to mod_cgi and a simpler alternative to mod_fastcgi and mod_perl.
This project provides an opportunity to engineers to create something meaningful that could be used by hundreds and perhaps thousands of users, hosts and Apache users. If you are looking to contribute something that stands to benefit the greatest number of users, this could be it.
More details here: [link]
Benefits
- Make CGI faster
- Make CGI easier to setup
Requirements
- Get mod_perlite to a point where Movable Type can be run on top of it.
- Develop unit tests to ensure long term code stability
- Add support for classic unix configure support
Improved Podcasting Support
Abstract
There is an open source Podcasting plugin that has brought rudimentary turn-key podcasting support for Movable Type. However it is incomplete and could benefit from a number of new features to expands its utility and integration potential with sites like iTunes.
Mentor
- Byrne Reese, byrne at sixapart dot com, AIM:byrnereese
Requirements
-
We need a way to collect additional information about a podcast, including iTunes meta data- Implemented -
Feed templates need to be augmented to display iTunes meta data- Implemented -
Podcasts protected by Basic auth need to be authenticated in order for the system to index them properly- Implemented - Support uploading of MP3s
- Local MP3s should be scanned for meta data and then pre-populate form fields with that information
- Auto-install feed templates with enclosure hooks
.htaccess Editor Framework
Abstract
There are a number of circumstances in which a plugin will need to register .htaccess rules in order to achieve their desired functionality. This framework will provide an abstraction layer for plugins to register their own templatized .htaccess rules.
Mentor
- Byrne Reese, byrne at sixapart dot com, AIM:byrnereese
Use Cases
1. The Feedburner plugin needs to create rewrite rules for the atom template. 2. The Clean Sweep plugin needs to create rewrite rules for moved pages and entries. It also needs to override the default 404 handler. 3. Movable Type's core dynamic publishing system needs to make changes to the .htaccess file to bootstrap static pages and render them dynamically. 4. Privacy control - providing a UI to protect or lock certain pages
Requirements
- The framework should allow for .htaccess rules to be rendered in an abstract manner such that one could support Apache, LIghttpd, and IIS.
- The framework should provide a rule serializer of sorts that is capable of reading rules and then outputting them in the proper syntax according to the web server the user is currently using.
- The framework may need to modify the core MTOS application to publish these .htaccess rules along side of its own.
Action Streams Additions
Abstract
Action Streams is an exciting life streaming plugin that operates similarly to Facebooks news aggregator. It displays a list of events on your Movable Type blog from other social networking services. This project would add support for additional services.
Mentor
- Byrne Reese, byrne at sixapart dot com, AIM:byrnereese
- Mark Paschal
Requirements
- Add support for the following services:
- Last.fm
- Pandora
- Netflix
- others?
Expanded Support for AtomPub
Abstract
Movable Type was the first blogging application to support the Atom Publishing Protocol when it was initially conceived over 4 years ago. We continue to lead in the standards area, and are looking to expand the capabilities of Atom within Movable Type. Generally AtomPub is seen as a way to publish entries only. In truth, AtomPub can be used to create and manage anything, from blog posts to users. The AtomPub framework has already been abstracted away from the core platform, now we would like to add support for additional publishing features.
Mentor
- Byrne Reese, byrne at sixapart dot com, AIM:byrnereese
- Mark Paschal
Requirements
- Add support for AtomPub Commenting
- Add support for an asset collection
- Add support for creating users
- Add support for creating blogs
Page Designer
Abstract
Movable Type is used by some of the largest publishers on the planet, and some of the most popular emerging new media sites. These sites have pushed Movable Type well beyond traditional blogging. Their production process is complex and needs to accomodate a vast amount of content that changes sometimes on a minute-by-minute bases.
This project would provide a visual drag and drop framework for organizing a page to would control what content appears where. This system would bypass the usual mechanism for displaying entries in reverse chronological order.
Vision
Take a look at a news site like Time, CNN, The New York Times, or Talking Points Memo, each of these have the need to feature a number of different stories in very specific
A simple HTML page could be marked up with classes that could identify drop targets for stories on a page. Imagine adding the class "feature-target" to an HTML div, then MT could scan the DOM of the page, find all the drop targets, and render an approximation of the page that a user could then drop stories/entries into. The layout of the page would be saved and the entries render according to their designated location.
Select Blogs to Post To
Abstract
Movable Type is one of the most power content aggregation tools on the planet. It utilizes a rule based system for pulling content from multiple repositories and then aggregating them together on a single page. However this has limitations and is often unintuitive to users. Ideally Movable Type would support two forms of multi-blogging:
- pulling content from multiple blogs based upon a set of rules
- allowing authors to designate which blogs they would like a single entry to appear in
In this project a student will create a way by which a user can elect which blogs to publish an entry in.
Requirements
- Create a user interface control on the posting screen that let's a user select which blogs (among the ones they have permission to) they would like a post to appear in.
- The system must not replicate the blog post.
- Users should be required to select at least one blog for an entry to appear in.
Implementation Thoughts
The idea of creating an entry to blog mapping table comes to mind.
Ideally this feature would provide the multicast capability as a plugin. Changes to the core application are naturally encouraged in order to support the plugin.
Drag and Droppable Dashboard
Abstract
This project would allow a user to drag and drop dashboard widgets around to control their location. These preferences would then be saved on a user-by-user basis.
Category Specific Archive Templates
Abstract
Many bloggers consider their category homepages or "archives" as mini-sites in an of themselves. They therefore would like to create custom designs and user experiences for each of their categories. Take for example a classic newspaper in which there is a "Sports" section and a "Movies" section. Both of these have unique requirements, goals, and user experiences associated with them.
This project would provide MT administrators with a way to specify a specific archive template to be used with a specific Category within the system.
Requirements
- The system must support the notion of a default category archive template that would be used in the event that a specific template has not been specified for a category.
- The UI must provide a simple mechanism for an admin to map a template with a specific category. That template must then be used to render that category archive.
CGI::Application and CGI::Application::Dispatch Support
Abstract
MTOS needs to migrate from its homebrewed application framework and numerous front ends to the standard perl module CGI::Application and CGI::Application::Dispatch.
Mentor
- Timothy Appnel, tim at appnel dot com
- Reed A. Cartrwright, reed at scit dot us
Requirements
- TBD (tima)
Background Task Modernization
Abstract
MTOS's support for background tasks has not kept pace with other advances in MTOS. The background task framework needs to be optimized to make use of FastCGI, mod_perl, and regular CGI. Much of the work done by background tasks can be migrated to the new task queue framework, The Schwartz.
Javascript Framework
Abstract
MTOS needs to standardize on an existing Javascript framework and replace the existing library of homebrewed code. JQuery appears to have more support from the developer community, but there is also a push by Six Apart to use YUI instead.