New IBM Notes and Domino Certification Available – get 50% off until 25 June 2013

IBM has announced a nice new entry level certification for Notes and Domino and until 25 June 2013 you get 50% off the certification test so if it fits a suggest you go and get certified. The page I link to at the bottom has the promo code you need for the rebate.

“IBM Collaboration Solutions is pleased to announce a new associate level certification: IBM Certified Associate – Notes and Domino.
This credential requires successful completion of the test LOT-442: IBM Notes and Domino Fundamentals. This test covers IBM Notes and Domino material as it relates to competencies within the following areas:

  • Architecture
  • General Administration
  • Calendaring and Scheduling
  • Replication
  • Mail
  • Clientv
  • Security
  • XPages
  • Non-XPages Design
  • Troubleshooting

Read more: New IBM Notes and Domino Certification Available – IBM Certified Associate – Notes and Domino.

Generating DOM events from JavaScript

For the OnTime Group Calendar API Explorer I needed manipulate a dropdown element on the page using JavaScript which is easy enough but when doing it this way no onchange events are emitted which caused my page logic to break. Luckily for me there is a simple way to have the element emit an event using the dispatchEvent mechanism of the DOM. The element.dispatchEvent method is your friend here. The documentation shows you how to create a mouse event but I really needed a HTML based event. To create a such is done like below:

// get element
var elem = document.getElementById("some_dropdown");

// set selected option
elem.selectedIndex = 2;

// generate an 'onchange' event from 'elem'
var event = document.createEvent("HTMLEvents");
event.initEvent("change", true, true);
event.eventName = "change";
elem.dispatchEvent(event);

I will speaking at BLUG

Very happy to say that I again this year will join up with the community in Bruxelles in March and speak at the annual BLUG event on y-22 Match 2013. I’ll be giving a talk on how to bring your data to users by writing widgets for IBM Connections. I’m really looking forward to seeing everyone there.

swtIbmWrapper (Not found in java.library.path)

When I’m doing proff-of-concept code for SWT based plugins for Notes I often times simply use a popup Shell constructed from Eclipse. This is much easier and faster than using a full Notes launch for this kind of stuff. After moving to IBM Notes 9 I had an issue with this approach and would see stacktraces like the below when trying to launch my shells.

23-01-2013 09:21:20 OS loadIBMSwtWrapperLibrary
WARNING:
Throwable occurred: java.lang.UnsatisfiedLinkError: swtIbmWrapper (Not found in java.library.path)
	at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1018)
	at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:982)
	at java.lang.System.loadLibrary(System.java:506)
	at org.eclipse.swt.internal.win32.OS.loadIBMSwtWrapperLibrary(OS.java:6977)
	at org.eclipse.swt.internal.win32.OS.(OS.java:6993)
	at java.lang.J9VMInternals.initializeImpl(Native Method)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
	at org.eclipse.swt.widgets.Display.(Display.java:139)
	at java.lang.J9VMInternals.initializeImpl(Native Method)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
	at test_paint.BaseTest.run(BaseTest.java:17)
	at test_paint.Main.main(Main.java:17)
Exception in thread "main" java.lang.UnsatisfiedLinkError: org/eclipse/swt/internal/win32/OS.VtblCallWrapped(II)I
	at org.eclipse.swt.internal.win32.OS.VtblCall(OS.java:6997)
	at org.eclipse.swt.widgets.Display.init(Display.java:2828)
	at org.eclipse.swt.graphics.Device.(Device.java:138)
	at org.eclipse.swt.widgets.Display.(Display.java:490)
	at org.eclipse.swt.widgets.Display.(Display.java:481)
	at test_paint.BaseTest.run(BaseTest.java:17)
	at test_paint.Main.main(Main.java:17)

The solution was to add the DLL-directory (I’m on Windows) for the org.eclipse.osgi plugin to the native libraries location in my launch configuration. My Notes client is installed in C:Notes9 so the full path for Notes 9 Beta is “C:Notes9Dataworkspace.configorg.eclipse.osgibundles12001.cp”. Adding that in the build path dialog for org.eclipse.osgi solved the issue.

OnTime at IBM Connect 2013 – Like to win one of 4 iPad minis

OnTime is of course present at IBM Connect 2013 and we will be there in a variety of ways. We are sending 4 people so if you want to talk to us about anything from technology, to sales, to vision you should be good to go. Besides me being there and presenting a session (BP209 on Monday afternoon at 3.45pm) we are in the showcase demoing all our group calendaring goodness as well. We have an extremely cool line-up of products and will be demoing our new UIs namely the reintroduced Team-At-A-Glance sidebar plugin for IBM Notes and our new web UI which will knock your socks of. If you haven’t seen it be sure to stop by the booth or talk to one of us.

During Connect we will be giving a number of iPad minis away and the rules are simple. Simply Like our page on Facebook (www.facebook.com/ontimesuite) to join the fun and then watch Facebook.com/ontimesuite daily during Connect 2013 for extra chances to win. Each way we will post an OnTime related question on Facebook and the first one to come to the booth with the answer will win an iPad mini – there is a iPad up for grasps every day of Connect 2013!! So easy and should be all kinds of fun. Be sure to join in.

So why not head over and Like us right away!?

Ved du nok om IBM Websphere Application Server?

Nedenstående er fra IBM Danmark og klart et kig værd hvis du/I overvejer IBM Connections og/eller IBM Sametime eller andre Websphere baserede produkter.

“Denne dag gennemgår vi de helt fundamentale begreber og ser nærmere på, hvorledes WebSphere Application Server danner fundament for henholdsvis IBM Connections, IBM Sametime og IBM WebSphere Portal. Vi kigger også lidt nærmere på arkitekturen bagved og ser også på de mere driftsmæssige aspekter. Så emnerne for dagen er teknikken, arkitekturen, drift, fejlhåndtering med mere.

Det bliver en spændende dag, hvor vores lokale specialister øser ud af deres viden!

Tilmelding: Tilmeld dig ved at sende en mail til lotusdk@dk.ibm.com – deltagerantallet er begrænset, så først til mølle princippet er gældende.”

“Declaratively” binding events when using innerHTML

Yesterday I was editing some JavaScript code that used innerHTML to insert HTML into the Document Object Model (DOM). Given it’s not the best and even fastest way to accomplish the task the code was written this way so it was what I had to work with. That is I had code like this:

// build HTML into string
var htmlResult = "
"; htmlResult += Click me!"; htmlResult += "
"; ... ... // insert HTML into DOM dojo.byId("target").innerHTML = htmlResult;

One major shortcoming of this approach is that that it is hard to hook up JavaScript events using dojo and similar frameworks as they require the target element of the event to be in the DOM at the time of the wiring. No declarative approach I know of there. To solve it I opted for a simple – although a bit kludgy approach where I simply save the event methods for later and apply once the DOM has been constructed. Easy. Like this:
var htmlResult = “

“;
dojo.byId(“target”).innerHTML = htmlResult;

// define holder for onclick functions
var onclickFunctions = {};

// build HTML into string
var htmlResult = "
"; htmlResult += Click me!"; htmlResult += "
"; ... ... // define onclick functions for ids onclickFunctions["myLink"] = function() { console.log("Do stuff..."); } ... ... // add html to DOM dojo.byId("target").innerHTML = htmlResult; // hook up event handlers dojo.forEach(Object.keys(onclickFunctions, function(id) { try { var elem = dojo.byId(id); if (elem) elem.onclick = onclickFunctions[id]; } catch (e) {} });

Kludgy I know but it gets the job done.

Happy to see this fixed for Notes 9


When a user or delegated user creates a contact within the mail file, the contact is later archived. The ProtectFromArchive, $NoPurge and ExcludeFromView fields are not being saved to the document when contacts are created in the mail file. These fields are generated on contacts in the local names.nsf Contacts lists.
Resolving the problem This problem was reported to IBM Development in SPR PBAO7NKL2X and is resolved in 8.5.4 (aka version 9).”

Technote 1621998: Personal Contacts are Archived when the mail file is archived