Containers, Containers Everywhere

If you have at all looked into OpenSocial and Apache Shindig than you surley have come across the samples and containers.  The good news is that there are alot, the bad news, well there is little documentation that goes along with the samples and containers.  Without documentation it’s hard to know what exactly the samples are doing.  Besides that problem there are, or appears to be, three different sample containers that come bundled with Shindig.  In theory all of these containers should be able to render the gadgets in the exact same way, the problem is they all do things in a different ways.

Project Vulcan Refresher

With Lotusphere coming up in about a month now, Project Vulcan will surely be a hot topic again this year.  There is at least one session dedicated to Project Vulcan.  If you need to refresh your memory on what Project Vulcan REALLY is, than I sugest you watch this video.  I would be interested in hearing if there are topics related to Project Vulcan that you are interested in learning more about or that you may be unclear on an want a better explanation.  As always leave comments below.

Bridging The Gap Between Plugins And Web Apps

Even since I have become involved with plugin development and Notes I have heard people say, I don’t want to write plugins I want to write a web app to do my integration.  When asked why, the answer is generally that they know how to write HTML, Javascript, and CSS, and they have no idea how to even get started with plugin development.  Even if they are willing to look into it, people often become frustrated and end up thinking plugin development is a black art.  As much as I try to teach people about plugin development, in the end some integration is probably best done via a web application.  Obviously there are limits to how much integration you will be able to do in Notes if you decide to use a web app but you can do some.  Notes/Expedior are very web app friendly.  Did you know that there is a web server in Notes?  Well there is and you can build web applications that run on that server.  In the end though, these web applications are just plugins which are using an SWT Browser control to render a web page.  That web page could be running locally on the internal web server in Notes or it may be running externally on some other server in the cloud.  Often times it is hard to bridge the gap between your plugin code and the web application which the plugin is rendering.  However, in 8.5.2 there is a new class which you can use that solves this problem.  The class is called BrowserFunction.  Bob Balfe blogged about it a while ago.   This class allows the javascript of your web app to call the BrowserFunction class in your plugin.  Here is a quick example of a view part using this class.  If you would like to run this code, you can easily put this view part in a sidebar in Notes and give it a shot.

Cool Trick For Loading Files From Within Your Plugins

Today while working on a plugin I needed to read in a properties file from within my plugin.  I have done this before but could not remember how to do it, so I started Googling.  I eventually came across this page.  I had found the first method on several other pages while searching, but the second method I had never seen before.  As expected it worked , and is actually a really simple and clean way to load resource files, like text, or in my case, properties files from within your plugins.  Just thought I would share it with everyone.

Creating And Opening A New Notes Document With Some HTML

Over the past few months I have gotten several questions about how to create a email from within a plugin that has some HTML in the body and opens that email in the Notes UI.  Essentially they want to do something similar to clicking the new email action button and Notes opening a new memo form with an HTML signature in the body already.  People usually get stuck at two spots.  First they go down the path of using the NotesUIWorkspace.composeDocument(NotesFormData) API.  This is a good place to start, but you will quickly find out that using this API will not allow you to add HTML to the document.  Whatever HTML you do add will just show up in the body of the document.  The next place people look is to Notes.jar, the backend Java classes.  They generally will create a new document, add a rich text field and then add a rich text item to that field.  They usually try to add a rich text style to that rich text item with the property set to allow passthru HTML.  Finally they would add the HTML to the rich text item.  Then they save the document and open it using NotesUIWorkspace.openDocument(boolean, Document).  However this has a similar result, in that the HTML that you entered shows up in the body of the document.  The solution is actually a combination of the above two techniques.

MIME Email Improvements In Notes

Recently I have been looking into the functionality of MIME emails in Notes.  For those of you who are unfamiliar with the tearm MIME, it basically refers to emails from people who do not use Notes as their email client.  For example, if someone who uses GMail sends and email to a Notes user, that email is a MIME email.  I am wondering if Notes users have complaints or would like to see improvements in how Notes handles these emails.  If you do have comments, good or bad, please leave a comment below.

Essential Resources For Notes Plugin Developers

I was asked the other day to put together some resources for a customer on plugin development in Notes.  As you all know it can be hard to find resources for plugin development in an Lotus product, but we are working to change that.  With that being said, I put together a short list of links that are essential for all Notes plugin developers.  If you are new to plugin development and have never written a plugin before I suggest you start with the general Eclipse plugin development articles.  Hope this helps.

Heading To Lotusphere 2011

It’s offical, I will be going to Lotusphere 2011 this January.  This will be my second Lotusphere, last year being my first.  Last year I was working in the lab, and I am sure I will be there again this year as well, but this year I will also be giving a session on plugin development with Mikkel Heisterberg.  This will be my first session at Lotusphere, I gave a similar one with Mike Masterson, at the View 2010 this past summer.  The Lotusphere session is a jumpstart, so we will be able to cover a lot of material to get you ready for other sessions throughout the week.  Here is the abstract for the session:

Part 5: Creating Your First Lotus Notes Plugin

In part 5 of this tutorial I show you how to create an NSF update site and create a widget which uses this update.  I then show you how to create a widget catalog and how to add the widget to the catalog so you can share it with others.  This concludes my tutorial on how to create your first Lotus Notes plugin.  I showed you from start to finish how you can begin exploring plugin development within Lotus Notes.  If you would like to see more videos like this please let me know what other topics you would like me to cover.

Part 4: Creating Your First Lotus Notes Plugin

In this part of the tutorial I show you how you can install your plugin into Notes using a Widget.