Short checklist for Postfix + MySQL + Dovecot + SASL authentication on Fedora

1. Postfix needs to be rebuilt with Mysql enabled Follow this tutorial: http://postfix.wiki.xs4all.nl/index.php?title=Virtual_Users_and_Domains_with_Courier-IMAP_and_MySQL This one also helps: Virtual Users And Domains With Postfix, Courier And MySQL (Fedora Core 5) | HowtoForge - Linux Howtos and Tutorials 2. Instal cyrus-sasl and cyrus-sasl-sql. Configure /etc/sysconfig/saslauthd to run with the rimap mechanism 3. Start saslauthd [...]

Adaptation explained

It seems that there's a proposal to introduce adaptation in Python 3000, which sparked a discussion and a nice introduction to adaptation on the python-dev list. Another explanation here. [...]

Printing frameworks and wxPython

As hard as I have tried to find, there's no good printing framework for wxPython. wxEasyPrinting sucks so much for anything more then simple text (for example, the table cells don't support specifying a height). Generating PDF files with a toolkit such as ReportLab (even with Platypus) is harder then it should be, especially when there's no ready made higher level framework. This page explores some of the common printing solutions on Windows. [...]

Override the default actions for an ArchGenXML based Archetype

To specify the default view for an AT archetype the "view" action needs to be overriden. Adding a default_actions=True tagged value in the model will generate a view action that will use the base_view template. To be able to change the view action, default_actions should be deleted from the model and replaced with a base_actions=my_actions. The my_actions statement could look like this: my_actions = ( {'action': 'string:${object_url}/base_edit', 'category': 'object', 'id': 'edit', [...]

Customized Archetypes edit form with only one of the fields

I recently had a need for an "administration screen" for an AT-based content that would give the administrators just one field to edit and following that edit, change the workflow state of that piece of content. Usually, to limit the fields visible in the edit form, I would give those fields different write permissions. Obviously, in this case this was not possible, so I had to take another path. Easiest way to achieve my goal was something like this: [...]

Trying KDE as the main work desktop

Until a year ago, when I had my first hands-on experience with Ubuntu, I was a KDE fan. I still admire the desktop and follow closely the development, but I was so impressed at that time by the uniformity and visual appeal that Gnome, under Ubuntu, offered, that I switched. Recently I found the Gnome desktop to be a bit on the slow on my laptop, so I've tried several lighter window managers. [...]

Running Microsoft Word as a Windows service

Apparently, this is not recommended by Microsoft, but they have some pointers on how to achieve this on their website. How to configure Office applications to run under the interactive user accountConsiderations for server-side Automation of OfficeI ran through the steps in the first article and I can attest that it's possible to use Microsoft Word to generate, for example, PDF files by printing them from a service. I have the feeling that most of those steps are not needed if Word is not accessed as a COM service, and all is needed is to create a new user, start and configure Word to have a running instance and then configure the service to run as that user. [...]

Small snippet to read the title for a DCWorkflow state

portal_workflow.getTitleForStateOnType(obj.review_state, obj.portal_type) Well, that's about it. I'll add other relevant API methods to work with the workflow tool when I'll have a need for them again. [...]

Improve Plone-based website performance with simple Apache caching

I won't go too much into details, and this is more for my own personal reference, but using this short recipe I was able to increase by up to 100 times the performance of a plone based website. For a lot more details and more advanced techniques for caching, integration with squid and cachefu, visit the Plone documentation HowTo section. The website hosts mostly news updates, and is edited mostly by an editorial staff, under a 24 hours cycle. [...]

Checking for a role or a permission in a context

There are two very useful methods to check for certain security settings offered by the Plone API. First, to check if a user has a certain role, the following snippet can be used: roles_user_has = portal_membership.getCandidateLocalRoles(here)To check if a user has a certain permission, this API method can be used: portal_membership.checkPermission('Manage portal', here) [...]