Filed Under (Lotus Notes Upgrade) by Marc Champoux on August-2-2010

Another Cryptic Error Message?
 

Well, in my own opinion, I’d qualify this one as “semi cryptic”. And if you ask me, the message should read as something like this:
 

“Smart Upgrade has detected in your notes.ini that you are using a version of Lotus Notes that includes the Designer and/or Administrator client. You cannot downgrade to a Lotus Notes-only installation via Smart Upgrade. Please verify your current installation and the InstallType= line in your Notes.ini before re-trying.” 
 

I can wish right? Well, sometimes I wish so hard that I open SPRs for suggestions … so the SPR for this is #RSSA87UQVT.
 

 
 

 
 

 
 

 
 

So, let’s look at why this happens or why this might happen a tiny bit closer before the solution.
 

Why does this happen?
 

Well, there are a few possibilities that I’ve seen so far … maybe there are more ways to get this error but this is what I encountered in my own environment.
 

Reason #1: Lotus Notes with the Designer and/or the Administrator client is installed on the machine. This causes the InstallType= line in the notes.ini to be set to “2″ instead of “6″. So when you try to ”upgrade” someone with the setup files for the “Lotus Notes” client only, it fails.
 

Reason #2: You had, a long time ago, installed Lotus Notes with the Designer and/or the Administrator client on your old machine. Flash forward a few years, and you’ve changed machines a few times and, due to the amazing backwards compatibility of Lotus Notes, you’ve always moved your notes.ini and your databases when you changed machine. So your notes.ini still has the InstallType= line set to “2″ instead of “6″. So, even if you try to upgrade with the “Lotus Notes” client only files, it looks at the notes.ini and still sees that the InstallType= is set to “2″ and stops right there.
 

The Solution – Official Response from Lotus
 

If you search for Technotes, you’ll find stumble on Technote #1271989 ​(here is a link). That Technote basically says “un-install your Notes and re-install it”.
 

The Solution(s) If You Really Only Have the Lotus Notes Client Installed (no Designer or Administrator clients)
 

So, let’s imagine that you’ve checked the employee’s machine and you confirm that *only* the Lotus Notes client is installed. What can you do? Well you can try the following…
 

Solution #1 – Change the Notes.ini Manually …
 

01. [Click] on File → Exit to close Lotus Notes.

02. [Click] on Start → Program Files → Accessories → Windows Explorer.

03. In the Windows Explorer left pane, navigate to the Lotus Notes Program Directory (for example, C:\Notes or C:\Program Files\IBM\Lotus\)

04. Find the notes.ini file and [Double Click] on it to open it with Notepad.

05. Search the notes.ini file to find if there is a line that starts with “InstallType=” (it’s usually near the top anyway).

06. Change the value of that variable from “2″ to “6″.

07. [Click] on File → Save to save your changes to the notes.ini

08. [Click] on File → Close to close the notes.ini file.

09. Re-Open Lotus Notes R8.5.1
 

Solution #2 – Send Them A Button …
 

Don’t feel like explaining to an employee what to change and how to change it? Well, simply download the LotusScript code below and create a button with that code and mail it to the user. It will do the modification in the notes.ini for you and let the employee know that it’s done.
 

 
 

 
 

 
 

Conclusion
 

Well, like I said, maybe the message will be changed in the future … in the meantime, keep the 3 solutions above in mind if you run into this.
 

Thanks for reading!
 

Marc



Filed Under (Lotus Sametime) by Marc Champoux on April-19-2010

Sametime Business Cards … Who Wants To Upload Their Picture?
  

Following a post I wrote a few weeks ago about Sametime Pictures and another here about a security issue with the Sametime Business Card feature, someone asked via the comments if I could post my code that I used to resize and upload the pictures in our Domino Directory. The short answer was “sorry, no”. For various reasons I cannot post the code of the agent that I wrote for my company because it does various other things and even pulls data from other sources that wouldn’t matter much to anyone else but us.
   

However, I gave this some thought and I decided to write a small agent that can be called by employees from the Actions menu of the Domino Directory to upload their own picture. And, since I said that I’d try to write a blog post about this, here’s the result.
   

Before You Start – You Need To Setup The Business Card Feature!
  

Before you start thinking about using this agent to allow people to upload their own picture into your Domino Directory, you need to make sure that your Sametime server is configured correctly to pull the pictures from the right place using the right field name and data type. I won’t go into details here because Lotus has written Technote #1244204 on the matter which I used to setup our own Sametime 7.5 server to “see” the jpegPhoto field correctly. Basically speaking, you need to add “:binary” to the photo field of the Business Card configuration screen … which is weird if you ask me.
  

Keep in mind that we have not upgraded our servers to Sametime 8.5 yet (way too scary for now … but we might go with the “classic” edition later down the road) so you’ll need to look somewhere else for the “how to make sure it’s configured properly” if you are using Sametime 8.5 servers.
  

The Good Stuff: A Bit More About The Agent
   

Well, right away, I need to mention that the agent is in Java. Yep, Java. Scary isn’t it? It’s in Java because that programming language has classes that can resize an image built right into it. And because of that, it means that employees don’t need to install anything on their computers to resize the 10 mega-pixel picture they are trying to upload.
  

Also keep in mind that I’m very rusty when it comes to Java so, although the agent does the trick for me, feel free to revamp it to make it better. In fact, you might find the code a bit “procedural” and not very fancy in terms of “object oriented-ness” but hey, it does the trick. Also, keep in mind that image resizing techniques in Java are a dime a dozen on the Intertubes and I used the most basic method I could find (you can read more about the method here on Java.net but I tweaked it to suit my needs).
   

How to Use The Agent
   

Well, first and foremost, you need to download the code below and create the Java agent in your own Domino Directory that can be called from the “Actions” menu. I called my agent “Import Picture”. 
  

Once you have created the agent, any employee that opens the Domino Directory can select his/her name can then click on “Actions -> Import Picture” (or whatever name you gave the agent). When the agent starts, it does a check to make sure that the employee has only 1 “Person” selected but it does not check to make sure that it’s the employee’s very own document that’s selected. So, “buyer beware”: they’ll get a nice error if they try to upload a funny picture into someone else person document (unless you’ve set your Domino Directory ACL wrong and anybody can modify everyone else person doc in there … if that’s the case, you have bigger things to worry about than someone uploading a picture of someone else passed out drunk on his lawn).
  

Anyhow, if the employee has a person document selected, they’ll then be prompted to select a file with a “JPG” extension from their hard drive. Yes, a file with a “JPG” extension. Not “JPEG”. Not “GIF”. Not “BMP”. I need a ”JPG” file. Sure, I could have updated the code to work around this but I wanted to keep it simple.
  

It’s important to note that the picture that the employee selects has to be on their own computer (or on a network share that they have “write” access to) because the code will create a resized copy in the same location as the original file. In other words: they’ll get another nice error if they selected a picture on a network share that they only have “read” access to.
 

Once the jpg file is selected, the code will kick-in and create a copy of the selected image resized to a width of 100 pixels (it will keep the aspect ratio). You can modify the code to resize them smaller or bigger but 100 pixels seems a good compromise between the “look & feel” of the Sametime Business Cards vs. how much more data the Domino Directory has to store. In fact, I think that the Business Cards feature re-downsizes the pictures to 90 pixels but I could be wrong.
   

Once the image is resized, the code checks to make sure that the resized picture is not bigger than 20 000 bytes because that kills the Sametime Business Card feature (read more on that topic on the excellent blog of Mr. Vladimir Kocjancic in his post here).
   

At that point, if everything is ok, the resized picture gets inserted into the hidden “jpegPhoto” field on the person document. That field is not visible on the UI so employees cannot “see” the results when they open their own person document in the Domino Directory. However, they can right-click on their entry in their Sametime Contact list and select “Refresh Business Card” to see their new picture.
   

So, Where’s the Beef … err, Where’s The Code?
   

Well, here you go… the code of the agent is attached below. Simply click on it to download the code to your hard drive. Once you have it, import it into a new Java agent that can be called from the Actions menu in your Domino Directory and test it out in your test environment first before moving this production.
  


  
   
  

 
  

The Usual Disclaimers …
  

Well, as usual, I have to do a bit of CYA: if you decide to use this code, test it in your test environment 1st. It works for me but you need to make sure it works fine in your own environment before moving it production.
  

Also, if you are a Java guru, please review the code to see if you can improve it. And if you can: please post the updated code on your own blog (you are blogging right?).
   

Parting Words …
  

Oddly enough, this is only blog post in April (so far) … it’s been an insanely busy month (which included a business trip to New Jersey). I have no idea where time went but I haven’t been able to keep up with everything so blogging took a back seat up to this weekend. Hopefully, things will quiet down and I’ll be able to post things more often.
   

Thanks for reading!
   

Marc



Filed Under (Tips and Tricks) by Marc Champoux on March-4-2010

Summary
  

The Mail Tracking Store has been around for a while in our Yellowverse. And as an admin, you are well aware of the fact that it’s super useful when it comes to troubleshooting mail issues (with the usual requested being “I sent this to Mr. Smith but he says he never got it” and a couple clicks later you can tell them that Mr. Smith deleted it).
  

However, one weird thing about the Mail Tracking Store is that it only keeps 30 days of data by default. In case you are wondering, the number of days of data that it keeps is controlled by the field “Remove documents not modified in the last (days)” of the “Space Savers” tab of the Replication Setting panel for the MTSTORE.NSF database on your server.
  

Nothing stops you from changing that value to 60, 90, 180 days or more! But what happens when you need to update that setting on ALL your Mail Tracking Store databases on ALL your servers? It’s easy to do it manually if you only have a couple servers … but what happens when you have 10, 20, 50 or 100 servers?
  

Well, you either put yourself on “Do Not Disturb” for the next couple days and you do the update manually OR you write some code OR, better yet, you “borrow” my code!
  

So, Where’s The Code?
  

Right below … patience … because before you download it and import it into a button (or Agent that you can run from the Action menu), you need to know what it does:
  

1. The code will prompt you for the number of days.
2. The code will then try to open the Domino Directory on your server.
3. The code will then try to open the “Servers\Servers” view in the Domino Directory.
4. The code will then prompt you to select the servers to scan for a Mail Tracking Store database.
5. The code will then go to each of the selected server and check their Mail Tracking Store database settings.
6. The code will update each Mail Tracking Store “Days to Keep” to the setting you selected in step 1 (if does not match).
   

That’s it … simple as that. The code is below and you can simply click on the image below to download it. You can then import it into a LotusScript button or Agent set to run from the View Action menu to update your Mail Tracking Store settings.
  

 

 

 

   
  

Addendum
  

Part 1 – If you want my opinion, don’t wait until the CIO asks you to do a Mail Tracking on a “questionable” email sent by an employee 4 months ago to update your Mail Tracking Store settings … do it now!
   

Part 2 – Maybe someone else already wrote something that does that … I’m sorry if that’s the case … I was in a hurry to get this done.
  

Part 3 – However, I wonder why this isn’t controlled by a field in a Configuration Setting document … maybe there’s an IdeaJam out there for this?
   

Thanks for reading!
  

Marc



Filed Under (Lotus Notes, Tips and Tricks) by Marc Champoux on August-26-2009

Summary

 

Some of you might already know about this because it’s been discussed in various posts (like this page here) but in case you haven’t heard about it, there’s a way to speed up your Lotus Notes R8.x Standard client (the one that comes with the Eclipse interface). The method involves finding a file called “jvm.properties” (you might actually have more than 1 file) in a very very very specific directory (which changes from machine-to-machine).

 

So, you can read the link in the previous paragraph to figure out where the file is and what to modify OR you can follow-along and create a button that does the work for you … so it’s red pill (the hard way) or blue pill (the easy way) time!

 

The Solution (if you take the red pill and somehow enjoy pain)

 

We’ll, click on the link in the 1st paragraph of this article, read up the article and have fun manually finding and editing that jvm.properties file … which might be somewhere else on your hard drive than where the article suggest. And you might also have more than 1 directory that matches the one discussed in the article. For some people, this is fun and interesting but I just can’t see how I can walk a normal employee thru those steps without having the urge to stick a pencil in my skull at one point.

  

The Solution (if you want the blue pill and enjoy shortcuts)

 

I spent a bit of time coming up with a nice and easy button that I can mail to my users that does the hard work for you. And since I like to share information, here’s the code for the button … simply click on this lss file to download the code to your computer.


SpeedUpMyNotesR8xButton

 

 

 

 

To create the button, simply open a new memo, put the cursor into the body of the email and click on the menu Create -> Hotspot -> Button.

 

Once the button appears, you can right click on it and ask for it’s properties. Set the name of the button to something like “Speed up my Notes Client R8.x”.

 

Then change the button code type from Formula to LotusScript and, if you haven’t done so yet, download the lss file above. Once you have the LSS file somewhere on your hard drive, click on the “Click” method of the button code (confusing … I’m sorry but I don’t know how else to type this) and then click again in the Sub Click () to put the focus in the code area.

 

Once the cursor is in the area where you’d normally give yourself carpal tunnel syndrome by typing a ton of code into, simply click on File -> Import. In the import dialogbox, select the LSS file you downloaded and click on Import.

 

Once all the code has appeared, you can either save that new email as a draft or you can go right away and email it to someone (or to yourself).

 

When you click on the button, you will be prompted to select a number of Megabytes (Megs) roughly equivalent to 1/3 of your total system memory. This appears to be the amount of ram that you can safely dedicate to the Eclipse jvm without hurting too much the other apps on your system so this is why I’m asking you to pick the right number. Once you’ve selected a number, it will begin to scan your the Framework folder in your Lotus Notes client installation directory to find the right jvm.properties file. It will go somewhat quickly and once it’s found the right files, it will make the modifications and let you know the results.

 

As usual, after this change, you need to close and re-open your Lotus Notes client to see the difference.

 

Addendum

 

Another tip to speed up your Lotus Notes client is to disable the setting “Launch Lotus Symphony in the Backround when the Operating System Starts” in your preferences.  This setting can be found by clicking on File -> Preferences and then by clicking on the “Lotus Symphony” category (if you have installed Lotus Symphony).

 

Have fun!

 

PS: Yes, I enjoyed the first Matrix movie and the “blue” pill is a reference to that movie … not to the “other” blue pill made by a certain pharmaceutical company.