It’s Lotusphere time – and you have to stay at home …

Never mind.

On Monday, there will be information on how to view the Opening General Session online

[ via Ed Brill ]

In addition, there is a Live Blogging from Lotusphere page where you can “instantly” see what Bruce Elgort, Julian Robichaux, Ed Brill and others are writing during the show.

LS 2007 LIVE

This site has been created so that people not attending Lotusphere can still get a feel for the atmosphere and any announcements that are taking place during the General Opening Session.

The site is built by Carl Tyler from Instant Technologies and hosted by connectria

Another announcement by Ed Brill

I’ve been given the green light to announce that 40-plus Lotusphere presentations from the AD, ID, INV, and JMP tracks will be posted as podcasts to developerWorks during March 2007

@SetViewInfo, Reset Filter and Goto Top Of View

When using @SetViewInfo to filter a view, you can reset the filter with the following formula:

@Command([OpenView]; @Subset(@ViewTitle; -1));
@SetViewInfo([SetViewFilter]; ""; ""; 1)

This will work fine as long as you do not want to go to the top of the view after removing the filter.

This is the view before setting the filter

Now we set a filter to show only entries according to a selected ticket number

Don’t be confused that the first column isn’t shown after the filter is applied ( Notes works as designed )

Now we remove / reset the filter using the formula show before

The filter is removed but the view does not show the entries from top of the view

Here is my workaround for this problem. I found out that the view opens from top, when you change to another view first and then re-open the view in question. So what can be done manually could even be done programmatically.

To avoid opening an existing view in the database with possibly a lot of documents in the view, I created a “dummy” view.
This view neither shows any documents nor it has columns and actions. A real empty view, indeed.

At least I changed the “Reset Filter” action to the following code:

@Command([OpenView]; @Subset(@ViewTitle; -1));
@SetViewInfo([SetViewFilter]; ""; ""; 1)

When you now reset the filter, the view will open from top.


Deutsche 11 Backstage

Auf dem neuen Community-Portal können FuÃ?ball- und Comedy-Begeisterte jetzt hautnah erleben, wie es in der Umkleidekabine der deutschen Nationalelf wirklich zugeht:

Deutsche 11 backstage

Die Internetplattform bietet den Fans die Möglichkeit, brandneue, lustige Clips der Trickfilm-Serie â??Deutsche 11 backstageâ?? anzusehen, Olli Kahns virtuellen Spind beim Gewinnspiel abzusahnen, sich über Neuigkeiten auf dem Blog auszutauschen und verschiedene digitale Extras für das Handy herunterzuladen.

D Programming Language

D is a systems programming language. Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python. Special attention is given to the needs of quality assurance, documentation, management, portability and reliability.

D Programming Language Sample

D is statically typed, and compiles direct to native code. It’s multiparadigm: supporting imperative, object oriented, and template metaprogramming styles. It’s a member of the C syntax family, and its look and feel is very close to C++’s.

domingo 1.3 – Open Source Java-API für Lotus Notes/Domino

seen at

Due to the big feedback with many questions, tips, feature-requests and acceptance, we decided to publish a new release 1.3 with answers and fixes to all questions to all previous releases.

This release adds new methods for dealing with attachments, the whole bunch of functions related to full-text search and many other details. It also improves handling and reporting of misconfigurations like incomplete classpath or PATH.

Please read about all further changes here:

Here you can download domingo 1.3:

Best regards
Kurt Riede

beck et al. projects GmbH, München

Ytria ScanEZ 5 released released version 5 of its amazing tool ScanEZ. The new version comes with a polished UI and a lot of new functions. One of these functions is “Export To DXL”.
A complete list of new and approved functions will follow later today.

update: You can find the ScanEZ 5.0.1 release notes here

Windows PowerShell 1.0 is finally released

Microsoft Windows PowerShell command line shell and scripting language helps IT Professionals achieve greater productivity.

Using a new admin-focused scripting language, more than 130 standard command line tools, and consistent syntax and utilities, Windows PowerShell allows IT Professionals to more easily control system administration and accelerate automation.

Windows PowerShell is easy to adopt, learn, and use, because it works with your existing IT infrastructure and existing script investments, and because it runs on Windows XP, Windows Vista and Windows Server 2003.

IBM Blog Template – Syntax Highlighter for Lotus Script

How often would we like to insert coloured code in our documents? I know it’s not that important but, first, it looks much nicer and, second, it’s much easy to understand a piece of source code when it is coloured. At least for me.

I played around with the new IBM Blog template. It gives you all you need to start to blog. As you can see in my blog, I sometimes post some code along with my articles. The code is automatically formatted.

Well, how could this be done in the IBM Blog template? First of all, there is no feature that will do the job out of the box. So I googled and found Alex Gorbatchevs “dp.SyntaxHighlighter“.
dp.SyntaxHighlighter is a free JavaScript tool for source code syntax highlighting. The script is meant to help a developer to post code snippets online with ease and without having to worry about applying format.

Here are the steps to inplement syntax highlighting into the IBM Blog template. At the end of this article you’ll find the necessary files in a zip archive. The archive contains shBrushLS.js. This file contains the keywords and classes for Lotus Script along with REGEXP for formatting Single-Line and Multi-Line comments.

Open the IBM Bolg template in Designer and add the .js files to the files section of the template. Add the .css file to the StyleSheet section of the template.

Now open the “HTML Templates” section in the navigation pane of your blog and click “Block Templates”

Add the following lines to the HTMLBottom template document

Syntax Highlighter

and these lines to the HTMLTop template document.

Syntax Highlighter

Do not forget to save the documents 😉

You can now start to post your code. You have to use a TEXTAREA tag as shown in the picture below. For mor informations on how to use the script, please take a look at the doumentation.

Syntax Highlighter

When you now open the article in the web, it should look like this …

Syntax Highlighter

I encountered a few problems when using the textarea tag. It seems that all CRLF are replaced by nothing and the code appears in one single line. So I had to modify the existing Lotus Script code in the DXLiveContentEngine lib of the template.

I added the following code to the “renderBlogItem” function ( starting at line 750 )

	If rtitem.Type=1 Then
		'is rich text
		Set rtitem2=doc.getfirstitem("rt")
		' --- added 05.11.2006, Ulrich Krause
		Dim strHTML As String
		strHTML = R5ReplaceSubstring ( Mid$( HTML ,Instr ( HTML,"", Chr$(13))
		html = R5ReplaceSubstring ( HTML, Mid$( HTML ,Instr(HTML,"

Maybe Steve Castledine can have a look at this.



Insert RichText into RichText with LotusScript – Chapter 2

In an earlier post I wrote about how to insert richtext from another document into a specific position in an exiting richtext item using DXL. This solution works fine but has a few limitations. One of this limitations is the handling of attachments and embedded objects.

So I was looking for another solution. I tried to use LotusScript but due to some missing methods there is no way to achive the goal.

Then I searched the C++ API and found

LNSTATUS Insert( const LNRichText &richtext, LNRTCursor *cursor )

This was exactly what I was looking for. I wrote a small console application to test this method. The function did exactly what it is supposed to do.

Using the

LNSTATUS GotoFirst( const LNString &searchstring )

method, it is possible, to insert the richtext at a specific position that can be defined by a placeholder. The placeholder can be of any name.

Insert Richtext - the placeholder

To delete the placeholder before inserting the replacing content, I use

rtTarget.Delete( &cursor, sizeof( InsertionPoint ));

I guess this is what IBM does when you use the FindAndReplace method of the NotesRichTextRange class. But with this metod you can replace text only. Replacing a string with richtext is not supported. I wonder, why IBM does not enhance this method. In my oppinion this is not very hard to do; as I stated before, the Notes API already has this functionality.

After a few more tests with attachments and embedded objects, I put all this stuff into an DLL. Now the function can be used from inside LotusScript. I decided to provide this new functionality as an DLL because all of my attempts to create an LSX ( using the LSX toolkit ) constantly crashes my client. Even with some help from Bill Buchan and Benjamin Langhinrich I was not able to build a stable function. Maybe i will succeed some day …

To use the InsertRichTextItem function from LotusScript, you have to copy “rt.dll” to your notes executable directory. Since the function uses the C++ API, you have to copy “lcppn70.dll”, too. I have created and tested the function with Notes 7.0.1, but it should work in former versions of Notes as well.

In the Declaration section of your Lotus Script put the following lines

Declare Function InsertRichTextItem Lib "rt" (_
Byval dbServer As String,_
Byval dbPath As String,_
Byval lngSourceNoteID As Long,_
Byval strSourceRTField As String,_
Byval lngTargetNoteID As Long,_
Byval strTargetRTField As String,_
Byval InsertionPoint As String) As String

The function is called as follows

strRet = InsertRichTextItem ( DB_SERVER, DB_FILE,  SourceNOTEID, "Body", TargetNOTEID, "Body","")

The function returns “OK” when completed successfully, otherwise it throws an error.

Sub Click(Source As Button)

	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	Dim doc As NotesDocument

	Dim SourceDoc As NotesDocument ' contains the richtext to be inserted
	Dim TargetDoc As NotesDocument ' insert RT here

	Dim rtItem As NotesRichTextItem
	Dim retval As Integer

	Set db = s.GetDatabase( DB_SERVER, DB_FILE)
	Set col = db.AllDocuments
	Set SourceDoc = col.GetNthDocument(2) ' SecondDocument
	Set TargetDoc = col.GetNthDocument(1) ' FirstDocument

	Dim SourceNOTEID As Long
	Dim TargetNOTEID As Long

	' Convert NOTEID from HEX to Long
	TargetNOTEID = Val("&H" + TargetDoc.NoteID)
	SourceNOTEID = Val("&H" + SourceDoc.NoteID)

	Msgbox InsertRichTextItem ( DB_SERVER, DB_FILE,  SourceNOTEID, "Body", TargetNOTEID, "Body","")

End Sub

Attached you’ll find a sample database. The necessary files are included in the “first document” – doc.

If you find this function useful, pls. let me know.