Monday, July 02, 2007

moving over to wordpress

Why are all Blogspot's themes so narrow? They don't work very well with the code snippets I've posted. So let's move over to WordPress and see how that works ... One of their themes is Drupal's Garland, which matches that on my non-blog site.

Plone + TextIndexNG3 on Windows, Take 2

Turns out I forgot to mention a couple extra steps to get TextIndexNG3 compiled and working on Windows. After failing to follow my own instructions on a new install, and with a reminder from this MinGW + Python post, I realized I didn't document the following:

  1. In addition to the vanilla include directory, also copy the libs folder from the Python tree to %PLONE%\Python

  2. Create the file %PLONE%\Lib\distutils\distutils.cfg with the contents:
    [build]
    compiler=mingw32


  3. Compile the TextIndexNG3 extension with:
    %PLONE%\Python\Python.exe setup build -c mingw32

  4. Make sure to copy the compiled extension to somewhere in Plone's Python's path:
    cp %PLONE%\Data\Products\TextIndexNG3\extension_modules\zopyx \ %PLONE%\Python\Lib\site-packages\zopyx

Sunday, June 17, 2007

Plone + TextIndexNG3 on Windows

The Plone installers for Windows don't bundle the cool TextIndexNG3 fulltext search add-on. To enable it, you need to compile the C extension module that comes with it. There's an older binary version available, but it's expecting Python 2.3, not the 2.4.4 that comes with the bundle. Various posts summarize how to do the compilation, but they don't work as-is for the installer version.

After getting mingw32 setup, it took me a little while to realize that the bundled python doesn't have the "include" directory of files, which the compile process obviously needs. So I downloaded the vanilla sources and copied the include directory over, and it compiled perfectly.

Monday, May 14, 2007

Plone with Active Directory

The plone site is filled with documentation for authenticating against LDAP/AD with LDAPUserFolder. But Plone 2.5 has a new Pluggable Authentication Service ala PAM, but strangely no updating docs.

Glad I found this post to save me the time!

Sunday, May 06, 2007

Plone & MSXML control

When accessing a Plone site with IE6/7, the browser pops up the following message at the top of the page:

This website wants to run the following add-on: ‘MSXML 5.0′ from ‘Microsoft Corporation’. If you trust the website and addon and want to allow it to run, click here…


Most of the posts and comments about it indicate that it's a problem with older versions of Plone (<= 2.5.1) and the included kupu library. But I've been getting it with the latest 2.5.2 release, which includes the supposedly fixed components.

After playing around for a bit, I found that I could bypass the error by adding the site to the Intranet zone. Not an ideal workaround in general, but since I am doing this for a company intranet, it's acceptable for now.

If anyone finds the correct way to fix it, please tell me!

Sunday, April 15, 2007

Keeping Plone Content Private

Plone's security mechanisms are pretty good: very granular and flexible, so you can tailor the site however neded. Strangely, though, if you mark a folder Private, by default the contents within are still visible. Plone's default workflows allow have to be modified to correct this counter-intuitive initial setting.

It is posted as a how-to, but rather than searching for it everytime, here's the link. Maybe in a future release this will be fixed in the shipped product.

http://plone.org/documentation/how-to/make-folder-hierarchy-private

Building an Intranet: Drupal vs Plone

I landed a contract to setup an intranet for a local company. They had looked at Microsoft's SharePoint, but decided it was way too complex for their needs. So they asked me to help them find something better. I originally planned to go with Drupal, due to its great taxonomy model. Having the ability to tag any piece of content from the same vocabulary makes for a very organic structure, allowing the users to find what they need quickly without having to deal with a rigid, arbitrary folder structure.

Unfortunately, Drupal is missing a lot of other features required for a robust intranet, primarily a robust document management feature. External files in drupal are treated more as attachments than as primary nodes, which makes it rather difficult for a user to quickly get to that important presentation the boss needs. There are plans to rectify this, including a Google Summer of Code application this year (though it doesn't appear to have been accepted). Until then, though, I'll need something else.

Which led me back to Plone.  I played with this during 2.1, and was impressed by it's breadth of features, including document management and granular security.  However, it doesn't have anything close to Drupal's taxonomy model built-in.  There's a basic keyword feature, but it's a single list of terms global to all content types, so it won't scale very far.  There are a couple of add-ons ("Products" in the plone/zope nomenclature) but they can't be applied to the existing content types.  To get the full power, you need to build your own types.  This isn't that big a deal, since it lets you provide content types just the way you want to.  But it requires more work up-front than with drupal.   

Plus, it means I have to give in and deal with Python and all its whitespace pickiness.  Sure it's a great language (according to the zealots), but c'mon - there are plenty of code samples around the net, but you can't just copy-paste into your app.  You have to go through and verify all the whitespace lines up before you can run it.  How silly.

Anyway, I'm almost finished with some custom types using ATVocabularyManager.  Then I can get back to building the client's intranet....