<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8884439162015282125</id><updated>2010-04-25T05:04:38.349+02:00</updated><title type='text'>Marcus Foerster</title><subtitle type='html'>I Love my Family, Collaboration-SW, Lotus Notes/Domino with Flex, and the Mountains</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://marcus.foerster.com/blog/atom.xml'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>78</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-6150170367939473480</id><published>2010-04-24T20:25:00.002+02:00</published><updated>2010-04-24T20:27:50.959+02:00</updated><title type='text'>Pixels - wow! :-)</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ol1JIJCGVxU&amp;hl=de_DE&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ol1JIJCGVxU&amp;hl=de_DE&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-6150170367939473480?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/6150170367939473480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/04/pixels-wow.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6150170367939473480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6150170367939473480'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/04/pixels-wow.html' title='Pixels - wow! :-)'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-791491256714133243</id><published>2010-04-15T11:53:00.003+02:00</published><updated>2010-04-15T11:58:43.045+02:00</updated><title type='text'>Happy Birthday to U</title><content type='html'>Received this for my birthday today. Made me smile :-) Thanks @Sigi :-))&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BjoEp5nqRWg&amp;hl=de_DE&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/BjoEp5nqRWg&amp;hl=de_DE&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-791491256714133243?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/791491256714133243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/04/happy-birthday-to-u.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/791491256714133243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/791491256714133243'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/04/happy-birthday-to-u.html' title='Happy Birthday to U'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-3009119176523658297</id><published>2010-03-05T07:42:00.001+01:00</published><updated>2010-03-05T07:46:12.488+01:00</updated><title type='text'>How to Become an Early Riser</title><content type='html'>I made several attempts to get up early again in the last weeks, but never really made it. I wanted to continue what worked really well last year, getting up at 4:30 almost everyday. I really love the early hours: no distractions, time for yourself, getting a lot done, and, of course, just the magic of the time before sunrise. But having tried again, I just couldn't make myself stay up when the alarm clock went off anything before 7:00am.&lt;br /&gt;&lt;br /&gt;Since yesterday, I seem to be back on my old schedule. Why is that? I read a blog post of &lt;a href="http://lewandowski.posterous.com/why-i-am-an-early-riser"&gt;Levi Lewandowski&lt;/a&gt;, who already motivated me the first time. In his blog post, he writes why he loves being an early riser, reminding me of what early rising means to me, too.&lt;br /&gt;&lt;br /&gt;So I commented on his post, that I'd be interested in how he does it, and if he had any tips. His answer: "actually it is quite easy: you simply have to get your *** out of bed early in the morning".&lt;br /&gt;&lt;br /&gt;Now, that's pretty straight to the point - and it worked ;) :) sometimes, things can be so simple...&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-3009119176523658297?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/3009119176523658297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/03/how-to-become-early-riser.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/3009119176523658297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/3009119176523658297'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/03/how-to-become-early-riser.html' title='How to Become an Early Riser'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-7172573125025793462</id><published>2010-03-03T14:28:00.003+01:00</published><updated>2010-03-03T14:36:45.827+01:00</updated><title type='text'>LotusScript function to compare the items of two documents</title><content type='html'>I want to share a little LotusScript code that compares the items of two documents, and which can be used e.g. to compare conflict documents. &lt;br /&gt;&lt;br /&gt;The main function is "compareDocuments" which expects the two documents as parameters. &lt;br /&gt;Adjust the constant "LOGFILEPATH" for the filepath of the log output.&lt;br /&gt;&lt;br /&gt;The comparison goes step by step, from checking the existence in the other document, to the item types, to the item values.&lt;br /&gt;&lt;br /&gt;Why do I use lists of a class CL_ItemCompare? Because it is slightly faster to read the items once and then access the cached information than to have to access the documents twice for the same information (as it would be the case in the second items loop in the function "compareDocuments").&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;'CompareDocuments: &lt;br /&gt;&lt;br /&gt;Option Public&lt;br /&gt;Option Declare&lt;br /&gt;&lt;br /&gt;Class CL_ItemCompare&lt;br /&gt; Public itName As String&lt;br /&gt; Public itType As String&lt;br /&gt; Public itValues As Variant&lt;br /&gt; Public isChecked As Boolean&lt;br /&gt; Sub new(it As NotesItem)&lt;br /&gt;  Me.itName = it.Name&lt;br /&gt;  Me.itType = it.Type&lt;br /&gt;  Me.itValues = it.Values&lt;br /&gt;  Me.isChecked = False&lt;br /&gt; End Sub&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;Function compareDocuments(doc1 As NotesDocument, doc2 As NotesDocument) As Boolean&lt;br /&gt; &lt;br /&gt; On Error Goto errorhandler&lt;br /&gt; &lt;br /&gt; Const LOGFILEPATH = "C:\comparedocs.txt"&lt;br /&gt; &lt;br /&gt; Open LOGFILEPATH For Output As #1&lt;br /&gt; &lt;br /&gt; Print #1, "Comparing [" &amp; doc1.UniversalID &amp; "], [" &amp; doc2.UniversalID &amp; "]"&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; ' get all items from doc1&lt;br /&gt; Dim listItCompare1 List As CL_ItemCompare&lt;br /&gt; Dim itx As NotesItem&lt;br /&gt; If Not Isempty(doc1.Items) Then&lt;br /&gt;  Forall it In doc1.Items&lt;br /&gt;   Set itx = it&lt;br /&gt;   Set listItCompare1(Lcase(itx.name)) = New CL_ItemCompare(itx)&lt;br /&gt;  End Forall&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; ' get all items from doc2&lt;br /&gt; Dim listItCompare2 List As CL_ItemCompare&lt;br /&gt; If Not Isempty(doc2.Items) Then&lt;br /&gt;  Forall it In doc2.Items&lt;br /&gt;   Set itx = it&lt;br /&gt;   Set listItCompare2(Lcase(itx.name)) = New CL_ItemCompare(itx)&lt;br /&gt;  End Forall&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; ' compare all items of doc1 with items in doc2&lt;br /&gt; Forall itCompare1 In listItCompare1  &lt;br /&gt;  If Not compareItems(itCompare1, listItCompare1, listItCompare2) Then Goto e&lt;br /&gt; End Forall&lt;br /&gt; &lt;br /&gt; ' all items of doc2 that have not been treated yet are missing in doc1&lt;br /&gt; Forall itCompare2 In listItCompare2&lt;br /&gt;  If Not itCompare2.isChecked Then&lt;br /&gt;   Print #1, "Item '" &amp; itCompare2.itName &amp; "': [DOES NOT EXIST, exists]"&lt;br /&gt;  End If&lt;br /&gt; End Forall&lt;br /&gt; &lt;br /&gt; compareDocuments = True&lt;br /&gt;e:&lt;br /&gt; Close&lt;br /&gt; Exit Function&lt;br /&gt;errorhandler:&lt;br /&gt; Msgbox "compareDocuments: Error " &amp; Error &amp; " in line " &amp; Erl&lt;br /&gt; Resume e &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function compareItems(itCompare1 As CL_ItemCompare, listItCompare1 List As CL_ItemCompare, listItCompare2 List As CL_ItemCompare) As Boolean&lt;br /&gt; &lt;br /&gt; On Error Goto errorhandler&lt;br /&gt; &lt;br /&gt; itCompare1.isChecked = True&lt;br /&gt; &lt;br /&gt; ' check if item of doc1 exists in doc2&lt;br /&gt; If Not Iselement(listItCompare2(Lcase(itCompare1.itName))) Then&lt;br /&gt;  Print #1, "Item '" &amp; itCompare1.itName &amp; "': [exists, DOES NOT EXIST]"&lt;br /&gt;  compareItems = True&lt;br /&gt;  Exit Function&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; ' get item of doc2&lt;br /&gt; Dim itCompare2 As CL_ItemCompare&lt;br /&gt; Set itCompare2 = listItCompare2(Lcase(itCompare1.itName))&lt;br /&gt; itCompare2.isChecked = True&lt;br /&gt; &lt;br /&gt; ' compare types&lt;br /&gt; If itCompare1.itType &lt;&gt; itCompare2.itType Then&lt;br /&gt;  Print #1, "Item '" &amp; itCompare1.itName &amp; ": type = [" &amp; itCompare1.itType &amp; ", " &amp; itCompare2.itType &amp; "]"&lt;br /&gt;  compareItems = True&lt;br /&gt;  Exit Function&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; ' compare typename of values&lt;br /&gt; If Typename(itCompare1.itValues) &lt;&gt; Typename(itCompare2.itValues) Then&lt;br /&gt;  Print #1, "Item '" &amp; itCompare1.itName &amp; ": typename of values = [" &amp; Typename(itCompare1.itValues) &amp; ", " &amp; Typename(itCompare2.itValues) &amp; "]"&lt;br /&gt;  compareItems = True&lt;br /&gt;  Exit Function&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; ' compare item values&lt;br /&gt; &lt;br /&gt; Dim isEqual As Boolean&lt;br /&gt; Dim i As Integer&lt;br /&gt; Dim txtValue1 As String&lt;br /&gt; Dim txtValue2 As String&lt;br /&gt; Dim isFirst As Boolean&lt;br /&gt; &lt;br /&gt; If Instr(Typename(itCompare1.itValues), "( )") &gt; 0 Then ' compare arrays&lt;br /&gt;  &lt;br /&gt;  ' compare ubound of item values array&lt;br /&gt;  If Ubound(itCompare1.itValues) &lt;&gt; Ubound(itCompare2.itValues) Then&lt;br /&gt;   Print #1, "Item '" &amp; itCompare1.itName &amp; ": ubound(values) = [" &amp; Ubound(itCompare1.itValues) &amp; ", " &amp; Ubound(itCompare2.itValues) &amp; "]"&lt;br /&gt;   compareItems = True&lt;br /&gt;   Exit Function&lt;br /&gt;  End If&lt;br /&gt;  &lt;br /&gt;  ' compare single array entries&lt;br /&gt;  isEqual = True&lt;br /&gt;  For i = 0 To Ubound(itCompare1.itValues)&lt;br /&gt;   If itCompare1.itValues(i) &lt;&gt; itCompare2.itValues(i) Then&lt;br /&gt;    isEqual = False&lt;br /&gt;    Exit For&lt;br /&gt;   End If&lt;br /&gt;  Next&lt;br /&gt;  &lt;br /&gt;  If Not isEqual Then&lt;br /&gt;   &lt;br /&gt;   ' concatenate values (we cannot use join here if values are e.g. array of integers)&lt;br /&gt;   txtValue1 = ""&lt;br /&gt;   isFirst = True&lt;br /&gt;   Forall x In itCompare1.itValues&lt;br /&gt;    If Not isFirst Then&lt;br /&gt;     txtValue1 = txtValue1 &amp; ";"&lt;br /&gt;    Else&lt;br /&gt;     isFirst = False&lt;br /&gt;    End If&lt;br /&gt;    txtValue1 = txtValue1 &amp; Cstr(x)&lt;br /&gt;   End Forall&lt;br /&gt;   &lt;br /&gt;   ' concatenate values (we cannot use join here if values are e.g. array of integers)&lt;br /&gt;   txtValue2 = ""&lt;br /&gt;   isFirst = True&lt;br /&gt;   Forall x In itCompare2.itValues&lt;br /&gt;    If Not isFirst Then&lt;br /&gt;     txtValue2 = txtValue2 &amp; ";"&lt;br /&gt;    Else&lt;br /&gt;     isFirst = False&lt;br /&gt;    End If&lt;br /&gt;    txtValue2 = txtValue2 &amp; Cstr(x)&lt;br /&gt;   End Forall&lt;br /&gt;   &lt;br /&gt;   Print #1, "Item '" &amp; itCompare1.itName &amp; ": values = [" &amp; txtValue1 &amp; ", " &amp; txtValue2 &amp; "]"&lt;br /&gt;   compareItems = True&lt;br /&gt;   Exit Function&lt;br /&gt;   &lt;br /&gt;  End If &lt;br /&gt;  &lt;br /&gt; Else ' compare single value (i.e. NotesRichtextItem.Values)&lt;br /&gt;  &lt;br /&gt;  If itCompare1.itValues &lt;&gt; itCompare2.itValues Then&lt;br /&gt;   Print #1, "Item '" &amp; itCompare1.itName &amp; ": values = [" &amp; itCompare1.itValues &amp; ", " &amp; itCompare2.itValues &amp; "]"&lt;br /&gt;   compareItems = True&lt;br /&gt;   Exit Function&lt;br /&gt;  End If&lt;br /&gt;  &lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; ' items are equal&lt;br /&gt; Print #1, "Item '" &amp; itCompare1.itName &amp; ": is equal"&lt;br /&gt; &lt;br /&gt; compareItems = True&lt;br /&gt;e:&lt;br /&gt; Exit Function&lt;br /&gt;errorhandler:&lt;br /&gt; Msgbox "compareItems: Error " &amp; Error &amp; " in line " &amp; Erl&lt;br /&gt; Resume e &lt;br /&gt;End Function&lt;br /&gt;Sub Initialize&lt;br /&gt; &lt;br /&gt;End Sub&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-7172573125025793462?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/7172573125025793462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/03/lotusscript-function-to-compare-items.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/7172573125025793462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/7172573125025793462'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/03/lotusscript-function-to-compare-items.html' title='LotusScript function to compare the items of two documents'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-2468717164409705274</id><published>2010-03-03T09:53:00.003+01:00</published><updated>2010-03-03T10:05:29.801+01:00</updated><title type='text'>PickListStrings - Something Unexpected</title><content type='html'>If you look for the cause of an error, it's not always the obvious - like in this case: &lt;br /&gt;the following LotusScript function retrieves a Notes database filepath, a view name and title and prompt to show a picklist to the user, and display the user selection in a messagebox.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;Function handlePicklistResult(dbFilepath As String, viewName As String, dlgTitle As String, dlgPrompt As String) As Variant&lt;br /&gt; &lt;br /&gt; On Error Goto errorhandler&lt;br /&gt; &lt;br /&gt; Dim res As Variant&lt;br /&gt; &lt;br /&gt; Dim ws As New NotesUIWorkspace &lt;br /&gt; res = ws.PickListStrings( _&lt;br /&gt; PICKLIST_CUSTOM, _&lt;br /&gt; False, _&lt;br /&gt; "", _&lt;br /&gt; dbFilepath, _&lt;br /&gt; viewName, _&lt;br /&gt; dlgTitle, _&lt;br /&gt; dlgPrompt, _&lt;br /&gt; 1 )&lt;br /&gt; &lt;br /&gt; If Not Isempty(res) Then&lt;br /&gt;  Msgbox Join(res, "")&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt;e:&lt;br /&gt; Exit Function&lt;br /&gt;errorhandler:&lt;br /&gt; Msgbox "Error " &amp; Error &amp; " in line " &amp; Erl&lt;br /&gt; Resume e&lt;br /&gt;End Function&lt;/div&gt;Now, the code results in the following error:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;Error Notes Error - Incorrect argument: non-null string expected in line 16&lt;/div&gt;Can you guess why (it's in the parameters...)?&lt;br /&gt;&lt;br /&gt;It could be, that dbFilepath is not set, but it is...&lt;br /&gt;It could be, that the viewName is not set, but it is...&lt;br /&gt;&lt;br /&gt;So what is it?&lt;br /&gt;&lt;br /&gt;It's the title and the prompt! PickListStrings does not allow an empty title or an empty prompt. If you do not want to show a title or a prompt, you have to use at least a space character...&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-2468717164409705274?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/2468717164409705274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/03/pickliststrings-something-unexpected.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/2468717164409705274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/2468717164409705274'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/03/pickliststrings-something-unexpected.html' title='PickListStrings - Something Unexpected'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-8672355375338997361</id><published>2010-03-02T10:19:00.005+01:00</published><updated>2010-03-02T10:54:40.512+01:00</updated><title type='text'>Formula-Agent and @Prompt</title><content type='html'>I had to write a small maintenance agent to reset NotesItems, and, to not accidentally trigger it, I used the @Prompt function to ask the typical "Are you really sure?" question - not a good idea ;-) &lt;br /&gt;&lt;br /&gt;The result was, that I had to keep clicking message boxes until the agent was finally done - fortunately there where only 42 documents in the databases, which made me click 42 times. &lt;br /&gt;&lt;br /&gt;Here is why; I used the following agent, with the options "Action menu selection" and "All selected documents":&lt;br /&gt; &lt;br /&gt;&lt;div class="code"&gt;@If(!@Prompt([YesNo]; "Reset fields"; "Are you sure?"); @Return(""); ""); &lt;br /&gt;@SetField("Body"; ""); &lt;br /&gt;@SetField("nbMemos"; 0); &lt;br /&gt;[...] &lt;br /&gt;SELECT @All&lt;/div&gt;&lt;br /&gt;If you do this, the result is, that Notes triggers the agent for each document (actually "of course" ;-)) and asks for each document separately; could be kind of useful if this is what you want it to do, but you should never try this on a database storing some thousand documents :-) &lt;br /&gt;&lt;br /&gt;A better way to accomplish the task would be to write the agent in LotusScript, even though it is a lot longer: &lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;'RESET MAIL FIELDS: &lt;br /&gt;&lt;br /&gt;Option Public &lt;br /&gt;Option Declare &lt;br /&gt;%INCLUDE "lsconst.lss" &lt;br /&gt;Sub Initialize &lt;br /&gt;&lt;br /&gt;On Error Goto errorhandler &lt;br /&gt;&lt;br /&gt;Dim s As New NotesSession &lt;br /&gt;&lt;br /&gt;Dim db As NotesDatabase &lt;br /&gt;Set db = s.CurrentDatabase &lt;br /&gt;&lt;br /&gt;Dim doccoll As NotesDocumentCollection &lt;br /&gt;Set doccoll = db.UnprocessedDocuments &lt;br /&gt;&lt;br /&gt;If doccoll Is Nothing Then &lt;br /&gt;Exit Sub &lt;br /&gt;End If &lt;br /&gt;&lt;br /&gt;If Msgbox("Are you sure?", MB_YESNO, "Reset fields") &lt;&gt; IDYES Then &lt;br /&gt;Exit Sub &lt;br /&gt;End If &lt;br /&gt;&lt;br /&gt;Call doccoll.StampAll("Body", "") &lt;br /&gt;Call doccoll.StampAll("nbMemos", 0) &lt;br /&gt;[...] &lt;br /&gt;&lt;br /&gt;e: &lt;br /&gt;Exit Sub &lt;br /&gt;errorhandler: &lt;br /&gt;Msgbox "Error " &amp; Error &amp; " in line " &amp; Erl &lt;br /&gt;Resume e &lt;br /&gt;End Sub&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-8672355375338997361?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/8672355375338997361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/03/formula-agent-and-prompt.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/8672355375338997361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/8672355375338997361'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/03/formula-agent-and-prompt.html' title='Formula-Agent and @Prompt'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-7080447824485481145</id><published>2010-03-01T10:15:00.006+01:00</published><updated>2010-03-01T10:23:05.422+01:00</updated><title type='text'>LotusScript Quiz: the "+" operator</title><content type='html'>As you (if you are a LotusScript developer ;-)) know,&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-family:courier"&gt;Msgbox "a" + 3&lt;/span&gt; results in a type mismatch error.&lt;br /&gt;- &lt;span style="font-family:courier"&gt;Msgbox "a" &amp; 3&lt;/span&gt; delivers &lt;span style="font-family:courier"&gt;"a3"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Now, do you know what the result of this line of code is?&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;Msgbox "1" + 1&lt;/div&gt;A. &lt;span style="font-family:courier"&gt;"11"&lt;/span&gt;.&lt;br /&gt;B. &lt;span style="font-family:courier"&gt;2&lt;/span&gt;.&lt;br /&gt;C. A type mismatch error occurs&lt;br /&gt;&lt;br /&gt;Solution: B - LotusScript tries to parse the string, and adds the two values.&lt;br /&gt;&lt;br /&gt;This also works with strings like &lt;span style="font-family:courier"&gt;"1.1"&lt;/span&gt; or &lt;span style="font-family:courier"&gt;"1,1"&lt;/span&gt;. In my Notes environment "," is the decimal seperator, so &lt;span style="font-family:courier"&gt;"1,1" + 1&lt;/span&gt; results in &lt;span style="font-family:courier"&gt;2,1&lt;/span&gt; and &lt;span style="font-family:courier"&gt;"1.1" + 1&lt;/span&gt; results in... &lt;span style="font-family:courier"&gt;12&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The code does not work, however, with "&lt;span style="font-family:courier"&gt;1a" + 1&lt;/span&gt;, even though &lt;span style="font-family:courier"&gt;val("1a")&lt;/span&gt; returns &lt;span style="font-family:courier"&gt;1&lt;/span&gt;. LotusScript seems to parse the string differently here - mh...&lt;br /&gt;&lt;br /&gt;Still... please do NOT use this - this is evil coding ;-)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-7080447824485481145?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/7080447824485481145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/03/lotusscript-quiz-operator.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/7080447824485481145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/7080447824485481145'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/03/lotusscript-quiz-operator.html' title='LotusScript Quiz: the &quot;+&quot; operator'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-1962431463877458432</id><published>2010-02-24T09:56:00.003+01:00</published><updated>2010-02-25T09:46:21.879+01:00</updated><title type='text'>Build Smarter, Richer Notes/Domino Applications with Adobe Flex</title><content type='html'>&lt;a href="http://www.thbaumi.de" target="_blank"&gt;Thomas Baumgartner&lt;/a&gt; and I wrote an article for the View about building smarter, richer Notes/Domino Applications with Adobe Flex, which just got published last Friday. &lt;br /&gt;&lt;br /&gt;The article can be viewed here: &lt;a href="http://www.eview.com/eview/VOLR6.nsf/CurrentIssue/030E73C0F786975C852576CF004329AE?OpenDocument" target="_blank"&gt;Domino/Flex integration&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this article, we lead the reader through the first steps of building a Flex application, then connecting the Flex app with a Domino database and charting the Domino data with just a few lines of code added. In the last example, we show how Flex applications can be integrated directly into a Notes form, bringing RIA charts and dashboards right into your Notes environment.&lt;br /&gt;&lt;br /&gt;Check out our &lt;a href="http://domino.pentos.com/live/flexdomino/flexdomino.nsf" target="_blank"&gt;example page for the Domino/Flex article&lt;/a&gt;, if you want to see what we help the reader build in the article.&lt;br /&gt;&lt;br /&gt;This article is the first of a series of three, so stay tuned! :-)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-1962431463877458432?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/1962431463877458432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/02/build-smarter-richer-notesdomino.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/1962431463877458432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/1962431463877458432'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/02/build-smarter-richer-notesdomino.html' title='Build Smarter, Richer Notes/Domino Applications with Adobe Flex'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-7347030380551518753</id><published>2010-02-07T14:15:00.001+01:00</published><updated>2010-02-07T14:15:11.422+01:00</updated><title type='text'>Winter Wonderland</title><content type='html'>Enjoying a wonderful day with my son at the "ski kindergarten" in Lenggries.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href='http://www.flickr.com/photos/35372087@N02/4336814459/'&gt;&lt;img src='http://farm3.static.flickr.com/2762/4336814459_b7ef2d8cda_m.jpg' border='0' width='281' height='210' style='margin:5px'&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class='blogpress_location'&gt;Position:&lt;a href='http://maps.google.com/maps?q=Lenggries,Deutschland%4047.663647%2C11.566421&amp;z=10'&gt;Lenggries,Deutschland&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-7347030380551518753?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/7347030380551518753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/02/winter-wonderland.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/7347030380551518753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/7347030380551518753'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/02/winter-wonderland.html' title='Winter Wonderland'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-8435209842340921869</id><published>2010-02-04T18:57:00.001+01:00</published><updated>2010-02-04T19:00:23.794+01:00</updated><title type='text'>Tech 2 Wear</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://3.bp.blogspot.com/_w66LeCW5e1o/S2sKVlQHn5I/AAAAAAAABEs/dST8HhFn8yk/s1600-h/Foto-798032.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_w66LeCW5e1o/S2sKVlQHn5I/AAAAAAAABEs/dST8HhFn8yk/s320/Foto-798032.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5434448741245886354" /&gt;&lt;/a&gt;&lt;/p&gt;How cool *g* :) just saw someone carrying this obviously selfmade briefcase - the grip is an old receiver from the times when the post office offered exactly one type of phone in three weird colors, and the round thing in the picture is the corresponding rotary dial... How neat can ugly be? ;)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-8435209842340921869?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/8435209842340921869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/02/tech-2-wear.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/8435209842340921869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/8435209842340921869'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/02/tech-2-wear.html' title='Tech 2 Wear'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_w66LeCW5e1o/S2sKVlQHn5I/AAAAAAAABEs/dST8HhFn8yk/s72-c/Foto-798032.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-6698358781483055789</id><published>2010-02-03T12:50:00.006+01:00</published><updated>2010-02-03T13:09:29.212+01:00</updated><title type='text'>Adobe Flex - helpful development resources</title><content type='html'>Here's a list of links that are a great starting point if you want to learn Flex, and some like the style and component explorer still help me a lot during the development process. Just shared them via email and thought I might just share them here, too - sharing is good, right?&lt;br /&gt;&lt;br /&gt;Originally, these links were put together by &lt;a href="http://www.schaumibaumi.de/" target="_blank"&gt;Thomas Baumgartner&lt;/a&gt; -&gt; Thank you, Thomas :-)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://flex.org/" target="_blank"&gt;Flex.org&lt;/a&gt;&lt;br /&gt;Flex.org - a perfect starting point with tons of information on Flex&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.adobe.com/devnet/flex/tourdeflex/" target="_blank"&gt;Tour de Flex&lt;/a&gt;&lt;br /&gt;Provides an AIR application that lets you explore the Flex capabilities&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.adobe.com/devnet/flex/videotraining/?trackingid=DMDRX" target="_blank"&gt;Flex in a week&lt;/a&gt;&lt;br /&gt;Flex in a week - Video tutorials&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html" target="_blank"&gt;Style explorer&lt;/a&gt;&lt;br /&gt;Style Explorer - Tool to explore the style settings of the Flex components; lets you set styles via wysiwyg and displays the CSS&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://examples.adobe.com/flex3/componentexplorer/explorer.html" target="_blank"&gt;Component explorer&lt;/a&gt;&lt;br /&gt;Component Explorer - helps explore the different Flex components&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://livedocs.adobe.com/flex/3/html/index.html" target="_blank"&gt;Adobe Flex3 Help&lt;/a&gt;&lt;br /&gt;Adobe Flex3 Help - tutorial&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://livedocs.adobe.com/flex/3/langref/" target="_blank"&gt;Language Reference&lt;/a&gt;&lt;br /&gt;Language Reference&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.adobe.com/devnet/flex/community_samples.html" target="_blank"&gt;Flex Developer Center&lt;/a&gt;&lt;br /&gt;Flex Developer Center - Example applications&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.flexexamples.com/" target="_blank"&gt;Flex Examples&lt;/a&gt;&lt;br /&gt;Blog Flex Examples&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm" target="_blank"&gt;Cairngorm&lt;/a&gt;&lt;br /&gt;Website for Cairngorm (Framework for Flex)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://software.pxldesigns.com/attest/downloads" target="_blank"&gt;Attest&lt;/a&gt;&lt;br /&gt;Test-Preparation-Software based on AIR for the Adobe Flex Certification&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Have more links? Post them as a comment :-)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-6698358781483055789?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/6698358781483055789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/02/adobe-flex-helpful-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6698358781483055789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6698358781483055789'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/02/adobe-flex-helpful-development.html' title='Adobe Flex - helpful development resources'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-220029725475298097</id><published>2010-02-02T15:12:00.002+01:00</published><updated>2010-02-02T15:33:09.901+01:00</updated><title type='text'>Import Lotusphere presentations into session database</title><content type='html'>Have you downloaded the Lotusphere 2010 presentation files already and are you now switching between LS agenda and your file folder to find out what session id belongs to what session? &lt;br /&gt;Wouldn't it be nice to be able to browse through the sessions by day, speaker etc. and view the short descriptions together with the presentation files?&lt;br /&gt;&lt;br /&gt;Here is how you can do this:&lt;br /&gt;&lt;br /&gt;The guys at Genii Software offer their LS2010_SessionsDB for download with all the meta information for the Lotusphere 2010 sessions. Great job!! Download the &lt;a href="javascript:l('http://www.geniisoft.com/showcase.nsf/LS2010_SessionsDB')"&gt;LS2010_SessionsDB here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Then use the Lotusscript code below to populate this database with your presentations - and voilà, you have all the information together.&lt;br /&gt;&lt;br /&gt;Make sure you adjust the constants in the top section of the code to your own environment; if you have any questions, leave me a note. All presentations have to be in the same folder. I did not try it with a different OS then Windows, so I don't know if the code works for UNIX/Linux/Mac. Could though ;-) The agent writes a CSV file with the upload logs and you can choose if you want to upload only the colored, the black/white or all presentations. Have fun!&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;Sub Initialize&lt;br /&gt; &lt;br /&gt; On Error Goto errorhandler&lt;br /&gt; &lt;br /&gt; Const FILEPATH_RESOURCES = "C:\ls10_sessions\" ' file path of all presentations (including terminating slash)&lt;br /&gt; Const SERVER_LS_DB = "" ' server of session database&lt;br /&gt; Const FILEPATH_LS_DB = "ls10/LSess10.nsf" ' file path of session database (relative path)&lt;br /&gt; Const FILEPATH_LOG = "C:\ls10.csv" ' file path of log; will be created / overwritten if it exists&lt;br /&gt; Const UPLOAD_MODE = "color" ' options are: "color", "bw", "all"  (uploading colored presentations only, black/white presentations or all)&lt;br /&gt; &lt;br /&gt; ' check constant upload_mode&lt;br /&gt; Select Case UPLOAD_MODE&lt;br /&gt; Case "color", "bw", "all"&lt;br /&gt; Case Else&lt;br /&gt;  Msgbox "Invalid option for constant UPLOAD_MODE: " &amp; UPLOAD_MODE &amp; "." &amp; Chr$(13) &amp; " Only 'color', 'bw' or 'all' allowed."&lt;br /&gt;  Goto e  &lt;br /&gt; End Select&lt;br /&gt; &lt;br /&gt; ' get session database &amp; view&lt;br /&gt; Dim dbLS As New NotesDatabase(SERVER_LS_DB, FILEPATH_LS_DB)&lt;br /&gt; If Not dbLS.IsOpen Then&lt;br /&gt;  Msgbox "Unable to open database " &amp; SERVER_LS_DB &amp; "!" &amp; FILEPATH_LS_DB&lt;br /&gt;  Goto e&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; Dim vBySessionID As NotesView&lt;br /&gt; Set vBySessionID = dbLS.GetView("BySessionID")&lt;br /&gt; &lt;br /&gt; If vBySessionID Is Nothing Then&lt;br /&gt;  Msgbox "View BySessionID not found in database " &amp; SERVER_LS_DB &amp; "!" &amp; FILEPATH_LS_DB&lt;br /&gt;  Goto e&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; Open FILEPATH_LOG For Output As #1&lt;br /&gt; Print #1, "SESSIONID;FILENAME;UNID;LOGSHORT;LOG"&lt;br /&gt; &lt;br /&gt; Dim filename As String&lt;br /&gt; filename = Dir$(FILEPATH_RESOURCES, 0)&lt;br /&gt; &lt;br /&gt; Dim docSession As NotesDocument&lt;br /&gt; Dim sessionID As String&lt;br /&gt; Dim embObj As NotesEmbeddedObject&lt;br /&gt; Dim varBody As Variant&lt;br /&gt; Dim isSkip As Boolean&lt;br /&gt; &lt;br /&gt; Do While filename &lt;&gt; ""&lt;br /&gt;  Print filename&lt;br /&gt;  &lt;br /&gt;  sessionID = Trim(Strtoken(filename, ".", 1))&lt;br /&gt;  &lt;br /&gt;  ' check upload mode - process file?&lt;br /&gt;  isSkip = False&lt;br /&gt;  Select Case UPLOAD_MODE&lt;br /&gt;  Case "color"&lt;br /&gt;   If Lcase(Right$(sessionID, "2")) = "bw" Then&lt;br /&gt;    isSkip = True&lt;br /&gt;   End If&lt;br /&gt;  Case "bw"&lt;br /&gt;   If Lcase(Right$(sessionID, "2")) &lt;&gt; "bw" Then&lt;br /&gt;    isSkip = True&lt;br /&gt;   End If   &lt;br /&gt;  End Select&lt;br /&gt;  &lt;br /&gt;  If Not isSkip Then&lt;br /&gt;   &lt;br /&gt;   ' get session ID and session&lt;br /&gt;   If Lcase(Right$(sessionID, "2")) = "bw" Then&lt;br /&gt;    sessionID = Left$(sessionID, Len(sessionID) - 2)&lt;br /&gt;   End If&lt;br /&gt;   Set docSession = vBySessionID.GetDocumentByKey(sessionID, True)&lt;br /&gt;   &lt;br /&gt;   If docSession Is Nothing Then&lt;br /&gt;    Print #1, sessionID &amp; ";" &amp; filename &amp; ";;NO MATCH;No match found for session ID " &amp; sessionID&lt;br /&gt;   Else&lt;br /&gt;    &lt;br /&gt;    ' check if old attachment exists with same name; do not upload again&lt;br /&gt;    Set embObj = docSession.GetAttachment(filename)&lt;br /&gt;    If Not embObj Is Nothing Then&lt;br /&gt;     Print #1, sessionID &amp; ";" &amp; filename &amp; ";" &amp; docSession.UniversalID &amp; ";FILE EXISTS;Session ID " &amp; sessionID &amp; " already contains a file named " &amp; filename &amp; ". Skipped"&lt;br /&gt;    Else&lt;br /&gt;     &lt;br /&gt;     ' check if Body RT item exists / if not, create if possible&lt;br /&gt;     Set varBody = docSession.GetFirstItem("Body")&lt;br /&gt;     If varBody Is Nothing Then&lt;br /&gt;      Set varBody = New NotesRichTextItem(docSession, "Body")&lt;br /&gt;     Elseif varBody.Type &lt;&gt; 1 Then&lt;br /&gt;      If varBody.Text = "" Then&lt;br /&gt;       Call varBody.Remove()&lt;br /&gt;       Set varBody = New NotesRichTextItem(docSession, "Body")&lt;br /&gt;      Else&lt;br /&gt;       Print #1, sessionID &amp; ";" &amp; filename &amp; ";" &amp; docSession.UniversalID &amp; ";UNABLE TO UPLOAD;Session ID " &amp; sessionID &amp; " contains a Body item that is not a NotesRichTextItem and that contains text. Skipped."&lt;br /&gt;      End If&lt;br /&gt;     End If&lt;br /&gt;     &lt;br /&gt;     ' upload file&lt;br /&gt;     If Not varBody Is Nothing Then&lt;br /&gt;      Call varBody.EmbedObject(EMBED_ATTACHMENT, "", FILEPATH_RESOURCES &amp; filename)&lt;br /&gt;      Call docSession.Save(True, False, False)&lt;br /&gt;      Print #1, sessionID &amp; ";" &amp; filename &amp; ";" &amp; docSession.UniversalID &amp; ";UPLOADED;Session ID " &amp; sessionID &amp; ": attached file " &amp; filename &amp; " (" &amp; FILEPATH_RESOURCES &amp; "/" &amp; filename &amp; ")"&lt;br /&gt;     End If&lt;br /&gt;     &lt;br /&gt;    End If&lt;br /&gt;   End If&lt;br /&gt;  End If&lt;br /&gt;  &lt;br /&gt;  filename = Dir$()&lt;br /&gt; Loop&lt;br /&gt; &lt;br /&gt;e:&lt;br /&gt; Close&lt;br /&gt; Exit Sub&lt;br /&gt;errorhandler:&lt;br /&gt; Msgbox "Error " &amp; Error &amp; " in line " &amp; Erl&lt;br /&gt; Resume e&lt;br /&gt;End Sub&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-220029725475298097?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/220029725475298097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/02/import-lotusphere-presentations-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/220029725475298097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/220029725475298097'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/02/import-lotusphere-presentations-into.html' title='Import Lotusphere presentations into session database'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-6777709114953178786</id><published>2010-01-18T21:15:00.002+01:00</published><updated>2010-01-18T22:25:55.629+01:00</updated><title type='text'>Lotusphere 2010 Monday</title><content type='html'>It's been a pretty long time since my last blog post - I guess Lotusphere is just the right time to start again. So what's happening in Disney World? Weather is great, 70F, it's awesome to be here and see everyone again. Hey, where was everyone at JellyRoles yesterday night? :-)&lt;br /&gt;&lt;br /&gt;Today's big event was of course the Opening General Session of Lotusphere 2010. The guest speaker William Shatner was just pure brilliant - and everyone in the room very excited... geeks... ;-)&lt;br /&gt;&lt;br /&gt;What Bob Picciano and Alistair Rennie announced afterwards was partly interesting, partly exciting, but not (yet) the *bang* that would be expected for the Opening General Session. The announcements included news about:&lt;br /&gt;&lt;br /&gt;- an improved Quickr that got more integrated with Notes&lt;br /&gt;- &lt;b&gt;Notes Traveler Companion now being available in the App Store&lt;/b&gt;&lt;br /&gt;- 18.700 and some new customers since Notes 8&lt;br /&gt;- Connections gone mobile&lt;br /&gt;- the improved vertical approach to the market&lt;br /&gt;- LotusLive having more than 18 Mio Users&lt;br /&gt;- Lotus Connections becoming part of LotusLive in Q3&lt;br /&gt;- LotusLive Notes being planned for spring&lt;br /&gt;- Lotus Live Labs for partners being planned for Q2&lt;br /&gt;&lt;br /&gt;And then, nearly towards the end, it came - the big bang: &lt;b&gt;Project Vulcan&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Ron Sebastian and Suzanne Minassian showed us what we can expect: a whole new "application", built on loosly coupled systems, that seems to have Notes as its center point, with LotusLive'ish applications integrated, reminding of Google Wave, but seeming to be - at least in the vision - already ahead. At this point it looks great, and I must admit my first thought was "I want to work with that". I am pretty excited about this move and most people here at Lotusphere seem to share this feeling.&lt;br /&gt;&lt;br /&gt;Ed Brill writes: "... that leap is going to leave everyone else in the dust" - &lt;a href="javascript:l('http://www.edbrill.com/ebrill/edbrill.nsf/dx/lotusphere-2010-ibm-project-vulcan?opendocument&amp;comments');"&gt;read more about Project Vulcan in his blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-6777709114953178786?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/6777709114953178786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2010/01/lotusphere-2010-monday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6777709114953178786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6777709114953178786'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2010/01/lotusphere-2010-monday.html' title='Lotusphere 2010 Monday'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-6426273258925462325</id><published>2009-05-13T14:11:00.003+02:00</published><updated>2009-05-13T14:19:00.907+02:00</updated><title type='text'>"Test Driving" - How do you test traffic information systems?</title><content type='html'>&lt;p&gt;&lt;a href="http://marcus.foerster.com/blog/uploaded_images/photo-716254-716284.jpg"&gt;&lt;img src="http://marcus.foerster.com/blog/uploaded_images/photo-716254-716280.jpg"  border="0" alt="" /&gt;&lt;/a&gt; &lt;a href="http://marcus.foerster.com/blog/uploaded_images/test-798110.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 201px; height: 120px;" src="http://marcus.foerster.com/blog/uploaded_images/test-798108.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;As seen yesterday morning on one of the main streets in Albuquerque, NM :)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-6426273258925462325?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/6426273258925462325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/05/test-driving-how-do-you-test-traffic.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6426273258925462325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6426273258925462325'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/05/test-driving-how-do-you-test-traffic.html' title='&quot;Test Driving&quot; - How do you test traffic information systems?'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-3516486129534754158</id><published>2009-05-09T06:36:00.004+02:00</published><updated>2009-05-09T07:19:17.634+02:00</updated><title type='text'>Uno, Symphony, and weird things happening</title><content type='html'>I totally like the idea of Symphony, being integrated in Notes, being free and all... I was excited to try out Uno and write my own Symphony exports in LotusScript - until I had to deal with some really weird effects, that costed me hours of researching (to give it some credit, there's not too much information out yet). At the end, I landed up deinstalling Symphony and installing OpenOffice (don't worry, just for this project ;-)). And, without *any* changes in the code, everything worked. Mh..&lt;br /&gt;&lt;br /&gt;Here is an example (see code at the end of this post). If you want to try it yourself, just place a starWriter (odt)-file in c:/tmp/myfile.odt, that has the text &amp;lt;name&amp;gt; in it (with brackets). &lt;br /&gt;&lt;br /&gt;What the code does, or is supposed to do, is open the odt, then search for the tag &amp;lt;name&amp;gt; and replace the text.&lt;br /&gt;&lt;br /&gt;Works perfectly in OpenOffice; in Symphony, the document is opend and nothing else happens ..unless we put a "sleep" before "objDocument.replaceAll" (see commented code below) making the code wait a little (!); then, Symphony replaces the tag. Seems that Symphony is so fast, that it is too fast for itself ;-)&lt;br /&gt;&lt;br /&gt;After a little research, I found out, that it might have something to with the frames. In the code below, I open the odt file in "_default". Opening it in "_blank" does everything it should. Another Mh..&lt;br /&gt;&lt;br /&gt;Now, I don't know where the mistake is... maybe I'm just not understanding the differences between OpenOffice and Symphony. But already opening a file that I detached from a richtext item before, led to problems ("is already in use by another application"); something I have done a thousand times in MS Office. I will definitly keep playing with Symphony and Uno, but, let's say, right now I'm not *as* enthusiastic anymore as I was before. Hope that will change again.&lt;br /&gt;&lt;br /&gt;If you are looking for a cool step-by-step introduction into Uno, here's everything you need: &lt;a href="javascript:l('http://www.johndavidhead.com/jhead/johnhead.nsf/archive?openview&amp;title=UNO&amp;type=cat&amp;cat=UNO'"&gt;John Head's blog posts on UNO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here is the LotusScript code:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;%REM&lt;br /&gt; Testing uno: symphony vs. open office&lt;br /&gt; To use this agent, you must have a file c:/tmp/myfile.odt on your hd, that contains the text "&lt;name&gt;"&lt;br /&gt; Agent will try to replace the "&lt;name&gt;" tag&lt;br /&gt;%END REM&lt;br /&gt; &lt;br /&gt; ' initialize service manager and desktop&lt;br /&gt; &lt;br /&gt; Dim objServiceManager As Variant&lt;br /&gt; Set objServiceManager = CreateObject ("com.sun.star.ServiceManager") &lt;br /&gt; &lt;br /&gt; Dim objDesktop As Variant&lt;br /&gt; Set objDesktop = objServiceManager.createInstance ("com.sun.star.frame.Desktop") &lt;br /&gt; &lt;br /&gt; ' open file&lt;br /&gt; &lt;br /&gt; ' not as template&lt;br /&gt; Dim args1 As Variant&lt;br /&gt; Set args1= objServiceManager.Bridge_GetStruct ("com.sun.star.beans.PropertyValue")&lt;br /&gt; args1.Name = "AsTemplate"&lt;br /&gt; args1.Value = False&lt;br /&gt; &lt;br /&gt; ' show us what's happening&lt;br /&gt; Dim args2 As Variant&lt;br /&gt; Set args2= objServiceManager.Bridge_GetStruct ("com.sun.star.beans.PropertyValue")&lt;br /&gt; args2.Name = "Hidden"&lt;br /&gt; args2.Value = False&lt;br /&gt; &lt;br /&gt; Dim args(1) As Variant &lt;br /&gt; Set args(0)=args1&lt;br /&gt; Set args(1) = args2&lt;br /&gt; &lt;br /&gt; Dim sUrl As String&lt;br /&gt; sUrl = "file:///c:/tmp/myfile.odt" ' this is where the file is located&lt;br /&gt; &lt;br /&gt; ' open document in "_default" (with "_blank" it works in both oo and symphony)&lt;br /&gt; Dim objDocument As Variant&lt;br /&gt; Set objDocument = objDesktop.loadComponentFromURL(sUrl, "_default", 0, args)&lt;br /&gt; &lt;br /&gt; ' now try to replace the tag&lt;br /&gt; &lt;br /&gt; Dim vInterface As Variant&lt;br /&gt; Set vInterface = objDocument.createReplaceDescriptor() &lt;br /&gt; vInterface.searchstring = "&amp;lt;name&amp;gt;" ' search for this&lt;br /&gt; vInterface.replacestring = "Marcus Foerster" ' replace it with this&lt;br /&gt; vInterface.searchwords = True&lt;br /&gt; vInterface.searchcasesensitive = False  &lt;br /&gt; &lt;br /&gt; ' in symphony, we need a sleep here now, otherwise it won't replace anything&lt;br /&gt; ' sleep 1&lt;br /&gt; &lt;br /&gt; ' now replace it&lt;br /&gt; Dim vNumbers As Variant&lt;br /&gt; vNumbers = objDocument.replaceAll(vInterface)&lt;br /&gt; &lt;br /&gt;End Sub&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-3516486129534754158?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/3516486129534754158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/05/uno-symphony-and-weird-things-happening.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/3516486129534754158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/3516486129534754158'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/05/uno-symphony-and-weird-things-happening.html' title='Uno, Symphony, and weird things happening'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-4718829446843301229</id><published>2009-05-06T08:39:00.003+02:00</published><updated>2009-05-06T08:45:54.955+02:00</updated><title type='text'>I found the fail whale</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://marcus.foerster.com/blog/uploaded_images/failwhale-737039.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://marcus.foerster.com/blog/uploaded_images/failwhale-737029.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;During our vacation in Budapest, I found the fail whale on a playground of the local zoo. And, yes, from the trees came twittering...&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-4718829446843301229?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/4718829446843301229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/05/i-found-fail-whale.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/4718829446843301229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/4718829446843301229'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/05/i-found-fail-whale.html' title='I found the fail whale'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-5403037879594788098</id><published>2009-04-08T08:43:00.005+02:00</published><updated>2009-04-08T09:14:23.885+02:00</updated><title type='text'>Pitfall on NotesUiDocument vs. NotesDocument field changes - unexpected "Reload"</title><content type='html'>When mixing field changes in a NotesUiDocument and the corresponding NotesDocument, it is very important to make sure that they do not have any side-effects on each other. Could be ugly...&lt;br /&gt;&lt;br /&gt;To see what I mean, try this one:&lt;br /&gt;&lt;br /&gt;Build a simple form with one text field "myField" and a button. The button has the following code in the Click event:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;' get NotesUiDocument&lt;br /&gt;Dim ws As New NotesUIWorkspace&lt;br /&gt;Dim uidoc As NotesUIDocument&lt;br /&gt;Set uidoc = ws.CurrentDocument&lt;br /&gt; &lt;br /&gt;' first check the current content in the field&lt;br /&gt;Msgbox uidoc.FieldGetText("myField")&lt;br /&gt;&lt;br /&gt;' change the field content in the uiDoc and show us, that it was successful&lt;br /&gt;Call uidoc.FieldSetText("myField", "my new content")&lt;br /&gt;Msgbox uidoc.FieldGetText("myField")&lt;br /&gt;&lt;br /&gt;' now change a totally different field (item) in the backend document&lt;br /&gt;Call uidoc.Document.ReplaceItemValue("xy", "1")&lt;br /&gt;&lt;br /&gt;' oops... what happened to my ui changes?&lt;br /&gt;Msgbox uidoc.FieldGetText("myField")&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Now open the form in Notes and fill the field with some content. The button *should* do the following (that is what I would expect):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;Display the current field content in an alert&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Change the field content in the uiDocument and display the new content&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Add a new item "xy" with the value "1" in the backend&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Display an alert with the new content of the ui field (same one as in the last alert)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Well, *this* is what it actually does:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;Display the current field content in an alert&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Change the field content in the uiDocument and display the new content&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Add a new item "xy" with the value "1" in the backend&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;b&gt;Display an alert with the &lt;i&gt;original&lt;/i&gt; content of the ui field (same one as in the last alert)&lt;/b&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The change in the backend seems to make Notes reload the NotesUiDocument; it is not a real reload, because none of the events is triggered; maybe Notes just forgets the changes in the UI, I don't know (does someone? please comment). Whatever it is, the changes in the UI will be lost. -- Mixing UI field changes and backend changes in Notes: not a good idea...&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-5403037879594788098?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/5403037879594788098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/04/pitfall-on-notesuidocument-vs.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/5403037879594788098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/5403037879594788098'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/04/pitfall-on-notesuidocument-vs.html' title='Pitfall on NotesUiDocument vs. NotesDocument field changes - unexpected &quot;Reload&quot;'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-6345082207391092894</id><published>2009-04-07T10:07:00.006+02:00</published><updated>2009-04-07T14:53:06.939+02:00</updated><title type='text'>Conference on Migration and Coexistence of IBM, Microsoft &amp; Google Messaging Systems</title><content type='html'>&lt;a href="http://marcus.foerster.com/blog/uploaded_images/logo_compentos-792260.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 48px;" src="http://marcus.foerster.com/blog/uploaded_images/logo_compentos-792258.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;My company, &lt;a href="javascript:l('http://www.pentos.com')"&gt;Pentos AG&lt;/a&gt;, will hold a great conference in November in Munich, &lt;br /&gt;the "COMpentos 2009 Migration &amp; Coexistence".&lt;br /&gt;&lt;br /&gt;The conference will be all about migration and coexistence between the messaging systems from IBM, Microsoft and Google. There will be best practice (and others) sessions by experts like Kai Gutzeit, Head of Google Enterprise DACH, as well as the "COMpentos WorldCafé", where you can informally interchange about migration experiences.&lt;br /&gt;&lt;br /&gt;Check out the &lt;a href="javascript:l('http://www.compentos.com/index.html')"&gt;conference infopage&lt;/a&gt;, I think it is a great thing. Hope I will see you all in November :-)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-6345082207391092894?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/6345082207391092894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/04/my-company-pentos-ag-will-hold-great.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6345082207391092894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6345082207391092894'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/04/my-company-pentos-ag-will-hold-great.html' title='Conference on Migration and Coexistence of IBM, Microsoft &amp; Google Messaging Systems'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-4600381294953228640</id><published>2009-04-07T04:33:00.004+02:00</published><updated>2009-04-07T05:11:02.550+02:00</updated><title type='text'>Coming home - Yes, I'm a GONAD</title><content type='html'>&lt;a href="http://marcus.foerster.com/blog/uploaded_images/gonadmarcusfoerster-742398.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 139px;" src="http://marcus.foerster.com/blog/uploaded_images/gonadmarcusfoerster-742394.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;GONAD, &lt;a href="javascript:l('http://dominoyesmaybe.blogspot.com/2008/08/chronicles-of-gonad-begining.html')"&gt;Geeky Order of Notes Admins and Developers&lt;/a&gt;, has arrived at one of the most mysterious and sacred places on earth next to Stonehenge and the Easter Islands… Oktoberfest’s hometown Munich. Thank you, Brother Steve, for inducting me into the ancient, esteemed, and respected brother and sisterhood of GONAD. Only an Irishman understands to set up Bavaria as its own branch next to (Northern-)Germany.&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:l('http://dominoyesmaybe.blogspot.com/2008/08/calling-all-notesy-folk-you-are.html')"&gt; What about you? Are you a GONAD? Get entitled today&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The ceremony of induction is planned to take place at this year's Oktoberfest, the Imperial Master and Commander has been invited.&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-4600381294953228640?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/4600381294953228640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/04/coming-home-yes-im-gonad.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/4600381294953228640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/4600381294953228640'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/04/coming-home-yes-im-gonad.html' title='Coming home - Yes, I&apos;m a GONAD'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-6873598736486440966</id><published>2009-04-05T10:22:00.006+02:00</published><updated>2009-04-05T10:39:16.710+02:00</updated><title type='text'>Eeyore: It *was* engineers playing in production environment</title><content type='html'>(Referring to the last blog post: weird blog post entry appearing and disappearing)&lt;br /&gt;&lt;br /&gt;LOL - I knew it:&lt;br /&gt;&lt;br /&gt;Quote from blogger.com's knownissues-blog:&lt;br /&gt;&lt;br /&gt;&gt;&gt;Update: During routine testing, a bug caused a small number of FTP blogs to publish a test post. No systems or accounts were hacked.&lt;&lt;&lt;br /&gt;&lt;a href="javascript:l('http://knownissues.blogspot.com/2009/04/some-blogs-are-seeing-new-post-that.html')"&gt;http://knownissues.blogspot.com/...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ROFL - If your system shows funny things, it is never hackers - just always already suspect your developers having done "testing" in the productive environment... *g*&lt;br /&gt;&lt;br /&gt;Oh wait, I'm a developer myself - em, I didn't say anything ;-)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-6873598736486440966?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/6873598736486440966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/04/eeyore-it-was-engineers-playing-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6873598736486440966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/6873598736486440966'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/04/eeyore-it-was-engineers-playing-in.html' title='Eeyore: It *was* engineers playing in production environment'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-4360331147796631327</id><published>2009-04-04T07:46:00.003+02:00</published><updated>2009-04-05T10:38:14.360+02:00</updated><title type='text'>Is Eeyore cute?</title><content type='html'>Yes he is; what is not so cute though is, that I found this blog entry this morning on my blog - and I hadn't written it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://marcus.foerster.com/blog/uploaded_images/IMG_0002-792332.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 133px; height: 200px;" src="http://marcus.foerster.com/blog/uploaded_images/IMG_0002-792330.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;"eeyore is cute!"&lt;br /&gt;&lt;br /&gt;Thinking my account might have been hacked (thanks for treating it good), I started changing my password; while at it, I searched for that line in Google, and guess what: plenty of entries, all from bloggers that use Googles Blogger.com...&lt;br /&gt;(this site has an example summary: &lt;a href="javascript:l('javascript:http://www.nationalcenter.org/2009/04/eeyore-is-cute.html')"&gt;www.nationalcenter.org/...&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Seems like an engineer had played a little - updating a huge number of member blogs with a post entry. Few minutes after I checked, by the way, the entry was gone, even though it had appeard on different blogs at different times.&lt;br /&gt;&lt;br /&gt;Now how's that, dear blogger.com:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;RSS-Feed doesn't work for several days, huge complaints by bloggers, no response from blogger.com&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Comments where gone for several days, then reappeared (didn't check on troubleshooting forum)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now a big number of blogs get automatically updated - sending out a RSS feed of course, too&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Not pretty reliable; and I'm still there, because I have customized so much that it is hard to switch (customer relationship by customizing - would be a subject for another blog post...).&lt;br /&gt;&lt;br /&gt;Good thing, as there always is one: I now changed my passwords into more secure ones and different ones - something I had been wanting to do, but had never done. Thanks, blogger.com ;-)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-4360331147796631327?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/4360331147796631327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/04/is-eeyore-cute.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/4360331147796631327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/4360331147796631327'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/04/is-eeyore-cute.html' title='Is Eeyore cute?'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-8115371239764087155</id><published>2009-04-03T08:16:00.005+02:00</published><updated>2009-04-03T08:32:28.346+02:00</updated><title type='text'>Dim in LotusScript: Common mistake</title><content type='html'>If you need to dimension two Integer variables i and j, then in some programming languages you can do it this way:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;Dim i, j As Integer&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Don't do this in LotusScript, it won't work (well, it will, but not in a good way). Try the following code snippet yourself to see what Notes does here: &lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;Dim i, j As Integer&lt;br /&gt;Msgbox "Type of i: " &amp; Typename(i) &amp; Chr$(13) &amp; "Type of j: " &amp; Typename(j)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;You will receive: &lt;br /&gt;&lt;a href="http://marcus.foerster.com/blog/uploaded_images/dimempty-776663.jpg"&gt;&lt;img style="margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 131px; height: 134px;" src="http://marcus.foerster.com/blog/uploaded_images/dimempty-776660.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Notes doesn't assign a type to i (notice: NOT a bug, just different interpretation - who said you can't have misunderstandings speaking LotusScript, too ;-)). To do it correctly, you have to dimension the variables the old-fashioned way:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;Dim i As Integer&lt;br /&gt;Dim j As Integer&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;More lines of code, but safer (and actually more readable, too).&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-8115371239764087155?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/8115371239764087155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/04/dim-in-lotusscript-common-mistake.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/8115371239764087155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/8115371239764087155'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/04/dim-in-lotusscript-common-mistake.html' title='Dim in LotusScript: Common mistake'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-2271860959476110615</id><published>2009-04-02T07:40:00.004+02:00</published><updated>2009-04-02T09:15:36.802+02:00</updated><title type='text'>Keep on running...</title><content type='html'>Time's been a little bit short this week, so I'm a few days late in posting this, but I still wanted to share this great moment for me. And at the end, there is even a great lesson to learn ;-)&lt;br /&gt;&lt;br /&gt;We have an apartment that is set up in a way where you can go around in a circle (well, more in a square ;-)). Great for kids and especially my 3-year-old son, who loves running around there every night (if you want to tire out your kids before they go to bed, get an apartment like this). Just for giggles, we started counting one time, how often he would make it and multiplying that with the estimated distance of one round.&lt;br /&gt;&lt;br /&gt;When we did, we realized, that this was quite a distance; more jokingly, we talked with him about races and how much fun they can be, but he right away caught fire and wanted to do this. So we "practiced" playing "race", and it took us about 10 minutes to go 200 ft, examining every single leaf and rock on the way (if you don't have kids and have never done this - do it; did you know, that every rock is unique?)&lt;br /&gt;&lt;br /&gt;Chances wanted it that shortly after this I found a website about a race (that I wanted to take part myself, but couldn't that day), and they had a kids race for kids up to the age of 7, which was 0.6 km.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://marcus.foerster.com/blog/uploaded_images/IMG_0221-769139.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="http://marcus.foerster.com/blog/uploaded_images/IMG_0221-769136.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Still enthusiastic, my son said yes when I asked him if he wanted to take part, and we went there and had him singed up. As expected, the crowds did make him a little shy at first, after all he was by far the youngest, and our start was, mh, what's the opposite of a head start? But then, he remembered that "he was a tiger" ;-) and the tiger ran and ran and, with just one stop for re-adjusting the gloves ;-), we made it the whole way around running.&lt;br /&gt;&lt;br /&gt;I had no idea, that you also get runner's high, when not you but your kid runs :-) He was really happy and proud of himself, and I was, of course, too. We're already looking forward to do the next run, as he told me he wants to do it again.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://marcus.foerster.com/blog/uploaded_images/Strecke-705661.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://marcus.foerster.com/blog/uploaded_images/Strecke-705658.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Oh, I promised a great lesson. One brought to us by an elder concerned (overprotecting, interfering, back-seat driving) lady, who, when my son got at little shy, left a comment like "well he's still to young to do that" (read it with a squeaky voice to get the picture). He LOVED doing it. He's still really proud of himself and playfully accomplishing things like that will help him build up self-assurance for his later life. And thanks to the lady, I was able to also teach my son, that you are never too little or whatever others say, for anything, as long as you believe in you yourself and love doing what you are doing.&lt;br /&gt;&lt;br /&gt;A great lesson for his later life and a great reminder for us in the grown-up world.  With this thought in mind, have a wonderful day today, and.. go get 'em, tiger ;-)&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-2271860959476110615?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/2271860959476110615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/04/keep-on-running.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/2271860959476110615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/2271860959476110615'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/04/keep-on-running.html' title='Keep on running...'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-5664528194240262648</id><published>2009-03-27T09:50:00.005+01:00</published><updated>2009-03-27T13:39:53.197+01:00</updated><title type='text'>Why cells sometimes cannot be merged in Notes Designer</title><content type='html'>Have you ever been wondering, why sometimes you cannot merge cells in Notes Designer? Two cells are selected, you want to merge them, but the menu item is grayed out?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://marcus.foerster.com/blog/uploaded_images/mergecells_grey-773592.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 198px; height: 320px;" src="http://marcus.foerster.com/blog/uploaded_images/mergecells_grey-773591.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If this happens, you probably have set the properties of at least one of the cells to "Fixed width". Just uncheck the option in both cells, and you will be able to merge the cells.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://marcus.foerster.com/blog/uploaded_images/fixedwidth-796363.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 235px;" src="http://marcus.foerster.com/blog/uploaded_images/fixedwidth-796356.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ten years of Notes experience, and a colleague had to tell me that today... doh...&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-5664528194240262648?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/5664528194240262648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/03/why-sometimes-cells-cannot-be-merged-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/5664528194240262648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/5664528194240262648'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/03/why-sometimes-cells-cannot-be-merged-in.html' title='Why cells sometimes cannot be merged in Notes Designer'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8884439162015282125.post-2821218908591506039</id><published>2009-03-26T09:16:00.002+01:00</published><updated>2009-03-26T09:19:10.050+01:00</updated><title type='text'>About NotesViews, Reader Fields and Performance</title><content type='html'>Here's a great article that explains the effects of reader fields on NotesViews, and, when not used right, how performance can go low or even crash your server.&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:l('http://www.bleedyellow.com/blogs/erik/entry/the_future_of_nsf_part_310')"&gt;Article on NotesViews, by Erik Brooks&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;[ &lt;a href="http://marcus.foerster.com/blog?mfaction=addcomment"&gt;Post a comment&lt;/a&gt; ]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8884439162015282125-2821218908591506039?l=marcus.foerster.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/2821218908591506039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://marcus.foerster.com/blog/2009/03/about-notesviews-reader-fields-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/2821218908591506039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8884439162015282125/posts/default/2821218908591506039'/><link rel='alternate' type='text/html' href='http://marcus.foerster.com/blog/2009/03/about-notesviews-reader-fields-and.html' title='About NotesViews, Reader Fields and Performance'/><author><name>marcusfoerster</name><uri>http://www.blogger.com/profile/13554262393392875850</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13135454117068264130'/></author><thr:total>0</thr:total></entry></feed>