Thursday 12 November 2009

NotesStream to the test

At the NL LUG 2009 Martin Scheafer improvised during his shortened session Domino Globetrotting/Dev talk. Due to customer regulations he could not show all he had planned to show.

And so he did a couple of side steps into @function and lotusscript coding. NotesStream was mentioned as a performance booster when building (long) strings e.g. in webagents when building return data for a webservice. During execution of demo code the difference between concatening a string using [string = string + extrastring] and the same code but now using NotesStream to build the return string, concatenating was a factor 4 to 5 slower than NotesStream.
I immediately saw an opportunity to improve the performance of the several agents we have running every day to transport product and other data from Notes to our Websphere Commerce servers via xml files. Some of them deliver a xml file of over 100mb.
So I put it to the test running 4 agents delivering the same result and each of them differing slightly in how the data is written.


  1. agent builds string (concatenate) to 65000+ bytes and than writes to file.
  2. agent builds string (concatenate) per record and writes to file per record.
  3. agent write to file directly, line by line.
  4. agent writes to file line by line using NotesStream.
The first 3 agents write to file via LS print, agent 4 using NotesStream.

The output build has the following structure per record:
<persoon>
<voornaam>Jan</voornaam>
<achternaam>Jansen</achternaam>
<woonplaats>Scherpenzeel</woonplaats>
<persoon>

The results in performance are listed below:
  1. Concatenated string test (concat string to 65000+ bytes before write).
    [Elapsed time: 296 seconds] [processed 123838 records]
  2. Concatenated string test (concat/write per record).
    [Elapsed time: 163 seconds] [processed 123838 records]
  3. Direct print to file test.
    [Elapsed time: 169 seconds] [processed 123838 records]
  4. NotesStream string test.
    [Elapsed time: 170 seconds] [processed 123838 records]
Conclusion is, NotesStream is indeed faster, but only when building large strings. The agent (1.) that concatenates strings up to 65000 bytes proves this. When keeping the strings limited in size, agents 2, 3 & 4, NotesStream performs equal to the other string methods.
And as Martin mentioned in his session, NotesStream is certainly helpful in webagents that build return xml's on request.

Monday 2 November 2009

NLLUG conference will see next edition in 2010

Last thursday and friday I spent my time at the Amsterdam RAI for the NLLUG conference. The first multiday conference in the history of the SNUG (Dutch Lotus software user group).
Over 300 visitors, 25 business partners, 37 speakers and 39 sessions in 3 parallel tracks (and on friday even a fourth track) have made it a succesfull conference.
As always the sessions were of great quality, enabling everyone to go away with new knowledge and ideas.
I loved Rob Novak's session in which he presented SNAPPS' MyDomino application whilst the audience was enjoying a beer, great format!! And awesome application!!
Ok it was Heineken, but you cannot blame him for that ;-), next time LaTrappe Blond Rob ?.

To continue the success, the dates for the NLLUG 2010 have already been set to the 17th/18th of june. So, mark these dates in your calendar.

During the NLLUG, 25 IBM Lotus business partners (together with IBM) have launched the "Lotus loves people" initiative to give the Lotus brand more attention (advertising ?) in the Dutch market.

SNUG team (Marnix Kemme & others), thank you very much for your hard work in putting together this great event.

Wednesday 14 October 2009

ND 8.5.1. install - third time right

After experiencing the slow 8.5. DDE I wanted to upgrade to DDE 8.5.1. (and the client of course) asap after the official release.
And yes, as you can guess for the title of this post I ran into some trouble. The first time I installed 8.5.1., as I was used to from the past, over the 8.5 installation.
After the install finished I enthousiastically double clicked the Client icon, but to my suprise after the 8.5 splash image disappeared nothing seemed to happen for a while. Until well after 10 minutes, the client window appeared. I eagerly clicked on to the DDE, but no results.
Found on Planet Lotus some hints to first uninstalling the old client before installing the new one. Did that, but still no fast opening client. In fact still over 10 minutes before the client opened and no results on the DDE.

As a last resort, I removed the installed 8.5.1. clients again, did a cleanup of the registry, rebooted the pc and reinstalled again.
After successfull install, rebooted the pc (better safe than sorry) and clicked the client icon again.
And again *sigh* it took over 10 minutes before the client loaded. This time though I had the fortune to be away from my desk to fetch the collegues some coffee.
And when I came back to my pc, a dialog was hovering over the 8.5.1. client with a message: "Client Setup completed, click ok to restart". This dialog probably also displayed on the previous 2 attempts, but was probably hidden behind active windows.

Now the client opens just fine, as does the 8.5.1 DDE. And lightning fast compared to the 8.5 version.
So beware if the client opens slowly the first time after the install and wait for that dialog setup complete message.
From the comments on various blogs, it appear I ma no alone in my experience and IBM should at least hint to a slow first startup on the install screens/instructions to avoid this confusion.

Good luck with your installs.

Monday 28 September 2009

NL LUG 09 29-30 october in Amsterdam

The registration for the NL LUG 09 on 29/30 october in Amsterdam is going fast.
The agenda is set and it has a pick for everyone in almost every timeslot and as always it has some difficult choices to make on which sessions to go to.
Interesting are some of the subjects in the "alternative" track which even has a session by Microsoft !!
The location is now also set, the RAI congress centre, which is a good choice as it very accesible by public transport and by car.

The SNUG (Dutch IBM/Lotus User Group) have succeeded in creating a packed and interesting agenda, getting a good venue and sponsors.
More information can be found on the NL-LUG 2009 website: http://www.lug2009.nl.

See you there.

Unsupported trigger on agent after server upgrade to R8.5

For ages we have had agents running called by one central scheduled agent, the "daily scheduled agent launcher" as we call it.
The trigger of these called agents is set to "On event - Agent List selection" and the target is set to "None".
The code used to call the agents from within the "daily scheduled agent launcher" is:
Set agent = db.GetAgent(AgentName)
Call agent.run()


After migrating the server that runs the agents to R8.5, we discovered that one agent in particular was no longer running and produced the "Unsupported trigger and search in background agent" error. In the past we had come across such problems before, where doing the application/server housekeeping like compact & fixup used to help and make the problem go away. But not this time.

Searching the Lotus Developer Domain made me find a response by Julie Kadashevich to look at a troubleshooting agents document in the developer domain. This document gives some clue to the target of the agent being wrong.
This should be set to "None" or "All documents in application (database)" for agents of this event. Which technically means the agent should run as we had set it to "None".
The first attempt to make it run again was resaving the agent. But that still did not make it run. So we changed the target to "All documents in app" and suprise, the agent runs again.
Appearantly "None" is also not a good target for "Agent list" agents.

Any ideas ?

Tuesday 22 September 2009

Interesting reading/tutorials about Xpages on the web

For me working with Xpages is not near what I am used to in the Domino Designer. It is a bit like starting from scratch again using a couple of sources on the web to learn.
As I am probably not alone in that, I thought it might be nice to share the list of sites I have been using so far. This list will be far from complete (only 4), but so far I have been reading (part, whole or just started to) the following sources on the Xpages subject on the web.
And maybe you can add your additional favorite sites on Xpages in a comment and build a full list of usefull Xpages sites (which I will repost at a later date).

- Learning Xpages by Declan Sciolla-Lynch
- The Xpages Blog by various authors
- Domino Designer Wiki: "Introduction to XPages" by Stephan H Wissel, Tim Clark (and others)
- XPages Drag and Drop Tutorial by Jake Ochs

- and of course the Xpages Tutorial in the Lotus Domino Designer /Info Center help is a good starting point.

Thursday 20 August 2009

Dutch Lotus User Group Conference 29-30 october

The SNUG (Dutch IBM/Lotus User Group) have planned a two day conference on 29 and 30 october 2009.
The site for the conference is shaping up and can be found here. They are still looking for speakers to fill up the agenda. So if you are interested in presenting one or more sessions during this conference, contact the SNUG (Details can be found below the table on the sponsoring page).

I have already pencilled the days in my agenda and will bring my poken to connect.

Monday 23 March 2009

You just gotta love Notes backward compatibility

While making some small amendments to an application that required a controlled access section, I noticed this compatibility functionality for Notes R3.
How is that for maintaining backward compatibility !!



Friday 13 March 2009

Working my way through Declan Lynch's XPages series

I am working my way through Declan Lynch's tutorial series on XPages, everytime I have a couple of minutes to spare.
I am about to start with part 26. Declan has done a great job in providing us with a very comprehensible step-by-step guide to create a proper working application in XPages. The steps are very well divided into 10-15 minutes pieces of work, which make it very managable (even in between tasks at work).

So far I find the stuff provided very usefull and a realistic scenario. In fact in paralell to working on series' phonebook app I am also trying to build a XPages frontend to an existing (similar) application inside the company. So far so good.

Great job Declan! Thanx.

Tuesday 10 March 2009

I Do Poken, do you ?

Last thursday (5 march 2009) I went to the LCTY session organised by Eniac in Zaltbommel.
Guest speaker was Douglas Spencer, who did an awesome job of summarising the Lotusphere Opening General Session in 1 hour. I also watched the OGS via the webcast on the IBM site and Douglas did an outstanding job picking out the highlights. What I found the most astonishing was the Sametime United Telephony part. "On the phone" awareness in sametime and the ability to continue the same conversation from one phone to another, just great. Not that I see that happening at my present employer soon :-( .
For the full Lotusphere 2009 OGS webcast, click here.

As an extra Eniac organised two breakout session for the afternoon, I went to the Lotus Mashups session. They did a good job of explaining the purpose and use of mashups for temporary situational apps, combining information from several (disconnected) sources into new information.
I like to draw an analogy with the query tools and web 2.0. I think that is what it really is, query tools 2.0.

The sessions ended with a Poken as gift. Poken is the new thing in social networking and provides a way to easily connect digitally with people in all the social networks they want to share. You just need to let your Poken touch (high four) with another persons Poken for a couple of seconds and you have exchanged your Poken (business) card. Back at your computer just plug the Poken in an USB port and connect to the Poken site to upload your new friends Poken cards. Through the icons at the bottom of the Poken cards you can see what other social networks your friends are active on.
Pity Eniac did not take the opportunity to preload the Pokens with the Poken cards for some of the key Eniac employees.

Anyway, I have activated the Poken and will carry it with me at all times. So when you see me and you have a Poken too, lets do a high four.

More information on Poken can be found at www.DoYouPoken.com.

Eniac, thanx for organising this event.

Friday 13 February 2009

Getting used to Lotus Domino Designer 8.5, findings so far

Shortly after the announcement I upgraded to the Notes 8.5 platform, including the new Eclipse based designer client.
And of course it is looking very familiar as we Notes developers were already using the very similar and good working IDE. But it is now based on Eclipse which makes adding plugins and tools easier and is close to the RAD client we are using for our Websphere Commerce development.
But there are definitely some things that need getting used to. I guess it is mostly getting used to a new way of working, but there are also some issues.
I thought I'd share my initial findings and I am curious what others think.

  1. The designer client takes more time to start, as does opening the first pane of design elements (enough to get the first cup of coffee of the day). After that it appears to be performing like the "old" client.
  2. Databases are now called applications.
  3. The old bookmarked applications stored in the previous designer client are not converted to the new eclipse workspace.
  4. The application icons do not show until an application is opened/expanded. This make visually browsing for the application that needs some changes a lot harder.
  5. The folders are replaced by working sets. Drag and drop of applications from one working set to another (like with the "old" folders) is not possible. This needs to be done opening the working set dialog box and consciously checking and unchecking applications (again by name, not icon).
  6. The extra available eclipse views for specific tasks are helpfull and can be dragged to a suitable size and place..
  7. The old familiar properties box comes up for "old" design elements and the new one at the bottom seem to be for the new design elements like the xpages, although it also shows some properties for the "old" design elements.
  8. The lotusscript debugger still opens as a seperate window. I expected this one to be integrated as a seperate pane in the new designer client.

Friday 16 January 2009

Have a great Lotusphere !!

I will not be attending Lotusphere 2009. But I wish all those lucky people who are going a great time.
I will be watching the blogs for the stories to tell.

Wednesday 14 January 2009

Good old @functions

From time to time we use Notes databases to store documentation for processes and projects. And to avoid that everybody enters information using their own format we ask peolpe to use predefined templates to create unity in the created documentation. Normally these templates would be provided as main documents in the database and the users will copy and paste these template documents.
Now I remembered from way back in Notes 3.3 that I had created a bit of @function code to allow users to pick a template from a list and copy the selected template into the document the user is working on.

This is how the @function code works:
  • Let the user pick a template from a list of templates using @Picklist and and categorised view
  • Open the selected template document
  • Navigate to he body field
  • Select all the content in this field
  • Copy the selected content to the clipboard
  • Close the selected template document (and view)
  • Paste the selected content at the location of the cursor
Downside of this method is the screen seems to flicker as the function opens a view, a document, selects the body, closes the document, closes the view and pastes the content, but with the current workstation speeds it is hardly noticable.
How about that in the age of xpages, sidebar widgets and composite applications.

For those interested I have made a database available for download. The function is available on the main topic, place the cursor in the body field and click on the "import template" button.
CopyAndPasteTemplate.zip

Note: the download is stored on Dennis' blog, as I cannot find an option in Blogger to provide downloads of type zip.

Thursday 8 January 2009

Upgraded to designer 8.5 - something is missing

Up until now I have stuck to doing development in the R7 designer client. But now that we have planned to start upgrading to 8.5 in Q2 of this year I could no longer resist and installed the new domino designer 8.5 via the upgrade installer C1SQ5EN.exe (all clients, thanx Dennis for the explanation list of cryptic installernames).

But on opening the designer client, to my suprise the bookmarks I so carefully created and grouped over the years are not showing.
Searching help and the web has not provided an answer. So I am posting it to the community.

Does anyone have an idea how to import / restore the "old" bookmarks ?

Friday 2 January 2009

A happy and properous 2009

So it has been a while since I posted here, actually a very long while.
But as one of the new year pledges to my self I will try to keep up this blog better updated more regulary.

To start I wish all the IBM Lotus fans around the world a happy and prosperous 2009.