Friday, November 28, 2014

IBM Notes: 25 Years and Counting...

Today marks 25 Years of IBM (Lotus) Notes. It's a pretty impressive lifespan for a product. Sure, Windows has been going 29 years and there are many older systems out there but few I suspect have retained the incredible levels of compatibility that Notes has. Can you still run Windows 1.0, 2.0, 3.0 or even 95 programs on the latest Windows? Sometimes, but not really. Not without emulation. Notes applications however still run fine on the newer notes platforms. 

What is Notes?
For so many years, people thought that Notes was email - in fact, they still do today.  I have no idea why they have that impression, after all, IBM/Lotus sold a separate product, CC:Mail for years before finally deciding that Notes handled mail well enough to not require it any more. 

Nevertheless, Notes always drew comparisons with outlook and lots of companies moved away from Notes mail because it was fashionable (and a safe bet) to use Microsoft and because they figured that the new versions of Outlook did mail better than their Notes (which usually hadn't been upgraded in years). Many of the companies which "moved away" still run conveniently forgotten back-room Notes installations for their applications. Mail is moved but the applications are still there. 

I mostly blame IBM for this, for failing to answer the simple question - what is notes? 

Notes is a rapid development and runtime environment with built-in collaboration, security and replication. 

That's what Notes is. 

Where to from here?
I picked the screen shot at the top of this post deliberately to show that the current version of Notes still has the workspace that the original has. I don't use the workspace, I haven't for about a decade. We have our own nice front end. 

The future of Notes is the web. 

Most of our in-house applications operate equally well in the Notes client and on the web. At the moment our users are still using the client and our customers use the web. The plan is for the development/admin team to continue using the client and for everyone else to use the web. 

IBM have a web offering for Notes/Domino apps but the beauty of having your own domino server is that you own your own cloud. Also, if our customer base want a new system,we can simply and easily develop, test and deploy it, without having to worry about extra runtime requirements. 

What I want from IBM
  • Clear Messages
    Stop muddying the waters with name changes, Connections, Sametime, WebSphere, Cognos and the web versions of these and all your other products. Make a clear statement of what the product does, why it is different to the other products, how it connects and how it adds real business value. Stop treating Notes like it's mail product.
  • Rapid Application Development
    Sort out the XPages mess. Yes, they're good but they take the R out of RAD.
  • Mobilize
    We want a compiler that will wrap up basic android, iOS and Windows functionality into APPs that work with a web-based domino server.
  • Be Proactive not Reactive
    The poodle attack vector was uncovered about 18 years ago. IBM was informed (apparently) 5 years ago. We (the customer base) had to fight way too hard to get a fix delivered -- and even then, I haven't installed it yet because I've heard too many horror stories about the installation.
  • Use OpenNTF Wisely
    OpenNTF is a great resource. All of the standard Notes templates should be developed there with the collaboration of the global notes resources. This would allow real users to provide instant feedback and suggestions for mail and calendar improvements. 

Here's to another 25 years of Notes/Domino - I want to retire before it does.  

Monday, August 11, 2014

Using your Operating System Login for IBM Notes can "Poison" your IDs (and how to fix it)

For years, we've had it easy with Notes. We've had our ID files stored safely on a secure drive and whenever a user moved to a new desktop, we could simply copy their original ID over to their new machine and do most of the setup without them.

All that changed somewhere between Windows 7, Notes 9 and getting Notes to use the Operating System login. It's a good change, don't get me wrong and it certainly protects the users privacy and makes things more secure. Unfortunately it also renders all of our ID's "Poisonous" and now we can't reuse them.

Instead when opening an ID file on a new client installation, just after agreeing to "copy the file to the Notes data directory", we get messages telling us that Notes cannot open the ID File.   Eventually I tried other ID files only to find the same problem.

Fixing the Problem
As it turns out, there's a surprisingly easy fix for this. Simply generate a password protected copy of the ID from the existing installation.

  1. On the working version of the Notes Client for your user that is moving, select File, Security, User Security.
  2. You'll be prompted to enter their Windows Password, get  them to do this and click Ok.
  3. On the User Security screen, click Copy ID...

  4. Choose a location to save your ID.
  5. You will be prompted to enter a password for this new ID

  6. Once your ID is saved, you'll be able to use it on new installations.

What happens when you don't have an existing installation to pick from?
So this procedure works very well if you're moving an existing user but what if their hard disk got corrupted and they're forced to move without their ID?

I haven't tried this method but I've read about it in several forums...

Apparently you can delete the user from the NAB (using the delete key not the Domino delete user function).
I've also heard it said that you can do this by updating rather than deleting the NAB Entry.

Next, create a new user with the same name, same short name and same internet address.
Make sure that you choose a different mailbox name though or things could get ugly when it gets overwritten.

Choose to store the ID on disk and complete the registration process.

Go into the NAB record and change the person's mail file back to the desired location.

You should now have a working ID.

One thing to remember though, creating a new ID will allow you to set up a user and access mail but it won't let you get to any encrypted mail. Those are linked more closely with the original ID.

Monday, June 23, 2014

Reusing Text in Word 2010 via Bookmarks - Part 2 Getting your formatting right

In my last post on reusing text via bookmarks in Word, I mentioned that there was a problem with the reused text retaining formatting. 

Sure, you can reformat the text to look how you want but when you update it, then new text takes on characteristics of the old.  You end up with text that looks like this....

There's an easy (but not obvious) way to fix this;

Getting into Reveal Codes Mode on Field
So, first we need to know exactly what makes our fields tick.  So, click on one of your fields and then press Alt+F9.  The field will change to show the code.

In my case, the code is;

{REF Title \h \* MERGEFORMAT }

This is more or less the default setting (the word title is the name of the bookmark I inserted).  Mergeformat means that the format of the original text is being merged.

To change this option, simply click on the code and overtype it.
In this case, we're going to change MERGEFORMAT to CHARFORMAT.

Once this is done, Press Alt+F9 to turn reveal codes off and then update your field.  (Remember that print preview is probably the fastest way to do this).

If you apply formatting to your field, it will now update with the rest of the field.

If you're still having trouble, it's worth remembering that Charformat applies the formatting of the first character (in this case, the R in REF), to the rest of the code.  You might want to reveal codes and then apply formatting directly to the word REF.

Thursday, June 19, 2014

How to Reuse Text via Bookmarks in Word 2010 (Update once and have it auto-update throughout the document)

I guess this is a bit of an oldie but I was surprised how many people didn't know about it. 

Why would you do this?
If you find yourself opening old documents and then doing a search and replace to change a name, a date or a version number, then this is the tip for you.  It allows you to write your key information down once and then have it auto-update.

If you do a lot of contracts or quotes - or basically any kind of document based on a template, then you'll find this very handy.

Getting Started (Bookmarking the Original Text).
Open a Word document and type in some useful repeating text;

Customer Name:  MyCompany Limited

1. Highlight that text

2. Select the Insert Tab on the Ribbon.

3. Click the Bookmark Button

A dialog box will appear.

4. Type a name for your bookmark.  
This can be any name but it should be something that you'll recognise when you see it.

5. Click Add.

Inserting the Bookmarked Text
So, now that you have bookmarked some text, it's time to reuse that text in other places in your document.

1. Go to a place in your document where you would like to insert the text.

2. Click on the Tab marked Insert

3. Click on the button marked Cross-reference.

4. In the dialog box, set the reference type to Bookmark.

5. In the big white section, choose the bookmark name that you typed earlier.

6. Click Insert.

Note that the dialog box will not close until you click Cancel.  This is actually quite useful behaviour because it means that if you want to reference the company throughout your document, you can just move the cursor to the next place and press Insert again.  When you've finished, click Cancel.

Updating Text
So, now you have your original text and the reused text.
Try changing your original text.
You can update individual samples of your text by clicking on them and pressing F9 but the best way to update everything in one go is to print preview.  Just Press Ctrl+P and then press ESC.  Your document will be updated.

There are two drawbacks to this method.

1. Fields don't update automatically.
Strangely, this behaviour is by design.  If you find it annoying, you can add a macro to do it for you.  See this article for instructions.

2. Text inserted this way carries the original source formatting. In my experience this is the more annoying problem. In my next post, I'll show you how to change this.

For more on bookmarks, including how to add bookmarks from other documents, see this site.

Wednesday, February 05, 2014

How to do Bullets and Numbering in IBM Notes

I forgot the F8 shortcut key today and I looked it up via google. On the way I found a post about colouring text white to hide bullets in notes.  Crazy.  In any case, I wrote these instructions for my people and thought it was worth sharing on the blog;

How to Do Bullets and Numbering in IBM Notes

There are lots of cool things you can do with bullets in IBM Notes.

To turn them on and off, click the bullets or numbering icons on the toolbar

Getting Spacing in Bullets

  • If you're in the middle of a bulleted or numbered paragraph and you want a few lines to yourself.

    Press Shift+Enter
    This gives you a new line inside the bullet.
  • When you press ENTER again without holding down shift, then your bullets will start again.
BTW: That trick works in Notes and Word and blogger and nearly every other application I can think of.

Getting Indentation in Bullets
If you're wanting to do sub-bullets;

  • For example
    • Just below and indented from the main bullet
    • Like a sub-point.
      • Just press F8
      • If you want yet another level, press F8 again.
      • When you've finished,
      • Simply end the bullets or 
    • Press Shift+F8 to get back.

In word and blogger, the F8 is simply the tab and shift-tab keys.

Using Different kinds of Bullets

  • To change your style of bullet, press ALT+ENTER to bring up the properties box.
  • Click on the second tab (it has a paragraph icon on it).
  • The new bullet will take effect immediately. 
  • You don't need to close the box (in fact, it's quite useful when left open).
  • Choose a new bullet type from the list.
  • You can mix and match bullets as you please.

Re-ordering Bullets
  • To re-order items in a bulleted list,
  • Simply hold down the CTRL key and press the up arrow (to move things up)
  • and hold down the CTRL key and press the down arrow (to move things down)
  • That's it.

Wednesday, June 12, 2013

Getting Notes 9 to show Email Addresses as you type

Until recently, in fact until Notes 9, our Notes clients used to show email addresses as we typed them in but suddenly with IBM Notes 9, it started showing their Job Titles.

We got a lot of complaints about this and the fix wasn't entirely obvious (to me at least), so that's why I'm documenting it here.

As you can see, the problem wouldn't be so bad if all of our contacts came from the same company - but they don't. Our contacts come from lots of different companies.

So, how do we change this?

In your Notes client, click on File, then Preferences.
In the left hand panel, click on Contacts.

On the contacts screen, change the type-ahead option drop-down to display Internet Address (or you could use company name which is quite useful too).

Click Ok.

The effect should be immediate, so try starting a new email and typing a first name (then push comma) and see what happens. 

PS: Big thanks to Daniel Lechner and Sunanda A Patil for pointing this out to me.

Friday, May 17, 2013

How to Get your Personal Address Book Data Synching with IBM Notes Traveler and the iPhone/Android

I'm surprised that nobody seems to know how to do this - well, according to my research on the web anyway. So here it is, the instructions for getting your IBM Notes (we don't use the words Lotus Notes anymore) personal address book Synched with your Apple iPhone (and presumably Android too).

Note: I'm assuming that you're already running Traveler and are able to get your mail and calendar.

Enabling Contacts Synchronisation
In IBM Notes, Select File, then Preferences.
Click on Contacts
Make sure that this is turned on;
   [x] Enable "Synchronise Contacts " on the Replication and Sync Tab
While you're in here, make sure that in the Recent Contacts section you have selected;
   (o) Do not add any names

This bit isn't critical to the procedure but it's caused us no end of grief.  It's fine if you don't have lots of outside contacts in a giant corporate address book but it's painful if you do.

Click Ok.

Enabling Replication
On the top Left of Notes, 
Click Open, then Replication and Sync

Make sure that [x] Synchronise Contacts is Enabled.

Setting a Replication Schedule
Click Schedule and then Set Replicaton/Sync Schedule.

Ensure that the Normal Priority is on and at least set to run every 60 minutes on at least business days.

Click Ok.

If you want, you can click Start Now to kick-start immediate replication.

That's it, give it a few minutes (probably less than 5) and you'll have a phone full of contacts. From now on, you can update your contacts on your phone or in your person address book and they'll synch.

Special Note: Don't forget that if you remove and reinstall (or upgrade) your Notes client, you'll probably need to redo these steps or the synch will stop working.

Friday, April 26, 2013

How to Figure out When an Extranet User last logged into your Domino Server

So, you want to do a bit of spring cleaning in your domino address book and apart from people whose email addresses you use all the time, you want to get rid of people who haven't accessed the server in ages. How do you find out when their last access was?

I notice there's a lot of paid solutions on the web but it's functionality that is built into domino already.

Here's how to use this feature;

  1. Start Domino Administrator
  2. Open the server that people log into
  3. Click on the tab marked People and Groups
  4. Near the bottom of the left hand navigator, you'll see Domino User Licence Tracking, expand this.
  5. Expand All Users
  6. Click on All.
  7. You'll now see a list of your users and when they last accessed the system.
  8. Note that the list will only track back a certain distance (in our case 2 years). 

Tuesday, April 16, 2013

Book Review: Instant IBM Lotus Notes 8.5.3: How-to by Barry Max Rosen

Instant IBM Lotus Notes 8.5.3 How-to
Master IBM Lotus Notes with tips, hints, and instructions that will help you increase your productivity
by Barry Max Rosen
Published by PACKT Publishing

Instant IBM Lotus Notes 8.5.3 How-to is a short book by computer standards.  It's 68 pages and includes a lot of illustrations. This meant that I could literally read it during a one-way trip to work on the bus.

For the most part however its short length is good because it manages to introduce many concepts not found in books several times its size and deals with them quickly in a non talky way. It's straight down to business.

The book doesn't identify a single audience but rather targets simple, intermediate and advanced users.  This allows you to get a lot of long-term use out of the book but it also means that for "simple users", reading through the book cover-to-cover isn't really an option.  For example, the book jumps straight from a chapter on mail customization into replication and then modifying INI file settings.

Simple users are much better off picking the chapters that are marked "simple" and sticking with them. This is easy though because the chapter headings include tags which indicate the level at which they are pitched;

  • Customizing your IBM Lotus Notes 8.5.3 experience (Simple)
  • Mastering your Lotus Notes mail (Intermediate)
  • Creating local and managed replicas (Advanced)
  • Mastering calendar and to-dos (Intermediate)
  • Managing contacts (Intermediate)
  • Adding feeds (Advanced)
  • Social integration with widgets (Advanced)
  • Working with Lotus Domino applications (Intermediate)
  • Using Sametime in Lotus Notes 8.5.3 (Advanced)
  • Moving from Microsoft Outlook to Lotus Notes 8.5.3 (Simple)

Arguably, the best chapter is the last one where Barry talks about how to settle Outlook users into Notes. Having been on Notes for so many years myself, I've forgotten how alien it can sometimes seem to newbies but I'm always reminded as soon as a new ex-outlook employee starts.  That last chapter will hopefully change all that and get those new users up and running in no time.

The book doesn't shy away from many of the more complex user-topics, like managed replication and widgets and it covers some very useful material in other areas too, like managing multiple signatures on your mail.

This is a great little book which every IT and HR department should have.  It's a great "up and running" guide to Lotus Notes 8.5.3 and because of the advanced content, it has long term benefits too.

IBM Lotus Notes 8.5.3 - How To by Barry Max Rosen is available from PACKT Publishing in various eBook formats including ePub and PDF and in print form from Amazon.

Honesty clause: I was provided with an eBook version of this publication free of charge for review purposes.

Wednesday, April 03, 2013

Getting into IBM Notes 9

I installed the release version of IBM Notes 9 yesterday and I'm happy to  say that it works a bit smoother than the beta did.  In fact, it's generally quite a nice experience.  I've had no crashes so far (unlike my Notes 8 experience where I discovered three different ways to kill the client in less than 3 keystrokes on the first day).

The new blue icon is nice and the black panel on the mail looks slick too.  As usual, all of our applications work (notes compatibility is generally pretty good).  

We have had a few niggles around Notes interpretation of CDate but those started with 8.5.3 Fix Pack 3, so they don't count.

Single sign-on is working well too and the embedded sametime experience is somehow better. I can't say much about the social experience though. So far the only hint of "Social" that I've seen is the word on the logo.

Taking Away Features
My biggest gripe at this point is the removal of Symphony.  Hey IBM.  I was using that!!!

I know that I could just install OpenOffice or the Symphony 3.1 build from IBM.  I've got Office 2010 and Google Docs (sorry; Drive) anyway. So why was I using Symphony? Mainly because it can read old office documents which the current office can't (not without some registry tweaks anyway).

John Head has an article on this here but I'm yet to see any "free download" in the Solutions Catalog.  In any case, IBM shouldn't provide something that works with the Symphony 3.1 Fork. It should work with OpenOffice (and possibly Microsoft Office too).

This is a nice new release from IBM but I can't help but be concerned.  There's too much backtracking going on here.  Too much "giving then taking away" of features.  I'm not sure that IBM have a clear idea of where the Notes client is going - and that worries me.

  • Workplace?
  • DB2 Databases?
  • Symphony?

Thursday, October 25, 2012

Apple iOS6 Calendaring bug Affecting Exchange (and by extension, Lotus)

One of the things that the company I work for (and most others) do on a regular basis is send meeting invites to people at other companies and on various other systems.  Notes meeting handling isn't perfect and we've had trouble with Blackberry and Google calendars in the past, but nothing like the trouble we've had this week.

It seems that when we send a meeting invite out and one of our recipients cancels, they take over the meeting as chair and cancel it for the remaining participants too - even if they've already accepted.

It's taken us a while to get our head around the problem, particularly as it happened with several different meetings and multiple outside sources.  Naturally, you presume that several systems out there can't be wrong and it must be a problem at our end - even if we haven't changed anything.  Right?


As it turns out, the recently released Apple iOS 6 has a flaw which trips up Microsoft Exchange systems not configured according to best practice.  Lotus Notes/Domino handles things a little differently and we end up with two meetings but the net result is the same - embarrassment.

It's been widely reported but in case you've missed it, here's a notice from MacRumors.

For the time being at least, we're recommending that our people don't accept or reject meeting notices via phone.  It's something I don't do because I had similar problems with may blackberry/google synch but this is  the first time we've had to issue a company-wide warning.

Hopefully Apple and Microsoft will sort this one out soon.

Friday, September 21, 2012

How to Disable Phone-based data for the iPhone 4S

Why would you do this anyway?
With the mobile data connection disabled, the iPhone can still hook into wireless networks, including those at home, in shopping centres and hotels, at McDonalds and Starbucks, on public transport and at the office to surf the internet and to receive data.

It just won't be able to access data where there is either no internet wi-fi connection or where you haven't set it up.  As a means of keeping mobile costs down however, the wi-fi option is certainly better than a mobile data one.

In particular, if you're travelling overseas, you'll want to disable the high-cost mobile internet option.

Why can't I just use the Airport Mode?
Airport mode is designed to allow your phone to be used on aircraft (once the plane has levelled out).  It will prevent the phone from receiving calls effectively turning it into a brick that plays games.

Why wouldn't I just change my plan?
You certainly could change your plan to not include data however this would mean that it would be "permanently off" at least until you change your plan back.  The way suggested in this post is better. If you get stuck somewhere and you suddenly need data access back, you can simply turn it on.

Ok, I'm convinced.- how do I do it?
On your iPhone, go to,

  • Settings 
  • Then General 
  • Then Network 
  • Locate an entry marked Mobile Data 
  • Slide it to Off
  • That's it. 

Thursday, September 20, 2012

Moving from Blackberry to the iPhone 4S

Before I start on this series, I want to make my starting position clear.  I'm generally "phone-agnostic".  I've had a Blackberry Bold 9000 for years and before that it was a Blackberry 8800.  Prior to that I had a Nokia "dumb-phone".

My only non-work phone choice recently was a HTC Android device for my wife.

I've never spent much time with Apple and I've traditionally disliked their computers.  I guess that means that;

1. You have to take any criticisms here with a pinch of salt.
2. If I end up really liking the device, then it's even better than I say.

The longer term plan for this series will be for me to start looking at how to use Lotus Traveler to make the iPhone a secure device like Blackberry.

Initial Thoughts

The apple packaging is very slick and much nicer looking than the blackberry packaging.  (A win to Apple).

The apple device weighs considerably more than the blackberry bold - probably twice the weight actually. It feels much more solid but sooo weighty. (Easily a win to Blackberry)

Sim Card Installation
The iPhone has easily the worst sim card installation facility I've seen. You have to have exactly the right size paperclip to open the sim door.  My paperclips were all too big. Then it needs a smaller size than standard SIM, which meant that I had to go find a Telstra shop.  (Massive win to Blackberry).

Very, very painful.  I found typing on the apple keyboard to be difficult enough and for some reason, it didn't rotate to the wider version when I tilted the phone.   Note; A day later and my typing is very much improved.  Still not up to Blackberry speed, but much better.

Regardless, the apple setup really annoyed me - especially with it needing to create all these accounts and things.  So, I'm going to give that win to Blackberry too.

It took me a short while to remember to  use the big button at the bottom of the phone but it's started to become natural now.  I do miss the blackberry menu button because the menu isn't always obvious on the iphone but I'm getting used to it.  I'll call this one a draw.

This was where the iPhone suddenly started to come into its own. Blackberry has come a long, long way over the last few years but the iPhone completely left if for dead.  There's simply no comparison when it comes to application location and installation.   A massive win to the iPhone.

Interestingly, the wi-fi coverage on the iPhone was not as good as the blackberry. I needed to be closer to the access points in order for it to work.  That's a win to Blackberry.

I'm not sure about this one yet because I'm still trying to find (without cheating) iPhone features however I've found some really good ones - like being able to shut down the phone-data connection while leaving calls and wi-fi working.  I'll post a how-to on that later.  I'm going to give this marginally to the iPhone because although configuration is harder to find, it's certainly more functional.

Business Systems Integration
I got the iPhone to connect to IBM Lotus Traveler easily enough and established a connection to my Gmail without difficulty.  Getting my gmail contacts populated across was a little tricky (since you have to choose Microsoft Exchange !!) but it worked.  I've also managed to set up a VPN connection to work and remote desktop my computer - all free of charge.  I'm impressed.  This one goes to the iPhone.

So there you have it.  At the moment, my scores are dead even but I'm beginning to suspect that I might end up liking the apple device. 

Packt Celebrates 1000 IT Titles with a FREE Gift

You may remember that I've reviewed a few of Packt Publishing's books on this site in the past;

PACKT Publishing is releasing their 1000th IT title this month and are celebrating the event in style.

Anyone who is already registered with Packt or anyone who signs up for a free Packt account before 30 September 2012 will get a surprise gift.

So don't delay, head over to Packt and sign up.

They have easily the best collection of domino books and you might snag yourself a bargain as well as a surprise gift.

Other Useful Packt Links

Wednesday, February 29, 2012

Adjusting our Word VBA Macros for Office 2010 (64 bit)

We've had it easy these last few years. You could just upgrade Microsoft Office and not have to worry about file compatibility or about your macros not working.  I was just beginning to relax.

Unfortunately Microsoft never relaxes and the latest "innovations" extend past the annoying ribbon interface (I've been using it for over a year and I still consider it annoying) to clobber both file formats and macros.

The File Format Problem
The file format problem is easy to fix. First of all, I've changed our defaults to save in Office 97-2003 format.   There's no sense in our company posting files for public consumption in a format that they can't read. In case you're wondering where to change this, click File, then Options and click on SAVE.

If your fleet is still using Office 2003, you can download a compatibility pack which will enable it to read the new office formats.

64 Bit API Declarations
This next bit is a little frustrating.  We rely on INI files in our Macros as they're much simpler than the registry and we can easily get our Notes/Domino apps to write updates into the files. It's all good for automation.  Unfortunately the 32 bit API calls won't work any more.

To get around the problem, replace this;

Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lsString As String, ByVal lplFilename As String) As Long

with this

Declare PtrSafe Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long

Declare PtrSafe Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

The remainder of your INI file reading routine should run without changes.

Unavailable Objects and those Nasty String Function Errors
This one is a nasty one.  Sometimes you'll try to open a macro that contains an unusual object, such as a calendar control.  Word 2003 displays a dialog box which says;  "Could not load an object because it is not available on this machine".  This was helpful.  

Unfortunately, Word 2010 doesn't mention the offending object but instead assumes that all internal string functions, such as LCASE$, UCASE$, LEFT$, RIGHT$, MIDS$ and TRIM$ are external functions in the missing component.

It highlights the first string function and says "Can't find project or library" which promptly sets you off on a wild goose chase.

To fix this problem, 
  1. Stop your macro
  2. Click Tools, then References (if this is greyed out, you didn't stop the macro).
  3. Find the problem Reference in the list and deselect it 
  4. Click Ok.

You'll also have to replace your missing element with a similar control, such as a text box and adjust any code which refers to it.

After that though, you should have a working, if a little disabled, macro.  Now I just need to find a 64 bit calendar control.

Wednesday, February 22, 2012

How to Create an Auto-Response Mail Message in Lotus Notes 8.5.3+

Why would you do this?
Suppose that you have an externally accessible generic email address for your company; or

You might expose this to the web and allow people to send messages to you.

Setting up an auto-response email will tell the senders that their message reached its destination and that it will be dealt with accordingly.  It's also good practice to include links to FAQs or other useful information.

Why 8.5.3
The techniques we'll be using here work in older versions of Notes but some of the options seem to have moved around in 8.5.3.  I figured it was a good time to show you where they've moved to.

The Procedure

Start Domino Designer and open the Mail file to be modified.  A really quick way to do this is to right-click on the application tab and choose "Open in Designer".

In the Left hand panel of designer, expand Code and then double-click Agents.  A new window should appear.

Click the action button marked New Agent (at the top of the screen).

Give the Agent a Name, Alias and Comment;

Name: AutoResponder
Alias: AutoResponder
Comment: Sends an automatic response to any inbound emails sent to this address

Change the type to Simple Actions
Leave the Application field as is and click Ok.

In the left panel, click Document Selection.
At the bottom of the screen, you'll see an Add Condition button.
Click it.
Choose In Folder and then Select the Inbox.
Click Add

In the left panel, click Action
At the bottom of the screen, you'll see an Add Action button.
Click it.
Choose Reply to Sender
Make sure that it says Send Reply to Sender Only.
Tick Reply only once per person
Type your message
Click Add

So far so good.  Now to get this to occur for all new mail.

This is where I got stuck.
It makes perfect sense to have these agent properties at the bottom of the page, like they are for lotusscript agents but for some reason, they're not there in 8.5.3. A big thanks to Tony G for finding the missing menu option.

Right mouse click anywhere in the right hand panel and choose Agent Properties.

In the trigger section, choose On Event and Select After New Mail has Arrived.
You can now save and close your agent.

Note: In our tests it took 5-10 minutes for the agent to actually start working so don't despair if it looks like it doesn't appear to be working initially.   To test, send emails from an outside account, like Gmail and wait for the reply message.

Wednesday, October 19, 2011

How to Adjust the timing on a Subtitle SRT file using Subtitle Workshop 4

In a previous post, I discussed ways to find subtitles to add to your AVI movies and I also looked at using Google Translate to modify them if they weren't in English (or your chosen language).

Note: All of the software mentioned here is free.

See: Finding and Adjusting Subtitles on AVI Files.

In this post I want to look at how to change the timing on subtitles.

Why would you need to do this?
Movies have different frame rates depending upon the country that they are shown in and the system they are shown on.  Common frame rates are 23, 25 and 29 frames per second.  You'd be surprised how quickly subtitles can get out of whack if they're designed for the wrong frame rate.

Find the Start and End of the Dialogue.
Open your movie in a player, like the excellent VideoLAN (VLC Media Player) and locate the first and last sentences in the movie.  You'll find the time in the bottom right hand corner of the player - make a note of it.

Adjusting the Subtitle File
Open the Subtitle File in Subtitle Workshop 4 and check the first and last line in the file. They should be the same lines as in the movie. Sometimes the author of the subtitle will put their name in the file as the first or last entry - if this is the case, you'll have to remove those lines or they'll upset the timing.

  1. From the menu, choose Edit, Select all (or Ctrl + A)
  2. the Edit, Timings, Adjust Subtitles (Ctrl + B)
  3. You'll be presented with a dialog box.
  4. Choose the simple tab and adjust the timings on the first and last line to what you wrote down earlier.
  5. Click the button marked Adjust.

That's it.  It's that easy.
Just save your subtitle file (Ctrl + S) and then exit subtitle workshop.

Thursday, October 06, 2011

Notes and Domino 8.5.3 are out...

The Server
I've upgraded our test server from 8.5.2 to 8.5.3 and it took slightly under 5 minutes. Now that's what I call a good server upgrade (are you listening Microsoft???)

Anyway, so far, so good, everything seems to be working but then I haven't done a whole lot of testing yet.

The Client
My client took 21 minutes to upgrade from 8.5.2 to 8.5.3, which felt like a long time. It also came back a little weird and some views didn't populate immediately. Refreshing them made a big difference.

Again, so far, so good (mostly).

Unfortunately I lost the ability to click on a URL and have it launch my default browser (Chrome). Instead, it pops up Notepad (weird!!) and a bizarre little message.

The filename, directory name or volume label syntax is incorrect.

I'm on a 64 bit Windows 7 Professional PC and Chrome is located in;

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

I've already checked my HKEY_CURRENT_USER\Software\Classes\http\shell\open\command key in the registry and it says;

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "%1"

The related keys look fine too.

If I switch to the browser embedded in the Notes client, it works, but then when I switch back to my Operating System's default browser, it opens Notepad.

I decided to make Firefox, then Safari my default browsers and they worked properly, then when I made Chrome the default again, somehow the problem got fixed.

It's a trap to look out for.

Wednesday, August 31, 2011

Finding and Adjusting Subtitles on AVI files

If you enjoy watching foreign films or if you're hard of hearing like me, then subtitles are a must in your movie collection. In my last post, I covered how to convert movies from DVD to AVI for playing on a portable player. In this post, I'll be discussing subtitles.

There are two types of subtitles, burned in and selectable. Obviously the selectable type is best because you can turn them on and off and you can obtain different languages too. Within the selectable type, there are a few formats with the most common being sub/idx files, txt files and my personal favourite, SRT files.

In order to get your subtitles to play in players like VLC VideoLAN and on player boxes like the WD TV box, you'll usually need to put the subtitles in the same folder as the AVI and name them the same. So if you movie is called "Return of the Scary Kittens.avi" then your subtitle should be called "Return of the Scary". Some players allow you to have multiple subtitle streams by including language codes near the end of the file name (eg: "Return of the Scary Kittens.eng.avi") but if you only have one, it's best to name it the same.

Finding Existing Subtitle Streams online
Why build something that already exists right? You can search for your subtitles online. First though, you need to find out the frame rate of your movie. Right-mouse click on your avi file and choose properties. Click on the Summary Tab and look at the frame rate, it will usually be 23, 25 or 29 frames per second.

Next; try a search on Podnapsi ( to see if there are any subtitles in your chosen language. If you get a few results, pay careful attention to;
(a) The number of frames per second and
(b) the number of people who have downloaded it. (the more the better).

If possible, simply download your SRT file, rename it carefully and put it in the same folder as the AVI.

If you can't find the subtitles on Podnapsi, do a wider google search for; SRT ENG "My Movie Name". This is often also quite successful.

Extracting Subtitles from a DVD
Assuming that you've already ripped your VOB file (as described in the AVI conversion procedure), you can rip the subtitle from the VOB. The freeware you need to download is subrip (from: There's no install for this software, simply download and extract it. You can then open a VOB file and you'll be prompted to answer some questions. Since subtitles are OCRed, you'll have to provide a sample of each of the common letters.

If you make a silly mistake like I did, it will make a mess. I said that open bracket "(" was "( BIRDS CHIRPING )" not realizing that I was being prompted only for a single character. Don't worry, you can always open the SRT file in a text file later and do a search and replace.

The Foreign Option
If you really can't find any subtitles in your language, try a language that is close (for example, French is reasonably close to English) and download the subtitle file. Next, go to Google Translator toolkit ( and upload your file. It only takes a few mouse clicks to convert the entire file to your language and download it.

Sure, conversations they sound like yoda sometimes - but they're better than nothing.

Resychning Subtitles
The final thing that you may find yourself needing to do is to resynch subtitles. You need to do this when the subtitles occur too soon before (or too late after) the actual spoken parts of the movie. If this happens to you, play the movie carefully in VLC and make a careful note of the time count when the speaking commences.

Next, close the AVI file and open the SRT file in the freeware Subtitle Workshop ( Highlight all of the subtitles but scroll to makes sure that you can see the particular line of dialog you mentioned earlier. With all entries highlighted, press Ctrl+Shift+N to shift the time backwards and Ctrl+Shift+H to shift forwards.

When you think it's done, click save and retest the subtitles.

That's it, now you can have subtitles for your movie even if the ones on the original DVD weren't in your chosen language or were not properly synchronised. I will quite often add subitltes for movies in the AVI stage when manufacturers don't bother to make them available on the purchased item.

Monday, August 15, 2011

Converting DVDs to Good Quality AVI Files - Part 2 (The Procedure)

Forget the why and wherefores of what we're doing - That's part one which you can read here.

Lets get started;

  • A computer with a large hard drive 20GB Free? Pentium 4 3GHz or Faster and a DVD drive
  • A copy of DVD Decrypter - it's free
  • A copy of AutoGK - it's free

DVD Decrypter
This software allows you to copy the files from a DVD to your hard drive. The project was shut down some years back but it's still possible to get hold of it on the internet.

An alternative to this is DVD Fab. There's a free version and a commercial version. The difference between the two is that the commercial version handles more DVD protection schemes.

AutoGK is short for Auto Gordian Knot which describes a knot so difficult to untie that it was cut instead. It's quite apt considering the purpose of this tool.

It's not a single piece of software but rather installs several pieces tied together by a single front-end. As a result, the setup program will spawn other setup programs. Watch them carefully because otherwise windows will get popped over and you'll think the install has frozen when it's really just waiting for input. All of the pieces of software in AutoGK are well worth having.

PART 1: Getting the files onto your PC using DVD Decrypter
  1. Put the DVD in your computer's DVD drive

  2. Start DVD Decrypter - it should detect the disc

  3. It might also prompt for the region code (if it finds RCE protection)

  4. Look at the list of files - they're named confusingly but the first number is the "title" and the second is the part.
    VTS_01_3.VOB means
    Part 3 of the first title.

    VOB files are video
    IFO files contain informtation about the VOB files.
    I don't know that BUP files are.

  5. You can either manually select all of the series of the largest files or you can click View, Select Main Movie Files plus IFO files.

  6. Next, Click on Tools, then Settings.

  7. Click the tab marked File Mode and in the options section make sure that File Splitting says NONE.

  8. Then Click on IFO Mode and again, in the options section make sure that File Splitting says NONE.

  9. Choose a location to save in.

  10. Then click the DVD to file Icon to start the decryption.

  11. It will take a while, so go find something to do for 15-30 minutes.

PART 2: Converting the VOB to an AVI
  1. Start AutoGK

  2. Click on the little folder icon marked Input file and browse to the folder where you saved the output of DVD Decrypter.

  3. If everything went well, you should have a single VOB file and a bunch of IFO files. Only one IFO file will match the VOB's name.

  4. Open this in AutoGK.

  5. It should read in the VOB and display soundtracks and subtitles.

  6. Click on the little folder icon marked output file and chose a location and name for your output.

  7. Have a look at the audio and subtitle options. You'll want to pick one audio track - usually the top one. It might not matter so much about subtitles unless the movie is in a foreign language. If, like me, you prefer to have a subtitle track, you enable it here but it will be "burned in" to the movie. It's often easier to download a subtitle track in SRT format from Podnapsi later.

  8. Next you'll want to select a file size.

  9. If you movie is about 90-100 minutes, you should be ok with 700MB but if you movie contains a lot of action scenes (or is long) consider increasing the size to 1400MB. You'll end up with much better quality.

  10. Next, click advanced settings and make sure that the resolution is set to Auto Width and the Audio is set to Auto. Note: If you were making a copy for a portable device like a phone with low resolution, these are the settings you might change.

  11. Choose an Video codec. XviD is recommended though DivX works well too.

  12. Leave the subtitles options unchecked and click ok.

  13. Finally, click Add Job and then click Start.

  14. You might think that nothing is happening but it will actually be working. It shells out to a DOS/Command line app for a lot of the work.

  15. Depending on your computer, the settings you chose and the movie you are converting, it could take 3 hours but at the end you'll have a good quality AVI file.
If you right-click on that file and choose properties you'll be able to find the frames per sec. Use that number to find a matching subtitle file on Podnapsi.

Note that if you can't figure out which track is which, you might want to try playing the VOB file directly in VLC Media Player. You can switch audio tracks in there and figure out which one you'd prefer.

Easier Instructions
Of course, I didn't figure all of this out myself and if you'd prefer video instructions, you might want to check out my inspiration on You Tube.

Sunday, August 14, 2011

Converting DVDs to Good Quality AVI Files - Part 1 (The Waffle)

I'm very much a believer in the idea that "files" will be the next big format for video entertainment after DVDs. I guessed right from the start that blu-ray would win the format war against HD-DVD but I never thought that either would take over.

About 15 years ago, after having ridden the music upgrade from LP Records to tapes and to CD, I stumbled across this "new" format called MP3. Back then, there were no MP3 players, just computers but I was enthralled by the idea that with enough storage, I could save my music collection in a way that meant that I could play them without ever having to get a CD out of the cupboard again.

I emarked on a quest to convert my entire library of Music CDs to MP3. People thought I was weird but a few years later as MP3 players became more readily available, I reaped the rewards. I didn't have to convert anything - it was already done.

I see video entertainment as following the same path. As with my early MP3 conversions, the problems were two-fold.
1. Finding a reliable converter/process
2. Storage

Recently, I bought a Western Digital WDTV box (mainly so that I didn't have to burn Doctor Who episodes to DVD when downloading them from the UK). Copyright people; don't give me those accusatory stares - I buy the DVDs when they become available. It's just that the net has a bad habit of "spoiling" the twists when I wait for Australia to screen them - yes, even when it's only one week later.

Of course, I don't want to stop there. It's my ambition to convert my sizable DVD collection to files for discless viewing - and perhaps I'll throw in a few fixes along the way.

Fixes? you say? Huh..?

As a partially (mostly) deaf person, I find that I really need subtitles with my movies - and I'm really annoyed when they aren't provided. Recently I bought Mozart and the Whale. Unfortunately the Australian distributor of this film doesn't care about subtitles. I ripped it to AVI format and then I went looking on for a subtitle file (SRT format). I managed to get one and now when I play the file in VLC Media Player - or on my WDTV player it works!

The final question is one of quality. We can get close to movie quality in AVI format (with a big enough file - 800MB for a movie) but sound is a problem. It's MP3 format. I used to care a lot about surround sound but since I'm deaf, it really doesn't make a whole lot of difference to me. Still, sound and quality are important considerations. For now, the AVI format will do but I'm on the lookout for something better.

When a royalty-free file format capable of holding, video, 3d video, multiple angles, multiple subtitles, various soundtracks, chapters and display covers appears, I'll jump there pretty quick.

Next time; Enough of the Waffle - Next time I'll explain how to rip a DVD to a good quality AVI file using free tools.

Tuesday, July 26, 2011

Scheduling Maintenance Tasks on the Domino Server

I'm sure that most Domino admins have been doing these tasks regularly but if you don't have occasion to touch them often, you might this post useful.

As I mentioned last week, we've been having issues with the JVE running out of memory on our server. One of the "solutions" (band-aids) was to restart the domino HTTP task. I've been experimenting to see how long I can leave it and the shortest it's been is about 30 hours.

It seemed to be a good idea to stop and then restart the domino HTTP service on a timer. In admin-talk, that means a program document.

The steps I'm using here are for Domino 8.5.2 but I don't think they've changed in years.

1. Start Domino Administrator
2. Click on the tab marked Configuration
3. In the left hand navigator,click on Server (and expand it)
4. In the left hand navigator,click on Programs

This will take you to a screen where you can expand your servers and see what other regular tasks are scheduled. If you've inherited a domino admin job, this is one of those important things to check out.

Typical things to find in here include;
Note that the case on the parameters is very important.

There's a good list of the parameters here.

Interestingly, today I stumbled across an old technote from IBM suggesting that these tasks shouldn't be programmed. I'd be interested to hear comments from other people as to whether or not they do them on their servers.

Anyway, enough with the side-notes, we're adding our own tasks.

5. Click on the big button marked Add Program

This takes you to a new screen (a new notes document).

6. Fill in the program name, command line and server to run on.

a. The program name will usually be NSERVER (for Windows Servers) or - apparently - SERVER for iSeries. If you were doing the other tasks mentioned earlier (UPDALL, FIXUP or COMPACT), then the program name would be one of them. I looked for a document which listed the Possible Program names but couldn't find one. (IBM... this should be a picklist).

b. The Command line will change but if you want to run a domino command line, you usually start with -c and put the rest in inverted commas.

I created one document for each of these two and scheduled them 15 minutes apart - with the quit document running first obviously.

-c "tell http quit"
-c "load http"

I could possibly have used Tim's excellent suggestion of "TELL HTTP RESTART" but I was too chicken to try it out on a schedule. Maybe later.

c. Pick your server... Luckily this IS selectable.

7. On the Schedule side of things, pick the days and times for the commands to run. If you don't want them repeating again throughout the day, leave the repeat interval as 0.

8. Finally, Click the Save and Close button.

Now I just have to sit here and wait until 4:15am... just kidding (I hope).

More Fun Ideas to Try
You'll find that you can run several commands at once by redirecting the input from a text file but I'll leave that for IBM to explain.

Monday, July 18, 2011

Domino Resource Issues under XPages

A couple of weeks ago, we launched a new XPages app. Hopefully the first of many. It was very impressive and we got a lot of hits....

...until the server crashed.

Not a big deal. Our server is set to restart automatically, and it was up and running in no time. Then about 1.5 days later we had another crash.

We've decided to tackle this on a few fronts, first of all we're rewriting some parts of the app to be a bit less intense and to take better advantage of the recycler. That's all cutting edge development stuff, so it's really not "me".

On the admin side, I wanted to see if we could release resources a bit. I checked the server close to a crash but there's no indication on the Windows 2003 side of things. Of course, the Notes Logs tell a different story.

HTTP JVM: CLFAD0211E: Exception thrown. For more detailed information, please consult error-log-0.xml located in e:/Lotus/Domino/data/domino/workspace/logs
HTTP JVM: >>>>
HTTP JVM: The XPages runtime engine faced an OutOfMemoryError
HTTP JVM: You can fix this by increasing the value of the HTTPJVMMaxHeapSize variable in notes.ini
HTTP JVM: >>>>
HTTP JVM: Out of memory exception occurred servicing request for: /publicsite/OurNewXpagesDB.xsp - HTTP Code: 500. For more detailed information, please consult error-log-0.xml located in e:/Lotus/Domino/data/domino/workspace/logs
HTTP Web Server: Command Not Handled Exception [/publicsite/OurNewXpagesDB.xsp] Anonymous
HTTP JVM: CLFAD0211E: Exception thrown. For more detailed information, please consult error-log-0.xml located in e:/Lotus/Domino/data/domino/workspace/logs

So, we decided to try a http restart next time these error messages started building up.

It worked!
Doing a TELL HTTP RESTART bought us two more days of uptime.

To Restart or not to Restart?
We looked around and found that our problems weren't as unique as we'd imagined. There are a few people on 8.5 and above (we're currently 8.5.2) who have this problem.

Apparently also, a Tell HTTP Restart flushes memory but doesn't do much for the JVM.

To flush the JVM, we need to think about;

then after a few minutes

or as the guy in the IT Crowd says "have you tried turning it off and on again?"

We'll be doing this until we get our application sorted but the question is; should this be part of our normal nightly routine? Maybe it's good practice to restart your web server's service nightly - especially if you have a cluster which could take the load while the restart occurs.

Does anyone think that this is "best practice"?

Thursday, May 19, 2011

How to Do a Mail Merge to Email using Lotus Notes - Version 2

I wasn't happy with the usability of my last post, so I've redone it as a presentation.

You can view it fullscreen here;

or embedded below.

How to Do a Mail Merge to Email using Lotus Notes

Why do one?
In today's "green" world, it makes much better sense to send out emails than letters but you still want to personalize them. Sadly, by itself Lotus Notes doesn't support mail merge to email. Of course, we know that outlook does (but then it lets anyone and anything send emails for you - even when you don't want them to).

So, how to do it in Notes?

The first port of call is OpenNTF ( This place is full of great things but most of them are really badly documented. Still, these guys give things away for free and they develop in their spare time, so we should be grateful for what we get.

There's a great little project there called MailMerge Excel to Notes. Go there, click on releases and download the ZIP file.

Getting to the Code
The installation is tricky though I've noted that since I asked the author about the install, it's been updated (so maybe these steps are less necessary).

Unzip the files to somewhere on your hard drive (eg: C:\temp). The version I downloaded had three files;

  • MailMerge-CreateMerge.lss
  • MailMerge-SendMerge.lss
  • Lotus Notes Mail Merge Function.docx

The LSS files are not viewable in Notepad (not sure if this is a problem with those particular files) and I couldn't find any means of importing them into an agent. If you attach them to a mail message in Lotus Notes though, you can right-mouse click on them and choose VIEW.

From there, you can copy and paste them.

I copied and pasted both LSS files into text files for easy reference.

Creating the Agents
1. Open your mailbox in Lotus Domino Designer

2. Expand Code and double-click on Agents.

3. Click the Button marked New Agent

4. Give the Agent a Name, (Either Mail Merge\Send Mail Merge or Mail Merge\Create Mail Merge depending on which agent you're putting in). You're going to have to do this twice anyway.

5 . The new agent will start with a bit of comment code in it. Just highlight and delete it

6. Copy and paste the entire code of the relevant LSS file out of notes viewer (or notepad). Don't worry, the routines should all find their correct places.

7. Depending on how things go, you might end up with errors (I obviously did). These aren't code errors but are either related to the way that the Notes viewer displays things or the way it pasted from Notepad.

To fix these errors, follow the little red circles with crosses in them.

Wherever you find a line which ends in &_ the notes client expects a line immediately below it. My paste had blank lines - so I just removed them all.

8. When the Agent is free of errors, press Ctrl+S to save. If it saves ok, you can close it and repeat steps 2 - 8 for the other LSS file.

That's it. You're done with the Installation.

Preparing your Spreadsheet
The spreadsheet is simply and excel spreadsheet with TO SUBJECT FIRSTNAME and whatever other columns you want to merge. Note that I left off the CC column (it still works but it's probably better to include one).

Save your spreadsheet as an Excel File (eg: C:\temp\Merge.xls)

Preparing the Email
Next, we go into Lotus Notes and write an email. Don't bother with the TO, CC or SUBJECT because they'll be overwritten.

Just write your email and if you want to include any fields from your spreadsheet, just add them in square brackets.

Save your new email as a draft and close it.

Generating the Merge
Go into the drafts area of notes and make sure that you've got the right draft selected. Then choose Actions, Mail Merge and then Create Mail Merge.

You'll be prompted to select the file which contains the mail merge data. Browse for the excel file you saved earlier.

You'll get a nice little warning screen (if you forget the CC) and you'll get an ID for your mail merge. Make sure that you write this number down somewhere.

Click Ok to Continue.

Hopefully you'll get a message that says that you encountered 0 errors.

Your drafts area will also get a bit busier because there'll be more documents in it.

Sending the Messages
I'm guessing that you could send the messages individually if you wanted but it's best to simply select all of the documents in the draft area. You can do a Ctrl+A and even select those which aren't in the merge (they won't be sent).

From the menu, select Actions, Mail Merge and then Send Mail Merge.

You'll be prompted for the ID number that you wrote down earlier.

When you click Ok, your emails will be sent.

Final Bits
Just a reminder, before you send to a large group of people, make sure that you do a test first and make sure that you remove any test text from your email and spreadsheet - we all know about the "Dear Rich B@st@rd" letters that one particular UK bank sent out years ago.

Thank You
Finally, a really big thank you to David Turner and Sacha Chua for developing such a worthwhile project. IBM ... this should really be a feature in the default Notes Mail Template.

BTW: I used Version 1.0 of the Mail Merge utility, Notes 8.5.2 and Office 2003 to do this.