Difference between revisions of "GSoC Brainstorming"

From GeeklogWiki
Jump to: navigation, search
m (two links regarding import/export of site content)
(Moved ideas for the install script to their own section - still not really a good project on its own, though)
Line 5: Line 5:
 
* Integrate '''Aloha Editor''', replacing FCKeditor as the "advanced" (WYSIWYG) editor in Geeklog.<br>As [http://eight.pairlist.net/pipermail/geeklog-devel/2011-January/005270.html discussed], this is probably not enough work to keep a student busy for 3 months. For a proper GSoC project, this would need to be expanded.
 
* Integrate '''Aloha Editor''', replacing FCKeditor as the "advanced" (WYSIWYG) editor in Geeklog.<br>As [http://eight.pairlist.net/pipermail/geeklog-devel/2011-January/005270.html discussed], this is probably not enough work to keep a student busy for 3 months. For a proper GSoC project, this would need to be expanded.
 
* Go '''Semantic Web'''. This is somewhat vague: Use available build blocks such as Apache Stanbol (see [http://www.geeklog.net/article.php/iks-workshop-amsterdam Report from the IKS Workshop in Amsterdam]) and the Aloha editor (see [http://semantic-editor.org/ Semantic Editor]) to add semantic information to articles. Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]). Student should have a better idea of what "semantic web" is than the author of these sentences ...
 
* Go '''Semantic Web'''. This is somewhat vague: Use available build blocks such as Apache Stanbol (see [http://www.geeklog.net/article.php/iks-workshop-amsterdam Report from the IKS Workshop in Amsterdam]) and the Aloha editor (see [http://semantic-editor.org/ Semantic Editor]) to add semantic information to articles. Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]). Student should have a better idea of what "semantic web" is than the author of these sentences ...
* '''Install Script Improvements''': The install script already does a lot more than simply install Geeklog. It is also used for upgrades and can help in migrating your Geeklog site from one server to another (MySQL only, though). Here's a couple of ideas of what else it could do:
 
** '''Site Migration''' for PostgreSQL and/or MS SQL
 
** '''Database Migration''': Switch from Postgres to MySQL or MS SQL or the other way around
 
** '''Character Set Conversion''': Say you initially set up your Geeklog site to use ISO-8859-1 (or some other character set) and want to switch to UTF-8 now. All the content would have to be [http://www.geeklog.net/article.php/200410120657418 converted].
 
** ... and lots of small improvements that could be made:
 
*** better error reporting on install problems (also: debugging, mostly for developers)
 
*** more specific and more conservative checks and recommendations for file and directory permissions
 
*** let the user continue with installation even when certain files/directories are not writable: disable the feature that needs it, but finish the installation (where possible)
 
*** not sure if this is really a good idea but maybe the install script could even offer to try and set read/write permissions as required
 
*** build <tt>install/admin/info.php</tt> into the install script
 
*** proper HTML title tags in the install script (they're always the same)
 
*** a technicality: the plugin upload from within Geeklog uses the unpacker class, while the install script only relies on the PEAR Tar and Zip packages, so you may not be able to add some plugin archives in the install script
 
*** add a "maintenance" option at the end of the install or upgrade process where we could offer (re)setting certain options, e.g. when a default changed
 
*** allow for localized install data (currently, a fresh setup is always in English, with English default stories, preferences, etc.)
 
 
* '''E-Mail Subsystem''': Geeklog sometimes has to send out a lot of emails. Instead of sending them all at once (and running into timeouts), we could queue them and send them out in batches. This queue should allow for other job types as well.
 
* '''E-Mail Subsystem''': Geeklog sometimes has to send out a lot of emails. Instead of sending them all at once (and running into timeouts), we could queue them and send them out in batches. This queue should allow for other job types as well.
 
* '''Multi-site Setup''': Run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades.
 
* '''Multi-site Setup''': Run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades.
Line 26: Line 12:
 
* '''Multi user blogs''': Geeklog can handle blogs of several users, actually, if you give one topic to a user then it is almost unlimited. There are a few existing discussions on the forum and also feature requests concerning the improvement of user blogs. E.g. read only topics, using GL for a large site with many users. Basically it is a native function of GL but it need some improvement.
 
* '''Multi user blogs''': Geeklog can handle blogs of several users, actually, if you give one topic to a user then it is almost unlimited. There are a few existing discussions on the forum and also feature requests concerning the improvement of user blogs. E.g. read only topics, using GL for a large site with many users. Basically it is a native function of GL but it need some improvement.
 
* Add '''shopping cart and/or e-commerce functionality''' to Geeklog (in the form of a plugin). Using an existing open source shopping cart or e-commerce web application would probably be a good idea, but the result should be fully integrated with Geeklog's security model ([http://www.geeklog.net/forum/viewtopic.php?showtopic=74449 related forum discussion])
 
* Add '''shopping cart and/or e-commerce functionality''' to Geeklog (in the form of a plugin). Using an existing open source shopping cart or e-commerce web application would probably be a good idea, but the result should be fully integrated with Geeklog's security model ([http://www.geeklog.net/forum/viewtopic.php?showtopic=74449 related forum discussion])
 +
 +
=== Install Script Improvements ===
 +
The install script already does a lot more than simply install Geeklog. It is also used for upgrades and can help in migrating your Geeklog site from one server to another (MySQL only, though). This is a collection of ideas of what else it could. However, that list if somewhat incoherent and, in its current form, doesn't make for a great project. Maybe you can think of that piece that's missing here to make it a useful and promising GSoC project?
 +
 +
* '''Character Set Conversion''': Say you initially set up your Geeklog site to use ISO-8859-1 (or some other character set) and want to switch to UTF-8 now. All the content would have to be [http://www.geeklog.net/article.php/200410120657418 converted] - and the install script could do that for you.
 +
* '''Better error reporting''' on install problems (also: debugging, mostly for developers). This is sort of a bootstrapping problem: With the site being in the process of being installed, it's often tricky to provide useful error messages and a recovery from the problem.
 +
* More specific and more conservative checks and recommendations for file and directory permissions: Right now, the install script gives rather liberal recommendations for permissions. It could check what's actually required and be more precise.
 +
* Let the user continue with installation even when certain files/directories are not writable: Disable the feature that needs it, but finish the installation (where possible)
 +
* Not sure if this is really a good idea but maybe the install script could even offer to try and set read/write permissions as required automatically.
 +
* Build <tt>install/admin/info.php</tt> into the install script
 +
* Add proper HTML title tags in the install script (all pages of the install script currently use the same title, which makes it confusing in the browser's history).
 +
* A technicality: the plugin upload from within Geeklog uses the unpacker class, while the install script only relies on the PEAR Tar and Zip packages, so you may not be able to add some plugin archives in the install script (another bootstrap problem - the location of said class may not be known yet when it's needed).
 +
* Add a "maintenance" option at the end of the install or upgrade process where we could offer (re)setting certain options, e.g. when a default changed, so that the user can opt to change the default for every user (or not).
 +
* Allow for localized install data. Currently, a fresh setup is always in English, with English default stories, preferences, etc.
 +
 +
The vast majority of our users is using MySQL. So the following ideas, while useful for those not on MySQL, aren't that important to us right now:
 +
* '''Site Migration''' should also work for PostgreSQL and/or MS SQL
 +
* '''Database Migration''': Allow switching from Postgres to MySQL or MS SQL or the other way around
  
  

Revision as of 19:28, 28 February 2011

New Ideas

These are new and not fully fleshed-out ideas for the Google Summer of Code. Please note that these ideas are not directly eligible for GSoC as they are. They can be used as the starting point for a proper proposal, though, or for your inspiration if you'd like to submit a project idea of your own.

  • Integrate Aloha Editor, replacing FCKeditor as the "advanced" (WYSIWYG) editor in Geeklog.
    As discussed, this is probably not enough work to keep a student busy for 3 months. For a proper GSoC project, this would need to be expanded.
  • Go Semantic Web. This is somewhat vague: Use available build blocks such as Apache Stanbol (see Report from the IKS Workshop in Amsterdam) and the Aloha editor (see Semantic Editor) to add semantic information to articles. Possible uses: SEO, better linking between articles (also see What's Related). Student should have a better idea of what "semantic web" is than the author of these sentences ...
  • E-Mail Subsystem: Geeklog sometimes has to send out a lot of emails. Instead of sending them all at once (and running into timeouts), we could queue them and send them out in batches. This queue should allow for other job types as well.
  • Multi-site Setup: Run several websites off of one codebase. There's a hack for that, but it's a pain for upgrades.
  • Staging Support: When making significant changes to a site, you don't want to do those on your "live" site, possibly disrupting its service. So you would set up a second site with pretty much the same setup as the original and make the changes there first. How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.
  • Admin toolbox: A collection of mini-plugins for admin tasks (e.g. reset stats, change a default setting for all users, etc.). Should have super easy install, e.g. just drop (upload?) a file in a predefined directory.
  • Migration from/to other systems is always a hot topic. How could we make that easier? We don't want to lock in users into Geeklog, so both import and export should be supported. Things like the mtimport format and CMIS come to mind.
  • Multi user blogs: Geeklog can handle blogs of several users, actually, if you give one topic to a user then it is almost unlimited. There are a few existing discussions on the forum and also feature requests concerning the improvement of user blogs. E.g. read only topics, using GL for a large site with many users. Basically it is a native function of GL but it need some improvement.
  • Add shopping cart and/or e-commerce functionality to Geeklog (in the form of a plugin). Using an existing open source shopping cart or e-commerce web application would probably be a good idea, but the result should be fully integrated with Geeklog's security model (related forum discussion)

Install Script Improvements

The install script already does a lot more than simply install Geeklog. It is also used for upgrades and can help in migrating your Geeklog site from one server to another (MySQL only, though). This is a collection of ideas of what else it could. However, that list if somewhat incoherent and, in its current form, doesn't make for a great project. Maybe you can think of that piece that's missing here to make it a useful and promising GSoC project?

  • Character Set Conversion: Say you initially set up your Geeklog site to use ISO-8859-1 (or some other character set) and want to switch to UTF-8 now. All the content would have to be converted - and the install script could do that for you.
  • Better error reporting on install problems (also: debugging, mostly for developers). This is sort of a bootstrapping problem: With the site being in the process of being installed, it's often tricky to provide useful error messages and a recovery from the problem.
  • More specific and more conservative checks and recommendations for file and directory permissions: Right now, the install script gives rather liberal recommendations for permissions. It could check what's actually required and be more precise.
  • Let the user continue with installation even when certain files/directories are not writable: Disable the feature that needs it, but finish the installation (where possible)
  • Not sure if this is really a good idea but maybe the install script could even offer to try and set read/write permissions as required automatically.
  • Build install/admin/info.php into the install script
  • Add proper HTML title tags in the install script (all pages of the install script currently use the same title, which makes it confusing in the browser's history).
  • A technicality: the plugin upload from within Geeklog uses the unpacker class, while the install script only relies on the PEAR Tar and Zip packages, so you may not be able to add some plugin archives in the install script (another bootstrap problem - the location of said class may not be known yet when it's needed).
  • Add a "maintenance" option at the end of the install or upgrade process where we could offer (re)setting certain options, e.g. when a default changed, so that the user can opt to change the default for every user (or not).
  • Allow for localized install data. Currently, a fresh setup is always in English, with English default stories, preferences, etc.

The vast majority of our users is using MySQL. So the following ideas, while useful for those not on MySQL, aren't that important to us right now:

  • Site Migration should also work for PostgreSQL and/or MS SQL
  • Database Migration: Allow switching from Postgres to MySQL or MS SQL or the other way around


Leftover Ideas

This is a list of other ideas for projects for the Google Summer of Code that have been tossed around in previous years but did not seem so important at this point in time.

If you plan to apply for one of these projects you should provide a good use case. Otherwise, these ideas could serve as a starting point for your own project idea.