http://wiki.geeklog.net/api.php?action=feedcontributions&user=Dirk&feedformat=atomGeeklogWiki - User contributions [en]2024-03-29T07:57:53ZUser contributionsMediaWiki 1.27.5http://wiki.geeklog.net/index.php?title=Upgrading_Mantis&diff=6366Upgrading Mantis2014-02-15T13:38:27Z<p>Dirk: locatin of the Mantis upgrading instructions changed</p>
<hr />
<div>The [http://project.geeklog.net/tracking/ Geeklog Bugtracker] is running [http://www.mantisbt.org/ Mantis]. Here are some tips for upgrading Mantis:<br />
<br />
<br />
== Upgrading Mantis ==<br />
<br />
# log into the project account for the server<br />
# follow the [http://www.mantisbt.org/docs/master-1.2.x/en/administration_guide/admin.install.upgrade.html upgrading instructions]<br />
<br />
=== Additional Steps ===<br />
<br />
# <del>As long as [http://www.mantisbt.org/bugs/view.php?id=11909 this bug] has not been addressed, apply the "quick fix" I posted [http://www.mantisbt.org/bugs/view.php?id=11909#c25491 there] to <tt>core/bug_revision_api.php</tt></del><br />
# Copy the Geeklog favicon from <tt>images/favicon.ico</tt> to the same location in the new directory (overwriting the one that ships with Mantis).<br />
# Add the "Hosted by pair.com" line to <tt>core/html_api.php</tt> (copy from previous version; search for "<tt>webmaster_email</tt>") to honor our agreement with our sponsor.<br />
# <del>Cosmetics: In <tt>core/user_api.php</tt> search for "<tt>identicon</tt>" and replace it with "<tt>wavatar</tt>" (see [http://www.mantisbt.org/bugs/view.php?id=14032 this feature request]).</del><br />
<br />
<br />
[[Category:Internals]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Settings_for_https&diff=6362Settings for https2014-01-02T22:38:11Z<p>Dirk: Documented settings to make geeklog.net work over https</p>
<hr />
<div>= Settings for using https on geeklog.net =<br />
<br />
== In Geeklog ==<br />
<br />
=== Configuration ===<br />
<br />
* Configuration > Geeklog Configuration > Site > Site: Make sure both "Site URL" and "Admin URL" use an URL starting with "https"<br />
* Configuration > Geeklog Configuration > Miscellaneous > Cookies: Set "Cookie Secure" to "True"<br />
<br />
=== Templates, CSS, etc. ===<br />
<br />
Make sure all images are references using https: URLs. Otherwise, browsers will warn their users about a mix of secure and insecure content on the page.<br />
<br />
<br />
== On the Server ==<br />
<br />
In .htaccess, have this:<br />
<pre><br />
RewriteEngine On<br />
<br />
RewriteCond %{HTTPS} off<br />
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]<br />
</pre><br />
<br />
Note that the [L] is not strictly necessary for https to work, but will prevent issues with other rewrite rules, e.g. those that make sure geeklog.net always redirects to www.geeklog.net<br />
<br />
<br />
== Other Considerations ==<br />
<br />
The above rewrite rule ensures that all links using http: will automatically redirect to their https: counterpart. Since this will cause another HTTP request, it's desirable to update old links - at least those in the geeklog.net database. The "Migrate" option in the install script should be able to do that.<br />
<br />
<br />
[[Category:Internals]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Crowdsourcing_Translations&diff=6282Crowdsourcing Translations2013-06-22T16:01:53Z<p>Dirk: added some considerations</p>
<hr />
<div>== What is it? ==<br />
<br />
This is a plugin that allows "crowdsourcing" the translation of Geeklog, i.e. once installed, it allows users to contribute translations of Geeklog's user interface texts for other languages.<br />
<br />
This is a being developed by Benjamin Talic as a [[SoC crowdsourcing translations|project]] during the [[Google Summer of Code]] 2013.<br />
<br />
<br />
== Design Decisions ==<br />
<br />
* Any logged-in user should be able to contribute a translation<br />
* Ideally, the plugin should also allow translations of plugins (bundled and 3rd party). We'll start with core texts but try to keep things generic, adding plugin support later when possible.<br />
<br />
<br />
== Considerations ==<br />
<br />
* Ideally, translators should be able to see the text strings in context to help with the translation.<br />
** If that turns out not to be possible, we'll show them without context.<br />
* It's acceptable if the translation option slows things down. If it slows down things noticably, add a "translation mode", so users can decide between using the site normally or helping with the translation.<br />
<br />
<br />
=== To Be Decided ===<br />
<br />
* Should users be able to freely create new languages? Or do we need some sort of approval process?<br />
<br />
<br />
[[Category:Development]] [[Category:Summer of Code]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Crowdsourcing_Translations&diff=6281Crowdsourcing Translations2013-06-16T17:04:46Z<p>Dirk: started listing some design decisions</p>
<hr />
<div>== What is it? ==<br />
<br />
This is a plugin that allows "crowdsourcing" the translation of Geeklog, i.e. once installed, it allows users to contribute translations of Geeklog's user interface texts for other languages.<br />
<br />
This is a being developed by Benjamin Talic as a [[SoC crowdsourcing translations|project]] during the [[Google Summer of Code]] 2013.<br />
<br />
<br />
== Design Decisions ==<br />
<br />
* Any logged-in user should be able to contribute a translation<br />
* Ideally, the plugin should also allow translations of plugins (bundled and 3rd party). We'll start with core texts but try to keep things generic, adding plugin support later when possible.<br />
<br />
<br />
=== To Be Decided ===<br />
<br />
* Should users be able to freely create new languages? Or do we need some sort of approval process?<br />
<br />
<br />
[[Category:Development]] [[Category:Summer of Code]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Crowdsourcing_Translations&diff=6280Crowdsourcing Translations2013-06-16T17:01:08Z<p>Dirk: we need to start somewhere - created a landing page for this project</p>
<hr />
<div>== What is it? ==<br />
<br />
This is a plugin that allows "crowdsourcing" the translation of Geeklog, i.e. once installed, it allows users to contribute translations of Geeklog's user interface texts for other languages.<br />
<br />
This is a being developed by Benjamin Talic as a [[SoC crowdsourcing translations|project]] during the [[Google Summer of Code]] 2013.<br />
<br />
<br />
== Design Decisions ==<br />
<br />
<br />
[[Category:Development]] [[Category:Summer of Code]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_install_script_refinements&diff=6277SoC install script refinements2013-04-18T10:24:36Z<p>Dirk: added making a Geeklog RPM</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
The install script is one of the very first things a new Geeklog user encounters. Therefore, it's important that it's easy to use, supports the user in installing, updating and migrating a Geeklog site while being robust and providing helpful hints and error messages.<br />
<br />
<br />
== Incentive ==<br />
<br />
The current install script was originally implemented as a GSoC project in 2007 and further improved upon in GSoC 2008. We're still pretty happy with it, but there's always room for improvement. And this is what this GSoC project is about.<br />
<br />
Think ''evolution'' not ''revolution''.<br />
<br />
<br />
== Details ==<br />
<br />
The following is a rather random list of - mostly minor - issues where the install script could be improved.<br />
<br />
=== Error Handling and Usability ===<br />
<br />
* '''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.<br />
* 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.<br />
* 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)<br />
* The install script could possibly even offer to attempt to fix read/write permissions where they do not match the required setting. Note that this may not be possible on some hosting platforms.<br />
<br />
=== HTML and CSS ===<br />
<br />
* Bring the '''design''' more in line with Geeklog's new default theme "Modern Curve" (as of Geeklog 2.0.0).<br />
* 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).<br />
<br />
=== Localization ===<br />
<br />
* '''Character Set Conversion''': Say you initially set up your Geeklog site to use ISO-8859-1 and want to switch to UTF-8 now. All the content would have to be [http://www.geeklog.net/article.php/200410120657418 converted manually]. The install script could do that for you instead.<br />
* Allow for '''localized install data'''. Currently, a fresh setup is always in English, with English default stories, preferences, etc.<br />
<br />
=== Miscellaneous ===<br />
<br />
* Build <tt>install/admin/info.php</tt> into the install script.<br />
* 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).<br />
* 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).<br />
<br />
=== Database Migration (optional) ===<br />
<br />
The vast majority of our users is using MySQL. So the following ideas, while useful for those who cannot or do not want to use MySQL, are less important right now. Consider them optional:<br />
<br />
* The '''Site Migration''' feature should also work for PostgreSQL and/or MS SQL<br />
* Implement a '''Database Migration''', i.e. allow switching from Postgres to MySQL or MS SQL or the other way around<br />
<br />
=== Create an RPM ===<br />
<br />
Since we're doing GSoC under the Fedora umbrella this year, it would be nice to create a Geeklog RPM to make Geeklog installation even easier, especially under Fedora.<br />
<br />
Note: People did create Geeklog RPMs in the past, but that was in the days before the new install script was introduced.<br />
<br />
=== Your idea here ===<br />
<br />
As explained above, we are not looking for an entirely new install script or any radical changes in this project. We are, however, open to new ideas. Someone who's new to Geeklog (that would be ''you'') can probably look at the install process from a fresh perspective and suggest improvements. Let us hear them.<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''low to medium''<br />
<br />
The proposed changes aren't overly difficult but require a lot of attention to detail and testing.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_php_sessions&diff=6276SoC php sessions2013-04-18T10:21:45Z<p>Dirk: fixed mentor</p>
<hr />
<div><center>(Return to the main idea page for the [[Google Summer of Code]])</center><br />
<br />
== Overview ==<br />
Geeklog currently uses custom session management to maintain users session information. The custom session implementation is antique and needs to be upgraded to a fully supported session management system such as the one provided by [http://www.php.net/manual/en/book.session.php PHP Sessions]. The implementation needs to be secure and should cache user data between page loads of a session.<br />
<br />
== Objective ==<br />
Implement new session handling in Geeklog.<br />
<br />
This project could be extended by adding the ability for Geeklog to support http and https for the same site. By forcing logged-in users to use https, session hijacking can be prevented.<br />
<br />
== Level of Difficulty ==<br />
''medium to high''<br />
<br />
Geeklog's existing session software must be understood before being replaced. Student's taking on this project will also have to ensure plugin compatibility with the new session implementation.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
== Further Reading ==<br />
* [http://www.php.net/manual/en/book.session.php PHP Sessions]<br />
* [http://phpsec.org/projects/guide/4.html PHP Security Guide: Sessions]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6275Google Summer of Code2013-04-18T08:12:47Z<p>Dirk: cleanup, now that we're in GSoC 2013 under the Fedora umbrella</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012. We applied for participation again in 2013 but were not selected. Fortunately, [http://www.google-melange.com/gsoc/org/google/gsoc2013/fedora The Fedora Project] offered us one slot under their umbrella, allowing us to participate in GSoC 2013 under the Fedora umbrella. Thanks, Fedora!<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of project ideas that we have picked for our cooperation with Fedora in GSoC 2013 and that we feel would add useful functionality to Geeklog. Please note that only '''one''' of these projects will be selected!<br />
<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* [[SoC crowdsourcing translations|Crowdsourcing Translations]]<br />
<br />
'''Note:''' Since we have only one student slot for Geeklog under the Fedora umbrella, we would prefer if you'd pick one of the above three ideas for your proposal. If you decide to apply with another idea, you need to make a really strong case ...<br />
<br />
<br />
=== Other Ideas ===<br />
<br />
The following or other GSoC ideas that we have to put on the back burner for now. We may pick those up again in a future GSoC (should Google decide to run the program again):<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* Also see [[GSoC Brainstorming]] for more ideas. These aren't fully fleshed-out but can serve as a starting point for your own project proposal.<br />
<br />
<br />
== Mentors ==<br />
<br />
The Geeklog project under the Fedora umbrella will be mentored by [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun].<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thank you.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ] about the program. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite. Depending on the project you apply for, there may be other required skills, e.g. JavaScript or HTML.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control; we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 2.0.0) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List] and introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by Geeklog's GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered when you registered for GSoC.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6274Google Summer of Code2013-04-14T07:27:03Z<p>Dirk: we didn't make it into GSoC 2013</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012. We applied for participation again in 2013 but were not selected.<br />
<br />
If you are a student wanting to participate in GSoC 2013, please head over to the [http://www.google-melange.com/ official GSoC homepage] and look at the projects that the 177 selected organizations have to offer.<br />
<br />
The below projects are still of interest to us at Geeklog, so if you are interested in helping us implement them, please let us know.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* [[SoC crowdsourcing translations|Crowdsourcing Translations]]<br />
* Also see [[GSoC Brainstorming]] for more ideas. These aren't fully fleshed-out but can serve as a starting point for your own project proposal.<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=12362 Kenji Ito]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=14653 Stan Palatnik]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thank you.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ] about the program. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite. Depending on the project you apply for, there may be other required skills, e.g. JavaScript or HTML.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control; we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 2.0.0) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List] and introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by Geeklog's GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered when you registered for GSoC.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Upgrading_Mantis&diff=6273Upgrading Mantis2013-04-14T07:23:28Z<p>Dirk: cosmetic change re: gravatar icon no longer required</p>
<hr />
<div>The [http://project.geeklog.net/tracking/ Geeklog Bugtracker] is running [http://www.mantisbt.org/ Mantis]. Here are some tips for upgrading Mantis:<br />
<br />
<br />
== Upgrading Mantis ==<br />
<br />
# log into the project account for the server<br />
# follow the [http://www.mantisbt.org/manual/manual.installation.upgrading.php upgrading instructions]<br />
<br />
=== Additional Steps ===<br />
<br />
# <del>As long as [http://www.mantisbt.org/bugs/view.php?id=11909 this bug] has not been addressed, apply the "quick fix" I posted [http://www.mantisbt.org/bugs/view.php?id=11909#c25491 there] to <tt>core/bug_revision_api.php</tt></del><br />
# Copy the Geeklog favicon from <tt>images/favicon.ico</tt> to the same location in the new directory (overwriting the one that ships with Mantis).<br />
# Add the "Hosted by pair.com" line to <tt>core/html_api.php</tt> (copy from previous version; search for "<tt>webmaster_email</tt>") to honor our agreement with our sponsor.<br />
# <del>Cosmetics: In <tt>core/user_api.php</tt> search for "<tt>identicon</tt>" and replace it with "<tt>wavatar</tt>" (see [http://www.mantisbt.org/bugs/view.php?id=14032 this feature request]).</del><br />
<br />
<br />
[[Category:Internals]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6268Google Summer of Code2013-04-02T09:00:18Z<p>Dirk: Stan, a former GSoC student, is back as a potential mentor, yay!</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012, but we have applied again for participation in GSoC 2013. Please note that the list of accepted organizations will only be published on April 8 - until then, we won't know whether or not Geeklog will be in GSoC 2013.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* [[SoC crowdsourcing translations|Crowdsourcing Translations]]<br />
* Also see [[GSoC Brainstorming]] for more ideas. These aren't fully fleshed-out but can serve as a starting point for your own project proposal.<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=12362 Kenji Ito]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=14653 Stan Palatnik]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thank you.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ] about the program. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite. Depending on the project you apply for, there may be other required skills, e.g. JavaScript or HTML.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control; we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 2.0.0) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List] and introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by Geeklog's GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered when you registered for GSoC.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6267Google Summer of Code2013-04-02T08:57:39Z<p>Dirk: 2.0.0 is the current version now</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012, but we have applied again for participation in GSoC 2013. Please note that the list of accepted organizations will only be published on April 8 - until then, we won't know whether or not Geeklog will be in GSoC 2013.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* [[SoC crowdsourcing translations|Crowdsourcing Translations]]<br />
* Also see [[GSoC Brainstorming]] for more ideas. These aren't fully fleshed-out but can serve as a starting point for your own project proposal.<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=12362 Kenji Ito]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thank you.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ] about the program. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite. Depending on the project you apply for, there may be other required skills, e.g. JavaScript or HTML.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control; we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 2.0.0) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List] and introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by Geeklog's GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered when you registered for GSoC.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Main_Page&diff=6266Main Page2013-04-02T08:56:54Z<p>Dirk: typo</p>
<hr />
<div>[[Image:Logo.gif]]<br />
<br />
== Geeklog Wiki has migrated to new hosting. ==<br />
<br />
Please report any wiki issues in the Geeklog forum thread.<br />
[http://www.geeklog.net/forum/viewtopic.php?showtopic=94454 http://www.geeklog.net/forum/viewtopic.php?showtopic=94454]<br />
<br />
== Geeklog Documentation ==<br />
<br />
This is the main entry for Documentation for the [http://www.geeklog.net/ Geeklog] CMS and weblog engine. The current version is 2.0.0. There have been some changes with blocks and topics between Geeklog 2.0.0 and 1.8.2sr1 so not all plugins may work with 2.0.0. If you are upgrading your site make sure all the plugins you use are compatible with Geeklog 2.0.0<br />
<br />
This documentation is a result of community action. Everyone is invited to [http://wiki.geeklog.net/wiki/index.php?title=Special:Userlogin sign up] and participate. If you see an omission you can fill it in. If you see a mistake, correct it. If you see where things could be better organized, change it. If you have a note about a particular configuration, add it. In other words: We need your help to make it better!<br />
<br />
* [[Geeklog Documentation]]:<br />
*# [[Introduction]]<br />
*# [[Installation]]<br />
*# [[Administration]]<br />
*# [[Users Documentation|User's Documentation]]<br />
*# [[Programmers/Developers Documentation]]<br />
* Quick Links:<br />
*# [[Complete Table of Contents]]<br />
*# [[Special:AllPages|List of all Articles]]<br />
*# [[Getting Started]] with Geeklog Development<br />
*# [[Google Summer of Code]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Installing_from_the_Mercurial_Repository&diff=6261Installing from the Mercurial Repository2013-03-29T18:38:02Z<p>Dirk: the PEAR classes are in a repository now, but downloading them as a tarball is still the simplest option</p>
<hr />
<div>== Nightly Tarball ==<br />
<br />
The easiest way to install the current development version of Geeklog is to use the [[Nightly Tarball]]. It is actually created every hour (if there were changes) and packaged like a normal Geeklog release, so you can simply download it and follow [http://www.geeklog.net/docs/english/install.html the installation instructions].<br />
<br />
<br />
== Using the Mercurial Repository ==<br />
<br />
=== Checking out ===<br />
<br />
Assuming you have [http://mercurial.selenic.com/ Mercurial] installed but don't have a developer's account, you can check out the current development version like so:<br />
<br />
<pre>hg clone http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog</pre><br />
<br />
This will create a directory named "geeklog" in the current directory.<br />
<br />
=== .dist files ===<br />
<br />
You need to make copies of the following three files:<br />
<br />
<pre>cd geeklog<br />
cp db-config.php.dist db-config.php<br />
cp public_html/siteconfig.php.dist public_html/siteconfig.php<br />
cp system/lib-custom.php.dist system/lib-custom.php</pre><br />
<br />
These files have been renamed so that you can run Geeklog off of a checked-out repository without having to deal with possible merge conflicts in those files (or, even worse, accidentally checking in db-config.php with your database password).<br />
<br />
=== PEAR ===<br />
<br />
Geeklog requires some PEAR classes to work. You can either [http://project.geeklog.net/nightly/geeklog-pear.tar.gz download] a complete package or check them out from [http://project.geeklog.net/cgi-bin/hgwebdir.cgi/pear/ this repository]. Downloading the tarball is probably the easier option:<br />
<br />
<pre>cd geeklog/system/pear<br />
wget http://project.geeklog.net/nightly/geeklog-pear.tar.gz<br />
tar xfz geeklog-pear.tar.gz</pre><br />
<br />
Note: These classes are normally included in the Geeklog release tarball as well as in the nightly tarball. You only need to download them when checking Geeklog out of the Mercurial repository.<br />
<br />
=== Installation ===<br />
<br />
Now you can proceed with the [http://www.geeklog.net/docs/english/install.html installation] as usual.<br />
<br />
<br />
[[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6260GSoC Brainstorming2013-03-29T15:28:16Z<p>Dirk: translations idea has its own page now</p>
<hr />
<div>== New Ideas ==<br />
<br />
'''Please note:''' These are new and not fully fleshed-out project ideas for the [[Google Summer of Code]]. We think that these would be useful additions to Geeklog, so we are interested in project proposals based on these ideas. In the state that they are outlined here, though, they would require more work to turn them into a proper proposal. You can use them for inspiration for a project proposal of your own.<br />
<br />
<br />
=== Multi-Site Setup ===<br />
<br />
Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
<br />
=== Staging Support ===<br />
<br />
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.<br />
<br />
How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.<br />
<br />
=== Migration ===<br />
<br />
'''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.<br />
<br />
Things like [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
<br />
=== Alternative WYSIWYG Editor ===<br />
<br />
Integrate '''Aloha Editor''', replacing FCKeditor/CKEditor as the "advanced" (WYSIWYG) editor in Geeklog.<br />
<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 upon.<br />
<br />
=== Semantic Web ===<br />
<br />
Go '''Semantic Web'''. This is a somewhat vague idea: Use available building 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.<br />
<br />
Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]).<br />
<br />
A student working on this project should have a better idea of what "semantic web" is than the author of these sentences ...<br />
<br />
=== Mass-E-Mail Support ===<br />
<br />
Implement an '''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.<br />
<br />
=== Admin Toolbox ===<br />
<br />
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.<br />
<br />
=== Multi-User Blogs ===<br />
<br />
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.<br />
<br />
=== Read-Only Mode ===<br />
<br />
Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
<br />
=== Undo ===<br />
<br />
Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.<br />
<br />
This could possibly be expanded to a full-fledged revision control or something like the [http://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&action=history history] function of MediaWiki.<br />
<br />
There are already some hooks in place to help implement this, see [[PLG_itemSaved]], although they are not yet implemented everywhere.<br />
<br />
=== Articles Plugin ===<br />
<br />
Articles (also called ''stories'') are built into Geeklog. There's no good reason for this, other than that it has always been like that. The idea here is to move all article support to a plugin. In addition to it being more consistent, Geeklog would also become more modular and you could disable articles in order to use Geeklog only as a web framework.<br />
<br />
A big concern with this idea is backward compatibility due to the necessary change of the URLs of all the articles on a site. This would need to be addressed in a way such that it also works for sites that can not use URL rewriting.<br />
<br />
Note that this idea is not new and even somewhat controversial. It may also not as easy to implement as it may sound at first.<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6259Google Summer of Code2013-03-29T15:27:55Z<p>Dirk: added: Crowdsourcing Translations</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012, but we have applied again for participation in GSoC 2013. Please note that the list of accepted organizations will only be published on April 8 - until then, we won't know whether or not Geeklog will be in GSoC 2013.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* [[SoC crowdsourcing translations|Crowdsourcing Translations]]<br />
* Also see [[GSoC Brainstorming]] for more ideas. These aren't fully fleshed-out but can serve as a starting point for your own project proposal.<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=12362 Kenji Ito]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thank you.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ] about the program. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite. Depending on the project you apply for, there may be other required skills, e.g. JavaScript or HTML.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control; we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 1.8.2sr1) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List] and introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by Geeklog's GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered when you registered for GSoC.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_crowdsourcing_translations&diff=6258SoC crowdsourcing translations2013-03-29T15:26:44Z<p>Dirk: new idea: crowdsourcing translations; credit: Wim Niemans</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
Geeklog has been translated into [[What Languages are Available?|over 30 languages]], but many of those translations haven't been updated in a while. The [[Translations|current way]] of editing PHP file is just too awkward, error prone, and not very intuitive (since you can't see the context in which a text string is used). <br />
<br />
<br />
== Incentive ==<br />
<br />
We're looking for a way to make translating Geeklog easier, especially for people who do not have a knowledge of PHP. Also, for new translations, the sheer amount of text to translate can be discouraging.<br />
<br />
The idea is to address both of these problems by crowdsourcing.<br />
<br />
<br />
== Details ==<br />
<br />
''(all of this is based on an idea and concept by [http://www.geeklog.net/users.php?mode=profile&uid=4561 Wim Niemans] - thanks!)''<br />
<br />
=== Basics ===<br />
<br />
The basic idea is to have all the texts and their translations in a database, with all the translated terms in a single row, like a glossary.<br />
<br />
=== Crowd ===<br />
<br />
The crowd comes into play when a user registers who speaks another language and is willing to help with the translation.<br />
<br />
* The user could be shown one term at a time in a block, e.g. in Geeklog's side bar, and asked to translate it or to confirm a translation (for quality assurance).<br />
* Another option could be to pull all the untranslated text for the current page out of the database and offer it up for translation, similar to what the Jenkins project does (see the "Help us localize this page" option in [http://project.geeklog.net:8080/ our Jenkins]).<br />
* Another option could be to combine this with a CAPTCHA (similar to how [http://www.google.com/recaptcha reCaptcha] asks for identification of scanned text, this could ask for translations).<br />
<br />
To make this more attractive, all this could even be "gamified", i.e. a user could earn points or privileges by helping with the translation. <br />
<br />
=== Technical Details ===<br />
<br />
Ideally, this should be implemented as a plugin. The admin interface of such a plugin would need options to enable/disable the various option of contributing and also to review and edit (also: delete) the submissions.<br />
<br />
Additionally, the plugin would need to be able to<br />
* pull the current $LANG arrays into the database initially<br />
* write out language files afterwards<br />
<br />
It would need to keep track of which texts have already been translated as well as of alternative translations.<br />
<br />
A "translation admin" should be able to see all the translations at once to help decide on a proper translation of a term or phrase. In a sort of "PHP environment", a feature could be added to show the code used around the text to help with context.<br />
<br />
=== Thinking ahead ===<br />
<br />
If this were a plugin, users may want to install it on their own Geeklog site, therefore increasing the chances of finding someone to help with translations. We would then need a way to collect those translations and merge them back into a "master database" or submit them as patches.<br />
<br />
Alternatively, the above-mentioned block that asks for a translation could pull the text from the master database remotely and submit the translation back to it.<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''medium to hard''<br />
<br />
Things could get very complex depending on which aspects are actually implemented. It's probably best to pick a few reasonable goals and implement those, while keeping future extensions in mind.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Translations&diff=6257Translations2013-03-29T14:41:32Z<p>Dirk: 20 -> 30</p>
<hr />
<div>= Creating a new translation =<br />
<br />
Geeklog has already been translated into [[What Languages are Available?|more than 30 languages]]. If your language is not among them, you may want to check for a related language first. But usually, the best way to start a new translation is to make a copy of <tt>english.php</tt> (or <tt>english_utf-8.php</tt>) and give it the English(!) name of your language.<br />
<br />
Things to consider:<br />
* The character set: If you're using UTF-8, that should be reflected in the name of the language file (i.e. the filename should end in <tt>..._utf-8.php</tt>).<br />
* Dialects / variations of a language: Local variations of a "main" language should also be reflected in the file name. See, for example, <tt>portuguese_brazil.php</tt> for "Portuguese, as spoken in Brazil".<br />
<br />
<br />
== Language file ==<br />
<br />
Geeklog includes several language files for different purposes. There is a main language file, used by Geeklog's core code. The plugins that are bundled with Geeklog (and all 3rd party plugins) use their own language files. Another language file is used by the install script:<br />
<br />
<pre>language/english.php<br />
plugins/calendar/language/english.php<br />
plugins/links/language/english.php<br />
plugins/polls/language/english.php<br />
plugins/spamx/language/english.php<br />
plugins/staticpages/language/english.php<br />
plugins/xmlsitemap/language/english.php<br />
public_html/admin/install/language/english.php</pre><br />
<br />
You don't need to translate all the language files at once. The plugins will fall back to using the English language file automatically when they can't find a file for the current language.<br />
<br />
So it's best to start with the main language file (in the toplevel <tt>language</tt> directory) and work your way from there.<br />
<br />
<br />
== Character set and text direction ==<br />
<br />
Your language file should define the character set to use for your language:<br />
<br />
<pre>$LANG_CHARSET = 'iso-8859-1';</pre><br />
<br />
For languages that are written right-to-left (e.g. Hebrew, Arabic), you should also set<br />
<br />
<pre>$LANG_DIRECTION = 'rtl';</pre><br />
<br />
If <code>$LANG_DIRECTION</code> is not set in the language file, left-to-right is assumed.<br />
<br />
'''Note:''' These two options should only be set in the main language file and the language file for the install script. Plugins will automatically use the character set and text direction as defined in the main language file.<br />
<br />
<br />
== The $LANG arrays ==<br />
<br />
Geeklog uses PHP arrays to define the texts used, e.g.<br />
<br />
<pre>$LANG01 = array(<br />
1 => 'Contributed by:',<br />
2 => 'read more',<br />
(...)<br />
);</pre><br />
<br />
Whenever Geeklog needs the text for "read more", it refers to <code>$LANG01[2]</code> and picks up the localized text from the current language file. So you only need to translate the text to the right of the <tt>=></tt> sign.<br />
<br />
Note that some language arrays are using a textual key instead of a number, e.g.<br />
<br />
<pre>$LANG_ACCESS = array(<br />
'access' => 'Access',</pre><br />
<br />
Again, you should only translate the text on the right side. PHP also allows text strings as an array index, so the word "Access" would be referred to by <code>$LANG_ACCESS['access']</code> (and if you changed the <tt>'access'</tt> on the left side, this wouldn't work any more).<br />
<br />
<br />
= Updating a translation =<br />
<br />
Not all language files are still actively supported. Therefore, you may notice that some texts will show up in English even when you switched to a different language. The language files, as shipped with Geeklog, are updated such that they include all the required texts. Where a translation is not available, the English text is used.<br />
<br />
To update a translation, you can either browse through the language file and look for English texts, or you can translate texts as required as you run into them when using your Geeklog site.<br />
<br />
<br />
= Translating the Geeklog Documentation =<br />
<br />
As of Geeklog 1.6.0, the documentation that ships with Geeklog has been moved from <tt>docs</tt> to <tt>docs/english</tt>. So now it's possible to translate the Geeklog documentation, too.<br />
<br />
Note: The directory name for the translated documentation should not include a character set name (i.e. it should be "italian", even if you're using UTF-8 for the translated files). This is because the documentation is independent from Geeklog and its character set, so there's no need to have UTF-8 and non-UTF-8 versions.<br />
<br />
<br />
= Getting help =<br />
<br />
The [http://eight.pairlist.net/mailman/listinfo/geeklog-translations geeklog-translations mailing list] is probably the best place to go to when you need help with your translation. We recommend that all maintainers of language files subscribe to this list, as we will also post information about changes in the language files in upcoming Geeklog releases on this list.<br />
<br />
<br />
= Publishing your translation =<br />
<br />
The best way to publish your translation is to get it included in the official Geeklog tarballs. Pre-announcements of upcoming releases will be posted on the geeklog-translations mailing list, so that you can finish your work in time to be included.<br />
<br />
Between Geeklog releases, you can always [http://www.geeklog.net/filemgmt/submit.php upload] your translation on geeklog.net. Make sure to compress your language file(s) as .zip or .tar.gz files to prevent special characters from being corrupted.<br />
<br />
Translations uploaded to geeklog.net will also usually be picked up to be included in future Geeklog releases.<br />
<br />
== Sending Patches ==<br />
<br />
If you are familiar with Mercurial, you can also [[Submitting Patches|send patches]] for the language files (instead of sending the complete files). Using Mercurial's <tt>export</tt> format has the advantage that your name would [http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/ show up] in the list of changes in our Mercurial repository.<br />
<br />
Sending the complete file is usually easier, though. Choose whatever is easier for you.</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6256GSoC Brainstorming2013-03-29T09:24:25Z<p>Dirk: language tweaks and clarifications</p>
<hr />
<div>== New Ideas ==<br />
<br />
'''Please note:''' These are new and not fully fleshed-out project ideas for the [[Google Summer of Code]]. We think that these would be useful additions to Geeklog, so we are interested in project proposals based on these ideas. In the state that they are outlined here, though, they would require more work to turn them into a proper proposal. You can use them for inspiration for a project proposal of your own.<br />
<br />
<br />
=== Multi-Site Setup ===<br />
<br />
Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
<br />
=== Staging Support ===<br />
<br />
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.<br />
<br />
How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.<br />
<br />
=== Migration ===<br />
<br />
'''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.<br />
<br />
Things like [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
<br />
=== Make Translations easier ===<br />
<br />
Geeklog has been translated in over 30 languages, but many of those translations haven't been updated in a while. The current way is just too awkward, error prone, and not very intuitive (since you can't see the context in which a text string is used). Surely there must be a better way? One that makes it easier for translators, who may also not be too familiar with PHP syntax.<br />
<br />
=== Alternative WYSIWYG Editor ===<br />
<br />
Integrate '''Aloha Editor''', replacing FCKeditor/CKEditor as the "advanced" (WYSIWYG) editor in Geeklog.<br />
<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 upon.<br />
<br />
=== Semantic Web ===<br />
<br />
Go '''Semantic Web'''. This is a somewhat vague idea: Use available building 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.<br />
<br />
Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]).<br />
<br />
A student working on this project should have a better idea of what "semantic web" is than the author of these sentences ...<br />
<br />
=== Mass-E-Mail Support ===<br />
<br />
Implement an '''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.<br />
<br />
=== Admin Toolbox ===<br />
<br />
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.<br />
<br />
=== Multi-User Blogs ===<br />
<br />
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.<br />
<br />
=== Read-Only Mode ===<br />
<br />
Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
<br />
=== Undo ===<br />
<br />
Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.<br />
<br />
This could possibly be expanded to a full-fledged revision control or something like the [http://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&action=history history] function of MediaWiki.<br />
<br />
There are already some hooks in place to help implement this, see [[PLG_itemSaved]], although they are not yet implemented everywhere.<br />
<br />
=== Articles Plugin ===<br />
<br />
Articles (also called ''stories'') are built into Geeklog. There's no good reason for this, other than that it has always been like that. The idea here is to move all article support to a plugin. In addition to it being more consistent, Geeklog would also become more modular and you could disable articles in order to use Geeklog only as a web framework.<br />
<br />
A big concern with this idea is backward compatibility due to the necessary change of the URLs of all the articles on a site. This would need to be addressed in a way such that it also works for sites that can not use URL rewriting.<br />
<br />
Note that this idea is not new and even somewhat controversial. It may also not as easy to implement as it may sound at first.<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_install_script_refinements&diff=6255SoC install script refinements2013-03-29T09:19:13Z<p>Dirk: fixed a typo</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
The install script is one of the very first things a new Geeklog user encounters. Therefore, it's important that it's easy to use, supports the user in installing, updating and migrating a Geeklog site while being robust and providing helpful hints and error messages.<br />
<br />
<br />
== Incentive ==<br />
<br />
The current install script was originally implemented as a GSoC project in 2007 and further improved upon in GSoC 2008. We're still pretty happy with it, but there's always room for improvement. And this is what this GSoC project is about.<br />
<br />
Think ''evolution'' not ''revolution''.<br />
<br />
<br />
== Details ==<br />
<br />
The following is a rather random list of - mostly minor - issues where the install script could be improved.<br />
<br />
=== Error Handling and Usability ===<br />
<br />
* '''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.<br />
* 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.<br />
* 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)<br />
* The install script could possibly even offer to attempt to fix read/write permissions where they do not match the required setting. Note that this may not be possible on some hosting platforms.<br />
<br />
=== HTML and CSS ===<br />
<br />
* Bring the '''design''' more in line with Geeklog's new default theme "Modern Curve" (as of Geeklog 2.0.0).<br />
* 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).<br />
<br />
=== Localization ===<br />
<br />
* '''Character Set Conversion''': Say you initially set up your Geeklog site to use ISO-8859-1 and want to switch to UTF-8 now. All the content would have to be [http://www.geeklog.net/article.php/200410120657418 converted manually]. The install script could do that for you instead.<br />
* Allow for '''localized install data'''. Currently, a fresh setup is always in English, with English default stories, preferences, etc.<br />
<br />
=== Miscellaneous ===<br />
<br />
* Build <tt>install/admin/info.php</tt> into the install script.<br />
* 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).<br />
* 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).<br />
<br />
=== Database Migration (optional) ===<br />
<br />
The vast majority of our users is using MySQL. So the following ideas, while useful for those who cannot or do not want to use MySQL, are less important right now. Consider them optional:<br />
<br />
* The '''Site Migration''' feature should also work for PostgreSQL and/or MS SQL<br />
* Implement a '''Database Migration''', i.e. allow switching from Postgres to MySQL or MS SQL or the other way around<br />
<br />
=== Your idea here ===<br />
<br />
As explained above, we are not looking for an entirely new install script or any radical changes in this project. We are, however, open to new ideas. Someone who's new to Geeklog (that would be ''you'') can probably look at the install process from a fresh perspective and suggest improvements. Let us hear them.<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''low to medium''<br />
<br />
The proposed changes aren't overly difficult but require a lot of attention to detail and testing.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_topic_improvements&diff=6254SoC topic improvements2013-03-29T09:14:48Z<p>Dirk: added missing categories</p>
<hr />
<div><center>(Return to the main idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
When Geeklog 2.0.0 is released Topics will be able to have child Topics and, Blocks and Articles can be assigned to one or more Topics. With these new features of Geeklog, this makes a number of the ideas in the Google Summer of Code 2010 [[SoC category plugin|Category Plugin]] project not relevant. This new Topic Improvements project takes into account some of the projects from the Category Plugin and adds in a few new ideas.<br />
<br />
<br />
== Objective ==<br />
<br />
The feature list for the Topic Improvements can be broken down into several parts:<br />
<br />
New Plugin API<br />
* Add new plugin API to integrate extra fields from one or more plugins into edit forms. This should allow for displaying, validation and saving the information. Some functionality will also be required to tell the plugin what plugins it should not integrate into<br />
* Add new plugin API to integrate extra fields from one or more plugins into submission forms <br />
* Add this functionality to the admin editors and submission forms of Articles, Category plugin, Static Pages plugin, Polls plugin, Links Plugin and Calendar plugin<br />
* Allowing plugins to display items amongst the articles when a topic is displayed<br />
<br />
Topic Editor<br />
* Create some sort of tree user interface (jQuery UI tree still appears to be in planning stage) to display categories on left with selected category/item info on the right<br />
* Add description? (http://project.geeklog.net/tracking/view.php?id=1174)<br />
<br />
Menu Editor:<br />
* Based on Topics (Admin may hide topics from being viewed in the menu)<br />
* Replaces/Adds to Topics Block and Top Menu<br />
* Ability to add menu items to other Geeklog objects and webpages<br />
* Interface for changing the style of the menus<br />
* Minimum support for CSS 2 styling<br />
<br />
Tags:<br />
* A Topic can be defined as a tag<br />
* Tag Cloud block<br />
* Page with Tag Cloud which lists items from selected tag as well as other tags the items belong too. <br />
<br />
What's Related Block:<br />
* Based on Topic relationships (Any other related info???)<br />
* Block should be able to display by using an autotag<br />
* Allow plugins to use the block<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''medium''<br />
<br />
This project will require someone to spend time understanding how Geeklog Topics and the core plugin API works. You will also need to install a number of the more popular plugins that offer similar features to see how they work. As of version 1.8.0, Geeklog includes jQuery. jQuery could be used with this project for the menu system and/or the Topic Admin editor tree.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [http://www.geeklog.net/filemgmt/index.php/1030 Navman plugin] is a Navigation manager that offers Multi-level menu and Breadcrumb support (Version 0.2.0)<br />
* [http://www.portalparts.com/nexfile/index.php GLMenu plugin] dynamic site menu builder (Version 3.1)<br />
* [http://mystral-kk.net/filemgmt/index.php/20 Tag plugin] allows you to tag articles and static pages (Version 0.5.2)<br />
* [http://pear.php.net/package/HTML_TagCloud HTML Tag Cloud Pear library]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_improve_the_Spam-X_plugin&diff=6253SoC improve the Spam-X plugin2013-03-29T09:05:02Z<p>Dirk: language tweaks and clarifications; added a link to the CAPTCHA plugin announcement</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
Comment spam doesn't need an introduction - pretty much every site gets it. Geeklog ships with its own spam filter, called [http://www.geeklog.net/docs/english/spamx.html Spam-X]. This filter can easily be extended by adding modules so that it can either be updated for the spammer's latest tricks or to add support for new anti-spam services.<br />
<br />
<br />
== Incentive ==<br />
<br />
Spam-X works very well in practice. There is always room for improvement of course and that is what this project is about. We are looking for ways to make using the spam filter more efficient (for the site admin) and also try to extend the filtering capabilities.<br />
<br />
From a usage point of view, the handling of long lists of blacklisted phrases and IP addresses could be improved. Also, there are new anti-spam services that we would want to try out.<br />
<br />
<br />
== Part 1: Usability improvements ==<br />
<br />
In addition to using external services (see below) that rate posts as spam or not spam, site owners can use their own blacklists to fine-tune filtering of spam specifically for their own site. As a result, however, you'll often end up with long lists of blacklist entries. There are two obivous problems with this:<br />
<br />
# you don't know whether or not such a rule is still valid, i.e. used to filter spam<br />
# the long lists are hard to use and maintain<br />
<br />
We have (raw and unfinished) patches for both of these issues ([http://project.geeklog.net/tracking/view.php?id=1076 #1076] and [http://project.geeklog.net/tracking/view.php?id=1077 #1077]). So the minimal goal for this part would be to finish and implement these changes.<br />
<br />
However, we would also welcome new ideas on how to better handle these issues. Surely, having a sortable list of several hundred entries is not the only possible solution to this? Here's a chance for a student (i.e. you) to come up with a clever idea that sets your proposal apart from the others.<br />
<br />
Other UI improvements that we're looking for (and that should be easy to implement) in this part of the project would be to ensure consistency with the "look and feel" of the rest of Geeklog. Currently, the Spam-X plugin is sticking out a bit, both from the way the admin panels work as well as from how they look. This would make a good first task in the project.<br />
<br />
<br />
== Part 2: A new spam filter module and API changes ==<br />
<br />
Geeklog currently ships with a Spam-X module for [http://linksleeve.org/ LinkSleeve] (aka SLV). At the time, this was the only free service available that didn't require creating an account, so that it is usable "out of the box".<br />
<br />
Over time, more anti-spam services have appeared ([[Other anti-spam services|see list]]). One of the most interesting - and free - anti-spam services these days is [http://mollom.com/ Mollom], which is associated with the Drupal community (but not limited to Drupal sites). <br />
<br />
One important difference between Mollom and other services is that it can return an "unsure" ranking for a comment post. This means that the post may or not be spam - Mollom isn't sure. So what do we do? Display a CAPTCHA to the poster.<br />
<br />
This concept, however, can not easily be integrated into Geeklog right now. First of all, Spam-X currently expects either a "thumbs up" or "thumbs down" answer, after which the comment post is either allowed or dismissed. "I don't know" simply isn't supported. So to support this third possible reply, some changes will have to be made to Spam-X itself and to the Geeklog code calling it.<br />
<br />
There's also the problem that Geeklog's CAPTCHA plugin would always display a CAPTCHA to the user. So if Mollom were to return an "unsure" response, the poster would have to solve ''two'' CAPTCHAs, which would be very annoying. We need a solution for this scenario, e.g. some communication with the CAPTCHA plugin.<br />
<br />
And finally, since we're going to have to change the Spam-X API anyway, this would be a good opportunity to address a design flaw of the API: Once a comment post is considered spam, it is deleted. There is currently no way to store the post for later review (and possible approval). Fixing this is not as simple as it may seem, though, since currently Spam-X simply doesn't know where the post came from - it could be a comment or a story submission, both of which would have to be treated differently.<br />
<br />
Backward compatibility has to be considered. There is third-party code out there that uses the current Spam-X API that we don't want to break. An easy, though not the only, way out would be to introduce new API functions.<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''low to medium''<br />
<br />
The usability changes and implementation of the Mollom module itself should be relatively straightforward (there already is a PHP class for Mollom). Changing the Spam-X API will be more demanding, especially since backward compatibility will be an issue.<br />
<br />
''Possible mentors:'' [http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer], [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Dealing with Spam]] in Geeklog<br />
* [[Filtering Spam with Spam-X]]<br />
* [[Other anti-spam services]]<br />
* [http://www.geeklog.net/article.php/2010051308024941 CAPTCHA plugin for Geeklog]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_test_framework_revisited&diff=6252SoC test framework revisited2013-03-29T08:54:59Z<p>Dirk: added a link to the unit tests in Jenkins</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
After laying the groundwork in the [[SoC test framework|2009 GSoC project]], it is now time to take unit testing in Geeklog one step further. We currently have some tests set up to run automatically after every checkin to the Geeklog Mercurial repository, but those only cover a very small portion of the code base.<br />
<br />
Note: In this project, we are ''not'' interested in doing any GUI testing (yet).<br />
<br />
<br />
== Incentive ==<br />
<br />
The main goal of this follow-up project is to bring those parts of Geeklog under test that require a working database and integrate those tests into our continuous integration setup.<br />
<br />
A mock XML database was developed as part of the previous project. In this follow-up project, we would like this decision to be revisited. Is this the best way to go forward? If so, how can we prevent it getting out of sync with database changes in Geeklog? If it isn't the best option (e.g. missing write access is a problem that would need to be solved) then what are the alternatives?<br />
<br />
Once this basic decision has been made, the main goals would be to<br />
* bring <tt>lib-common.php</tt> under test<br />
* bring at least one plugin under test<br />
<br />
<br />
== Details ==<br />
<br />
One of the central pieces of Geeklog is the <tt>lib-common.php</tt> file. It contains a collection of commonly used functions (hence the name). When loaded, <tt>lib-common.php</tt> will also create a session for the current user (and do all the related work, like loading preferences, setting up permissions) and load the installed plugins. It also pulls in many additional libraries and classes. This file can not be loaded without a properly set up database, which makes it hard to put under test.<br />
<br />
Things to look into:<br />
* Do we go with the mock XML database or do we switch to something else (see above)?<br />
* Review the directory layout. The current layout was chosen in part to be able to run a GUI for the unit tests. With CI servers such as [[Jenkins]] being available, is this still necessary? If not, should the directory layout be changed (simplified)?<br />
<br />
Goals:<br />
* Bring <tt>lib-common.php</tt> under tests, i.e. write tests for at least some of the <code>COM_</code> functions from that library (which is not possible without solving the database problem first).<br />
* Demonstrate how to write tests for a plugin. By bringing one of the bundled plugins under test, authors of 3rd-party plugins will be able to set up their own test environments and write tests for their plugins.<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''medium''<br />
<br />
A word of warning: This project has the potential to cause some frustration initially while trying to bootstrap things.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
== Further Reading ==<br />
<br />
* Description of the current [[Test Suite]]<br />
* Description of the 2009 GSoC [[SoC test framework|Test Framework project]]<br />
* [http://project.geeklog.net/cgi-bin/hgwebdir.cgi/test-framework/ Mercurial repository] of the Test Framework<br />
* [http://project.geeklog.net:8080/job/test-framework/ Unit tests in Jenkins]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Student_Requirements&diff=6251GSoC Student Requirements2013-03-29T08:33:27Z<p>Dirk: language tweaks and clarifications</p>
<hr />
<div>To be able to track student progress during the Summer of Code, we propose that students follow these principles. These are just some broad guidelines - details can always be discussed with your mentor.<br />
<br />
<br />
== Progress Report ==<br />
<br />
We expect a weekly progress report. This will help you as much as it will help us, since just sitting down once in a while and thinking about what you did so far and what you plan to do next will help you get a better idea of the progress of your project.<br />
<br />
Your progress report should roughly cover:<br />
<br />
* What did you achieve over the last week?<br />
* What did not work out as expected and why?<br />
* What are your plans for the coming week?<br />
* Where do you think you may be facing a problem or require more time?<br />
<br />
Whether you send this progress report to your mentor or publish it somewhere (e.g. on a blog or on the geeklog-devel mailing list) is up to you and your mentor to decide.<br />
<br />
We would, however, allow the community to get an idea about the progress of your project once in a while, so we would like to ask you to prepare a summary at around the time of the mid-term evaluation and again at the end of the project. We would like to post that summary in the [http://www.geeklog.net/index.php?topic=GSoC "Summer of Code" topic] on geeklog.net.<br />
<br />
<br />
== Commits ==<br />
<br />
The Coding Period starts on '''June 17'''. From that point on, we would like to see regular commits and a push to your GSoC repository (which will be provided for you) at least once per week (preferably more often).<br />
<br />
<br />
== Integration Period ==<br />
<br />
The last two weeks of the Coding Period should be reserved for integration and test (of the integration). '''At this point, your project should be complete and ready for merging it back into the main development branch.'''<br />
<br />
Geeklog has a bi-annual release cycle, with major releases in April and November. We would very much like to see the results of your project make it into the November release. Just think of all the people who will soon use your code <tt>:)</tt><br />
<br />
<br />
== Talk to us ==<br />
<br />
Please remember: When you run into a problem (be it with the project or something personal) - tell us about it. We're here to help you finish your project. But to be able to help you, we obviously need to know that there is a problem first. So don't be afraid - we'll find a solution.<br />
<br />
<br />
[[Category:Summer of Code]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6250Google Summer of Code2013-03-29T08:23:35Z<p>Dirk: language tweaks and clarifications</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012, but we have applied again for participation in GSoC 2013. Please note that the list of accepted organizations will only be published on April 8 - until then, we won't know whether or not Geeklog will be in GSoC 2013.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* Also see [[GSoC Brainstorming]] for more ideas. These aren't fully fleshed-out but can serve as a starting point for your own project proposal.<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=12362 Kenji Ito]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thank you.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ] about the program. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite. Depending on the project you apply for, there may be other required skills, e.g. JavaScript or HTML.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control; we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 1.8.2sr1) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List] and introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by Geeklog's GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered when you registered for GSoC.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Main_Page&diff=6249Main Page2013-03-29T08:14:42Z<p>Dirk: cosmetics</p>
<hr />
<div>[[Image:Logo.gif]]<br />
<br />
== Geeklog Wiki has migrated to new hosting. ==<br />
<br />
Please report any wiki issues in the Geeklog forum thread.<br />
[http://www.geeklog.net/forum/viewtopic.php?showtopic=94454 http://www.geeklog.net/forum/viewtopic.php?showtopic=94454]<br />
<br />
== Geeklog Documentation ==<br />
<br />
This is the main entry for Documentation for the [http://www.geeklog.net/ Geeklog] CMS and weblog engine. The current version is 1.8.2sr1.<br />
<br />
This documentation is a result of community action. Everyone is invited to [http://wiki.geeklog.net/wiki/index.php?title=Special:Userlogin sign up] and participate. If you see an omission you can fill it in. If you see a mistake, correct it. If you see where things could be better organized, change it. If you have a note about a particular configuration, add it. In other words: We need your help to make it better!<br />
<br />
* [[Geeklog Documentation]]:<br />
*# [[Introduction]]<br />
*# [[Installation]]<br />
*# [[Administration]]<br />
*# [[Users Documentation|User's Documentation]]<br />
*# [[Programmers/Developers Documentation]]<br />
* Quick Links:<br />
*# [[Complete Table of Contents]]<br />
*# [[Special:AllPages|List of all Articles]]<br />
*# [[Getting Started]] with Geeklog Development<br />
*# [[Google Summer of Code]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6248GSoC Brainstorming2013-03-27T20:38:51Z<p>Dirk: idea: make translations easier</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
=== Multi-Site Setup ===<br />
<br />
Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
<br />
=== Staging Support ===<br />
<br />
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.<br />
<br />
How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.<br />
<br />
=== Migration ===<br />
<br />
'''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.<br />
<br />
Things like [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
<br />
=== Make Translations easier ===<br />
<br />
Geeklog has been translated in over 30 languages, but many of those translations haven't been updated in a while. The current way is just too awkward, error prone, and not very intuitive (since you can't see the context in which a text string is used). Surely there must be a better way? One that makes it easier for translators, who may also not be too familiar with PHP syntax.<br />
<br />
=== Alternative WYSIWYG Editor ===<br />
<br />
Integrate '''Aloha Editor''', replacing FCKeditor/CKEditor as the "advanced" (WYSIWYG) editor in Geeklog.<br />
<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 upon.<br />
<br />
=== Semantic Web ===<br />
<br />
Go '''Semantic Web'''. This is a somewhat vague idea: Use available building 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.<br />
<br />
Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]).<br />
<br />
A student working on this project should have a better idea of what "semantic web" is than the author of these sentences ...<br />
<br />
=== Mass-E-Mail Support ===<br />
<br />
Implement an '''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.<br />
<br />
=== Admin Toolbox ===<br />
<br />
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.<br />
<br />
=== Multi-User Blogs ===<br />
<br />
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.<br />
<br />
=== Read-Only Mode ===<br />
<br />
Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
<br />
=== Undo ===<br />
<br />
Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.<br />
<br />
This could possibly be expanded to a full-fledged revision control or something like the [http://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&action=history history] function of MediaWiki.<br />
<br />
There are already some hooks in place to help implement this, see [[PLG_itemSaved]], although they are not yet implemented everywhere.<br />
<br />
=== Articles Plugin ===<br />
<br />
Articles (also called ''stories'') are built into Geeklog. There's no good reason for this, other than that it has always been like that. The idea here is to move all article support to a plugin. In addition to it being more consistent, Geeklog would also become more modular and you could disable articles in order to use Geeklog only as a web framework.<br />
<br />
A big concern with this idea is backward compatibility due to the necessary change of the URLs of all the articles on a site. This would need to be addressed in a way such that it also works for sites that can not use URL rewriting.<br />
<br />
Note that this idea is not new and even somewhat controversial. It may also not as easy to implement as it may sound at first.<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6247GSoC Brainstorming2013-03-25T19:27:57Z<p>Dirk: shuffled ideas around a bit and added the somewhat controversial article plugin idea</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
=== Multi-Site Setup ===<br />
<br />
Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
<br />
=== Staging Support ===<br />
<br />
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.<br />
<br />
How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.<br />
<br />
=== Migration ===<br />
<br />
'''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.<br />
<br />
Things like [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
<br />
=== Alternative WYSIWYG Editor ===<br />
<br />
Integrate '''Aloha Editor''', replacing FCKeditor/CKEditor as the "advanced" (WYSIWYG) editor in Geeklog.<br />
<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 upon.<br />
<br />
=== Semantic Web ===<br />
<br />
Go '''Semantic Web'''. This is a somewhat vague idea: Use available building 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.<br />
<br />
Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]).<br />
<br />
A student working on this project should have a better idea of what "semantic web" is than the author of these sentences ...<br />
<br />
=== Mass-E-Mail Support ===<br />
<br />
Implement an '''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.<br />
<br />
=== Admin Toolbox ===<br />
<br />
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.<br />
<br />
=== Multi-User Blogs ===<br />
<br />
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.<br />
<br />
=== Read-Only Mode ===<br />
<br />
Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
<br />
=== Undo ===<br />
<br />
Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.<br />
<br />
This could possibly be expanded to a full-fledged revision control or something like the [http://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&action=history history] function of MediaWiki.<br />
<br />
There are already some hooks in place to help implement this, see [[PLG_itemSaved]], although they are not yet implemented everywhere.<br />
<br />
=== Articles Plugin ===<br />
<br />
Articles (also called ''stories'') are built into Geeklog. There's no good reason for this, other than that it has always been like that. The idea here is to move all article support to a plugin. In addition to it being more consistent, Geeklog would also become more modular and you could disable articles in order to use Geeklog only as a web framework.<br />
<br />
A big concern with this idea is backward compatibility due to the necessary change of the URLs of all the articles on a site. This would need to be addressed in a way such that it also works for sites that can not use URL rewriting.<br />
<br />
Note that this idea is not new and even somewhat controversial. It may also not as easy to implement as it may sound at first.<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6246Google Summer of Code2013-03-25T19:14:04Z<p>Dirk: rephrased the link referring to the GSoC Brainstorming page</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012, but we have applied again for participation in GSoC 2013. Please note that the list of accepted organizations will only be published on April 8 - until then, we won't know whether or not Geeklog will be in GSoC 2013.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* Also see [[GSoC Brainstorming]] for more ideas. These aren't fully fleshed-out but can serve as a starting point for your own project proposal.<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=12362 Kenji Ito]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thanks.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ]. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control - we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 1.8.2) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List], introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by the GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered as part of your application.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6245Google Summer of Code2013-03-25T19:11:11Z<p>Dirk: got mystral-kk on board as a potential co-mentor</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012, but we have applied again for participation in GSoC 2013. Please note that the list of accepted organizations will only be published on April 8 - until then, we won't know whether or not Geeklog will be in GSoC 2013.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* more (mostly unfinished) ideas: [[GSoC Brainstorming]] (for your inspiration)<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=12362 Kenji Ito]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thanks.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ]. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control - we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 1.8.2) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List], introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by the GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered as part of your application.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6244Google Summer of Code2013-03-24T10:25:17Z<p>Dirk: we have in fact applied for participation in GSoC 2013</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012, but we have applied again for participation in GSoC 2013. Please note that the list of accepted organizations will only be published on April 8 - until then, we won't know whether or not Geeklog will be in GSoC 2013.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* more (mostly unfinished) ideas: [[GSoC Brainstorming]] (for your inspiration)<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thanks.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ]. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control - we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 1.8.2) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List], introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by the GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered as part of your application.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Topic_Support&diff=6243Topic Support2013-03-23T14:16:12Z<p>Dirk: attempts to wikify the formatting</p>
<hr />
<div>== Introduction ==<br />
<br />
This is a Draft<br />
<br />
As of version 2.0.0, Geeklog now allows topics to have 1 or more child topics, blocks assigned to multiple topics, and articles assigned to multiple topics. Blocks and articles can also be inherited by the parent topic when viewed if it setup to do so. This is all done while still supporting multiple languages and a Archive Topic.<br />
<br />
The different Topic modes (better word?) of Geeklog<br />
<br />
Homepage<br />
All<br />
Topic (specific)<br />
<br />
Now some objects can belong to more than one topic.<br />
<br />
define("TOPIC_ALL_OPTION", 'all');<br />
define("TOPIC_NONE_OPTION", 'none');<br />
define("TOPIC_HOMEONLY_OPTION", 'homeonly');<br />
define("TOPIC_SELECTED_OPTION", 'selectedtopics');<br />
define("TOPIC_ROOT", 'root');<br />
<br />
$_TOPICS Array<br />
<br />
Notes:<br />
<br />
Tracking of Last Topic by Session DB Variable<br />
Anonymous users are now tracked like logged in users.<br />
The session changes include the ability to track anonymous users, and the who's online block now uses a column in the session table to track online versus offline users.<br />
<br />
<br />
Topic Assignments table<br />
<br />
Topics<br />
Inherited<br />
Hidden<br />
<br />
Archive Topic:<br />
<br />
* You are allowed only one. This is the same as before but at some point we may want to change this since it doesn't work well with a multi language Geeklog install (I would assume most admins would want an archive topic per language unless there was a reason this was not added?). <br />
* Cannot be hidden<br />
* Cannot have Child Topics<br />
* Cannot be inherited<br />
* Stories that are archived can only belong to this topic and no other<br />
<br />
<br />
Getting/Setting the topic<br />
Figure out the current topic for a plugin and other parts of Geeklog (Comments, Search, ...). If permissions or language wrong it will find default else end with a '' topic (which is all). Needs to be run on page that is affected by the topic after lib-common.php is required so it can grab topic in url if need be. Also if pass blank $type and $id then return just last topic<br />
<br />
TOPIC_getTopic($type = '', $id = '')<br />
<br />
Blocks<br />
Blocks can now be inherited from child topics. Remember Blocks being inherited is affected by several things including security, the language of the block, the inherited flag set for that topic assignment for the block, and if the topics themselves allow objects to be inherited.<br />
<br />
Topic Assignment Control<br />
I have also worked out a topic selection control that is used by blocks and will be used by stories and plugins. Here are the most common functions that most plugin author will use.<br />
<br />
<br />
Show control in edit form by assigning the retval of this function to a template variable.<br />
TOPIC_getTopicSelectionControl($type, $id, $show_options = false, $show_inherit = false, $show_default = false)<br />
<br />
Check topic control to see if any values are selected (for saves)<br />
TOPIC_checkTopicSelectionControl()<br />
<br />
Check if User has access to the topics selected<br />
TOPIC_hasMultiTopicAccess('topic') == 3<br />
<br />
There is the odd time that a plugin may need to know what topics have been selected when saving. This shouldn't happen to often but if need be you can find out by using the following function to retrieve Topic data. Before running this function you should validate the data with the above functions first.<br />
TOPIC_getDataTopicSelectionControl($topic_option, $tids, $inherit_tids, $default_tid);<br />
<br />
Save the data in the topic control to the topic assignments table<br />
TOPIC_saveTopicSelectionControl('staticpages', $sp_id);<br />
<br />
TOPIC_deleteTopicAssignments('staticpages', $sp_id);<br />
<br />
<br />
<br />
<br />
BreadCrumbs<br />
breadcrumbs are enabled for Topics, Articles and Staticpage plugin<br />
config options<br />
<br />
Articles<br />
* allowing a story to have multiple topics <br />
* allowing stories to be inherited by parent topics<br />
<br />
Admins are going to have to keep an eye on what topics are hidden and what security is set. If you remove read access for anonymous from the top topic then anonymous users will not have access to that topic only. They still would have access to child topics if their security allowed it (though these will not be displayed in the topics block since the path is broken). At some point we could add a checkbox to the Access Rights section to allow permissions to be set for child topics as well if checked and the topic was saved.<br />
<br />
<br />
<br />
When viewing a topic, how does Geeklog decided when an article is inherited from multiple child topics which topic to associate to that specfic article in the specific topic? First off this association effects which topic icon is displayed as well as which topic is used if the visitor clicks on the article title or read more link. The topic icon that is associated with the article will be first the current topic (if that topic assignment exists). If it doesn't then it is the default topic if it exists in that topic tree branch. If not then the next topic used will be the based on the topic id in ascending order. Articles displayed on the front page do not need to worry about which topic is inherited so the default topic for that article will always be used. <br />
<br />
<br />
<br />
The Topics block has been updated. It now shows the tree structure of the topics. Topics have several properties that affect them being displayed in this block. These are Security, if it is Hidden, and if it is a Topic for a different language. How it works is if the visitor doesn't have access to the child topic, or if it is hidden or in another language then it is not displayed. If it is not displayed then none of its child topics are displayed (even if the visitor would have access to the topic)<br />
<br />
<br />
[[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6242GSoC Brainstorming2013-03-21T10:35:30Z<p>Dirk: expanding on the Undo function idea</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
=== Alternative WYSIWYG Editor ===<br />
<br />
Integrate '''Aloha Editor''', replacing FCKeditor/CKEditor as the "advanced" (WYSIWYG) editor in Geeklog.<br />
<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 upon.<br />
<br />
=== Semantic Web ===<br />
<br />
Go '''Semantic Web'''. This is a somewhat vague idea: Use available building 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.<br />
<br />
Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]).<br />
<br />
A student working on this project should have a better idea of what "semantic web" is than the author of these sentences ...<br />
<br />
=== Mass-E-Mail Support ===<br />
<br />
Implement an '''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.<br />
<br />
=== Multi-Site Setup ===<br />
<br />
Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
<br />
=== Staging Support ===<br />
<br />
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.<br />
<br />
How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.<br />
<br />
=== Admin Toolbox ===<br />
<br />
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.<br />
<br />
=== Migration ===<br />
<br />
'''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.<br />
<br />
Things like [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
<br />
=== Multi-User Blogs ===<br />
<br />
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.<br />
<br />
=== Read-Only Mode ===<br />
<br />
Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
<br />
=== Undo ===<br />
<br />
Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.<br />
<br />
This could possibly be expanded to a full-fledged revision control or something like the [http://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&action=history history] function of MediaWiki.<br />
<br />
There are already some hooks in place to help implement this, see [[PLG_itemSaved]], although they are not yet implemented everywhere.<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6241GSoC Brainstorming2013-03-21T10:01:10Z<p>Dirk: making the list more readable</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
=== Alternative WYSIWYG Editor ===<br />
<br />
Integrate '''Aloha Editor''', replacing FCKeditor/CKEditor as the "advanced" (WYSIWYG) editor in Geeklog.<br />
<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 upon.<br />
<br />
=== Semantic Web ===<br />
<br />
Go '''Semantic Web'''. This is a somewhat vague idea: Use available building 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.<br />
<br />
Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]).<br />
<br />
A student working on this project should have a better idea of what "semantic web" is than the author of these sentences ...<br />
<br />
=== Mass-E-Mail Support ===<br />
<br />
Implement an '''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.<br />
<br />
=== Multi-Site Setup ===<br />
<br />
Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
<br />
=== Staging Support ===<br />
<br />
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.<br />
<br />
How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.<br />
<br />
=== Admin Toolbox ===<br />
<br />
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.<br />
<br />
=== Migration ===<br />
<br />
'''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.<br />
<br />
Things like [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
<br />
=== Multi-User Blogs ===<br />
<br />
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.<br />
<br />
=== Read-Only Mode ===<br />
<br />
Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
<br />
=== Undo ===<br />
<br />
Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_install_script_refinements&diff=6240SoC install script refinements2013-03-20T21:41:07Z<p>Dirk: adopt Modern Curve-like design</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
The install script is one of the very first things a new Geeklog user encounters. Therefore, it's important that it's easy to use, supports the user in installing, updating and migrating a Geeklog site while being robust and providing helpful hints and error messages.<br />
<br />
<br />
== Incentive ==<br />
<br />
The current install script was originally implemented as a GSoC project in 2007 and further improved upon in GSoC 2008. We're still pretty happy with it, but there's always room for improvement. And this is what this GSoC project is about.<br />
<br />
Think ''evolution'' not ''revolution''.<br />
<br />
<br />
== Details ==<br />
<br />
The following is a rather random list of - mostly minor - issues where the install script could be improved.<br />
<br />
=== Error Handling and Usability ===<br />
<br />
* '''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.<br />
* 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.<br />
* 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)<br />
* The install script could possibly even offer to attempt to fix read/write permissions where they do not match the required setting. Note that this may not be possible on some hosting platforms.<br />
<br />
=== HTML and CSS ===<br />
<br />
* Bring the '''design''' more in line with Geeklog's new default theme "Modern Curve" (as of Geeklog 2.0.0).<br />
* 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).<br />
<br />
=== Localization ===<br />
<br />
* '''Character Set Conversion''': Say you initially set up your Geeklog site to use ISO-8859-1 and want to switch to UTF-8 now. All the content would have to be [http://www.geeklog.net/article.php/200410120657418 converted manually]. The install script could do that for you instead.<br />
* Allow for '''localized install data'''. Currently, a fresh setup is always in English, with English default stories, preferences, etc.<br />
<br />
=== Miscellaneous ===<br />
<br />
* Build <tt>install/admin/info.php</tt> into the install script.<br />
* 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).<br />
* 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).<br />
<br />
=== Database Migration (optional) ===<br />
<br />
The vast majority of our users is using MySQL. So the following ideas, while useful for those who cannot or do not want to use MySQL, are less important right now. Consider them optional:<br />
<br />
* The '''Site Migration''' feature should also work for PostgreSQL and/or MS SQL<br />
* Implement a '''Database Migration''', i.e. allow switching from Postgres to MySQL or MS SQL or the other way around<br />
<br />
=== Your idea here ===<br />
<br />
As explained above, we are not looking for an entirely new install script or any radical changes in this project. We are, however, open to new ideas. Someone who's new to Geeklog (that would be ''you'') can probably look at the install process from a fresh perspective and suggest improvements. Let us hear them.<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''low to medium''<br />
<br />
The proposed changes aren't overly difficult but require a lot of attention to detail and testing.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6239GSoC Brainstorming2013-03-20T19:12:13Z<p>Dirk: notes on an install script improvements moved to a separate project page</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
* 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.<br />
* 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 ...<br />
* '''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.<br />
* '''Multi-site Setup''': Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
* '''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.<br />
* '''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.<br />
* '''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 [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
* '''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.<br />
* Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
* Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Google_Summer_of_Code&diff=6238Google Summer of Code2013-03-20T19:11:24Z<p>Dirk: new project: Install Script Refinements</p>
<hr />
<div>== What is it? ==<br />
<br />
[[image:GSoC2013_logo.png|right]] The [http://www.google-melange.com/ Google Summer of Code] is a program sponsored by Google where they pay students to develop open source software. Google have been running this program every year since 2005. Geeklog was accepted as a mentoring organization in [[Summer of Code 2007|2007]], [[Summer of Code 2008|2008]], [[Summer of Code 2009|2009]] and [[Summer of Code 2010|2010]].<br />
<br />
Geeklog did not participate in GSoC in 2011 and 2012, but we will be applying again for 2013. Please note that the list of accepted organizations will only be published on April 8 - until then, we won't know whether or not Geeklog will be in GSoC 2013.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
Below is a list of projects that we feel would add useful functionality to Geeklog. These are fully fleshed-out project ideas that you can apply to "as is":<br />
<br />
* [[SoC dynamic feeds|Add Support for Dynamic Feeds with Access Control]]<br />
* [[SoC core notification support|Core Notification Service]]<br />
* [[SoC test framework revisited|Unit Test Framework revisited]]<br />
* [[SoC improve the Spam-X plugin|Improve Geeklog's spam filter]]<br />
* [[SoC template engine|Template Engine Upgrade]]<br />
* [[SoC php sessions|Provide PHP Session Handling]]<br />
* [[SoC comments and trackbacks|Merge display of comments with trackbacks and pingbacks]]<br />
* [[SoC topic improvements|Topic Improvements]]<br />
* [[SoC install script refinements|Install Script Refinements]]<br />
* more (mostly unfinished) ideas: [[GSoC Brainstorming]] (for your inspiration)<br />
<br />
We are also willing to accept new ideas from students. In that case, please check that what you're proposing is not already available (e.g. with some existing add-on) or has been rejected in the past.<br />
<br />
The fully fleshed-out project proposals have one or two possible mentors listed which you can contact if you have questions about the project. For any other project idea, you can use any of the ways to [[Google Summer of Code#Contact|contact us]] listed below.<br />
<br />
== Potential Mentors ==<br />
<br />
{| width=300px<br />
! align=left | Mentors <br />
! align=left | Co-Mentors<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
|[[User:cordiste|Ben "Cordiste"]]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=1461 Vinny Furia]<br />
|-<br />
|[http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
|<br />
|}<br />
<br />
<br />
== Notes for Students ==<br />
<br />
We have collected some information for students here. Please take a moment to read them. Thanks.<br />
<br />
=== Recommended reading ===<br />
<br />
Google provides an [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page extensive FAQ]. There's also a very informative [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students] page as well as a much longer [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide]. We recommend reading those first.<br />
<br />
If you're new to open source development in general, the free ebook [http://www.open-advice.org/ Open Advice] provides insights and experiences from contributors to various open source projects. There's also the classic [http://producingoss.com/ Producing Open Source Software], which goes into a lot more detail (you may want to start with Open Advice for a quick(er) overview).<br />
<br />
=== Required skills ===<br />
<br />
Students interested in any of the above projects should have reasonable experience with PHP and some basic SQL knowledge. Being able to set up your own LAMP server (Linux, Apache, MySQL, PHP) would probably help but isn't a prerequisite.<br />
<br />
Geeklog uses [http://mercurial.selenic.com/ Mercurial] for [http://en.wikipedia.org/wiki/Revision_control revision control]. Students should have a basic grasp of revision control - we can help you with the specifics of [[Using Mercurial]].<br />
<br />
If you meet theses requirements, you may want to try and "get your feet wet". See our [[Getting Started]] guide.<br />
<br />
Also see [[GSoC Student Requirements|what we expect from our students]] during the course of the Summer.<br />
<br />
=== Background information ===<br />
<br />
'''Geeklog''' (current version: 1.8.2) is the software you may have seen running websites such as [http://www.groklaw.net/ Groklaw].<br />
<br />
<br />
== Contact ==<br />
<br />
: '''Important:''' Please note that while we encourage you to send a draft proposal to one of the addresses below first, in the end you ''must'' submit your proposal through [http://www.google-melange.com/ the official Summer of Code website]. Only applications submitted through the website can be considered! Google provides [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#4._How_does_a_student_apply detailed instructions] - please follow them.<br />
<br />
We suggest that you join our [http://lists.geeklog.net/mailman/listinfo/geeklog-devel Development Mailing List], introduce yourself and the project(s) you are interested in. This list is the best place for any questions or discussions related to the projects and their development.<br />
<br />
Or you can hop on our IRC channel, #geeklog at irc.freenode.net and talk to us directly (some patience required - not everyone may be online there all the time).<br />
<br />
If you need a more private communication channel, you can also email us at<br />
:<tt>contact-us(AT)lists.geeklog.net</tt><br />
or use [http://www.geeklog.net/profiles.php?uid=2&subject=Google%20Summer%20of%20Code%202013 this web form]. This goes to a private mailing list which is read only by the GSoC mentors.<br />
<br />
<br />
== Application Template ==<br />
<br />
When applying for a project with Geeklog, please include information covering the following points in your application.<br />
<br />
* Please tell us something about yourself (experience, interests, why you are applying for this project).<br />
* Please include contact information (an email address, at the very least), as we won't have access to the contact information that you entered as part of your application.<br />
* Please explain, in your own words, what the project is and what its goals are.<br />
* Please provide a schedule for your project: The order in which you plan to implement features and an estimate how long it will take and when they will be finished. Don't forget to factor in some time for tests and documentation into your plans.<br />
* If there are any periods during the Summer when you will not be able to work on your project (e.g. due to exams or planned vacations), then please also include this information.<br />
* We would like to ask GSoC applicants to submit a patch for Geeklog as part of your application. You can find our project tracker here: http://project.geeklog.net/tracking/. Try looking for issues that are tagged "[http://project.geeklog.net/tracking/search.php?status_id%5b%5d=10&status_id%5b%5d=20&status_id%5b%5d=30&status_id%5b%5d=40&status_id%5b%5d=50&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=-2&tag_string=beginner beginner]" but feel free to tackle any other issue. This will give us an opportunity to see your coding skills in practice.<br />
<br />
Feel free to expand on this list - just make sure to touch on all the information requested above.<br />
<br />
Thank you!<br />
<br />
== Further Reading ==<br />
<br />
* [[Getting Started]] with Geeklog development<br />
* The [http://www.geeklog.net/index.php?topic=GSoC Summer of Code topic] on geeklog.net provides coverage of our previous participation in the Google Summer of Code.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_install_script_refinements&diff=6237SoC install script refinements2013-03-20T19:11:09Z<p>Dirk: new possible GSoC project to further improve the install script</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
The install script is one of the very first things a new Geeklog user encounters. Therefore, it's important that it's easy to use, supports the user in installing, updating and migrating a Geeklog site while being robust and providing helpful hints and error messages.<br />
<br />
<br />
== Incentive ==<br />
<br />
The current install script was originally implemented as a GSoC project in 2007 and further improved upon in GSoC 2008. We're still pretty happy with it, but there's always room for improvement. And this is what this GSoC project is about.<br />
<br />
Think ''evolution'' not ''revolution''.<br />
<br />
<br />
== Details ==<br />
<br />
The following is a rather random list of - mostly minor - issues where the install script could be improved.<br />
<br />
=== Error Handling and Usability ===<br />
<br />
* '''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.<br />
* 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.<br />
* 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)<br />
* The install script could possibly even offer to attempt to fix read/write permissions where they do not match the required setting. Note that this may not be possible on some hosting platforms.<br />
* 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).<br />
<br />
=== Localization ===<br />
<br />
* '''Character Set Conversion''': Say you initially set up your Geeklog site to use ISO-8859-1 and want to switch to UTF-8 now. All the content would have to be [http://www.geeklog.net/article.php/200410120657418 converted manually]. The install script could do that for you instead.<br />
* Allow for '''localized install data'''. Currently, a fresh setup is always in English, with English default stories, preferences, etc.<br />
<br />
=== Miscellaneous ===<br />
<br />
* Build <tt>install/admin/info.php</tt> into the install script.<br />
* 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).<br />
* 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).<br />
<br />
=== Database Migration (optional) ===<br />
<br />
The vast majority of our users is using MySQL. So the following ideas, while useful for those who cannot or do not want to use MySQL, are less important right now. Consider them optional:<br />
<br />
* The '''Site Migration''' feature should also work for PostgreSQL and/or MS SQL<br />
* Implement a '''Database Migration''', i.e. allow switching from Postgres to MySQL or MS SQL or the other way around<br />
<br />
=== Your idea here ===<br />
<br />
As explained above, we are not looking for an entirely new install script or any radical changes in this project. We are, however, open to new ideas. Someone who's new to Geeklog (that would be ''you'') can probably look at the install process from a fresh perspective and suggest improvements. Let us hear them.<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''low to medium''<br />
<br />
The proposed changes aren't overly difficult but require a lot of attention to detail and testing.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6236GSoC Brainstorming2013-03-20T13:48:49Z<p>Dirk: dropped shopping cart plugin idea, added Undo function idea</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
* 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.<br />
* 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 ...<br />
* '''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.<br />
* '''Multi-site Setup''': Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
* '''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.<br />
* '''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.<br />
* '''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 [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
* '''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.<br />
* Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
* Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.<br />
<br />
<br />
=== Install Script Improvements ===<br />
<br />
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?<br />
<br />
* '''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.<br />
* '''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.<br />
* 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.<br />
* 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)<br />
* 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.<br />
* Build <tt>install/admin/info.php</tt> into the install script<br />
* 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).<br />
* 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).<br />
* 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).<br />
* Allow for localized install data. Currently, a fresh setup is always in English, with English default stories, preferences, etc.<br />
<br />
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:<br />
* '''Site Migration''' should also work for PostgreSQL and/or MS SQL<br />
* '''Database Migration''': Allow switching from Postgres to MySQL or MS SQL or the other way around<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_comments_and_trackbacks&diff=6235SoC comments and trackbacks2013-03-20T13:45:06Z<p>Dirk: on review, decided to downgrade the difficulty level to just "medium"</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Incentive ==<br />
<br />
For user feedback on articles (as well as other objects), Geeklog supports both comments as well as [http://www.geeklog.net/article.php/trackback-pingback trackbacks and pingbacks] (simply referred to as "trackbacks" from now on). These are displayed at the end of an article, in two separate sections.<br />
<br />
The idea for this project is to merge the two sections, so users interested in any feedback on the article only have to check one list instead of two. This would also allow new ways of interaction, like commenting on trackbacks.<br />
<br />
<br />
== Details ==<br />
<br />
=== Database Tables ===<br />
<br />
Internally, trackbacks are stored in a table that shares a lot of common fields with the comments table. Merging those two tables should be possible without adding a lot of overhead.<br />
<br />
The main difference would be that trackbacks are always top-level comments, i.e. they refer to the article in question, not to other comments.<br />
<br />
=== Moderation ===<br />
<br />
Like comments, it should be possible to (optionally) keep trackbacks in a moderation queue, so that they won't be visible on the site until approved by a moderator.<br />
<br />
=== Migration ===<br />
<br />
The main focus of this project would be on the migration of the trackbacks to a new shared comments+trackbacks table. Older trackbacks would have to be inserted between the comments in the correct order, since comments are organized in a [[CommentAlgorithm|tree structure]] that must be updated when merging the tables. There are also concerns about running into timeouts when doing this on a site with a lot of comments (think Groklaw).<br />
<br />
This part of the project requires the most attention as well as extensive testing.<br />
<br />
=== Miscellaneous ===<br />
<br />
* By default, trackbacks should probably be displayed just like regular comments. Define and use some CSS classes for the "trackback comments", though, so that the site owner can make them look different if they want to.<br />
* This would be a good opportunity to review the default settings for trackbacks and pingbacks to ensure they are set in a way such that trackbacks behave and "feel" like comments as much as possible (e.g. create text excerpts for pingbacks).<br />
<br />
<br />
== Bonus ==<br />
<br />
Geeklog has an API for plugins to allow trackbacks. To our knowledge, no plugin currently exists that actually uses this API. If time permits, it would be nice to implement the trackback API in a plugin that already supports comments (e.g. the Static Pages plugin that ships with Geeklog) to ensure that<br />
# the trackback API actually works<br />
# the trackback API still works, now that comments and trackbacks have been merged<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''medium''<br />
<br />
As mentioned above, the migration part will require extensive testing. Debugging problems with this part will require some knowledge of tree structures.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[CommentAlgorithm|Representing Geeklog's Comments in the Database]]<br />
* Somewhat related: The code that produces text excerpts for pingbacks [http://project.geeklog.net/tracking/view.php?id=1186 needs some improvements] ...<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Student_Requirements&diff=6234GSoC Student Requirements2013-03-20T12:33:29Z<p>Dirk: updated for 2013</p>
<hr />
<div>To be able to track student progress during the Summer of Code, we propose that students follow these principles. These are just some broad guidelines - details can always be discussed with your mentor.<br />
<br />
== Progress Report ==<br />
<br />
We expect a weekly progress report. This will help you as much as it will help us, since just sitting down once in a while and thinking about what you did so far and what you plan to do next will help you get a better idea of the progress of your project.<br />
<br />
Your progress report should roughly cover:<br />
<br />
* What did you achieve over the last week?<br />
* What did not work out as expected and why?<br />
* What are your plans for the coming week?<br />
* Where do you think you may be facing a problem or require more time?<br />
<br />
Whether you send this progress report to your mentors only or publish it somewhere (e.g. on a blog or on the geeklog-devel mailing list) is up to you and your mentor to decide.<br />
<br />
We would, however, allow the community to get an idea about the progress of your project once in a while, so we would like to ask you to prepare a summary at around the time of the mid-term evaluation and again at the end of the project. We would like to post that summary in the "Summer of Code" topic on geeklog.net.<br />
<br />
== Commits ==<br />
<br />
The Coding Period starts on June 17. From that point on, we would like to see regular commits and a push to your GSoC repository (which will be provided for you) at least once per week.<br />
<br />
== Integration Period ==<br />
<br />
The last two weeks of the Coding Period should be reserved for integration and test (of the integration). At this point, your project should be complete and ready for merging it back into the main development branch.<br />
<br />
Geeklog has a bi-annual release cycle, with major releases in April and November. We would very much like to see the results of your project make it into the November release. Just think of all the people who will soon use your code <tt>:)</tt><br />
<br />
== Talk to us ==<br />
<br />
Please remember: When you run into a problem (be it with the project or something personal) - tell us about it. We're here to help you finish your project. But to be able to help you, we need to know that there is a problem first ...<br />
<br />
<br />
[[Category:Summer of Code]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Other_anti-spam_services&diff=6233Other anti-spam services2013-03-20T11:48:56Z<p>Dirk: TypePad AntiSpam was shut down</p>
<hr />
<div>= Other Anti-Spam Services =<br />
<br />
A list of anti-spam services (other than [http://linksleeve.org/ LinkSleeve/SLV] and [http://mollom.com/ Mollom]) that could possibly be added to Geeklog as modules for the [[Spam-X Plugin]]:<br />
<br />
== Akismet ==<br />
<br />
[http://akismet.com/ Akismet] is associated with the WordPress blog platform. The service initially required a wordpress.com account, which made it not suitable for use in Geeklog (asking our users to sign up with a competitor's website would have looked odd). This requirement has since been dropped: You still need to sign up but can do so now from the Akismet homepage. The service is free (payments suggested, though. Commercial options are also available).<br />
<br />
There is already an older version of an [http://gplugs.cvs.sourceforge.net/gplugs/akismet/ Akismet module] for Spam-X. It will probably need a review to check for API changes. <br />
<br />
== Defensio ==<br />
<br />
[http://defensio.com/ Defensio] is a service owned by security firm Websense. The service requires signup and is free "for all personal bloggers" (commercial options available).</div>Dirkhttp://wiki.geeklog.net/index.php?title=Other_anti-spam_services&diff=6232Other anti-spam services2013-03-20T11:47:10Z<p>Dirk: Stop Forum Spam implemented in Geeklog 2.0.0</p>
<hr />
<div>= Other Anti-Spam Services =<br />
<br />
A list of anti-spam services (other than [http://linksleeve.org/ LinkSleeve/SLV] and [http://mollom.com/ Mollom]) that could possibly be added to Geeklog as modules for the [[Spam-X Plugin]]:<br />
<br />
== Akismet ==<br />
<br />
[http://akismet.com/ Akismet] is associated with the WordPress blog platform. The service initially required a wordpress.com account, which made it not suitable for use in Geeklog (asking our users to sign up with a competitor's website would have looked odd). This requirement has since been dropped: You still need to sign up but can do so now from the Akismet homepage. The service is free (payments suggested, though. Commercial options are also available).<br />
<br />
There is already an older version of an [http://gplugs.cvs.sourceforge.net/gplugs/akismet/ Akismet module] for Spam-X. It will probably need a review to check for API changes. <br />
<br />
== Defensio ==<br />
<br />
[http://defensio.com/ Defensio] is a service owned by security firm Websense. The service requires signup and is free "for all personal bloggers" (commercial options available).<br />
<br />
== TypePad AntiSpam ==<br />
<br />
[http://antispam.typepad.com/ TypePad AntiSpam] is, as the name implies, associated with the TypePad CMS. It is currently (still) in beta. The service requires signup and is free ("and will always be free" -- quote from the website).</div>Dirkhttp://wiki.geeklog.net/index.php?title=Dealing_with_Spam&diff=6231Dealing with Spam2013-03-20T11:45:01Z<p>Dirk: fixed link</p>
<hr />
<div>== Background ==<br />
<br />
When you allow user contributed content of any form (stories, comments, forum posts, ...) on your Geeklog site, you will sooner or later have to deal with spam. That is, unfortunately, the reality of the web of today and it is not going to change any time soon, as long as spamming is cheap, can be done safely through open proxies or from countries, hosting services, and ISP that don't have an anti-spam policy, and, most of all, as long as people keep on buying from spammers.<br />
<br />
<br />
== The Spam-X Plugin ==<br />
<br />
Spam protection in Geeklog is mostly based on the [[Spam-X Plugin]], originally developed by Tom Willet. It has a modular architecture that allows it to be extended with new modules to fight the spammer's latest tricks, should the need arise.<br />
<br />
=== Spam detection ===<br />
<br />
Geeklog and the Spam-X plugin will check the following for spam:<br />
* Story submissions<br />
* Comments<br />
* Trackbacks and Pingbacks<br />
* Event submissions<br />
* Link submissions<br />
* The text sent with the "Email story to a friend" option<br />
* A user's profile<br />
<br />
Other plugins can also use the Spam-X plugin to filter their content for spam. The Forum plugin does that, for example.<br />
<br />
=== Modules ===<br />
<br />
Geeklog ships with the following Spam-X modules:<br />
<br />
==== MT-Blacklist ====<br />
<br />
MT-Blacklist was a blacklist, i.e. a listing of URLs that were used in spam posts, originally developed for Movable Type (hence the name) and maintained by Jay Allen.<br />
<br />
Maintaining a blacklist is a lot of work, and you're continually playing catch-up with the spammers. Therefore, Jay Allen eventually [http://www.geeklog.net/article.php/mt-blacklist-discontinued discontinued MT-Blacklist] on the assumption that new and better methods to detect spam are now available.<br />
<br />
The MT-Blacklist modules were removed from Geeklog as of version 1.4.1. Instead, we are now shipping modules for [http://www.geeklog.net/docs/english/spamx.html#slv SLV].<br />
<br />
==== Personal Blacklist ====<br />
<br />
The Personal Blacklist module lets you add keywords and URLs that typically exist in spam posts. When you're being hit by spam, make sure to add the URLs of those spam posts to your Personal Blacklist so that they can be filtered out automatically, should the spammer try to post them again.<br />
<br />
This will also help you get rid of spam that made it through, as you can then use the Mass Delete Comments and Mass Delete Trackbacks modules to easily remove larger numbers of spam posts from your database.<br />
<br />
==== IP Filter ====<br />
<br />
Sometimes you will encounter spam that is coming from one or only a few IP addresses. By simply adding those IP addresses to the IP Filter module, any posts from these IPs will be blocked automatically.<br />
<br />
Please note that IP addresses aren't really a good filter criterion. While some ISPs and hosting services are known to host spammers, it won't help much to block an IP address by one of the well-known ISPs. Often, the spammer will get a new IP address the next time he connects to the internet, while the blocked IP address will be reused and may be used by some innocent user.<br />
<br />
==== IP of URL Filter ====<br />
<br />
This module is only useful in a few special cases: Here you enter the IP address of a ''webserver'' that is used to host domains for which you may see spam. Some spammers have a lot of their sites on only a few webservers, so instead of adding lots of domains to your blacklist, you only add the IP addresses of those webservers. The Spam-X module will then check all the URLs in a post to see if any of these is hosted on one of those blacklisted webservers.<br />
<br />
=== Experimental Modules ===<br />
<br />
As mentioned above, Spam-X can easily be extended by dropping new modules into the <tt>/path/to/geeklog/plugins/spamx/</tt> directory. The following modules are currently under development:<br />
<br />
==== Filters ====<br />
<br />
These modules make use of external services to rate posts as spam (or not spam):<br />
<br />
* [http://gplugs.cvs.sourceforge.net/gplugs/akismet/ Akismet modules]<br />
* The '''spam-merge wiki spam list''' is a shared blacklist of serveral Wiki communities and sort of a successor to the discontinued [[Dealing_with_Spam#MT-Blacklist|MT-Blacklist]]. For more information and how to use it with Geeklog see [http://eight.pairlist.net/pipermail/geeklog-spam/2007-May/000009.html here] and [http://eight.pairlist.net/pipermail/geeklog-spam/2007-June/000010.html here].<br />
<br />
==== Actions ====<br />
<br />
The Spam-X plugin also lets you define actions to be performed once a post has been recognized as spam. The default actions are to delete the post and, optionally, send an email to the site admin.<br />
<br />
The following modules also pass the information from a spam post on to other plugins (see below) to block any further spam posts from the same source automatically:<br />
<br />
* [http://lists.geeklog.net/pipermail/geeklog-spam/2005-September/000039.html Bad Behavior module] (Note: For use with Bad Behavior 1 only - won't work with Bad Behavior 2)<br />
* [http://lists.geeklog.net/pipermail/geeklog-spam/2005-October/000046.html Ban plugin module]<br />
<br />
<br />
== Other plugins ==<br />
<br />
=== Bad Behavior ===<br />
<br />
[http://www.bad-behavior.ioerror.us/ Bad Behavior] is a collection of scripts checking for broken HTTP requests as well as signatures of known spambots and aims at stopping those before they even get the chance to post spam.<br />
<br />
Bad Behavior was written by Michael Hampton as a plugin for WordPress but has since been [http://www.geeklog.net/article.php/bad-behavior2 ported to Geeklog].<br />
<br />
=== Ban Plugin ===<br />
<br />
"The [http://www.pigstye.net/gplugs/staticpages/index.php/Ban Ban Plugin] is designed to do one thing. Provide an easy way to ban people from your web site." (quoted from [http://gplugs.pigstye.net/ Tom Willet's site]).<br />
<br />
<br />
== Other methods ==<br />
<br />
When you can identify a spammer by their HTTP request, i.e. by the IP address or by certain characteristics in their HTTP request, e.g. an unusual user agent string, the most efficient method of blocking them is directly on the webserver.<br />
<br />
On an Apache webserver, that is usually done in the .htaccess file, [http://www.geeklog.net/forum/viewtopic.php?showtopic=45359 as explained here]. This method is also useful against [http://en.wikipedia.org/wiki/Script_kiddies script kiddies] and worms.<br />
<br />
<br />
== Resources ==<br />
<br />
* [[Filtering Spam with Spam-X|How to use Spam-X in your own plugin]] (for plugin developers)<br />
* The [http://lists.geeklog.net/mailman/listinfo/geeklog-spam geeklog-spam mailing list] is the best place to discuss new anti-spam techniques for Geeklog as well as report spam sightings.<br />
* Ann Elisabeth Nordbo aka [http://spamhuntress.com/ Spam Huntress] provides lots of useful information regarding web spam on her site and collects information about known spammers in her [http://spamhuntress.com/wiki/Main_Page wiki].<br />
* [[Other anti-spam services]] that could possibly be integrated into Spam-X</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_improve_the_Spam-X_plugin&diff=6230SoC improve the Spam-X plugin2013-03-20T11:40:57Z<p>Dirk: dropped SWOT and downgraded difficulty to "low to medium"</p>
<hr />
<div><center>(This is an idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
Comment spam doesn't need an introduction - pretty much every site gets it. Geeklog ships with its own spam filter, called [http://www.geeklog.net/docs/english/spamx.html Spam-X]. This filter can easily be extended by adding modules so that it can either be updated for the spammer's latest tricks or to add support for new anti-spam services.<br />
<br />
<br />
== Incentive ==<br />
<br />
Spam-X works very well in practice. But of course, there is always room for improvement and that is what this project is about. We are looking for ways to make using the spam filter more efficient (for the site admin) and also try to extend the filtering capabilities.<br />
<br />
From a usage point of view, the handling of long lists of blacklisted phrases and IP addresses could be improved. Also, there are new anti-spam services that we would want to try out.<br />
<br />
<br />
== Part 1: Usability improvements ==<br />
<br />
In addition to using external services (see below) that rate posts as spam or not spam, site owners can use their own blacklists to fine-tune filtering of spam specifically for their own site. As a result, however, you'll often end up with long lists of blacklist entries. There are two obivous problems with this:<br />
<br />
# you don't know whether or not such a rule is still valid, i.e. used to filter spam<br />
# the long lists are hard to use and maintain<br />
<br />
We have (raw and unfinished) patches for both of these issues ([http://project.geeklog.net/tracking/view.php?id=1076 #1076] and [http://project.geeklog.net/tracking/view.php?id=1077 #1077]). So the minimal goal for this part would be to finish and implement these changes.<br />
<br />
However, we would also welcome new ideas on how to better handle these issues. Surely, having a sortable list of several hundred entries is not the only possible solution to this? Here's a chance for a student (i.e. you) to come up with a clever idea that sets your proposal apart from the others.<br />
<br />
Other UI improvements that we're looking for (and that should be easy to implement) in this part of the project would be to ensure consistency with the "look and feel" of the rest of Geeklog. Currently, the Spam-X plugin is sticking out a bit, both from the way the admin panels work as well as from how they look. This would probably make a good first task in the project.<br />
<br />
<br />
== Part 2: A new spam filter module and API changes ==<br />
<br />
Geeklog currently ships with a Spam-X module for [http://linksleeve.org/ LinkSleeve] (aka SLV). At the time, this was the only free service available that didn't require creating an account, so that it is usable "out of the box".<br />
<br />
Over time, more anti-spam services have appeared ([[Other anti-spam services|see list]]). One of the most interesting - and free - anti-spam services these days is [http://mollom.com/ Mollom], which is associated with the Drupal community (but not limited to Drupal sites). <br />
<br />
One important difference between Mollom and other services is that it can return an "unsure" ranking for a comment post. This means that the post may or not be spam - Mollom isn't sure. So what do we do? Display a CAPTCHA to the poster.<br />
<br />
This concept, however, can not easily be integrated into Geeklog right now. First of all, Spam-X currently expects either a "thumbs up" or "thumbs down" answer, after which the comment post is either allowed or dismissed. "I don't know" simply isn't supported. So to support this third possible reply, some changes will have to be made to Spam-X itself and to the Geeklog code calling it.<br />
<br />
There's also the problem that Geeklog's CAPTCHA plugin would always display a CAPTCHA to the user. So if Mollom were to return an "unsure" response, the poster would have to solve ''two'' CAPTCHAs, which would be very annoying. So we need a solution for this scenario, e.g. some communication with the CAPTCHA plugin.<br />
<br />
And finally, since we're going to have to change the Spam-X API anyway, this would be a good opportunity to address a design flaw: Once a comment post is considered spam, it is deleted. There is currently no way to store the post for later review (and possible approval). This is not as simple as it may seem, though, since currently Spam-X simply doesn't know where the post came from - it could be a comment or a story submission, both of which would have to be treated differently.<br />
<br />
Backward compatibility has to be considered. There is third-party code out there that uses the current Spam-X API that we don't want to break. An easy, though not the only, way out would be to introduce new API functions.<br />
<br />
<br />
== Level of Difficulty ==<br />
<br />
''low to medium''<br />
<br />
The usability changes and implementation of the Mollom module itself should be relatively straightforward (there already is a PHP class for Mollom). Changing the Spam-X API will be more demanding, especially since backward compatibility will be an issue.<br />
<br />
''Possible mentors:'' [http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer], [http://www.geeklog.net/users.php?mode=profile&uid=408 Dirk Haun]<br />
<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [[Dealing with Spam]] in Geeklog<br />
* [[Filtering Spam with Spam-X]]<br />
* [[Other anti-spam services]]<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=Main_Page&diff=6229Main Page2013-03-17T17:26:10Z<p>Dirk: updated current version number</p>
<hr />
<div>[[Image:Logo.gif]]<br />
<br />
== Geeklog Wiki has migrated to new hosting. ==<br />
<br />
<pre style="color:red">Please report any wiki issues in the Geeklog forum thread.</pre><br />
<br />
[http://www.geeklog.net/forum/viewtopic.php?showtopic=94454 http://www.geeklog.net/forum/viewtopic.php?showtopic=94454]<br />
<br />
== Geeklog Documentation ==<br />
<br />
This is the main entry for Documentation for the [http://www.geeklog.net/ Geeklog] CMS and weblog engine. The current version is 1.8.2sr1.<br />
<br />
This documentation is a result of community action. Everyone is invited to [http://wiki.geeklog.net/wiki/index.php?title=Special:Userlogin sign up] and participate. If you see an omission you can fill it in. If you see a mistake, correct it. If you see where things could be better organized, change it. If you have a note about a particular configuration, add it. In other words: We need your help to make it better!<br />
<br />
* [[Geeklog Documentation]]:<br />
*# [[Introduction]]<br />
*# [[Installation]]<br />
*# [[Administration]]<br />
*# [[Users Documentation|User's Documentation]]<br />
*# [[Programmers/Developers Documentation]]<br />
* Quick Links:<br />
*# [[Complete Table of Contents]]<br />
*# [[Special:AllPages|List of all Articles]]<br />
*# [[Getting Started]] with Geeklog Development<br />
*# [[Google Summer of Code]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6219GSoC Brainstorming2013-02-21T08:44:06Z<p>Dirk: fixed formatting</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
* 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.<br />
* 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 ...<br />
* '''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.<br />
* '''Multi-site Setup''': Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
* '''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.<br />
* '''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.<br />
* '''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 [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
* '''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.<br />
* Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
* 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])<br />
<br />
=== Install Script Improvements ===<br />
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?<br />
<br />
* '''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.<br />
* '''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.<br />
* 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.<br />
* 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)<br />
* 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.<br />
* Build <tt>install/admin/info.php</tt> into the install script<br />
* 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).<br />
* 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).<br />
* 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).<br />
* Allow for localized install data. Currently, a fresh setup is always in English, with English default stories, preferences, etc.<br />
<br />
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:<br />
* '''Site Migration''' should also work for PostgreSQL and/or MS SQL<br />
* '''Database Migration''': Allow switching from Postgres to MySQL or MS SQL or the other way around<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6218GSoC Brainstorming2013-02-21T08:43:30Z<p>Dirk: idea: read-only mode</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
* 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.<br />
* 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 ...<br />
* '''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.<br />
* '''Multi-site Setup''': Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
* '''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.<br />
* '''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.<br />
* '''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 [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
* '''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.<br />
* Switching a site to ''Read-only mode'': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.<br />
* 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])<br />
<br />
=== Install Script Improvements ===<br />
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?<br />
<br />
* '''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.<br />
* '''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.<br />
* 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.<br />
* 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)<br />
* 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.<br />
* Build <tt>install/admin/info.php</tt> into the install script<br />
* 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).<br />
* 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).<br />
* 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).<br />
* Allow for localized install data. Currently, a fresh setup is always in English, with English default stories, preferences, etc.<br />
<br />
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:<br />
* '''Site Migration''' should also work for PostgreSQL and/or MS SQL<br />
* '''Database Migration''': Allow switching from Postgres to MySQL or MS SQL or the other way around<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&diff=6216GSoC Brainstorming2013-02-15T10:12:53Z<p>Dirk: more information on the multi-site setup idea</p>
<hr />
<div>== New Ideas ==<br />
<br />
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.<br />
<br />
* 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.<br />
* 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 ...<br />
* '''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.<br />
* '''Multi-site Setup''': Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).<br />
* '''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.<br />
* '''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.<br />
* '''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 [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.<br />
* '''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.<br />
* 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])<br />
<br />
=== Install Script Improvements ===<br />
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?<br />
<br />
* '''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.<br />
* '''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.<br />
* 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.<br />
* 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)<br />
* 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.<br />
* Build <tt>install/admin/info.php</tt> into the install script<br />
* 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).<br />
* 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).<br />
* 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).<br />
* Allow for localized install data. Currently, a fresh setup is always in English, with English default stories, preferences, etc.<br />
<br />
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:<br />
* '''Site Migration''' should also work for PostgreSQL and/or MS SQL<br />
* '''Database Migration''': Allow switching from Postgres to MySQL or MS SQL or the other way around<br />
<br />
<br />
== Leftover Ideas ==<br />
<br />
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.<br />
<br />
* [[SoC_WebDAV_API|WebDAV API]]<br />
* [[SoC_content_translation_service|Google Translation API]]<br />
* [[SoC_web_analytics_api|Implement Open Web Analytics]]<br />
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]<br />
<br />
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.<br />
<br />
<br />
[[Category:Summer of Code]] [[Category:Development]]</div>Dirkhttp://wiki.geeklog.net/index.php?title=SoC_topic_improvements&diff=6215SoC topic improvements2013-02-15T10:10:15Z<p>Dirk: GL 1.9.0 -> 2.0.0</p>
<hr />
<div><center>(Return to the main idea page for the [[Google Summer of Code]])</center><br />
<br />
== Introduction ==<br />
<br />
When Geeklog 2.0.0 is released Topics will be able to have child Topics and, Blocks and Articles can be assigned to one or more Topics. With these new features of Geeklog, this makes a number of the ideas in the Google Summer of Code 2010 [[SoC category plugin|Category Plugin]] project not relevant. This new Topic Improvements project takes into account some of the projects from the Category Plugin and adds in a few new ideas.<br />
<br />
== Objective ==<br />
<br />
The feature list for the Topic Improvements can be broken down into several parts:<br />
<br />
New Plugin API<br />
* Add new plugin API to integrate extra fields from one or more plugins into edit forms. This should allow for displaying, validation and saving the information. Some functionality will also be required to tell the plugin what plugins it should not integrate into<br />
* Add new plugin API to integrate extra fields from one or more plugins into submission forms <br />
* Add this functionality to the admin editors and submission forms of Articles, Category plugin, Static Pages plugin, Polls plugin, Links Plugin and Calendar plugin<br />
* Allowing plugins to display items amongst the articles when a topic is displayed<br />
<br />
<br />
Topic Editor<br />
* Create some sort of tree user interface (jQuery UI tree still appears to be in planning stage) to display categories on left with selected category/item info on the right<br />
* Add description? (http://project.geeklog.net/tracking/view.php?id=1174)<br />
<br />
Menu Editor:<br />
* Based on Topics (Admin may hide topics from being viewed in the menu)<br />
* Replaces/Adds to Topics Block and Top Menu<br />
* Ability to add menu items to other Geeklog objects and webpages<br />
* Interface for changing the style of the menus<br />
* Minimum support for CSS 2 styling<br />
<br />
Tags:<br />
* A Topic can be defined as a tag<br />
* Tag Cloud block<br />
* Page with Tag Cloud which lists items from selected tag as well as other tags the items belong too. <br />
<br />
What's Related Block:<br />
* Based on Topic relationships (Any other related info???)<br />
* Block should be able to display by using an autotag<br />
* Allow plugins to use the block<br />
<br />
== Level of Difficulty ==<br />
<br />
''medium''<br />
<br />
This project will require someone to spend time understanding how Geeklog Topics and the core plugin API works. You will also need to install a number of the more popular plugins that offer similar features to see how they work. As of version 1.8.0, Geeklog includes jQuery. jQuery could be used with this project for the menu system and/or the Topic Admin editor tree.<br />
<br />
''Possible mentor:'' [http://www.geeklog.net/users.php?mode=profile&uid=11721 Tom Homer]<br />
<br />
<br />
== Further Reading ==<br />
<br />
* [http://www.geeklog.net/filemgmt/index.php/1030 Navman plugin] is a Navigation manager that offers Multi-level menu and Breadcrumb support (Version 0.2.0)<br />
* [http://www.portalparts.com/nexfile/index.php GLMenu plugin] dynamic site menu builder (Version 3.1)<br />
* [http://mystral-kk.net/filemgmt/index.php/20 Tag plugin] allows you to tag articles and static pages (Version 0.5.2)<br />
* [http://pear.php.net/package/HTML_TagCloud HTML Tag Cloud Pear library]</div>Dirk