CMS extensions: where to find, how to choose?

No matter how long you keep a web site, if you update it frequently, holding a community, or taking care of it in any other way, at any moment idea of changing or improve its functionality may come to your mind.

If you are not a software developer then you have two options: find the developer that will do it for you or try to find extension for the CMS of your site that changes it in the way you want. But even for software developers that know enough about HTML, CSS, JavaScript and server technologies, reinventing the wheel by implementing the idea that is not unique (add CAPTCHA on registration form, for example) may be bad decision.

Even if you think that nobody did it before, it is a good idea to look for extension that close to the requirements. If you will be lucky and find it you save in a huge amount of time and money.

Here are several tips that will help you with searching the extension and make your site better:

  • Extensions are not alway "extensions". Different communities have different names for them. For example, Drupal has "modules", Wordpress has "plugins". Some communities have two: Joomla has "components" and "modules".
  • Start searching at the site of your site CMS. Most of them have a repository of the extensions on their sites.
  • Pay attention to the latest release date of the extension and its version. It is a bad sign if it was updated last time a year ago.
  • Some of the repositories track usage statistic, user rating and maintain a list of issues for the extensions. Check them too.
  • If you know about upcoming major release of the CMS, check whether the extension maintainer claims that the extension will support it.
  • Search for the reviews of the extension in blogs and forums.
  • The functionality you are looking for may be a part of some more advanced extension. For example, email notifications about new users may be a functionality of "Advanced User Management Extension" and "Improved Notifications Extension".

Here is table with a summary of extension names and sources for some of the widely used CMS:

CMSWhat search for?Where to find?What to check?
Drupalmoduleshttp://drupal.org/project/modulesbug reports
issue tracker
usage statistic
CVS repository
Wordpresspluginshttp://wordpress.org/extend/plugins/usage statistic
user rating
Bloggergadgetshttp://www.google.com/ig/directoryusage statistic,
user rating,
comments
Joomlacomponents
modules
plugins
http://extensions.joomla.org/usage statistic,
user rating,
reviews
DotNetNukemoduleshttp://www.snowcovered.com/user rating,
comments,
reviews,
price

Giving FullTrust permissions to the .NET assemblies at network shares

I have Virtual PC machine with Windows XP and .NET 2.0 and I need to start .NET application from the shared folder which is mapped to Z drive letter. But the application executable gives me "Application has encountered a problem and needs to close." dialog right after start.

I've tried to compile it with MSBuild from sources on Z: and it have displayed the following error:

...
System.Security.SecurityException: That assembly does not allow partially trusted callers.
...

Aha, incorrect permissions! MSBuild does not want to load and execute logger assembly from mapped drive because it is in the Intranet zone, which does not allow full trust. It looks like the application executable could not be started because of the permissions too. So how to give allow assemblies from mapped network shares run with FullTrust permissions?

As I have read this can be done in two ways: by configuring permissions in mscorcfg.msc, or by modifying code access security policy with caspol.exe.

Because mscorcfg.msc is not included in .NET 2.0 redistributable I've executed the following command in the Run dialog (Win+R)  to allow assemblies from mapped networking shares run with FullTrust permissions:

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol -q -machine -addgroup 1 -url file://z:/* FullTrust -name "Z Drive"

Works perfect.

Annoying system restart notification after installing updates

As usual, my Windows XP starts asking me to reboot it after installing new updates. In Vista I can postpone notification for several hours and forget about it, but XP pop ups the notification each several minutes giving me a big chance to shut down the computer and lose my work. 

To turn it off just press Win+R and type the following command and press Enter:

net stop "Automatic Updates"

This will completely shot down the automatic updates till the next reboot. Remember that you still need to reboot your computer after completing the work unit to apply the updates - your computer may be vulnerable before reboot.

Cool Wordpress.com blogs

Just FYI, big companies and interesting people who use wordpress.com (or its VIP service) for blogging:

.NET memory management and the garbage collector

Important information on how .NET garbage collector works and how to analyze memory.

A few C# articles for self-learning: memory leaks and anonymous methods

If you rely on garbage collector, sooner or later you will be hit by the out of memory exception:-)

About memory leaks:

About C# anonymous methods:

PHP 5.3 garbage collector test

I've updated my "Optimize PHP memory usage: eliminate circular references" (link) and added tests of the PHP 5.3 garbage collector. In summary, it is good but you can do even better.

PHP 5.3 to MySQL connection error

While trying PHP 5.3 today my scripts could not connect to the mysql database. I was sure that everything is installed correctly, so I've searched for similar issues reported by the developers and found the following interesting bug report:

MySQL functions cannot be used with 5.3.x on Vista when using "localhost"

So after changing localhost in my connection strings to 127.0.0.1 PHP successfully connected to the MySQL server. Another workaround is to delete or comment "::1 localhost" record in the c:\windows\system32\drivers\etc\hosts file.

It seems that this problem hits almost all Vista and PHP 5.3 users (Google: Vista PHP 5.3 mysql localhost "127.0.0.1" hosts) but PHP team is not considering this problem as a bug. Definitely, it is excellent demonstration of the open source wold welcomeness to the new users :-)

I’m Alex Netkachov and I welcome you on my site, which is my technical playground and web log.

User login