LotusScript.doc – development has begun (again)

So, inspired by many kind e-mails of encouragement, I’m restarting the development of LotusScript.doc v.2 (once again). The main difference is that this time I have actually set aside some time for the development during the weeekend and sent my girl friend off to Barcelona to avoid being disturbed… πŸ™‚

Based on prior and recent recommendations I have also set up a place to donate money to finance my development of the free version of LotusScript.doc version 2. Any donations will be very much appreciated to justify the time I put into this.

Look forward to an update during the weekend.

XPD – where do you live?

Disclaimer: I’m trying to get some info from IBM on this subject so please check back as I will update this post as more info becomes available…

Again this is one of those posts that will annoy the heck out of European developers…

Internationalisation – or i18n – is done using the java.util.Locale class in Java. When calling Locale.getDefault() the standard Locale for the JVM should be returned and should be da_DK for me (country: Denmark, language: Danish), en_US for you US guys (country: USA, language: English) and de_AT for people from Austria (Country: Austria, language: German). The Locale can be supplied to many localisation sensitive classes such as java.util.Calendar etc. to make sure it works as expected for the current user locale. Most times however you don’t supply the locale explicitly which will make the platform do a Locale.getDefault() for the current locale.

Meet Lotus Notes 8+…

Per default Lotus Notes 8+ runs with a Locale of en_US which is great if you’re based in the USA and speak English or simply only use the built-in functionality of Lotus Notes. If you’re a plugin developer and you do any i18n work you will be sadly disappointed since Calendar and ResouceBundle will be broken. Since Locale.getDefault() returns en_US you will get back a Calendar for the US (e.g. Sunday is first day of the week) and English strings from your resource bundles.

Maybe this is why the preference has a page for locale setup (see File/Preferences/Calendar and To Do/Regional Settings) which is used by Mail.

To makes matters worse I think it’s a core platform issue since you can actually change the language of your Notes client by supplying a command line argument (-nl) to the Notes client. Doing this (-nl da / -nl da_DK) changes the menu item text in my Notes client but any plugin that use Locale.getDefault() still return an incorrect result as shown on the image below.

To make it even weirder it works as expected when the Notes client is started from the Eclipse IDE using “-nl da_DK”. Go figure!



(click on the image for larger version)

This behavior has been verified with Notes 8.0.1, Notes 8.0.2 and Notes 8.5 beta 2.

A couple of reasons why the update site template in Notes 8 is cool!

Here’s a couple of reasons why the Eclipse Update Site template supplied with Notes 8 is a killer template and why it’s preferable to use from a Notes users perspective (get the pun?):

  1. Update Site accessible over NRCP (only by Notes clients) or HTTP.
  2. Easy to host on a Domino server even without running the HTTP task.
  3. Replication to other servers.
  4. Easy to control access with ACL.
  5. Easy overview of categories, plugins and features.
  6. Easy to update the update site URL for all/selected features without rebuilding.

If you’ve been doing plugin/feature packaging in Eclipse you’ll really appreciate item number 6.

The story on Lotus Connections 2.0 and Sametime awareness

So I have been messing a bit with Sametime enabling Lotus Connections the last few days. It all started with the browser blanking out on me once I enabled Sametime Links (stlinks ie. the Javascript API for Sametime normally used to Sametime enable web pages) in the LotusConnections-config.xml (the page source only showing the stlinks HTML). After troubleshooting and fixing the stlinks the Sametime Awareness still didn’t work so I opened a PMR with Lotus.

The answer from Lotus Support is however that Sametime Links is not supported in Lotus Connections 2.0. It maybe will be in Lotus Connections 2.0 but for now it’s not supported. Does this mean Lotus Connections 2.0 cannot be Sametime enabled? Well no! The technology used in Lotus Connections 2.0 is however a little bit different since it uses the Sametime Web API intriduced with Sametime Connect 8.0.1. So Sametime awareness is enabled in the Profiles feature of Lotus Connections if:

  1. You have enabled Sametime awareness in the profiles-config.xml (note it’s not enabled in the LotusConnections-config.xml as is stlinks).
  2. You have Sametime Connect 8.0.1 installed on the local machine.
  3. You are logged into Sametime.

Once I understood this the Sametime awareness works like a charm. Also using the Sametime Web API means that chats you start are started through the Sametime Connect client instead of the plain old stlinks web page. Very nice.

Does this mean that you only can have Sametime awareness in Lotus Connections 2.0 if using Sametime Connect 8.0.1? Well no but it requires that you get in contact with Lotus Support. They can send you a plugin for Sametime Connect 7.5.1, Sametime Connect 8.0, Lotus Notes 8.0.1 and Lotus Notes 8.0.2 (the latter two for the embedded Sametime client). Installing this plugin makes the Sametime awareness work as well.

And just to point it out. This was described in the InfoCenter (see links below) but maybe the LotusConnections-config.xml should have a comment indicating that Profiles would break if stlinks was enabled.

Further reading

Lotusphere 2009: The heat is on!

So registrations for Lotusphere 2009 opened just a few hours ago and Duffbert is all set after waiting in line for a few hours on Twitter… πŸ™‚ It’s amazing how Lotusphere registration is that special day when the excitement starts building. I know I’m excited and I’m looking forward to heading to Orlando.

This year is going to be a little different as I’m going as part of the Intravision team (this was also true last year but still) and we once again have a both on the showcase. It’s weird not being among those clicking refresh all night and rush to it.

Once again it’s also time to think about session abstracts and those of us planning to submit session have probably been fine tuning the abstracts for the last few months. I know I have and hope to get a session or two this year. I have 6-8 abstracts up my sleeve that I want to submit once the final quirks has been ironed out.

Better get to it and remember to tag your Lotusphere posts with “lotusphere2009”.

Sametime blackbox – update needed for Lotus Connections 2.0

I wrote a number of articles in THE VIEW some time back on writing custom Sametime blackboxes (see the March/April and May/June 2008 issues). If you implemented the Sametime blackbox that read data from Lotus Connections (like it’s done on bleedyellow.com) and you have upgraded (or are planning to upgrade) to Lotus Connections 2.0 this post is for you.

The database schema for Lotus Connections 2.0 has changed slightly in comparison with Lotus Connections 1.0.x so if you’re using a custom Sametime blackbox to read data from Lotus Connections it needs to be changed. The only thing that needs to change is the SQL since the key column in the EMPINST.PHOTO table has been renamed from PROF_UID to PROF_KEY (hightlighted in the SQL below).

SELECT EMPL.PROF_UID UID, PROF_DISPLAY_NAME DSP_NAME, PROF_MAIL_LOWER EMAIL, PROF_MOBILE MOBILE, PROF_PAGER PAGER, PROF_TITLE TITLE, PROF_TIMEZONE TIMEZONE, PROF_TELEPHONE_NUMBER PHONE, PROF_BLOG_URL BLOG_URL, EMPL.PROF_DEPARTMENT_NUMBER DEPT_NO, DEPT.PROF_DEPARTMENT_TITLE DEPT_NAME, EMPL.PROF_ORGANIZATION_IDENTIFIER ORG_IDENT, ORG.PROF_ORGANIZATION_TITLE ORG_NAME, EMPL.PROF_ISO_COUNTRY_CODE CTRY_ISOCODE, CTRY.PROF_COUNTRY_DESC CTRY_NAME, P.PROF_IMAGE PHOTO_BYTES, P.PROF_FILE_TYPE PHOTO_MIMETYPE FROM EMPINST.EMPLOYEE EMPL LEFT OUTER JOIN EMPINST.PHOTO P ON EMPL.PROF_KEY=P.PROF_KEY LEFT OUTER JOIN EMPINST.DEPARTMENT DEPT ON EMPL.PROF_DEPARTMENT_NUMBER=DEPT.PROF_DEPARTMENT_CODE LEFT OUTER JOIN EMPINST.COUNTRY CTRY ON EMPL.PROF_ISO_COUNTRY_CODE=CTRY.PROF_ISO_COUNTRY_CODE LEFT OUTER JOIN EMPINST.ORGANIZATION ORG ON EMPL.PROF_ORGANIZATION_IDENTIFIER=ORG.PROF_ORGANIZATION_CODE WHERE EMPL.PROF_MAIL_LOWER=?

How to install a Lotus Connections fix (which is different from a fixpack)

Previously I installed Lotus Connections 2.0 fixpack 1 and it took me a while to figure out the syntax so I blogged it. Now I just installed a fix and that too took some figuring out so here is the syntax.

I had to install the LO32615 fix from IBM Lotus (issues with the work location fields) and the syntax is as follows:

  1. Follow the steps in the post I link to above but don’t invoke the updateLC.bat command
  2. Use this command: updateLC.bat -fix -install -installDir <Lotus Connections install dir> -fixDir <path to where the fix jar-file is stored on your system> -fixes <the name of the fix (here LO32615)> -wasUserId <WAS userid> -wasPassword <WAS password>

Show ‘n Tell Thursday: Easy access to Lotus Connections Profiles translation files (21 August 2008)


This weeks SnTT post is about Lotus Connections and how to more easily get access to and change the translation files for the UI of the Profiles feature.

Configuring which pieces of information are surfaced in the Profiles feature is pretty easy and well documented using the profiles-config.xml file. Changing the label text however is harder and not that easy to do. As it is documented it involves stopping profiles, locating a jar-file, extracting it using WinZip, changing a properties file, repackaging the jar-file, redeploying the jar-file and finally restarting profiles to see the change. This is well and good and acceptable if you only need to change the file once, but chances are that it’s an iterative process and you need to do it multiple times. Wouldn’t it be easier to simply stop profiles, change the file and restart profiles? Well read on to see how.

The labels for the fields (and all the other pieces of text for that matter) in Profiles are stored in property files in a jar-file in the Profiles application. Changing the property files for the appropriate language causes the text to change in the UI after a restart of the Profiles application. This is easy enough but require a lot of repeated steps every time since you have to unpack the jar-file, change the property file and repack the jar-file.

Since Profiles is just another Java web application we can move some of the classes and property files out of the jar-file (in the “lib”-directory) and into the “WEB-INF/classes”-directory. This means that we only have to repack the jar-file once and for all since the property files are now available from the “classes”-directory.

On your Websphere Application Server where the Profiles feature is installed (with Profiles stopped) do the following using a file explorer:

  1. Open the profile directory for the profile you’re using
  2. Open the installedApps directory and the node directory underneath it (chances are that there’s only one node directory)
  3. Open the Profiles.ear directory
  4. Open the peoplepages.war directory
  5. Open the WEB-INF directory
  6. Create a new directory called “classes”, and inside this directory create a com/ibm/peoplepages/webui directory (a total of 4 directories)
  7. Open the lib directory and locate the peoplepages.web.jar file and make a backup copy of this file
  8. Now unzip the jar-file (maybe renaming it to a zip-file first), navigate through the directories to com/ibm/peoplepages/webui and move the resources folder to the “classes/com/ibm/peoplepages/webui”-directory you created above
  9. Navigate back to the extracted jar-file and zip the “com” and “META-INF” directories back up into peoplepages.web.jar and overwrite the peoplepages.web.jar file you located in step 7

Now you should have replaced the original peoplepages.web.jar file with a new one and have a directory containing the resource files.

Now when ever you need to change a label for a field simply locate the label or text you would like to change in the property files underneath WEB-INF/classes/com/ibm/peoplepages/webui/resources and restart Profiles.

Please note that the above probably isn’t supported by IBM… πŸ™‚