IBM Notes and Domino 9.0 Social Edition beta now available

Ed Brill just announced that the IBM Notes and Domino 9.0 Social Edition betas are now available for download. The beta program is open for everyone so go ahead and sign up and try the new IBM Notes 9.0 🙂 Use the 9.0 beta forum for feedback.

Here’s the beautiful IBM Notes 9.0 (Mac) client:
IBM Notes 9

I have upgraded my developer environment to 9.0 and look forward to lots of improvements to IBM Domino Designer.

I’m speaking at IBM Connect 2013

Session abstract notifications for the IBM Connect 2013 conference were sent out yesterday (the conference previously known as Lotusphere). I submitted two session abstracts with Bruce Elgort and I am proud to say that we had one of the session abstracts accepted!

Bruce and I will be speaking about “How We Built CollaborationToday.info in a Matter of Weeks” on the new Spotlight on IBM Business Partners track.

This is the session abstract:

In this session, we will show you how we developed a great-looking, user-driven community news site called “Collaboration Today”. We will walk you through how we developed the site’s user experience and architecture. We will dive into how we made the app scalable, quick and accessible on all mobile devices and web browsers using responsive design. Best of all, this app is built with open-source components and is itself an open-source app available for you to download and use today. We will show you how other apps can utilize and present the content from Collaboration Today using the app’s API.

The session focuses on the Collaboration Today news site that was released by OpenNTF in September 2012 and recently released as open source too.

This will be my first appearance as speaker at Lotusphere and IBM Connect. I am really looking forward to it! See you there 🙂

XPages: dynamically updating rich text content in a CKEditor

For the Sherlock Web solution I had a need to be able to update rich text content in a CKEditor with rich text content from backend document templates. These backend document templates can be created and edited with the Lotus Notes client and will in some cases contain rich text content of type Rich Text (and not MIME). I can not change these backend document templates to be stored as MIME, so in order to be able to update the rich text content in a CKEditor, I thought I had to wrestle with conversion of Rich Text to MIME.

I spent a lot of time getting Rich Text to MIME conversion to work in order to add the backend document templates to the rich text content in the CKEditor. I ended up with a clumsy solution that involved saving the XPages backend document in order for the updated content to appear. I had a lot of inspiration from the answers to this Stack Overflow question on appending and prepending text to a rich text field. It worked, but…

A couple of good XPages guys suggested I took a look at using the datasource getValue() and setValue() methods instead. This turned out to be right way to go.

Part of trick is that I use the wrapDocument() function from XSnippet  to get a NotesXspDocument representation of the backend document template. I can then just use getValue(“body”) on that NotesXspDocument followed by getHTML() to get a HTML representation of the content. Brilliant!

The setValue method on the inputRichText control expects MIME and not text, so I use an XPages supplied method that converts from HTML to MIME. This is necessary in order to save the document at all.

So here is the important part of my code that reads content from the target field and updates it with a backend document field contaning Notes Rich Text, and ends up saving it as MIME:

if (templateDoc != null) {
   // Insert contents into existing field
   if (templateDoc.hasItem("body")) {
      var orgValue = document.getValue(bodyFieldName);
      var origValue;
      if (orgValue != null) {
         // The target field already has content
         origValue = ((typeof orgValue == "string")? orgValue : orgValue.getHTML()) + "";
      } else {
         // The target field is empty
         origValue = "";
      }

      var templateField = wrapDocument(templateDoc).getValue("body");
      importPackage(com.ibm.xsp.http);
      document.setValue(bodyFieldName, com.ibm.xsp.http.MimeMultipart.fromHTML(origValue + templateField.getHTML()));
   }
}

I also used an answer from Sven Hasselbach on partially refreshing contents in a CKEditor to put my inputRichText control inside a div control in order to partially refresh the div control when the above logic runs.

Using this method I am completely rid of the need to save the backend document. This just works! 🙂

I have added the part about updating the inputRichText control with MIME to the OpenNTF XSnippets catalog.

Notice: this code snippet does not work with embedded images and attachments.

Update October 2013: Here’s my solution for adding embedded images.

Source Control with Domino Designer 8.5.3 and Git (my talk at DanNotes, November 2012)

The 48th DanNotes conference took place yesterday and today.
I had 2 sessions. My first session was on the subject of XPages for administrators. My second session was on the topic of source control with Domino Designer 8.5.3 and Git. Here is my presention from that session:

Intro to XPages for Administrators (my talk at DanNotes, November 2012)

The 48th DanNotes conference took place yesterday and today. It was 2 days filled with lots of interesting sessions.

I had 2 sessions. My first session was on the subject of XPages for administrators. My second session was on the topic of source control with Domino Designer 8.5.3 and Git.

Here is my presentation from my XPages for Administrators session:

DanNotes 48th conference in November

The DanNotes 48th conference takes place on November 28 and 29. We have lots of interesting sessions and speakers:

I will also be speaking at the conference on the subject of XPages for administrators. The purpose of the session is to introduce administrators to XPages and to lots of useful tips and tools that can improve the use of XPages within their organizations. I am looking forward to this as it is my first speaking engagement at a Lotus user group conference.

If you are interested in joining the conference, then head over to the DanNotes website and register. There is a Facebook eventa LinkedIn event and a Lanyrd event for the conference if you are interested in tracking the conference using social tools.

I hope to see you at the conference 🙂

Update November 21: I will also be speaking about source control with Domino Designer 8.5.3.

I have been re-elected for the OpenNTF board of directors

My term on the OpenNTF board of directors expired after 1 year, and I am happy to have been re-elected for a 2 year term service.

My 1st year on the board was an exciting year where I among many things helped with the judging of several contests (including the 1st XSnippets contest), helped setup even more demos, and was part of the team that implemented Collaboration Today.

I look forward to continue to help OpenNTF spread the use and knowledge of open source for the IBM Collaboration Solutions community.

I am attending the IBM Connect/Lotusphere 2013 conference

The IBM Connect 2013 (including Lotusphere 2013) conference takes place in January 2013. I am going once again and really look forward to the atmosphere and the sessions, and most importantly the people.

I arrive Friday evening January 25th and leave again Friday February 1st. I will be staying at the Disney’s Yacht Club Resort.

See you there?

I am now an IBM Certified Advanced Application Developer – Lotus Notes and Domino 8.5

I recently passed the LOT-922 certification test (Developing IBM Lotus Domino 8.5.2 Applications: Advanced XPage Design). The test is a multiple choice test with 32 questions and a required passing score of 75%- I scored 90%.

Since I was already an IBM Certified Application Developer on Notes/Domino 8.5 the passing of the test upgraded my certification level to IBM Certified Advanced Application Developer – Lotus Notes and Domino 8.5.

I prepared for the test by reading the test objectives and by practicing using a practice test from CertFX. The test focuses on advanced XPages programming and covers the following areas:

  • Building themes
  • Extending the data sources
  • Optimizing, troubleshooting and localization
  • Using advanced Dojo controls
  • Using Server-side JavaScript
  • Using XPages for mobile user interfaces
  • Working with Java

Unfortunately, the test is already somewhat outdated in its focus on Domino Designer 8.5.2. So be prepared for that if you plan to take the test.