Lotus Domino on Amazon Web Services (AWS)


Via my blog subscriptions I picked this wiki article on getting started with Lotus Domino for Amazon Web Services (IBM Lotus Domino 8.5.1 on Amazon Web Services: A getting started guide) and decided to look into it. The availability of Lotus Domino on AWS was announced at Lotusphere 2010 so this was a good opportunity to look into it.

The setup steps in the wiki article are easy to follow although the Lotus Domino image isn’t available in the Europe region “data center”. I had to choose US East or US West to be able to select the Lotus Domino AMI (read: “image”). For testing that isn’t an issue but for production you need to consider network latency to your server. If you have other existing AWS servers it may also be an issue as data transfer within the same region is free but isn’t among regional centers which can become costly for maintenance operations etc.

Besides that it looks slick and allows you to easily setup test servers based on templates. Also you only pay for servers as long as they are running so it might be a nice way to test big deployment scenarios. As mentioned earlier on this blog there are a lot of other IBM templates as well (for DB2, Tivoli, Websphere etc.).

Note that Amazon is not alone in this space. As you might have seen in the showcase at Lotusphere Group is also promoting their GroupLive platform as a service (PaaS) product. Some European companies might want to partner with a European company than with an American company.

Know your (Eclipse) Target Platform

When developing plugins for Lotus Notes you need to know about Target Platforms in Eclipse. The Target Platform is what describes the functionality that’s available to your plugin in the, you guessed it, target platform. You can use this to simulate your plugin running in a number of different scenarios or products (such as Sametime, Notes etc.).

The other day I found this nice blog series about Target Platforms and thought I would share.

Blog Series around PDE and Target Platform

Fix your calendars week numbering with Notes 8.5.1 FP2

For us in Europe using the ISO standard for week numbering one of the fixes delivered in Notes 8.5.1 FP2 has been a long time coming. Previously when using the calendar regional setting of “Use my operating system regional setting” Notes would still get the week number wrong. Of course the solution was simply to specify “Always use the ISO standard” though it didn’t feel right.

Now with Notes 8.5.1 FP2 there is a fix for this issue and Notes will now behave correctly (at least it does so on my client).

“SPR# FPAI7X7KL3 – There is a preference for how week numbering is handled in the Notes calendar. There are 3 choices for the preference: “Use my operating system regional setting”, “Always use the ISO standard”, and “Custom week numbers”. Prior to this fix, the choice of “Use my operating system regional setting” was not working properly for those users who had their OS regional setting set for a country/language that used the ISO standard. It should be noted that this fix does not make an inspection of the registry settings (on windows platforms). Instead, the fix uses the Java JVM’s settings for week numbering based on the country/language the user’s OS is running in at the time the Notes client is started.

There is nothing to fear than Websphere itself

Saw this link on Planetlotus.org and I think it’s well worth making sure that more Yellowheads know about it. It’s becoming clear that more and more Lotus products are being based on Websphere (which I understand and somewhat support!!) so getting to know Websphere is probably not the worst way to spend a weekend. This PDF from IBM (1 hour course to demystify Websphere Application Server for Lotus is now available) is a crash course introduction to Websphere Application Server, what it’s all about and what the terminology is. I highly recommend you take a peek.

Microsoft MIX10 vs Lotusphere

With all the talk we have been having around Lotusphere presentations and the availability of session presentations and video afterwards it’s strangely refreshing to see how Microsoft approach their MIX10 conference which was just held in Las Vegas. If you go to live.visitmix.com/videos you are able to download all presentations and download or stream all sessions as video (WMV for HD and h.264). They even provide a downloader to download all the contents in one go.

How do you like them apples?

All you wanted to know about the Notes directory structure

All you wanted to know about the Notes directory structure is explained here: “Understanding the IBM Lotus Notes 8.5.x client directory structure” via Stephan Wissel.

“This article explains the changes that were introduced in the IBM Lotus Notes 8.5 File System installation and describes them with respect to the installation, setup/launch/run, and uninstall phases in the client’s life cycle. Also included are answers to some FAQs on the client file system.”

Is there a need for a login-feature in Lotus Connections?

Let me start of by fending you off by saying no I do not mean that we need a way to log into Lotus Connections… πŸ™‚ We have a fair number of those and all are actually well documented and are working just fine. What I mean is that I have been wondering whether we need a specific feature (like Profiles, Bookmarks, Search) to handle the login into Lotus Connections. So why do we need that when we have a working product today?

The Lotus Connections product today have one sore point which is really a hazzle and it’s something that most customers would love to do and that’s customizing the UI. Today customizing the UI can be done albeit it’s a bit tedious and a lot of steps are necessary. It is however relatively easy to centralize the UI files and customize it in one location. All but for one thing. The login page. You can make Lotus Connections look the way you want except for the login page.

To customize the login page today you have to touch 15 files across all features. 15 files!! Are you kidding me?! The main issue is that every single feature has it’s own login page located deep within each feature code base (as a JSP which is somewhat readily editable). Also editing this login page means you have to hand-carry the customizing across upgrades.

So that’s when I thought about having an extra feature that handles the logging in. So instead of having a login page per feature you’d have a single login page in a single feature. Customizing that one would be trivial as it’s just a single JSP and it could maybe be sourced as an include from the HTTP server where all the CSS and image files are already stashed. I know there are stuff to consider such that SSO would have to be enabled among features (plus probably a host of other things I didn’t think of) but I think it’s an interesting idea. From my limited knowledge of the Lotus Connections innards it looks reatively easy to implement.

  1. Check that the user has been authenticated (maybe in a Filter)
  2. If yes – super!! Allow into content
  3. If no – bummer!! Make a note of the url the user was trying to access in a session variable and forward to the login feature
  4. Once authentication has been completed do a forward back to the url

Simplified I know but interesting. Comments?!

How to get started with plugin development

I get a lot of questions (via e-mail and IM) on how to get started with plugin development for the Lotus Notes platform. Instead of answering them all individually I thought I would (finally) write a general purpose blog post to try and answer these questions in general terms.

First of I’m sorry to say that the current state of affairs for someone who want to get started doing plugin development for the Lotus Notes platform is grim. There is as you might have experienced very little material available for programmers new to the Eclipse world to build stuff for Lotus Notes 8+ clients. To make things worse the material that is available often cut corners or simply start out too advanced. That being said I am hearing muffled voices mention some material being developed and that IBM Lotus is focusing on this matter but it will be yet some time before it’s out. Until that time and until we can upload information directly into the brain like martial arts skills are given to Nemo in The Matrix I suggest the following.

My suggestions for someone getting started would be to start by realizing that programming for Eclipse and hence in SWT for the Lotus Notes 8 client has nothing, what so ever, to do with traditional Notes programming. It sounds obvious but once you have accepted this it gets easier. Maybe not easier technically but easier to accept that this is a completely new field you’re venturing into. If nothing else you stop looking to IBM Lotus for help and instead turn to the Eclipse side of the internet.

Before you start to whine I think this is just fine and how it should be. Really. Initially most of the stuff you need to know to get started has nothing to do with IBM Lotus but is general purpose Eclipse development information. It’s like blaming Toyota for not telling you how to repair their cars. Toyota can be expected to tell you and document what’s so special about their cars. They can’t be expected to teach you the basics – you go to a car repair classes for that.

It’s the same with Eclipse development. Learn the basics and specialize from there. You could say that we could expect information about the various ways to extend the client to readily available and better documented. I’ll give you that… πŸ™‚

Once you’re past that and before you embark on your journey first realize this. In Eclipse and SWT we build everything our selves and we’re left to the mercy of the client and the differences that exist across the different platforms (Notes 8.0.x vs. Notes 8.5 across Mac / Linux / Windows XP / Windows Vista / Windows 7). We’re close to the metal with all the benefits, worries and problems that entail.

So if I had to come up with an action plan for learning about Eclipse / Expeditor / Notes 8+ development it would be something like the following:

  • Learn Java! Become proficient in Java! It sounds obvious but it’s one of the pillars for being successful in this area. Pay special attention to the following areas as they are used heavily when developing for Eclipse:
    • Event publishing/subscription using listeners
    • Anonymous inner classes
    • Interfaces
    • Multithreading
  • Learn about GUI development in general. Resources for developing in Java SWING are just as good as those for SWT as many, if not all, of the concepts apply to both. UI development includes:
    • Widgets
    • Layout managers
    • Threading and the concept on an UI thread. What should and shouldn’t you do on the UI thread!?
  • Learn about Eclipse and the Eclipse platform for building RCP (Rich Client Platform) programs.
  • Buy a book about it such as “Java Developer’s Guide to Eclipse, The (2nd Edition)“. It has been a good help to me.
  • Stop by http://www.eclipse.org/articles and take a look at the articles there.
  • Follow this blog πŸ™‚

As you can see it’s no small adventure you’re starting into. The learning curve may be steep but it’s also rewarding to be able to extend the client beyond belief. If only you’d started learning Java earlier…

SSL certificates and the WAS plugin

Had some issues yesterday morning with the SSL certificate used between the WAS IHS plugin and WAS for a Lotus Connections installation (Dannotes in case you were wondering why you couldn’t log in this morning). Again it turned out to be the all to well known “ERROR: lib_stream: openStream: Failed in r_gsk_secure_soc_init: GSK_ERROR_BAD_CERT(gsk rc = 414)” issue where the SSL certificate from WAS isn’t trusted by the IHS WAS plugin.

The issue were “easily” solved by help of Technote 1264477 (GSK_ERROR_BAD_CERT error configuring SSL between Plug-in and Application Server V6.1). The solution is of course to extract the certificate from WAS and import it into the IHS WAS plugin keystore.

Configured the LinkedIn iWidget for Lotus Connections

Based on a blog post by Luis Benitez I configured the Linkedin iWidget for Lotus Connections yesterday. So if you’re a Dannotes Lotus Connections user you can now configure your profile page to show your Linkedin data as well (my profile).

The widget works by showing LinkedIn data alongside the profile page if the profile owner chooses to. Each user has to authorize the LinkedIn API to show the data. If he/she doesn’t it simply shows a message to that effect.

The documentation on how to install the iWidget leaves something to be desired but I managed and have it working now. I’m still IM’ing with a fellow yellow bleeder who is also trying to do the install. For him however it’s not working and we cannot seem to figure out why. My best guess is that the widget cannot figure out that he’s on his own profile but we’re not sure yet. Maybe it simply worked for me because I also did it on my MyDeveloperWorks page.