More Changelog

This is the changelog for more.brlcad.org GSoC project. The project plan and specification is located here.

April, 20 – May, 23 - Bonding period

During this period I got to know better Cliff, Sean and other BRL-CAD comunity members and GSoC students.

I used Drupal forums to gather some information about what others with similar projects have done, what modules have they used and how. It seems that most of similar projects used CCK and views to power most of the site features, with some modules specific to their content (audio, content, etc). Therefore, I plan to use CCK and views, too and to suplement those with the custom modules I'll create for handleing BRL-CAD models task.

During discussions with Sean, Cliff and Erik, some of the features were left out, while others were promoted. Among the most import issues pointed out were (sorted by importance, from most important to less):

  • model licensing
  • import cad geometry (at least .g files, maybe more)
  • export .g files
  • browsing & searching
  • queing operations (conversions, raytracing, etc)
  • multiple upload methods (some model files could be bigger than '1GB')

This period was also good for reading some more information about the many BRL-CAD tools, since I'll have to use many of them in the second part of the project.

May, 25 – July, 10 - Coding period

During this period I have to do initial setup of more.brlcad.org with Drupal and whatever existing modules I could reuse and select/adapt the site theme of more.brlcad.ord.

May, 23 - June, 2

I got an account on brlcad.org with mysql, SVN, SSH access and all the tools/access rights fast and easy. I started out by installing Drupal and some models: CCK, Views, captcha, flag, pathauto, token.

I decided to use Drupal 5 for various reasons: it's used by brlcad.org, I'm more familiar with it (and contrib modules for it), I'm not very fond of D6, there are more modules available for it. Not all modules I'm using were commited/enabled from the begining; first I like to make sure they work as advertised and that they are useful to me; for others, I didn't know they existed and I added them later.

Also, after a long period of testing and (subjective) comparing many themes, I have finally made up my choice about the site's theme. It's FireflyStream! I like it very much because it's very light (color and code-wise) - my oppinion. I'll probably need to change the logo (maybe one of Cliff's tires).

I also updated codebase for www.brlcad.org and its modules. During this process, I cleaned up the Drupal modules and themes directories (by moving non-core entries in other places) and installed new modules in sites/all/modules (as recommended by Drupal). This makes later upgrades easier.

With some additional configuration the new captcha module (version 3) is able to add captcha points to the site contact form, something that Sean and I talked about some time ago :)

Meanwhile, I got a database dump and the zipped code from the main site and created a testing environment on my PC. This way I can test things safer and easier and independently of whether my Internet connections is working or not.

June, 3 - June, 10

I tried two ways of implementing licensing: node type and CCK node reference or taxonomy and terms. The advantage of taxonomy solution is its lightweight and the easily ability to produce tag coulds from it. However, it has limited features and posibilities for customization. I'm not sure right now how far this licensing issue will go, so I'd like to have some freedom. As thing will move on, maybe I'll come back to this solution, but for now...

I decided to define a new content type for licenses (in addition to the one I used for models). Then I setup models to require a single node-referenced license. This will force users to select one of the licences we support when submitting a model.

Cliff adviced me to start with some already existing open-source licenses, like GPL. I think it's a good way to do it, because it's easier to add new licences in the future that it could be to drop one license and the reassign its models.

For reporting license problems, first I wanted to use the abuse module. However, it's still in beta and someone advised me to look at a more feature-rich module, called flag.

Using the flag module I defined a new type of tagging, which will allows users to report whenever they notice a license infringement. The administrators can retrive a list of the marked models in order to check the report.

TODO: I think I could integrate this tagging with CIA notifications, so that messages are sent when content is tagged.

June, 11 - June, 16

I installed and configured the pathauto, token, imagefield, filefield and nodequeue modules. These will allow the site to use user friendly addreses. I decided to use the following patterns for content:

  • pages: content/title-raw
  • licenses: license/title-raw
  • models: model/title-raw
  • stories: news/yyyy/mm/dd/title-raw
  • users: user/username

I'll probably need soon the token module for the custom modules I'm working on (to create the model preview images).

The last days I've been checking out some WYSIWYG editors modules for Drupal. There are many out there, although it seems that lately, many of them have converged towards the WYSIWYG API module. Mainly, I focused on testing and comparing browser compatibility and features for the FCKeditor, TinyMCE, HTMLArea (using Xinha), widgeditor, and some others.

The most complete/complex editor was probably TinyMCE. It has many features and plugins. However, once enabled, it seemed to be too much for the simple model descriptions: most users will probably to very little formatting. Also, all these features have with some weights (bigger files and longer loading times). The same thing goes for FCKEditor (which also presented some formatting issues) and Xinha (which has some issues with Opera). On the hand, some other modules (like BUEditor) are too simple and don't seem to help very much in editing your content.

In the end, I decided that widgeditor offers the best balance between features and lightweightness, so we'll stick with it for now.