Posts Tagged ‘ibm’

28 Aug 2015

South Africa’s IBM Notes and Domino User Group is now on

It’s finally here!!! South Africa’s IBM Notes, Domino and XPages User Group (aka SALUG) has just been launched on

In case you don’t know, IBM Notes & Domino is a platform for rapidly developing rich web applications thanks to modern technologies and frameworks including XPages, jQuery, Dojo, Bootstrap and more.

This meetup is for those interested in one or more of the various areas that make up the IBM Notes & Domino ecosystem. Whether you’re a newbie, a specialist, or a general user of the technology, there’s a place for you here. Activities will include local meetups, events, workshops, skills growth, showcases, demos and much much more.

We are in the beginning stages of this group and will soon be uploading valuable content as well as scheduled meetups. In the meantime, it will be great to start connecting with everyone.

Click here to join now and stay tuned for more. See you on the other side :)

20 Aug 2015

IBM Domino Tip: Pass HTML to RichTextItem without using MIMEEntity


This is a quick tip on how to include HTML when populating a RichTextItem object without using MIMEEntity in IBM Notes/Domino.

First some venting

It’s amazing how certain easter egg features have been available in the Domino Object Model since release 5, that I’ve managed to keep missing, yet constantly required. This morning I happened to stumble across one of them.

For the longest time, whenever I needed to send out a mail programatically via code that needed even the slightest bit of HTML, I would resort to using a MIMEEntity object. Which is great don’t get me wrong, but most of the time it’s actually overkill. This morning, all I wanted to do in my RichTextItem is include a URL (Not a doclink, but a predefined URL). I would do this by using:


This was never an issue for me back in the day because, in IBM Notes Mail, Notes would see it as a url and convert it into a hyperlink. In my particular case when testing with Gmail and Outlook, the url just showed as plain text and nothing more. “Oh crap!” are the words I believe I used this morning. I kept thinking…”here we go again with MIMEEntity“.

Thankfully, I took a minute to double check the Designer Help. At first I noticed that there were no real options for me in the RichTextItem object, but when taking a look at the RichTextStyle object (this is used to provide standard font changes, etc. in your RichTextItem), I noticed what is right now to me the most beautiful object property of the year….PassThruHTML!!!

The Solution

Using my example above, assuming you have a RichTextStyle object initiated, all I needed to do was the following:

RichTextItem.appendText("<a href=""></a>");

That’s it. Domino converts the text into HTML and applies it to your RichTextItem object. I’ve spent the day kicking myself for not seeing this before, but I think I’m over it now. As long as this blog post can help others early enough from following the same road I travelled.

Till next time :)


15 May 2015

XPages Tip: Filter your design elements for quicker navigation

This is a quick tip on how to filter your design elements in Domino Designer to help quickly find what you’re looking for.

I have to laugh at myself sometimes. 80% into one of my recent XPages Projects, I found myself completely frustrated, trying to pinpoint 1 of many custom control designs in Domino Designer. I almost fell off my chair when I realised that the solution was staring me in the face the entire time.

In Domino Designer, irrelevant of if you’re viewing XPages design elements, custom controls, views, forms, etc, there is a filter option on the top right side of the content Pane. This allows you to track a certain design element using a keyword. As long as that keyword exists in the design element name or alias column, you’re good to go.


Screen Shot 2015-05-15 at 11.35.24 AM


Screen Shot 2015-05-15 at 11.36.12 AM

Pity I only found this out now :(

Hope this helps.

Cheers. John


Thanks to Tommy Valand and Per Lausten for suggesting Ctrl + Shift + R, which searches for any design element by name in applications that are open in DDE.

Per also referenced a great blog post: “10 Eclipse Navigation Shortcuts every Java programmer should know

11 Feb 2015

IBM Domino Designer Tip: Change measurement for notes-based designs

This is a quick tip for those who want to change the unit of measure in IBM Domino Designer from inches to centimeters.

Inches are a default for IBM Domino Designer when setting up table designs and the like in Notes, but I prefer to use centimeters. To modify the measurement, do the following:

  1. Open Domino Designer
  2. Click on “File\Preferences”
  3. Select “Regional Settings”
  4. Select which Unit of Measurement you want to use
  5. Click on “Ok”
  6. Restart Domino Designer



2 Sep 2014

Bluemix iOS Push Notifications Tutorial: Part 3 – The APN Lifecycle

In this blog post, I provide a brief overview of Apple’s Push Notification Lifecycle and where IBM Bluemix fits in.

Quick Notes

  • This Blog Post is Part 3 of a Tutorial Series on IBM Bluemix and iOS Push Notifications.
  • My aim in this Blog Post is to help you understand Push Notifications when it comes to Apple Mobile Devices (iPhones/iPods/iPads).


When it comes to including Push Notification functionality in your iOS mobile app, the functionality itself is quite simple and straightforward. It’s understanding the lifecycle of the Apple Push Notification Service (APNS) that’s a bit daunting. What i’ve done below is divide this lifecycle into smaller topics that I trust will have you understanding enough of how the entire service works, to allow you to confidently continue with this Blog Series.

The Push Notification

To start things off, let’s talk about the Apple Push Notification itself and how it works. The primary purpose of a Push Notification is to alert a user about something related to your Mobile App, when your Mobile App is not currently active and in the foreground on his/her device. These notifications could include:

  • Informing a user that a new message is awaiting them in your Mobile App
  • Informing a user that they’ve received a new request they need to action via your Mobile App
  • Scheduling a reminder for the user
  • And the list goes on…

So, there are 2 types of Notifications:

  • Local Notifications
  • Remote Notifications (Also generally known as Push Notifications)

A Local Notification appears the same as a Push Notification, but the difference is that a Local Notification is created by your Mobile App on the Mobile Device it’s running on. An example of this is setting a reminder for the User. Your mobile app could set a Local Notification to run immediately or at a certain date and time.

A Remote Notification (Push Notification) is sent from a Cloud Server (e.g. IBM Bluemix) to Apple’s Push Notification Service, which in turn delivers it to your device. An example of this is when a message needs to be sent to the user from another device that has your Mobile App installed.

Push Notifications can appear as an alert, a badge or a banner and can play a sound when it appears on the user’s device. While a Push Notification contains standard values relevant to what’s required for it to appear on the user’s device, it can also contain custom data relevant to your Mobile App that can be used by your Mobile App to trigger certain actions.

When a Push Notification is triggered by the User of the device (e.g. swiping the notification), an action is sent to launch your Mobile App on that device. Your Mobile App can then get a handle on the Push Notification that was triggered by the user. This in turn allows your Mobile App to perform the necessary actions based on the custom data received via the Push Notification.

The Apple Push Notification Service and the Provider

The APNS, in short, is responsible for delivering a Push Notification do your device. Here’s where the tricky part comes in though. Let’s create a quick scenario:

You have a Web Application that manages leave requests. When you submit a leave request to your manager for approval, you want he/she to receive a Push Notification on their mobile device. Many would think it’s as easy as sending the request directly from your Website to the APNS, but it’s not. There’s a middle layer between your Web Application and the APNS, and that layer is called “The Provider”.

The Provider (e.g. Bluemix, Appcelerator, AWS, etc) manages the Push Notification Requests from your Web or Mobile Application. The Provider then communicates with the APNS over a binary interface. I will not attempt to bore you with the technical details of how the Provider communicates with the APNS, but if you want you can read about it here.

What matters here is that you understand the flow of a Push Notification from your application, through to the targeted mobile device. The below image (From Apple) explains this flow once your Push Notification Request is sent to the Provider:


The Mobile Application

In case you’re still wondering, a Push Notification’s existence is dependent on a Mobile App running on a user’s mobile device. You cannot send a Push Notification to a mobile device if there’s no mobile app to receive that Push Notification.

When your Mobile App is installed and launched on a user’s device, the Mobile App, if configured to receive Push Notifications, will register with the Apple Push Notification Service. Once registered, the APNS will send a device token back to the mobile device, who in turn delivers the device token to your Mobile App. Your Mobile App needs to then deliver the device token to the Provider (Bluemix), who also registers the user’s device.

Once this process is complete, your Mobile App is ready to receive Push Notifications via the device it’s installed on. What’s great about Bluemix as a Provider, is that they provide the necessary SDKs for iOS which allows the mobile device to be automatically registered on the Bluemix Cloud if registration with the APNS was successful.

What you as an iOS Developer should know

The key to getting all of this going is to understand Apple’s certificate requirements. Your Mobile App needs to have the necessary profiles and certificates installed in order to register for Push Notifications. Setting up the certificates is the trickiest part of this entire Blog Series.

My next blog post will focus on setting up these Provisioning Profiles and Certificates. Once we’ve got that monster out the way it’s all smooth sailing.

Cheers for now