Rest in peace Mail Rule Utilities!

Five years ago I posted an open source utility called “Mail Rule Utilities” on OpenNTF. I designed this utility when I was on the Lotus product development team. The primary function of the utility was to be able to run mail rules locally on your database. Using the same rules you created in the interface, the utility could run locally without a server involved. This made Notes usable for multiple email accounts in my opinion and is a feature that has been in Outlook for years.

I also blogged about it several times, even offering a download here on my blog for those not familiar with OpenNTF. Between the two sites the utility was downloaded over 7,000 times. Now, according to Mat Newman, it was announced in a session yesterday at IBM Connect that this function will be part of Notes 9.0.2! Here is the tweet in case you missed it:

Screen Shot 2014-01-28 at 8.12.52 AM




So, I will leave the utility out there for those still on 8.x and 9.0.1 for a bit so don’t worry, it’s not a total rest in peace statement but it’s coming. I had been contacted by the Notes dev team earlier this year and was actually excited this function was going to be put into the product. While the Mail Rule Utility was not a huge effort to support, I would infrequently get enhancement requests, some install issues, etc. Unfortunately I have found the open source concepts on OpenNTF is not truly “open source” as no one else really contributes to the authors projects.

In ending, I really do thank everyone for all of the kind words over the years and the dozens (probably more) of great emails stating they loved the plugin. Thank you, because that is what makes open source worth it!

You can read about the Mail Rule Utilities on the original DeveloperWorks article here.



New Lotus Notes Attachment Viewer 2.0.1 posted

The Attachment Viewer 2.0.1 for Lotus Notes is now posted on this site. I fixed a couple of problems reported and it looks like the Microsoft Office Converter EXE is now behaving a bit better. From the original post (click here), you may need to install the inter-op libraries for your version of MS Office in order to use it. You need to be running at least Lotus Notes 8.5.2 for this update.

Drag this to My Widgets in Lotus Notes

Continue reading

Attachment Viewer 2.0 beta – MS Office Support!

I need some help testing this out. After playing around a little bit with C# and the MS Office integration API’s I was able to compile an executable that calls out to MS Office to show Documents, Presentations, and Spreadsheets. The architecture is pretty straightforward, the attachment viewer calls out to an executable to have the file converted to HTML and then the document is shown in an iframe in the viewer. I have seen some minor issues and thankfully no crashes.

This version is also Dojo enabled and currently needs to have internet access in order for it to work since I pull Dojo 1.5 from the Google CDN. You will notice the Dojo toolbar and the different view modes – Film Strip, Slide Show, Thumbnails:


Installation Instructions:

  • If you have a 1.0 version of the attachment viewer installed, please make sure you uninstall it first.
  • Once you have the older version installed you can drap and drop the icon below to your My Widgets panel to have the new Eclipse plugins installed.

Drag this to My Widgets in Lotus Notes

  • You may also need to set the preference for the viewer under File | Preferences:

Once I get some good feedback I will be posting the binaries and sources to the OpenNTF project.

Some known issues:

  • The thumbnail view does not show the last image as a thumb
  • Sometimes the MS Office link is broken, a restart or shutting down MS Office may be needed.

In advance, thanks for all of your feedback and interest in this project!

The Dojo Toolbar dijit

One of the best things about using a JavaScript framework like Dojo is getting something up and running very quickly. The dijit.Toolbar is no exception. You can get a very quick toolbar by just using the declarative method right in  your HTML. If you are using the declarative method then you need to make sure you parse the DOM on load, this is how you tell Dojo to parse on load:


To get some cool look and feel you should then include one of the base Dojo style-sheets in your code. The easiest way to do this is just make the entire <body> use the style sheet so all sub-elements will inherit it:

<body style="margin:0px; padding:0px;">

You will also have to define in your CSS the images you want to use for the buttons (if they are icon buttons). Make sure you specify a height and width!

.iconfilm {
   background-image:url(icons/filmstrip.png) !important;
   width: 22px;
   height: 22px;
.iconthumb {
   background-image:url(icons/thumbnail.png) !important;
   width: 22px;
   height: 22px;
.iconslides {
   background-image:url(icons/slides.png) !important;
   width: 22px;
   height: 22px;

Lastly, you just put the code directly in your HTML. Declaring the toolbar as the outer

and then each button individually. You could also include this inside of an XPage, JSP, or PHP file and conditionally show or not each button. Notice I use a and a connectId to attach a Dojo tooltip to each icon.

iconfilm" showLabel="false">
<span id="fs_tip" dojoType="dijit.Tooltip" connectId="toolbar1.filmstrip">Film Strip</span>
iconthumb" showLabel="false">
<span id="slides_tip" dojoType="dijit.Tooltip" connectId="toolbar1.slides">Slides</span>
iconslides" showLabel="false">
<span id="thumb_tip" dojoType="dijit.Tooltip" connectId="toolbar1.thumbnail">Thumbnail</span> </div </div>

This code was taken from the Attachment Viewer project on OpenNTF. You can download the project and see how the code works. Here is a screen shot of the toolbar in the Lotus Notes client:

Make sure you check out the awesome online documentation for the dijit.Toolbar!

As for a jQuery version of Toolbar, I couldn’t find one. I did find a really nice article that shows how to create a CSS based toolbar with some cool jQuery effects. Check that out and if you find an actual toolbar plugin for jQuery let me know.

Is open source sustainable?

There is an interesting post over on Alex Kings site – he is a plugin developer for WordPress.  The conversation makes me wonder about other open source initiatives like OpenNTF.  I know many people across the community contribute amazing material to OpenNTF and I have often wondered if it was maintainable.  I know that every thing I contribute either in an article, blog post, or on OpenNTF will have some level of “support” in the future.  It may be days, weeks, months or even years but an email, a question, or a enhancement is inevitable.   I would have to say if you are not an open source enthusiast and simply do it because you love it or you in fact do “get paid” enough through donations then your interest over time supporting free enhancements and upgrades will diminish.  I do think many people, especially in the Eclipse and Lotus communities contribute to open source for many other reasons – building a community, promoting a technology, or just polishing skill sets.  Many, like myself, have a vested interest in seeing the community or technology grow so it creates more opportunities in the future – that to me is the essence of open source.

The OpenNTF for Eclipse plugins

Most of my readers are in two camps, with many intersections along the way.  The two primary camps are Eclipse Developers and Lotus Notes/Domino developers.  I have lately been more on the Eclipse side – primarily because of my job – but none the less I do post occasionally Notes and Domino development stuff.  Anyway, I want to introduce to both communities (if not already known) the Eclipse Marketplace!  This is essentially the same thing as what OpenNTF is for the Notes community.  So for all of you Notes folks out there, there is another site you can use for Eclipse tools, plugin’s and solutions that may fit into your enterprise or in your daily tools.  Check it out!

YouTube Channel feed for XPages

I posted an entry about the new Videos page on my site and I was chatting to Joyce Davis (from LTIEC Blog) about an idea I had.  What do you think about a new XPage custom control that basically does the same thing as the PHP I described in the last post?

The idea is you would just provide that same parameters as the PHP line to have a list of videos show from the channel.  You could even provide options like vertical or horizontal alignment of the videos.  This could then be contributed to OpenNTF in the end.


Extending the Lotus Notes Search bar

With the recently released Multiple Database Search plug-in you will see an example of how to implement the “” extension point.  This extension puts a new search entry in the search toolbar dropdown:

You can look at the plugin.xml in the project to see the extension definition.  Let’s walk through how this extension is configured:

//The first extension declares the engine 
<extension point="">
     data="1073873011"                                // Initialization data given to the class, we dont use this really
     engine="org.openntf.mailsearch.SearchEngine"     // The class name for our engine
     global="true"                                    // We want our engine to always be available
     hasResults="true"                                // We will use the regular search UI page
     icon="icon/dbicon1.gif"                          // Our icon in the drop down menu
     id="org.openntf.mailsearch.SearchEngine"         // the id of our engine
     label="Multiple DB Search"                       // The label for our engine (shows in the drop down)
     type="other"/>                                   // We are not a regular type so just put other
//The next extension actually adds the engine to the UI, it is pretty self explanatory
<extension point="">
     label="Multiple DB Search"
        id="org.openntf.mailsearch.SearchEngine.item" />

The engine parameter is really the key parameter as it points the search framework to our class that does the heavy lifting.  The class is what is responsible for actually executing the search across the selected databases.  Following this sample you can now create a search to essentially anything that Java code has access to.

Our search engine uses multiple threads to search across the databases.  Since the back-end Java API’s can be accessed from multiple threads this makes it a pretty big advantage performance wise.  If your databases are also full text indexed, you will see some pretty impressive performance with this technique.  I will save the threading discussion for another post…

Tracking downloads – Part 2

After a few days with the new download tracking plug-in installed on my blog I am already seeing its value – somewhat.  The release of the Multiple Database Search plug-in for Lotus Notes on OpenNTF shows 35 people have downloaded the source and install site.  The download manager WP-DownloadManager, shows 56 downloads of the widget that installs the plugin.

The problem is the log shows eight of those downloads (of the widget) to be either duplicates or multiple downloads from the same IP address.  This means the net difference is 13.  So even though the numbers are close this does show some people have more interest in just using it versus scanning the source code.

New OpenNTF Project – Multiple Database Search

Myself and Igor have just uploaded a new OpenNTF project – Multiple Database Search!

The new plug-in can be installed using the Widget below – so yes, this is a Widget that installs Eclipse plug-ins!  What we did was extend the current search user interface (the toolbar to be exact) so it looks completely integrated with the Lotus Notes client.  The tool will search specific fields or do a full text search across all of the databases and consolidate the results into a single result set.

You can install the plug-in using the widget below into your My Widgets panel in the Lotus Notes client.  If you want to learn how to enable My Widgets in your Lotus Notes client you can view a video here.

Drag image to your My Widgets panel

As with all Open Source tools and code any and all input is welcome!