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>Fri, 19 Aug 2016 13:55:47 +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>An apparent theme: application agnosticism</title>
  31. <link>https://lostinxpages.com/2016/08/19/an-apparent-theme-agnosticism/</link>
  32. <comments>https://lostinxpages.com/2016/08/19/an-apparent-theme-agnosticism/#respond</comments>
  33. <pubDate>Fri, 19 Aug 2016 13:55:36 +0000</pubDate>
  34. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  35. <category><![CDATA[Conferences]]></category>
  36. <category><![CDATA[General Interest]]></category>
  37. <category><![CDATA[Xpages]]></category>
  38. <category><![CDATA[MWLUG]]></category>
  39.  
  40. <guid isPermaLink="false">http://lostinxpages.com/?p=466</guid>
  41. <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>
  42. <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>
  43. <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>
  44. <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>
  45. <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>
  46. <wfw:commentRss>https://lostinxpages.com/2016/08/19/an-apparent-theme-agnosticism/feed/</wfw:commentRss>
  47. <slash:comments>0</slash:comments>
  48. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  49. <media:title type="html">habap</media:title>
  50. </media:content>
  51. </item>
  52. <item>
  53. <title>Sessions for #MWLUG2016</title>
  54. <link>https://lostinxpages.com/2016/07/01/sessions-for-mwlug2016/</link>
  55. <comments>https://lostinxpages.com/2016/07/01/sessions-for-mwlug2016/#respond</comments>
  56. <pubDate>Fri, 01 Jul 2016 14:54:21 +0000</pubDate>
  57. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  58. <category><![CDATA[Conferences]]></category>
  59. <category><![CDATA[Java]]></category>
  60. <category><![CDATA[Xpages]]></category>
  61. <category><![CDATA[A New Way to Work]]></category>
  62. <category><![CDATA[Bootstrap]]></category>
  63. <category><![CDATA[Devin Olson]]></category>
  64. <category><![CDATA[Elvis Lezcano]]></category>
  65. <category><![CDATA[Eric McCormick]]></category>
  66. <category><![CDATA[Graphs]]></category>
  67. <category><![CDATA[jQuery]]></category>
  68. <category><![CDATA[Julian Robichaux]]></category>
  69. <category><![CDATA[Karl-Henry Martinsson]]></category>
  70. <category><![CDATA[Kathy Brown]]></category>
  71. <category><![CDATA[Mark Roden]]></category>
  72. <category><![CDATA[Mike McGarel]]></category>
  73. <category><![CDATA[MWLUG]]></category>
  74. <category><![CDATA[Nathan T Freeman]]></category>
  75. <category><![CDATA[REST]]></category>
  76.  
  77. <guid isPermaLink="false">http://lostinxpages.com/?p=461</guid>
  78. <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>
  79. <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>
  80. <p>Five sessions that jumped off the page at me are, in no particular order:</p>
  81. <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>
  82. <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>
  83. <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>
  84. <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>
  85. <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>
  86. <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>
  87. <wfw:commentRss>https://lostinxpages.com/2016/07/01/sessions-for-mwlug2016/feed/</wfw:commentRss>
  88. <slash:comments>0</slash:comments>
  89. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  90. <media:title type="html">habap</media:title>
  91. </media:content>
  92. </item>
  93. <item>
  94. <title>Can you hear me now? Life without #HearingLoss</title>
  95. <link>https://lostinxpages.com/2016/05/10/can-you-hear-me-now-life-without-hearingloss/</link>
  96. <comments>https://lostinxpages.com/2016/05/10/can-you-hear-me-now-life-without-hearingloss/#respond</comments>
  97. <pubDate>Wed, 11 May 2016 03:50:44 +0000</pubDate>
  98. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  99. <category><![CDATA[General Interest]]></category>
  100. <category><![CDATA[Audiologist]]></category>
  101. <category><![CDATA[Costco]]></category>
  102. <category><![CDATA[Duracell]]></category>
  103. <category><![CDATA[Hearing aids]]></category>
  104. <category><![CDATA[Looking old]]></category>
  105. <category><![CDATA[Mother-in-law]]></category>
  106.  
  107. <guid isPermaLink="false">http://lostinxpages.com/?p=457</guid>
  108. <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>
  109. <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>
  110. <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>
  111. <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>
  112. <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>
  113. <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>
  114. <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>
  115. <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>
  116. <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>
  117. <p>If you don&#8217;t think you need them and that nobody has noticed, ask someone.</p>
  118. <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>
  119. <wfw:commentRss>https://lostinxpages.com/2016/05/10/can-you-hear-me-now-life-without-hearingloss/feed/</wfw:commentRss>
  120. <slash:comments>0</slash:comments>
  121. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  122. <media:title type="html">habap</media:title>
  123. </media:content>
  124. </item>
  125. <item>
  126. <title>Austin, Texas hosts #MWLUG2016 in August</title>
  127. <link>https://lostinxpages.com/2016/04/06/austin-texas-hosts-mwlug2016-in-august/</link>
  128. <comments>https://lostinxpages.com/2016/04/06/austin-texas-hosts-mwlug2016-in-august/#respond</comments>
  129. <pubDate>Wed, 06 Apr 2016 20:46:18 +0000</pubDate>
  130. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  131. <category><![CDATA[Conferences]]></category>
  132. <category><![CDATA[MWLUG]]></category>
  133.  
  134. <guid isPermaLink="false">http://lostinxpages.com/?p=453</guid>
  135. <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>
  136. <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>
  137. <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>
  138. <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>
  139. <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>
  140. <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>
  141. <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>
  142. <p>Registration for MWLUG 2016 will start on May 1, 2016.</p>
  143. <p id="yui_3_16_0_ym19_1_1459950440547_44736">MWLUG 2016 session tracks include:</p>
  144. <ul id="yui_3_16_0_ym19_1_1459950440547_44751">
  145. <li id="yui_3_16_0_ym19_1_1459950440547_44760">Application Development</li>
  146. <li id="yui_3_16_0_ym19_1_1459950440547_44761">Best Practices in Social Collaboration</li>
  147. <li id="yui_3_16_0_ym19_1_1459950440547_44762">Customer Business Cases</li>
  148. <li id="yui_3_16_0_ym19_1_1459950440547_44763">Innovation</li>
  149. <li id="yui_3_16_0_ym19_1_1459950440547_44764">System Administration</li>
  150. </ul>
  151. <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>
  152. <ul id="yui_3_16_0_ym19_1_1459950440547_44744">
  153. <li id="yui_3_16_0_ym19_1_1459950440547_44749">Close to 50 business and technical sessions</li>
  154. <li id="yui_3_16_0_ym19_1_1459950440547_44748">Breakfast and Lunch for Thursday and Friday</li>
  155. <li id="yui_3_16_0_ym19_1_1459950440547_44747">Wednesday Evening Showcase Reception that include drinks and hors d&#8217;oeuvres</li>
  156. <li id="yui_3_16_0_ym19_1_1459950440547_44746">Thursday Evening Social Event</li>
  157. <li id="yui_3_16_0_ym19_1_1459950440547_44745">Networking with your colleagues in the ICS community</li>
  158. <li id="yui_3_16_0_ym19_1_1459950440547_44743">And a whole lot more</li>
  159. </ul>
  160. </blockquote>
  161. <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>
  162. <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>
  163. <wfw:commentRss>https://lostinxpages.com/2016/04/06/austin-texas-hosts-mwlug2016-in-august/feed/</wfw:commentRss>
  164. <slash:comments>0</slash:comments>
  165. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  166. <media:title type="html">habap</media:title>
  167. </media:content>
  168.  
  169. <media:content url="http://mlsvc01-prod.s3.amazonaws.com/8d343397201/1a25ab50-fae4-4125-b922-117e91c11846.jpg?ver=1457536066000" medium="image" />
  170. </item>
  171. <item>
  172. <title>Orphan #Java class files in the Local folder in #XPages</title>
  173. <link>https://lostinxpages.com/2016/03/31/orphan-java-class-files-in-the-local-folder-in-xpages/</link>
  174. <comments>https://lostinxpages.com/2016/03/31/orphan-java-class-files-in-the-local-folder-in-xpages/#respond</comments>
  175. <pubDate>Thu, 31 Mar 2016 18:56:12 +0000</pubDate>
  176. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  177. <category><![CDATA[Java]]></category>
  178. <category><![CDATA[Xpages]]></category>
  179. <category><![CDATA[Class files]]></category>
  180. <category><![CDATA[Design Refresh]]></category>
  181. <category><![CDATA[Local folder]]></category>
  182.  
  183. <guid isPermaLink="false">http://lostinxpages.com/?p=444</guid>
  184. <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>
  185. <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 class="alignleft wp-image-445 size-full" src="https://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg?w=690" alt=""   /></a></p>
  186. <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>
  187. <p><a href="https://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg" rel="attachment wp-att-448"><img 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"   /></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>
  188. <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>
  189. <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>
  190. <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>
  191. <wfw:commentRss>https://lostinxpages.com/2016/03/31/orphan-java-class-files-in-the-local-folder-in-xpages/feed/</wfw:commentRss>
  192. <slash:comments>0</slash:comments>
  193. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  194. <media:title type="html">habap</media:title>
  195. </media:content>
  196.  
  197. <media:content url="http://lostinxpages.files.wordpress.com/2016/03/class-file-notifications.jpg" medium="image" />
  198.  
  199. <media:content url="http://lostinxpages.files.wordpress.com/2016/03/vestigal-java-files.jpg" medium="image">
  200. <media:title type="html">Vestigal Java Files</media:title>
  201. </media:content>
  202. </item>
  203. <item>
  204. <title>An agent to change field values to help in #XPages</title>
  205. <link>https://lostinxpages.com/2016/03/22/an-agent-to-change-field-values-to-help-in-xpages/</link>
  206. <comments>https://lostinxpages.com/2016/03/22/an-agent-to-change-field-values-to-help-in-xpages/#comments</comments>
  207. <pubDate>Tue, 22 Mar 2016 17:14:55 +0000</pubDate>
  208. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  209. <category><![CDATA[Old Notes]]></category>
  210. <category><![CDATA[Utilities]]></category>
  211. <category><![CDATA[Agent]]></category>
  212. <category><![CDATA[Change Field Value]]></category>
  213. <category><![CDATA[Logging]]></category>
  214. <category><![CDATA[LotusScript]]></category>
  215. <category><![CDATA[NotesDateTime]]></category>
  216. <category><![CDATA[UnprocessedDocuments]]></category>
  217.  
  218. <guid isPermaLink="false">http://lostinxpages.com/?p=433</guid>
  219. <description><![CDATA[With our transition to XPages, I&#8217;ve been finding more and more often that I don&#8217;t have a form interface in the Notes client to just change one field value on the back end. Too often, on the front end, in XPages, there&#8217;s a value I simply haven&#8217;t exposed for editing or don&#8217;t even display. I [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=433&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  220. <content:encoded><![CDATA[<p>With our transition to XPages, I&#8217;ve been finding more and more often that I don&#8217;t have a form interface in the Notes client to just change one field value on the back end. Too often, on the front end, in XPages, there&#8217;s a value I simply haven&#8217;t exposed for editing or don&#8217;t even display. I often don&#8217;t add the fields to the back end Notes form because it really doesn&#8217;t add much value. So, when I want to change one field, or change one field on multiple documents, I do it with an agent. Heck, over the years, we all have. We just usually did it in a very static manner &#8211; writing a quick @formula to change the value of a specific field. That requires changing the design to create the agent and then delete the agent &#8211; or leaving a mess behind that slowly grows your agent list with more and more single-use agents.</p>
  221. <p>So, I wrote an agent that allowed me to replace a text field by naming the field and the value. Then, I found I wanted one for numbers as well. So, for a few weeks, I had two agents. Then, I realized the folly and wrote an agent that detects the field being updated (or asking you if the field doesn&#8217;t exist). I only did it for text, numbers and dates, so I imagine it could be extended. It&#8217;s enough for me. Since I had occasion to share it this week with another developer, I thought I&#8217;d also post it here to share via the blogosphere.</p>
  222. <p>While there&#8217;s nothing brilliant about it, it sure is useful.</p>
  223. <pre class="brush: jscript; title: ; notranslate">%REM
  224. Agent Change Field Value
  225. Created Jun 19, 2015 by David Navarre/DAI
  226. Description: This Agent allows the user to name a field and change the value
  227. It checks the field type on the first document selected and
  228. handles strings, numbers and dates differently
  229. %END REM
  230. Option Public
  231. Option Declare
  232. Use &quot;Utilities&quot;
  233. Dim ws As NotesUIWorkspace
  234. Dim newDate As NotesDateTime
  235. Dim newvalue As Variant
  236. Dim fieldname As Variant
  237. Dim change As String
  238. Sub Initialize
  239. Dim session As New NotesSession
  240. ' thisdb declared in Utilities '
  241. Dim ndc As NotesDocumentCollection
  242. Dim itemdoc As NotesDocument
  243. Dim itemToChange As NotesItem
  244. Dim numericValue As Double
  245. Dim itemType As Long
  246. Dim selectedType (2) As String
  247. Dim choice As Variant
  248. Dim reason As String
  249.  
  250. On Error GoTo errorhandler
  251.  
  252. Set ws = New NotesUIWorkspace
  253. Set thisdb = session.CurrentDatabase
  254.  
  255. selectedType (0) = &quot;Date&quot;
  256. selectedType (1) = &quot;Text&quot;
  257. selectedType (2) = &quot;Numbers&quot;
  258.  
  259. Call StartAgentLogging (session )
  260.  
  261. fieldname = ws.Prompt ( PROMPT_OKCANCELEDIT, &quot;Field Name&quot;, &quot;Enter the name of the field to change&quot; )
  262. If IsEmpty ( fieldname ) Then
  263. Exit Sub
  264. End If
  265.  
  266. newvalue = ws.Prompt ( PROMPT_OKCANCELEDIT, fieldname, &quot;Enter the new value for &quot; &amp; fieldname )
  267. If IsEmpty ( newvalue ) Then
  268. Exit Sub
  269. End If
  270.  
  271. ' get the collection before issuing the confirmation, so we can determine field type '
  272. ' from the first document selected, assuming it is the same on the rest '
  273. Set ndc = thisdb.UnprocessedDocuments
  274. Set itemdoc = ndc.GetFirstDocument
  275. Call agentLog.LogAction ( &quot;Items: &quot; &amp; ndc.Count )
  276.  
  277. If ( itemdoc.Hasitem(fieldname) ) Then
  278. Set itemToChange = itemdoc.Getfirstitem(fieldname)
  279. itemType = itemToChange.Type
  280. Else
  281. choice = ws.Prompt(PROMPT_OKCANCELLIST, &quot;Select field type&quot;, &quot;Field &quot; &amp; fieldname &amp; &quot; does not exist on the first document. Select field type to create&quot;, &quot;Text&quot;, selectedType )
  282. If IsEmpty ( choice ) Then
  283. MessageBox &quot;Action cancelled&quot;
  284. Exit Sub
  285. End If
  286. Select Case choice
  287. Case &quot;Date&quot;
  288. itemType = 1024
  289. Case &quot;Text&quot;
  290. itemType = 1280
  291. Case &quot;Number&quot;
  292. itemType = 768
  293. End Select
  294. End If
  295.  
  296. If Confirm ( itemType ) Then
  297. While Not itemdoc Is Nothing
  298. Select Case itemType
  299. Case 1024  ' DATETIMES '
  300. Call itemdoc.ReplaceItemValue ( fieldname, newDate )
  301. Case 1280  ' TEXT '
  302. Call itemdoc.ReplaceItemValue ( fieldname, newValue )
  303. Case 768  ' NUMBERS '
  304. ' if the value supplied is an integer, save it that way '
  305. If ( CInt ( CDbl ( newValue ) ) = CInt ( newValue ) ) Then
  306. Call itemdoc.ReplaceItemValue ( fieldname, CInt ( newValue ) )
  307. else
  308. Call itemdoc.ReplaceItemValue ( fieldname, CDbl ( newValue ) )
  309. End If
  310. End Select
  311.  
  312. Call agentLog.LogAction ( change )
  313. Call itemdoc.Save ( True, False )
  314.  
  315. Set itemdoc = ndc.GetNextDocument ( itemdoc )
  316. Wend
  317. MessageBox change &amp; Chr$(10) &amp; &quot;Successful on &quot; &amp; ndc.Count &amp; &quot; documents&quot;
  318. End If
  319.  
  320. exiting:
  321. Call agentLog.LogAction ( &quot;-------&quot; )
  322. Call agentLog.LogAction ( &quot;-------&quot; )
  323. Exit Sub
  324. errorhandler:' report all errors in a messagebox '
  325. reason = &quot;Error #&quot; &amp; CStr (Err) &amp; &quot; (&quot; &amp; Error &amp; &quot;) on line &quot; &amp; CStr (Erl)
  326. MessageBox reason, 16, &quot;Error&quot;
  327. Call agentLog.LogAction ( reason )
  328. Resume exiting
  329.  
  330. End Sub
  331. %REM
  332. Function ConfirmValue
  333. Description: This function displays a confirmation dialog based on the field type
  334. %END REM
  335. Function Confirm ( itemType As Long ) As Boolean
  336.  
  337. Select Case itemType
  338. Case 1024  ' DATETIMES '
  339. Set newDate = New NotesDateTime ( newValue )
  340. change = &quot;Change date in &quot; &amp; fieldname &amp; &quot; to &quot; &amp; newDate.Dateonly
  341. Case 1280  ' TEXT '
  342. change = &quot;Change text in &quot; &amp; fieldname &amp; &quot; to &quot; &amp; newValue
  343. Case 768  ' NUMBERS '
  344. change = &quot;Change number in &quot; &amp; fieldname &amp; &quot; to &quot; &amp; newValue
  345. Case 1  ' RICHTEXT '
  346. Confirm = False
  347. MessageBox &quot;Cannot change rich text using this agent&quot;
  348. Exit Function
  349. Case Else
  350. Confirm = False
  351. MessageBox &quot;Cannot change &quot; &amp; fieldname &amp; &quot; using this agent&quot; &amp; Chr$(10) &amp; &quot;Field type: &quot; &amp; itemType
  352. Exit Function
  353. End Select
  354.  
  355. Confirm = ws.Prompt ( PROMPT_YESNO, &quot;Confirmation&quot;, change &amp; &quot;?&quot; )
  356.  
  357. End Function
  358. </pre>
  359. <p>Oh, and the relevant snippet of the Utilities script library&#8230;.</p>
  360. <pre class="brush: jscript; title: ; notranslate">%REM
  361.     Library Utilities
  362.     Created Mar 29, 2012 by David Navarre/DAI
  363.     Description: Some database utilities
  364. %END REM
  365. Option Public
  366. Option Declare
  367.  
  368. Dim thisdb As NotesDatabase
  369. Dim agentLog As NotesLog
  370. Sub Initialize
  371.  
  372. End Sub
  373.  
  374. Sub StartAgentLogging ( session As NotesSession )
  375.     ' this module starts agent logging '
  376.     ' 29 Mar 12, David Navarre '
  377.     Dim title As String
  378.     Dim agent As NotesAgent
  379.  
  380.     Set agentLog = session.CreateLog (&quot;Agent log&quot;)
  381.     Set agent = session.Currentagent
  382.     Call agentLog.OpenAgentLog
  383.     Call agentLog.LogAction ( &quot;Log Open&quot; )
  384.  
  385. End Sub</pre><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/433/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=433&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  386. <wfw:commentRss>https://lostinxpages.com/2016/03/22/an-agent-to-change-field-values-to-help-in-xpages/feed/</wfw:commentRss>
  387. <slash:comments>2</slash:comments>
  388. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  389. <media:title type="html">habap</media:title>
  390. </media:content>
  391. </item>
  392. <item>
  393. <title>Copying property definitions for custom controls in #XPages</title>
  394. <link>https://lostinxpages.com/2016/03/10/copying-property-definitions-for-custom-controls-in-xpages/</link>
  395. <comments>https://lostinxpages.com/2016/03/10/copying-property-definitions-for-custom-controls-in-xpages/#respond</comments>
  396. <pubDate>Thu, 10 Mar 2016 18:11:46 +0000</pubDate>
  397. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  398. <category><![CDATA[Xpages]]></category>
  399. <category><![CDATA[Brad Balassaitis]]></category>
  400. <category><![CDATA[Kathy Brown]]></category>
  401. <category><![CDATA[Paul Withers]]></category>
  402. <category><![CDATA[Source control]]></category>
  403. <category><![CDATA[SourceTree]]></category>
  404.  
  405. <guid isPermaLink="false">http://lostinxpages.com/?p=418</guid>
  406. <description><![CDATA[Sometimes, when I&#8217;m working on my applications, I&#8217;ll decide that I want to copy a property definition from one custom control to another. When using the standard properties interface, it&#8217;s a lot of work. You have to put the right information into the right fields and switch between tabs. It&#8217;s a real bother. Interestingly, it [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=418&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  407. <content:encoded><![CDATA[<p><a href="https://lostinxpages.files.wordpress.com/2016/03/propertydefinition.jpg" rel="attachment wp-att-420"><img class="alignright wp-image-420" src="https://lostinxpages.files.wordpress.com/2016/03/propertydefinition.jpg?w=446&#038;h=254" alt="PropertyDefinition" width="446" height="254" /></a>Sometimes, when I&#8217;m working on my applications, I&#8217;ll decide that I want to copy a property definition from one custom control to another. When using the standard properties interface, it&#8217;s a lot of work. You have to put the right information into the right fields and switch between tabs. It&#8217;s a real bother.</p>
  408. <p>Interestingly, it never occurred to me to look at the .xsp-config documents until we started using SourceTree for source control.* I was looking at some changes and suddenly noticed that &#8230; the property definitions are right there! So, instead of slogging through manual editing of the definitions in the UI in Designer, I could just go to either the Navigator or the Package Explorer Eclipse view to open and edit the properties as simple XML.</p>
  409. <pre class="brush: jscript; title: ; notranslate">    &lt;property&gt;
  410.      &lt;property-name&gt;deletionAllowed&lt;/property-name&gt;
  411.      &lt;property-class&gt;boolean&lt;/property-class&gt;
  412.      &lt;display-name&gt;Allow deletions of attachments&lt;/display-name&gt;
  413.      &lt;property-extension&gt;
  414.        &lt;designer-extension&gt;
  415.          &lt;category&gt;Control information&lt;/category&gt;
  416.          &lt;editor&gt;com.ibm.std.Boolean&lt;/editor&gt;
  417.          &lt;default-value&gt;false&lt;/default-value&gt;
  418.        &lt;/designer-extension&gt;
  419.        &lt;required&gt;false&lt;/required&gt;
  420.      &lt;/property-extension&gt;
  421.      &lt;description&gt;Determines if attachments may be deleted,
  422. Deletions are soft and may be recovered within recovery period.
  423. (default: false)&lt;/description&gt;
  424.    &lt;/property&gt;</pre>
  425. <p>So, if I realized that I needed that property on a different custom control, or I wanted to create a second property on the same control with a different name, I could simply copy-paste the code and edit it as necessary.</p>
  426. <p>There is one pretty cool <a href="https://lostinxpages.files.wordpress.com/2016/03/propertycategories.jpg" rel="attachment wp-att-426"><img class="alignleft size-medium wp-image-426" src="https://lostinxpages.files.wordpress.com/2016/03/propertycategories.jpg?w=300&#038;h=280" alt="PropertyCategories" width="300" height="280" /></a>piece of the property definition that seems only to be available when you edit the code directly. That&#8217;s the <strong>category</strong> definition. If you provide a category definition as shown in my code snippet above, then when you&#8217;re setting the properties of the custom control that you&#8217;ve inserted, it displays categorized properties as part of that category in the UI for &#8216;All Properties&#8217;. I urge you to make sure that if you do fiddle with the properties on the back-end this way, that you first give yourself examples by doing most of it using the UI for adding properties. As with anything else I do in XPages, I find myself wanting to get right to the code, not to use the UI provided by Designer.</p>
  427. <p>It&#8217;s interesting that it actually does give you an option that you don&#8217;t seem to be able to get otherwise.</p>
  428. <p><small>* I want to thank <a href="http://www.psclistens.com" target="_blank">PSC</a> for getting us to use SourceTree and bitbucket (while <a href="http://www.runningnotes.net" target="_blank">Kathy</a> and <a href="http://xcellerant.net/" target="_blank">Brad</a> do some work for us) and to <a href="http://www.intec.co.uk/blog/" target="_blank">Paul Withers</a> for his excellent <a href="https://www.youtube.com/watch?v=TivgBeOHcEo" target="_blank">Notes in 9 video</a> on how to do it (for our internal ones).</small></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/418/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=418&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  429. <wfw:commentRss>https://lostinxpages.com/2016/03/10/copying-property-definitions-for-custom-controls-in-xpages/feed/</wfw:commentRss>
  430. <slash:comments>0</slash:comments>
  431. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  432. <media:title type="html">habap</media:title>
  433. </media:content>
  434.  
  435. <media:content url="http://lostinxpages.files.wordpress.com/2016/03/propertydefinition.jpg?w=300" medium="image">
  436. <media:title type="html">PropertyDefinition</media:title>
  437. </media:content>
  438.  
  439. <media:content url="http://lostinxpages.files.wordpress.com/2016/03/propertycategories.jpg?w=300" medium="image">
  440. <media:title type="html">PropertyCategories</media:title>
  441. </media:content>
  442. </item>
  443. <item>
  444. <title>Pause to breathe: a note from Lotusphere &#8217;16</title>
  445. <link>https://lostinxpages.com/2016/02/01/pause-to-breathe-a-note-from-lotusphere-16/</link>
  446. <comments>https://lostinxpages.com/2016/02/01/pause-to-breathe-a-note-from-lotusphere-16/#respond</comments>
  447. <pubDate>Mon, 01 Feb 2016 21:11:02 +0000</pubDate>
  448. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  449. <category><![CDATA[Conferences]]></category>
  450. <category><![CDATA[General Interest]]></category>
  451. <category><![CDATA[Clive Lightfoot]]></category>
  452. <category><![CDATA[James Weru]]></category>
  453. <category><![CDATA[Kathy Brown]]></category>
  454. <category><![CDATA[Outgoing Introvert]]></category>
  455. <category><![CDATA[PSC]]></category>
  456. <category><![CDATA[Roman Weber]]></category>
  457.  
  458. <guid isPermaLink="false">http://lostinxpages.com/2016/02/01/pause-to-breathe-a-note-from-lotusphere-16/</guid>
  459. <description><![CDATA[I have to be honest. I never knew that I was an introvert. I was always puzzled by the times in my life when I was afraid of people or just wanted to go somewhere quiet. I love reading and my ‘alone time’ reading has always given me that … space. On the other hand, [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=417&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  460. <content:encoded><![CDATA[<p>I have to be honest. I never knew that I was an introvert. I was always puzzled by the times in my life when I was afraid of people or just wanted to go somewhere quiet. I love reading and my ‘alone time’ reading has always given me that … space. On the other hand, I was in the drama club and on the debate team in high school. I even ran, very unsuccessfully, for student government. So, it was not until I was giving Kathy Brown a ride back to the airport from our offices (PSC is doing some work for us), that I learned about ‘outgoing introverts’. From what I understand, being an extrovert or an introvert is all about whether you gain or lose energy by interacting with others. So, while those of us who are outgoing introverts enjoy interacting with others, it can be draining. Someone who is an extrovert would be gaining energy through the interaction, but not me. I enjoy it, but it does wear me out.</p>
  461. <p>Because we had lunch with James Weru, Clive Lightfoot and Roman Weber, I’ll have a post about their case story that they shared during the Opening General Session. It hits so close to what our company does, working toward the same purposes that I simply had to meet them and learn more.</p>
  462. <p>So, having just spent a few hours being very social at lunch and between sessions, I just needed a quiet break. Just as I need to recharge my laptop and my phone right now, I need to recharge my personal energy banks. It’s easy to forget when attending conferences, that in order to ensure you get the most out of it – knowledge, contacts, tools and relaxation – you have to take care of yourself.</p>
  463. <p>It’s been an incredible conference so far. Having stopped to write this, I feel ready to go back to shaking hands and telling stories.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/417/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=417&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  464. <wfw:commentRss>https://lostinxpages.com/2016/02/01/pause-to-breathe-a-note-from-lotusphere-16/feed/</wfw:commentRss>
  465. <slash:comments>0</slash:comments>
  466. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  467. <media:title type="html">habap</media:title>
  468. </media:content>
  469. </item>
  470. <item>
  471. <title>A venture into DateTimes in #XPages</title>
  472. <link>https://lostinxpages.com/2016/01/04/a-venture-into-datetimes-in-xpages/</link>
  473. <comments>https://lostinxpages.com/2016/01/04/a-venture-into-datetimes-in-xpages/#comments</comments>
  474. <pubDate>Mon, 04 Jan 2016 22:33:21 +0000</pubDate>
  475. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  476. <category><![CDATA[Java]]></category>
  477. <category><![CDATA[Server-Side Javascript]]></category>
  478. <category><![CDATA[Xpages]]></category>
  479. <category><![CDATA[convertDateTime]]></category>
  480. <category><![CDATA[Declan Sciolla-Lynch]]></category>
  481. <category><![CDATA[getItemValueDateTimeArray]]></category>
  482. <category><![CDATA[NotesDateTime]]></category>
  483. <category><![CDATA[SimpleDateFormatter]]></category>
  484. <category><![CDATA[Vector]]></category>
  485.  
  486. <guid isPermaLink="false">http://lostinxpages.com/?p=399</guid>
  487. <description><![CDATA[Recently, I was trying to change the display of some dates in our application. We&#8217;ve found that the simplest way for our international company to display dates is to stick to the dd-MMM-yyyy format since that seems the clearest. No one wonders whether 1/4/16 represent the 4th of January or the 1st of April, because [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=399&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  488. <content:encoded><![CDATA[<p>Recently, I was trying to change the display of some dates in our application. We&#8217;ve found that the simplest way for our international company to display dates is to stick to the <strong>dd-MMM-yyyy</strong> format since that seems the clearest. No one wonders whether 1/4/16 represent the 4th of January or the 1st of April, because they all see 04-Jan-2016.</p>
  489. <p>This was simplest to fix for all the date fields that use simple inputText controls &#8211; just change the convertDateTime pattern.</p>
  490. <pre class="brush: jscript; title: ; notranslate"> &lt;xp:inputText value=&quot;#{modDoc.RevPerf1Date}&quot; id=&quot;revisedPerformanceDateStart&quot;&gt;
  491. &lt;xp:dateTimeHelper&gt;&lt;/xp:dateTimeHelper&gt;
  492. &lt;xp:this.converter&gt;
  493. &lt;xp:convertDateTime pattern=&quot;dd-MMM-yyyy&quot;&gt;&lt;/xp:convertDateTime&gt;
  494. &lt;/xp:this.converter&gt;
  495. &lt;/xp:inputText&gt;
  496.  
  497. </pre>
  498. <p>Then, I noticed that in place I wasn&#8217;t letting them edit the dates, it wasn&#8217;t using that format. We&#8217;re not displaying the inputText, but using a label computed from that control to determine what to display. This code may actually hurt your eyes, but it did convert the date into a US-format date, like 01/04/2016.</p>
  499. <pre class="brush: jscript; title: ; notranslate">&lt;xp:label id=&quot;label14&quot; style=&quot;color:black;&quot;&gt;
  500. &lt;xp:this.value&gt;&lt;![CDATA[#{javascript:if(modDoc.isNewNote()){
  501. if(modDoc.getItemValueDate(&quot;PerfDate1&quot;) != null) {
  502. var termBegin = @Text(modDoc.getItemValue(&quot;PerfDate1&quot;));
  503. if(termBegin != &quot;&quot;){
  504. var dt2:NotesDateTime = session.createDateTime(termBegin);
  505. var d = new Date(dt2.toJavaDate());
  506. var mon = (&quot;0&quot; + (d.getMonth() + 1)).slice(-2)
  507. var td = (&quot;0&quot; + d.getDate()).slice(-2);
  508. var yr = d.getFullYear();
  509.  
  510. mon + &quot;/&quot; + td + &quot;/&quot; + yr
  511. }
  512. } else {
  513. if(sessionScope.POPerformBeginDate != null &amp;&amp; sessionScope.POPerformBeginDate != &quot;null&quot; &amp;&amp; sessionScope.POPerformBeginDate != &quot;&quot;){
  514. var dt:NotesDateTime = session.createDateTime(sessionScope.POPerformBeginDate);
  515. dt.toJavaDate() modDoc.setValue(&quot;PerfDate1&quot;,dt);
  516. var d = new Date(dt.toJavaDate());
  517. var mon = (&quot;0&quot; + (d.getMonth() + 1)).slice(-2)
  518. var td = (&quot;0&quot; + d.getDate()).slice(-2);
  519. var yr = d.getFullYear();
  520.  
  521. mon + &quot;/&quot; + td + &quot;/&quot; + yr
  522. }
  523. }
  524. } else {
  525. var termBegin = @Text(modDoc.getItemValue(&quot;PerfDate1&quot;));
  526. if(termBegin != &quot;&quot;){
  527. var dt2:NotesDateTime = session.createDateTime(termBegin);
  528. var d = new Date(dt2.toJavaDate());
  529. var mon = (&quot;0&quot; + (d.getMonth() + 1)).slice(-2)
  530. var td = (&quot;0&quot; + d.getDate()).slice(-2);
  531. var yr = d.getFullYear();
  532.  
  533. mon + &quot;/&quot; + td + &quot;/&quot; + yr;
  534. }
  535. }}]]&gt;&lt;/xp:this.value&gt;
  536. &lt;/xp:label&gt;</pre>
  537. <p>Before we decided to convert to the new format, the ugliness of the code didn&#8217;t matter. It was used in one place (printing purchase order modifications) and it worked. Since I didn&#8217;t want to invent my own library function for computing the text value of the date in the new format, I searched for a better way to format the dates. I ran across <a href="http://www.qtzar.com/simple-date-formatting-in-ssjs/" target="_blank">Declan Lynch&#8217;s blog entry on using SimpleDateFormat</a>. Unfortunately, that just points in the right direction, rather than providing working code. So, when I tried to implement that for displaying the labels correctly, I just couldn&#8217;t get it to work. This frustration led me to the simple solution: use convertDateTime on the labels. Duh!</p>
  538. <pre class="brush: jscript; title: ; notranslate"> &lt;xp:label id=&quot;performanceDateStartDisplay&quot; style=&quot;color:black;&quot;&gt;
  539. &lt;xp:this.value&gt;&lt;![CDATA[#{javascript:getComponent(&quot;performanceDateStart&quot;).getValue();}]]&gt;&lt;/xp:this.value&gt;
  540. &lt;xp:this.converter&gt;
  541. &lt;xp:convertDateTime pattern=&quot;dd-MMM-yyyy&quot;&gt;&lt;/xp:convertDateTime&gt;
  542. &lt;/xp:this.converter&gt;
  543. &lt;/xp:label&gt;</pre>
  544. <p>Now, on the printed purchase order modification, I also had changes in dates detailed in the text as a sentence. So, you&#8217;d see <em>To Change the Period of performance from 01/04/2016 to 01/08/2106 to 01/11/2016 to 01/15/2016</em>, which was not using our newly minted date format. I couldn&#8217;t figure out a way to use the converters within the text without creating several computed labels (each with a rendered formula) to display the text. Then, I remembered my dalliance with <a href="http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html" target="_blank">SimpleDateFormatter</a>.</p>
  545. <p>So, within that control, I brought in the package and created a function that gets the field value as a Vector using getItemValueDateTimeArray and formats it using my chosen SimpleDateFormat. The text string gets built with four calls to that function and returns our text <em>To Change the Period of performance from 04-Jan-2016 to 08-Jan-2016 to 11-Jan-2016 to 15-Jan-2016</em></p>
  546. <pre class="brush: jscript; title: ; notranslate">&lt;xp:text id=&quot;revisedPerformanceRange&quot;&gt;
  547. &lt;xp:this.value&gt;&lt;![CDATA[#{javascript:function getFormattedDate ( doc:NotesDocument, fieldName:String ) {
  548. importPackage(java.text);
  549.  
  550. var dateFormatter:java.text.SimpleDateFormat = new SimpleDateFormat(&quot;dd-MMM-yyyy&quot;);
  551. var d:Date = new Date(@Today());
  552.  
  553. if ( doc.hasItem (fieldName) ) {
  554. var valueVector:java.util.Vector = doc.getItemValueDateTimeArray(fieldName);
  555. var iterator = valueVector.iterator();
  556.  
  557. while (iterator.hasNext()) {
  558. var itemvalue = iterator.next();
  559. if ((typeof(itemvalue)).endsWith(&quot;DateTime&quot;)) {
  560. d = new Date(itemvalue.toJavaDate());
  561. return dateFormatter.format(d);
  562. }
  563. }
  564. } else {
  565. return fieldName + &quot; is not on the document&quot;
  566. }
  567.  
  568. }
  569.  
  570. var modNotesDoc:NotesDocument = modDoc.getDocument();
  571.  
  572. var revisedPerformanceRangeText = &quot;To Change the Period of performance from &quot;;
  573. revisedPerformanceRangeText = revisedPerformanceRangeText + getFormattedDate(modNotesDoc,&quot;PerfDate1&quot;) + &quot; to &quot;;
  574. revisedPerformanceRangeText = revisedPerformanceRangeText + getFormattedDate(modNotesDoc,&quot;PerfDate2&quot;) + &quot; to &quot;;
  575. revisedPerformanceRangeText = revisedPerformanceRangeText + getFormattedDate(modNotesDoc,&quot;RevPerf1Date&quot;) + &quot; to &quot;;
  576. revisedPerformanceRangeText = revisedPerformanceRangeText + getFormattedDate(modNotesDoc,&quot;RevPerf2Date&quot;);
  577.  
  578. return revisedPerformanceRangeText;}]]&gt;&lt;/xp:this.value&gt;
  579. &lt;/xp:text&gt;</pre>
  580. <p>Took some fiddling to figure it out, but gave me exactly what I wanted, two different ways.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/399/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=399&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  581. <wfw:commentRss>https://lostinxpages.com/2016/01/04/a-venture-into-datetimes-in-xpages/feed/</wfw:commentRss>
  582. <slash:comments>2</slash:comments>
  583. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  584. <media:title type="html">habap</media:title>
  585. </media:content>
  586. </item>
  587. <item>
  588. <title>Writing and speaking about your code might actually make it better</title>
  589. <link>https://lostinxpages.com/2015/10/08/writing-and-speaking-about-your-code-might-actually-make-it-better/</link>
  590. <comments>https://lostinxpages.com/2015/10/08/writing-and-speaking-about-your-code-might-actually-make-it-better/#comments</comments>
  591. <pubDate>Thu, 08 Oct 2015 22:52:59 +0000</pubDate>
  592. <dc:creator><![CDATA[David Navarre]]></dc:creator>
  593. <category><![CDATA[Java]]></category>
  594. <category><![CDATA[Server-Side Javascript]]></category>
  595. <category><![CDATA[Xpages]]></category>
  596. <category><![CDATA[@Unique]]></category>
  597. <category><![CDATA[for ... in]]></category>
  598. <category><![CDATA[java.util.Vector]]></category>
  599. <category><![CDATA[Learning by teaching]]></category>
  600. <category><![CDATA[Learning by writing]]></category>
  601. <category><![CDATA[removeAll]]></category>
  602.  
  603. <guid isPermaLink="false">http://lostinxpages.com/?p=383</guid>
  604. <description><![CDATA[I like to think I&#8217;m a smart guy, but I know there are many people out there who are smarter than I am. Sometimes, just thinking about Kathy and Julian showing us what we can do in Java in 10 Lines or Less helps one tighten up some code. Other times, sitting down to write [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=383&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
  605. <content:encoded><![CDATA[<p>I like to think I&#8217;m a smart guy, but I know there are many people out there who are smarter than I am. Sometimes, just thinking about Kathy and Julian showing us what we can do in <a href="http://www.slideshare.net/kjbrown13/10-lines-or-less" target="_blank">Java in 10 Lines or Less</a> helps one tighten up some code. Other times, sitting down to write about a code problem or a solution might actually make your code better.</p>
  606. <p>Our workflow application builds a list of approvers at each step that&#8217;s built from three fields on the workflow step configuration document. That list is stored on the document being approved so that we don&#8217;t have to do a lookup to determine who can take action. Sometimes, the approvers might be in more than one of those fields and thus, with sloppy coding, end up in the approver list more than once. The workflow step configuration allows us to choose which of those three fields is used to notify approvers (it could even be all three fields). Since we recently decided to keep track of who is notified, since they are the primary approver(s), the workflow code is now recording the names of those notified as it sends the message. Because the system is already used in 15 projects and will be used in 70+ projects at time in the future, it must be a highly configurable workflow.</p>
  607. <p>My coding challenge was simple. I wanted to display on the XPage the primary approver(s) and the other (proxy) approvers, as separate lists. This is probably a two-minute exercise for someone who knows what they&#8217;re doing, so it took me an hour.</p>
  608. <p>Because I worried about the duplicates, I didn&#8217;t use the remove method of the java.util.Vector, which would only take out the first instance of the duplicate. I lamented this, since playing with arrays is a little more involved. Basically, I decided to build the array by looping through looking for matches. Then, I was puzzled about how to find array elements in a Vector, but I got over that when I realized that I could use @Unique to clean both and make them both arrays! OK, not the best idea, but it worked.</p>
  609. <pre class="brush: jscript; title: ; notranslate">&lt;xp:label id=&quot;recipientListLabel&quot;&gt;
  610. &lt;xp:this.value&gt;&lt;![CDATA[#{javascript:
  611. var recipients=procureDoc.getDocument().getItemValue(&quot;RecipientList&quot;);
  612. return &quot;Approvers: &quot; + @Unique(@Name(&quot;[CN]&quot;,recipients)); }]]&gt;&lt;/xp:this.value&gt;
  613. &lt;/xp:label&gt;
  614. &lt;xp:label id=&quot;proxyListLabel&quot;&gt;
  615. &lt;xp:this.value&gt;&lt;![CDATA[#{javascript:
  616. var recipients = @Unique ( procureDoc.getDocument().getItemValue(&quot;RecipientList&quot;) );
  617. var allApprovers = @Unique ( procureDoc.getDocument().getItemValue(&quot;TSWFCurApprovers&quot;) );
  618. ar proxies = [];
  619. for ( approver in allApprovers ) {
  620. if ( @IsNotMember( allApprovers[approver], recipients) ) {
  621. proxies.push ( allApprovers[approver] );
  622. }
  623. }
  624. var proxyList = @Implode(@Name(&quot;[CN]&quot;,proxies),&quot;, &quot;);
  625. return &quot;Proxy Approvers: &quot; + proxyList; }]]&gt;&lt;/xp:this.value&gt;
  626. &lt;/xp:label&gt;</pre>
  627. <p>I was pretty happy with that, because I thought it would take me a lot of extensive looping and nonsense (since a quick search hadn&#8217;t revealed an array minus array code snippet.</p>
  628. <p>But, as I sat down to write about this and see if someone could better it (assuming that it would take someone two minutes), I returned to <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html#removeAll%28java.util.Collection%29" target="_blank">the documentation</a>. I just wanted to double-check that remove was a &#8220;method&#8221; and that I wasn&#8217;t being foolish and calling it a &#8220;function&#8221; instead. So, then, I saw it. The code simplifier. <strong>removeAll</strong> was exactly what I was looking for and, I&#8217;d bet, something every Java coder worth their salt could have slapped on the problem in an instant. Learning curve.</p>
  629. <pre class="brush: jscript; title: ; notranslate">&lt;xp:label id=&quot;proxyListLabel&quot;&gt;
  630. &lt;xp:this.value&gt;&lt;![CDATA[#{javascript:
  631. var recipients:java.util.Vector = procureDoc.getDocument().getItemValue(&quot;RecipientList&quot;);
  632. var allApprovers:java.util.Vector = procureDoc.getDocument().getItemValue(&quot;TSWFCurApprovers&quot;);
  633. allApprovers.removeAll(recipients);
  634.  
  635. var proxyList = @Implode(@Name(&quot;[CN]&quot;,allApprovers),&quot;, &quot;);
  636. return &quot;Proxy Approvers: &quot; + proxyList; }]]&gt;&lt;/xp:this.value&gt;
  637. &lt;/xp:label&gt;</pre>
  638. <p>It&#8217;s always good to learn. When I was a Scoutmaster, one of the things I told the older Scouts was that by teaching skills, they ended up learning them even better themselves. So, as I sat down to write this, more to share the experience than to teach, I ended up learning more. It forced me to research a little, to make sure I was covering my bases and allowed me to cut some inelegant code from 8 lines to 5 (though I imagine the daring would simply cut it to 2 lines).</p>
  639. <p>So, next time you or your boss thinks there&#8217;s no time for writing up your thoughts on coding, or no time to speak at conferences, or no time to share your ideas at the local user group meeting, remember that you&#8217;re likely to end up with better code even if you&#8217;re the only one who contributes. The process forces it on you.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lostinxpages.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lostinxpages.wordpress.com/383/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=lostinxpages.com&#038;blog=46534584&#038;post=383&#038;subd=lostinxpages&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
  640. <wfw:commentRss>https://lostinxpages.com/2015/10/08/writing-and-speaking-about-your-code-might-actually-make-it-better/feed/</wfw:commentRss>
  641. <slash:comments>2</slash:comments>
  642. <media:content url="http://1.gravatar.com/avatar/deb5781b7343da77e1203b1312a9dbc0?s=96&#38;d=identicon&#38;r=G" medium="image">
  643. <media:title type="html">habap</media:title>
  644. </media:content>
  645. </item>
  646. </channel>
  647. </rss>
  648.  

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