<< June 2011 | Home | August 2011 >>

Stommunity - now released as open source on OpenNTF.org

As you might recall we at IntraVision some time back quit running Lotus Sametime on-premises and switched to LotusLive. This wasn't without issues and I also blogged about the apparent lack of public groups in my "Using LotusLive for Sametime - 2 months in" post a couple of months ago. After experiencing this issue I talked to Erik Vos from RealConnections in the Netherlands at NLLUG. Erik was also having the same problem for his SaaS customers so we worked together to develop a proof-of-concept Notes sidebar plugin called Stommunity to work around the issue. The name Stommunity plays on the words Sametime (ST) and (LotusLive) Community.

So what does the plugin do?

The plugin synchronizes your LotusLive communities with your Lotus Sametime client and creates private groups based on the LotusLive communities you are a member of (and that you select for synchronization). This mimics the missing public group feature of LotusLive Sametime. The below screenshot shows a Sametime client with 4 communities synchronized from LotusLive.

So how does the plugin work?

The plugin sits as a sidebar plugin in your Lotus Notes client and monitors your Sametime client for when it logs into LotusLive Sametime. Once a login is detected it reads the communities the active user is a member of using the LotusLive REST API and shows a list of the communities. The user may then select the communities to synchronize with Sametime. The below screenshot shows the Stommunity plugin waiting for the user to log into Sametime.

Once logged in the communities is read from LotusLive. In the below screenshot you can see that the user is a member of a couple of communities but only one is synchronized with Sametime.

After selecting an additional community and clicking Apply the community is synchronized to Sametime and a private group is created. The below screenshot shows the Sametime client after synchronizing the BlueExtend community with the Sametime client.

So why only a proof-of-concept and not a ready-to-roll plugin?

While developing the plugin we discussed the license implications of a plugin like this. When you sign up for LotusLive Engage you receive a Sametime Entry license which means you may not use the Sametime API which again means that a plugin like this cannot work (from a licensing standpoint). That alone made the project a dead-end and after working a bit with IBM on this it became clear that changing the licensing agreement wasn't in the books. Due to this we are releasing the plugin as a proof-of-concept with open source on OpenNTF hoping that it may inspire someone.

Looking at the plugin as it is now I see a lot of potential. Of course the selection of communities needs to be pushed into the preferences but as a LotusLive customer it would be really cool to have. I imagine an auto-sync option being added as well as an option to just sync all and change (or remove) the prefix I automatically add now ("LL Community:"). Think of having a policy option to automatically make certain, company wide, communities be synchronized to all users (or a set of users). Maybe even controlled from within LotusLive. Now that would be cool and bridge the gap between the products. One could even argue that a plugin like this should be a standard component that should come bundled with LotusLive Notes.

Anyways - I hope it may inspire the LotusLive teams.

The Stommunity plugin may be found on OpenNTF.org and the code may be downloaded from the SVN repository. See below for links to each.

Links and resources

The enterprise itself is changing forever

So true (from edbrill.com):

I see this so much that I thought I would repost the solution

I see so many people in Lotus Notes copy/pasting addresses to calculate distances for reimbursements, claiming time etc. and wonder why they do not find an easier way. Such as using a widget in Lotus Notes. A while back I created a widget to let you simply select the destination address and then do the route calculation using Google Maps.

But is does more than that. As a route calculation needs a starting address and a destination address (and it's hard for me to know the address you would like to use as the starting address) the widget has a component that lets you generate new widgets based on a starting address that you specify. I think it's pretty clever. And it gets better - the component that generates the widgets is an XPage... :-)

The post, and link to the widget, may be found in my Google Maps Widget Generator - come grab your own! post.

Notes 2011 Accordion widget

Part of the OnTime Group Calendar Notes 2011 client is the option to only display favorite groups instead of all public groups. To switch between the two views I wrote a small animated accordion control. Nicely animated and double-buffered. Loving it!

DOTS and automatic startup of bundles

Domino OSGi Tasklet Container (or DOTS for short) is an uber-cool OpenNTF project that allows you to write addins for the Domino server in Java. The project used to be called JAVADDIN which kind of gives the purpose away.

At UKLUG I was asked if there was a way to specify which bundles to automatically start at server startup. I didn't know the answer so I wrote an e-mail to David Taieb who's the author of the project and he quickly responded that this is indeed possible. Below is Davids answer:

Yes, you can create a file called config.ini in 
{data}/domino/workspace directory and add the following line 
domino.osgi.bundles.start=pluginid1,pluginId2,pluginId3 

Restart http task and verify that the plugins specified are 
active 
>tell http osgi diag pluginId1 
>tell http osgi diag pluginId2 
>tell http osgi diag pluginId3

Best Regards 
-david
The above is for Domino 8.5.3 - for Domino 8.5.2 the config.ini file is in the workspace\.config directory.

There is a caveat though. The automatic startup isn't performed until an XPage request is made. An extension point to make bundles automatically startup when the server is started will be added for Domino 8.5.4.

Tags : , , ,

Going to AusLUG? Maybe you should stay an extra day for the Tack-On events!

If you are going to attend the Australian Lotus User Group (AusLUG) in Sydney in August - and you really should - I think you should (at least) consider staying an extra day. The conference is on Monday and Tuesday but on Wednesday there are Tack-On sessions available. Besides presenting sessions at AusLUG I will be hosting a plugin development Tack-on deep-dive/hands-on session titled "Hit the ground running, Eclipse plugins for Lotus Notes and Sametime hands on". If you want to get started with plugin development for Lotus Notes and/or Sametime I highly recommend you attend this session. Below is the abstract for the Tack-On event:

Eclipse plugin development for the Notes client and the Sametime client does admittedly have a steep learning curve but if you know where to look and get a solid foundation it really does get easier. This Tack-on will get you going with plugins so you can hit the ground running once you are back in your office. We'll make sure you know the basics and have the foundation in order, before diving into hands-on exercises teaching you how to set up your Eclipse IDE, how to develop sidebar plugins that surface web pages, sidebar plugins that interact with data from web services and how to work with Notes data from your plugin. You'll also learn how to debug your plugins, how to package it and how to get it rolled out inside your company. In essence everything you need to get going with plugins through practical, hands-on, exercises. This is the sh*t if you want to get going with plugins.

You may read more about the Tack-On events on the session page.

Tags :

Knowledge path: RESTful web services

Found an excellent summary article on developerWorks called Knowledge Path: Build RESTful web services with Java technology. It has some very good information and links to articles split into 5 sections:

  1. Understand REST concepts
  2. Meet the Java API for RESTful Web Services (JAX-RS)
  3. Build RESTful applications with Java frameworks
  4. Combine REST with the Java Persistence API (JPA)
  5. Create RESTful web services with IBM WebSphere sMash
Great reads right there!

Tags : ,