LotusScript.doc v2 DDE plugin article

Celebrating the return of the full printed edition of THE VIEW I was reading through the latest issue (Volume 16, Issue 6, Fall 2010) and was delighted to read the article by Karsten Lehmann and Tammo Riedlinger on integrating LotusScript.doc v2 into DDE using a plugin. Two of my favorite subjects in a single article – it doesn’t get much better than that!

The article is a great read and well worth reading and presents a cool approach to integrating LotusScript.doc into the heart of DDE. It also highlights how to develop plugins for DDE. Very nice.

If you’re looking for more from Karsten and Tammo they will be presenting at Lotusphere 2011 on plugin development using the Notes UI API’s (BP203).

I’m very happy to announce that LotusScript.doc v.2 is finally done


I’m very happy to announce that LotusScript.doc v.2 is done – finally! The official point-zero release is available for immediate download. It’s been a looooooooooong process and it’s taken a very long time but it’s finally done. You may download it here (lsdoc_200.zip).

Thanks to all those who have supported and encouraged me during the development. A very special thanks goes out to the people who donated – thank you!

Part of this release is also the website which I’m working on. The website is currently available at blog.lsdoc.org. Once everything is done it will be moved over and replace the current http://www.lsdoc.org. As I’ve mentioned before version 2 is written in Java and you may actually use the LotusScript.doc code as a general LotusScript code parser if you wish. Quite easy actually – for a sneak peek as to how to use the API see the Using the LotusScript.doc API page.

Comments as always welcome here on the blog or by e-mail to lekkim [at] lsdoc [dot] org.

LotusScript.doc v2 beta 7

Beta 7 (and hopefully the last beta) of LotusScript.doc v2 is out – get it here (lsdoc_200beta7.zip). This beta fixes a minor issue with comment parsing. Unless I hear anything else I will release 2.0.0 this weekend.

Please note: Please remember to adjust the Java heap size. For more information see this post.

Comments as always welcome here on the blog or by e-mail to lekkim [at] lsdoc [dot] org.

LotusScript.doc v2 beta 5

Beta 56 (and hopefully the last beta) of LotusScript.doc v2 is out – get it here (lsdoc_200beta6.zip). This beta fixes minor issues with comment parsing and makes logging easier to configure by gracefully failing if not configured in java.policy (for more info see LotusScript.doc v2 – java.policy changes required).

This beta also makes the database run on Notes 7 by not using StringBuilder but StringBuffer instead.

Please note: Please remember to adjust the Java heap size. For more information see this post.

Comments as always welcome here on the blog or by e-mail to lekkim [at] lsdoc [dot] org.

Update: I found a small bug so you’ll get beta 6 instead of 5…

LotusScript.doc v2 beta 4

Beta 4 of LotusScript.doc v2 is out – get it here (lsdoc_200beta4.zip). This beta adds additional logging, makes the log output easier to read and fixes an issue where the sub/function parser would receive “empty source code” if the code contained a sub/function where all code was commented out using pings(‘) or %REM sections.

The code has now also been stress tested thanks to databases from Nathan and Julian Buss. These two databases combined have around 300 script libraries!! 🙂

Update: Please remember to adjust the Java heap size. For more information see this post.

Update: If using Notes 7 beta 4 will not work. Please wait for beta 5.

Celebrating Yellow Day – LotusScript.doc v2 beta for download

To celebrate Yellow Day I’m releasing the first public LotusScript.doc v2 beta for download. To get it download the lsdoc_200beta3.zip file, unzip it and create a new database from the template. I’ll soon blog about all the new goodness in version 2 but for now suffice to say there’s a host of stuff. If nothing else you should notice a major increase in performance meaning documenting databases now take a fraction of the time it used it with version 1.

Please note that this is a beta but it should be ready for prime time. It documents my databases just fine. If you do experience anything you deem weird, or dare I say a bug, please report it by e-mail to lekkim [at] lsdoc.org.

Looking forward to hearing you comments. Thanks.

The fine print

LotusScript.doc is now written in Java and to run LotusScript.doc on non-trivial databases you need to allocate more memory to Java than what’s the standard in the Notes client. To do this follow the description below.

  1. Change the maximum possible Java heap size in notes.ini by setting JavaMaxHeapSize=256M to allow for 256 mb of Java heap.
  2. (optional) Change the /jvm/lib/security/java.
    policy and add the two following lines at the bottom of the first “grant” section. For more information see this blog post. This is only required to enable logging and it’s not required.

    // LotusScript.doc
    permission java.util.logging.LoggingPermission "control";
    

Results from LotusScript.doc v.2 survey

Some time back I asked you to complete a survey on how you use LotusScript.doc and I’m happy that 60 of you did. I’m very pleased by the results and for the sake of transparency I’m posting the results below. Now I’ll take a look at the results and ponder a little… 🙂
</p

1. Do you currently use LotusScript.doc v.1?
Yes = 66,7%
No = 33,3%

2. Which version of Domino Designer do you use?
8.5.1 beta = 18.3%
8.5.1 as soon as possible = 11.7%
8.5 1 = 6.7%
8.0.2 = 11.7%
8.0.1 = 3.3%
8.0 = 3.3%
7.0.x = 28.3%
6.5.x or older = 6.7%

3. Do you develop on multiple machines with different Domino Designer version?
Yes = 71.7%
No = 28.3%

4. Do you develop applications in collaboration with others?
Yes = 86.7%
No = 13.3%

5. Which of the below statements best characterizes the way you develop applications?
I write ALL my LotusScript code in script libraries = 23.3%
I write LotusScript code in the events and actions on forms and views (hardly ever use script libraries) = 1.7%
I write LotusScript where it makes sense (sometimes in script libraries, sometimes in forms/views) = 75.0%

6. Do you normally generate the documentation using LotusScript.doc scheduled on the server or manually on the client?
Scheduled on the server = 21.7%
Manually on the client = 78.3%

7. Please prioritize how you would prefer to read the documentation from LotusScript.doc (1 being the format you would like the most, 5 being the format you would like the least)

td.mfreqtop {font-weight: bold;}

HTML 50.9% 20.8% 11.3% 11.3% 5.7%
XHTML 17.1% 26.8% 19.5% 19.5% 17.1%
XML 13.0% 15.2% 32.6% 26.1% 15.2%
Notes rich text 8.3% 22.9% 22.9% 27.1% 18.8%
External application 8.3% 8.3% 8.3% 11.1% 63.9%
Plug-in for Domino Designer on Eclipse 22.4% 28.6% 22.4% 18.4% 8.2%

8. What is your preferred comment style?
LotusScript.doc style (LotusScript’ified javadoc syntax) = 69.0%
%REM section style = 31.0%

9. Do you prefer to write your documentation inside or outside the class/sub/function?
Outside = 46.7%
Inside = 53.3%

10. Would you use a solution that allowed you to incrementally build/update the documentation as you save design elements?
Yes = 85.0%
No = 15.0%

LotusScript.doc v2 – an update on the progress

Besides working way too much I have spent a good part of my Holidays working on LotusScript.doc version 2 and I’m happy to say that it is very close to completion. I have spent a great deal of time finalizing the logging framework and building the Notes/Java bridge to allow you to run LotusScript.doc from a Notes database instead of as a command line program. I also needed to weed out some issues in this regard which is why I have been blogging issues such as configuring the java.policy file and the maximum Java heap size.

To clarify…

LotusScript.doc v2 is out in a very, very limited prebeta 1 with one person besides me to try and weed out the most serious issues before releasing a beta. Again a beta, at least the first, will only go out to a select number of people to try and keep track of who has what release.

The goals for the functionality of LotusScript.doc v2 are very big but for starters I’m going for feature parity with LotusScript v1. Then once the new technology is out there I’m going to start enabling the new and advanced features.

Thank you for your patience.

LotusScript.doc v2 – required Java heap changes

Strong: Just to clarify – LotusScript.doc v2 isn’t out yet. It is out in a very, very limited prebeta 1 (one person besides me) in preparation for a more general beta process hopefully in the very near future. See this post for a clarification on the progress.

As you might know LotusScript.doc v2 is written in Java instead of LotusScript. This means that you have to make some minor changes to your Notes client to make it work. One of the settings you need to change is the size of the Java heap that is the amount of memory allocated to Java objects.

To change that you need to set the JavaMaxHeapSize notes.ini parameter as described in the Lotus Notes and Domino wiki. Although the wiki describes the setting as only being applicable to Domino servers it works just as fine for my test Notes client (8.0.2 Standard in this case). To change the setting add the following to your notes.ini (do check whether it is already set):

JavaMaxHeapSize=384MB

LotusScript.doc v2 – java.policy changes required

Strong: Just to clarify – LotusScript.doc v2 isn’t out yet. It is out in a very, very limited prebeta 1 (one person besides me) in preparation for a more general beta process hopefully in the very near future. See this post for a clarification on the progress.

LotusScript.doc v2 uses java.util.logging as its underlying logging framework. To spice things up a little it also uses some internal magic to ease troubleshooting and provide easy debugging. One of these tricks is to print out the XPath expression of the element being processed in the log. More on this another time.

In order to use java.util.logging and set custom Handlers and Formatters you need to tweek the java.policy a little bit. It’s quite easy as the only thing you have to add to your <Notes binary directory</jvm/lib/security/java.policy file is the following in the first “grant” section:

permission java.util.logging.LoggingPermission "control";

Here is a link to a default java.policy file and a changed java.policy file.