Thursday, December 07, 2006

Drupal 5 beta

Drupal 5 is out and in beta stage. Looks good. Has a lot of improvements and fixes. Detailed list is here. I am waiting for it to mature a little more and also want some more plugins to be upgraded so that I can deploy it and test it out. Excited about it.

Sunday, November 05, 2006

Rich Text support in Drupal

First and foremost, i will make it clear that I am a drupal fan. I have used it on a couple of sites and was taken away by the simplicity and ease of use. Things I appreciate most in drupal are is simple admin interface and the ease to add extensions. The themes are gorgeous!

Now the bad part... May be the only thing I do not like is its failure to support rich text editing. Not that it feels incomplete without it, its just that a lot of my users had been craving for this feature lately. I was wondering why it did not come built-in with this feature... Lately, I read about the ongoing debate on whether drupal should include this feature or not... or if yes, then in what form?

I do not want to get involved in this debate, as there is heavy fire going on from both sides. What I would express here is my own opinion only. Drupal developers have a genuine reason when they say that none of the open-source options are stable and they do not want to introduce instability in the distribution. Moreover, this will bloat the distribution, which is remarkably small compared to its features. Both perfectly valid.

The same developers claim that its blog is its killing feature. And indeed, the integration of blog and other fundamental features of drupal are extremely well integrated. But a blog without aesthetics is not very nice. Compare it with wordpress, or even blogger.com. All offer basic rich text editing within blog posts. Why should drupal users be deprived of his feature? I cannot ask my users to learn tags etc just for blogging? They are familiar with MS Word and its clones. Why should the learning curve be so steep. I do not want to scare away my clients.

So, what is the solution? I propose that one should suggest using a WYSIWYG editor for blogs, which runs as a browser plugin. Something like performancing but with few tweaks. User must be able to select when he wants to use it or keep the text plain. Maybe, when the focus is in textarea, user can right click and select "Edit using rich text editor". The text area becomes disabled and a rich text editor firs up and it takes the current text as input and allows wysiwyg editing. One user has finished adding stuff, he closes the editor and the editor converts all its stuff into html code within the textarea. Not just drupal, all the blogging tools will benefit from it. It need not be bundled with drupal and its roadmap may be different from drupal's. This way, drupal developers will not be scared away by unstable code and users will not be scared away by the formatting tags.

But the big question is: will the users install a tool just to start blogging? I believe that they will, if they love blogging so much!

Thursday, October 12, 2006

First impressions on Django

I had used a few CMS and analyzed quite a few of them. Mainly I used PHP based systems. Lately I found interest in Python and Python based CMS. One of them particularly struck me: Django. It seems to be one of the best options available in Python domain. But it still isin't a version 1.0 . Though nowhere it says its beta, but still the version number doesn't assure me that its enterprise ready.

To be honest, Django is not a CMS itself but a framework for developing CMSs. One nice thing with Django is that its modules generate APIs automatically and can interwork seamlessly without interfering with each other. Moreover, a sufficiently complete collection of Django plugins can itself be a CMS! Isin't it wonderful? Framework + plugins + themes = very good CMS. I would probably love to see Django community expanding and more and more contributors developing modules and other addons for it. And, hopefully within next few months I would see a distribution of Django having Django core and some addons which could be deployed easily and used as a full-fledged CMS.

I won't be using Django for the time being (though I like it!) just because I do not have the inclination to code for each and every feature needed. If coding in Django is so simple and beautiful, then probably I will wait for it to mature a bit more so that it is easily deployable and maintainable by a novice user. I will list down a few points on what Django comunity needs to do to reach the status of Drupal or Joomla.

1. Themes support: Templates is not enough, there should be themes! That too a 2-level theme system would be best. First level is layout which can be attained through template system described. the second level should be colours. The same template should be able to come in several themes. the themes should be configurable by user in his profile.

2. Easy deployability: It should be simple enough to be easily deployed. At the most, the user should be asked to configure only 4-5 parameters and start using it. Rest could be configured using Admin screen. Moreover, it must be deployable on a shared hosting server without shell access or root access.

3. Automatic admin screen is probably the killer feature, no hassels. I would love to see one more level in between user and admin: moderator. So any user can create content, moderators can moderate content from any user and admin should be able to configure the settings for that particular feature.

4. Plugins for various features: A certain minimum list of plugins should be available for it to be called a CMS. I will go ahead and give a list of what I consider a minimum set:
  • Blog
  • Generic Node (if any user can edit any other user's node, it becomes a wiki!)
  • Feed generation (already available) and also presenting external feeds as HTML
  • WYSIWYG Rich-text editor
  • Basic AJAX supported features (live search, inline form validation, etc.)
  • Image gallery
  • Searcheable user profiles, personal details
  • Discussion forum
  • Comments on posts
  • Archive viewer
  • Form creator
  • Frontpage creator
  • Polls
  • Mail user through contact form
  • Attaching generic page (any user modifiable) to user to make a scrapbook
  • Word filers
  • Keyword cloud
  • vote on a node
  • create robots.txt, sitemaps & page headers automatically for search engines
  • Statistics and user tracking
  • A single page which shows all content generated and files uploaded by a user.
  • Invite users
  • Points to users based on activity he does
  • Buddy list

Well, probably I am going too far, but this is just one persons wish, to enhance Django to a full fledged system.