OnTime Group Calendar for Social Business

As part of the OnTime Group Calendar we’re building a series of widgets for IBM Connections to allow easier collaboration – the more we collaborate the more we need access to accurate, updated, calendar data. This puts OnTime Group Calendar smack in the middle of the move to social business. We are getting ready to release the widgets as part of the product and we have the first demo ready.

The integration into the Profiles feature is easily understandable and shows the calendar of the user right there on the profile page as shown on the right. Click the image to see a larger version.

However the real power lies in the integration into communities. Here we bring the calendar of community members into the community is a text list UI and a full graphical viewer based UI as in the rest of our clients. For communities we are also offering a Social Scheduling widget to allow you to find available meeting times and book meetings with community members plus people you may only know based on tags (keywords) or location. Very powerful and possible due to the API offered for OnTime Group Calendar.

(click the image for a larger version)

Please note that everywhere the access to calendar data is only available if the querying user has sufficient access.

The demo below outlines how OnTime Group Calendar for Social Business brings calendar data into IBM Connections in the Profiles feature and in the Communities feature.

All videos are available on the ontimesuite YouTube channel.

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

Why choosing Eclipse for Notes 8 was the right choice

It’s been quiet around the blog the last few months because I have been neck deep in work getting a new product ready. I’m slowly resurfacing and as blogged about the last few days we (OnTime) are now shipping the latest release of the group calendar product called OnTime Group Calendar 2011. We showed of the UI’s at Lotusphere 2011 but now we’re shipping and are ready to go.

Besides having a brand new backend with it’s own interesting features and performance improvements (see here) the product also ships with a brand new, all Java, Notes UI that runs full screen inside the Notes client. The client is called OnTime Group Calendar 2011 – Notes (or Notes 2011) and is a good showcase of what’s possible inside the Notes client and why choosing Eclipse as the platform for Notes 8 was important. We no longer have to use separate clients for our UI but can run it inside Notes where it belongs. The below screenshot shows the UI running inside Notes 8.5.2.

(click the image for a larger version)


Since the group calendar now runs full screen (a perspective in Eclipse Java parlance) it’s launched from the Open menu in Notes. Once opened it adds its own top level OnTime menu and loads data using the new OnTime Group Calendar API. One of the cool things about the UI being in Java is that it does away with the traditional Notes view limitations (for instance one document per row) and allows for some super cool, pixel level, UI drawing. It also allows us to read from an API layer that abstracts the actual reading and providing of data from the application itself and allows us to reuse the API in all our UI’s (Notes 2011, Discovery 2011, Web 2011, Mobile 2011 and Team-At-A-Glance 2011 (sidebar)).

The UI allows the user to switch between a day view (see above) where the user may choose to see from 1 to 7 days to a week view to a month view. The week view for instance gives a very nice overview of the calendar of the people you work with.

In all the views you may filter the people shown using groups and legends. Legends are what we call the types of appointments/meetings being shown. On the server you configure what makes an appointment be put in what legend and may be based on category, type or a formula you specify. Once you select one or more legends the viewer is filtered to highlight the appointments/meetings that match the legend. Below I have chosen to only see external meetings.

(click the image for larger version)

Besides the cool and slick UI (if I have to say so myself) we also provide some nice new functionality. If you have write to a calendar (your own or a colleagues) you may drag’n’drop appointments in the group calendar. The below screen shot shows me dragging an appointment from Susanne to Saiful.

The Notes 2011 also allows for full Lotus Sametime integration and customization using Eclipse based extension points but that’s a topic for another day.

If you like to try out OnTime Group Calendar 2011 you may obtain an unrestricted, 30 day, trial. Simply drop us an e-mail at sales@intravision.dk. We’ll even be happy to offer you 20% discount for all new licenses purchased in May or June as an introductory offer. Just tell us that you learned about OnTime on lekkimworld.com and we’ll discount your purchase.

Amazing OnTime Group Calendar performance gains

As I have been tweeting recently I have finished coding the new OnTime Group Calendar Notes UI and we are now shipping it (OnTime Group Calendar 2011 ). This release is a brand new, completely rewritten, product and it’s shipping with some very cool features and UI’s. Currently we’re shipping a standalone UI (Discovery 2011) and the Notes UI (Notes 2011) with a mobile and web UI coming soon (Web 2011 and Mobile 2011). My main contribution is the OnTime Group Calendar Notes 2011 client which is a full Java based group calendar UI that runs inside the Notes 8.5 Standard client. More in a separate post about the Notes 2011 client.

Part of the OnTime Group Calendar is the backend that runs on the server. Previously we easily scaled to 100.000+ users but you normally had to run multiple group calendar databases to control access and visibility of calendar data within your organization.

This “restriction” has now been is now lifted with the new release of OnTime Group Calendar 2011. Now all customers will run a single group calendar database and the OnTime backend takes care of controlling access and visibility either based on custom configuration or based on mail database ACL’s.

To get ready for the new release we have done a number of pilot installs and there we found some very interesting performance numbers at a customer which I’ll share below.

Text OnTime 9.x OnTime 2011 % of previous
Users 8.900 8.900
Storage need 17 GB 170 MB 1%
Number of views required 300 20 6.6%
Document count 300.000 27.000 9%

At another customer we went from a group calendar database of 1.3 GB to 22 MB. That’s also a reduction to a little less than 2% of the previous disk usage (1.6%).

As you can see from the above the disk savings are massive. Smaller databases leads to less I/O which leads to major improvements in performance. Domino as a backend screams for this kind of solution. So cool.

Oh and best of all – it’s still a pure Domino solution.

On language vs. regional settings

At the office we’re doing a brand new version of our OnTime Group Calendar (more on that later) and for that we’re revamping our entire settings system. Both to make it more flexible and to make it easier for users. Where ever possible we’re opting for sensible defaults instead of asking the user.

With sensible defaults and revamping the settings system also comes taking a long hard look at the way settings are set and what they mean. What is a setting? What is a global setting? What is an application setting? What constitutes a language setting? What constitutes a regional setting? Are the two last ones actually the same?

For OnTime 2011 we’ve opted to split the setting system into two parts:

  • Global settings that applies across the OnTime Suite (Sametime enabled/disabled (due to license restrictions on API usage), language, region, …)
  • Application settings (i.e. how did the application look when I used it last)

The two most important settings from the global settings in regard to this post is the language code and the region code. We’ve chosen to let the user select the user interface language independently of the region they’re using. So what does that mean? I might choose to use US English as the user interface language but that doesn’t mean that I want dates in m/d/y format and times in 12 hour format. That’s why it makes sense.

Our regional settings contains all date/time related formats but also specifies two calendar related settings. These are first day of the week (Monday vs. Sunday) and minimum number of days in first week of the year (4 (ISO8601) vs. 1). This means that if you use the Danish regional settings we automatically apply the way we calculate week numbers.

LotusLive and Lotus Connections are examples of applications that does it the other way around (and the wrong way if you ask me). It sets the region (date/time formats) based on the language chosen so the only way to get correct (for me) date/time formats is to choose Danish as the language (although I prefer English user interfaces). As you probably guessed I think that’s wrong 🙂