I’m at Dannotes this Wednesday and Thursday so if you are too please come and say hello… ๐

I’m at Dannotes this Wednesday and Thursday so if you are too please come and say hello… ๐

Unfortunately I got no speaking slot this year at Lotusphere. Although it was hard to read the e-mails on Saturday morning I feel a lot better after hearing about some of the other bright fellows who didn’t get a slot either. Congrats to all those who did and see you all in Orlando.
P.S.: If any are getting cold feet I’ll be more than happy to jump in… ๐
Got my new cell phone yesterday… It’s a Samsung i600 running Windows Mobile 6 so it’s Notes Traveler ready when it ships with Notes/Domino 8.0.1 i 1Q2008. First impressions of the phone are very favorable and I think it’s going to fit me just fine. A nice feature is that the package includes two batteries and an external charger to charge the second battery outside the phone. Whether that means that the phone consumes at LOT of battery power remains to be seen.
So far only one small thing. How do you find the MAC address of the built in Wifi? Well you simply dial *#1546792*# (or invoke WindowsAdminSettings.exe) and find in under “Version”. Strange but it works. Wifi from bed… ๐
When developing plug-ins and features in Eclipse you need to change the version number to force Notes 8 to redownload and install the feature/plug-in. To make this easier you can use version qualifiers – this will make your life much easier. For more info see Using Version Qualifiers. Thanks to Pierre Carlson from IBM.
Then you need this little handy tip. There are many classes with identical or similar names in the java.awt and the SWT widget libraries. Having to distinguish between the package names in the type ahead dropdown is a pain and lead to wrongful imports so do yourself this favor:
This will make Eclipse remove any matching classes from the java.awt package from your type ahead list. Very nice…
And while you’re there you might want to add lotus.domino.cso, lotus.domino.local and lotus.notes to the list as well as all Domino programming is done through the lotus.domino package.
Normally I wouldn’t post stuff like this on this blog but I’m so excited that I have to do just that. I have been a long time fan of the Dragonlance novels and now that an animated feature of the first novel is in the works I’m just plain excited. The first movie will be Dragons of Autumn Twilight and will be released directly to DVD. See here for more info on the movie.
[youtube https://www.youtube.com/watch?v=UHrOfJ8_D0o&rel=1&border=0]
Yesterday I picked up my new laptop – a Lenovo Thinkpad T61p. It’s a worthy replacement for my 3 year old IBM Thinkpad T41p. I know it’s very nerdy but boy it’s nice! ๐
It’s shipping with Windows Vista Ultimate so now I have to determine whether to go with Vista or install Windows XP which was my intent initially.
Please make note of the following before upgrading any servers to Domino 7.0.3: Technote 1285422: Multiple services are installed when Domino is upgraded to version 7.0.3

One of the big changes in Notes 8 is the move to a Java threading model which means that showing a messagebox is not something you can *just* do. This has implications for you if you’re developing (or thinking of developing) UI components in Java for Notes 8. These UI components (e.g. sidebar contributions) are developed in SWT and hence follow the SWT way of doing it.
Please note: Although the following may seem (overly) complex nothing of it is new when discussion UI development. The only difference between Notes 7.x and earlier and Notes 8 is that some of these aspects now rears their ugly head.
Now lets get to it…
Since only one thread can access the display and hence draw on the screen at any one time, requests to the display needs to be serialized. In Notes 8 and SWT this is done using the Eclipse Job API. This is done by encapsulating a piece of functionality and asking the platform (the “scheduler”) to execute it. The scheduler adds the job to a queue and and execute it once it is its turn. This may not happen right away though it mostly will.
To display stuff in the UI you use an UIJob instance as shown below. This example simply shows a messagebox with some static content.
new UIJob("Rectangle") {
public IStatus runInUIThread(IProgressMonitor arg0) {
MessageDialog.openInformation(
this.getDisplay().getActiveShell(),
"HelloWorld", "Hello SWT Job API World");
return Status.OK_STATUS;
}
}.schedule();
The second example will show you how to display some Notes data. Since access to the Notes API must be run in a specially initialized thread (remember NotesThread.sinitThread?) you have two options:
Using NotesJob is by far the easiest and will handle all the dirty details for you. When you do this you can also use the NotesPlatform class which is an (undocumented) way of getting a lotus.domino.Session instance inside Notes 8.
Using NotesJob will take care of getting at the data – to display it in the UI you still need an UIJob which is why I use two job instances in the example below. Since you can only access final variables from within inner classes I mark the name variable as final.
new NotesJob("Show messagebox") {
protected IStatus runInNotesThread(IProgressMonitor arg0) throws NotesException {
Session session = NotesPlatform.getInstance().getSession();
Name n = session.createName(session.getUserName());
final String name = n.getAbbreviated();
new UIJob("My UI job") {
public IStatus runInUIThread(IProgressMonitor arg0) {
MessageDialog.openInformation(
this.getDisplay().getActiveShell(),
"Username", "Username: " + name);
return Status.OK_STATUS;
}
}.schedule();
return Status.OK_STATUS;
}
}.schedule();
I hope this helps you.