Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://lostinxpages.com/feed/

  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  3. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  4. xmlns:dc="http://purl.org/dc/elements/1.1/"
  5. xmlns:atom="http://www.w3.org/2005/Atom"
  6. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  7. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  8. xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
  9. >
  10.  
  11. <channel>
  12. <title>Lost in XPages, Soon to be Found</title>
  13. <atom:link href="https://lostinxpages.com/feed/" rel="self" type="application/rss+xml" />
  14. <link>https://lostinxpages.com</link>
  15. <description>An exploration of IBM Notes Xpages development</description>
  16. <lastBuildDate>Thu, 27 Jul 2017 22:02:51 +0000</lastBuildDate>
  17. <language>en</language>
  18. <sy:updatePeriod>hourly</sy:updatePeriod>
  19. <sy:updateFrequency>1</sy:updateFrequency>
  20. <generator>http://wordpress.com/</generator>
  21. <cloud domain='lostinxpages.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
  22. <image>
  23. <url>https://s2.wp.com/i/buttonw-com.png</url>
  24. <title>Lost in XPages, Soon to be Found</title>
  25. <link>https://lostinxpages.com</link>
  26. </image>
  27. <atom:link rel="search" type="application/opensearchdescription+xml" href="https://lostinxpages.com/osd.xml" title="Lost in XPages, Soon to be Found" />
  28. <atom:link rel='hub' href='https://lostinxpages.com/?pushpress=hub'/>
  29. <item>
  30. <title>So where can I go for dinner near #MWLUG?</title>
  31. <link>https://lostinxpages.com/2017/07/27/so-where-can-i-go-for-dinner-near-mwlug/</link>
  32. <comments>https://lostinxpages.com/2017/07/27/so-where-can-i-go-for-dinner-near-mwlug/#respond</comments>
  33. <pubDate>Thu, 27 Jul 2017 22:02:38 +0000</pubDate>
  34. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  35. <category><![CDATA[Conferences]]></category>
  36. <category><![CDATA[MWLUG]]></category>
  37.  
  38. <guid isPermaLink="false">http://lostinxpages.com/?p=559</guid>
  39. <description><![CDATA[For MWLUG 2017, we&#8217;re in my lovely city of Alexandria, Virginia, just outside Washington, DC. Some folks will come early, some will stay late, some will choose to dine out while they&#8217;re here. So, I wanted to offer some mild advice to make your search for a good meal easier. Man, I want it to [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=559&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  40. <content:encoded><![CDATA[<p>For MWLUG 2017, we&#8217;re in my lovely city of Alexandria, Virginia, just outside Washington, DC. Some folks will come early, some will stay late, some will choose to dine out while they&#8217;re here. So, I wanted to offer some mild advice to make your search for a good meal easier.</p>
  41. <h4>Man, I want it to be close</h4>
  42. <p>Well, the easiest is right in the hotel. I&#8217;ve heard good things about <a href="https://www.yelp.com/biz/finn-and-porter-restaurant-alexandria">Finn &amp; Porter</a>, but I&#8217;ve not eaten there. I&#8217;m sure everyone will stop in for a drink, so while you consider your options elsewhere, check the menu. Remember to tip your bartenders and waitresses well! The next closest is one I&#8217;ve been to very often. Well, a few times a year. <a href="https://www.yelp.com/biz/clydes-at-mark-center-alexandria-6">Clyde&#8217;s</a> is on the way home from my mother-in-law&#8217;s house, so we have stopped for a drink on the way home occasionally. The food is outstanding. If you like oysters, they always have a good list. There are good wines available and the bartenders mix up some fine cocktails. You can walk to and from Clyde&#8217;s (0.4 miles).</p>
  43. <p><strong>I really wish I hadn&#8217;t left home</strong></p>
  44. <p>Yes, there is a <a href="https://www.yelp.com/biz/tgi-fridays-alexandria-12?osq=Restaurants">TGI Friday&#8217;s</a> and I have heard they do wear the appropriate amount of flair. It&#8217;s a mile, so you could walk.</p>
  45. <h4>Beer, beer and more beer</h4>
  46. <p>I really like <a href="https://www.yelp.com/biz/capitol-city-brewing-company-arlington?osq=Restaurants">Cap City Brewing</a> in Shirlington. Get yourself some pretzels and enjoy a few cold ones. Cap City opened early on in the micro-brew era, so it may not be &#8216;different&#8217; enough if that&#8217;s important to you. On the other hand, longevity does indicate a certain level of quality. Take an Uber over to Shirlington, or wander over after our time at <a href="http://www.newdistrictbrewing.com/">New District Brewing</a>. (Half a mile from New District, 10 minute drive from the hotel to Shirlington).</p>
  47. <h4><strong>I want to open a cheese shop</strong></h4>
  48. <p>Nearby in Shirlington, <a href="https://www.yelp.com/biz/cheesetique-arlington-2?osq=Restaurants">Cheesetique</a> started as a cheese shop that had some wines and snacks. Then, they morphed into a cheese and wine shop where you could have a meal. Now, it is really a good restaurant with amazing cheese and pretty good wine.</p>
  49. <h4>Everything seems to be headed to Shirlington, but I want something different</h4>
  50. <p>If you&#8217;re seeking something other than beer and wine as the draw, Shirlington has many restaurants these days. <a href="https://www.yelp.com/biz/busboys-and-poets-arlington-2">Busboys &amp; Poets</a> will always fill you up with delicious comfort food and also has some literature or might even have a poetry reading. <a href="https://www.yelp.com/biz/carlyle-arlington?osq=Restaurants">Carlyle</a> is an old standby &#8211; a little pricey for me. We&#8217;ve loved eating at every location of <a href="https://www.cafepizzaiolo.com/">Cafe Pizzaiolo</a>, including the one that they had right in our neighborhood for a few years. <a href="https://www.yelp.com/biz/guapos-restaurant-arlington?osq=Restaurants">Guapo&#8217;s</a> is great for Mexican food. There are a bunch of other restaurants, so it&#8217;s a good area to choose &#8212; keeping in mind it is just a half mile from Wednesday night&#8217;s brewery.</p>
  51. <h4>It has to be French, bien sur!</h4>
  52. <p>Two choices if time, distance and money aren&#8217;t real priorities: <a href="https://www.yelp.com/biz/le-diplomate-washington?osq=french">Le Diplomate</a> in DC or <a href="https://www.yelp.com/biz/la-c%C3%B4te-d-or-caf%C3%A9-arlington-3?osq=french">La Cote d&#8217;Or</a> in Falls Church. Great for me, because the wine lists are very good (longer and more expensive downtown, shorter and more reasonable in Fall Church) and the food is unbeatable.</p>
  53. <h4>Other ideas</h4>
  54. <p>You could head to Crystal City or Pentagon Row, which are near the Crystal City and Pentagon Row metro stops. Another good choice is the Clarendon areas in Arlington, which is very walkable once you&#8217;re there. Old Town Alexandria has dozens of restaurants and true nightlife.</p>
  55. <p>Hope these ideas help!</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/559/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/559/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=559&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  56. <wfw:commentRss>https://lostinxpages.com/2017/07/27/so-where-can-i-go-for-dinner-near-mwlug/feed/</wfw:commentRss>
  57. <slash:comments>0</slash:comments>
  58. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  59. <media:title type="html">habap</media:title>
  60. </media:content>
  61. </item>
  62. <item>
  63. <title>Creating a meeting notice in Outlook from the Notes client</title>
  64. <link>https://lostinxpages.com/2017/06/23/creating-a-meeting-notice-in-outlook-from-the-notes-client/</link>
  65. <comments>https://lostinxpages.com/2017/06/23/creating-a-meeting-notice-in-outlook-from-the-notes-client/#respond</comments>
  66. <pubDate>Fri, 23 Jun 2017 17:23:51 +0000</pubDate>
  67. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  68. <category><![CDATA[Old Notes]]></category>
  69. <category><![CDATA[Utilities]]></category>
  70. <category><![CDATA[calendar invite]]></category>
  71. <category><![CDATA[calendaring]]></category>
  72. <category><![CDATA[iCal]]></category>
  73. <category><![CDATA[LotusScript]]></category>
  74. <category><![CDATA[meeting notice]]></category>
  75. <category><![CDATA[Outlook]]></category>
  76.  
  77. <guid isPermaLink="false">http://lostinxpages.com/?p=544</guid>
  78. <description><![CDATA[Another task in our migration to Outlook as the mail client is creating Outlook calendar entries and meeting notices directly from the Notes client. Fortunately, it&#8217;s been two years since I wrote about how to do this in the UI in Notes, so I don&#8217;t feel like that was wasted time. I was exciting to [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=544&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  79. <content:encoded><![CDATA[<p>Another task in our migration to Outlook as the mail client is creating Outlook calendar entries and meeting notices directly from the Notes client. Fortunately, it&#8217;s been two years since I wrote about <a href="https://lostinxpages.com/2015/01/15/creating-a-meeting-in-the-ui-in-ibmnotes/">how to do this in the UI in Notes</a>, so I don&#8217;t feel like that was wasted time. I was exciting to solve the problem and&#8230; oddly enough, solving this one was fun as well. It helped that creating an iCal entry is far simpler than the gyrations we had to go through to create one in Notes. As noted previously, thereĀ  aren&#8217;t a whole lot of required values to generate in order to have an ICS file that you can open in the UI as a meeting notice/calendar invite.</p>
  80. <pre class="brush: jscript; title: ; notranslate">BEGIN:VCALENDAR
  81. BEGIN:VEVENT
  82. DTSTART:20170622T211500
  83. DTEND:20170622T221500
  84. ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=&quot;Required Person/Company&quot;;RSVP=TRUE:mailto:[email protected]
  85. ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:mailto:[email protected]
  86. SUMMARY:2017 Q2 QPR: Agribusiness Competitiveness Enhancement via file
  87. UID:AC1804D765C782CD8525814500073F3720170620T104326
  88. END:VEVENT
  89. END:VCALENDAR</pre>
  90. <p><a href="https://lostinxpages.files.wordpress.com/2017/06/sendupdate.jpg"><img data-attachment-id="545" data-permalink="https://lostinxpages.com/2017/06/23/creating-a-meeting-notice-in-outlook-from-the-notes-client/sendupdate/" data-orig-file="https://lostinxpages.files.wordpress.com/2017/06/sendupdate.jpg?w=690" data-orig-size="292,416" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;David Navarre&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1498053614&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SendUpdate" data-image-description="" data-medium-file="https://lostinxpages.files.wordpress.com/2017/06/sendupdate.jpg?w=690?w=211" data-large-file="https://lostinxpages.files.wordpress.com/2017/06/sendupdate.jpg?w=690?w=292" class="alignright wp-image-545 size-full" src="https://lostinxpages.files.wordpress.com/2017/06/sendupdate.jpg?w=690" alt="" srcset="https://lostinxpages.files.wordpress.com/2017/06/sendupdate.jpg 292w, https://lostinxpages.files.wordpress.com/2017/06/sendupdate.jpg?w=105 105w" sizes="(max-width: 292px) 100vw, 292px"   /></a>Now, keep in mind that this iCal file is a mere fragment. If you sent that file to someone, they get the same behaviour you get &#8212; it thinks they&#8217;re the meeting organizer and doesn&#8217;t save it to their calendar unless they send the &#8216;update&#8217;. The key parameter we leave off is that we don&#8217;t set METHOD, since setting that to PUBLISH or REQUEST proved problematic in the Outlook client. If we leave it off, Outlook will allow us to treat it like a brand new calendar entry we&#8217;ve created, except that the send button will say &#8216;Send Update&#8217;.</p>
  91. <p>So, let&#8217;s review those values in our fragment&#8230;</p>
  92. <h4>Objects</h4>
  93. <p>First, the calendar and event objects are encapsulated. Nothing fancy there.</p>
  94. <pre class="brush: jscript; title: ; notranslate">BEGIN:VCALENDAR
  95. BEGIN:VEVENT
  96. END:VEVENT
  97. END:VCALENDAR</pre>
  98. <h4>Meeting times</h4>
  99. <p>Then we have our start and end times, formatted with date first (YYYYMMDD) then a separator (T) and then the time (HHMMSS). You can include time zone information, but we&#8217;re creating this in Outlook and allowing the UI to finish everything for us. So, if the user wants to change the time zone, they can do that in Outlook.</p>
  100. <pre class="brush: jscript; title: ; notranslate">DTSTART:20170622T211500
  101. DTEND:20170622T221500</pre>
  102. <h4>Attendees</h4>
  103. <p>The one required value for our needs in the attendees is the mailto value. Without that, it won&#8217;t know who to send the invite to and it simply ignores any other item in that list.</p>
  104. <pre class="brush: jscript; title: ; notranslate">ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=&quot;Meeting Chair/Company&quot;;RSVP=TRUE:mailto:[email protected]
  105. ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=&quot;Required Person/Company&quot;;RSVP=TRUE:mailto:[email protected]
  106. ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:mailto:[email protected]</pre>
  107. <p>ROLE is not required and can be CHAIR, REQ-PARTICIPANT (required participant), OPT-PARTICIPANT (optional participant) or even NON-PARTICIPANT (for FYI only).</p>
  108. <p>PARTSTAT is not required. There are several values for an attendee in a VEVENT for their participant status, but we&#8217;re only concerned with two. Either &#8220;NEEDS-ACTION&#8221; for attendees that we don&#8217;t know when we create the meeting notice whether they&#8217;ve agreed to attend or &#8220;ACCEPTED&#8221; which we&#8217;d typically only use for the person creating the meeting notice.</p>
  109. <p>CN is, of course, familiar to us as Notes developers, but it applies here to whatever will be displayed as the attendee name. In my experience, Outlook can parse the abbreviated name and display just the attendee&#8217;s common name. That might be our Outlook configuration, but I would assume it&#8217;s common.</p>
  110. <p>RSVP would be either true or false, indicating whether you want a response from the attendee. In my case, we always want it from the attendees, other than the current user.</p>
  111. <h4>Title and description</h4>
  112. <p>I got fooled by this one. In my sample ICS files, I thought there was just an odd carriage return, but the DESCRIPTION value is basically the body or details of the event, while the SUMMARY is what appears in the subject line for the meeting.</p>
  113. <pre class="brush: jscript; title: ; notranslate">SUMMARY:2017 Q2 QPR: Agribusiness Competitiveness Enhancement via file</pre>
  114. <h4>Meeting ID</h4>
  115. <p>I&#8217;m guessing that Outlook computes the unique meeting ID itself, but in my code, I generate from the Notes document&#8217;s unique ID and then, in order to ensure that subsequent meetings concerning the same document get different IDs, I&#8217;m appending a creation time-stamp.</p>
  116. <pre class="brush: jscript; title: ; notranslate">UID:AC1804D765C782CD8525814500073F3720170620T104326</pre>
  117. <p>So, the agent I wrote that generates the new meeting notice is pretty straight-forward. The <a href="https://lostinxpages.com/2017/06/21/getting-email-addresses-from-the-notes-address-book/">getEmailAddress function</a> was described and detailed in a prior blog post and my Utilities script library only provides the logging functions here. Like <a href="https://lostinxpages.com/2017/06/02/progammatically-opening-a-mailto-link-from-the-notes-client/">my mailto agent</a>, this one relies on the creation of a file in the Notes data directory and opening it using a browser.</p>
  118. <h4>The agent</h4>
  119. <p>First, you can look over the main part of the agent&#8230;</p>
  120. <pre class="brush: jscript; title: ; notranslate">%REM
  121. Agent (Send Calendar Invites)
  122. Created Jun 20, 2017 by David Navarre/DAI
  123. Description: This Agent creates a calendar invite, listing participants and optional participants
  124. %END REM
  125. Option Public
  126. Option Declare
  127. Use &quot;Utilities&quot;
  128.  
  129. Dim session As NotesSession
  130. Sub Initialize
  131. Dim ws As New NotesUIWorkspace
  132. ' Dim thisdb As NotesDatabase declared in Utilities script library '
  133. Dim uidoc As NotesUIDocument
  134. Dim qprdoc As NotesDocument
  135. Dim history As NotesRichTextItem
  136. Dim chairName As NotesName
  137. Dim recipientName As NotesName
  138. Dim projectName As Variant
  139. Dim fiscalYearAndQuarter As Variant
  140. Dim participants As Variant
  141. Dim participantsOptional As Variant
  142. Dim subject As String
  143. Dim answer As Variant
  144. Dim reason As String
  145. Dim unid As String
  146. On Error GoTo errorhandler
  147. set session = New NotesSession
  148. Call StartAgentLogging ( session )
  149.  
  150. If ( openAddressBooks () ) Then
  151. agentLog.Logaction(&quot;Address books opened&quot;)
  152. End If
  153.  
  154. Set thisdb = session.CurrentDatabase
  155. Set uidoc = ws.CurrentDocument
  156.  
  157. reason = &quot;This will create a meeting invite for you to send to participants.&quot;
  158. If uidoc.Editmode Then
  159. reason = reason + Chr$(10) + &quot;The QPR will switch to read-only mode.&quot;
  160. reason = reason + Chr$(10) + &quot;If you close and re-open it, you can edit it again.&quot;
  161. End If
  162. reason = reason + Chr$(10) + &quot;Continue?&quot;
  163. answer = ws.Prompt ( PROMPT_YESNO, &quot;Continue?&quot;, reason )
  164. If answer = 0 Then
  165. Exit Sub
  166. End If
  167. If uidoc.Editmode Then
  168. Call uidoc.Save()
  169. uidoc.Editmode = False
  170. Set qprDoc = uidoc.Document
  171. unid = qprDoc.Universalid
  172. Call uidoc.Close(True)
  173. Set qprDoc = thisdb.Getdocumentbyunid(unid)
  174. Set uidoc = ws.Editdocument(False, qprDoc, True)
  175. Else
  176. Set qprDoc = uidoc.Document
  177. End If
  178. Dim fileName As String
  179. Dim dataDirectoryPath As String
  180. Dim url As String
  181. Dim fileNumber As Integer
  182. fileNumber = 1
  183. dataDirectoryPath = session.Getenvironmentstring(&quot;Directory&quot;, True)
  184. fileName = dataDirectoryPath &amp; &quot;\QPRInvite.ics&quot;
  185. Open fileName For Output As fileNumber
  186. Print # fileNumber, {BEGIN:VCALENDAR}
  187. Print # fileNumber, {BEGIN:VEVENT}
  188. Print # fileNumber, {DTSTART:} &amp; getMeetingTime ( &quot;Start&quot;, qprDoc ) '20170620T211500
  189. Print # fileNumber, {DTEND:}  &amp; getMeetingTime ( &quot;End&quot;, qprDoc ) '20170620T221500
  190.  
  191. ' Chair '
  192. Set chairName = New NotesName ( session.Effectiveusername )
  193. ' when you send the invite from Outlook, it makes you the chair '
  194. ' this line is here to show how you would format an attendee line for the chair '
  195. ' Print # fileNumber, {ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=&quot;} &amp; chairName.Abbreviated &amp; {&quot;;RSVP=TRUE:mailto:} &amp; getEmailAddress ( chairName.Abbreviated ) '
  196. ' Required participants '
  197. participants = qprDoc.Getitemvalue ( &quot;Participants&quot; )
  198. ForAll entry In participants
  199. Set recipientName = New NotesName ( entry )
  200. If Not ( chairName.Abbreviated = recipientName.Abbreviated ) Then
  201. Print # fileNumber, {ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=&quot;} &amp; recipientName.Abbreviated &amp; {&quot;;RSVP=TRUE:mailto:} &amp; getEmailAddress ( recipientName.Abbreviated )
  202. End If
  203. End ForAll
  204. ' Optional participants '
  205. participantsOptional = qprDoc.Getitemvalue ( &quot;ParticipantsOptional&quot; )
  206. ForAll entry In participantsOptional
  207. Set recipientName = New NotesName ( entry )
  208. Print # fileNumber, {ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=&quot;} &amp; recipientName.Abbreviated &amp; {&quot;;RSVP=TRUE:mailto:} &amp; getEmailAddress ( recipientName.Abbreviated )
  209. End ForAll
  210.  
  211. projectName = qprDoc.Getitemvalue(&quot;ProjectName&quot;)
  212. fiscalYearAndQuarter = qprDoc.Getitemvalue(&quot;FiscalYearAndQuarter&quot;)
  213. subject = fiscalYearAndQuarter(0) &amp; &quot; QPR: &quot; &amp; projectName (0)
  214. Print # fileNumber, {DESCRIPTION:} &amp; subject ' this is the body of the message
  215. Print # fileNumber, {SUMMARY:} &amp; subject ' this is the meeting name
  216.  
  217. ' assign a unique ID to meeting using the unid of the document with the current date-time appended '
  218. ' in case user creates multiple meetings for the same QPR '
  219. Print # fileNumber, {UID:} &amp; qprdoc.Universalid &amp; getMeetingTime ( &quot;Now&quot;, qprDoc )
  220.  
  221. Print # fileNumber, {END:VEVENT}
  222. Print # fileNumber, {END:VCALENDAR}
  223. Close # fileNumber
  224. url = &quot;file:///&quot; &amp; fileName
  225. Call ws.Urlopen(url)
  226. Set history = qprDoc.Getfirstitem(&quot;History&quot;)
  227. Call history.Appendtext(Now &amp; &quot; - Meeting notice created by &quot; &amp; session.Commonusername)
  228. Call history.Addnewline(1, True)
  229. Call qprDoc.Replaceitemvalue(&quot;NoticeFlag&quot;, 1)
  230. Call qprDoc.Save(True, False)
  231.  
  232. exiting:
  233. Exit Sub
  234. errorhandler:' report all errors in a messagebox '
  235. reason = &quot;Error #&quot; &amp; CStr (Err) &amp; &quot; (&quot; &amp; Error &amp; &quot;) on line &quot; &amp; CStr (Erl)
  236. MessageBox reason, 16, &quot;Error&quot;
  237. Call agentLog.LogAction ( reason )
  238. Resume exiting ' transfers control to the exiting label
  239. End Sub</pre>
  240. <h4>getMeetingTime</h4>
  241. <p>The getMeetingTime function just returns the requested date-time in the format YYYYMMDDTHHMMSS, so it can be included in the creation of the ICS file.</p>
  242. <pre class="brush: jscript; title: ; notranslate">%REM
  243. Function getMeetingTime
  244. Description: This Function returns a string in the format YYYYMMDDTHHMMSS
  245. If it is the start time, the values from the source document are used -- 20170622T211500
  246. If it is the end time, it is adjusted one hour later -- 20170622T221500
  247. If it is the &quot;Now&quot; time, it returns a string for the current date and time -- 20170620T094326
  248. %END REM
  249. Function getMeetingTime ( startOrEnd As String, qprDoc As NotesDocument ) As String
  250. Dim thisNotesDateTime As NotesDateTime
  251. Dim qprDate As Variant
  252. Dim qprTime As Variant
  253. Dim timeString, dateString As Variant
  254. Dim reason As String
  255.  
  256. On Error Goto errorhandler
  257.  
  258. Set qprDate = qprDoc.Getfirstitem(&quot;QPRDate&quot;)
  259. Set qprTime = qprDoc.Getfirstitem(&quot;QPRTime&quot;)
  260. dateString = qprDate.Text
  261. timeString = qprTime.Text
  262. Set thisNotesDateTime = New NotesDateTime ( dateString &amp; &quot; &quot; &amp; timeString )
  263. Select Case startOrEnd
  264. Case &quot;End&quot;
  265. Call thisNotesDateTime.AdjustHour (1)
  266. Case &quot;Now&quot;
  267. Set thisNotesDateTime = New NotesDateTime ( Now )
  268. Case else
  269. ' keep thisNotesDateTime as set on the source document '
  270. End Select
  271. dateString = thisNotesDateTime.DateOnly
  272. timeString = thisNotesDateTime.TimeOnly
  273. getMeetingTime = CStr ( Year ( dateString ) )
  274. getMeetingTime = getMeetingTime &amp; Right$ ( &quot;0&quot; &amp; CStr ( Month ( dateString ) ), 2 )
  275. getMeetingTime = getMeetingTime &amp; Right$ ( &quot;0&quot; &amp; CStr ( Day ( dateString ) ), 2 )
  276. getMeetingTime = getMeetingTime &amp; &quot;T&quot;
  277. getMeetingTime = getMeetingTime &amp; Right$ ( &quot;0&quot; &amp; CStr ( Hour ( timeString ) ), 2 )
  278. getMeetingTime = getMeetingTime &amp; Right$ ( &quot;0&quot; &amp; CStr ( Minute ( timeString ) ), 2 )
  279. getMeetingTime = getMeetingTime &amp; Right$ ( &quot;0&quot; &amp; CStr ( Second ( timeString ) ), 2 )
  280.  
  281. exiting:
  282. Call agentLog.LogAction ( &quot;-------&quot; )
  283. Call agentLog.LogAction ( &quot;-------&quot; )
  284. Exit Function
  285. errorhandler:' report all errors in a messagebox '
  286. reason = &quot;Function getMeetingTime: &quot;
  287. reason = reason &amp; &quot;Error #&quot; &amp; Cstr (Err) &amp; &quot; (&quot; &amp; Error &amp; &quot;) on line &quot; &amp; Cstr (Erl)
  288. Messagebox reason, 16, &quot;Error&quot;
  289. Call agentLog.LogAction ( reason )
  290. Resume exiting
  291. End Function</pre>
  292. <p>While this did take me a few days to sort out, I&#8217;m pretty happy with the result. Our configuration has users sharing one &#8220;migration&#8221; mail file, so that users who are already on Outlook still retain a mail file and can send email. Unfortunately, that means any email from them that we create in the UI is going to have values pointing back to the &#8220;migration&#8221; mail file. I spent my first few days on this trying to spoof the mail.box by changing Principal, ReplyTo, $InetAddress and Chair when sending via Notes calendaring. While changing Chair did make it appear to come from the current user, it always displayed the email address from the &#8220;migration&#8221; mail file. It might have been getting caught in our spam filter on the way to Outlook, as my test user on Notes was still receiving the notices. Nonetheless, by switching to using Outlook as the UI, it not only took away that problem, but was far simpler and future-proofed my application. As I look at these tools I&#8217;ve created in LotusScript to generate mail messages and calendar entries, I know that it&#8217;s but a short step to doing them in server-side Javascript or maybe in Java.</p>
  293. <p>There is hope for the Notes gurus of old. We just have to keep learning!</p>
  294. <p><a href="https://tools.ietf.org/html/rfc2446">iCal RFC (documentation?)</a></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/544/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/544/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=544&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  295. <wfw:commentRss>https://lostinxpages.com/2017/06/23/creating-a-meeting-notice-in-outlook-from-the-notes-client/feed/</wfw:commentRss>
  296. <slash:comments>0</slash:comments>
  297. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  298. <media:title type="html">habap</media:title>
  299. </media:content>
  300.  
  301. <media:content url="http://lostinxpages.files.wordpress.com/2017/06/sendupdate.jpg" medium="image" />
  302. </item>
  303. <item>
  304. <title>Getting email addresses from the Notes address book</title>
  305. <link>https://lostinxpages.com/2017/06/21/getting-email-addresses-from-the-notes-address-book/</link>
  306. <comments>https://lostinxpages.com/2017/06/21/getting-email-addresses-from-the-notes-address-book/#comments</comments>
  307. <pubDate>Wed, 21 Jun 2017 16:50:40 +0000</pubDate>
  308. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  309. <category><![CDATA[Old Notes]]></category>
  310. <category><![CDATA[Utilities]]></category>
  311. <category><![CDATA[@DBLookup]]></category>
  312. <category><![CDATA[address book]]></category>
  313. <category><![CDATA[Ben Langhinrichs]]></category>
  314. <category><![CDATA[getEmailAddress]]></category>
  315. <category><![CDATA[internet address]]></category>
  316. <category><![CDATA[LotusScript]]></category>
  317. <category><![CDATA[names.nsf]]></category>
  318.  
  319. <guid isPermaLink="false">http://lostinxpages.com/?p=537</guid>
  320. <description><![CDATA[As we work to get our Notes applications functioning smoothly with our Outlook mail, I&#8217;m finding ways to keep the close binding between Notes applications and the user&#8217;s mail. It&#8217;s so much easier to click a button to generate an email associated to a particular Notes document than to copy-paste a document link. We&#8217;ve got [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=537&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  321. <content:encoded><![CDATA[<p>As we work to get our Notes applications functioning smoothly with our Outlook mail, I&#8217;m finding ways to keep the close binding between Notes applications and the user&#8217;s mail. It&#8217;s so much easier to click a button to generate an email associated to a particular Notes document than to copy-paste a document link.</p>
  322. <p>We&#8217;ve got a Notes form for the Quarterly Project Report. Each quarter, various key members on the project are supposed to have a call to review the project. The form itself is ponderous, having something like 700 fields, but (using hide-whens) can be distilled down to a manageable number for the meeting&#8217;s agenda. The Notes names of the expected participants are computed from other documents within the database, though the fields are editable. In switching from <a href="https://lostinxpages.com/2015/01/15/creating-a-meeting-in-the-ui-in-ibmnotes/">using Notes mail to generate the meeting notice</a> to Outlook, I ended up switching to using <a href="http://www.kanzaki.com/docs/ical/">iCal</a>.</p>
  323. <p>It turns out that <strong>iCal is a far simpler way</strong> to initiate the meeting notice in the UI. All I need is something like this in an ICS file to have it open in my Outlook client as a meeting notice for me to send (as an update, but more on that in another post)</p>
  324. <pre class="brush: jscript; title: ; notranslate">BEGIN:VCALENDAR
  325. BEGIN:VEVENT
  326. DTSTART:20170622T211500
  327. DTEND:20170622T221500
  328. ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=&quot;David Navarre/Company&quot;;RSVP=TRUE:mailto:[email protected]
  329. ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=&quot;Another Person/Company&quot;;RSVP=TRUE:mailto:[email protected]
  330. ATTENDEE;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:mailto:[email protected]
  331. DESCRIPTION:
  332. SUMMARY:2017 Q2 QPR: Agribusiness Competitiveness Enhancement via file
  333. UID:AC1804D765C782CD8525814500073F37
  334. END:VEVENT
  335. END:VCALENDAR</pre>
  336. <p>One of the hurdles is that we need to have email addresses as well as names for all of the attendees. If you leave the mailto blank or put the Notes name there, it ignores it. Since our address book is still available in Notes and contains everyone&#8217;s email address, I thought I&#8217;d just google how to do it. Sadly, it wasn&#8217;t out there, so I took a few minutes and modified some script in the help documentation (<a href="https://www.ibm.com/support/knowledgecenter/de/SSVRGU_8.5.3/com.ibm.designer.domino.main.doc/H_EXAMPLES_ADDRESSBOOKS_PROPERTY.html">Examples: AddressBooks property</a>) to create a function to do the lookup.</p>
  337. <pre class="brush: jscript; title: ; notranslate">%REM
  338. Function getEmailAddress
  339. Description: This Function returns a string that is the email address from the address books
  340.  
  341. IMPORTANT: all address books are stored in the NotesDatabase list, addressBookList, which must be called BEFORE calling the getEmailAddress function
  342.  
  343. %END REM
  344. Function getEmailAddress ( recipientName As String ) As String
  345. Dim view As NotesView
  346. Dim doc As NotesDocument
  347. Dim internetAddress As Variant
  348. Dim found As Boolean
  349. Dim reason As String
  350.  
  351. On Error Goto errorhandler
  352.  
  353. ' if already an internet address, just return that value '
  354. If ( InStr ( recipientName, &quot;@&quot; ) ) Then
  355. getEmailAddress = recipientName
  356. Exit function
  357. End If
  358.  
  359. getEmailAddress = &quot;&quot;
  360. found = False
  361. ForAll addressBook In addressBookList
  362. ' all address books are stored in the NotesDatabase list, addressBookList, which must be called BEFORE calling the getEmailAddress function '
  363. ' check every Domino Directory, until found '
  364. If ( addressBook.IsPublicAddressBook ) And ( Not found ) Then
  365. ' look up name in the VIMPeople view of address book '
  366. Set view = addressBook.GetView( &quot;($VIMPeople)&quot; )
  367. If not ( view Is Nothing ) Then
  368. Set doc = view.GetDocumentByKey( recipientName )
  369. ' if person is found, get their internet addrress and stop '
  370. If Not ( doc Is Nothing ) Then
  371. internetAddress = doc.Getitemvalue(&quot;InternetAddress&quot;)
  372. If ( internetAddress (0) &lt;&gt; &quot;&quot; ) Then
  373. getEmailAddress = internetAddress (0)
  374. found = True
  375. Exit ForAll
  376. End If
  377. End If
  378. End If
  379. End If
  380. End ForAll
  381. ' if found is still False, the person was not found '
  382. If Not found Then
  383. MessageBox ( &quot;Unable to locate &quot; &amp; recipientName &amp; &quot; in the address book, using &quot; &amp; recipientName &amp; &quot; as their email addresss&quot; )
  384. getEmailAddress = recipientName
  385. End If
  386.  
  387. exiting:
  388. Exit Function
  389. errorhandler:' report all errors in a messagebox '
  390. reason = &quot;Function getEmailAddress: &quot;
  391. reason = reason &amp; &quot;Error #&quot; &amp; Cstr (Err) &amp; &quot; (&quot; &amp; Error &amp; &quot;) on line &quot; &amp; Cstr (Erl)
  392. Messagebox reason, 16, &quot;Error&quot;
  393. Resume exiting
  394. End Function</pre>
  395. <p>Hope someone else finds this useful&#8230;.</p>
  396. <h4>Addendum</h4>
  397. <pre>Dim addressBookList List As NotesDatabase</pre>
  398. <p>As Ben pointed out, re-opening every address book every time you want the email address is incredibly inefficient. So, declare a global variable for the address books and use the following function to open them. The code in getEmailAddress now reflects this&#8230;.</p>
  399. <pre class="brush: jscript; title: ; notranslate">%REM
  400. Function openAddressBooks
  401. Description: This Function assigns all address books to a NotesDatabase list and opens them
  402. %END REM
  403. Function openAddressBooks ( ) As Boolean
  404. Dim reason As String
  405.  
  406. On Error Goto errorhandler
  407.  
  408. openAddressBooks = False
  409. ForAll addressBook In session.Addressbooks
  410. ' open every Domino Directory '
  411. If ( addressBook.IsPublicAddressBook ) Then
  412. Set addressBookList (addressBook.FileName) = addressBook
  413. Call addressBookList (addressBook.FileName).Open( &quot;&quot;, &quot;&quot; )
  414. End If
  415. End ForAll
  416. openAddressBooks = True
  417.  
  418. exiting:
  419. Call agentLog.LogAction ( &quot;-------&quot; )
  420. Call agentLog.LogAction ( &quot;-------&quot; )
  421. Exit Function
  422. errorhandler:' report all errors in a messagebox '
  423. reason = &quot;Error #&quot; &amp; Cstr (Err) &amp; &quot; (&quot; &amp; Error &amp; &quot;) on line &quot; &amp; Cstr (Erl)
  424. Messagebox reason, 16, &quot;Error&quot;
  425. Call agentLog.LogAction ( reason )
  426. Resume exiting
  427. End Function</pre><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/537/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/537/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=537&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  428. <wfw:commentRss>https://lostinxpages.com/2017/06/21/getting-email-addresses-from-the-notes-address-book/feed/</wfw:commentRss>
  429. <slash:comments>3</slash:comments>
  430. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  431. <media:title type="html">habap</media:title>
  432. </media:content>
  433. </item>
  434. <item>
  435. <title>Progammatically opening a mailto link from the Notes client</title>
  436. <link>https://lostinxpages.com/2017/06/02/progammatically-opening-a-mailto-link-from-the-notes-client/</link>
  437. <comments>https://lostinxpages.com/2017/06/02/progammatically-opening-a-mailto-link-from-the-notes-client/#comments</comments>
  438. <pubDate>Fri, 02 Jun 2017 21:35:46 +0000</pubDate>
  439. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  440. <category><![CDATA[Client-Side Javascript]]></category>
  441. <category><![CDATA[Old Notes]]></category>
  442. <category><![CDATA[mailto]]></category>
  443. <category><![CDATA[NotesUIWorkspace]]></category>
  444. <category><![CDATA[Outlook]]></category>
  445. <category><![CDATA[URLOpen]]></category>
  446.  
  447. <guid isPermaLink="false">http://lostinxpages.com/?p=475</guid>
  448. <description><![CDATA[Our company has been transitioning from Notes mail to Outlook for a little while. One of the hurdles for me has been getting Notes to send mail when the user no longer has a Notes mail file and also wants to send any editable emails via the Outlook client. Today, I&#8217;d like to have a [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=475&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  449. <content:encoded><![CDATA[<p>Our company has been transitioning from Notes mail to Outlook for a little while. One of the hurdles for me has been getting Notes to send mail when the user no longer has a Notes mail file and also wants to send any editable emails via the Outlook client. Today, I&#8217;d like to have a look at my latest solution to opening those editable emails in the Outlook client.</p>
  450. <p>If you try using @URLOpen or ws.URLOpen, you&#8217;ll find that despite having set the default email to Outlook, Notes insists on opening a Notes document to send the mail. If you put the mailto link into a browser, it opens in the default mail client, Outlook, formatted properly. If you programmatically open a http link, it opens in the default browser. Yet, frustratingly, it won&#8217;t take that same mailto link that works in the browser and open it from LotusScript or a formula. So, we have to cheat.</p>
  451. <h3>mailto syntax</h3>
  452. <p>As a quick review, mailto links are actually very simple.</p>
  453. <p>There are five components to the link, but none are required.</p>
  454. <p><strong>mailto:<em>[email protected] </em></strong>Simply list the recipients email addresses. Outlook seems to prefer that you separate them with semi-colons, though most syntax guides suggest commas.</p>
  455. <p>The other four are passed as parameters in the query string. So, before you use any of them, you have to use a question mark to separate the query string from the URL, then separate each parameter with an ampersand (&amp;).</p>
  456. <p><strong>cc=<em>[email protected] </em></strong>or <strong>bcc=<em>[email protected] </em></strong>You can add carbon-copy folks or blind-copy folks in the same way.</p>
  457. <p><strong>subject=<em>That%20issue </em></strong>The subject line should be encoded so that there are no spaces and any unusual characters pass through to the email rather than disrupt the syntax of the query string.</p>
  458. <p><strong>body=<em>The%20contents%20of%20email</em> </strong>The body is, of course, the most important thing to us and we can simply compute the values to be used. Links back to Notes documents to be opened in the Notes client can even be used, so long as you provide a proper <em>notes://</em> URL.</p>
  459. <h3>Hard coded example</h3>
  460. <p>If we create a HTML document, store it locally and open it programmatically, it will execute any javascript we&#8217;ve got on the page as browsers ought to do. So, we can make it open the mailto link if our page has the following:</p>
  461. <pre class="brush: jscript; title: ; notranslate">&lt;script type=&quot;text/javascript&quot;&gt;
  462. subject = &quot;Change Order for your approval&quot;;
  463. body = &quot;Your approval has been requested for changes made... &quot;;
  464. body = body + &quot;%0A%0A&quot;;
  465. body = body + &quot;Please review these changes and approve, provide comments, or request more time to review within five business days of this notification. Otherwise, the change will be considered approved as per DAI policy.&quot;;
  466. body = body + &quot;%0A%0A&quot;;
  467. body = body + &quot;The pending change approval form and links to draft documents can be found here: &quot;;
  468. body = body + &quot;%0A&quot;;
  469. body = body + &quot;Notes:///852580E9007624A0/0/B82A2F4ABF0D56818525808400601DBE&quot;;
  470. mailtoString = &quot;mailto:[email protected]?subject=&quot; + subject + &quot;&amp;body=&quot; + body;
  471.  
  472. window.open(mailtoString)&lt;/script&gt;</pre>
  473. <h3>Sample code</h3>
  474. <p>So, all we have to do is generate the mailtoString, put it into a new HTML document and open it via NotesUIWorkspace.URLOpen to get our document to open and popup the Outlook client, populated with the correct information.</p>
  475. <pre class="brush: jscript; title: ; notranslate">Sub Click(Source As Button)
  476. Dim ws As New NotesUIWorkspace
  477. Dim session As New NotesSession
  478. Dim thisdb As NotesDatabase
  479. Dim uidoc As NotesUIDocument
  480. Dim approver As Variant
  481. Dim approverNames As String
  482. Dim i As Integer
  483.  
  484. Set thisdb = session.CurrentDatabase
  485. Set uidoc = ws.CurrentDocument
  486. Set doc = uidoc.Document
  487.  
  488. For i = 1 To 6
  489. approver = doc.getItemValue( &quot;Approver&quot;&amp;i )
  490. If i = 1 Then
  491. approverNames = approver (0)
  492. Else
  493. If ( approver (0) &lt;&gt; &quot;&quot; ) Then
  494. approverNames = approverNames &amp; &quot;;&quot; &amp; approver (0)
  495. End If
  496. End If
  497. Next
  498. Dim subject As String
  499. Dim body As String
  500. Dim mailtoString As String
  501. Dim changeOrderNumber As Variant
  502.  
  503. changeOrderNumber = doc.getItemValue (&quot;CONum&quot; )
  504. subject = &quot;Change Order &quot; &amp; changeOrderNumber (0) &amp; &quot; for your approval in &quot; &amp; thisdb.Title
  505. subject = Replace ( subject, &quot; &quot;, &quot;%20&quot; )
  506. body = &quot;Your approval has been requested for changes made using &quot; &amp; changeOrderNumber (0) &amp; &quot; in &quot; &amp; thisdb.Title
  507. body = body &amp; &quot;%0A%0A&quot;
  508. body = body &amp; &quot;Please review these changes and approve, provide comments, or request more time to review within five business days of this notification. Otherwise, the change will be considered approved as per DAI policy.&quot;
  509. body = body &amp; &quot;%0A%0A&quot;
  510. body = body &amp; &quot;The pending change approval form and links to draft documents can be found here: &quot;
  511. body = body &amp; &quot;%0A&quot;
  512. body = body &amp; &quot;Notes:///&quot; &amp; thisdb.ReplicaID &amp; &quot;/0/&quot; &amp; doc.UniversalID
  513. body = Replace ( body, &quot; &quot;, &quot;%20&quot; )
  514.  
  515. mailtoString = &quot;mailto:&quot; &amp; approverNames &amp; &quot;?subject=&quot; &amp; subject &amp; &quot;&amp;body=&quot; &amp; body
  516.  
  517. Dim fileName As String
  518. Dim dataDirectoryPath As String
  519. Dim url As String
  520. Dim fileNumber As Integer
  521.  
  522. fileNumber = 1
  523.  
  524. dataDirectoryPath = session.Getenvironmentstring(&quot;Directory&quot;, True)
  525. fileName = dataDirectoryPath &amp; &quot;\mailto.htm&quot;
  526.  
  527. Open fileName For Output As fileNumber
  528.  
  529. Print # fileNumber, {&lt;script type=&quot;text/javascript&quot;&gt;}
  530. Print # fileNumber, {mailtoString = &quot;} &amp; mailtoString {&quot;}
  531. Print # fileNumber, {window.open(mailtoString)&lt;/script&gt;}
  532.  
  533. Close # fileNumber
  534.  
  535. url = &quot;file:///&quot; &amp; fileName
  536. Call ws.Urlopen(url)
  537.  
  538. End Sub</pre><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/475/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=475&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  539. <wfw:commentRss>https://lostinxpages.com/2017/06/02/progammatically-opening-a-mailto-link-from-the-notes-client/feed/</wfw:commentRss>
  540. <slash:comments>3</slash:comments>
  541. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  542. <media:title type="html">habap</media:title>
  543. </media:content>
  544. </item>
  545. <item>
  546. <title>What good is the internet of things to people who don&#8217;t have internet?</title>
  547. <link>https://lostinxpages.com/2017/02/21/what-good-is-the-internet-of-things-to-people-who-dont-have-internet/</link>
  548. <comments>https://lostinxpages.com/2017/02/21/what-good-is-the-internet-of-things-to-people-who-dont-have-internet/#respond</comments>
  549. <pubDate>Tue, 21 Feb 2017 17:36:30 +0000</pubDate>
  550. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  551. <category><![CDATA[General Interest]]></category>
  552. <category><![CDATA[Cambodia]]></category>
  553. <category><![CDATA[DAI]]></category>
  554. <category><![CDATA[Internet of Things]]></category>
  555. <category><![CDATA[Rob Ryan-Silva]]></category>
  556.  
  557. <guid isPermaLink="false">http://lostinxpages.com/?p=472</guid>
  558. <description><![CDATA[While preparing for a panel discussion this morning, Tami suggested that I check out the blogs by our technology team at DAI. Rob Ryan-Silva wrote an excellent think piece on using the Internet of Things to help people who have no access to the internet. In Cambodia, they relied on human intervention to get out [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=472&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  559. <content:encoded><![CDATA[<p>While preparing for a panel discussion this morning, Tami suggested that I check out the blogs by our technology team at DAI. Rob Ryan-Silva wrote an excellent think piece on using the Internet of Things to help people who have no access to the internet. In Cambodia, they relied on human intervention to get out flood warnings. That&#8217;s not always reliable, but Rob was able to <a href="https://dai-global-digital.com/what-good-is-the-internet-of-things-to-people-who-dont-have-internet.html">use IoT to come up with an automated solution&#8230;.</a></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/472/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=472&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  560. <wfw:commentRss>https://lostinxpages.com/2017/02/21/what-good-is-the-internet-of-things-to-people-who-dont-have-internet/feed/</wfw:commentRss>
  561. <slash:comments>0</slash:comments>
  562. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  563. <media:title type="html">habap</media:title>
  564. </media:content>
  565. </item>
  566. <item>
  567. <title>An apparent theme: application agnosticism</title>
  568. <link>https://lostinxpages.com/2016/08/19/an-apparent-theme-agnosticism/</link>
  569. <comments>https://lostinxpages.com/2016/08/19/an-apparent-theme-agnosticism/#respond</comments>
  570. <pubDate>Fri, 19 Aug 2016 13:55:36 +0000</pubDate>
  571. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  572. <category><![CDATA[Conferences]]></category>
  573. <category><![CDATA[General Interest]]></category>
  574. <category><![CDATA[Xpages]]></category>
  575. <category><![CDATA[MWLUG]]></category>
  576.  
  577. <guid isPermaLink="false">http://lostinxpages.com/?p=466</guid>
  578. <description><![CDATA[As always, I&#8217;m enjoying learning new things and seeing old friends (and some new ones!) at MWLUG. There have been sessions that talked about accessing and displaying data from within Notes without using Notes or XPages and sessions about accessing non-Notes data using XPages. Much of the excitement is about having data exposed via a [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=466&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  579. <content:encoded><![CDATA[<p>As always, I&#8217;m enjoying learning new things and seeing old friends (and some new ones!) at MWLUG. There have been sessions that talked about accessing and displaying data from within Notes without using Notes or XPages and sessions about accessing non-Notes data using XPages. Much of the excitement is about having data exposed via a REST service and using a good front end tool to display it. So, in some senses, we are talking about not needing Notes at all.</p>
  580. <p>Earlier this summer, our company&#8217;s Vice President of the Office of Information Management and Technology announced that we&#8217;re actually moving away from the Notes client for mail. While I knew that this was a possibility, I&#8217;d thought we were still just looking at allowing folks to choose other mail applications to access their mail. Of course, allowing multiple mail applications either tosses some of your users to the wolves of &#8216;no support&#8217; or complicates things immeasurably for support. So, it does make sense and was not particularly unexpected. Nonetheless, it still surprised me.</p>
  581. <p>The core of our Notes use has always applications anyway. Our business relies on a lot of people working disconnected and, as such, the Notes replication model has been key to our need for Notes. So, we&#8217;ll be keeping the Notes client on machines for all those people who work disconnected, but much of our access had already moved to the browser. So, in a sense the work I do was moving in this direction as well.</p>
  582. <p>So, the agnosticism is where we&#8217;re all going, it seems. I guess the mantra remains &#8212; use the best tool for the job.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/466/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=466&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  583. <wfw:commentRss>https://lostinxpages.com/2016/08/19/an-apparent-theme-agnosticism/feed/</wfw:commentRss>
  584. <slash:comments>0</slash:comments>
  585. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  586. <media:title type="html">habap</media:title>
  587. </media:content>
  588. </item>
  589. <item>
  590. <title>Sessions for #MWLUG2016</title>
  591. <link>https://lostinxpages.com/2016/07/01/sessions-for-mwlug2016/</link>
  592. <comments>https://lostinxpages.com/2016/07/01/sessions-for-mwlug2016/#respond</comments>
  593. <pubDate>Fri, 01 Jul 2016 14:54:21 +0000</pubDate>
  594. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  595. <category><![CDATA[Conferences]]></category>
  596. <category><![CDATA[Java]]></category>
  597. <category><![CDATA[Xpages]]></category>
  598. <category><![CDATA[A New Way to Work]]></category>
  599. <category><![CDATA[Bootstrap]]></category>
  600. <category><![CDATA[Devin Olson]]></category>
  601. <category><![CDATA[Elvis Lezcano]]></category>
  602. <category><![CDATA[Eric McCormick]]></category>
  603. <category><![CDATA[Graphs]]></category>
  604. <category><![CDATA[jQuery]]></category>
  605. <category><![CDATA[Julian Robichaux]]></category>
  606. <category><![CDATA[Karl-Henry Martinsson]]></category>
  607. <category><![CDATA[Kathy Brown]]></category>
  608. <category><![CDATA[Mark Roden]]></category>
  609. <category><![CDATA[Mike McGarel]]></category>
  610. <category><![CDATA[MWLUG]]></category>
  611. <category><![CDATA[Nathan T Freeman]]></category>
  612. <category><![CDATA[REST]]></category>
  613.  
  614. <guid isPermaLink="false">http://lostinxpages.com/?p=461</guid>
  615. <description><![CDATA[Looking over the announced sessions for MWLUG 2016 down in Austin, I&#8217;m excited. There&#8217;s a good mix of things you can use today and road maps you can apply in the future. I&#8217;m a developer, so all the Development and Best Practices sessions look interesting. The tough part will be picking which ones to attend [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=461&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  616. <content:encoded><![CDATA[<p>Looking over the announced <a href="http://mwlug.com/mwlug/mwlug.nsf/sessions.xsp">sessions</a> for MWLUG 2016 down in Austin, I&#8217;m excited. There&#8217;s a good mix of things you can use today and road maps you can apply in the future. I&#8217;m a developer, so all the Development and Best Practices sessions look interesting. The tough part will be picking which ones to attend (and record!)</p>
  617. <p>Five sessions that jumped off the page at me are, in no particular order:</p>
  618. <p><strong>Debugging Java In Your Domino Applications</strong> with Julian Robichaux &#8212; Java just kills me sometimes. Heck, all of XPages does, but learning more about how to debug and troubleshoot is always useful.</p>
  619. <p><strong>Extreme Development: Pair Programming</strong> with Devin Olson and Mike McGarel &#8212; Now that Elvis Lezcano is aboard at DAI, we might have a chance to do some of this. He&#8217;s the smartest developer I&#8217;ve worked with, which I why this is the third job we&#8217;ve had together.</p>
  620. <p><strong>Think Outside The Box</strong> with Karl-Henry Martinsson &#8212; We&#8217;ve just been breaking into using REST services with jQuery and Bootstrap to present data, so getting someone else&#8217;s take on it will expand my ability to combine data from multiple databases to dazzle our users. (see Kathy&#8217;s session on dashboards for ideas she&#8217;s using for us)</p>
  621. <p><strong>Getting Your Hands on Graphs</strong> with Nathan Freeman &#8212; I have loved all the conceptual sessions and want to learn more. If Nathan can get me to understand, there&#8217;s no telling how far we can go!</p>
  622. <p><strong>A Modernized Developer&#8217;s Workflow with Domino/XPages</strong> with Eric McCormick &#8212; Workflow has always been a great strength of Notes, so getting modernized by someone who&#8217;s not spouting theory, but displaying methods in practice is exciting.</p>
  623. <p>Now, before anyone complains about me not mentioning their sessions&#8230;. I&#8217;d like to sit in on about&#8230; 27 sessions. Since Marky has made no progress on the time machine and IBM doesn&#8217;t have anyone working replication of people instead of just data and design, I think I only get about a dozen sessions.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/461/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=461&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  624. <wfw:commentRss>https://lostinxpages.com/2016/07/01/sessions-for-mwlug2016/feed/</wfw:commentRss>
  625. <slash:comments>0</slash:comments>
  626. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  627. <media:title type="html">habap</media:title>
  628. </media:content>
  629. </item>
  630. <item>
  631. <title>Can you hear me now? Life without #HearingLoss</title>
  632. <link>https://lostinxpages.com/2016/05/10/can-you-hear-me-now-life-without-hearingloss/</link>
  633. <comments>https://lostinxpages.com/2016/05/10/can-you-hear-me-now-life-without-hearingloss/#respond</comments>
  634. <pubDate>Wed, 11 May 2016 03:50:44 +0000</pubDate>
  635. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  636. <category><![CDATA[General Interest]]></category>
  637. <category><![CDATA[Audiologist]]></category>
  638. <category><![CDATA[Costco]]></category>
  639. <category><![CDATA[Duracell]]></category>
  640. <category><![CDATA[Hearing aids]]></category>
  641. <category><![CDATA[Looking old]]></category>
  642. <category><![CDATA[Mother-in-law]]></category>
  643.  
  644. <guid isPermaLink="false">http://lostinxpages.com/?p=457</guid>
  645. <description><![CDATA[I turned 50 in December, but my ears were already retired. I&#8217;d go to corporate events or to happy hours and smile a lot when people talked. I had long ago stopped asking more than once if I couldn&#8217;t hear someone in those environments. If I was lying on my right side in bed and [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=457&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  646. <content:encoded><![CDATA[<p>I turned 50 in December, but my ears were already retired. I&#8217;d go to corporate events or to happy hours and smile a lot when people talked. I had long ago stopped asking more than once if I couldn&#8217;t hear someone in those environments. If I was lying on my right side in bed and my wife said something, I could only tell that she was speaking, not even guess what she&#8217;d said. In our kitchen, with little or no background noise, I&#8217;d often ask her to repeat herself. When we&#8217;d go on walks, it was important that she walk on my right, since I wouldn&#8217;t be able to carry on a conversation if she was on my left. Playing baseball (<a href="https://oldmenplayingbaseball.wordpress.com/">in an over 48 league</a>!) I&#8217;d smile and nod when one of the other outfielders would shout some advice that was simply from too far away.</p>
  647. <p><iframe class='youtube-player' type='text/html' width='690' height='419' src='https://www.youtube.com/embed/m5znMZ_2w6c?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></p>
  648. <p>Last year, my mother-in-law asked me to go to a luncheon offered by an audiologist to talk about hearing aids. I assumed it was because she remembered that we shared the problem of hearing loss. She didn&#8217;t, so she was surprised when I was excited about it. I&#8217;d been asking my doctor each year when they did the hearing test if it was time to get hearing aids. Those problems noted above really bothered me. This year, he said, &#8220;Maybe.&#8221; The luncheon was marvelously informative and I set up an appointment to have my hearing checked. Due to the price tag, I held off to reconsider getting them. Thousands of dollars requires more than a few minutes of thought. I had in mind about half of the number they cited.</p>
  649. <p>A few months later, they had another luncheon and this time, I took Melissa. They gave me a pair to try. It was a world of difference. You know, I thought the turn signal on my truck didn&#8217;t make noise anymore. It does. I just wasn&#8217;t hearing it.</p>
  650. <p>While I had the trial hearing aids, a friend of my mother-in-law came into town. We were all sitting the kitchen table discussing hearing aids and especially that someone in particular didn&#8217;t want people to think she is &#8220;old&#8221;. So, her friend who is a several years younger than her says, &#8220;I&#8217;m wearing mine.&#8221; No one had ever noticed. The behind-the-ear hearing aids were about the same color as her hair and you couldn&#8217;t notice unless you leaned in close and pushed her hair aside. She also solved my concern over the price. Costco sells hearing aids and for a fraction of the price. However, not every Costco has audiologists on staff &#8211; some only have hearing aid technicians. If your local Costco doesn&#8217;t have audiologists, you probably are better off going to an independent audiologist, just as you wouldn&#8217;t go to someone who wasn&#8217;t a surgeon for heart surgery.</p>
  651. <p>Many people worry that people will think they&#8217;re old if they see the hearing aids. The truth is, they probably can&#8217;t see them and&#8230;. people already know you can&#8217;t hear them. When you just nod and smile at conversation or bring up topics that have been discussed five minutes ago, people notice. Then, you look old AND stubborn. I&#8217;m only 50 and I could care less if people notice. I tell people about them all the time. A couple of the guys in my office who are in their 30s spent too much time in rock-and-roll, so are considering getting them.</p>
  652. <p>If you&#8217;re not hearing people, it causes a lot of problems. You don&#8217;t hear important things &#8212; like what your doctor tells you about your health or medication. Imagine hearing that a &#8220;1 in 2&#8221; surgeries results in death, instead of &#8220;1 or 2%&#8221; of surgeries result in death. You may not hear when a loved one says, &#8220;I love you&#8221;. You answer different questions than people asked. You laugh when everyone else does, even if you didn&#8217;t hear the punchline. You miss out on lots of interaction and life gets dull. You may develop a tendency to avoid places where hearing may be difficult, like restaurants, and end up avoiding other social situations. These compound each other and you feel isolated. Isolation can lead to emotional issues, like depression, or even lead to dementia (if you&#8217;re the only one you can hear in your world, it gets real hard to connect to reality).</p>
  653. <p>So, if you&#8217;re missing conversational bits or find that &#8220;people talk too fast&#8221;, get yourself checked. People are not talking faster &#8211; your ears don&#8217;t hear every letter anymore, so it takes you longer to figure out what they actually meant to say. There are some sounds, like the f or ph or s, that I simply can&#8217;t hear without my hearing aids because those pitches are simply bad for me. If you miss two or three letters in every word, your brain can&#8217;t figure out what the words were. One joke I often told was that &#8220;as I got older, people said more interesting things&#8221; because I couldn&#8217;t hear what they actually said and my brain guessed wrong!</p>
  654. <p>If you don&#8217;t think you need them and that nobody has noticed, ask someone.</p>
  655. <p><small>* While I don&#8217;t use Duracell batteries, that&#8217;s a great commercial AND they have a <a href="https://www.duracell.com/en-us/program/stay-connected/">portion of their website</a> dedicated to it.</small></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/457/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=457&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  656. <wfw:commentRss>https://lostinxpages.com/2016/05/10/can-you-hear-me-now-life-without-hearingloss/feed/</wfw:commentRss>
  657. <slash:comments>0</slash:comments>
  658. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  659. <media:title type="html">habap</media:title>
  660. </media:content>
  661. </item>
  662. <item>
  663. <title>Austin, Texas hosts #MWLUG2016 in August</title>
  664. <link>https://lostinxpages.com/2016/04/06/austin-texas-hosts-mwlug2016-in-august/</link>
  665. <comments>https://lostinxpages.com/2016/04/06/austin-texas-hosts-mwlug2016-in-august/#respond</comments>
  666. <pubDate>Wed, 06 Apr 2016 20:46:18 +0000</pubDate>
  667. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  668. <category><![CDATA[Conferences]]></category>
  669. <category><![CDATA[MWLUG]]></category>
  670.  
  671. <guid isPermaLink="false">http://lostinxpages.com/?p=453</guid>
  672. <description><![CDATA[While the definition of &#8220;Midwest&#8221; may be getting broader, there is no denying the huge value of the largest Notes user conference in the US, MWLUG. This year, we venture to Texas, holding our conference in one of the premier hotels in Austin, while keeping lodging affordable. We are please to officially announce that MWLUG [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=453&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  673. <content:encoded><![CDATA[<p><a href="http://mwlug.com/mwlug/mwlug.nsf/"><img class="aligncenter" src="https://mlsvc01-prod.s3.amazonaws.com/8d343397201/1a25ab50-fae4-4125-b922-117e91c11846.jpg?ver=1457536066000" alt="" width="765" height="316" /></a>While the definition of &#8220;Midwest&#8221; may be getting broader, there is no denying the huge value of the largest Notes user conference in the US, MWLUG. This year, we venture to Texas, holding our conference in one of the premier hotels in Austin, while keeping lodging affordable.</p>
  674. <blockquote id="yui_3_16_0_ym19_1_1459950440547_44733" class="yiv9351399147bold-header"><p>We are please to officially announce that MWLUG 2016 will be held on August 17-19, 2016 at the Four Seasons in Austin, Texas. We have secured a special rate for this premier ICS conference. With all the new innovations that IBM and IBM Business Partners are creating with our favorite technologies, we are &#8220;Defining the Art of Collaboration&#8221; which is our theme for MWLUG 2016.</p>
  675. <p id="yui_3_16_0_ym19_1_1459950440547_44734">We are expecting an even greater turnout this year at MWLUG 2016. We are planning many activities and new formats to make this a special event. For attendees that are interesting in coming earlier, we are also working on a special event on Tuesday, August 16, 2016. We will need to determine if there is enough interest before we book this event. More information will be coming soon.</p>
  676. <p id="yui_3_16_0_ym19_1_1459950440547_44739">The Four Seasons location in downtown Austin is rated as one of the best hotels in the United States. We have made special arrangements with the Four Seasons for a special discount of $189.00/night for attendees of MWLUG 2016.</p>
  677. <p id="yui_3_16_0_ym19_1_1459950440547_44738">If you are interested in being a sponsor of MWLUG 2016, sponsorship will start next week. Stay tuned for announcements.</p>
  678. <p id="yui_3_16_0_ym19_1_1459950440547_44737">Ready to share your knowledge and skills, abstract submission for MWLUG 2016 will start on April 15, 2016 so get your ideas ready. As always, we reserve 25% of the speaking slots to new speakers. So don&#8217;t be shy.</p>
  679. <p>Registration for MWLUG 2016 will start on May 1, 2016.</p>
  680. <p id="yui_3_16_0_ym19_1_1459950440547_44736">MWLUG 2016 session tracks include:</p>
  681. <ul id="yui_3_16_0_ym19_1_1459950440547_44751">
  682. <li id="yui_3_16_0_ym19_1_1459950440547_44760">Application Development</li>
  683. <li id="yui_3_16_0_ym19_1_1459950440547_44761">Best Practices in Social Collaboration</li>
  684. <li id="yui_3_16_0_ym19_1_1459950440547_44762">Customer Business Cases</li>
  685. <li id="yui_3_16_0_ym19_1_1459950440547_44763">Innovation</li>
  686. <li id="yui_3_16_0_ym19_1_1459950440547_44764">System Administration</li>
  687. </ul>
  688. <p id="yui_3_16_0_ym19_1_1459950440547_44750">MWLUG 2016 is made possible by the generous MWLUG 2016 sponsors whom not only pay for the majority of the cost for MWLUG 2016, but also donate their time in organizing and providing technical sessions on critical topics that are important to our ICS community.</p>
  689. <ul id="yui_3_16_0_ym19_1_1459950440547_44744">
  690. <li id="yui_3_16_0_ym19_1_1459950440547_44749">Close to 50 business and technical sessions</li>
  691. <li id="yui_3_16_0_ym19_1_1459950440547_44748">Breakfast and Lunch for Thursday and Friday</li>
  692. <li id="yui_3_16_0_ym19_1_1459950440547_44747">Wednesday Evening Showcase Reception that include drinks and hors d&#8217;oeuvres</li>
  693. <li id="yui_3_16_0_ym19_1_1459950440547_44746">Thursday Evening Social Event</li>
  694. <li id="yui_3_16_0_ym19_1_1459950440547_44745">Networking with your colleagues in the ICS community</li>
  695. <li id="yui_3_16_0_ym19_1_1459950440547_44743">And a whole lot more</li>
  696. </ul>
  697. </blockquote>
  698. <p>While I will again be videotaping the session I attend (like my videos from <a href="https://lostinxpages.com/2014/09/19/mwlug-2014-video-series-on-youtube/" target="_blank">MWLUG 2014</a> and <a href="https://lostinxpages.com/2015/08/26/videotaping-mwlug2015/" target="_blank">MWLUG 2015</a>) but it&#8217;s nothing like seeing it in person. Your session choices might be different from mine and there&#8217;s really no substitute for seeing it in person. Additionally, all of us also end up learning from each other in between sessions, over meals and in the evenings. You get to make connections that will be useful when you hit a roadblock or&#8230;. when you&#8217;re looking for a new job or trying to find a new employee. Since the cost of the conference itself is nominal and lodging is reasonable, I can&#8217;t see a reason you wouldn&#8217;t attend.</p>
  699. <p>Note that session proposals can be pitched starting April 15th!</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/453/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=453&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  700. <wfw:commentRss>https://lostinxpages.com/2016/04/06/austin-texas-hosts-mwlug2016-in-august/feed/</wfw:commentRss>
  701. <slash:comments>0</slash:comments>
  702. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  703. <media:title type="html">habap</media:title>
  704. </media:content>
  705.  
  706. <media:content url="http://mlsvc01-prod.s3.amazonaws.com/8d343397201/1a25ab50-fae4-4125-b922-117e91c11846.jpg?ver=1457536066000" medium="image" />
  707. </item>
  708. <item>
  709. <title>Orphan #Java class files in the Local folder in #XPages</title>
  710. <link>https://lostinxpages.com/2016/03/31/orphan-java-class-files-in-the-local-folder-in-xpages/</link>
  711. <comments>https://lostinxpages.com/2016/03/31/orphan-java-class-files-in-the-local-folder-in-xpages/#respond</comments>
  712. <pubDate>Thu, 31 Mar 2016 18:56:12 +0000</pubDate>
  713. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  714. <category><![CDATA[Java]]></category>
  715. <category><![CDATA[Xpages]]></category>
  716. <category><![CDATA[Class files]]></category>
  717. <category><![CDATA[Design Refresh]]></category>
  718. <category><![CDATA[Local folder]]></category>
  719.  
  720. <guid isPermaLink="false">http://lostinxpages.com/?p=444</guid>
  721. <description><![CDATA[Every once in a while, when I do a design refresh for one of my XPages databases, I notice it adding .class files for XPages that I&#8217;ve already deleted. So, I do another clean &#38; build on the template, but they&#8217;re still there. Annoyed, I console myself that the files are never referenced, so I [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=444&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  722. <content:encoded><![CDATA[<p>Every once in a while, when I do a design refresh for one of my XPages databases, I notice it adding .class files for XPages that I&#8217;ve already deleted. <a href="https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg" rel="attachment wp-att-445"><img data-attachment-id="445" data-permalink="https://lostinxpages.com/2016/03/31/orphan-java-class-files-in-the-local-folder-in-xpages/class-file-notifications/" data-orig-file="https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=690" data-orig-size="984,174" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;David Navarre&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1459421822&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Class File Notifications" data-image-description="" data-medium-file="https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=690?w=300" data-large-file="https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=690?w=690" class="alignleft wp-image-445 size-full" src="https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=690" alt="" srcset="https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=690 690w, https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=150 150w, https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=300 300w, https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=768 768w, https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg 984w" sizes="(max-width: 690px) 100vw, 690px"   /></a></p>
  723. <p>So, I do another clean &amp; build on the template, but they&#8217;re still there. Annoyed, I console myself that the files are never referenced, so I don&#8217;t need to worry about it. Of course, I worry anyway.</p>
  724. <p><a href="https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg" rel="attachment wp-att-448"><img data-attachment-id="448" data-permalink="https://lostinxpages.com/2016/03/31/orphan-java-class-files-in-the-local-folder-in-xpages/vestigal-java-files/" data-orig-file="https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg?w=690" data-orig-size="341,257" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;David Navarre&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1459421513&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Vestigal Java Files" data-image-description="" data-medium-file="https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg?w=690?w=300" data-large-file="https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg?w=690?w=341" class="alignright wp-image-448 size-full" src="https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg?w=690" alt="Vestigal Java Files" srcset="https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg 341w, https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg?w=150 150w, https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg?w=300 300w" sizes="(max-width: 341px) 100vw, 341px"   /></a>So, in my quest to figure out what was going on, I continued poking around. I checked in the Local folder while looking at the Navigator Eclipse view and saw that the .java files were still sitting there as orphans, with no XPage in the design any more. So, I did just a &#8216;Clean&#8217; and it eliminated all the files except for those. According to &#8220;Mastering XPages&#8221;, this doesn&#8217;t happen. In warning you not to create Java files in the Local folder, it states that</p>
  725. <blockquote><p>the incremental builder in Domino Designer would then flush the contents of the Local folder before recompiling all the XPages again. Your custom Java source files would be permanently deleted in this case.</p></blockquote>
  726. <p>Yet, those files stubbornly remain. Fortunately, when I create a new copy of the template, none of those Local files copy into the new database. So, my habit of creating new files for new versions of the template has helped me by dodging this little, harmless bug.</p>
  727. <p>&nbsp;</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/444/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=444&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  728. <wfw:commentRss>https://lostinxpages.com/2016/03/31/orphan-java-class-files-in-the-local-folder-in-xpages/feed/</wfw:commentRss>
  729. <slash:comments>0</slash:comments>
  730. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  731. <media:title type="html">habap</media:title>
  732. </media:content>
  733.  
  734. <media:content url="http://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg" medium="image" />
  735.  
  736. <media:content url="http://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg" medium="image">
  737. <media:title type="html">Vestigal Java Files</media:title>
  738. </media:content>
  739. </item>
  740. </channel>
  741. </rss>
  742.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//lostinxpages.com/feed/

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda