Going to AusLUG


I’m happy to say that I once more will be joining the AusLUG crew downunder for the Australian Lotus Usergruoup on March 29-30 in Melbourne, Australia. I have been wanting to go all along but we had to make sure it was possible before I started getting my hopes up. So I’m very happy to say that everything has fallen into place and that I’ll be on site for AusLUG 2012! So thrilled.

I’m even more thrilled to say that I’ll be speaking as well. The first session is on Thursday at 2pm where I’ll be giving my “Easy as Pie – Creating Widgets for IBM Connections” session to get you up to speed on developing widgets for IBM Connections. On Friday at 8.30am I’ll be on stage again presenting my “Plug yourself in and your applications will never be the same! (An introduction to plugin development for Notes and Sametime)”. I really hope to see you all for both sessions on topics I think are extremely important to you as a developer.

This year the OnTime team will consist of myself and my manager Jens overgaard Dinesen (@jensovergaard) as we will both be making the trip to Melbourne. On our way (because what isn’t on ones way when going to Oz) we’re stopping for two days in Tokyo to meet with IBM and potential partners for OnTime in Japan. We’re very excited about this trip and hope everything will pan out. We will not be in until Thursday morning at 7am but will be there all of Thursday, Friday and Saturday and looking forward to meeting everyone there.

See ya!

From the drafts pile – Noticeable enhancements for Notes 8.5.3

Found a couple of posts in my drafts pile that I never got posted and that are really past their time. I though I would just post them to get them out there. Treat accordingly.

  • Live Text recognized in MIME emails
    Live Text strings are now recognized in MIME e-mails. This has been an anticipated enhancement for several releases, and is now available
  • Open a Web page widget in an external browser or named embedded browser
    When creating a Web page widget, you can specify that the widget open in an external browser or a named embedded browser.
  • Integrated Windows Authentication (IWA) for Eclipse-based clients, including Lotus Notes
    This code drop introduces Integrated Windows Authentication (IWA) for supplied and third-party Eclipse-based client applications, enabling SPNEGO authentication for integrated Notes application clients. This includes Notes and its embedded Eclipse-based features such as Widgets and Live Text, Feeds, Lotus Connections, and Composite Applications as well as embedded Sametime and embedded Symphony. It also includes adjunct products that are based on Eclipse but not embedded within Notes, such as IBM WebSphere Portal with SiteMinder and stand-alone Lotus Connections 3.0 with SiteMinder.

Creating a keystore for plugin signing the easy way

Previously when creating keystores for plugin signing I’ve used a lot of dark magic, crying at the moon and a custom tool I wrote called KeystoreUtil to convert between different formats. The other day I was doing a consulting gig on plugin signing and came up with an easier way just using iKeyman and the Java tooling. I created a presentation with the various commands and screenshots and put it on Slideshare.

Hope it will help someone.

Creating a keystore for plugin signing the easy way [slideshare id=11917844&w=425&h=355&fb=0&mw=0&mh=0&sc=no]

View more PowerPoint from lekkim

BLUG 2012

I totally forgot to mention this…

I happy to say that I’m going back to BLUG again this year presenting on one of my favorite topics that is widget development for IBM Connections (Easy as Pie – Creating Widgets for IBM Connections). I’m presenting on Friday at 12.30. The overall conference agenda looks very good and I’m looking forward to going back to Antwerp to present, network, learn and talk about OnTime.

The OnTime crew will of course also be available to talk about OnTime Group Calendar and OnTime Meeting Manager and all the various interfaces.

I’ll fly in on Wednesday afternoon and will probably be sampling the local brews that night – see you there.

Bookmark to IBM Connections bookmarks from iOS

Bookmarks (aka Dogear) in IBM Connections is great and IBM provides a nifty bookmarklet to allow easy bookmarking from your browser. I couldn’t however make this bookmarklet work in Safari on iOS so I decided to look into it. And I’m happpy to say I got it to working with some inspiration from the Instapaper bookmarklet. The way it works for me now is that I have the bookmark bar visible on my iPhone and iPad and when I need to bookmark I use the bookmarklet which redirects to the IBM Connections bookmark page and back to the original page once done. Super easy and it works great.

Here is how to make it work.

  1. Open Safari and make a bookmark to a random page but be sure to place it in the bookmark bar (the bookmark bar can be made visible all the time in Safari options).
  2. Edit that bookmark and change the title to something that makes sense (I use “IV Dogear”).
  3. Clear the location field and paste in the JavaScript code from below replacing the hostname (lc.intravision.dk) with a hostname applicable to you.
  4. Save the bookmark and start bookmarking.

pre.wrap {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}

javascript:function%20abcdefg()%7Bvar%20h='http://lc.intravision.dk/dogear';var%20d=document;var%20b=d.body;var%20e=encodeURIComponent;var%20u=h+'/bookmarklet/post?url='+e(location.href)+'&title='+e(d.title);location.href=u+'&inframe=true&ver=';%7D;abcdefg();void(0);

DNUG 2011 video of yours truly – Plug yourself in and your apps will never be the same!

The kind people from DNUG was kind enough to tape my presentation in November and send me a link to the video. Sides being extremely weird to see one self on video I thought someone might enjoy it – so here it is. Further down is the presentation on Slideshare from BLUG.

Link to video.

Plug yourself in and your app will never be the same (1 hr edition) [slideshare id=7857007&w=425&h=355&fb=0&mw=0&mh=0&sc=no]

View more presentations from lekkim

Notes 8.5.3 and Sametime Web API woes

For one of our products we are using the Sametime Web API which is a great way to Sametime enable applications outside the Notes client. Basically it uses the web container running within Notes Standard to provide a HTTP API for Sametime awareness. Great. We had an issue however after upgrading from Notes 8.5.2 to Notes 8.5.3 where Sametime awarenss stopped working but thanks to the design partner program and the help of Khuan Hoe Kong from IBM we’re now back in the business. As this issue may bite others I thought I would post it here.

Our problem was that we were using the “mystatus” and “getShortStatus” API calls to get awareness status that is we were using local calls like http://localhost:59449/stwebapi/mystatus/ and http://localhost:59449/stwebapi/getShortStatus. These calls returned JSON we could use to get awareness status and as previously mentioned these calls worked fine in Notes 8.5.2 but after going to Notes 8.5.3 (and hence a newer version of the embedded Sametime client) they stopped working. Apparently these calls were considered a security risk so there were blocked and needed to be unblocked in order to work. Below is the response from IBM.

For security reasons, many of the WEBApi functions are disabled by default, including the mentioned two. To enable the function, add a preference to the plugin_customization.ini in the following format:

com.ibm.collaboration.realtime.webapi.<function>Enabled=true

For example, to enable the getstatusshort, you would add this preference:

com.ibm.collaboration.realtime.webapi
   .getstatusshortEnabled=true

To enabled all the Web API functions you can use the global override:

com.ibm.collaboration.realtime.webapi/
   enableAllWebApisOverride=true

The details of this change may be found in ST8.5.1 SDK.

While the above solution works it requires the customer to configure the client and hence wont work for us. The funny thing is that while the getstatusshort method is blocked for “security reasons” the getstatus method works just fine. Only difference is that the getstatus method returns more info. Makes no sense.

My main reason for considering this a bad approach is that I get an HTTP code 200 back but the response is empty/invalid. That seems wrong. A better REST solution would be to return a 403 Forbidden with an explanation why. What would in my mind have been the correct solution. Hope that can be incorporated into a future release.

But it works now so I will go back under my rock.

File not found when using IBM Connections Media Gallery

At a customer users were reporting that the media gallery in IBM Connections did not work. The error they were seeing was aneror message in the UI telling them that the file they just selected from their file system did not exist. Very strange. After diagnosing the issue it was caused by the media gallery not having been set up correctly as the default file types wasn’t imported into the configuration. Why these defaults are not set automatically is the topic for another day.

There are two templates which determine the file types you can upload
by default. You should also have these in your AppSrv01 profiles, or your
nodes, etc. The step is done by following the instructions in the info center.

Diagnosing wierd widget installation issue

I had a customer report a widget (plugin) installation issue to me. They had clients being unable to install a widget (and hence a plugin) from an update site on our servers (external to their network). The error was reported as below:

Unable to access "http://<host>/site.xml".
Contains: Error parsing site stream. [White spaces are
   required between publicId and systemId.]

The issue turned out to be caused by a firewall issue and hence wrongly reported in the log. The issue was solved by relocating the update site to the customers network.