Outlook default reminders, 18 hour madness

Microsoft in their infinite wisdom have two defaults for reminders on meeting requests, one is for appointments and one for all day events. The option in Tools -> Options is for appointments/meetings only and the defaults for all day events is hardcoded to 18 hours and canโ€™t be changed. Now depending on how you create the appointment and which view you are in will depend on which default you get.

If you are in month view and click on a date it will use the all day default (hardcoded to 18 hours) even if it is not an all day event! If you click the new button or are in week or day view it will use the meeting/appointment default (whatever you set in the options).


Grepping Hell

Well that was a tad embarrassing I thought I had lost the ability to grep. All I wanted to do was find any instances of jt1.name in files in the current directory, simple I thought :
grep jt1.name *

That returned loads of hits that didn’t match at all eg :

modules/UpgradeWizard/commit.php:$from_dir = clean_path(remove_file_extension($install_file) . "-restore");
modules/UpgradeWizard/SugarMerge/EditViewMerge.php: * this will store the meta data for the original file
modules/UpgradeWizard/SugarMerge/EditViewMerge.php: * this will store the meta data for the new file
modules/UpgradeWizard/SugarMerge/EditViewMerge.php: * this will store the meta data for the custom file
modules/UpgradeWizard/SugarMerge/EditViewMerge.php: * this will store an associative array contianing all the fields that are used in the original meta data file
modules/UpgradeWizard/SugarMerge/EditViewMerge.php: * this will store an associative array contianing all the fields that are used in the new meta data file
modules/UpgradeWizard/SugarMerge/EditViewMerge.php: * this will store an associative array contianing all the fields that are used in the custom meta data file
modules/UpgradeWizard/SugarMerge/EditViewMerge.php: * this will store an associative array contianing all the merged fields
modules/UpgradeWizard/SugarMerge/EditViewMerge.php: * Merges the fields together and stores them in $this->mergedFields
modules/UpgradeWizard/preflight.php: //Check the current and target versions and store them in session variables
modules/UpgradeWizard/silentUpgrade.php://look for session vars there and restore them
modules/UpgradeWizard/uw_ajax.php: $desc .= $persistence['uw_restore_dir']."\n\n";
modules/UpgradeWizard/uw_utils.php: * Backs-up files that are targeted for patch/upgrade to a restore directory
modules/UpgradeWizard/uw_utils.php: // create restore file directory
modules/UpgradeWizard/uw_utils.php: $_SESSION['uw_restore_dir'] = clean_path($rest_dir);
modules/UpgradeWizard/uw_utils.php: // get name of current file to place in restore directory
modules/UpgradeWizard/uw_utils.php: // only copy restore files for replacements - ignore new files from patch
modules/UpgradeWizard/uw_utils.php: $desc .= $_SESSION['uw_restore_dir'] . "\n\n";
modules/UpgradeWizard/uw_utils.php: if(isset($_SESSION['uw_restore_dir']))
modules/UpgradeWizard/uw_utils.php: unset($_SESSION['uw_restore_dir']);
modules/Meetings/Meeting.php:// Meeting is used to store customer information.

Pages of this came up. When I found the culprit I nearly fell off my chair, some fluffy-kittening person at SugarCRM decided that when doing an upgrade they would make a backup unfortunately they made an interesting choice of names…

drwxrws--- 3 www-data www-data 4096 Jan 12 10:42 -restore
drwxr-xr-x 19 www-data www-data 4096 Mar 9 16:43 .
drwxr-xr-x 3 root root 4096 Jan 23 2009 ..
-rw-r--r-- 1 www-data www-data 342 Mar 9 16:43 .htaccess
-rw-r--r-- 1 www-data www-data 2535 Mar 9 16:43 HandleAjaxCall.php
-rw-r--r-- 1 www-data www-data 155 Dec 17 2008 INSTALLATION.txt
-rw-r--r-- 1 www-data www-data 35147 Dec 17 2008 LICENSE.txt
drwxr-xr-x 3 www-data www-data 4096 Oct 22 14:52 ModuleInstall
-rw-r--r-- 1 www-data www-data 5075 Dec 17 2008 SugarSecurity.php
-rw-r--r-- 1 www-data www-data 5590 Dec 17 2008 TreeData.php
-rw-r--r-- 1 www-data www-data 2488 Mar 9 16:43 WebToLeadCapture.php
drwxr-xr-x 2 www-data www-data 4096 Dec 17 2008 XTemplate
-rw-r--r-- 1 www-data www-data 2490 Dec 17 2008 acceptDecline.php
drwxr-xr-x 17 www-data www-data 4096 Mar 9 16:44 cache

That explains why it recursed too…. I didn’t think you could add flags after the search string…

Openfire Active Directory Authentication

Oh the joy and the pain of this….

After a very long time I have now got this working how I want it but it was painful getting the right runes to make the two play nicely.

What I wanted:

  • To have a group in AD that could access and authenticate to Openfire
  • To have a groups in Openfire that were defined by an AD group.

AD Structure

  • All of our users are in a group called “Foo Users”
  • All of our groups are in “Foo Groups”
  • All of our Openfire users are in a group called “openfire” whichย  is inside “Foo Groups”
  • Our Openfire groups are in “Openfire Groups” which is in “Foo Groups” (I made “Openfire Groups” a universal group, this may or may not be needed).
  • I then made the “openfire” group a member of “Openfire Groups”
  • Our domain is called foo.com

The authentication

  • ldap.baseDN : dc=”foo”,dc=”com”
  • adminDN : cn=”administrator”,cn=”Users”,dc=”foo”,dc=”com”
  • Userfilter : (&(memberOf=CN=openfire,OU=Foo Groups,DC=foo,DC=com))
  • Groupfilter : (&(memberOf=CN=openfire,OU=Foo Groups,DC=foo,DC=com))

Hope this helps someoneย  ๐Ÿ™‚

CVSNT SSH Access: No Such Repository

CVSNT is a drop in replacement for CVS so they say ๐Ÿ™‚

Well ish…ย ย  To cut a very long story short I had a problem very similar to this one. I had removed my old CVS install and installed CVSNT in its place.

I go to a dev machine,ย  use WinCVS and BANG no such repository!ย ย  I run to my desk and ssh into the server,ย  no all our code is there and still in the same place and no change to the CVSROOT on the dev machines either.

Fast forward a few hours of keyboard bashing and searching…

Even if you are only accessing CVS via SSH you will still need to configure /etc/cvsnt/PServer just copy the PServer.example file to PServer edit the Repository0 section to put the path to your repository,ย  save and you are done ๐Ÿ™‚

This is a CVSNT security measure apparently and it could have been mentioned a bit more prominantly IMHO ๐Ÿ™‚

Hope this saves someone else a lot of time and dry cleaning bill ๐Ÿ™‚

Why lobby when you can lunch in Corfu

I will assume you have heard the news about Lord Mandy, Geffen and a quick paid for amendment to UK Gov policy…

On http://gl.u.gg a forum for nice people ๐Ÿ™‚ Spinnie who has a flair for playing devil’s advocate said

Civil rights groups? It’s a civil right to steal stuff? I must have missed that memo.

It is a valid question and I offer the following:

It is a civil right not to have a form of communication cut off on the basis of unsubstantiated rumor by an arbitrary commercial trade interest group.

Does this seem any more rational:

“The Associated Amateur Dramatics Union paid observer in the pub heard that you went to see a play and then spoke to several friends and said it was not very good, this was damaging to our revenue stream. Our source said that you had done this before. Therefore we demand the right that you no longer have the right to have a telephone to prevent you causing any more damage to our business.”

There is nothing I fear more than Am-Dram societies getting organised.

OpenFire XMPP Server on Debian

I was asked today to set up an IM server for internal use,ย ย  originally they were specifying Windows messanger but I was able to suggest we try a proper standards based system instead ๐Ÿ™‚

So I need a server,ย  a few clicks in the Proxmox interface ( a rather nice way of handling OpenVZ virtualisation) and I have a new blank Debian lenny box already to play with.

Added the non-free option to the apt repository (as we will need the Sun JRE) and off we go ๐Ÿ™‚ย ย  Apt decided to moan about :

W: There is no public key available for the following key IDs:
W: GPG error: http://security.debian.org lenny/updates Release:
The following signatures couldn't be verified because the public
key is not available: NO_PUBKEY 9AA38DCD55BE302B

Which was solved by this post here ๐Ÿ™‚

A quick :

apt-get install debian-archive-keyring

and off we go again ๐Ÿ™‚

Next stop is the Java monster,ย  mercifully simple to install nowadays:

apt-get install sun-java6-jre

Next we grab the latest openfire deb,ย ย  then install:

dpkg -i openfire_3.6.4_all.deb

Which seemed to be too painless…

Fire up the Wizard on port 9090 from a browser and you are done ๐Ÿ™‚