Domino Upgrade

VersionSupport end
Upgrade to 9.x now!
(see the full Lotus lifcyle) To make your upgrade a success use the Upgrade Cheat Sheet.
Contemplating to replace Notes? You have to read this! (also available on Slideshare)


Other languages on request.


Useful Tools

Get Firefox
Use OpenDNS
The support for Windows XP has come to an end . Time to consider an alternative to move on.

About Me

I am the "IBM Collaboration & Productivity Advisor" for IBM Asia Pacific. I'm based in Singapore.
Reach out to me via:
Follow notessensei on Twitter
Amazon Store
Amazon Kindle
NotesSensei's Spreadshirt shop
profile for stwissel on Stack Exchange, a network of free, community-driven Q&A sites


Rendering a Notes view as JSON REST service - on your client

My next goal after getting the basic connection to Notes working is to be able to serve a potential API. Still making friends with the non-blocking approach of vert.x, I'm taking baby steps forward. In this round I want to be able to deliver a view or folder as JSON string. On a Domino server that is easy. You can use ?ReadViewEntries&OutputFormat=JSON. On a Notes client you have to do it yourself.
In round one I will ignore categorized views (that's for the next time), but I already will massage the JSON to be leaner. After all why send it over the wire what you don't need. So I have a little AppConfig.INSTANCE singleton, that delivers a viewConfig object. This object has the list of columns and the inteded labels that I want to be returned.
Since last time some of the libraries have been updated and I'm now running vert.x 3.0.0.Preview1 and the OpenNTF Domino API RC2. I unpacked the OpenNTF release and removed the Jar files and replaced them with Maven dependencies. This step isn't necessary, but I'm expanding my Maven knowledge, so it was good practise. The starter application looks quite simple:
package com.notessensei.vertx.notes;

import io.vertx.core.Handler;
import io.vertx.core.Vertx;
import io.vertx.core.http.HttpServer;
import io.vertx.core.http.HttpServerOptions;
import io.vertx.core.http.HttpServerRequest;
import org.openntf.domino.thread.DominoExecutor;

public class NotesClient {

     * @param args
     * @throws IOException
    public static void main(String[] args) throws IOException {
        final NotesClient nc = new NotesClient();

    private static final int     listenport        = 8110;
    private static final int     dominothreadcount = 10;
    private final Vertx          vertx;
    private final HttpServer     hs;
    private final DominoExecutor de;

    public NotesClient() throws IOException {
        this.vertx = Vertx.factory.vertx();
        final HttpServerOptions options = HttpServerOptions.options();
        this.hs = this.vertx.createHttpServer(options); = new DominoExecutor(NotesClient.dominothreadcount);

    public void runUntilKeyPresses(String keystring) throws IOException {
        int quit = 0;
        final int quitKey = keystring.charAt(0);


        while (quit != quitKey) { // Wait for a keypress
            System.out.print("Notes Client Verticle started, version ");
            System.out.print("Started to listen on port ");
            System.out.print("Press ");
            System.out.println("<Enter> to stop the Notes Client Verticle");
            quit =;


        System.out.println("\n\nNotes Client Verticle terminated!");

    private void startListening() {
        final Handler<HttpServerRequest> h = new NotesRequestHandler(;

    private void stopListening() {

The Notes request handler, checks what is requested and renders the view into JSON using a "homegrown" JSONBuilder which I designed similar to a SAX writer.
package com.notessensei.vertx.notes;

import java.util.Map;

import io.vertx.core.Handler;
import io.vertx.core.http.HttpServerRequest;
import io.vertx.core.http.HttpServerResponse;

import org.openntf.domino.Database;
import org.openntf.domino.Session;
import org.openntf.domino.View;
import org.openntf.domino.ViewEntry;
import org.openntf.domino.ViewNavigator;
import org.openntf.domino.thread.AbstractDominoRunnable;
import org.openntf.domino.thread.DominoExecutor;
import org.openntf.domino.thread.DominoSessionType;

public class NotesRequestHandler extends AbstractDominoRunnable implements Handler<HttpServerRequest> {

    private static final long           serialVersionUID = 1L;
    private transient HttpServerRequest req;
    private ViewConfig                  viewConfig       = null;
    private final DominoExecutor        de;

    public NotesRequestHandler(DominoExecutor de) { = de;

    public void run() {
        Session s = this.getSession();
        HttpServerResponse resp = this.req.response();
        this.renderInbox(s, resp);

    public void handle(HttpServerRequest req) {
        HttpServerResponse resp = req.response();

        String path = req.path();

        String[] pathparts = path.split("/");
        // The request must have notes in the URL
        if (pathparts.length < 3 || !pathparts[1].equals("notes")) {
            this.sendEcho(req, resp);
        } else {
            this.req = req;
            // Parameter 3 is either view or inbox
            // if it is inbox, we pull in the inbox
            if (pathparts[2].equals("inbox")) {
                this.viewConfig = AppConfig.INSTANCE.getViewConfig("($Inbox)");
                // if it is view we pull the respective view
            } else if (pathparts.length > 3 && pathparts[2].equals("view")) {
                this.viewConfig = AppConfig.INSTANCE.getViewConfig(pathparts[3]);
            } /* more here */ else {
                // Nothing value, so we send an check only
                this.sendEcho(req, resp);

    private void renderInbox(Session s, HttpServerResponse resp) {
        resp.headers().set("Content-Type", "application/json; charset=UTF-8");
        Database mail = s.getMailDatabase();
        resp.end(this.renderView(mail, this.viewConfig));

    private void sendEcho(HttpServerRequest req, HttpServerResponse resp) {
        StringBuilder txt = new StringBuilder();
        resp.headers().set("Content-Type", "text/html; charset=UTF-8");
        txt.append("<html><body><h1>Notes request handler</h1>");
        System.out.println("Got request: " + req.uri());

    public boolean shouldStop() {
        // TODO Auto-generated method stub
        return false;

    private String renderView(Database db, ViewConfig vc) {
        JsonBuilder b = new JsonBuilder();
        View view = db.getView(vc.getViewName());
        ViewNavigator vn = view.createViewNav();

        b.addValue("count", vn.getCount());
        b.addValue("name", vc.getViewName());

        for (ViewEntry ve : vn) {
            b.addValue("position", ve.getPosition());
            b.addValue("isRead", ve.getRead());
            Map<String, Object> entries = ve.getColumnValuesMap();
            for (Map.Entry<String, Object> entry : entries.entrySet()) {
                String key = vc.isEmpty() ? entry.getKey() : vc.getColumnName(entry.getKey());
                if (key != null) {
                    b.addValue(key, entry.getValue());
        return b.toString();


Notes addressbook sync with IBM SmartCloud

Every organisation has its little secrets. The running joke about IBM is, that the secret are the products.
An Example:
When you use IBM SmartCloud for Social Business Engage (SCSB) you get a contacts feature. It will list all your network contacts, but also is able to list arbitrary contacts, serving as your address book. Latest since the arrival of mobile devices however the saying goes: "only a synced contact is a good contact".
Well hidden in the SCSB help are the instructions how to sync with the Notes addressbook. Expecting users to edit ini files and use an Eclipse update site is (I nearly said silly) not in line with todays install expectations. It can be simpler: Drag this link into your "My Widgets" sidebar and the rest is automatic. Enjoy!
As usual YMMV.
Update: SCSB support reprimanded reminded me, that the plug-in is sunset and I shouldn't promote it, since it will go away.


Avoiding login prompts in mobile approvals

QuickImage Category   
A customer posted an interesting question: "We send eMail notifications in our workflow applications. Our users don't want to be password prompted when following that link from their mobile devices. What are my options?".
While the Notes client can handle automatic authentication (especially with embedded experiences), in iNotes LTPA has logged you in and on PC platforms Single SignOn is well established, mobile device are trickier.
The "big" solutions would entail some form of Mobile Device Management (MDM), but that's nothing you want to deploy just for one app in question. You do want to plan MDM, but that's a story for another time (IBM recommends to do that in the context of an overall Endpoint management plan).
I see different possible approaches to get around the password prompt:
  • Use a VPN:
    A good VPN server can communicate with the reverse proxy and provide an LTPA token automatically. Sample code is available for Big-IP F5 and LotusIBM Mobile Connect. Implementing it for other VPN/Reverse Proxy combinations should be possible - check out Puakma SSO and talk to webWise
  • Use X509:
    After you deploy X509 certificates onto Android or iOS you can set the Domino Internet site document for your application to require X509 authentication. Since the certs are deployed on the device no additional prompt is required (of course that depends on how you secured the certs)
  • Go native:
    In a native (or almost native) application you can locally store the access credentials. You read/write data via JSON and https calls. Not too far off: use OAuth to authorise your mobile app.
  • Update (thx Mark, Per): Use OpenNTF's "Auto Login" project
I like the approach using a VPN with LTPA generation best since it saves you the trouble of managing the X509 certificates and adds a security layer on top
As usual YMMV


Now that you can have embedded experiences in Notes, you need to send them

QuickImage Category   
Courtesy of Apache Shindig IBM Notes 9.0 (the client) and IBM Domino 9.0 (the server) now can render OpenSocial Embedded Experiences.
While Notes always had the option for custom mail experiences (store form in document, send), the Embedded Experiences allow integration into any application (that supports them).
One of the first things you might want to do is to pimp your existing applications to provide this new experience. It would be much lighter than storing the form and also work with other mail front-ends.
The good news: adding embedded experiences degrades gracefully, so all users not on 9.0 or later won't see a thing. This means you can get started immediately:
  1. listen to Niklas' explanation and get the sample code
  2. create/configure the gadget for your application (that's a separate post, coming soon), check the documentation
  3. create a class that does all the notification sending, classic and EE
To give you a head start for #3 use this.
As ususal YMMV


The AppStore Conundrum

Legend has it, that Alistair, at a certain IBM event, challenged Nathan to saw controversy among the assembled participants. Nathan complied and succeeded by mumbling "We need an AppStore". So far the legend, we will never know, did this happen that way. Nevertheless the question remains:
"Does Notes need an AppStore?"
After all Apple has one for both OS/X and iOS, Microsoft has one for all flavours of Windows 8, Nokia has one for Symbian, as have Amazon and Apple for Android. There are AppStores for Firefox and Chrome. Clearly Notes need one too! There are attempts around already. Not so fast!

When looking at the AppStores one can see a pattern:
  • Applications are installed on local devices (or browsers)
  • If a server component is involved, it is provided in the cloud (outside the enterprises' firewalls)
  • The bulk of applications are for personal and social use
  • There are 10 to 100 thousands of applications
  • Most of them are free or low priced, designed for volume markets
  • AppStores mostly created a market, where there was none before
So how does Notes compare? With a few exceptions Notes applications are for collaborative use inside a corporate firewall and require a server component. A lot of Notes application are bespoke. IBM claims about 140++ M licenses sold, which is a way smaller target market than a whole OS or browser platform, who except the existing players would come along?
So there is no new market to be created. Administrators jealously guard their servers (not discussing the merits of that here). So all things a AppStore does enable more or less doesn't apply to Notes. Case closed! Not so fast!

There is room for improvement how applications are handled on the Notes platform. Two examples:
  1. In the Notes client I can hit Ctrl+N pick a template with a one line explanation, pick a server and arbitrary file name and get greeted with an error: "Bad boy, don't do this - anyway we won't let you"
  2. Have you tried to install the Connections Files Plug-in? Once you found it, download, expand, hack the plugin-customization.ini, install (Yes the admin could do that, but it is a drag
So my simple wishlist would be:
  • A new Notes.ini parameter NewDatabaseDialog=<some notes url here> and an IBM sample implementation for it (yes a more modern implementation of this). It would allow new predefined applications to be deployed more quickly than any manual process. Some accountability and "do you still use this" checks can be build in at gusto of the customer processes. Eventually a sync option with a vendor repository could be build in
  • A default toolbox.nsf created on each server install or upgrade. The database would have the extended functionality to be able to host (as a proxy) entries from remote repositories (e.g. by IBM, OpenNTF or our ISVs) and periodically check for updates (and download them for staging - think a little like RPM or DEB management in Linux)
  • A reliable automated patch management for the Domino server (but that's a slightly different story)
  • A revised home page for browser access, running on top of the application that provides the dialog of my first suggestion. It would provide access to the existing applications and the mechanism to request new ones
So users wouldn't interact with an AppStore in the wild, but the process of getting apps and tools deployed and keeping them current would be much more streamlined. Once all of that is in place and starts to make a difference I would revisit the AppStore question.
What's your take?


How does an ideal Notes Client deployment look like?

QuickImage Category   
In recent customer discussions the question popped up: "How does the ideal Notes Client deployment look like". The intention of the question was less around the technical aspects, but the user experience. Technically you would have a shared install, a good widget catalog, some sensible policies, automatic login and continious defragmentation in place.
The question is: what should the user see?
There are components in Greenhouse and on OpenNTF. You also can roll your own from mobile websites or Java Code. You want to understand some RegEx. Don't expect your users to do that.
Chris Miller published his top 10, here comes mine. I distinguish between "official IBM", "community supported" and "custom stuff around LiveText". Here you go:
  • Official IBM Plug-ins

    • The build in Sametime client. While I have little use for the Buddy list, it provides the presence awareness for all Notes applications
    • The build in Activity plug-in. It allows me to keep my IBM Connections Activities offline, make sure to install them
    • The Connections Files plug-in: Seamlessly work with your files from connections, drag & drop files and links to files
    • The Notes learning widget: Have learning information at your fingertips
  • Community provided

    • Wildfire: Update all your status information in Connections, Twitter, Facebook, Sametime etc... from one convenient location
    • Bob Balfe's Attachment viewer: Preview attachments in the sidebar
    • The file navigator: Provides access to the file system, drag and drop like the Connections plug-in, but with local files
    • Discussion Add-on: One of my favorite "hidden gems". Copy any document (presumably eMails) with one click into a discussion database. Mini tool to enable sharing information with a team
    • Sender analytics: Find out more about an eMail sender (right click action)
    • Snippets: Single store for text snippets, attachments etc. Invaluable tool if you repeat with repeated information to different people
    • Connections alerts plugin: Stay in touch with the happenings on Connections while working in your Notes client
    • IBM community newsletter generator plug-in for IBM Connections: Generates newsletters and other interactions for your IBM Connections communities. Inbox still rules for notifications
    Not mentioned here: Sametime SUT, Softphone or Headset management - useful but vendor specific. Add them if you have them!
  • Custom configuration & 3rd Party

    The challenge here: find identifiable patterns that allow you to link text to external actions. Here are some examples:
    • \#([A-Za-z0-9_-]+)(?![A-Za-z0-9_\]-]): identifies Hashtags and provides the value with and without hashtag to search bookmarks or twitter or [insert-whatever-here]
    • \b([A-Z]{3}) ([0-9.,]+)\b: Match a currency (3 letter currency code, number behind)
    • /\b(1Z ?[0-9A-Z]{3} ?[0-9A-Z]{3} ?[0-9A-Z]{2} ?[0-9A-Z]{4} ?[0-9A-Z]{3} ?[0-9A-Z]|[\dT]\d\d\d ?\d\d\d\d ?\d\d\d)\b/i: Tracks UPS shipping numbers
    • TripIt: for the frequent traveller (add it as url based widget with authentication)
What am I missing here?
Is is quite some work to configure all of this, but is is worth the effort.
As usual YMMY


Moving a NSF from one server to another

I will never FTP a NSF
And no copying with Explorer or SSH either. Moving from one server to another is called replication. If it doesn't work as you expected you have a problem at hand that you need to fix that moment or it will bite you soon enough! (Picture courtesy of Bart Simpson Generator)


Filing eMail doesn't make you more productive - really?

QuickImage Category   
IBM research published an interesting study titled Am I wasting my time organizing email? A study of email refinding. It has been picked up in various places and looks like a field day for the "don't bother with organizing anything eMail" crowd. I think the paper is solid research for the question asked and the observations made.
However, I sense that a number of question haven't been asked that might change the producvtivity bottom line in favor of a different approach. I fully agree that hitting search or simply scrolling through a list of messages (often sorted by subject or sender) is a very efficient way to find a specific message. Also having a message thread is invaluable. I used message theads already in R7 when they only displayed when you open a message. So what did the study not look at (to be clear: I'm not saying they should have looked at these, but I'm saying you need to look at thse to gauge all over productivity):
  • Impact on productivity of a full inbox. How much time do I loose to every time I look at the inbox to decide: that's a message I dealt with, this needs my attention?
  • In Lotus Notes (other than Outlook) you can file a single message in as many folders as you like, so it is closer to tagging that "classical" folders. Once users know that, would they use it?
    E.g. I have a folder 1Action2Day and then customer folders. I move messages often into both. When I dealt with it I just remove it from 1Action2Day. Folders in Notes are equivalent to the tags in GMail, they could be a little more prominent in the mail UI (we do have the @Formula to show)
  • In Notes I can at any time scroll and search in the "All Documents", so I don't need to settle for one or the other strategy. Depending on my needs different strategies work better.
  • Difference in search strategy depending on short or long term tasks. E.g. I file "Thank you" eMails in a specific folder, so I can pull them out at review time. They are elusive to search since there are so many ways to say thank you (made my day, your'e the hero, awsome job etc). Also I use topic folders (e.g. a customer project) to review "what happened on the messaging wire". Using tags/folders I only need to make that association once when I process the message and not everytime when I search. So there's a huge difference between: "looking for a specific message" and "getting an overview what happened to {insert-filing-topic-here}"
  • Knowing that search is available, does "remove from folder" shorten filing time (I use that quite a bit)?
  • Impact of filing assistance tools. The paper mentioned one for Outlook and overlooked that we deliver one for Notes for a very long time: SwiftFile (unfortunately Windows only)
  • Impact of ad-hock filing strategy. I didn't really create labels/folder upfront but create them as I go. I also do not file everything. But I do remove everything from the inbox
The interesting pointers at the end of the paper can be translated: classifying messages is boring (true), automated tools can/should help (true), more people information might help to (good topic for a follow on research). I would conclude: good meta data would be best (aka "What is the context of this message"), if it wouldn't be so unconvenient to create them.


Apples and Oranges Can I have 1785$ per user for messaging too please?

QuickImage Category  
Update: I promise: no more mental math at 1am in the morning. Post revised.
IBM invented FUD, but Microsoft turned it into an art. On their website they have an entertaining set of claims. I leave it up to you to judge their credibility. The real fun part is the Godiva case study. According to Microsoft the 1400 people company saved $250,000 per year by moving to Microsoft. That would turn into $178 per user/year. Of course that calculation is riddled with question marks. Lets remove the Oranges and compare Bananas with Bananas. There are 2 moves: one is from "I-run-my-own-server" to "happy-in-the-cloud", the other is switching products. So lets have a look:
  • When comparing deployment diagrams Exchange looks rather complex. The license stack doesn't look better. That might be one of the driving reasons for Microsoft to offer cloud. But what I wonder is how could they spend so much on running Domino? Back in 2002 Ferris conducted a study about Domino TCO. They found R5 would typically cost $22 user/month, while R6 would push that to $6 user/month. In R7 Ferris calculated additional 15% savings, with additional improvements with Notes 8.0 and Notes 8.5, especially around storage (DAOS), policies and monitoring. I checked with people who run efficient Domino installations and they run Domino, Sametime, Quickr, Protector at running cost of $6-7 user/month. So the number of products has increased and probablt the mailbox sizes, but no the cost. That leaves quite some money for licenses and hardware
  • But we are going cloud. So we compare to LotusLive Notes. The site says it is $5 user/month list price (or $3 if web only mail will do - like the factory floor workers). But let us us do more. Let's add file sharing (that also works with outside parties) and collaboration like IBM Activities or IBM Communities and Symphony live. This pushes the list price to $7 user/month. Finally we throw in web conferencing that allows to invite external guests for free. We end up at $10 user/month. That makes $120 user/year.
So when I shall save $178 user/year someone needs to pay me $58. (I know it isn't accurate, since there are people and servers etc. involved. But moving to LotusLive Notes is pretty much one cross cert, a few policies and then replication. So no cost for engaging and licensing BinaryTree). In German we call such claims "Milchmädchenrechnung". And we haven't looked at the apps yet.
Readying the flame proof underwear.
Update Thx for all the comments. Its good to know that there is some readership


Simplify Domino installation on Ubuntu

QuickImage Category   
Installing Domino on Linux requires a few extra steps. You need to create user/group and implement a startup script. The best one can be found on Daniel Nash's site. A good instruction, step by step has been provided by Danilo Dellaquila in Part 1:Ubuntu installation and Part 2:Domino installation. Danilo went the extra mile and created a deb package for download that takes care of the details and simplifies your chores. Details are in his wiki.
As usual: YMMV


Firefox takes a page from the Notes UI

For what it is worth: The iPhone made the tiled desktop, pioneered by Notes more than a decade ago, popular. Microsoft's ribbon was predated by a Lotus design. Now it's Firefox turn to adopt a Lotus UI element. The latest Firefox 4.0 beta release sports a menu button:
Firefox 4.0 menu button
That button looks very much like the Start button featured in Lotus Notes, Lotus Symphony, Lotus Expeditor and Websphere Portal
Notes Start button


Lotus Greenhouse and the IBM OneUI v3

Have you paid a visit to Lotus Greenhouse lately? IBM features the upcoming Lotus Connections 3.0 there to try. There are a number of interesting observations to be made beyond the core improvements to Lotus Connections. Lotus Connections sports the upcoming IBM OneUI v3 and I expect the documentation being available at the usual spot once it is released. One interesting structure to note is the 4 basic tabs: Home, Profiles, Communities and Apps. Apps now hosts Bookmarks, Blogs, Files, Wikis, Activities and Forums (which makes the Latin speaker in me cringe: correct would be Fori, but that never made it into English grammar):
Lotus OneUI v3 Apps
There is no reason why that Apps menu couldn't host access to Quickr or your custom applications. So Lotus Connections evolves into the Lotus lead application. Looking at the OneUI you can see how it is evolving. This is one more reason to stick to OneUI for your custom applications. A simple CSS update will bring you in line with the new styles. Jeffrey Veen once taught me: Websites are about structure, layout and behaviour. Structure is provided by HTML, layout by CSS and behaviour by JavaScript. OneUI is all about structure - You don't need to agree with the CSS. Feel free to change anything inside the { }. Below you see the evolution from OneUI v2 to OneUI v3. Will we see user contributed OneUI themes anytime soon?
IBM OneUI v2
IBM OneUI v3
Can you spot the difference?
Update: The v3.0 documentation is out


I did *NOT* create the AppStore wars video

Major blunder in This week in Lotus Episode 6. I have not been asked by Stuart McIntyre or Darren Duke regarding authorship of the AppStore war video. Nevertheless they seem to know that I created it. I did not. It is not my style of language and attributing me as the author will lead to serious trouble for me (there is something like IBM employee conduct guidelines that exclude this type of language for IBMers). I discovered it on YouTube (after being tipped off). Guys you owe me an apology.


The AppStore wars

AppStores are the hot kids on the block. Everybody has one selling personal applications. Would that fly with Lotus Notes that is rather perceived as an enterprise application (is it?). Let's hear what the robots have to say:

Definitely someone needs to wash their mouth for using foul language.

UPDATE: NO NO NO. I did not create this spot.


What if IBM would drop support for 32Bit Domino on Linux in favour of 64Bit?

Domino Server 8.5.x is available on a lot of platforms in a lot of versions:
  1. Linux for z/OS - 64 Bit
  2. Linux on Intel - 32 Bit (runs well on 64 Bit OS)
  3. Solaris - 32 Bit (runs well on 64 Bit OS)
  4. System i - 128 Bit
  5. System p - 64 Bit (32 if you ask very nicely)
  6. Windows Server 2003-2008 - 32 Bit (also can run on 64 Bit OS)
  7. Windows Server 2003-2008 - 64 Bit
What is obviously missing is a 64 Bit version for Linux on Intel (Linux here means: Redhat or Suse, Ubuntu isn't on the official server list [yet?]). Technically is isn't a problem since IBM has a 64Bit Linux version running. It boils down to customer demand and support cost. Every additional platform increases support effort (translated: fixes take longer). Occasionally IBM drops platforms from future versions of Domino (like: Netware, OS/2 or HP/UX).

So I'm wondering:
What would happen if IBM drops -in a future version- support for 32Bit Linux in favour of 64Bit Linux?
Would that be an issue in 201x? What's your take?

To make this crystal clear: This is me wondering, this is not any official IBM inquiry or a disclosure of any IBM plans.


Fun with international versions

It is not enough to translate your software into another language.
Reply to me
You also need to teach it how to recognize Re: and Fwd: or you get the above result


Domino Designer Import and Export

My colleague Guo Yi from the China Development Labs (CDL) in Beijing has published her first Domino Designer Plugin: Export and Import Tool for Domino Designer. I'm listed as contributor, which is true for idea and concept. All the heavy code lifting was done by Guo Yi. With this little gem you can export/import anything from/to Domino using the familiar Eclipse export/import dialog. The nice thing: the tool treats every file type appropriately: a CSS file becomes a CSS file and not "something like CSS wrapped into XML". A XPage ist XML following the XPages schema. Classic design elements are converted to/from DXL (so the usual caveats apply).
We were musing to add some kind of automation API to the plug-in (after all a version 1.0 needs a successor). ANT is my personal favorite, but we would be open to suggestion.


Has replication as we know it reached the end of its usefulness?

QuickImage Category   
In a fully connected, always on, any device world there doesn't seem to be space for replication (or synchronization as it is called by other vendors). So why not scrap it and move on? I'm sure no one will miss the little diamond indicators denouncing a replication conflict.


Software Design and Components in XPages

In Domino 8.5.1 we will have a new Design Element "Component". This design element can be used in Portal, Mashups and the Notes sidebar as iWidget as well as composite component in the Notes client. In a component you pick 3 XPages (could be the same for all 3 cases) for read, edit and help mode. You also define the events the components "knows" and what type of event is is for that component: sending, receiving or both. An event is associated with a data type that can be primitive (String, number), JSON or a complex data type you defined with that component.
Components are the Lego blocks of your applications. A system designer now can quickly build "empty" components wire them up and then leave the implementation to the XPages development team. This could accelerate Domino's RAD capabilities further.


This morning @

Category is the place where performance benchmarks for Lotus Domino servers are published. However this morning I was greeted in Japanese:
Which translates to: This is "".

We are ready, please wait.


Example of a sidebar helper

Once you work for/with an international community or organization time zone pain becomes immediately a pressing problem. In Firefox I use the FoxClocks plug-in. In Notes 8.x I just got a new alternative for the sidebar:
When is it now
It is an IBM internal plug-in named "When-is-it-now" that not only shows you the current time at your selected locations, but also indicates with a traffic light how likely it is to reach someone based on business hours. Nice touch. The brain decodes a color signal so much faster than the time mixed with the question "is this a business hour".


Building a high performance Domino Server

QuickImage Category   
Domino can take huge user populations. To do this successfully all elements of a Domino server have to be considered carefully. Following the old insight "It is always the cable" you need to pay attention to the hardware layout. While you perfectly well can install a Domino server on a low-end laptop or a VM Image, it wouldn't give you the peak performance you are looking for. You rather want something looking like this:
Server layout for a high performance Domino server
Let us look at the details:
  • Disk layout
    • Operating system and Applications: This is your first RAID 1 Array. Since data hardly change and are really not that much a small but fast spinning drive will do. RAID1 protects you against failure of one drive and speeds read operations. Some suggest to have separate drives for application and OS, but that might be overkill. You could consider having separate partitions (easy on Linux/Unix).
    • View Rebuild Directory: There is a nice notes.ini variable View_Rebuild_Dir. You can point to a separate drive to store the temporary files created during index updates. The default is the system temp directory. This directory is a good candidate for a RAM disk or a solid state disk when your system is updating a lot of views all the time.
    • Domino Data: Typically you have a RAID5/RAID10 storage here to accommodate the large amount of data (users demand Google size mailboxes and your applications don't shrink magically). More and more we do see SAN systems for Domino storage, which is OK. Just keep in mind: Don't store Domino cluster databases from different clusters in the same SAN since it defeats the idea of a share-nothing cluster. While we support the use of NAS, the network latency and bandwidth is a limiting factor. Archival servers run fine with NAS, but not your high performance primary production server.
      Update: Fixed the graphic to show RAID10 since is shows much better performance than RAID5
    • Transaction Logging: You have tried it. Switched it on, expected great things and it didn't perform. The flaw: for good transaction logging performance you need your own disk. Not just another partition, but your very own spindle (RAID1) ideally with its own controller. It would be interesting to see how solid state disks work here.
    • Full Text Index: Since Domino 8.5.3 you can move the FTIndex to a different drive. This improves data throughput and reduces fragmentation on your data drive. Add FTBasePath=d:\full_text to the notes.ini and run updall -f. Your 100 user server won't notice. Large environments will benefit
  • Network layout
    • Cluster Replication (If you cluster your server only): You want to have your cluster on its own network segment. If you have 2 boxes next to each other a cross-over cable would do (afaik 1GB Ethernet requires a hub). If your go three-way (highly recommended), then a hub and an IP address segment that doesn't get routed will do.
    • Server Network: All servers should be connected on the server backbone. Put them into their own subnet clients can't see. Replication never gets disrupted by clients jamming the network ports. The server network also handles mail routing.
    • Client access: If you have huge numbers of clients you might reach the physical capability of your network card or the TCP/IP stack. Use more than one card and/or more than one IP address to have sufficient ports available for clients to connect.
Of course all of this isn't new (except the shiny picture), you can read much more details on IBM's Domino Performance Best Practices pages. This is just about the hardware layout. You need to consider the operating system too. But that's a story for another time. As usual YMMV.
Update: There is now addtional material available how to tune an IBM System x server to peak performance. Update 2: Samir points to a nice comparison between RAID5 and RAID10. It's not Domino related but insightful. One key point there: watch your controller.
Update 3: Added the separate drive for the full-text index


Accessing Sametime Unyte from your Notes Client

There is a nice little plug-in available to instantly host or join Sametime Unyte meetings from the comfort of your Notes 8.x or Sametime 7.5x++ client.

Installation instructions can be found @ IBM Support.


IBM Lotus Domino 8.5 performance for iNotes users

The second performance report is out: iNotes 8.5. From 8.0 to 8.5 alone disk operations/sec improved between 22% and 33% and disk bytes/sec between 24% and 45%. Improvements from previous version should be even bigger.


LSX Toolkit finally gets updated

After a long wait the new version of the LSX toolkit is available. There is great rejoicing in many places soon after Brent announced it. And life is good.


IBM Lotus Domino 8.5 performance for IBM Lotus Notes users

The Notes 8.5 mail server benchmarks are out.
From the article: "Increasing value to the customer is an ongoing theme for the IBM?? Lotus?? Domino?? server. The growing volume of information in today???s enterprise strains existing hardware infrastructures. Lotus Domino 8.5 contains features that help relieve the stress on the expensive processor and storage subsystems. This article shows the reductions in processor and disk utilization with Lotus Domino 8.5 and Lotus Notes?? clients."
I spoke to Yang Bin and he confirmed that the iNotes performance paper will follow soon.


Hidden IBM Software Gems

When looking into the software universe you usually find 2 kinds of software: standard software (like OpenOffice, SAP, Lotus Notes) and custom (or bespoke) software (which is build by an ISV or an inhouse team). On a closer look there is a third category. In IBM we call that a software asset. Such an asset solves a business problem in a repeatable way but hasn't enough breadth or depth to justify the process that turns it into a standard software. Typically software assets are used together with consulting and implementation service. Inside Lotus, to no surprise, there are a lot of these assets under management by the IBM Software Services for Lotus (ISSL). From time to time I'd like to introduce this solutions. Here are two:
  • Automated Database Deployment for Lotus Notes(ADD4LN - IBM internally known as Database-o-matic): Allow business users to create new databases based on selected templates and manage them including the access control. Users won't need to learn the ACL dialogs or the Notes admin client.
    Why is it interesting: One of Lotus Notes' biggest fans clearly stated, that databases are the key to Notes bliss. However allowing anybody create access to any server only ends in a maintenance nightmare. ADD4LN fills that gap by not only making creation easy, but also helping to keep track. ADD4N does this one thing very well, and is fast and easy to implement. If you are looking for a more versatile solution, you need to ask Bill.
  • My Attachments Tool (MAT). MAT moves automatically or on trigger all attachments from your mail file into a separate attachment database and replaces the original attachment with a DocLink to the new location. It identifies duplicate files and only keeps one copy. MAT predates tools like DAOS and Quickr and is still a valid addition to your toolset. MAT works on Windows, Linux, Mac and OS/2. Normally you would use a local attachment database, so no server side storage is required. I have configured my MAT to archive any attachment that is older than 7 days.
    Why is it interesting: While that 50 MB Powerpoint presentation is stored only once in DAOS for all 500 users, it still counts 500x against the quota. With MAT you can remove these attachments from your quota and still enjoy the fulltext search and intact context of the attachment (who send what file when is often as important as the content itself). MAT works offline by design and can be replicated if desired (the Quickr connectors are not there yet). MAT also helps to eliminate local duplicates. I use it every day (OK, the background agent works for me every day).
Your local IBM sales rep will know more - or drop me a note.


Keeping track of events

Every large or small organization has events that everybody needs to be aware of - as needed. There are many solutions that offer corporate and team calendaring. They all have a drawback: you need buy them and you need to change the way you work (Some are smarter than others). Today I'd like to show you one option how to get a corporate calendar on a shoe string (You need your admin's help for that):
  1. Create a new database on the server using mail[yourServerVersion].ntf as template
  2. Set the default access to -No access- and [x] Read public documents (don't forget to have a manager access for the database)
  3. (Optional): Add a group with -Author access- and [x] Write public documents. They could create new events in that database
  4. Go into the profile and set the Owner of the mail file to Corporate Calendar/MyCorp
  5. In the calendar profile set the autoprocessing option to "accept initiations even with time conflicts
  6. Define a mail-in database in the Domino directory with the name Corporate Calendar/MyCorp pointing to your new database
  7. From now on for all events you want to be visible, enter them as meetings and invite Corporate Calendar/MyCorp
  8. (Optional): In Notes 8.5 add this calendar to your calendar overlays.
Of course you can have many calendars this way: by department, internal and external events etc. Short of the calendar overlay this possibility has been around since Notes R4.5 when calendars have been introduced into Lotus Notes. Hint for IBMers: you also can use the calendar of a functional ID for this purpose. Getting one of these is a well established process.


Domino eMail for Android devices (and others)

On 16 February Seven announced at the GSMA Mobile World Congress in Barcelona the availability of their email solution for Android phones. From the press release:... Support for business email: provides mobile subscribers with seamless and secure access to Microsoft Exchange or IBM Lotus Domino corporate email, which represents 80% of the corporate email services in use without installing any software behind the firewall....
Seven already supports Brew, J2ME, Palm, Symbian and Windows Mobile. Seven is available in more than 50 countries.


The nifty-fifty unearthed

Catching up on my Blog reading I came across a post from Tony Austin ranting about rants about Notes 9.0. In that post is a gold nugget (cat's gold I suppose): a link where you can download the original nifty-fifty (for the uninitiated: the nifty-fifty were 50 sample applications Lotus published ca 1999 1992/93 together with Notes R3/R4 in the early days of collaboration, where people would use groupware for a wide range of tasks and hadn't turned into eMail junkies). Looking at these applications I can't starve off that feeling that all the new web2.0 hype is pretty much the same old wine in, admitting very pretty, new barrels. These are the applications:
  1. Things to Do
  2. Requisition Approvals
  3. Application Tracking
  4. Book Reviews
  5. Budget Planning
  6. Call Tracking
  7. Clip Art Gallery
  8. Contract Library
  9. Correspondence
  10. Customer Service (five databases -- Product Design Problems, Customer Suggestions, Knowledge Base, Data Dictionary)
  11. Call Tracking -- as well as a sixth database with documentation)
  12. Demo Room Reservation
  13. Employee Records
  14. Event Calendar
  15. Executive Briefings
  16. Expenses Reports
  17. Formula Catalog
  18. Forms Routing
  19. Electronic Library
  20. Icon Catalog
  21. Job Candidates
  22. Job Posting
  23. Sales Management
  24. Library Tracking & Training
  25. Purchasing Item Tracking
  26. Litigation
  27. Lookup Keyword Library
  28. Meeting Tracking
  29. Monthly Financials
  30. Engineering Notebook
  31. Patient Treatment Signoff
  32. People and Facilities
  33. Phone Book and Yellow Pages
  34. Presentations
  35. Race Results
  36. Real Estate Management
  37. Recipes
  38. Relocation Expenses
  39. Routing Tracking
  40. Reservation Scheduler
  41. Sell-through Sales Reports
  42. Shotgun E-Mail Communications
  43. Conference Suggestions
  44. Support Conference
  45. Support Center Call Tracking
  46. System Equipment Inventory
  47. Team Consolidate
  48. Team Room
  49. Tech Services Call Tracking
  50. Technotes and Tips
  51. Telemarketing
  52. Travel Authorization
  53. Values and Goals
  54. Wholesale Customer Tracking
Tony of NotesTracker fame lists 3 locations (2 of them his) where you can obtain a single zip file with all these databases: All of these applications are vintage and look like 1999, some are outdated but the rest could be a nice foundation for an XPages feast. Xifty-Xifty anone?
[Update]:The databases are in R2's ODS13 format, to save you the trouble of conversion they are now available in ODS51 of R8.5. Still the design hasn't changed, but there is hope (Do you now understand what a circulare reference is ).


Protect your IBM Lotus Domino Server against brute force attacks on non HTTP ports

Chris Brandlehner provides excellent advise how to harden a Domino server further against dictionary attacks. Of course you only need that if you allow non-Notes clients to authenticate via SMTP. If that's off (as in good Notes/iNotes only shops), you don't need to protect that vector. Anyhow the script is designed for Linux, I guess it works on AIX, Solaris and other Unix too. I wonder what you do on Windows.


Overheard at a developer discussion

QuickImage Category    
XPages feedback from an early adopter:"I'm now able to call our code from an XPage... and equivalent transactions that were taking a full second (or more) to complete in a Domino agent are now completing in 20 - 40 milliseconds. And we haven't even optimized it yet; that 50x performance boost is just from running it in XPages instead of in agents."
What do you want more?


XPages Workskops coming up.

Tim sums it up:
So it seems that word is spreading about this great XPages stuff, (so someone does read my blog) and I am being asked what the plans are to deliver it in other countries. January is going to be planning month and Lotusphere 2009 So here is who to contact if you want to add you name to the list of people/countries that are interested.
to find out how to contact them you can use the WhoIs application.
Only Stephan and I know about this blog post so far so when you contact the others, please be gentle. ;o)
  • EMEA: Tim Clark Please leave comments on this post to show an interest for EMEA.
  • Asia Pacific: Qiao Ming Chen for China, Stephan Wissel (me) for Asian & India, Atsushi Sato for Japan
  • ANZ: Craig Hart for Australia / New Zealand
  • Americas: Craig Wolpert


IdeaJam running within Lotus Connections 2.0

IBM's business partner Elgui Software has a great piece of web2.0 software called IdeaJam (build on Domino/XPages). IdeaJam allows the sharing of ideas, commenting and voting on all ideas. It is an application no IBM customer should miss. Bruce just pointed me to the latest feature: seamless integration into Lotus Connections.
From the IdeaJam product page: "IdeaJam is a place where people can post and share their ideas, and gauge the marketability, popularity and viability with input from others.
When an idea gets posted, others can help promote or demote the idea and provide comments. Popular ideas will bubble to the top.
Make your opinion count.
Go and check it out.


The "real" impact of XPages

Based on the IBM Dublin workshop Tim,Matt and myself created the materials for the famous XPages workshop that ran in Hursley and Bejing (and is planned for other locations early 2009). One comment by a participant summed up the impact of XPages on Notes (yes it's coming for the client) and Domino:
"I was afraid that my lack of experience with the Lotus environment would prove to be a burden during the session, but it has not. On the contrary it might even have been an advantage (emphasis mine), having experienced the workshop with clear eyes (if you will) not trying to apply old routines. It has been difficult to accept drag & drop and the "what you see is what you get" concept of developing. Coming from normally developing in a simple text editor basically. But it's quick effective and if there's any need to goof around with the source, the option is there. I think I will definitely embrace XPages and hopefully with the knowledge I've gained this week, have my colleagues do the same. (They are all Lotus fanatics anyway :) )"
A lot of our customers cite difficulties to find enough Lotus developers. With XPages Domino you develop in JavaScript end-to-end. These skills are much more readily available. Of course you need to learn the object model, but at least you get away with a single language.


Testing Notes Client applications

QuickImage Category   
My friend Lucius started his own software company Smart Toucan. His first product is Auto-User, a tool that can test Notes Classic client applications. You can use it for recording/replaying demos or to run automated software test. While IBM has a great product for web application testing (the Rational team will not talk to me anymore if I don't mention them here <g>), automated testing capabilities for the Notes classic client are painfully absent. Auto-User plugs this gap. The current Beta release works with Notes 7 and I'm looking forward to the R8 Classic and Basic configuration versions. Go check it out.


Estimating Notes projects

QuickImage Category    
Estimating software project cost and duration seems to have parallels with the local weather reports: You simply can't rely on them. Waterfall project approaches are partly to blame. Estimating the amount of work units for a requirement is another. How much work is "The system needs to be user friendly"? For the sake of this post lets us presume your have a magic box, typically labeled experience, either explicit or implicit, that gives you an insight how much code you need. Once you know how much code (a.k.a. LOC or "lines of code") you need to write, estimation becomes manageable. A good tool to estimate is COCOMOII. With the LOC, COCOMOII and your average hourly cost you can estimate the cost easily (Thanks Mitch).
However using a visual development environment (Visual Studio, Eclipse, Adobe Studio, Domino Designer) makes things a little more complicated. A form or a view you draw is not a line of code. The UML model you paint (that will turn into a database schema and code classed via generation) is not a line of code. So you need to expand your mental estimation model slightly. There are two new terms to get familiar with:
  • LOC_TE = "Lines of Code - Time Equivalent": The time for painting one form is equivalent to writing how many lines of code?
  • LOC_AL = "Lines of Code - Avoided Lines": When you paint one form how many lines of code can you avoid to write? The whole promise of any visual environment is, that LOC_AL > LOC_TE. This probably varies from platform to platform and makes an excellent subject for a bar brawl between competing developer camps. I guess you won't find much information about that ratio since nobody ourdays would afford to build a system twice.
Where does that leave you for Notes or Domino estimations? You need to find your magic number for LOC_TE for the various design elements (see graphic below) and then apply the COCOMOII estimation. Of course you could simply use time estimates (by revisiting your past projects), then however you need to calculate your own project variance based on project complexity and team experience. Neglecting experience and complexity are the great fallacies happily endulged in by project planners with too little experience in software project estimations. The difference for a similar sized project can be 500% from "very experienced team working on a low complexity project" to "unexperienced team working on a high complexity project". Even if you just consider experience you will still have to shell out more than double the money (230%), 70% more people and 40% more calendar time for an inexperienced team.
The orange boxes are most likely what you will get out of the discussion with the business users, including some of the yellow boxes. For the red ones you can directly insert lines of code. How do you estimate your projects?


Notes Application Statistics

I recently had the opportunity to look deep into the many thousand applications one of our customers has deployed. I found the following metrics:
  • A Notes database application has per average 18.8 forms, 14.4 subforms and 37 views (including folders)
  • There are 8000 lines of code per application (@Formula, LotusScript, JavaScript, Java) and 10.5 agents
  • A form or subform has per average 10.7 fields and 8.8 actions or buttons. So if a form uses 3 subforms you would have 32.1 fields in that form.
  • A view has per average 6.7 columns and 8.8 actions (We averaged actions across forms/views, so the number is the same as for forms/subforms)
  • The Lotusscript functions have an average length of 21 lines
Of course: averages are averages. Typically you find a bunch of auxiliary forms/views with small numbers of actions/columns/fields and the main forms that tend to be much longer. Guess I'll play with that statistics a little more.


applicatio sine qua non*

If you only have money for one intranet application running on your Domino server (besides the blog and discussion that came with the server and all the goodies from OpenNTF) it would be IdeaJam from elguji Software llc. My favorite other Notes application (which runs on the client) also uses IdeaJam to collect ideas. No idea what ideaJam is? Just watch the video:

Ready to learn more? Take the tour. IdeaJam (as the time of this writing) is available in French, English, English (GB), Spanish, French, Italian and German. If you order enough copies they would make a Chinese or Bahasa version too.

* The application you can't be without.


Lotus Notes Applications and other eMail Systems

Microsoft's competitive strategy with Lotus Notes is to migrate eMail to Exchange (more likely to Outlook with Exchange included as collateral damage) and to sunset or migrate applications thereafter. Looks good on paper and eMail is eMail isn't it? The hangover from the "Hooray we'll do Outlook" party comes when running the numbers on application migration. Remember: Every minute/dollar spent on migration doesn't get spent on new user requirements and productivity improvements. Their poster child Accenture, with Steve Balmer sitting on their board (would that eventually have influenced their migration decision?), took more than 6 years and still according to Vidya S. Byanna, Global Infrastructure Executive Director Accenture 200 business process supporting databases are still not migrated (nicely put by Vidya: "are in the process of migrating"). Update: Accenture has removed the blog entries, but
The web does not forget! Quite interesting finding given their access to Microsoft and their claimed technical expertise. So if you have started a migration, good luck to you. Running your numbers carefully, you might end retaining and extending Lotus Domino as your collaborative platform (There are a lot companies doing just that). eMail is sooo last century. Of course the question of interoperability needs to be answered. When you build web applications, you probably already wrote a class MailNotification that generates notification eMails with http hyperlinks in the message. If you have existing (client) applications you need to deal with the way @MailSend and NotesDocument.send is working:
  • You have retained your Notes clients: Don't do anything. Connect your other eMail system to the Domino system using SMTP and the SMTP router of Domino will convert the DocLink into a hyperlink using the notes:// protocol. Of course I presume you have configured your Domino server properly (hostname anyone). If your user typically use local replicated databases the links created will point to local databases using notes:///. That can be a problem if the receiving end doesn't use a local replica. In such cases use Geniisoft's CoexLinks.
  • You web enable your application using the Domino http task (classic or XPages alike): you either need to touch all your applications and replace @MailSend/NotesDocument.send or use Geniisoft's CoexLinks. CoexLinks is an unobtrusive server tasks that does link conversion. It also takes care if users on Lotus Notes send you a DocLink. And NO. There is no magic button for web enablement. Depending on the code quality and structure of your applications it can be very easy or a little painful. See my session at Lotusphere to see what could be automated.
  • Your messages use stored forms and that forms contain actions and buttons and the like: Sorry. You need to rework these parts.


Domino 8.5, what's in the box?

A customer recently asked: "How difficult is it to migrate from Domino 8.0 to Domino 8.5". I gently had to remind him that we upgrade while others migrate. So what's the difference: A migration often involves new hardware, while a upgrade usually happens in-place (unless of course your box is rusty and you want a shiny new one). A upgrade doesn't alter data (a lot) while a migration typically requires data conversion. A upgrade can be rolled back very fast (in Domino: just start the server from the old binary directory - you might need a little help from the compact task beforehand). A upgrade also typically coexists very well with older releases. A migration comes with coexistence challenges.
Got it? Our colleagues from the Websphere brand came up with a very interesting model for new functionality. Instead of releasing a new version altogether they publish feature packs. Taking this train of though you could look at Domino 8.5 as a combination of a maintenance release and a feature pack. It will include more than 3000 fixes since the release of Domino 8.0 and a set of new features
  • DAOS which stores attachments one time per server regardless of the number of users it got sent to
  • ID Vault which help you to manage that Notes.ids once and for all (I haven't come across a better PKI store yet
  • XPages which allow you to do web2.0 with elegance and ease. XPages is actually not new technology. It has been available for Websphere Portal as Lotus Component Designer for quite a while. New is the deep integration in the Domino stack (and Domino Desginer, but this is a server post)
Of course you want to check the Official Pages once 8.5 has been released.


The shadow of things to come

Lotus Notes and Domino 8.5 are closing in on their release date. There is a lot of buzz around XPages. But IBM doesn't stop here. Development for 8.5.1 is in full swing and planning for 9.0 has kicked off long ago. Of course (can you spell NDA) I can't tell what's happening next in the Domino space. But I can share a screenshot from my workstation (proudly running Ubuntu):
Nota bene: I do not work in development, I don't make statements what they do or will do.


Coming Soon

Stay tuned!


Spreading the love

To often people still think Lotus = eMail. That is worse than thinking Lotus Notes is eMail. Yes there was a time when Lotus = Spreadsheet. So what to do about it? Well a picture is worth as thousand words, so everytime I open my laptop the picture becomes clear:
notessensei_laptop.jpg is an alias for this blog. Working on my Global Microbrand

Update: The skin has been produced by Digiskin. The pro: it is super-thin, the con: you can't fix it yourself, you have to go and see them. They seem to operate in Singapore, US, South-Africa and Germany.


Domino and eDiscovery

Most legislation today require to keep "accounts and other business records" for many years (typically 3-8) for compliance and discovery. Depending on their content eMails are today considered business records*. When starting to look into eDiscovery there are a number of terms and concepts one needs to become familiar with: Sub Poena, Sarbanes-Oxley, Basel II or eDiscovery.
Once you wrapped your head around it you then need to architect a system that avoids massive violations of retention legislation. Having all data stored in a single shared database like MS Exchange will immediately lead to the need to buy add-on products. Domino on the other hand provides a lot of required functionality out-of-the box. Dan Lynch has summarized what you can do. Go read it.

* While an email with an invitation to an after-office beer most probably isn't a business records, however the invitation to lunch to discuss the proposal surly is a record since it documents part of the history how a sale closed.


Excel to Notes or Quickr?

Question to the readers out there:
Has someone written a tool that allows to take a spreadsheet and turn it into a Quickr place or a Notes database. Of course that spreadsheet would contain a list. The tool would pick up the column headings turn them into field names and generate simple forms and views with the ability to do in-view-editing. I know a number of solutions that import/export spreadsheets but to my knowledge they all require existing forms and/or views. I admit I haven't done an intensive research on that yet.

Feedback very much apprechiated


Domino does sync with the iPhone!

The heat is on. So what are the options for Notes and Domino users?
  • Use Domino 8.0.2 (expected in August) and iNotes Ultra light. iNotes UL will support the iPhone. While it isn't Pushmail is is painless and doesn't leave stuff on the iPhone to be wiped
  • Wait for IBM to licence Active Sync. We currently predict that for the moment hell freezes over.
  • Find someone to implement Apples native protocols (we suspect they are http/webDAV/CalDAV)... which are not documented (are they?)
  • Use a robust sync server that can talk to Notes and Domino
Yes, it is available. Funambol just announced their support for the iPhone. You can kill a number of birds with one stone since Funambol supports a wide range of devices. Go check them out:
(C) 2008 Funambol, I'm sure they don't mind
Did I mention that they are OpenSource?


Brunei ICT Career Day

I was presenting on "Workforce 2.0" at the Brunei ICT Career Day. The event was organized by new newly formed InfoCom Federation of Brunei (IFB), the IT vendors industry association. I know the 2.0 memme is a bit overstretched, so I decided to present my case with a little tongue in cheek. In a nutshell: well trained talent is more mobile than ever, so attracting and retaining them requires enterprises (the 2.0 versions of course) to adopt to the work and collaboration style favored by them. They will blog and twitter about work and their customer interaction anyway, so providing them with the platform within makes that more valuable for their companies (Knowledge Management anyone). I got good questions from participants from AITI as well as the Prime Ministers Office: How do you "police" a Social Software environment against abuses: time wasted or even use against corporate interest. The example given was: If an IBM engineer uses the communities tool to gather a group of experts with the intention to jointly leave IBM and setup an independent, innovative and competing company. My reply to that: it happened before (SAP anyone?) even without these tools. Today IBM probably would have a close look and later buy the new company.
In the evening we had dinner with Bruneian customers and a good set of discussion items: How do you design a long term national development plan when the world is developing at "Internet speed"? Somehow inevitably the discussion later touched the topic of the recent Malaysian election, where the common understanding is, that bloggers played a big role in the mood swing that led to the heavy election losses of the current government. One of my Malaysian colleagues attributed the influence of the bloggers mainly to the failure of the Malaysian government to reach out to young voters and their failure to engage in dialogue to address the growing frustration about progress and inclusion (or the lack of) in Malaysian politics. As my mom always told me: you better listen!


The shape of things to come

Alan reported about it first. Our Business Partner Pentos AG is integrating Skype into Sametime and Lotus Notes. What started as a "simple" plug-in rapidly evolves into a fully integrated solution. Tim (the lead developer) shared a preview of the next iteration of the plug-in with me. It shows the Skype status wherever you have a Sametime enabled field. How kewl is that.

Sametime and Skype


How I got started with Lotus Notes

OK it is going round. So here is my story. After National Service I went to law school in Würzburg and Frankfurt. To make some money I worked as intern in IBM 1985-86 in my specialty, the IBM /36. IBM introduced me to the all new PC / PC XT and PC AT. Very soon I worked as freelance consultant and trainer for  applications like IBM Displaywrite, Harvard Graphics and Lotus 1-2-3. In a gig with Sears I learned the @formula language on the fly (the manual, me and the midnight oil) as well as the secrets of monthly financial reporting (I had some experience since I did COBOL at the university).
So I got pretty good at teaching and programming 1-2-3. I also used the later Lotus Products like Symphony, Magellan and got really fond of Lotus Agenda.
When Lotus Notes 1.0 came out, I was curious and got exited, so I called Lotus and wanted to buy Notes licences. I've been told they would only talk with me 500 licences onwards. So I looked around in my office and asked back, what I should do with the other 497 licences, so the deal was off.
After Notes 2.0 came out, in 1992, I tried again, getting the same answer but with the remark, that a Lotus Business Partner could sell me less licences. So I looked around and at the end bought my first Notes licence from Haus Weilgut. They are still around and are the makers of the Lotus Notes MindMapping application Mindplan.
After working a few month with Weilgut's CRM solution curiosity got the better of me and I fired up designer (which was part of the Notes client then) and started to mess around with the forms and views of the applications. Pretty much everything I know about development I learned in self study and by picking any brain that came close enough. 1996 I started to work as freelance trainer for the Digicomp AG in Switzerland and got my CLI certification. Being a CLI in Germany Lotus Education started to take care of me and I got quite busy. 1997 I met Bob Balaban at the Lotus Advisor Magazine Conference in Phoenix, AZ. I got a hand signed copy of "Programming Domino 4.6 with Java" and consider Bob a friend since then. 1998 Credit Suisse did send me to Singapore and Hong Kong for a training project and I decided to stay. After a few steps I signed up with IBM in 2006 as Lotus Technology and Productivity Advisor ( LTPA for short).
What's your story?


Domino next++

Domino's next version is under active development and as much as I would like to share details I'm bound by an NDA. However glimpsing into the future beyond the current version is something I can do (to some extend). To understand where Domino is heading, you need to be clear, that software is about people. Always has been, always will be. A little story to illustrate: In the 70th and 80th IBM trained a lot of IT experts in internal training programs only to "loose" them to the open market soon after their training completed. Everybody thought IBM should bond their trainees, until it became clear, that the "lost" trainees turned out to be the most loyal customers.
So again " The emperor sends out his knights" to ensure the future success (OK, one came back already). With our experts in strategic positions big things are in store for Domino next++ (Could be Domino 9.0 or Domino 10.0).
The interest the DB/2 integration led to some radical ideas around the storage engine and I'm exited to share that Domino will support CouchDB as storage engine. Since Damien did wonders to the @Formula engine, he will do that again for the database. He will work with the soldiers in the field to also provide seamless connectors to access local stores of other messaging systems natively (so no more migration of your Outlook or Thunderbird archives, just use them).  The Domino web container will be powered by the Zero engine. Zero (together with Jazz) is my favorite IBM project. Zero provides language environments running on a JVM: JavaScript, Java, PHP. So the Domino implementation will add LotusScript.0. Just imagine the possibilities: Writing Domino agents in PHP, Execute an @Formula in Java without invoking the ORB. We have some exiting possibilities coming up.


Lotusphere Comes To You Hong Kong

A good crowd turned (my guess is between 250-350) up to get their dose of Lotusphere.


Playing with BlogSphere Skins

My current past work chill-out activity is to play with Skins for Blogsphere. Declan made BlogSphere 3 compatible with Movable Type Themes, so you have access to a great library of design. Probably after a few rounds I'll get tired of switching and settle on one. Until then don't worry if you see a page that doesn't look familiar. And yes: I'll let Declan have them for the next release.


Not your dad's gMail anymore...

We all love gMail (more or less) almost as much as Domino (and there is a Sparkle in the near future). So how about this:

Thanks Bruce - and yes also available in English.


J2EE processing pattern

Lance has a good time in Singapore (OK, that thing about running in the morning is on his " learning-the-hard-way" list)
When discussing Project Blizz we realized, that we needed to discuss execution sequences. While all the modern tools ( MyEclipseIDE, RAD etc.) provide drawing tools, they are not suitable in a discussion where the flow changes rapidly. Nothing can beat a white board there, as long as the team is in one place. Since Nithi had to return to India we had to look for something else. Luckily I found Sequence. This little gem translates pseudo code into sequence diagrams as you type. So instead of fiddling around with layout (I'm not on a Mac), one can just type some lines of text and get a diagram in an instant. Our pattern for processing Domino stuff through the Websphere layer looks like this:

ServletOrTag.getResult {
	stuffRenderer.render(configName, parameters) -> OutputStream {
		configFetcher.fetch(configName) -> configObject;
		stuffTransformer.transform(configObject, parameters) -> OutputStream {
			stuffFilter.filter(configObject,parameters) -> OutputStream {
				stuffFetcher.fetch(configObject,parameters) -> OutputStream;

And Sequence turns that into this:
Sequence Diagram


Lance - Welcome in Singapore!

Lance Spellman
Lance is joining me in Singapore Monday 13th December 2007. Welcome!


Can someone explain where Exchange is better than Domino?

I don't get it.
There is a lot of discussion about what is better Microsoft Exchange or Lotus Domino. Looking at Exchange (of course with my "working for IBM" bias <g>) I can see a lot of flaws:
  • Lack of platform choice
  • Fragile single Jet database for all users of a server
  • Dependency on external directory
  • Flaws in build-in spam fighting (go ask Chris about it)
  • Complicated admin interface
  • Lack of backward compatibility and upgrade nightmares
  • Limited scalability
  • Bandwidth hog
  • No load balancing in clustering
... and so on.

Soooo what are the real advantages of Microsoft Exchange? Important: I'm not talking about Microsoft Outlook! The comparison between Microsoft Outlook and the eMail part of the Notes client is not an admissible argument for this question. Other people do the comparison there. I'm strictly looking at the server side.
From my experience Microsoft Exchange is rather accepted as collateral damage when an organization is adopting Microsoft Outlook, so that's not the explanation I'm looking for either.


Lotus Notes/Domino 7.0.3 is available

The Lotus team has incorporated 1372 fixes since 7.0.2 FP2. So if you are not ready to upgrade your servers to 8.0. Did you know you can benefit from R8 servers even with R7 workloads clients?


Lotus Notes 8 Launch in Bangkok

my Thai colleagues know how to throw a party. Over a thousand people showed up for the Lotus Notes 8 launch event. Having the Thai Idol finalists perform on stage might have helped a little

Notes 8 in BKK


Lotus Notes and Domino --- first impressions

I can't give any first impression at this time any more having worked with R8 for almost a year from early internal builds until the final release last Friday. So let us have a look what others have to say:

Tim Tripcony: " The server installation took 4 minutes . This includes stopping the Domino service, launching the installer, navigating the installation wizard, restarting the service, and selecting "Yes" when asked if I'd like to upgrade the design of my databases."

Bruce & Julian: The taking  Notes podcast with Mary, Ed, Alan and Rob talks about Notes 8.

Vowe isn't happy about the default install, but is happy, that the old R5 desktop has been retained.

Ron Sebastian is demonstrating the new R8 features on youTube.

Nick Boldt: " Notes 8 is an absolute delight to install as an upgrade to Notes 7"

The first R8 conference is coming soon.


Santosh - Composite Hero!

Santosh Kumar just published an entry on the Composite Applications Blog. He showcases how to integrate BIRT into Notes8. Finally we have some decent reporting in R8. Can't wait until that composite is available. Head over and have a look!


Nathan nails it.

Nathan is right: "I've said many times that I think the great bane of Notes is that it has a history of making it TOO EASY for people to build bad applications.  Real solutions to business problems at a departmental level don't often scale well without refactoring, and I could count on one hand the number of times I've seen an organization refactor a Notes app in Notes, rather than on another platform."


Domino Performance - new website

Ever wondered what makes and breaks Domino's performance? What of the gazillion settings make sense? Just head over to fastNSF and have a look. It just started and the tips are already very valuable. Check back often!

via Ed


Good by W2K server!

Domino R8 runs on a lot of platforms, 32 and 64Bit alike. Windows 2000 server is not on the list. W2K server was a very popular choice for Domino boxes and a lot of system administrators were quite reluctant to upgrade to W2K3. Since mainstream support ended in 2005 IBM won't officially support a legacy platform for a new product release (It would be interesting to see if it would run). So all W2K based Domino boxes need a new home when upgrading. While W2K3 seems to be the "natural" choice, you will add the Active Directory dependency (and after all AD is "just" a fancy front-end for an Jet database - rather fragile).
Will we see a big uptick in Linux based Domino server deployments? At least the box running W2K could run Linux, giving it a new lease of life.
What are your plans?


105 OpenNTF projects

Fellow blogger Thomas Adrian from Sweden has compiled a presentation of 105 projects on He shares it on Slideshare, so anyone can embed it on a website/blog:
Like the slide deck? Slideshare allows you to download it.


Designer in Eclipse --- some updates

The reactions to the DDE petition were mixed. While some were enthusiastic, others  were concerned, Maureen even cut time from her busy schedule to put things into perspective. I surly underestimated the weight people would give the fact that I'm "on the inside" (is is less then 12 month vs. 15 years as business partner), rather than seeing an initiative driven by "the godfather" of the Asean Lotus user community. The law of unintended consequences in full swing.
The development team working for Maureen was very curious to see how people would react, we had very pleasant chats when I met them at LCTY in Mumbai a few days ago. They are genuinely interested to know what features and functions Domino developers are looking for and how to create a tool that makes developers more productive. They now monitor the petition database and might some when in the future contact people how have consented to be so. We had a discussion what role XML and specifically DXL could play in a future Domino Designer. As Maureen mentioned in her blog " How can you influence the feature set? Please just ask!" So I asked and within the constrain of available time got a good conversation going. I have the impression the project is well under way and we can expect great things, just a little patience is needed (not my strength).

Now a few interesting facts:
While the global market share for Firefox is estimated around 14%, the signers of the petition seem to be more eager using it: 64.3% were on Firefox, 28.6% on IE and 7.1% on other browsers (this evaluated from the browser string which could be camouflaged in Opera or Firefox), 91.6% were users of Windows, 4.2% of Linux and 3.8% of MacOS. Only 17% of the Firefox users were still on Firefox 1.x, while only 26.4% of the Internet Explorer users had upgraded to IE7.


Summer Fashion

I personally like the Lotus best.

Summer Fashion


Update (for Singapore only): If you want one of these, you can head over to the "Graffiti Imprint" t-shirt shop @ Novena Square #03-65/66 in Singapore (phone +65 6339 6263). Ask for the IBM t-shirts and they will show you the images and create one for you "on demand". Mugs and other stuff --- also can.


Domino Chat on OpenNTF

Last century an IBM Business Partner developed a chat application that was running on Domino and was a normal NSF. When Sametime became popular this application disappeared. I always liked it for its simplicity and ease of deployment. It didn't come with a client, presence awareness, extensibility or interoperability. It just provided chat for people on the same page. One use case implemented well.
It is my great pleasure to announce, that the said business partner made that application DomChat available on OpenNTF. Go check it out!


Domino Designer in Eclipse

At Lotusphere you could see something that would make your Domino Developer heart beat faster. Maureen actually demonstrated the integration of Domino Designer and Eclipse. She doesn't seem to be threatened, that Wild Bill promised to kiss her feet on release <g>. However what was absent from the 'phere was a timeline or official commitment when this will happen. I guess all Domino developers would appreciate the power of Domino Designer for Eclipse. So I created a little petition. Head over to Domino Designer for Eclipse, sign the petition and spread the word!


Flowcharts from LotusScript code

Unless somebody made the extra effort to use a state-of-the-art-tool to document the LotusScript used in an application understanding the Scripts can be quite an adventure. Add a mix of JavaScript and Java and you are in for a headache. Wouldn't it be nice if we could produce flowcharts from all these. Luckily with the release of Visustin 4.0 you can document LotusScript, Java, JavaScript, C#, VB.NET, Cobol and many more. The beginning of the SendToNext Routine (from the R7 Document library) looks like this:

A sample LotusScript Flowchart
The graphics can be exported to Visio, Powerpoint, Word etc. The trial version is free.


How to explain the Microsoft Architecture?

My little explanation of Expeditor has drawn a bit of attention. So let me try to do some more explaining. This would be my take on the comparable Microsoft architecture:

Let the flames come in...


Volker likes Expeditor and Notes 8

Kevin had an engineer to engineer talk to Volker and now he likes the full Notes 8 client. In the comment threads there are some questions about what Expeditor actually is. At the IBM Software Universe in Mumbai I had to explain it to my audience. Here is my explanation:

Update: My English grammar sucks. Second paragraph reworded after vowe's comment.
Update 2: My take on the Microsoft architecture.


eMail best practises workshop

Today I'm moderating a workshop on email best practices. I will cover writing style, management of recipients, functional subject lines etc. Over a bLaug they nicely summed it up:

Forward This Funny
To BCC or Not to BCC


RSS is like the instant messaging of content

" RSS is like the instant messaging of content" is a quote in the current release of Domino Power Magazine. I like it a lot, but would rather say "RSS is to content like Instant Messaging to eMail". I guess both versions have their merits.


One more reason to build Domino applications

Catching up on my blog reading I checked the on Joel on Software. Joel explains what an SQL injection bug is and how vulnerable a lot of sites are to that. An upcoming report from Mitre (cited here and here) claims that SQL injection and cross site scripting are rapidly becoming the attack vector #1 replacing buffer overflows as prevalent security hole. Joel had posted a solution how to avoid that quite a while ago. However this coding style doesn't seem to be too wide spread.
Of course you can use Domino for your web application and don't bother about SQL or if you can't live without SQL let DECS and LEI do the heavy lifting instead of "cleanscrubbing" your strings yourself.


Closing down fromDomino

It has been around for a while but other than the initial stir not much activity happened. Also the team is quite busy with other stuff, so we decided to pull the plug and decommission the Blog With my team's permission I will republish the more interesting bits as SnTT articles here on this blog.


IBM loves OpenNTF

Some of OpenNTF's contributors are IBMers, so it isn't surprising, that OpenNTF is well respected inside IBM. IBM used OpenNTF DominoBBS for Lotusphere and uses OpenNTF's mail experience as a source of inspiration what to do next in the mail template. But it doesn't stop there. Even in IBM's redbooks OpenNTF is officially mentioned. Have a look at page 159 in the redbook Security Considerations in Notes and Domino 7: Making Great Security Easier to Implement.
Should we have a redbook: Guide to OpenSource for Lotus Notes?


What does LTPA stand for?


Is there is another meaning besides "Lightweight Third Party Authentication"?

What is your take?



Who had that Ajax address dialogue?

One of my fellow Notes bloggers had some Ajax based address selection dialogue. I can't remember who. Any hint?


Lotus Notes in Calgary/Canada anyone?

My colleague Nigel is migrating from Singapore to Calgary in Canada. He does Lotus Notes since R3 and is a CLP, Java and M$ certified as well. Getting certifications is a popular past time here, since it is both sponsored by the government and less boring than reading our local newspaper. He is a nice chap and if you know about a Notes/Domino related job in the Calgary area drop him an email nigel.choh (at)


The 7.0.1 @DBLookup/@DBColumn regression error breaks Blogsphere

What an unpleasant surprise: Our admin upgraded the server to 7.0.1. Blogsphere stopped working, throwing an HTTP 500 / Invalid @Formula Text expected. It turns out, that there are quite a number of @Unique(@DBColumns) in the side block subform which now (with the regression error) fail in better filled blogs. And I have only a little more than 250 stories. Should I patch Blogsphere (categorizing the views and eventually break other things), roll back to 7.0 or wait for 7.01a/7.0.2?


LAUG - Lotus Asia User Group -- 1st meeting in Singapore on 21 Feb 2006


It was very quiet around the Lotus community in Singapore the last few years. But now there will be some noise. Next week we will have our first meeting of the Lotus Asia User Group (LAUG). Our online home currently is a QuickPlace at Later the month we will have a Blog and other stuff for Singapore on a site of its own. The user group is designed to be regional and our friends in Kuala Lumpur will launch soon too.

Meeting details:

21 Feb 2006 - 06:45pm - 9:00pm (light refreshments will be available)

We meet at:

Raffles Campus Pte Ltd
3 Anson Road
Springleaf Tower #19-01
Singapore 079909

We have an elevator, so you don't need to climb to the 19th floor on your own.
The agenda has not been finalized yet, we will probably have a topic about Lotusphere and about the expectations regarding the user group.

If you want to join please let me know, so we can cater for you.  


Lessons in Domino, Java, Eclipse and Tomcat.

Today was debugging day. DominoDAV is progressing and it looks like I can keep my promise to have the first version up this month. There are a few lessons to learn when debugging in Eclipse. I'm using Eclipse 3.1.2, Oxygen XML Editor plug-in and MyEclipseIDE as my main tools (for a complete list see my previous post). Since there are quite a number of plug-ins active, Eclipse is not exactly fast. Until you give it some breathing space. By default the memory constraint is set to 40-128 MB for the Eclipse JVM. Running a PC with 1.5G this seemed a little low. In the Eclipse directory there is the eclipse.ini file where you can adjust this setting. It is now 256-512 and Eclipse 4-6 times faster (measured totally unscientific).
When debugging nobody used System.out.println(...) anymore. Being 21st century people we use Log4J. The only drawback: It wouldn't work in Tomcat 5.5. After experimenting for a while and sniffing online I found the solution: You need to put the log4j.jar AND the commons_logging.jar (even if you never actually touch the content of the later) into the WEB-INF\lib directory. This opens the possibility to even remotely see the debug result using Chainsaw. When deploying to Websphere 6 you don't seem to need the commons_logging.jar, at least it was working here without it.
To get Notes working you need to have your Notes executable on the systems path and need to copy the jar files (Notes.jar for local access, NCSO.jar for Corba access) into the {tomcat-root}\common\libs directory. This is required, since the native libraries (a.k.a. DLLs) can be loaded only once. While there your Notes.jar can make friends with the Oracle or SQL Server jars, since they live in the same place.
Finally: When you launch Tomcat from the debugger (a nice feature of MyEclipseIDE, but also available in free plug-ins) it will ignore the path of your machine. So you are in for all the mysterious "Unsatisfied Link errors". In MyEclipseIDE there is a special setting "Library Include Path" for every server to configure. There you point to your Notes or Domino program directory and you are all set.
Finally: debugging multithread is not really fun. Since remote Notes call run in their own thread you have to take care of that. I really hope Bob is releasing (as promised considered during Lotusphere 2006) his pool manager as OpenSource soon.


All my bags are packed, I'm ready to go.

Left Singapore 6am, now in Tokyo, then via New York to Orlando. 22 hours in the air, some stopover time to rest. Arrival 8pm in Orlando. See you there!


Fixing a Notes database

When upgrading a server or moving datbases I like to apply a little hygiene to my notes databases. So you can find a little cmd file in the notes data directory, that fixes what needs to be fixed:

nfixup -L -F -Y %1
ncompact -D -c -i -n -v -ZU %1
nupdall -R %1
nupdall -X %1

Running the script with the server down has the advantage, thay you can fix the address book as well. On R8.5 you want to have CREATE_R85_DATABASES=1 in the notes.ini. The only disadvantage: you need to type the password 4 times (unless your server doesn't need one). If you don't have a password, you could add:
net start "domino (lotusnotesdata)" <-- be sure to check your services for your settings!
at the end of the script and it would relaunch your server after it has run. YMMV.

Update: There is a Linux version too.
Update 2: There is a Mac version too

Update 3: for R9.0.1FP8 onwards you want to use ncompact -D -c -i -n -v -ZU -nifnsf -LargeSummary %1


The contractors dilemma

I'm doing a lot of reviewing/re-engineering of Notes applications lately. I made a number of interesting observations how applications are done here in the region. Most of them were developed by developers placed into the customers environment by contracting companies or professional service firms. Once the developer is with the client they face an interesting dilemma: The client pays only for hours on the job to the contracting company. So they want their employee to stay on the job as much as possible; training gets cut short. The client doesn't consider the contract staff to be part of the firm, so no training there either. I met a number of developers who didn't get any training for 5 years, not even off days to go for their own training. While senior developers can stomach that and learn on their own, junior people will have a hard time getting the experience when they are placed into an environment where they don't have access to experienced developers The experienced ones are more expensive (nobody looks into efficiency), so quite often a bunch of newbies end up on site cut off from the experts.
As a result a lot of the code I saw was full of hacks. Hacks of someone desperately trying to figure out some something works, not hacks of someone who exactly knows what he was doing. And a lot of the code is rather fragile and won't survive an extension. Of course you could ague: a developer should take personal responsibility if not pride in the delivered results. However from the work slave's contract staff's perspective it looks different: Why should (s)he care if no one cares for him/her? On top of that: once the application is completed, (s)he moves on to the next project and so hardly face the need to maintain they system (s)he has build before, so why write maintainable code?
Here Notes and Domino are cursed. Since you can get something going very fast and Domino is rather forgiving with whatever you do, you end up with a lot of messy code. And then people say "Notes sucks". I would say: "Not training your staff sucks". I think IBM has to play some catch up to make better Notes training en vogue again.
And for code quality this is my advice: "Write your code as if the one who has to maintain it is a maniac with a gun who knows you address." (I would like to attribute that quote correctly, but I can't find the source where I did read it)

Update: I met some of my ex-colleagues from my Deutsche Bank Singapore days, who are all working for professional service firms. This little rant made the round very fast. They unisono confirmed, that they haven't seen any training for years. Luckily some of them remember the days we worked together, so they know that better quality is more fun to do.


Corporate XMas eCards

eMail traffic swells during the festive season to transport all the eCards. Since it is quite difficult to distinguish between true greetings and all sorts of maleware I usually don't bother to open them. Today one arrived from a very big consultancy with the familiar " .nsf/0/" inside the URL. So I curiously had a look. Seems like they encourage their staff to use the facility instead of moving to a less trustworthy external service. Nice move, now I need to educate them how to secure such an application!


To (Work)flow or not to flow --- this is the question

I'm reviewing a customer's travel request application. You know that stuff with approvals for travel, advanced cash, expense claims and a bit of travel agency involvement. My client has 5000 users using it on a 4way server and is planning to extend usage to 15000 users soon.  Users already complain, that the webUI is dreadfully slow.Currently the application is running on R5 build with Lotus Workflow 3 (the artist formerly known as Prozessware). Moving to R7 has been decided. Now the big question is: upgrade to Workflow 7 or replacing the code with custom or alternative workflow.
I think Lotus Workflow is an awesome product (Disclaimer: I'm German and Prozessware was German too). It reassembles the original concept of documents flowing through an organisation kept together by a binder quite nicely. Also you can design an awful lot of complex workflows using a simple to use workflow painter. On the other hand: our workflows are linear chains, pretty straight forward and the (web) UI is a bit too generic for my taste: Instead of approve/reject buttons you typically would have a radio button or a dropdown to set your status and then use "Activity completed" to trigger the workflow engine for the next steps. It nicely preserves a complete audit trail in the same db which keeps the indexer busy (since an agent is shuffling the trail to a different database), since we have a lot of documents created/deleted within a few minutes.
So the big question: Generic, well designed Lotus Workflow or specialized (but still configurable) speed tuned version?
Any opinions on that?


Domino 7 and Websphere 6 on Windows - Part II

I finally got it working, whoha! The plug-in installation script makes 2 assumptions about the Domino installation, that were not matched by my installation: first it assumes, that the Domino program directory is the parent directory of the data directory, second, that this is not a root directory. In my case the data directory was n:\Domino7 (instead of something like r:\Lotus\Domino\Data). I mounted the N: drive under c:\data, so my Domino data directory would be c:\data\Domino7. And reran the installation. Actually I flattened out the Websphere before, just to make sure the new attempt wouldn't be haunted by zombies. This time the plug-in.xml was created as expected. However neither the DSAPI filter nor the INI variable were configured.
This time it was an easy fix. Edit the notes.ini and add:
After that edit the Internet site document and add the DSAPI filter:
The rest of the configuration is within the plugin-cfg.xml file and according to my tests are just fine. Mental note to self: keep the Domino data directory 2 levels deep and separate program and data directory only after the final installation. On Unix/Linux of course a symbolic link would do the trick.
So it is time to develop some Webspino/Domisphere applications. Something like DominoWebDAV.
Next stop: Domino 7 and Websphere 6 on SUSE.  


Domino 7 and Websphere 6 on Windows


Encouraged by the ease you can make Domino 6.5 and Websphere 6 to work together in all areas (HTTP, LDAP, Single SignOn) I tried my luck with Websphere 6 and Domino 7. Unfortunatly the Websphere plug-in installer doesn't offer Domino 7 as an option (nota bene: in R7 the location of a lot of Java stuff has moved like where to find Notes.jar). So I gave the 6.5 selection a shot. The LDAP integration worked smooth like silk, however the HTTP integration did not happen. The DSAPI filter entry wasn't created. So I peeped on the R6 installation and added the DSAPI filter name:
domino5_http.dll. When I restarted the HTTP task I was greeted with an error message:

ERROR: WebSpherePluginCfg variable not defined in notes.ini
      Define variable WebSpherePluginCfg=Location_Of_plugin-cfg.xml
      in notes.ini and restart the server

ERROR: WebSphere HTTP DSAPI filter initialization failed.  Return code = 3

Hhm. A quick check on plugin-cfg.xml files showed, that there is only on in the Plugins/config/templates directory. That for sure doesn't fit into an active configuration. Luckily there is a Plugins/bin/configurewebserver1.batcommand file which should do the trick. Unfortunatly it terminates with an error too. Well I won't let them quit to easy on me, so I had a look into the batch file. Websphere uses an amazing mix of batch files calling each other The parameters in the file look like this:

"C:\Java\WebSphere60\AppServer\profiles\default/bin/wsadmin.bat" -conntype NONE -f "C:\Java\WebSphere60\AppServer\bin\configureWebserverDefinition.jacl" webserver1 DOMINO "N:\\" "N:\\Domino7\\names.nsf" 80 MAP_ALL "C:\\Java\\WebSphere60\\Plugins" unmanaged rohandaNode01 rohanda windows

The error stated the input parameters like:
Input parameters:

  Web server name             - webserver1
  Web server type             - DOMINO
  Web server install location - N: N:\ Domino7\names.nsf
  Web server config location  - 80
  Web server port             - MAP_ALL
  Map Applications            - C:\Java\WebSphere60\Plugins
  Plugin install location     - unmanaged
  Web server node type        - unmanaged
  Web server node name        - webserver1_node
  Web server host name        - windows
  Web server operating system - ...nothing here ...

So it looked like the "N:\\" wasn't such a good parameter. I replaced it with a wild guess:   "c:\\Program Files\\Lotus\\Domino" and the installation batch file stated the right parameters and got very busy configuring the server. At this point I'm not sure if that wrong parameter is caused because of Domino7 or because the Domino server binaries are located on a different drive that the Domino data. Restarting the Domino still complained about the missing Websphereplugincfg. So back to square one and some peeping how it runs on the Domino6. There should be a plugin-cfg.xml in the C:\Java\WebSphere60\AppServer\profiles\default\config\cells\rohandaNode01Cell\nodes\rohandaNode01\servers\webserver1which isn't there.
So another try.... stay tuned


Domino 6.5.4 and Websphere 6.01 on Windows

A client of mine wants to run DominoDAV. So they decided to take advantage of their Websphere entitlement for Domino. Since the entitlement doesn't state a version we decided to give Websphere 6 a shot. Having struggled with Domino Websphere integration before (Portal 4 is a beast) I told the best of my wifes I won't be back for dinner. Actually I wasn't. I was in time to pick up the kids from Kindergarten (which closes as 5:30pm). Installation runs like a piece of cake. The installer for the plug-in lists Domino 6.x in the menu and does everything. Authenticating against the Domino LDAP, LTPA single sign on worked on the first try. The instructions given in the IBM security Redbook for Websphere 5 are still valid and quite helpful, while the Domino integration part is missing from the Websphere 6 security handbook. Of course you need a big box for satisfying result. I hit only two bumps on the road, the first one due to my disbelieve it could be easy: We tried the snoop servlet myserver:9080/snoop and it worked. Then I spend 20 minutes trying to figure out under which URL the servlet would be available on the Domino port. There seemed to be no configuration so myserver/servlets/snoop didn't work. Finally I tried myserver/snoop and TADA... works as designed. So the DSAPI filter for Websphere uses the Websphere application configuration to redirect URLs from Domino, nicely done!
The second bump: When you link the Websphere to Domino's LDAP you specify the name base (like o=myorg -> /O=MyOrg ) which is added to all lookups. While this works fine for the users it seems not to work for groups (which by default are flat). I also wonder how it would work if you have more than one org in your Domain. Seems I need to brush up my LDAP skills a bit.
Now I'm itching to try that on Linux with a Domino 7.0 server.


ACTION REQUIRED: Your Lotusphere 2006 Birds-of-a-Feather Abstract Has Been 'Tentatively' Accepted


Got that in my inbox this week:

Hi, Stephan and Anand:

Thank you for submitting an abstract for a Birds-of-a-Feather session at Lotusphere 2006.  We are pleased to inform you that your  BoF below has been tentatively accepted for this year's agenda.    Please advise that you will be attending Lotusphere in another capacity, as facilitating a BoF is contingent upon your paid registration, sponsorship or exhibition in the product showcase.

Please review the title, abstract, and facilitators name(s)/title carefully, and let me know immediately if you need to make any changes.  Unless we hear otherwise, this is how your BoF information will appear in printed conference materials.  Also, please watch your email for room/time confirmations.    They will be coming out in the next several weeks.

Our Birds-of-a-Feather session:

Domino as a file system --- Sourceforge DominoDAV
DominoDAV is a Sourceforge project that allows to use a Domino server as a file server using the webDAV protocol. It makes possible to read and write Notes documents and/or store files as attachments in Domino databases. A series of XSLT filters allow the processing of many XML Dialects into Domino.
We will discuss the status of our efforts, demo the achievment and gather feedback where to take the project.

Now we need to find some budget to pay for all this.  


Presenting OpenNTF in Kuala Lumpur / Malaysia

The official R7 launch event was quite funny. The stage was designed like a box ring and two boxers performed a fight. The yellow fighter (labelled Domino R7) knocked out the red one (labelled "Business Pains"). The crowd of about 350 people enjoyed the difference to the usually rather stiff IBM events. Seems like hiring marketing people from Microsoft (the new kids on the IBM block in SE-Asia are all ex-Microsoft) had some impact already.
After the two round ring fight and the introduction in the R7 achievements at about 10:45 I had my turn.
I created a fast paced crossfire of slides in a mix of my own and the "Identity 2.0" style. This already had worked out well in Beijing, where I mixed big pictures, screen shots, English text and Chinese characters. (see for yourself).
About 5% of the audience had heart about OpenNTF and I saw quite some amazed faces when I introduced the OpenNTF application line-up (Bruce can you check for IP that belong to Malaysia in the OpenNTF logs?). I made them laugh quite a number of times. The slide with Singapore and the arrow was too tempting. Malaysia and Singapore have a kind of love/hate relationship since Singapore broke away in 1965. So my punch line was "I live in Singapore, in case you don't know where Singapore is, its that little renegade island down south". Of course only Malaysians laugh about that.
The local IBMers were quite surprised too and they see quite some potential for OpenNTF in the Malaysian market. Eventually they want to support OpenNTF a bit. Of course details need to be worked out. After my session in the tea break a lot of people expressed their pleasure with the presentation and asked for more details. So mission accomplished <g>.

Download the presentation overview and have a look. Full PPT on request.  


IBM Lotus Notes/Domino 7 Live! --- OpenNTF


Tomorrow is the Kuala Lumpur IBM Lotus Notes/Domino 7 Live! event. While it is not on the official agenda on the web, the finalized agenda looks like this:

0900 hrs
SWG GM Kick Off by Ooi Sze Kai
Country Manager, IBM Software Group, IBM Malaysia Sdn Bhd
0910 hrs
Keynote & demo by Sean Poulley
Vice President for Business Development, WPLC Software
1010 hrs
Delivering Business Value Using IBM Lotus Notes/Domino 7 by Simon Lee
Lotus Notes and Domino Business Consultant, Asean/SA
1040 hrs
Lotus Notes and Open Source by Stephan Wissel
Principal Certified Lotus, Professional & Certified Lotus Instructor
1055 hrs
1110 hrs
How Notes/Domino help in addressing your business challenges? by Ngian Siew Siong
Managing Director of Suncity
1130 hrs
By Bank Rakyat
1150 hrs
Notes / Domino DEMO by Gary Lee Sweeting
Technology Advocate for Workplace Portal & Collaboration Software, Asia Pacific
1230 hrs
Buffet LUNCH (Standing Concept)
1330 hrs
Lotus Domino 7 Server & Admn Client Update by Krista Hiltz Kahn
WPLC Business Marketing Executive for Notes/Domino Platform
1415 hrs
Application development using Lotus Domino and IBM Workplace Tools by Tan Ai Nee
Technical Consultant - Lotus Software, IBM Software Group, IBM Malaysia Sdn Bhd
1500 hrs
PM Tea-Break
1515 hrs
Supercharging your IBM Lotus Notes & Domino Investment with IBM Workplace Products and Solution by Gary Lee Sweeting
Technology Advocate for Workplace Portal & Collaboration Software, Asia Pacific
1545 hrs
Closing / Q&A by Lee Kwee Heng
Country WPLC Brand Manager
1600 hrs
I will talk about OpenNTF . Thanks Bruce for moral support and some of the slides.


Lotus Notes 7 Launch in Kuala Lumpur - Malaysia - see you there!

The official launch for Lotus Notes 7 in Singapore is on the 20th October 2005. Unfortunately on that day I'm speaking on the 2005 Asia eGovernment conference in Beijing. I try hard, but being physically in two places so far apart at the same time doesn't work for me (yet). Luckily a week later the launch is in Kuala Lumpur, which is just a bus trip away (takes about 4.5 hours city - city vs. 3h city - city with the plane). The event will be fun, since it comes with a twist (Bruce, Vince don't squeal).


NSF to PST converter

In the last 5 month I got about 1000 search referrer hits with the search topic. My short answer to that question would be: Don't do it! However as the Buddha says: "You pick the level of your suffering yourself", there is a long answer too. I can understand, that people don't know where Hannover is or can/want to wait for it. Instead of "pouring out the baby with the bath", one can stick with Domino backends and use the Outlook connector for Domino to have it both ways: Outlook on the front end and Domino as reliable, cost effective and scalable infrastructure behind. Both IBM/Lotus and Microsoft offer a flavour of it.
But if you have to go:  There are a number of 3rd party vendors who offer migration products and services: are some examples. Microsoft also provides tools and advice.
My personal take: Stick with Domino. Just try to get that old email backup (was it a pst?) from your Outlook/95 backup opened in Outlook 2003 or use the build in fulltext search in the Outlook client. Use the connector provided by IBM if you must have Outlook.... or wait for Hannover. upgrade to Notes 8 (You also can enjoy yourself with R7 and the OpenNTF eMail template until then).

If you want to change something for the sake of changing why not implement " Getting Things Done with Lotus Notes"?

It cuts both ways. If you came to your senses and want to move Microsoft stuff to Notes (stuff as in Outlook, Office and Sharepoint) you have plenty of help too:


Sending tasks to Outlook and Notes


I'm in Munich now visiting my favourite Environment & Management software company. We are planning for the next set of features of UMsys. One feature we are discussing is the ability of the UMsys application server to send tasks/to-dos directly into the users' task lists. The UMsys server can send SMTP/MIME messages, that should be consumed by the eMail clients. UMsys' customers run Exchange/Outlook, Lotus Notes and some other mail systems. So we ran a little comparison what needs to be done for Notes and Outlook.
For Notes it is quite straight forward: you send a mime message that contains an VCALENDAR record. It can look like this:
Content-Type: text/calendar; method="REQUEST"; charset="UTF-8"

PRODID:-//Lotus Development Corporation//NONSGML Notes 6.0//EN
SUMMARY:Test gMail
ORGANIZER;CN="Stephan H. Wissel/TaoConsulting":

Or one could stuff all the needed Notes fields into the MIME header, which would look like this:
X-Notes-Item: CN=Stephan H. Wissel/O=TaoConsulting;

When looking towards Outlook the story is quite a different beast. I did some testing with Matthias from HEC (If you need excellent Microsoft development in Germany talk to them, it's a pleasure working with people who really know their stuff well). It turns out, that Outlook doesn't understand VCalendar tasks but encodes the whole message into the body using some propriety format.
Content-Class: urn:content-classes:calendarmessage
Content-Type: multipart/mixed;

Notes doesn't understand calendarmessage thus rendering the HTML version. There I got stuck (and couldn't pull Matthias out of his meeting). Seems like it's a little harder to connect to Exchange/Outlook using open standards.

Update: We desected the MIME comming from Outlook. It seems to be formiable complicated to create a task...


Welcome back Redscreen of death

I'm a happy camper in R7 land until today. I tried to drag an calendar entry (my appointment with SQ325) from one day to another. The "meeting" starts in German time and ends Singapore time and is more than 12 hours (I hope they have power sockets in coach by now). And tada, my first redscreen in R7. Didn't had any in the beta (but hadn't an SQ325 appointment then). Interesting fact: the client crashed AFTER succesfully changing the meeting. Everything looked fine afer completion of the consistency check.


When Firefox and Notes become one

I've upgraded to R7 with Beta2. While 7.0 is a so called "server release" I realized the client improvements make the update worthwhile. I'm fond of the background indexing of views and the "Save window state on exit" function. The saved window state allows me to stop wherever I am when it is time to shut down (ask Anthony and Ernest about it ). I've abandoned IE for web browsing long ago and configured Firefox to launch when URLs a clicked in Notes. I would appreciate if IBM would simply use the Mozilla rendering, so the experience would be more seamless, but for the time being that's fair enough.
Both Notes and Firefox sport a similar tabbed interface, which are similar enough, so the differences get annoying. In Firefox the close button for the current window is at the end of the row, in Notes at the end of each tab. Notes saves the window state, Firefox doesn't. So me not happy (Singlish is so wonderful short ).
Enter Firefox extensions. With a little research (click on "get more extensions", click on tabbed browsing go to the last page), I found two little gems to make Firefox behave properly:
  • SessionSaver: does what it advertises
  • Tab X: puts the close button where it belongs

Now my Notes client and my browser behave similar in their tabs and I'm "happy already".


R7 Replication Performance

My Domino server is hosted eight time zones away from my usual whereabouts. Replication (with compression and encrption enabled) typically yields about 20-30kbps. Until last week, then we migrated the Suse Linux box to Domino 7.0. With a R6 client I still get about the same speed, but with a R7 client it jumped up to 160kbps (which is close to the limit of my current pipe). The observation is totally unscientific and your mileage might vary. Feels like the transition from Warp to Slipstream.


Ferris did it again...

Notes 7 is out for a few days only and Ferris has evaluated the impact on upgrading. They claim you can gain up to 15% efficiency mostly due to better resource utilization. Read for yourself. The original report (about reducing TCO from $22 to $6 with upgrading from Domino5 to Domino6) has moved. It looks like when they moved their website from ASP to PHP all links broke. Jakob would be furious about that.


Don't put Notes Data on a mounted local drive

I added a new harddisk to my PC recently. Since all my data lived in c:\data I moved that to the new drive and used XP mounting capabilities (do I hear: they borrowed that from Unix?) to mount that drive back to c:\data.
It took me a while to assess the impact. Notes became partly unstable especially when opening mime email while replicating. I first blamed it to the fact, that I have more than one client and beta ones too. Then I realized, that in the mounted directory explorer sometimes behaved irratic, not letting me move, rename or delete files.
So I switched from mounting the drive to the 'normal' way (for Windows) and assigned a drive letter. Luckily it is just one entry in notes.ini to teach Notes its data location. Since then I had no more crashes so far.


Insights into NotesSax Parser

I was working on a project that needs to import XML. Since the files could become rather big I opted not to use DXL but the NotesSAX parser class. When you are a Lotus Script die hard without much exposure to other languages the SAX parser has a "very first" for you: definition of event handlers. For those VB.NET, C#, Java and other buffs it's nothing special.
The nice thing about SAX parsers (compared to text parsing): they fix the character set for you. For example the snippet:
<company> Peter &amp; Pan</company>
 will arrive as a StartElement event, a series of Character events and one Stop event. The NotesSAX parser actually will deliver 3 Character events! Since the &amp; is an encoded entry, the text will be split into 3 and delivered as "Peter " "&" " Pan". Nota bene: there are leading and trailing spaces you can't trim. Typically you would create a steering object, that keeps the state where in XML stream you are and write out your text on a Element (either Start or End) into whatever you want to write to. I'll post some sample code for the Excel project soon.


IBM blissfully absent - PACE2005

Friday and Saturday the National Infocomm Competency Centre ( NICC) was hosting PACE2005. Pace stands for "Promoting Accreditation, Competency & Employability". In short it was a conference cum exhibition about the IT industry and its jobs. All big training institutes were there, some of the higher education and quite a number of IT firms. Various awards were given out and a cute 7 year old girl was proclaimed the youngest Microsoft professional in Singapore.
The IT firms participating were: Sun, Microsoft, Red Hat, Novell, Oracle, CheckPoint, BusinessObjects and Iomega.
IBM was blissfully absent. Maybe I'm getting it wrong, and caring for the next generation of passionate users isn't important, however I was quite disappointed. There is so much cool IBM technology around but IBM (at least here) fails to create excitement among the IT professionals of tomorrow.
I talked to some of my training friends, they said demand for Lotus training is non existent, however my recruiter friends see an increasing demand for Lotus know how, which leads to a painful gap, that Microsoft is exploiting: "See you can't get Lotus people, why not migrate to our offerings" -- and they are right (at least here).
Where is that "Singapore's coolest RCP application" contest?


Importing a MS-Excel XML Spreadsheet to Domino

Head over to fromDomino and read my latest post about cleaning up a MS-Excel XML Spreadsheet to get ready for an import into a Lotus Domino database. This post covers the XSLT. The LotusScript including the sample database will follow later.  


I need a DXL/XML guru's advise!

I'm working on a project, that will reunite a bunch of databases that once were one back into a common template. One tool that worked very well is DXL export, XSLT transformation and importing that stuff back. I'm using the Body field of a Notes document to store the DXL, which creates some kind of documentation/audit trail. This morning we hit the wall.
I exported a rather complex form (a lot of subforms, multi-nested tables, hotspots and a lot of fields). When I tried to reimport the DXL untouched I was greeted with this error dialogue:

(For RSS readers: the message says: "Left margin cannot be greater than right margi". I did the msgbox, but that was the error in the DXL importer. Please note the typo/truncation. Anybody came across this and could advise what to do?

Update: I found a solution (and opened another can of worms)! The form I tried to export has quite a bit of "history" So in the table tag there is an attribute r4spacing="true". With this attribute set I get the error message. The attribute tells the designer to use the fixed values provided in refwidth="10.4778in". Once you remove the attribute "r4spacing" import works. Of course now the table rendering follows a different rule set, so it gets all messed up. Looks like another session in XSLT to clean this up.

This is the agent we use for import:


Another of Domino's magic numbers : 42220

While cleaning up my mail file (hovering at 2 GB) I dropped my full text index on the server. I forgot to recreate it. When checking the log files I discovered one of Domino's magic numbers:

31.05.2005 12:17:40   Warning: Agent is performing full text operations on database 'test.nsf' which is not full text indexed.  This is extremely inefficient.
31.05.2005 12:17:40   Full Text message:  index of 42220 documents exceeds limit (5000), aborting: Maximum allowable documents exceeded for a temporary full text index
31.05.2005 12:18:25   AMgr: Error executing agent 'Move Document Around' in 'test.nsf': Maximum allowable documents exceeded for a temporary full text index

So you can't have more than 42220 documents if you want to full text search an database without a fulltext index. But who would want to do such a thing anyhow. Harddisk space is growing faster than CPU or transmission speed.


Nupgrade 3 - Lesson learned

I'm converting a customer to Lotus Notes. When transfering the local Outlook data I hit the wall with one machine. It only would import data from an old PST file but not the main file.
Investigating a little bit I found out, that the old file once was the primary local store and had also a "Personal Folders" folder and structure.
Once this file was removed the nupgrade process would run nicely converting all the 1.5 GB into Lotus Notes. So lesson learned: make sure there is only one "Personal Folders". I wonder if it is the name or some internal id nupgrade is using. Another can of worm has been opened and I'm stuck there: I tried to create a new Outlook profile with Lotus Notes as provider. It recognizes the DLL (nwnsp32.dll) correctly but terminates with (funny) error messages: When I try to create a profile with Lotus Notes: "A service provider could not be loaded. Contact your administrator"; when I try to add Lotus Notes Mail as a service and click on properties: "The action could not be completed. The action could not be completed." (Yes twice!).
Googeling for the problem makes me shiver, since it seems one of the hard to track down multi vendor semi standard mapi issues.
Any takers?


Domino on Solaris anyone?

I encountered a number of installations here where Domino is running on Solaris on SPARC I found at least one reference of Domino running on Solaris 10. However I didn't find information about running Domino on Solaris on x86 platforms. I'm particularity interested in the combination Solaris10/Domino 6.5.x. The official IBM site is a bit blur on that. Sun has these neat AMD based servers, so I wonder:
a) does it work?
b) how does it perform?
Anyone enlighten me?

On IBM's official platform page for Domino Solaris 10 is not listed. Solaris 8/9 are listed without a platform mentioned. At least one engineer has confirmed, that Domino7 will be certified on Solaris 10/Sparc. Finally - well hidden in the release notes of Notes 5.0.11 there is the confirmation, that Domino6 will not run on Solaris/x86. They could state that on the platform page.

Update II (July 2005):
Christophe tried it and failed. However there is a new hope. Lxrun might make it possible or even more likely: since IBM renewed their contracts with Sun, a future release might have Solaris x86 on the roadmap.


Old challenges resurface --- The Domino upload control is still a mystery --- can you solve it?

When I was posting about my XML wish list, I remembered that I had that wished before. In 2001, when Gary Devendorf was in charge of XML in Domino I already suggested the enhancements. You can see links on the R7 beta forum.
When going through the archive I also found, that I tried to demystify the Domino upload control. It first became available in Quickplace and made it's debut on Lotus Domino in version 5.08 with the first incarnation of Domino Web Access (a.k.a iNotes). I tried to figure out how that control worked, since I wanted that in my own application.


My X-M(L)as wishlist for Domino 7

I posted the link to my post @ IBM already on I was wondering how many of you:
a) like the suggestions
b) would like to see them implemented ( Bruce Elgort does)
c) will help to promote the idea
And what would it take IBM to actually put it on the ND7 feature list.


Domino 6.5.3 - DominoCompleteDoctype - Be careful what you wish for.


When I did read about Domino's fix for the incomplete doctype on the:gutted:geek I was itching to test it. After upgrading the server to 6.5.3 I activated DominoCompleteDoctype=1 (you can use 1 for HTML 401 transitional and 2 for HTML 401 strict) only to see most of my web databases fail: CSS rendering was gone and JavaScript didn't load. Among the applications fail also was Blogsphere, the template this Blog is build on.
We had a public holiday yesterday (the Hindu Depavali, it has clear advantages to live in a multi cultural environment, Monday Hari Raja holiday follows), so I got some breathing space to investigate. It turned out it was a case of old R5 work around and subsequential "Chin Chai" work (sloppiness). Before R6 we used to put JavaScript and CSS in pages and forms. And since you can twist and tweak JS/CSS with @formula in a form/page I often keep them there (one of my favourite tricks: generate JavaScript out of the document I am viewing using a special view and a form formula, makes design much less cluttered). Domino delivers them as mimetype text/html.
As long as browsers run in Quirks mode it doesn't matter. The very moment you force them into standard mode all of them get picky about the mime types. So you need to change the mime type in your forms/pages that contain only css/js to "text/css" or "text/javascript". Luckily Domino allows you to do so on the form/page properties.
There is another catch: In standard mode CSS now seems to be case sensitive. class="rightcolumn" would not match .RightColumn { } anymore. (Now I would wish for a tool that shows case mismatches in CSS vs. HTML). You need to fix you html or css.
So happy testing of your web applications!  


Domino Admin 6.5, Dirlinks and a bug

My domain in Domino development, so I never paid much attention to the Domino Administrator client. So from time to time I have to learn a new trick there. When looking at the files tab you usually see a tree on the left and the files on the right. There is a dropdown where you can select the type of files you want to see: . What if found out (OK I never bothered to read the manual), is that you actually can click on the "All" button right of the dropdown and switch to a flat view of all files (I always thought this is a filter function and never tried it before). The button then changes to this: [IMAGE] so you can switch back to the tree style display. This comes in very handy when you want to operate on all files.

I discovered one serious bug there (maybe it is already documented, so the discovery would be for myself only): In tree view subfolders of directory links do not show! We use a lot of directory links (one for each customer), so it's kind of weird. So files that are inside subdirectories of linked directories do not show in the Admin either.... unless you switch to All view, then they are neatly listed.


Cleanup your Domino Directory Group structure

When you run a large Domino Installation with a high fluctuation of people coming in and out, you might end up with a lot of Zombies in your groups. This might happen especially with part time administrators, who are to busy with their main jobs (and don't use AdminP to delete users). I had to do a clean-up exercise recently and I used the simplicity of @Formulas to remove user names that are no longer in the Domino Directory from all group entries where they might still be in:
Step 1: Create a new view named (GroupCleanup)|GroupCleanup with one column. Sort that column.
View selection formula: SELECT ( Type= "Person":"Group":"Server" )
Column formula: @If(Type = "Person"; @Subset(Fullname; 1);Type = "Server"; @Subset(Servername; 1); @Subset(ListName; 1))
Step 2:Create an agent, type formula to run against selected documents:
v := "GroupCleanup";
c := @Elements(Members);
good := "";
found := "";
current := Members[i];
found := @Trim(@DbLookup("Notes":"NoCache";"";v;current;1;[FailSilent]));
@If(@Contains(current;"*");good :=good:current;good :=good:found));
finalgood := @Trim(@Unique(good));
finalbad :=@Trim(@Replace(Members;finalgood;""));
FIELD removedMembers := @Trim(@Unique(removedMembers:finalbad));
FIELD Members := finalgood;

Step 3: Use an agent to remove groups that don't have members anymore. Run the agents multiple times to get rid of nested redundant groups:
SELECT type="Group" & @Trim(members)="";

Caveat: This will remove all user names that are not in the main addressbook. That means all users of external organizations might get lost too. You could extend the formula by adding more @dblookups to additional addressbooks.


This site is in no way affiliated, endorsed, sanctioned, supported, nor enlightened by Lotus Software nor IBM Corporation. I may be an employee, but the opinions, theories, facts, etc. presented here are my own and are in now way given in any official capacity. In short, these are my words and this is my site, not IBM's - and don't even begin to think otherwise. (Disclaimer shamelessly plugged from Rocky Oliver)
© 2003 - 2017 Stephan H. Wissel - some rights reserved as listed here: Creative Commons License
Unless otherwise labeled by its originating author, the content found on this site is made available under the terms of an Attribution/NonCommercial/ShareAlike Creative Commons License, with the exception that no rights are granted -- since they are not mine to grant -- in any logo, graphic design, trademarks or trade names of any type. Code samples and code downloads on this site are, unless otherwise labeled, made available under an Apache 2.0 license. Other license models are available on written request and written confirmation.