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://unenc.frostillic.us/f.nsf/feed.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <rss version="2.0"
  3. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  4. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  5. xmlns:dc="http://purl.org/dc/elements/1.1/"
  6. xmlns:atom="http://www.w3.org/2005/Atom"
  7. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  8. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  9. >
  10.  
  11. <channel>
  12. <title>frostillic.us Data</title>
  13. <atom:link href="http://unenc.frostillic.us/f.nsf/feed.xml" rel="self" type="application/rss+xml" />
  14. <link>http://frostillic.us</link>
  15. <description></description>
  16. <lastBuildDate>Mon, 25 Sep 2017 06:14:17 +0000</lastBuildDate>
  17. <language>en</language>
  18.  
  19. <item>
  20. <title>Side&#45;Project&#32;Monday&#32;Evening</title>
  21. <link>http://frostillic.us/f.nsf/posts/&#51;&#51;&#56;&#53;C&#52;&#51;E&#57;B&#50;F&#57;&#51;&#53;&#51;&#56;&#53;&#50;&#53;&#56;&#49;&#52;C&#48;&#48;&#52;&#56;&#53;B&#53;&#52;</link>
  22. <comments>http://frostillic.us/f.nsf/posts/&#51;&#51;&#56;&#53;C&#52;&#51;E&#57;B&#50;F&#57;&#51;&#53;&#51;&#56;&#53;&#50;&#53;&#56;&#49;&#52;C&#48;&#48;&#52;&#56;&#53;B&#53;&#52;#comments</comments>
  23. <pubDate>Tue, 27 Jun 2017 12:49:32 +0000</pubDate>
  24. <dc:creator>Jesse Gallagher</dc:creator>
  25. <category>xpages</category>
  26.  
  27. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/&#51;&#51;&#56;&#53;C&#52;&#51;E&#57;B&#50;F&#57;&#51;&#53;&#51;&#56;&#53;&#50;&#53;&#56;&#49;&#52;C&#48;&#48;&#52;&#56;&#53;B&#53;&#52;</guid>
  28. <description>
  29. Yesterday&#44;&#32;in&#32;one&#32;of&#32;my&#32;various&#32;Slack&#32;chats&#44;&#32;the&#32;topic&#32;of&#32;JShell&#32;&#45;&#32;the&#32;Java&#32;&#57;&#32;&#10;REPL&#32;&#45;&#32;came&#32;up&#32;i[...]
  30. </description>
  31. <content:encoded>Yesterday&#44;&#32;in&#32;one&#32;of&#32;my&#32;various&#32;Slack&#32;chats&#44;&#32;the&#32;topic&#32;of&#32;JShell&#32;&#45;&#32;the&#32;Java&#32;&#57;&#32;&#10;REPL&#32;&#45;&#32;came&#32;up&#32;in&#32;the&#32;context&#32;of&#32;how&#32;useful&#32;it&#32;would&#32;be&#32;for&#32;XPages&#32;development&#46;&#32;&#10;Being&#32;able&#32;to&#32;open&#32;up&#32;a&#32;&#34;shell&#34;&#32;into&#32;a&#32;running&#32;XPages&#32;application&#32;could&#32;be&#32;&#10;really&#32;useful&#32;in&#32;a&#32;lot&#32;of&#32;ways&#32;&#45;&#32;and&#32;I&#32;think&#32;that&#32;the&#32;XPages&#32;Debug&#32;Toolbar&#32;has&#32;&#10;an&#32;SSJS&#45;evaluate&#32;feature&#32;that&#32;would&#32;do&#32;something&#32;like&#32;this&#46;&#10;&#10;Still&#44;&#32;it&#32;got&#32;me&#32;looking&#32;around&#32;a&#32;bit&#44;&#32;and&#32;I&#32;ran&#32;across&#32;Groovysh&#32;Server&#44;&#32;which&#32;&#10;is&#32;a&#32;project&#32;that&#32;combines&#32;Apache&#39;s&#32;SSH&#32;server&#32;with&#32;Groovy&#39;s&#32;REPL&#32;to&#32;make&#32;an&#32;&#10;interactive&#32;remote&#45;login&#32;shell&#32;running&#32;in&#32;the&#32;context&#32;of&#32;a&#32;given&#32;JRE&#46;&#32;It&#32;even&#32;&#10;comes&#32;with&#32;a&#32;Spring&#32;Framework&#32;binding&#44;&#32;showing&#32;its&#32;utility&#32;for&#32;this&#32;sort&#32;of&#32;&#10;thing&#46;&#10;&#10;So&#32;I&#32;decided&#32;to&#32;see&#32;how&#32;easy&#32;it&#32;would&#32;be&#32;to&#32;adapt&#32;this&#32;into&#32;an&#32;XPages&#32;context&#44;&#32;&#10;and&#32;the&#32;answer&#32;is&#32;&#34;pretty&#32;easy&#34;&#46;&#32;I&#32;created&#32;a&#32;new&#32;project&#32;called&#32;XPages&#32;Groovy&#32;&#10;Shell&#32;to&#32;do&#32;just&#32;this&#46;&#32;It&#39;s&#32;an&#32;XSP&#32;Library&#32;that&#32;you&#32;can&#32;enable&#32;in&#32;an&#32;&#10;application&#32;to&#44;&#32;when&#32;it&#39;s&#32;loaded&#32;&#40;i&#46;e&#46;&#32;when&#32;someone&#32;visits&#32;it&#32;via&#32;the&#32;web&#41;&#44;&#32;&#10;spawn&#32;an&#32;SSH&#32;server&#32;on&#32;the&#32;specified&#32;port&#32;to&#32;allow&#32;logins&#32;and&#32;evaluation&#32;of&#32;&#10;Groovy&#32;code&#32;using&#32;the&#32;app&#39;s&#32;ClassLoader&#46;&#10;&#10;Now&#44;&#32;I&#32;don&#39;t&#32;expect&#32;this&#32;to&#32;be&#32;a&#32;real&#32;project&#32;necessarily&#32;&#45;&#32;I&#32;have&#32;a&#32;lot&#32;of&#32;&#10;non&#45;tinkering&#32;work&#32;on&#32;my&#32;plate&#32;&#45;&#32;but&#32;it&#32;can&#32;serve&#32;as&#32;an&#32;interesting&#32;proof&#32;of&#32;&#10;concept&#46;&#32;Still&#44;&#32;as&#32;it&#32;is&#44;&#32;it&#39;s&#32;not&#32;too&#32;far&#32;from&#32;being&#32;expanded&#32;to&#32;having&#32;some&#32;&#10;proper&#32;user&#32;authentication&#44;&#32;and&#44;&#32;with&#32;some&#32;mechanism&#32;to&#32;&#34;break&#32;into&#34;&#32;the&#32;Faces&#32;&#10;environment&#32;to&#32;work&#32;with&#32;existing&#32;bean&#32;instances&#44;&#32;it&#32;could&#32;be&#32;really&#32;something&#46;&#32;&#10;As&#32;it&#32;stands&#44;&#32;take&#32;a&#32;look&#32;&#45;&#32;it&#39;s&#32;not&#32;a&#32;lot&#32;of&#32;code&#44;&#32;and&#32;the&#32;concepts&#32;could&#32;be&#32;&#10;useful&#32;elsewhere&#32;too&#46;&#10;</content:encoded>
  32. </item>
  33.  
  34. <item>
  35. <title>Including&#32;a&#32;Headless&#32;DDE&#32;Build&#32;in&#32;a&#32;Maven&#32;Tree</title>
  36. <link>http://frostillic.us/f.nsf/posts/FFE&#48;&#53;&#51;CFC&#53;&#51;&#51;FF&#57;B&#56;&#53;&#50;&#53;&#56;&#48;E&#51;&#48;&#48;&#53;&#54;&#57;&#51;BC</link>
  37. <comments>http://frostillic.us/f.nsf/posts/FFE&#48;&#53;&#51;CFC&#53;&#51;&#51;FF&#57;B&#56;&#53;&#50;&#53;&#56;&#48;E&#51;&#48;&#48;&#53;&#54;&#57;&#51;BC#comments</comments>
  38. <pubDate>Tue, 14 Mar 2017 15:45:22 +0000</pubDate>
  39. <dc:creator>Jesse Gallagher</dc:creator>
  40. <category>maven</category>
  41. <category>headless&#45;designer</category>
  42.  
  43. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/FFE&#48;&#53;&#51;CFC&#53;&#51;&#51;FF&#57;B&#56;&#53;&#50;&#53;&#56;&#48;E&#51;&#48;&#48;&#53;&#54;&#57;&#51;BC</guid>
  44. <description>
  45. Most&#32;of&#32;my&#32;Domino&#32;projects&#32;nowadays&#32;have&#32;two&#32;components&#58;&#32;a&#32;suite&#32;of&#32;OSGi&#32;&#10;plugins&#47;features&#32;and&#32;[...]
  46. </description>
  47. <content:encoded>Most&#32;of&#32;my&#32;Domino&#32;projects&#32;nowadays&#32;have&#32;two&#32;components&#58;&#32;a&#32;suite&#32;of&#32;OSGi&#32;&#10;plugins&#47;features&#32;and&#32;at&#32;least&#32;one&#32;NSF&#46;&#32;Historically&#44;&#32;I&#39;ve&#32;kept&#32;the&#32;NSF&#32;part&#32;&#10;separate&#32;from&#32;the&#32;OSGi&#32;plugin&#32;projects&#32;&#45;&#32;I&#39;ll&#32;keep&#32;the&#32;ODP&#32;in&#32;the&#32;repo&#44;&#32;but&#32;&#10;then&#32;usually&#32;also&#32;keep&#32;a&#32;recent&#32;&#34;build&#34;&#32;made&#32;by&#32;copying&#32;the&#32;database&#32;from&#32;my&#32;&#10;dev&#32;server&#44;&#32;and&#32;then&#32;include&#32;that&#32;built&#32;version&#32;in&#32;the&#32;result&#32;using&#32;the&#32;Maven&#32;&#10;Assembly&#32;plugin&#46;&#32;This&#32;works&#44;&#32;but&#32;it&#39;s&#32;not&#32;quite&#32;ideal&#58;&#32;part&#32;of&#32;the&#32;benefit&#32;of&#32;&#10;having&#32;a&#32;Maven&#32;project&#32;being&#32;automatically&#32;built&#32;is&#32;that&#32;I&#32;can&#32;have&#32;a&#32;&#10;consistent&#44;&#32;neutral&#32;environment&#32;doing&#32;the&#32;compilation&#44;&#32;without&#32;reliance&#32;on&#32;my&#32;&#10;local&#32;Designer&#46;&#32;Fortunately&#44;&#32;Designer&#32;has&#32;a&#32;&#34;headless&#34;&#32;mode&#32;to&#32;build&#32;NSFs&#32;in&#32;a&#32;&#10;scripted&#32;way&#44;&#32;and&#32;Christian&#32;G&#252;demann&#32;has&#32;done&#32;the&#32;legwork&#32;of&#32;building&#32;that&#32;into&#32;&#10;a&#32;Maven&#32;plugin&#46;&#10;&#10;It&#32;should&#32;come&#32;as&#32;no&#32;surprise&#44;&#32;however&#44;&#32;that&#32;this&#32;is&#32;a&#32;fiddly&#32;process&#44;&#32;and&#32;I&#32;&#10;ran&#32;into&#32;a&#32;couple&#32;subtle&#32;problems&#32;when&#32;configuring&#32;my&#32;build&#46;&#10;&#10;Setting&#32;Up&#32;Designer&#10;&#10;The&#32;first&#32;step&#32;is&#32;to&#32;tell&#32;Designer&#32;that&#32;you&#32;want&#32;to&#32;allow&#32;this&#32;use&#44;&#32;which&#32;is&#32;&#10;done&#32;by&#32;setting&#32;DESIGNER&#95;AUTO&#95;ENABLED&#61;true&#32;in&#32;your&#32;notes&#46;ini&#46;&#32;The&#32;second&#32;step&#32;&#10;is&#32;to&#32;configure&#32;Notes&#32;to&#32;use&#32;an&#32;ID&#32;file&#32;with&#32;no&#32;password&#58;&#32;because&#32;Designer&#32;is&#32;&#10;going&#32;to&#32;be&#32;launched&#32;and&#32;quit&#32;automatically&#32;several&#32;times&#44;&#32;you&#32;can&#39;t&#32;just&#32;leave&#32;&#10;it&#32;running&#32;and&#32;have&#32;it&#32;use&#32;an&#32;open&#32;session&#46;&#32;This&#32;is&#32;a&#32;perfect&#32;opportunity&#32;to&#32;&#10;spin&#32;up&#32;a&#32;&#34;template&#34;&#32;ID&#32;file&#44;&#32;distinct&#32;from&#32;your&#32;developer&#32;ID&#44;&#32;if&#32;you&#32;haven&#39;t&#32;&#10;do&#32;so&#32;already&#46;&#32;Also&#44;&#32;uh&#46;&#46;&#46;&#32;make&#32;sure&#32;that&#32;this&#32;user&#32;has&#32;at&#32;least&#32;Designer&#32;&#10;rights&#32;to&#32;the&#32;NSF&#32;it&#39;s&#32;constructing&#46;&#32;I&#32;ran&#32;into&#32;a&#32;bit&#32;of&#32;logical&#32;trouble&#32;with&#32;&#10;that&#32;at&#32;first&#46;&#10;&#10;The&#32;last&#32;step&#32;was&#32;something&#32;I&#32;didn&#39;t&#32;realize&#32;until&#32;late&#58;&#32;keep&#32;your&#32;Designer&#32;&#10;installation&#32;clean&#32;of&#32;the&#32;plugins&#32;you&#39;re&#32;going&#32;to&#32;be&#32;auto&#45;installing&#46;&#32;Ideally&#44;&#32;&#10;Designer&#32;will&#32;be&#32;essentially&#32;a&#32;fresh&#32;install&#44;&#32;with&#32;no&#32;plugins&#32;added&#44;&#32;and&#32;then&#32;&#10;the&#32;Maven&#32;definition&#32;will&#32;list&#32;and&#32;install&#32;all&#32;dependencies&#46;&#32;If&#32;it&#39;s&#32;not&#32;clean&#44;&#32;&#10;you&#32;may&#32;run&#32;into&#32;trouble&#32;where&#32;Designer&#32;emits&#32;errors&#32;about&#32;the&#32;plugin&#32;&#10;conflicting&#32;with&#32;the&#32;installed&#32;version&#46;&#10;&#10;Setting&#32;Up&#32;The&#32;Maven&#32;Environment&#10;&#10;Before&#32;getting&#32;to&#32;the&#32;actual&#32;Maven&#32;project&#32;files&#44;&#32;there&#39;s&#32;some&#32;machine&#45;specific&#32;&#10;information&#32;to&#32;set&#44;&#32;which&#32;is&#32;best&#32;done&#32;with&#32;properties&#32;in&#32;your&#32;&#10;&#126;&#47;&#46;m&#50;&#47;settings&#46;xml&#44;&#32;much&#32;like&#32;the&#32;notes&#45;platform&#32;and&#32;notes&#45;program&#32;properties&#46;&#32;&#10;In&#32;keeping&#32;with&#32;that&#32;convention&#44;&#32;I&#32;named&#32;them&#32;as&#32;such&#58;&#10;&#10;&#60;properties&#62;&#10;&#9;&#60;notes&#45;platform&#62;file&#58;&#47;&#47;&#47;C&#58;&#47;Users&#47;jesse&#47;Java&#47;XPages&#60;&#47;notes&#45;platform&#62;&#10;&#9;&#60;notes&#45;program&#62;C&#58;&#92;Program&#32;Files&#32;&#40;x&#56;&#54;&#41;&#92;IBM&#92;Notes&#60;&#47;notes&#45;program&#62;&#10;&#9;&#60;notes&#45;designer&#62;C&#58;&#92;Program&#32;Files&#32;&#10;&#40;x&#56;&#54;&#41;&#92;IBM&#92;Notes&#92;designer&#46;exe&#60;&#47;notes&#45;designer&#62;&#10;&#9;&#60;notes&#45;data&#62;C&#58;&#92;Program&#32;Files&#32;&#40;x&#56;&#54;&#41;&#92;IBM&#92;Notes&#92;Data&#60;&#47;notes&#45;data&#62;&#10;&#60;&#47;properties&#62;&#10;&#10;Deploying&#32;Features&#32;And&#32;Initial&#32;Root&#32;Project&#32;Config&#10;&#10;The&#32;first&#32;came&#32;in&#32;setting&#32;up&#32;the&#32;automatic&#32;deployment&#32;of&#32;the&#32;feature&#46;&#32;The&#32;Maven&#32;&#10;plugin&#32;lets&#32;you&#32;specify&#32;features&#32;that&#32;you&#32;want&#32;added&#32;to&#32;and&#32;then&#32;removed&#32;from&#32;&#10;your&#32;Designer&#32;installation&#46;&#32;In&#32;this&#32;case&#44;&#32;the&#32;feature&#32;and&#32;update&#32;site&#32;are&#32;&#10;within&#32;the&#32;same&#32;Maven&#32;tree&#32;being&#32;built&#44;&#32;which&#32;adds&#32;a&#32;wrinkle&#32;or&#32;two&#46;&#10;&#10;The&#32;first&#32;is&#32;that&#44;&#32;since&#32;the&#32;specific&#32;version&#32;number&#32;of&#32;the&#32;feature&#32;changes&#32;&#10;every&#32;build&#32;due&#32;to&#32;the&#32;qualifier&#44;&#32;I&#32;had&#32;to&#32;set&#32;up&#32;the&#32;root&#32;project&#32;to&#32;export&#32;&#10;the&#32;qualifier&#32;value&#32;that&#32;Tycho&#32;plans&#32;to&#32;use&#46;&#32;This&#32;is&#32;done&#32;using&#32;the&#32;&#10;tycho&#45;packaging&#45;plugin&#44;&#32;which&#32;a&#32;standard&#32;Maven&#32;project&#32;will&#32;have&#32;loaded&#32;in&#32;the&#32;&#10;root&#32;project&#32;pom&#46;&#32;The&#32;main&#32;change&#32;is&#32;to&#32;explicitly&#32;tell&#32;it&#32;to&#32;run&#32;the&#32;&#10;build&#45;qualifier&#32;goal&#32;early&#32;on&#44;&#32;which&#32;has&#32;the&#32;side&#32;effect&#32;of&#32;contributing&#32;a&#32;&#10;couple&#32;properties&#32;to&#32;the&#32;rest&#32;of&#32;the&#32;build&#58;&#10;&#10;&#60;plugin&#62;&#10;&#9;&#60;groupId&#62;org&#46;eclipse&#46;tycho&#60;&#47;groupId&#62;&#10;&#9;&#60;artifactId&#62;tycho&#45;packaging&#45;plugin&#60;&#47;artifactId&#62;&#10;&#9;&#60;version&#62;&#36;&#123;tycho&#45;version&#125;&#60;&#47;version&#62;&#10;&#9;&#60;configuration&#62;&#10;&#9;&#32;&#60;strictVersions&#62;false&#60;&#47;strictVersions&#62;&#10;&#9;&#60;&#47;configuration&#62;&#10;&#10;&#9;&#60;&#33;&#45;&#45;&#32;Contribute&#32;the&#32;&#34;buildQualifier&#34;&#32;property&#32;to&#32;the&#32;environment&#32;&#45;&#45;&#62;&#10;&#9;&#60;executions&#62;&#10;&#9;&#32;&#60;execution&#62;&#10;&#9;&#32;&#32;&#60;goals&#62;&#10;&#9;&#32;&#32;&#32;&#60;goal&#62;build&#45;qualifier&#60;&#47;goal&#62;&#10;&#9;&#32;&#32;&#60;&#47;goals&#62;&#10;&#9;&#32;&#32;&#60;phase&#62;validate&#60;&#47;phase&#62;&#10;&#9;&#32;&#60;&#47;execution&#62;&#10;&#9;&#60;&#47;executions&#62;&#10;&#60;&#47;plugin&#62;&#10;&#10;Once&#32;that&#39;s&#32;running&#44;&#32;we&#39;ll&#32;have&#32;the&#32;&#36;&#123;qualifiedVersion&#125;&#32;property&#32;to&#32;use&#32;down&#32;&#10;the&#32;line&#32;to&#32;house&#32;the&#32;actual&#32;version&#32;made&#32;during&#32;the&#32;build&#46;&#10;&#10;The&#32;second&#32;hurdle&#32;is&#32;figuring&#32;out&#32;the&#32;URL&#32;to&#32;use&#32;to&#32;point&#32;to&#32;the&#32;update&#32;site&#46;&#32;I&#32;&#10;did&#32;this&#32;with&#32;a&#32;property&#32;in&#32;the&#32;root&#32;project&#32;pom&#44;&#32;alongside&#32;setting&#32;to&#32;&#10;properties&#32;used&#32;by&#32;the&#32;Headless&#32;Designer&#32;plugin&#58;&#10;&#10;&#60;properties&#62;&#10;&#9;&#60;&#33;&#45;&#45;&#32;snip&#32;&#45;&#45;&#62;&#10;&#9;&#10;&#9;&#60;&#33;&#45;&#45;&#32;Headless&#32;Designer&#32;properties&#32;&#45;&#45;&#62;&#10;&#9;&#10;&#60;designer&#46;feature&#46;url&#62;&#36;&#123;project&#46;baseUri&#125;&#46;&#46;&#47;&#46;&#46;&#47;releng&#47;com&#46;example&#46;some&#46;updatesite&#10;&#47;target&#47;site&#60;&#47;designer&#46;feature&#46;url&#62;&#10;&#9;&#60;ddehd&#46;designerexec&#62;&#36;&#123;notes&#45;designer&#125;&#60;&#47;ddehd&#46;designerexec&#62;&#10;&#9;&#60;ddehd&#46;notesdata&#62;&#36;&#123;notes&#45;data&#125;&#60;&#47;ddehd&#46;notesdata&#62;&#10;&#60;&#47;properties&#62;&#10;&#10;Much&#32;like&#32;with&#32;OSGi&#32;dependency&#32;repositories&#44;&#32;this&#32;path&#32;is&#32;recomputed&#32;&#10;per&#45;project&#46;&#32;The&#32;NSF&#32;projects&#32;are&#32;housed&#32;within&#32;an&#32;nsf&#32;folder&#32;in&#32;my&#32;tree&#44;&#32;so&#32;I&#32;&#10;include&#32;the&#32;&#46;&#46;&#47;&#46;&#46;&#32;to&#32;move&#32;up&#32;to&#32;the&#32;root&#32;project&#44;&#32;before&#32;descending&#32;back&#32;down&#32;&#10;into&#32;the&#32;update&#32;site&#46;&#32;Note&#32;that&#32;this&#32;requires&#32;that&#32;the&#32;update&#32;site&#32;project&#32;be&#32;&#10;built&#32;earlier&#32;in&#32;the&#32;build&#32;than&#32;the&#32;NSF&#46;&#10;&#10;Finally&#44;&#32;bringing&#32;these&#32;together&#44;&#32;I&#32;added&#32;a&#32;block&#32;for&#32;the&#32;common&#32;settings&#32;for&#32;&#10;the&#32;plugin&#32;to&#32;the&#32;pluginManagement&#32;section&#32;of&#32;the&#32;root&#32;project&#32;pom&#58;&#10;&#10;&#60;plugin&#62;&#10;&#9;&#60;groupId&#62;org&#46;openntf&#46;maven&#60;&#47;groupId&#62;&#10;&#9;&#60;artifactId&#62;headlessdesigner&#45;maven&#45;plugin&#60;&#47;artifactId&#62;&#10;&#9;&#60;version&#62;&#49;&#46;&#51;&#46;&#48;&#60;&#47;version&#62;&#10;&#9;&#60;extensions&#62;true&#60;&#47;extensions&#62;&#10;&#9;&#60;configuration&#62;&#10;&#9;&#32;&#60;features&#62;&#10;&#9;&#32;&#32;&#60;feature&#62;&#10;&#9;&#32;&#32;&#32;&#60;featureId&#62;com&#46;example&#46;some&#46;feature&#60;&#47;featureId&#62;&#10;&#9;&#32;&#32;&#32;&#60;url&#62;&#36;&#123;designer&#46;feature&#46;url&#125;&#60;&#47;url&#62;&#10;&#9;&#32;&#32;&#32;&#60;version&#62;&#36;&#123;qualifiedVersion&#125;&#60;&#47;version&#62;&#10;&#9;&#32;&#32;&#60;&#47;feature&#62;&#10;&#9;&#32;&#60;&#47;features&#62;&#10;&#9;&#60;&#47;configuration&#62;&#10;&#60;&#47;plugin&#62;&#10;&#10;Configuring&#32;The&#32;NSF&#32;Project&#10;&#10;With&#32;most&#32;aspects&#32;configured&#32;higher&#32;up&#32;in&#32;the&#32;project&#32;tree&#44;&#32;the&#32;actual&#32;NSF&#32;&#10;project&#32;pom&#32;is&#32;fairly&#32;slim&#58;&#10;&#10;&#60;&#63;xml&#32;version&#61;&#34;&#49;&#46;&#48;&#34;&#63;&#62;&#10;&#60;project&#10;&#9;xsi&#58;schemaLocation&#61;&#34;http&#58;&#47;&#47;maven&#46;apache&#46;org&#47;POM&#47;&#52;&#46;&#48;&#46;&#48;&#32;&#10;http&#58;&#47;&#47;maven&#46;apache&#46;org&#47;xsd&#47;maven&#45;&#52;&#46;&#48;&#46;&#48;&#46;xsd&#34;&#10;&#9;xmlns&#61;&#34;http&#58;&#47;&#47;maven&#46;apache&#46;org&#47;POM&#47;&#52;&#46;&#48;&#46;&#48;&#34;&#32;&#10;xmlns&#58;xsi&#61;&#34;http&#58;&#47;&#47;www&#46;w&#51;&#46;org&#47;&#50;&#48;&#48;&#49;&#47;XMLSchema&#45;instance&#34;&#62;&#10;&#9;&#60;modelVersion&#62;&#52;&#46;&#48;&#46;&#48;&#60;&#47;modelVersion&#62;&#10;&#9;&#60;parent&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;groupId&#62;com&#46;example&#60;&#47;groupId&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;artifactId&#62;some&#45;plugin&#60;&#47;artifactId&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;version&#62;&#49;&#46;&#48;&#46;&#48;&#45;SNAPSHOT&#60;&#47;version&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;relativePath&#62;&#46;&#46;&#47;&#46;&#46;&#60;&#47;relativePath&#62;&#10;&#9;&#60;&#47;parent&#62;&#10;&#9;&#60;artifactId&#62;nsf&#45;somensf&#60;&#47;artifactId&#62;&#10;&#9;&#10;&#9;&#60;packaging&#62;domino&#45;nsf&#60;&#47;packaging&#62;&#10;&#9;&#10;&#9;&#60;properties&#62;&#10;&#9;&#32;&#10;&#60;ddehd&#46;odpdirectory&#62;&#36;&#123;basedir&#125;&#92;&#46;&#46;&#92;&#46;&#46;&#92;&#46;&#46;&#92;nsf&#92;nsf&#45;somensf&#60;&#47;ddehd&#46;odpdirectory&#62;&#10;&#9;&#32;&#60;ddehd&#46;targetdbname&#62;somensf&#46;ntf&#60;&#47;ddehd&#46;targetdbname&#62;&#10;&#9;&#60;&#47;properties&#62;&#10;&#9;&#10;&#9;&#60;build&#62;&#10;&#9;&#32;&#60;plugins&#62;&#10;&#9;&#32;&#32;&#60;plugin&#62;&#10;&#9;&#32;&#32;&#32;&#60;groupId&#62;org&#46;openntf&#46;maven&#60;&#47;groupId&#62;&#10;&#9;&#32;&#32;&#32;&#60;artifactId&#62;headlessdesigner&#45;maven&#45;plugin&#60;&#47;artifactId&#62;&#10;&#9;&#32;&#32;&#32;&#60;extensions&#62;true&#60;&#47;extensions&#62;&#10;&#9;&#32;&#32;&#60;&#47;plugin&#62;&#10;&#9;&#32;&#60;&#47;plugins&#62;&#10;&#9;&#60;&#47;build&#62;&#10;&#60;&#47;project&#62;&#10;&#10;The&#32;properties&#32;block&#32;sets&#32;two&#32;more&#32;properties&#32;automatically&#32;read&#32;by&#32;the&#32;&#10;Headless&#32;Designer&#32;Maven&#32;plugin&#46;&#32;In&#32;this&#32;case&#44;&#32;the&#32;path&#32;is&#32;an&#32;artifact&#32;of&#32;the&#32;&#10;history&#32;of&#32;the&#32;Git&#32;repository&#58;&#32;since&#32;the&#32;ODP&#32;was&#32;added&#32;to&#32;the&#32;repo&#32;outside&#32;of&#32;&#10;the&#32;Maven&#32;tree&#44;&#32;the&#32;path&#32;backs&#32;up&#32;and&#32;out&#32;of&#32;the&#32;whole&#32;thing&#44;&#32;and&#32;then&#32;to&#32;&#10;another&#32;folder&#32;with&#32;a&#32;confusingly&#45;similar&#32;name&#46;&#32;In&#32;this&#32;case&#44;&#32;it&#32;avoids&#32;a&#32;lot&#32;&#10;of&#32;developer&#32;hassle&#44;&#32;but&#32;a&#32;properly&#45;configured&#32;project&#32;have&#32;the&#32;ODP&#32;in&#32;a&#32;&#10;subfolder&#32;within&#32;the&#32;Maven&#32;project&#32;&#40;maybe&#32;src&#47;main&#47;odp&#32;if&#32;you&#32;want&#32;to&#32;be&#32;all&#32;&#10;idiomatic&#32;about&#32;it&#41;&#46;&#10;&#10;Note&#32;that&#32;the&#32;ddehd&#46;targetdbname&#32;property&#32;is&#32;the&#32;NSF&#32;name&#32;used&#32;both&#32;for&#32;the&#32;&#10;intermediate&#32;build&#32;NSF&#32;&#40;which&#32;is&#32;in&#32;the&#32;Notes&#32;data&#32;directory&#41;&#32;and&#32;for&#32;the&#32;&#10;destination&#32;file&#32;in&#32;the&#32;project&#39;s&#32;target&#32;directory&#44;&#32;so&#32;make&#32;sure&#32;it&#32;doesn&#39;t&#32;&#10;conflict&#32;with&#32;any&#32;existing&#32;DBs&#46;&#10;&#10;Bringing&#32;It&#32;All&#32;Together&#10;&#10;Once&#32;you&#32;have&#32;the&#32;NSF&#32;built&#44;&#32;you&#32;can&#32;include&#32;it&#32;in&#32;an&#32;Assembly&#32;down&#32;the&#32;line&#44;&#32;&#10;leading&#32;to&#32;a&#32;nicely&#45;packaged&#32;update&#32;site&#32;&#43;&#32;NSF&#32;pair&#46;&#32;This&#32;section&#32;is&#32;something&#32;&#10;of&#32;an&#32;&#34;IOU&#34;&#32;at&#32;the&#32;moment&#44;&#32;though&#32;&#45;&#32;I&#32;have&#32;an&#32;idea&#32;for&#32;how&#32;I&#32;want&#32;to&#32;do&#32;this&#44;&#32;&#10;but&#32;I&#32;haven&#39;t&#32;actually&#32;implemented&#32;it&#32;yet&#46;&#32;Once&#32;I&#32;do&#44;&#32;I&#39;ll&#32;write&#32;a&#32;followup&#32;&#10;post&#46;&#10;&#10;In&#32;the&#32;mean&#32;time&#44;&#32;having&#32;a&#32;build&#32;server&#32;build&#32;the&#32;NSF&#32;can&#32;be&#32;a&#32;useful&#32;check&#32;on&#32;&#10;manking&#32;sure&#32;everything&#32;is&#32;working&#32;correctly&#44;&#32;and&#32;is&#32;a&#32;perfect&#32;stepping&#45;stone&#32;&#10;towards&#32;a&#32;complete&#32;solution&#46;&#32;Ideally&#44;&#32;in&#32;addition&#32;to&#32;packaging&#32;up&#32;the&#32;result&#44;&#32;a&#32;&#10;full&#32;system&#32;would&#32;also&#32;deploy&#32;the&#32;NSF&#32;and&#32;plugins&#32;to&#32;a&#32;Domino&#32;server&#32;and&#32;run&#32;&#10;some&#32;UI&#47;service&#32;tests&#32;against&#32;it&#46;&#32;However&#44;&#32;that&#39;s&#32;a&#32;whole&#32;ball&#32;of&#32;wax&#32;that&#32;I&#32;&#10;haven&#39;t&#32;touched&#32;on&#32;myself&#32;&#40;and&#32;is&#32;also&#32;likely&#32;prohibitive&#32;for&#32;licensing&#32;reasons&#32;&#10;in&#32;most&#32;cases&#32;anyway&#41;&#46;&#32;For&#32;now&#44;&#32;it&#39;s&#32;a&#32;step&#32;in&#32;the&#32;right&#32;direction&#46;&#10;</content:encoded>
  48. </item>
  49.  
  50. <item>
  51. <title>That&#32;Java&#32;Thing&#44;&#32;Part&#32;&#49;&#55;&#58;&#32;My&#32;Current&#32;XPages&#32;Plug&#45;in&#32;Dev&#32;Environment</title>
  52. <link>http://frostillic.us/f.nsf/posts/D&#54;C&#48;&#55;&#55;&#55;&#53;&#55;A&#53;&#55;&#48;&#57;&#53;&#54;&#56;&#53;&#50;&#53;&#56;&#48;D&#51;&#48;&#48;&#53;A&#49;&#48;&#55;&#52;</link>
  53. <comments>http://frostillic.us/f.nsf/posts/D&#54;C&#48;&#55;&#55;&#55;&#53;&#55;A&#53;&#55;&#48;&#57;&#53;&#54;&#56;&#53;&#50;&#53;&#56;&#48;D&#51;&#48;&#48;&#53;A&#49;&#48;&#55;&#52;#comments</comments>
  54. <pubDate>Sun, 26 Feb 2017 16:23:22 +0000</pubDate>
  55. <dc:creator>Jesse Gallagher</dc:creator>
  56. <category>java</category>
  57. <category>xpages</category>
  58.  
  59. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/D&#54;C&#48;&#55;&#55;&#55;&#53;&#55;A&#53;&#55;&#48;&#57;&#53;&#54;&#56;&#53;&#50;&#53;&#56;&#48;D&#51;&#48;&#48;&#53;A&#49;&#48;&#55;&#52;</guid>
  60. <description>
  61. It&#39;s&#32;been&#32;a&#32;while&#32;since&#32;I&#32;started&#32;this&#32;series&#32;on&#32;Java&#32;development&#44;&#32;but&#32;I&#39;ve&#32;&#10;been&#32;meaning&#32;for&#32;a[...]
  62. </description>
  63. <content:encoded>It&#39;s&#32;been&#32;a&#32;while&#32;since&#32;I&#32;started&#32;this&#32;series&#32;on&#32;Java&#32;development&#44;&#32;but&#32;I&#39;ve&#32;&#10;been&#32;meaning&#32;for&#32;a&#32;bit&#32;now&#32;to&#32;crack&#32;it&#32;back&#32;open&#32;to&#32;discuss&#32;my&#32;current&#32;&#10;development&#32;setup&#32;for&#32;plug&#45;ins&#44;&#32;since&#32;it&#39;s&#32;changed&#32;a&#32;bit&#46;&#10;&#10;The&#32;biggest&#32;change&#32;is&#32;that&#44;&#32;thanks&#32;to&#32;Serdar&#39;s&#32;work&#32;on&#32;the&#32;latest&#32;XPages&#32;SDK&#32;&#10;release&#44;&#32;I&#32;now&#32;have&#32;Domino&#32;running&#32;plug&#45;ins&#32;from&#32;my&#32;OS&#32;X&#32;Eclipse&#32;workspace&#46;&#32;&#10;Previously&#44;&#32;I&#32;switched&#32;between&#32;either&#32;running&#32;on&#32;the&#32;Mac&#32;and&#32;doing&#32;manual&#32;&#10;builds&#32;or&#32;slumming&#32;it&#32;in&#32;Eclipse&#32;in&#32;Windows&#46;&#32;Having&#32;just&#32;the&#32;main&#32;Eclipse&#32;&#10;environment&#32;on&#32;the&#32;Mac&#32;is&#32;a&#32;surprising&#32;boost&#32;in&#32;developer&#32;happiness&#46;&#10;&#10;The&#32;other&#32;main&#32;change&#32;I&#39;ve&#32;made&#32;is&#32;to&#32;rationalize&#32;my&#32;target&#32;platform&#32;&#10;configuration&#32;a&#32;bit&#46;&#32;In&#32;the&#32;early&#32;parts&#32;of&#32;this&#32;series&#44;&#32;I&#32;talked&#32;about&#32;adding&#32;&#10;the&#32;Update&#32;Site&#32;for&#32;Build&#32;Management&#32;to&#32;the&#32;active&#32;Target&#32;Platform&#32;and&#32;going&#32;&#10;from&#32;there&#46;&#32;I&#32;still&#32;basically&#32;do&#32;this&#44;&#32;but&#32;I&#39;m&#32;a&#32;little&#32;more&#32;deliberate&#32;about&#32;&#10;it&#32;now&#46;&#32;Instead&#32;of&#32;adding&#32;to&#32;the&#32;running&#32;platform&#44;&#32;I&#32;now&#32;tend&#32;to&#32;create&#32;another&#32;&#10;platform&#32;just&#32;to&#32;avoid&#32;the&#32;temptation&#32;to&#32;use&#32;plug&#45;ins&#32;that&#32;are&#32;from&#32;the&#32;&#10;surrounding&#32;modern&#32;Eclipse&#32;environment&#32;&#40;this&#32;only&#32;really&#32;applies&#32;in&#32;my&#32;&#10;workspaces&#32;where&#32;I&#32;don&#39;t&#32;also&#32;have&#32;actual&#45;Eclipse&#32;plug&#45;in&#32;projects&#41;&#46;&#10;&#10;The&#32;fullest&#32;form&#32;of&#32;this&#32;occurs&#32;in&#32;one&#32;of&#32;my&#32;projects&#32;that&#32;has&#32;a&#32;private&#45;only&#32;&#10;repo&#44;&#32;which&#32;allows&#32;me&#32;to&#32;stash&#32;the&#32;artifacts&#32;I&#32;can&#39;t&#32;distribute&#32;publicly&#46;&#32;In&#32;&#10;that&#32;case&#44;&#32;I&#32;have&#32;a&#32;number&#32;of&#32;library&#32;dependencies&#32;beyond&#32;just&#32;the&#32;core&#32;XPages&#32;&#10;site&#44;&#32;and&#32;I&#32;took&#32;the&#32;approach&#32;of&#32;writing&#32;a&#32;target&#32;platform&#32;definition&#32;file&#32;and&#32;&#10;storing&#32;it&#32;in&#32;the&#32;root&#32;project&#44;&#32;with&#32;relative&#32;references&#32;to&#32;the&#32;packaged&#32;&#10;dependencies&#46;&#32;With&#32;this&#32;route&#44;&#32;I&#32;or&#32;another&#32;developer&#32;can&#32;just&#32;open&#32;the&#32;&#10;platform&#32;file&#32;and&#32;set&#32;it&#32;as&#32;the&#32;target&#32;platform&#32;&#45;&#32;that&#32;will&#32;tell&#32;Eclipse&#32;about&#32;&#10;everything&#32;it&#32;needs&#46;&#32;To&#32;do&#32;this&#44;&#32;I&#32;right&#45;clicked&#32;on&#32;the&#32;project&#44;&#32;chose&#32;&#34;New&#34;&#32;&#8594;&#32;&#10;&#34;Other&#46;&#46;&#46;&#34;&#32;and&#32;then&#32;&#34;Target&#32;Definition&#34;&#32;under&#32;&#34;Plug&#45;in&#32;Development&#34;&#58;&#10;&#10;Target&#32;Definition&#10;&#10;Within&#32;that&#32;file&#44;&#32;I&#32;used&#32;Eclipse&#32;variable&#32;references&#32;to&#32;point&#32;to&#32;the&#32;packaged&#32;&#10;dependencies&#46;&#32;In&#32;this&#32;repo&#44;&#32;there&#32;is&#32;a&#32;folder&#32;named&#32;&#34;osgi&#45;deps&#34;&#32;next&#32;to&#32;the&#32;&#10;root&#32;Maven&#32;project&#44;&#32;so&#32;I&#32;wanted&#32;to&#32;tell&#32;Eclipse&#32;to&#32;start&#32;at&#32;the&#32;root&#32;project&#44;&#32;&#10;go&#32;up&#32;one&#32;level&#44;&#32;and&#32;then&#32;delve&#32;down&#32;into&#32;there&#32;for&#32;each&#32;folder&#46;&#32;I&#32;added&#32;&#10;&#34;directory&#34;&#32;type&#32;entries&#32;for&#32;each&#32;one&#58;&#10;&#10;Target&#32;Definition&#32;Entries&#10;&#10;The&#32;reference&#32;syntax&#32;is&#32;&#36;&#123;workspace&#95;loc&#58;some&#45;project&#45;name&#125;&#46;&#46;&#47;osgi&#45;deps&#47;Whatever&#10;&#46;&#32;workspace&#95;loc&#32;resolves&#32;the&#32;absolute&#32;filesystem&#32;path&#32;of&#32;the&#32;named&#32;project&#32;&#10;within&#32;the&#32;workspace&#32;&#45;&#32;since&#32;I&#32;don&#39;t&#32;know&#32;where&#32;the&#32;workspace&#32;will&#32;be&#44;&#32;but&#32;I&#32;DO&#32;&#10;know&#32;the&#32;name&#32;of&#32;the&#32;project&#44;&#32;this&#32;gets&#32;me&#32;a&#32;useful&#32;starting&#32;point&#46;&#32;Each&#32;of&#32;&#10;those&#32;entries&#32;points&#32;to&#32;the&#32;root&#32;of&#32;a&#32;p&#50;&#45;format&#32;update&#32;site&#32;for&#32;the&#32;project&#46;&#32;&#10;This&#32;setup&#32;will&#32;tell&#32;Eclipse&#32;everything&#32;it&#32;needs&#46;&#10;&#10;Unfortunately&#44;&#32;this&#32;is&#32;a&#32;spot&#32;where&#32;Maven&#32;&#40;or&#44;&#32;more&#32;specifically&#44;&#32;Tycho&#41;&#32;adds&#32;a&#32;&#10;couple&#32;caveats&#58;&#32;not&#32;only&#32;does&#32;Tycho&#32;not&#32;allow&#32;the&#32;use&#32;of&#32;&#34;directory&#34;&#32;type&#32;&#10;entries&#32;in&#32;a&#32;target&#32;platform&#32;file&#32;like&#32;this&#32;&#40;meaning&#32;it&#32;can&#39;t&#32;be&#32;simply&#32;&#10;re&#45;used&#41;&#44;&#32;but&#32;it&#32;also&#32;expects&#32;repositories&#32;it&#32;points&#32;to&#32;to&#32;have&#32;p&#50;&#32;metadata&#32;and&#32;&#10;not&#32;just&#32;&#34;plugins&#34;&#32;and&#32;&#34;features&#34;&#32;folders&#32;or&#32;even&#32;a&#32;site&#46;xml&#46;&#32;So&#32;there&#39;s&#32;a&#32;bit&#32;&#10;of&#32;conversion&#32;involved&#46;&#32;The&#32;good&#32;news&#32;is&#32;that&#32;Eclipse&#32;comes&#32;with&#32;a&#32;tool&#32;that&#32;&#10;will&#32;upgrade&#32;old&#45;style&#32;update&#32;sites&#32;to&#32;p&#50;&#32;in&#45;place&#59;&#32;the&#32;bad&#32;news&#32;is&#32;that&#32;it&#39;s&#32;&#10;completely&#32;non&#45;obvious&#46;&#32;I&#32;have&#32;a&#32;script&#32;that&#32;I&#32;run&#32;to&#32;convert&#32;each&#32;new&#32;release&#32;&#10;of&#32;the&#32;Extension&#32;Library&#32;to&#32;this&#32;format&#44;&#32;and&#32;I&#32;adapt&#32;it&#32;for&#32;each&#32;dependency&#32;I&#32;&#10;add&#58;&#10;&#10;java&#32;&#45;jar&#10;&#9;&#10;&#47;Applications&#47;Eclipse&#47;Eclipse&#46;app&#47;Contents&#47;Eclipse&#47;plugins&#47;org&#46;eclipse&#46;equinox&#46;l&#10;auncher&#95;&#49;&#46;&#51;&#46;&#49;&#48;&#48;&#46;v&#50;&#48;&#49;&#53;&#48;&#53;&#49;&#49;&#45;&#49;&#53;&#52;&#48;&#46;jar&#10;&#9;&#45;application&#32;org&#46;eclipse&#46;equinox&#46;p&#50;&#46;publisher&#46;UpdateSitePublisher&#10;&#9;&#45;metadataRepository&#32;file&#58;&#47;&#47;&#47;full&#47;path&#47;to&#47;osgi&#45;deps&#47;ExtLib&#10;&#9;&#45;artifactRepository&#32;file&#58;&#47;&#47;&#47;full&#47;path&#47;to&#47;osgi&#45;deps&#47;ExtLib&#10;&#9;&#45;source&#32;&#47;full&#47;path&#47;to&#47;osgi&#45;deps&#47;ExtLib&#47;&#10;&#9;&#45;compress&#32;&#45;publishArtifacts&#10;&#10;Running&#32;this&#32;for&#32;each&#32;directory&#32;will&#32;create&#32;the&#32;artifacts&#46;jar&#32;and&#32;content&#46;jar&#32;&#10;files&#32;Tycho&#32;needs&#32;to&#32;read&#32;the&#32;directories&#32;as&#32;repositories&#46;&#32;The&#32;next&#32;step&#32;is&#32;to&#32;&#10;add&#32;these&#32;repositories&#32;to&#32;the&#32;root&#32;project&#32;pom&#32;so&#32;they&#32;can&#32;be&#32;resolved&#32;at&#32;build&#32;&#10;time&#46;&#32;To&#32;start&#32;with&#44;&#32;I&#32;create&#32;a&#32;&#60;properties&#62;&#32;entry&#32;in&#32;the&#32;pom&#32;to&#32;contain&#32;the&#32;&#10;base&#32;path&#32;for&#32;each&#32;folder&#58;&#10;&#10;&#60;osgi&#45;deps&#45;path&#62;&#36;&#123;project&#46;baseUri&#125;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#47;osgi&#45;deps&#60;&#47;osgi&#45;deps&#45;path&#62;&#10;&#10;There&#32;may&#32;be&#32;a&#32;better&#32;way&#32;to&#32;do&#32;this&#44;&#32;but&#32;the&#32;extra&#32;&#34;&#46;&#46;&#47;&#46;&#46;&#34;&#32;in&#32;there&#32;is&#32;because&#32;&#10;this&#32;property&#32;is&#32;re&#45;resolved&#32;for&#32;each&#32;project&#44;&#32;and&#32;so&#32;&#34;project&#46;baseUri&#34;&#32;becomes&#32;&#10;relative&#32;to&#32;each&#32;plugin&#44;&#32;not&#32;the&#32;root&#32;project&#46;&#32;Following&#32;the&#32;sort&#32;of&#32;best&#32;&#10;practice&#32;approach&#32;to&#32;Tycho&#32;layouts&#44;&#32;the&#32;sub&#45;modules&#32;in&#32;this&#32;project&#32;are&#32;in&#32;&#10;&#34;bundles&#34;&#44;&#32;&#34;features&#34;&#44;&#32;&#34;releng&#34;&#44;&#32;and&#32;&#34;tests&#34;&#32;folders&#44;&#32;so&#32;the&#32;path&#32;needs&#32;to&#32;hop&#32;&#10;up&#32;an&#32;extra&#32;layer&#46;&#32;With&#32;that&#44;&#32;I&#32;add&#32;&#60;repositories&#62;&#32;entries&#32;for&#32;each&#32;in&#32;the&#32;same&#32;&#10;root&#32;pom&#58;&#10;&#10;&#60;repositories&#62;&#10;&#32;&#32;&#32;&#32;&#60;repository&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;id&#62;notes&#60;&#47;id&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;layout&#62;p&#50;&#60;&#47;layout&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;url&#62;&#36;&#123;osgi&#45;deps&#45;path&#125;&#47;XPages&#60;&#47;url&#62;&#10;&#32;&#32;&#32;&#32;&#60;&#47;repository&#62;&#10;&#32;&#32;&#32;&#32;&#60;repository&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;id&#62;oda&#60;&#47;id&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;layout&#62;p&#50;&#60;&#47;layout&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;url&#62;&#36;&#123;osgi&#45;deps&#45;path&#125;&#47;ODA&#60;&#47;url&#62;&#10;&#32;&#32;&#32;&#32;&#60;&#47;repository&#62;&#10;&#32;&#32;&#32;&#32;&#60;repository&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;id&#62;extlib&#60;&#47;id&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;layout&#62;p&#50;&#60;&#47;layout&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#60;url&#62;&#36;&#123;osgi&#45;deps&#45;path&#125;&#47;ExtLib&#60;&#47;url&#62;&#10;&#32;&#32;&#32;&#32;&#60;&#47;repository&#62;&#10;&#9;&#60;repository&#62;&#10;&#9;&#32;&#60;id&#62;junit&#45;xsp&#60;&#47;id&#62;&#10;&#9;&#32;&#60;layout&#62;p&#50;&#60;&#47;layout&#62;&#10;&#9;&#32;&#60;url&#62;&#36;&#123;osgi&#45;deps&#45;path&#125;&#47;org&#46;openntf&#46;junit&#46;xsp&#46;updatesite&#60;&#47;url&#62;&#10;&#9;&#60;&#47;repository&#62;&#10;&#9;&#60;repository&#62;&#10;&#9;&#32;&#60;id&#62;bazaar&#60;&#47;id&#62;&#10;&#9;&#32;&#60;layout&#62;p&#50;&#60;&#47;layout&#62;&#10;&#9;&#32;&#60;url&#62;&#36;&#123;osgi&#45;deps&#45;path&#125;&#47;XPagesBazaar&#60;&#47;url&#62;&#10;&#9;&#60;&#47;repository&#62;&#10;&#9;&#60;repository&#62;&#10;&#9;&#32;&#60;id&#62;eclipse&#45;platform&#60;&#47;id&#62;&#10;&#9;&#32;&#60;url&#62;http&#58;&#47;&#47;download&#46;eclipse&#46;org&#47;releases&#47;neon&#47;&#60;&#47;url&#62;&#10;&#9;&#32;&#60;layout&#62;p&#50;&#60;&#47;layout&#62;&#10;&#9;&#60;&#47;repository&#62;&#10;&#60;&#47;repositories&#62;&#10;&#10;The&#32;last&#32;entry&#32;is&#32;only&#32;needed&#32;if&#32;you&#32;have&#32;extra&#32;build&#45;time&#32;dependencies&#32;to&#32;&#10;resolve&#32;&#45;&#32;I&#32;use&#32;it&#32;to&#32;resolve&#32;JUnit&#32;&#52;&#46;x&#44;&#32;which&#32;for&#32;Eclipse&#32;I&#32;just&#32;tossed&#32;&#10;unstructured&#32;into&#32;a&#32;&#34;plugins&#34;&#32;folder&#32;in&#32;the&#32;&#34;Misc&#34;&#32;folder&#44;&#32;without&#32;p&#50;&#32;metadata&#46;&#10;&#10;Though&#32;parts&#32;of&#32;this&#32;are&#32;annoyingly&#32;fiddly&#44;&#32;it&#32;falls&#32;under&#32;the&#32;category&#32;of&#32;&#10;&#34;worth&#32;it&#32;in&#32;the&#32;end&#34;&#32;&#45;&#32;after&#32;some&#32;initial&#32;trial&#32;and&#32;error&#44;&#32;my&#32;target&#32;platform&#32;&#10;is&#32;more&#32;consistent&#32;and&#32;easier&#32;to&#32;share&#32;among&#32;multiple&#32;developers&#32;and&#32;automated&#32;&#10;build&#32;servers&#46;&#10;</content:encoded>
  64. </item>
  65.  
  66. <item>
  67. <title>Slides&#32;From&#32;My&#32;Connect&#32;&#50;&#48;&#49;&#55;&#32;Presentations</title>
  68. <link>http://frostillic.us/f.nsf/posts/ECED&#57;BC&#49;&#56;&#55;&#57;&#55;B&#57;A&#48;&#56;&#53;&#50;&#53;&#56;&#48;D&#49;&#48;&#48;&#55;&#54;&#54;&#51;&#55;&#49;</link>
  69. <comments>http://frostillic.us/f.nsf/posts/ECED&#57;BC&#49;&#56;&#55;&#57;&#55;B&#57;A&#48;&#56;&#53;&#50;&#53;&#56;&#48;D&#49;&#48;&#48;&#55;&#54;&#54;&#51;&#55;&#49;#comments</comments>
  70. <pubDate>Fri, 24 Feb 2017 21:29:32 +0000</pubDate>
  71. <dc:creator>Jesse Gallagher</dc:creator>
  72. <category>connect</category>
  73. <category>slides</category>
  74.  
  75. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/ECED&#57;BC&#49;&#56;&#55;&#57;&#55;B&#57;A&#48;&#56;&#53;&#50;&#53;&#56;&#48;D&#49;&#48;&#48;&#55;&#54;&#54;&#51;&#55;&#49;</guid>
  76. <description>
  77. At&#32;this&#32;year&#39;s&#32;Connect&#44;&#32;Philippe&#32;Riand&#32;and&#32;I&#32;co&#45;presented&#32;two&#32;sessions&#58;&#32;one&#32;on&#32;&#10;ways&#32;to&#32;integra[...]
  78. </description>
  79. <content:encoded>At&#32;this&#32;year&#39;s&#32;Connect&#44;&#32;Philippe&#32;Riand&#32;and&#32;I&#32;co&#45;presented&#32;two&#32;sessions&#58;&#32;one&#32;on&#32;&#10;ways&#32;to&#32;integrate&#32;your&#32;apps&#32;into&#32;the&#32;Connections&#32;UI&#32;and&#32;one&#32;on&#32;Darwino&#39;s&#32;role&#32;&#10;for&#32;Domino&#32;developers&#46;&#32;I&#39;ve&#32;uploaded&#32;the&#32;slides&#32;to&#32;SlideShare&#58;&#10;&#10;DEV&#45;&#49;&#52;&#51;&#48;&#32;&#45;&#32;IBM&#32;Connections&#32;Integration&#58;&#32;Exploring&#32;the&#32;Long&#32;List&#32;of&#32;Options&#10;&#10;DEV&#45;&#49;&#52;&#54;&#55;&#32;&#45;&#32;Give&#32;a&#32;New&#32;Life&#32;to&#32;Your&#32;Notes&#47;Domino&#32;Applications&#32;and&#32;Leverage&#32;IBM&#32;&#10;Bluemix&#44;&#32;Watson&#44;&#32;&#38;&#32;Connections&#32;&#40;effectively&#44;&#32;&#34;the&#32;Darwino&#32;session&#34;&#41;&#10;</content:encoded>
  80. </item>
  81.  
  82. <item>
  83. <title>The&#32;State&#32;of&#32;Domino&#32;App&#32;Dev&#32;Post&#45;Connect&#45;&#50;&#48;&#49;&#55;</title>
  84. <link>http://frostillic.us/f.nsf/posts/&#48;&#50;&#48;C&#54;&#52;&#52;DEAAAAC&#56;&#56;&#56;&#53;&#50;&#53;&#56;&#48;D&#49;&#48;&#48;&#55;&#54;&#48;&#52;D&#49;</link>
  85. <comments>http://frostillic.us/f.nsf/posts/&#48;&#50;&#48;C&#54;&#52;&#52;DEAAAAC&#56;&#56;&#56;&#53;&#50;&#53;&#56;&#48;D&#49;&#48;&#48;&#55;&#54;&#48;&#52;D&#49;#comments</comments>
  86. <pubDate>Fri, 24 Feb 2017 21:28:30 +0000</pubDate>
  87. <dc:creator>Jesse Gallagher</dc:creator>
  88. <category>notsomuchxpagesanymore</category>
  89.  
  90. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/&#48;&#50;&#48;C&#54;&#52;&#52;DEAAAAC&#56;&#56;&#56;&#53;&#50;&#53;&#56;&#48;D&#49;&#48;&#48;&#55;&#54;&#48;&#52;D&#49;</guid>
  91. <description>
  92. I&#39;m&#32;en&#32;route&#32;back&#32;from&#32;this&#32;year&#39;s&#32;IBM&#32;Connect&#32;in&#32;San&#32;Francisco&#44;&#32;and&#32;this&#32;plane&#32;&#10;ride&#32;is&#32;giving[...]
  93. </description>
  94. <content:encoded>I&#39;m&#32;en&#32;route&#32;back&#32;from&#32;this&#32;year&#39;s&#32;IBM&#32;Connect&#32;in&#32;San&#32;Francisco&#44;&#32;and&#32;this&#32;plane&#32;&#10;ride&#32;is&#32;giving&#32;me&#32;a&#32;good&#32;chance&#32;to&#32;chew&#32;over&#32;the&#32;implications&#32;for&#32;Domino&#32;&#10;developers&#46;&#10;&#10;First&#32;off&#44;&#32;I&#39;ll&#32;put&#32;my&#32;bias&#32;in&#32;this&#32;matter&#32;right&#32;up&#32;front&#58;&#32;Darwino&#44;&#32;which&#32;I&#39;ve&#32;&#10;been&#32;working&#32;on&#32;and&#32;discussing&#32;quite&#32;a&#32;bit&#44;&#32;is&#32;one&#32;of&#32;the&#32;three&#32;&#34;chosen&#34;&#32;&#10;vendors&#32;for&#32;app&#32;enhancement&#47;modernization&#47;what&#45;have&#45;you&#46;&#32;So&#44;&#32;while&#32;this&#32;post&#32;&#10;isn&#39;t&#32;going&#32;to&#32;be&#32;about&#32;Darwino&#32;specifically&#44;&#32;it&#39;s&#32;certainly&#32;pertinent&#32;for&#32;me&#46;&#32;&#10;In&#32;any&#32;case&#44;&#32;I&#39;m&#32;aiming&#32;to&#32;speak&#32;exclusively&#32;as&#32;me&#32;personally&#32;here&#46;&#10;&#10;This&#32;event&#32;was&#32;the&#32;fated&#32;hour&#32;for&#32;the&#32;&#34;app&#32;modernization&#34;&#32;story&#32;promised&#32;over&#32;&#10;the&#32;course&#32;of&#32;the&#32;last&#32;year&#46;&#32;In&#32;general&#44;&#32;I&#39;d&#32;summarize&#32;the&#32;pieces&#32;we&#32;have&#32;to&#32;&#10;pick&#32;up&#32;as&#32;&#40;put&#32;as&#32;neutrally&#32;as&#32;possible&#41;&#58;&#10;&#10;The&#32;promised&#32;feature&#32;packs&#32;are&#32;coming&#32;along&#32;apace&#46;&#32;The&#32;big&#45;ticket&#32;items&#32;for&#32;the&#32;&#10;next&#32;two&#32;remain&#32;Java&#32;&#56;&#32;&#40;and&#32;a&#32;full&#32;refresh&#32;of&#32;the&#32;surrounding&#32;Java&#32;&#10;infrastructure&#32;following&#41;&#44;&#32;exposing&#32;ID&#32;Vault&#32;and&#32;user&#45;specific&#32;doc&#32;encryption&#32;&#10;to&#32;the&#32;lsxbe&#32;classes&#32;and&#32;XPages&#44;&#32;an&#32;expansion&#32;of&#32;the&#32;ExtLib&#39;s&#32;DAS&#32;to&#32;support&#32;&#10;more&#32;PIM&#32;actions&#44;&#32;and&#32;then&#32;misc&#46;&#32;improvements&#32;&#40;doc&#45;level&#32;summary&#32;limit&#32;&#10;increase&#44;&#32;some&#32;new&#32;&#64;functions&#44;&#32;and&#32;so&#32;forth&#41;&#46;&#10;A&#32;current&#32;version&#32;of&#32;the&#32;&#57;&#46;&#48;&#46;&#49;&#32;ExtLib&#32;will&#32;be&#32;folded&#32;in&#32;to&#32;the&#32;main&#32;product&#32;in&#32;&#10;FP&#56;&#44;&#32;with&#32;the&#32;implication&#32;that&#32;that&#32;sort&#32;of&#32;thing&#32;may&#32;continue&#32;to&#32;happen&#46;&#32;This&#32;&#10;brings&#32;some&#32;long&#45;existing&#32;features&#32;like&#32;the&#32;Bootstrap&#32;renderkit&#32;and&#32;JDBC&#32;data&#32;&#10;sources&#32;into&#32;official&#32;support&#46;&#10;The&#32;implication&#32;is&#32;that&#32;Feature&#32;Packs&#32;will&#32;bring&#32;features&#32;more&#32;rapidly&#32;than&#32;a&#32;&#10;normal&#32;release&#32;schedule&#32;would&#46;&#10;Open&#45;sourcing&#32;the&#32;UI&#32;components&#32;of&#32;XPages&#32;is&#32;still&#32;on&#32;the&#32;table&#46;&#10;The&#32;recently&#45;released&#32;OpenNTF&#32;project&#32;SmartNSF&#32;is&#32;an&#32;encouraged&#32;way&#32;to&#32;write&#32;&#10;REST&#32;services&#32;in&#32;an&#32;NSF&#32;and&#32;is&#32;a&#32;candidate&#32;for&#32;inclusion&#32;in&#32;FP&#57;&#32;and&#44;&#32;sooner&#44;&#32;&#10;ExtLibX&#46;&#10;For&#32;modernization&#47;mobile&#32;needs&#44;&#32;IBM&#32;is&#32;providing&#32;a&#32;tool&#32;from&#32;Panagenda&#32;to&#32;&#10;analyze&#32;your&#32;existing&#32;apps&#32;and&#32;recommends&#32;the&#32;products&#32;from&#32;Aveedo&#44;&#32;Sapho&#44;&#32;and&#32;&#10;Darwino&#46;&#10;&#10;So&#46;&#46;&#46;&#32;okay&#46;&#32;Aside&#32;from&#32;Java&#32;&#56;&#32;&#40;which&#32;is&#32;a&#32;&#34;rising&#32;tide&#32;lifts&#32;all&#32;boats&#34;&#32;&#10;improvement&#41;&#44;&#32;it&#32;seems&#32;like&#32;the&#32;focus&#32;on&#32;the&#32;additions&#32;to&#32;Domino&#32;is&#32;to&#32;&#10;encourage&#32;apps&#32;that&#32;use&#32;Domino&#32;rather&#32;than&#32;run&#32;on&#32;Domino&#46;&#32;The&#32;additions&#32;to&#32;DAS&#32;&#10;are&#32;useful&#32;if&#32;you&#32;use&#32;Domino&#32;as&#32;your&#32;mail&#47;calendar&#47;RnR&#32;platform&#32;and&#32;want&#32;to&#32;&#10;integrate&#32;it&#32;with&#32;your&#32;other&#32;activities&#46;&#32;SmartNSF&#32;smoothes&#32;the&#32;process&#32;of&#32;&#10;writing&#32;customized&#32;services&#32;to&#32;deal&#32;with&#32;NSF&#32;data&#32;in&#32;a&#32;more&#32;structured&#32;way&#32;than&#32;&#10;the&#32;raw&#32;DAS&#32;data&#32;service&#46;&#32;The&#32;three&#32;encouraged&#32;&#34;modernization&#34;&#32;vendors&#32;each&#32;&#10;connect&#32;to&#32;or&#32;replicate&#32;data&#32;from&#32;&#40;presumably&#32;old&#41;&#32;Notes&#32;apps&#32;to&#32;expose&#32;it&#32;in&#32;a&#32;&#10;new&#32;UI&#44;&#32;in&#32;two&#32;cases&#32;in&#32;order&#32;to&#32;use&#32;a&#32;&#34;form&#32;builder&#34;&#45;type&#32;tool&#32;to&#32;make&#32;an&#32;easy&#32;&#10;app&#46;&#10;&#10;I&#32;see&#32;this&#32;as&#32;a&#32;codifying&#32;of&#32;the&#32;message&#32;from&#32;MWLUG&#58;&#32;&#34;learn&#32;something&#32;other&#32;&#10;than&#32;XPages&#34;&#46;&#32;The&#32;improvements&#32;to&#32;the&#32;Java&#32;stack&#32;and&#32;various&#32;smaller&#32;changes&#32;&#10;will&#32;keep&#32;XPages&#32;apps&#32;running&#44;&#32;but&#32;the&#32;focus&#32;is&#32;clearly&#32;not&#32;there&#46;&#32;Nor&#32;is&#32;there&#32;&#10;an&#32;implication&#32;that&#32;there&#39;s&#32;a&#32;big&#32;&#34;apps&#32;on&#32;Domino&#34;&#32;revamp&#32;beyond&#32;the&#32;secondary&#32;&#10;effects&#32;of&#32;the&#32;OSGi&#32;update&#46;&#32;So&#32;I&#32;think&#32;it&#39;s&#32;reasonable&#32;to&#32;consider&#32;XPages&#32;&#10;supported&#32;primarily&#32;in&#32;the&#32;&#34;maintenance&#32;mode&#34;&#32;sense&#46;&#32;That&#32;stings&#44;&#32;but&#32;it&#32;is&#32;&#10;what&#32;it&#32;is&#46;&#10;&#10;If&#32;you&#39;re&#32;currently&#32;working&#32;in&#32;XPages&#44;&#32;there&#39;s&#32;no&#32;need&#32;to&#32;stop&#32;immediately&#32;or&#32;&#10;anything&#46;&#32;You&#32;should&#44;&#32;hoever&#44;&#32;guide&#32;your&#32;development&#32;in&#32;the&#32;direction&#32;of&#32;being&#32;&#10;more&#32;adaptable&#32;elsewhere&#58;&#32;heavier&#32;focus&#32;on&#32;writing&#32;REST&#32;services&#44;&#32;much&#32;ligher&#32;&#10;focus&#32;on&#32;&#34;Domino&#47;XPages&#45;isms&#34;&#32;like&#32;embedding&#32;business&#32;logic&#32;right&#32;on&#32;a&#32;page&#32;&#10;with&#32;SSJS&#44;&#32;and&#44;&#32;if&#32;possible&#44;&#32;getting&#32;used&#32;to&#32;toolchains&#32;like&#32;building&#32;OSGi&#32;&#10;libraries&#46;&#32;Additionally&#44;&#32;even&#32;if&#32;it&#39;s&#32;not&#32;immediately&#32;useful&#44;&#32;I&#32;implore&#32;you&#58;&#32;&#10;try&#32;out&#32;other&#32;environments&#46;&#32;Spend&#32;a&#32;weekend&#32;with&#32;an&#32;Android&#32;or&#32;iOS&#32;tutorial&#44;&#32;&#10;give&#32;Angular&#47;Vue&#46;js&#47;React&#32;a&#32;shot&#32;in&#32;a&#32;test&#32;app&#44;&#32;and&#32;so&#32;forth&#46;&#32;The&#32;more&#32;you&#32;can&#32;&#10;learn&#32;another&#32;toolkit&#32;&#45;&#32;any&#32;toolkit&#32;&#45;&#32;the&#32;more&#32;you&#39;ll&#32;be&#32;comfortable&#32;with&#32;&#10;what&#39;s&#32;different&#32;elsewhere&#32;and&#32;what&#39;s&#32;the&#32;same&#46;&#10;&#10;It&#39;s&#32;always&#32;been&#32;important&#32;to&#32;do&#32;these&#32;things&#44;&#32;but&#32;now&#32;it&#39;s&#32;required&#46;&#32;No&#32;&#10;excuses&#32;&#45;&#32;get&#32;out&#32;of&#32;your&#32;comfort&#32;zone&#46;&#10;&#10;As&#32;I&#32;have&#32;a&#32;chance&#44;&#32;I&#39;ll&#32;be&#32;expanding&#32;on&#32;what&#32;Darwino&#39;s&#32;role&#32;is&#32;in&#32;all&#32;this&#44;&#32;&#10;and&#32;shortly&#32;I&#39;ll&#32;be&#32;posting&#32;the&#32;slides&#32;from&#32;the&#32;sessions&#32;Philippe&#32;and&#32;I&#32;&#10;presented&#44;&#32;one&#32;of&#32;which&#32;covered&#32;this&#32;topic&#46;&#32;In&#32;the&#32;mean&#32;time&#44;&#32;we&#39;re&#32;heading&#32;&#10;towards&#32;the&#32;weekend&#32;&#45;&#32;this&#32;could&#32;be&#32;a&#32;perfect&#32;time&#32;to&#32;kick&#32;back&#32;and&#32;learn&#32;about&#32;&#10;something&#32;new&#46;&#32;Maybe&#32;take&#32;a&#32;look&#32;at&#32;Swift&#32;if&#32;you&#32;haven&#39;t&#32;before&#46;&#32;You&#32;don&#39;t&#32;have&#32;&#10;to&#32;form&#32;all&#32;of&#32;your&#32;future&#32;strategies&#32;right&#32;now&#32;&#45;&#32;just&#32;learn&#32;a&#32;bit&#32;more&#32;every&#32;&#10;day&#46;&#10;</content:encoded>
  95. </item>
  96.  
  97. <item>
  98. <title>Reforming&#32;the&#32;Blog&#32;in&#32;Darwino&#44;&#32;Part&#32;&#50;</title>
  99. <link>http://frostillic.us/f.nsf/posts/&#49;B&#55;&#50;C&#52;DAB&#52;&#50;A&#55;EE&#50;&#56;&#53;&#50;&#53;&#56;&#48;C&#57;&#48;&#48;&#55;&#49;D&#55;&#57;&#51;</link>
  100. <comments>http://frostillic.us/f.nsf/posts/&#49;B&#55;&#50;C&#52;DAB&#52;&#50;A&#55;EE&#50;&#56;&#53;&#50;&#53;&#56;&#48;C&#57;&#48;&#48;&#55;&#49;D&#55;&#57;&#51;#comments</comments>
  101. <pubDate>Thu, 16 Feb 2017 20:41:29 +0000</pubDate>
  102. <dc:creator>Jesse Gallagher</dc:creator>
  103. <category></category>
  104.  
  105. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/&#49;B&#55;&#50;C&#52;DAB&#52;&#50;A&#55;EE&#50;&#56;&#53;&#50;&#53;&#56;&#48;C&#57;&#48;&#48;&#55;&#49;D&#55;&#57;&#51;</guid>
  106. <description>
  107. During&#32;the&#32;run&#45;up&#32;to&#32;Connect&#32;next&#32;week&#44;&#32;I&#32;turned&#32;my&#32;gaze&#32;back&#32;to&#32;my&#32;&#10;indefinite&#45;term&#32;project&#32;of[...]
  108. </description>
  109. <content:encoded>During&#32;the&#32;run&#45;up&#32;to&#32;Connect&#32;next&#32;week&#44;&#32;I&#32;turned&#32;my&#32;gaze&#32;back&#32;to&#32;my&#32;&#10;indefinite&#45;term&#32;project&#32;of&#32;reforming&#32;this&#32;blog&#32;in&#32;Darwino&#46;&#10;&#10;When&#32;last&#32;I&#32;left&#32;it&#32;publicly&#44;&#32;I&#32;had&#32;set&#32;up&#32;replication&#32;between&#32;a&#32;copy&#32;of&#32;the&#32;&#10;database&#32;and&#32;a&#32;Darwino&#32;app&#46;&#32;After&#32;that&#32;post&#44;&#32;I&#32;did&#32;a&#32;bit&#32;of&#32;tinkering&#32;in&#32;the&#32;&#10;direction&#32;of&#32;building&#32;a&#32;&#40;J&#41;Ruby&#32;on&#32;Rails&#32;front&#45;end&#32;for&#32;it&#44;&#32;next&#32;to&#32;the&#32;&#34;j&#50;ee&#34;&#32;&#10;project&#46;&#32;That&#32;side&#32;effort&#32;may&#32;bear&#32;fruit&#32;in&#32;time&#32;&#40;as&#32;I&#32;recall&#44;&#32;I&#32;got&#32;the&#32;&#10;embedded&#32;web&#32;app&#32;serving&#32;default&#32;pages&#44;&#32;but&#32;didn&#39;t&#32;implement&#32;any&#32;blog&#45;specific&#32;&#10;logic&#41;&#44;&#32;but&#32;for&#32;now&#32;I&#32;decided&#32;to&#32;go&#32;for&#32;the&#32;&#34;just&#32;get&#32;something&#32;running&#34;&#32;route&#46;&#10;&#10;For&#32;that&#44;&#32;the&#32;most&#32;expedient&#32;route&#32;was&#32;to&#32;write&#32;an&#32;Angular&#32;app&#32;using&#32;Darwino&#39;s&#32;&#10;stock&#32;document&#32;REST&#32;APIs&#46;&#32;The&#32;&#40;now&#32;unavailable&#41;&#32;Bootstrap&#32;theme&#32;I&#32;use&#32;here&#32;came&#32;&#10;packaged&#32;with&#32;an&#32;Angular&#32;&#49;&#46;x&#32;example&#32;and&#32;the&#32;Darwino&#32;demo&#32;apps&#32;are&#32;largely&#32;&#10;Angular&#32;&#49;&#46;x&#32;as&#32;well&#44;&#32;so&#32;most&#32;of&#32;the&#32;work&#32;was&#32;adapting&#32;what&#32;was&#32;there&#46;&#10;&#10;Unrelated&#32;to&#32;the&#32;front&#32;end&#44;&#32;there&#32;was&#32;one&#32;change&#32;I&#32;realized&#32;I&#32;needed&#32;to&#32;make&#46;&#32;&#10;In&#32;a&#32;fit&#32;of&#32;&#34;psh&#44;&#32;it&#39;s&#32;an&#32;XPages&#32;app&#59;&#32;I&#32;don&#39;t&#32;need&#32;that&#32;old&#32;crap&#33;&#34;&#44;&#32;I&#32;&#10;structured&#32;the&#32;comments&#32;in&#32;the&#32;blog&#32;such&#32;that&#32;they&#39;re&#32;related&#32;to&#32;their&#32;post&#32;via&#32;&#10;a&#32;&#34;PostID&#34;&#32;field&#32;with&#32;the&#32;post&#32;UNID&#44;&#32;not&#32;as&#32;actual&#32;response&#32;documents&#46;&#32;While&#32;&#10;that&#32;would&#32;work&#32;just&#32;fine&#32;in&#32;the&#32;new&#32;form&#44;&#32;this&#32;is&#32;a&#32;good&#32;opportunity&#32;to&#32;clean&#32;&#10;up&#32;the&#32;data&#32;a&#32;bit&#46;&#32;Since&#32;I&#32;haven&#39;t&#32;&#40;at&#32;least&#32;not&#32;yet&#41;&#32;implemented&#32;a&#32;specific&#32;&#10;method&#32;in&#32;the&#32;DSL&#32;to&#32;say&#32;&#34;this&#32;field&#32;is&#32;the&#32;real&#32;parent&#32;ID&#34;&#44;&#32;I&#32;modified&#32;the&#32;&#10;Darwino&#32;adapter&#32;script&#32;to&#32;set&#32;the&#32;parent&#32;ID&#32;on&#32;outgoing&#32;data&#32;after&#32;normal&#32;&#10;conversion&#58;&#10;&#10;form&#40;&#39;Comment&#39;&#41;&#32;&#123;&#10;&#9;field&#32;&#39;CommentID&#39;&#10;&#9;field&#32;&#39;PostID&#39;&#10;&#9;field&#32;&#39;&#36;&#36;Creator&#39;&#44;&#32;flags&#58;&#91;NAMES&#44;&#32;MULTIPLE&#93;&#10;&#9;field&#32;&#39;AuthorName&#39;&#10;&#9;field&#32;&#39;AuthorEmailAddress&#39;&#10;&#9;field&#32;&#39;AuthorURL&#39;&#10;&#9;field&#32;&#39;Remote&#95;Addr&#39;&#10;&#9;field&#32;&#39;HTTP&#95;User&#95;Agent&#39;&#10;&#9;field&#32;&#39;HTTP&#95;Referer&#39;&#10;&#9;field&#32;&#39;Posted&#39;&#44;&#32;type&#58;DATETIME&#10;&#9;field&#32;&#39;Body&#39;&#44;&#32;type&#58;RICHTEXT&#10;&#32;&#32;&#10;&#9;&#47;&#47;&#32;Set&#32;the&#32;parent&#32;ID&#32;from&#32;the&#32;&#34;PostID&#34;&#32;field&#10;&#32;&#32;&#32;events&#32;postConvertDominoToDarwino&#58;&#32;&#123;&#32;jsonHolder&#32;&#45;&#62;&#10;&#32;&#32;&#32;&#32;&#32;&#32;&#32;jsonHolder&#46;jsonObject&#46;put&#40;&#34;&#95;parentid&#34;&#44;&#32;&#10;jsonHolder&#46;jsonObject&#46;get&#40;&#34;postid&#34;&#41;&#41;&#10;&#32;&#32;&#32;&#125;&#10;&#125;&#10;&#10;The&#32;jsonHolder&#32;is&#32;a&#32;process&#32;object&#32;that&#32;contains&#32;the&#32;converted&#32;JSON&#32;to&#32;be&#32;sent&#32;&#10;to&#32;Darwino&#32;as&#32;well&#32;as&#32;a&#32;collection&#32;of&#32;the&#32;document&#39;s&#32;attachments&#32;and&#32;inline&#32;&#10;images&#46;&#32;So&#44;&#32;by&#32;setting&#32;the&#32;special&#32;&#34;&#95;parentid&#34;&#32;field&#32;before&#32;the&#32;result&#32;is&#32;sent&#32;&#10;to&#32;the&#32;destination&#32;database&#44;&#32;that&#32;value&#32;is&#32;used&#32;as&#32;the&#32;parent&#32;ID&#32;reference&#32;in&#32;&#10;the&#32;Darwino&#32;DB&#46;&#10;&#10;The&#32;other&#32;non&#45;Angular&#32;addition&#32;I&#32;made&#32;was&#32;to&#32;add&#32;Gravatar&#32;support&#46;&#32;This&#32;is&#32;an&#32;&#10;area&#32;where&#32;I&#39;m&#32;currently&#32;doing&#32;it&#32;via&#32;a&#32;one&#45;off&#32;utility&#32;class&#32;in&#32;the&#32;XPages&#32;app&#32;&#10;that&#32;spits&#32;out&#32;Gravatar&#32;images&#32;in&#32;an&#32;EL&#45;compatible&#32;way&#46;&#32;However&#44;&#32;Darwino&#32;has&#32;a&#32;&#10;more&#32;idiomatic&#32;route&#58;&#32;its&#32;built&#45;in&#32;user&#32;directory&#47;authentication&#32;system&#32;is&#32;&#10;extensible&#32;in&#32;a&#32;couple&#32;of&#32;ways&#44;&#32;and&#32;one&#32;of&#32;those&#32;ways&#32;is&#32;to&#32;layer&#32;additional&#32;&#10;data&#32;providers&#32;on&#32;top&#32;of&#32;the&#32;primary&#32;directory&#46;&#10;&#10;For&#32;development&#32;purposes&#44;&#32;my&#32;&#34;directory&#34;&#32;is&#32;just&#32;a&#32;static&#32;list&#32;of&#32;users&#32;&#10;specified&#32;in&#32;the&#32;darwino&#45;beans&#46;xml&#32;file&#44;&#32;while&#32;it&#32;will&#32;presumably&#32;eventually&#32;&#10;point&#32;to&#32;my&#32;Domino&#32;server&#32;via&#32;LDAP&#32;to&#32;maintain&#32;consistent&#32;access&#46;&#32;The&#32;basic&#32;&#10;static&#32;user&#32;bean&#32;looks&#32;like&#32;this&#58;&#10;&#10;&#60;bean&#32;type&#61;&#34;darwino&#47;userdir&#34;&#32;name&#61;&#34;static&#34;&#32;&#10;class&#61;&#34;com&#46;darwino&#46;config&#46;user&#46;UserDirStatic&#34;&#32;alias&#61;&#34;demo&#44;default&#34;&#62;&#10;&#9;&#60;property&#32;name&#61;&#34;allowUnknownUsers&#34;&#62;true&#60;&#47;property&#62;&#10;&#9;&#60;list&#32;name&#61;&#34;providers&#34;&#62;&#10;&#9;&#32;&#60;bean&#32;class&#61;&#34;com&#46;darwino&#46;social&#46;gravatar&#46;GravatarUserProvider&#34;&#62;&#10;&#9;&#32;&#32;&#60;property&#32;name&#61;&#34;imageSize&#34;&#62;&#49;&#50;&#56;&#60;&#47;property&#62;&#10;&#9;&#32;&#60;&#47;bean&#62;&#10;&#9;&#60;&#47;list&#62;&#10;&#9;&#60;list&#32;name&#61;&#34;users&#34;&#62;&#10;&#9;&#32;&#60;bean&#32;class&#61;&#34;&#46;User&#34;&#62;&#10;&#9;&#32;&#32;&#60;property&#32;name&#61;&#34;dn&#34;&#62;cn&#61;Jesse&#44;o&#61;darwino&#60;&#47;property&#62;&#10;&#9;&#32;&#32;&#60;property&#32;name&#61;&#34;cn&#34;&#62;Jesse&#60;&#47;property&#62;&#10;&#9;&#32;&#32;&#60;property&#32;name&#61;&#34;uid&#34;&#62;jesse&#60;&#47;property&#62;&#10;&#9;&#32;&#32;&#60;property&#32;name&#61;&#34;email&#34;&#62;jesse&#64;darwino&#46;com&#60;&#47;property&#62;&#10;&#9;&#32;&#32;&#60;property&#32;name&#61;&#34;password&#34;&#62;secrets&#33;&#60;&#47;property&#62;&#10;&#9;&#32;&#32;&#60;list&#32;name&#61;&#34;roles&#34;&#62;&#10;&#9;&#32;&#32;&#32;&#60;value&#62;admin&#60;&#47;value&#62;&#10;&#9;&#32;&#32;&#60;&#47;list&#62;&#10;&#9;&#32;&#32;&#60;list&#32;name&#61;&#34;groups&#34;&#62;&#10;&#9;&#32;&#32;&#32;&#60;value&#62;darwino&#60;&#47;value&#62;&#10;&#9;&#32;&#32;&#60;&#47;list&#62;&#10;&#9;&#32;&#60;&#47;bean&#62;&#10;&#9;&#60;&#47;list&#62;&#10;&#60;&#47;bean&#62;&#10;&#10;&#40;please&#32;don&#39;t&#32;tell&#32;anyone&#32;my&#32;super&#45;secret&#32;password&#41;&#10;&#10;The&#32;full&#32;syntax&#32;for&#32;Darwino&#32;beans&#32;is&#32;its&#32;own&#32;subject&#44;&#32;but&#32;this&#32;instantiates&#32;a&#32;&#10;directory&#32;using&#32;the&#32;UserDirStatic&#32;class&#32;with&#32;a&#32;couple&#32;names&#32;&#45;&#32;the&#32;&#34;default&#34;&#32;at&#32;&#10;the&#32;end&#32;means&#32;it&#39;ll&#32;be&#32;picked&#32;up&#32;by&#32;the&#32;stock&#32;configuration&#32;of&#32;a&#32;new&#32;app&#46;&#32;The&#32;&#10;users&#32;are&#32;specified&#32;as&#32;instances&#32;of&#32;a&#32;nested&#32;class&#32;User&#32;with&#32;LDAP&#45;like&#32;&#10;properties&#46;&#10;&#10;Separate&#32;from&#32;the&#32;specifics&#32;of&#32;the&#32;static&#32;user&#32;list&#44;&#32;though&#44;&#32;are&#32;the&#32;first&#32;two&#32;&#10;child&#32;elements&#58;&#32;one&#32;tells&#32;the&#32;app&#32;that&#32;this&#32;directory&#32;should&#32;be&#32;consulted&#32;&#10;further&#32;even&#32;when&#32;a&#32;user&#32;doesn&#39;t&#32;exist&#32;in&#32;it&#44;&#32;and&#32;the&#32;second&#32;instantiates&#32;a&#32;&#10;Gravatar&#32;user&#32;provider&#32;&#40;which&#32;is&#32;in&#32;Darwino&#32;core&#41;&#46;&#32;This&#32;user&#32;provider&#32;in&#32;turn&#32;&#10;tries&#32;to&#32;determine&#32;the&#32;user&#39;s&#32;email&#32;address&#32;&#45;&#32;if&#32;the&#32;address&#32;is&#32;provided&#32;by&#32;the&#32;&#10;underlying&#32;directory&#44;&#32;it&#32;uses&#32;that&#59;&#32;otherwise&#44;&#32;it&#32;tries&#32;the&#32;DN&#46;&#32;These&#32;fallback&#32;&#10;behaviors&#32;come&#32;into&#32;play&#32;with&#32;comments&#58;&#32;those&#32;users&#32;definitely&#32;wouldn&#39;t&#32;exist&#32;&#10;in&#32;the&#32;directory&#44;&#32;but&#32;they&#32;DO&#32;have&#32;the&#32;email&#32;addresses&#32;entered&#32;during&#32;posting&#46;&#10;&#10;With&#32;this&#32;configuration&#32;in&#32;place&#44;&#32;I&#32;can&#32;make&#32;image&#32;references&#32;like&#32;this&#58;&#10;&#10;&#60;img&#32;src&#61;&#34;&#36;darwino&#45;social&#47;users&#47;users&#47;cn&#37;&#51;Djesse&#37;&#50;Co&#37;&#51;Ddarwino&#47;content&#47;photo&#34;&#32;&#47;&#62;&#10;&#10;That&#32;runs&#32;through&#32;Darwino&#39;s&#32;stock&#32;social&#32;service&#32;to&#32;provide&#32;whatever&#32;image&#32;it&#32;&#10;can&#32;find&#32;from&#32;the&#32;provider&#32;&#45;&#32;which&#32;in&#32;this&#32;case&#32;is&#32;a&#32;proxied&#45;in&#32;Gravatar&#32;image&#46;&#10;&#10;So&#32;all&#32;that&#32;leaves&#32;now&#32;is&#32;the&#32;implementation&#32;of&#32;the&#32;front&#32;end&#46;&#32;However&#44;&#32;since&#32;&#10;this&#32;post&#32;is&#32;long&#32;enough&#32;and&#32;the&#32;code&#32;is&#32;currently&#32;an&#32;embarrassing&#32;mess&#44;&#32;I&#39;m&#32;&#10;going&#32;to&#32;punt&#32;on&#32;that&#32;for&#32;now&#32;and&#32;save&#32;it&#32;for&#32;later&#46;&#10;</content:encoded>
  110. </item>
  111.  
  112. <item>
  113. <title>Connect&#32;&#50;&#48;&#49;&#55;&#32;Final&#32;Stretch</title>
  114. <link>http://frostillic.us/f.nsf/posts/&#49;&#48;&#52;EA&#49;&#53;&#49;B&#54;&#50;&#48;&#56;DF&#50;&#56;&#53;&#50;&#53;&#56;&#48;C&#56;&#48;&#48;&#52;&#51;&#56;&#50;CF</link>
  115. <comments>http://frostillic.us/f.nsf/posts/&#49;&#48;&#52;EA&#49;&#53;&#49;B&#54;&#50;&#48;&#56;DF&#50;&#56;&#53;&#50;&#53;&#56;&#48;C&#56;&#48;&#48;&#52;&#51;&#56;&#50;CF#comments</comments>
  116. <pubDate>Wed, 15 Feb 2017 12:16:41 +0000</pubDate>
  117. <dc:creator>Jesse Gallagher</dc:creator>
  118. <category>connect</category>
  119.  
  120. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/&#49;&#48;&#52;EA&#49;&#53;&#49;B&#54;&#50;&#48;&#56;DF&#50;&#56;&#53;&#50;&#53;&#56;&#48;C&#56;&#48;&#48;&#52;&#51;&#56;&#50;CF</guid>
  121. <description>
  122. IBM&#32;Connect&#32;&#50;&#48;&#49;&#55;&#32;is&#32;less&#32;than&#32;a&#32;week&#32;away&#44;&#32;and&#32;I&#39;ve&#32;been&#32;furiously&#32;prepping&#32;for&#32;&#10;a&#32;couple&#32;parts[...]
  123. </description>
  124. <content:encoded>IBM&#32;Connect&#32;&#50;&#48;&#49;&#55;&#32;is&#32;less&#32;than&#32;a&#32;week&#32;away&#44;&#32;and&#32;I&#39;ve&#32;been&#32;furiously&#32;prepping&#32;for&#32;&#10;a&#32;couple&#32;parts&#32;of&#32;what&#32;is&#32;promising&#32;to&#32;be&#32;a&#32;busy&#32;conference&#46;&#10;&#10;On&#32;Monday&#44;&#32;before&#32;the&#32;official&#32;kickoff&#32;of&#32;the&#32;conference&#44;&#32;OpenNTF&#32;is&#32;co&#45;hosting&#32;&#10;a&#32;Hackathon&#44;&#32;where&#32;attendees&#32;will&#32;work&#32;on&#32;one&#32;of&#32;several&#32;potential&#32;projects&#46;&#32;&#10;The&#32;goal&#32;is&#32;to&#32;learn&#32;about&#32;new&#32;development&#32;methods&#44;&#32;work&#32;with&#32;new&#32;people&#44;&#32;and&#32;&#10;hopefully&#32;kick&#32;off&#32;some&#32;useful&#32;open&#45;source&#32;projects&#32;to&#32;boot&#46;&#10;&#10;During&#32;the&#32;conference&#32;proper&#44;&#32;I&#39;ll&#32;be&#32;presenting&#32;two&#32;sessions&#44;&#32;both&#32;alongside&#32;&#10;Philippe&#32;Riand&#58;&#10;&#10;On&#32;Wednesday&#32;at&#32;&#49;&#48;&#32;AM&#44;&#32;we&#39;ll&#32;be&#32;discussing&#32;IBM&#32;Connections&#32;integration&#160;&#45;&#32;&#10;specifically&#44;&#32;the&#32;numerous&#32;hooks&#32;provided&#32;by&#32;Connections&#32;locally&#32;and&#32;on&#32;the&#32;&#10;cloud&#32;for&#32;integrating&#32;your&#32;application&#32;as&#32;seamlessly&#32;as&#32;possible&#46;&#32;That&#32;will&#32;be&#32;&#10;&#34;IBM&#32;Connections&#32;Integration&#58;&#32;Exploring&#32;the&#32;Long&#32;List&#32;of&#32;Options&#34;&#32;in&#32;room&#32;&#50;&#48;&#48;&#54;&#46;&#10;&#10;Then&#44;&#32;on&#32;Thursday&#32;at&#32;&#57;&#32;AM&#44;&#32;we&#39;ll&#32;be&#32;discussing&#32;Darwino&#32;and&#32;its&#32;role&#32;integrating&#32;&#10;with&#32;and&#32;extending&#32;Domino&#32;applications&#46;&#32;This&#32;should&#32;be&#32;a&#32;&#10;particularly&#45;interesting&#32;one&#44;&#32;covering&#32;what&#32;Darwino&#32;is&#44;&#32;how&#32;its&#32;bidirectional&#32;&#10;replication&#32;with&#32;Domino&#32;works&#44;&#32;and&#32;some&#32;example&#32;scenarios&#32;for&#32;reporting&#32;on&#32;and&#32;&#10;bringing&#32;forward&#32;Domino&#32;apps&#46;&#32;That&#32;will&#32;be&#32;&#34;Give&#32;a&#32;New&#32;Life&#32;to&#32;Your&#32;&#10;Notes&#47;Domino&#32;Applications&#32;and&#32;Leverage&#32;IBM&#32;Bluemix&#44;&#32;Watson&#32;and&#32;Connections&#34;&#32;in&#32;&#10;room&#32;&#50;&#48;&#48;&#48;&#46;&#10;&#10;Even&#32;with&#32;many&#32;of&#32;our&#32;usual&#32;community&#32;friends&#32;unable&#32;to&#32;make&#32;it&#32;to&#32;the&#32;&#10;conference&#32;or&#32;having&#32;moved&#32;on&#32;to&#32;other&#32;platforms&#44;&#32;Connect&#32;is&#32;shaping&#32;up&#32;to&#32;be&#32;a&#32;&#10;worthwhile&#32;conference&#44;&#32;and&#32;I&#39;m&#32;very&#32;much&#32;looking&#32;forward&#32;to&#32;seeing&#32;everyone&#32;who&#32;&#10;is&#32;there&#33;&#10;</content:encoded>
  125. </item>
  126.  
  127. <item>
  128. <title>December&#32;Is&#32;Self&#45;Aggrandizement&#32;Month&#44;&#32;Apparently</title>
  129. <link>http://frostillic.us/f.nsf/posts/FBE&#48;&#49;EA&#55;&#53;&#54;&#51;&#56;E&#55;CC&#56;&#53;&#50;&#53;&#56;&#48;&#56;C&#48;&#48;&#53;&#52;&#55;&#48;&#53;C</link>
  130. <comments>http://frostillic.us/f.nsf/posts/FBE&#48;&#49;EA&#55;&#53;&#54;&#51;&#56;E&#55;CC&#56;&#53;&#50;&#53;&#56;&#48;&#56;C&#48;&#48;&#53;&#52;&#55;&#48;&#53;C#comments</comments>
  131. <pubDate>Sat, 17 Dec 2016 15:21:55 +0000</pubDate>
  132. <dc:creator>Jesse Gallagher</dc:creator>
  133. <category>self&#45;aggrandizement</category>
  134.  
  135. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/FBE&#48;&#49;EA&#55;&#53;&#54;&#51;&#56;E&#55;CC&#56;&#53;&#50;&#53;&#56;&#48;&#56;C&#48;&#48;&#53;&#52;&#55;&#48;&#53;C</guid>
  136. <description>
  137. It&#39;s&#32;been&#32;a&#32;busy&#32;month&#32;&#40;couple&#32;of&#32;years&#44;&#32;really&#41;&#44;&#32;but&#32;the&#32;last&#32;few&#32;weeks&#32;in&#32;&#10;particular&#32;have&#32;in[...]
  138. </description>
  139. <content:encoded>It&#39;s&#32;been&#32;a&#32;busy&#32;month&#32;&#40;couple&#32;of&#32;years&#44;&#32;really&#41;&#44;&#32;but&#32;the&#32;last&#32;few&#32;weeks&#32;in&#32;&#10;particular&#32;have&#32;involved&#32;a&#32;couple&#32;minor&#32;announcements&#32;that&#32;I&#39;m&#32;quite&#32;&#10;appreciative&#32;for&#46;&#10;&#10;On&#32;the&#32;&#49;&#52;th&#44;&#32;IBM&#32;announced&#32;the&#32;&#50;&#48;&#49;&#55;&#32;class&#32;of&#32;IBM&#32;Champions&#32;for&#32;ICS&#44;&#32;and&#32;they&#32;&#10;included&#32;me&#32;on&#32;the&#32;list&#46;&#32;It&#39;s&#32;been&#32;a&#32;joy&#32;to&#32;be&#32;considered&#32;a&#32;Champion&#32;for&#32;the&#32;&#10;last&#32;few&#32;years&#44;&#32;and&#32;&#50;&#48;&#49;&#55;&#32;promises&#32;to&#32;be&#32;an&#32;interesting&#32;year&#32;to&#32;continue&#32;that&#32;in&#32;&#10;our&#32;slice&#32;of&#32;the&#32;development&#32;world&#46;&#10;&#10;Mere&#32;days&#32;later&#44;&#32;IBM&#32;sent&#32;out&#32;notifications&#32;about&#32;Connect&#32;&#50;&#48;&#49;&#55;&#32;sessions&#44;&#32;and&#32;&#10;one&#32;of&#32;the&#32;abstracts&#32;I&#39;m&#32;a&#32;co&#45;presenter&#32;for&#32;was&#32;approved&#46;&#32;I&#39;ll&#32;be&#32;presending&#32;&#10;DEV&#45;&#49;&#52;&#51;&#48;&#58;&#32;IBM&#32;Connections&#32;Integration&#58;&#32;Exploring&#32;the&#32;Long&#32;List&#32;of&#32;Options&#32;with&#32;&#10;Philippe&#32;Riand&#46;&#10;&#10;And&#32;finally&#44;&#32;I&#39;ve&#32;taken&#32;up&#32;the&#32;daunting&#32;task&#32;of&#32;taking&#32;Peter&#32;Tanner&#39;s&#32;mantle&#32;as&#32;&#10;IP&#32;Manager&#32;at&#32;OpenNTF&#46;&#32;Peter&#39;s&#32;work&#32;has&#32;been&#32;outstanding&#32;over&#32;the&#32;years&#32;&#40;I&#39;ve&#32;&#10;always&#32;appreciated&#32;the&#32;prodding&#32;to&#32;get&#32;my&#32;licensing&#32;ducks&#32;in&#32;a&#32;row&#41;&#44;&#32;and&#32;I&#32;hope&#32;&#10;to&#32;be&#32;up&#32;to&#32;the&#32;task&#32;of&#32;replacing&#32;him&#32;when&#32;he&#32;retires&#32;at&#32;the&#32;end&#32;of&#32;the&#32;year&#46;&#10;</content:encoded>
  140. </item>
  141.  
  142. <item>
  143. <title>The&#32;New&#32;Podcast&#32;is&#32;a&#32;Real&#32;Thing&#58;&#32;WTF&#32;Tech&#32;Episode&#32;&#49;</title>
  144. <link>http://frostillic.us/f.nsf/posts/AC&#57;E&#54;&#48;&#48;&#55;&#54;&#53;&#56;&#56;&#57;&#48;&#53;A&#56;&#53;&#50;&#53;&#56;&#48;&#53;D&#48;&#48;&#53;&#48;&#49;&#48;E&#54;</link>
  145. <comments>http://frostillic.us/f.nsf/posts/AC&#57;E&#54;&#48;&#48;&#55;&#54;&#53;&#56;&#56;&#57;&#48;&#53;A&#56;&#53;&#50;&#53;&#56;&#48;&#53;D&#48;&#48;&#53;&#48;&#49;&#48;E&#54;#comments</comments>
  146. <pubDate>Mon, 31 Oct 2016 14:31:06 +0000</pubDate>
  147. <dc:creator>Jesse Gallagher</dc:creator>
  148. <category></category>
  149.  
  150. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/AC&#57;E&#54;&#48;&#48;&#55;&#54;&#53;&#56;&#56;&#57;&#48;&#53;A&#56;&#53;&#50;&#53;&#56;&#48;&#53;D&#48;&#48;&#53;&#48;&#49;&#48;E&#54;</guid>
  151. <description>
  152. As&#32;intimated&#32;at&#32;the&#32;end&#32;of&#32;the&#32;last&#32;This&#32;Week&#32;in&#32;Lotus&#44;&#32;Stuart&#44;&#32;Darren&#44;&#32;and&#32;I&#32;&#10;have&#32;launched&#32;a&#32;[...]
  153. </description>
  154. <content:encoded>As&#32;intimated&#32;at&#32;the&#32;end&#32;of&#32;the&#32;last&#32;This&#32;Week&#32;in&#32;Lotus&#44;&#32;Stuart&#44;&#32;Darren&#44;&#32;and&#32;I&#32;&#10;have&#32;launched&#32;a&#32;new&#32;podcast&#32;in&#32;a&#32;similar&#32;vein&#58;&#32;WTF&#32;Tech&#46;&#32;Since&#32;we&#39;re&#32;all&#32;in&#32;the&#32;&#10;IBM&#32;sphere&#44;&#32;that&#39;ll&#32;be&#32;the&#32;natural&#32;starting&#32;point&#32;for&#32;the&#32;topics&#32;we&#32;cover&#44;&#32;but&#32;&#10;it&#39;s&#32;not&#32;going&#32;to&#32;be&#32;IBM&#45;focused&#32;as&#32;such&#46;&#32;For&#32;this&#32;first&#32;episode&#44;&#32;we&#32;lucked&#32;out&#32;&#10;and&#32;had&#32;a&#32;couple&#45;weeks&#32;period&#32;chock&#32;full&#32;of&#32;announcements&#44;&#32;so&#32;we&#32;had&#32;plenty&#32;of&#32;&#10;material&#46;&#32;Give&#32;it&#32;a&#32;listen&#33;&#10;</content:encoded>
  155. </item>
  156.  
  157. <item>
  158. <title>Cramming&#32;Rails&#32;Into&#32;A&#32;Maven&#32;Tree</title>
  159. <link>http://frostillic.us/f.nsf/posts/A&#55;B&#48;&#50;&#51;&#57;&#55;&#55;&#54;&#49;A&#54;&#48;C&#53;&#56;&#53;&#50;&#53;&#56;&#48;&#51;A&#48;&#48;&#53;FB&#56;&#49;F</link>
  160. <comments>http://frostillic.us/f.nsf/posts/A&#55;B&#48;&#50;&#51;&#57;&#55;&#55;&#54;&#49;A&#54;&#48;C&#53;&#56;&#53;&#50;&#53;&#56;&#48;&#51;A&#48;&#48;&#53;FB&#56;&#49;F#comments</comments>
  161. <pubDate>Mon, 26 Sep 2016 17:25:16 +0000</pubDate>
  162. <dc:creator>Jesse Gallagher</dc:creator>
  163. <category></category>
  164.  
  165. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/A&#55;B&#48;&#50;&#51;&#57;&#55;&#55;&#54;&#49;A&#54;&#48;C&#53;&#56;&#53;&#50;&#53;&#56;&#48;&#51;A&#48;&#48;&#53;FB&#56;&#49;F</guid>
  166. <description>
  167. Because&#32;I&#39;m&#32;me&#44;&#32;one&#32;of&#32;the&#32;paths&#32;I&#39;m&#32;investigating&#32;for&#32;my&#32;long&#45;term&#32;&#10;blog&#45;reformation&#32;project&#32;i[...]
  168. </description>
  169. <content:encoded>Because&#32;I&#39;m&#32;me&#44;&#32;one&#32;of&#32;the&#32;paths&#32;I&#39;m&#32;investigating&#32;for&#32;my&#32;long&#45;term&#32;&#10;blog&#45;reformation&#32;project&#32;is&#32;seeing&#32;if&#32;I&#32;can&#32;get&#32;Ruby&#32;on&#32;Rails&#32;in&#32;there&#46;&#32;I&#39;ve&#32;&#10;been&#32;carrying&#32;a&#32;torch&#32;for&#32;the&#32;language&#32;and&#32;framework&#32;for&#32;forever&#44;&#32;and&#32;so&#32;it&#39;d&#32;&#10;be&#32;good&#32;to&#32;actually&#32;write&#32;a&#32;real&#32;thing&#32;in&#32;it&#32;for&#32;once&#46;&#10;&#10;This&#32;has&#32;been&#32;proving&#32;to&#32;be&#32;a&#32;very&#32;interesting&#32;thing&#32;to&#32;try&#32;to&#32;do&#32;well&#46;&#32;&#10;Fortunately&#44;&#32;the&#32;basics&#32;of&#32;&#34;run&#32;Rails&#32;in&#32;a&#32;Java&#32;server&#34;&#32;have&#32;been&#32;well&#32;worked&#32;&#10;out&#58;&#32;the&#32;JRuby&#32;variant&#32;of&#32;the&#32;language&#32;is&#32;top&#45;notch&#32;and&#32;the&#32;adorably&#45;named&#32;&#10;Warbler&#32;project&#32;will&#32;take&#32;a&#32;Rails&#32;app&#32;and&#32;turn&#32;it&#32;into&#32;a&#32;JEE&#45;style&#32;WAR&#32;file&#32;or&#32;&#10;self&#45;hosting&#32;JAR&#46;&#32;That&#32;still&#32;leaves&#44;&#32;though&#44;&#32;a&#32;few&#32;big&#32;tasks&#44;&#32;in&#32;order&#32;of&#32;&#10;ascending&#32;difficulty&#58;&#10;&#10;Cramming&#32;a&#32;Warbled&#32;Rails&#32;app&#32;into&#32;a&#32;Maven&#32;build&#10;Getting&#32;the&#32;Rails&#32;app&#32;to&#32;see&#32;the&#32;Java&#32;resources&#32;from&#32;the&#32;other&#32;parts&#32;of&#32;the&#32;tree&#10;Initializing&#32;Darwino&#32;tooling&#32;alongside&#32;Rails&#10;Making&#32;this&#32;pleasant&#32;to&#32;work&#32;with&#10;&#10;So&#32;far&#44;&#32;I&#39;ve&#32;managed&#32;to&#32;get&#32;at&#32;least&#32;a&#32;&#34;first&#32;draft&#34;&#32;answer&#32;to&#32;the&#32;first&#32;three&#32;&#10;tasks&#46;&#10;&#10;Cramming&#32;a&#32;Warbled&#32;Rails&#32;app&#32;into&#32;a&#32;Maven&#32;build&#10;&#10;When&#32;you&#32;get&#32;to&#32;the&#32;task&#32;of&#32;trying&#32;to&#32;do&#32;something&#32;unusual&#32;in&#32;Maven&#44;&#32;the&#32;ideal&#32;&#10;case&#32;is&#32;that&#32;there&#32;will&#32;be&#32;a&#32;nice&#32;Maven&#32;plugin&#32;that&#32;will&#32;just&#32;do&#32;the&#32;job&#32;for&#32;&#10;you&#46;&#32;Along&#32;those&#32;lines&#44;&#32;I&#32;found&#32;a&#32;few&#32;things&#44;&#32;ranging&#32;from&#32;a&#32;tool&#32;that&#32;will&#32;&#10;assist&#32;with&#32;making&#32;sure&#32;your&#32;Gems&#32;&#40;Ruby&#32;dependencies&#41;&#32;are&#32;handled&#32;nicely&#32;to&#32;one&#32;&#10;that&#32;outright&#32;proxies&#32;Gems&#32;into&#32;Maven&#32;dependencies&#46;&#32;However&#44;&#32;none&#32;that&#32;I&#32;found&#32;&#10;quite&#32;did&#32;the&#32;job&#44;&#32;and&#32;so&#32;I&#32;fell&#32;back&#32;to&#32;the&#32;ol&#39;&#45;reliable&#32;second&#32;option&#58;&#32;just&#32;&#10;shell&#32;out&#32;to&#32;the&#32;command&#32;line&#46;&#32;That&#39;s&#32;not&#32;ideal&#32;&#40;for&#32;reasons&#32;I&#39;ll&#32;get&#32;to&#32;&#10;below&#41;&#44;&#32;but&#32;it&#32;works&#46;&#10;&#10;I&#32;ended&#32;up&#32;putting&#32;the&#32;Rails&#32;app&#32;into&#32;src&#47;main&#47;rails&#47;blog&#32;and&#32;then&#32;using&#32;the&#32;&#10;exec&#45;maven&#45;plugin&#32;to&#32;do&#32;the&#32;Warbling&#32;for&#32;me&#58;&#10;&#10;&#60;plugin&#62;&#10;&#9;&#60;groupId&#62;org&#46;codehaus&#46;mojo&#60;&#47;groupId&#62;&#10;&#9;&#60;artifactId&#62;exec&#45;maven&#45;plugin&#60;&#47;artifactId&#62;&#10;&#9;&#60;executions&#62;&#10;&#9;&#32;&#60;execution&#62;&#10;&#9;&#32;&#32;&#60;id&#62;create&#45;final&#45;war&#60;&#47;id&#62;&#10;&#9;&#32;&#32;&#60;phase&#62;package&#60;&#47;phase&#62;&#10;&#9;&#32;&#32;&#60;goals&#62;&#10;&#9;&#32;&#32;&#32;&#60;goal&#62;exec&#60;&#47;goal&#62;&#10;&#9;&#32;&#32;&#60;&#47;goals&#62;&#10;&#9;&#32;&#32;&#60;configuration&#62;&#10;&#9;&#32;&#32;&#32;&#60;executable&#62;&#47;bin&#47;sh&#60;&#47;executable&#62;&#10;&#9;&#32;&#32;&#32;&#60;workingDirectory&#62;&#46;&#60;&#47;workingDirectory&#62;&#10;&#9;&#32;&#32;&#32;&#60;arguments&#62;&#10;&#9;&#32;&#32;&#32;&#32;&#60;argument&#62;&#45;c&#60;&#47;argument&#62;&#10;&#9;&#32;&#32;&#32;&#32;&#60;argument&#62;&#10;&#9;&#32;&#32;&#32;&#32;&#32;rm&#32;&#45;f&#32;src&#47;main&#47;ruby&#47;blog&#47;&#42;&#46;war&#10;&#9;&#32;&#32;&#32;&#32;&#32;cd&#32;src&#47;main&#47;ruby&#47;blog&#32;&#38;amp&#59;&#38;amp&#59;&#32;&#92;&#10;&#9;&#32;&#32;&#32;&#32;&#32;jruby&#32;&#45;S&#32;bundle&#32;install&#32;&#38;amp&#59;&#38;amp&#59;&#32;&#92;&#10;&#9;&#32;&#32;&#32;&#32;&#32;jruby&#32;&#45;S&#32;warble&#32;executable&#32;war&#32;&#38;amp&#59;&#38;amp&#59;&#32;&#92;&#10;&#9;&#32;&#32;&#32;&#32;&#32;cd&#32;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#32;&#38;amp&#59;&#38;amp&#59;&#10;&#9;&#32;&#32;&#32;&#32;&#32;mv&#32;src&#47;main&#47;ruby&#47;blog&#47;&#42;&#46;war&#32;target&#47;&#36;&#123;project&#46;build&#46;finalName&#125;&#46;war&#10;&#9;&#32;&#32;&#32;&#32;&#60;&#47;argument&#62;&#10;&#9;&#32;&#32;&#32;&#60;&#47;arguments&#62;&#10;&#9;&#32;&#32;&#60;&#47;configuration&#62;&#10;&#9;&#32;&#60;&#47;execution&#62;&#10;&#9;&#60;&#47;executions&#62;&#10;&#60;&#47;plugin&#62;&#10;&#10;This&#32;amounts&#32;to&#32;a&#32;shell&#32;script&#32;that&#32;clears&#32;out&#32;any&#32;previous&#32;build&#44;&#32;makes&#32;sure&#32;&#10;the&#32;dependencies&#32;are&#32;up&#32;to&#32;date&#32;&#40;jruby&#32;&#45;S&#32;bundle&#32;install&#41;&#44;&#32;creates&#32;a&#32;&#10;self&#45;hosting&#32;WAR&#32;file&#32;&#40;jruby&#32;&#45;S&#32;warble&#32;executable&#32;war&#41;&#44;&#32;and&#32;then&#32;copies&#32;that&#32;&#10;result&#32;to&#32;the&#32;name&#32;expected&#32;by&#32;normal&#32;Maven&#32;WAR&#32;packaging&#46;&#32;This&#32;basically&#32;&#10;works&#46;&#10;&#10;Getting&#32;the&#32;Rails&#32;app&#32;to&#32;see&#32;the&#32;Java&#32;resources&#32;from&#32;the&#32;other&#32;parts&#32;of&#32;the&#32;tree&#10;&#10;Now&#32;that&#32;I&#32;had&#32;a&#32;properly&#45;building&#32;WAR&#44;&#32;my&#32;next&#32;task&#32;was&#32;to&#32;bring&#32;in&#32;any&#32;&#10;dependency&#32;JARs&#32;and&#32;in&#45;project&#32;Java&#32;classes&#32;for&#32;use&#32;at&#32;runtime&#46;&#32;Fortunately&#44;&#32;&#10;this&#32;is&#32;a&#32;job&#32;that&#32;Warbler&#32;can&#32;handle&#44;&#32;by&#32;way&#32;of&#32;its&#32;config&#47;warble&#46;rb&#32;file&#46;&#32;In&#32;&#10;the&#32;root&#32;of&#32;the&#32;blog&#32;project&#44;&#32;I&#32;ran&#32;warble&#32;config&#32;to&#32;generate&#32;this&#32;stub&#32;file&#46;&#32;&#10;Like&#32;almost&#32;everything&#32;else&#32;in&#32;Rails&#44;&#32;the&#32;configuration&#32;is&#32;done&#32;in&#32;Ruby&#44;&#32;and&#32;&#10;this&#32;file&#32;is&#32;a&#32;large&#32;block&#32;of&#32;Ruby&#32;code&#32;examples&#44;&#32;mostly&#32;commented&#32;out&#46;&#32;I&#32;&#10;adjusted&#32;the&#32;lines&#32;to&#32;copy&#32;in&#32;the&#32;dependency&#32;JARs&#32;&#40;which&#32;Maven&#44;&#32;in&#32;a&#32;WAR&#32;&#10;package&#44;&#32;will&#32;have&#32;previously&#32;copied&#32;for&#32;me&#41;&#32;and&#32;to&#32;copy&#32;in&#32;any&#32;&#34;loose&#34;&#32;Java&#32;&#10;classes&#32;I&#32;may&#32;have&#32;alongside&#32;Rails&#32;in&#32;the&#32;current&#32;project&#58;&#10;&#10;config&#46;java&#95;libs&#32;&#43;&#61;&#32;&#10;FileList&#91;&#34;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#47;target&#47;frostillicus&#45;blog&#47;WEB&#45;INF&#47;lib&#47;&#42;&#46;jar&#34;&#93;&#10;config&#46;java&#95;classes&#32;&#61;&#32;&#10;FileList&#91;&#34;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#47;target&#47;frostillicus&#45;blog&#47;WEB&#45;INF&#47;classes&#47;&#42;&#42;&#47;&#42;&#34;&#93;&#10;config&#46;pathmaps&#46;java&#95;classes&#32;&#60;&#60;&#32;&#10;&#34;&#37;&#123;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#47;&#46;&#46;&#47;target&#47;frostillicus&#45;blog&#47;WEB&#45;INF&#47;classes&#47;&#44;&#125;p&#34;&#10;&#10;These&#32;lines&#32;use&#32;a&#32;helper&#32;class&#32;named&#32;FileList&#32;to&#32;glob&#32;the&#32;appropriate&#32;files&#32;&#10;from&#32;the&#32;project&#39;s&#32;target&#32;directory&#32;and&#32;copy&#32;them&#32;in&#46;&#32;In&#32;the&#32;case&#32;of&#32;the&#32;loose&#32;&#10;classes&#44;&#32;I&#32;also&#32;had&#32;to&#32;figure&#32;out&#32;how&#32;to&#32;clean&#32;up&#32;the&#32;path&#32;names&#32;&#45;&#32;otherwise&#44;&#32;&#10;it&#32;created&#32;a&#32;bizarre&#32;directory&#32;structure&#32;within&#32;the&#32;WAR&#46;&#10;&#10;With&#32;those&#32;lines&#32;in&#32;place&#44;&#32;Warbler&#32;set&#32;up&#32;everything&#32;nicely&#32;&#45;&#32;I&#32;could&#32;reference&#32;&#10;code&#32;from&#32;any&#32;of&#32;the&#32;dependencies&#44;&#32;the&#32;other&#32;modules&#44;&#32;or&#32;anything&#32;from&#32;the&#32;&#10;src&#47;main&#47;java&#32;folder&#32;within&#32;the&#32;same&#32;module&#46;&#10;&#10;Initializing&#32;Darwino&#32;tooling&#32;alongside&#32;Rails&#10;&#10;The&#32;last&#32;step&#32;I&#32;got&#32;working&#32;is&#32;related&#32;to&#32;the&#32;previous&#32;one&#44;&#32;but&#32;has&#32;a&#32;couple&#32;&#10;wrinkles&#46;&#32;In&#32;addition&#32;to&#32;just&#32;having&#32;the&#32;Darwino&#32;classes&#32;available&#32;on&#32;the&#32;&#10;classpath&#44;&#32;a&#32;Darwino&#32;application&#32;has&#32;an&#32;initialization&#32;lifecycle&#44;&#32;done&#32;in&#32;a&#32;JEE&#32;&#10;app&#32;via&#32;filters&#32;defined&#32;in&#32;web&#46;xml&#46;&#32;It&#32;may&#32;also&#32;have&#32;some&#32;support&#32;files&#32;for&#32;&#10;defining&#32;beans&#32;and&#32;properties&#44;&#32;which&#32;aren&#39;t&#32;covered&#32;by&#32;the&#32;same&#32;process&#32;as&#32;&#10;above&#46;&#32;To&#32;start&#32;with&#32;the&#32;latter&#44;&#32;I&#32;needed&#32;to&#32;figure&#32;out&#32;how&#32;I&#32;was&#32;going&#32;to&#32;get&#32;&#10;the&#32;files&#32;included&#32;in&#32;the&#32;&#34;normal&#34;&#32;JEE&#32;project&#39;s&#32;WEB&#45;INF&#32;folder&#32;copied&#32;into&#32;the&#32;&#10;Rails&#32;WAR&#32;without&#32;destroying&#32;anything&#32;else&#46;&#32;Fortunately&#44;&#32;the&#32;same&#32;config&#32;file&#32;&#10;had&#32;a&#32;hook&#32;for&#32;that&#58;&#10;&#10;config&#46;webinf&#95;files&#32;&#43;&#61;&#32;FileList&#91;&#34;&#46;&#46;&#47;&#46;&#46;&#47;webapp&#47;WEB&#45;INF&#47;&#42;&#42;&#47;&#42;&#34;&#93;&#32;&#45;&#32;&#10;&#91;&#34;&#46;&#46;&#47;&#46;&#46;&#47;webapp&#47;WEB&#45;INF&#47;web&#46;xml&#34;&#93;&#10;config&#46;pathmaps&#46;webinf&#95;files&#32;&#61;&#32;&#91;&#34;&#37;&#123;&#46;&#46;&#47;&#46;&#46;&#47;webapp&#47;WEB&#45;INF&#47;&#44;&#125;p&#34;&#93;&#10;&#10;This&#32;one&#32;is&#32;basically&#32;the&#32;same&#32;as&#32;above&#44;&#32;but&#32;with&#32;an&#32;important&#32;subtraction&#58;&#32;I&#32;&#10;want&#32;to&#32;make&#32;sure&#32;to&#32;not&#32;copy&#32;the&#32;normal&#32;app&#39;s&#32;web&#46;xml&#32;file&#32;in&#46;&#32;If&#32;that&#39;s&#32;&#10;copied&#32;in&#44;&#32;then&#32;Warbler&#32;will&#32;respectfully&#32;leave&#32;it&#32;alone&#44;&#32;which&#32;would&#32;mean&#32;that&#32;&#10;the&#32;Rails&#32;portion&#32;of&#32;the&#32;app&#32;won&#39;t&#32;be&#32;launched&#46;&#32;I&#39;m&#32;handling&#32;that&#32;specially&#44;&#32;so&#32;&#10;I&#32;made&#32;sure&#32;to&#32;use&#32;Ruby&#39;s&#32;&#34;array&#32;subtraction&#34;&#32;shorthand&#32;to&#32;make&#32;sure&#32;it&#39;s&#32;not&#32;&#10;included&#46;&#10;&#10;So&#32;that&#32;left&#32;modifying&#32;the&#32;web&#46;xml&#32;itself&#44;&#32;in&#32;order&#32;to&#32;serve&#32;two&#32;masters&#46;&#32;Both&#32;&#10;Darwino&#32;and&#32;Rails&#32;expect&#32;certain&#32;filters&#32;to&#32;happen&#44;&#32;and&#32;so&#32;I&#32;copied&#32;Warbler&#39;s&#32;&#10;web&#46;xml&#46;erb&#32;template&#32;into&#32;the&#32;config&#32;directory&#32;for&#32;modification&#46;&#32;&#46;erb&#32;is&#32;the&#32;&#10;designation&#32;for&#32;&#34;embedded&#32;Ruby&#34;&#44;&#32;and&#32;it&#39;s&#32;a&#32;technique&#32;Ruby&#32;tools&#32;frequently&#32;use&#32;&#10;for&#32;sprinkling&#32;a&#32;bit&#32;of&#32;Ruby&#32;logic&#32;into&#32;non&#45;Ruby&#32;files&#44;&#32;with&#32;a&#32;result&#32;that&#39;s&#32;&#10;similar&#32;to&#32;PHP&#32;and&#32;other&#32;full&#45;powers&#32;templating&#32;languages&#46;&#32;The&#32;resultant&#32;file&#32;&#10;is&#32;essentially&#32;a&#32;mix&#32;of&#32;the&#32;stock&#32;file&#32;created&#32;by&#32;Darwino&#32;Studio&#32;and&#32;the&#32;&#10;Warbler&#32;one&#44;&#32;with&#32;some&#32;of&#32;the&#32;Darwino&#32;additions&#32;commented&#32;out&#32;in&#32;favor&#32;of&#32;the&#32;&#10;Rails&#32;stack&#46;&#10;&#10;Making&#32;this&#32;pleasant&#32;to&#32;work&#32;with&#10;&#10;This&#32;final&#32;part&#32;is&#32;going&#32;to&#32;be&#32;the&#32;crux&#32;of&#32;it&#46;&#32;Right&#32;now&#44;&#32;the&#32;development&#32;&#10;process&#32;is&#32;a&#32;little&#32;cumbersome&#58;&#32;the&#32;Rails&#32;app&#32;is&#32;essentially&#32;its&#32;own&#32;little&#32;&#10;universe&#44;&#32;only&#32;fused&#32;with&#32;the&#32;surrounding&#32;Java&#32;code&#32;by&#32;the&#32;packaging&#32;process&#46;&#32;&#10;That&#32;means&#32;that&#44;&#32;even&#32;if&#32;I&#32;got&#32;a&#32;great&#32;Rails&#32;IDE&#44;&#32;it&#32;wouldn&#39;t&#32;necessarily&#32;know&#32;&#10;anything&#32;about&#32;the&#32;surrounding&#32;Java&#32;code&#32;&#40;unless&#32;they&#39;re&#32;smarter&#32;than&#32;I&#39;d&#32;&#10;think&#41;&#46;&#32;More&#32;importantly&#44;&#32;the&#32;change&#47;view&#45;live&#32;loop&#32;is&#32;lengthy&#44;&#32;since&#32;I&#32;have&#32;to&#32;&#10;make&#32;a&#32;change&#32;in&#32;the&#32;app&#32;and&#32;then&#32;re&#45;run&#32;the&#32;Maven&#32;build&#32;and&#32;re&#45;launch&#32;the&#32;&#10;embedded&#32;server&#46;&#32;I&#32;lose&#32;the&#32;advantages&#32;both&#32;of&#32;Eclipse&#39;s&#32;built&#45;in&#32;run&#45;on&#45;Tomcat&#32;&#10;capabilities&#32;as&#32;well&#32;as&#32;the&#32;normal&#32;Rails&#32;self&#45;hosting&#32;hot&#45;code&#45;replace&#32;&#10;capabilities&#46;&#10;&#10;Fortunately&#44;&#32;at&#32;least&#32;for&#32;now&#44;&#32;the&#32;awkwardness&#32;of&#32;this&#32;toolchain&#32;may&#32;be&#32;&#10;primarily&#32;related&#32;to&#32;my&#32;lack&#32;of&#32;knowledge&#46;&#32;If&#32;I&#32;can&#32;find&#32;a&#32;way&#32;to&#32;automate&#32;the&#32;&#10;Warbling&#32;inside&#32;Eclipse&#44;&#32;that&#32;would&#32;go&#32;a&#32;tremendous&#32;way&#32;to&#32;making&#32;the&#32;whole&#32;&#10;thing&#32;a&#32;mostly&#45;smooth&#32;experience&#46;&#32;One&#32;potential&#32;route&#32;to&#32;this&#32;would&#32;be&#32;to&#32;&#10;create&#32;a&#32;Maven&#32;plugin&#32;to&#32;handle&#32;the&#32;conversion&#44;&#32;and&#32;then&#32;include&#32;an&#32;m&#50;e&#32;adapter&#32;&#10;to&#32;get&#32;it&#32;to&#32;conform&#32;to&#32;Eclipse&#39;s&#32;expectations&#46;&#32;That&#32;would&#32;be&#32;a&#32;tremendous&#32;&#10;boon&#58;&#32;not&#32;only&#32;would&#32;it&#32;be&#32;smoother&#32;to&#32;launch&#44;&#32;but&#32;it&#32;would&#32;potentially&#32;gain&#32;&#10;the&#32;benefit&#32;of&#32;referencing&#32;workspace&#32;projects&#32;directly&#44;&#32;lessening&#32;the&#32;need&#32;to&#32;&#10;worry&#32;about&#32;Maven&#32;installation&#46;&#32;That&#32;would&#32;be&#32;a&#32;good&#32;chunk&#32;of&#32;work&#44;&#32;but&#32;it&#39;s&#32;an&#32;&#10;area&#32;I&#39;d&#32;like&#32;to&#32;dive&#32;into&#32;more&#32;eventually&#32;anyway&#46;&#10;&#10;In&#32;the&#32;mean&#32;time&#44;&#32;the&#32;latest&#32;state&#32;of&#32;the&#32;conversion&#32;is&#32;up&#32;on&#32;GitHub&#32;for&#32;anyone&#32;&#10;curious&#58;&#10;&#10;https&#58;&#47;&#47;github&#46;com&#47;jesse&#45;gallagher&#47;frostillic&#46;us&#45;Blog&#10;</content:encoded>
  170. </item>
  171.  
  172. <item>
  173. <title>Quick&#32;Post&#58;&#32;Maven&#45;izing&#32;the&#32;XSP&#32;Repo</title>
  174. <link>http://frostillic.us/f.nsf/posts/&#49;&#50;A&#56;&#52;&#51;C&#55;&#52;&#54;BA&#53;&#55;&#56;&#49;&#56;&#53;&#50;&#53;&#56;&#48;&#51;&#49;&#48;&#48;&#51;&#54;C&#57;D&#53;</link>
  175. <comments>http://frostillic.us/f.nsf/posts/&#49;&#50;A&#56;&#52;&#51;C&#55;&#52;&#54;BA&#53;&#55;&#56;&#49;&#56;&#53;&#50;&#53;&#56;&#48;&#51;&#49;&#48;&#48;&#51;&#54;C&#57;D&#53;#comments</comments>
  176. <pubDate>Sat, 17 Sep 2016 09:58:10 +0000</pubDate>
  177. <dc:creator>Jesse Gallagher</dc:creator>
  178. <category>maven</category>
  179. <category>xpages</category>
  180.  
  181. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/&#49;&#50;A&#56;&#52;&#51;C&#55;&#52;&#54;BA&#53;&#55;&#56;&#49;&#56;&#53;&#50;&#53;&#56;&#48;&#51;&#49;&#48;&#48;&#51;&#54;C&#57;D&#53;</guid>
  182. <description>
  183. This&#32;post&#32;follows&#32;in&#32;my&#32;tradition&#32;of&#32;extremely&#45;narrow&#45;use&#45;case&#32;guides&#44;&#32;but&#32;&#10;perhaps&#32;this&#32;will&#32;c[...]
  184. </description>
  185. <content:encoded>This&#32;post&#32;follows&#32;in&#32;my&#32;tradition&#32;of&#32;extremely&#45;narrow&#45;use&#45;case&#32;guides&#44;&#32;but&#32;&#10;perhaps&#32;this&#32;will&#32;come&#32;in&#32;handy&#32;in&#32;some&#32;situations&#32;nonetheless&#46;&#10;&#10;Specifically&#44;&#32;a&#32;while&#32;back&#44;&#32;I&#32;wrote&#32;a&#32;script&#32;that&#32;&#34;Maven&#45;izes&#34;&#32;the&#32;XPages&#32;&#10;artifacts&#44;&#32;as&#32;provided&#32;by&#32;IBM&#39;s&#32;Update&#32;Site&#32;for&#32;Build&#32;Management&#46;&#32;This&#32;may&#32;seem&#32;&#10;a&#32;bit&#32;counter&#45;intuitive&#32;at&#32;first&#44;&#32;since&#32;the&#32;entire&#32;point&#32;of&#32;that&#32;download&#32;is&#32;to&#32;&#10;be&#32;able&#32;to&#32;compile&#32;using&#32;Maven&#44;&#32;but&#32;there&#39;s&#32;a&#32;catch&#32;to&#32;it&#58;&#32;the&#32;repository&#32;is&#32;&#10;still&#32;in&#32;Eclipse&#32;&#40;&#34;P&#50;&#34;&#41;&#32;format&#44;&#32;which&#32;requires&#32;that&#32;you&#32;use&#32;Tycho&#32;in&#32;your&#32;&#10;project&#46;&#32;That&#39;s&#32;fine&#32;enough&#32;in&#32;most&#32;cases&#32;&#45;&#32;since&#32;Domino&#45;targetted&#32;projects&#32;are&#32;&#10;generally&#32;purely&#32;OSGi&#44;&#32;it&#32;makes&#32;sense&#32;to&#32;have&#32;the&#32;full&#32;OSGi&#32;stack&#32;that&#32;Tycho&#32;&#10;provides&#46;&#32;However&#44;&#32;in&#32;a&#32;case&#32;where&#32;Domino&#32;is&#32;only&#32;one&#32;of&#32;many&#32;supported&#32;&#10;platforms&#44;&#32;the&#32;restrictions&#32;that&#32;Tycho&#32;imposes&#32;on&#32;your&#32;project&#32;can&#32;be&#32;&#10;burdensome&#46;&#10;&#10;So&#44;&#32;for&#32;those&#32;uses&#44;&#32;I&#32;write&#32;a&#32;JRuby&#32;script&#32;that&#32;reads&#32;through&#32;the&#32;P&#50;&#32;site&#32;as&#32;&#10;downloaded&#32;and&#32;extracted&#32;from&#32;OpenNTF&#32;and&#32;generates&#32;best&#45;it&#45;can&#32;Maven&#32;artifacts&#32;&#10;out&#32;of&#32;each&#32;plugin&#46;&#32;It&#32;tries&#32;to&#32;maintain&#32;the&#32;plugin&#32;names&#44;&#32;some&#32;metadata&#32;&#10;&#40;vendor&#44;&#32;version&#44;&#32;etc&#46;&#41;&#44;&#32;and&#32;dependency&#32;hierarchy&#44;&#32;and&#32;the&#32;results&#32;seem&#32;pretty&#32;&#10;reliable&#44;&#32;at&#32;least&#32;for&#32;the&#32;purpose&#32;of&#32;getting&#32;a&#32;non&#45;Tycho&#32;bundle&#32;with&#32;XSP&#32;&#10;references&#32;to&#32;compile&#46;&#32;This&#32;isn&#39;t&#32;necessarily&#32;a&#32;route&#32;you&#39;d&#32;want&#32;to&#32;take&#32;in&#32;all&#32;&#10;cases&#32;&#40;since&#32;you&#32;don&#39;t&#32;get&#32;the&#32;benefits&#32;of&#32;normal&#32;OSGi&#32;resolution&#32;and&#32;services&#32;&#10;in&#32;your&#32;compilation&#41;&#44;&#32;but&#32;may&#32;make&#32;sense&#32;sometimes&#46;&#32;In&#32;any&#32;event&#44;&#32;if&#32;it&#39;s&#32;&#10;helpful&#44;&#32;here&#32;you&#32;go&#58;&#10;&#10;https&#58;&#47;&#47;github&#46;com&#47;jesse&#45;gallagher&#47;Miscellany&#47;blob&#47;master&#47;UpdateSiteConversion&#47;c&#10;onvert&#46;rb&#10;</content:encoded>
  186. </item>
  187.  
  188. <item>
  189. <title>Reforming&#32;the&#32;Blog&#32;in&#32;Darwino&#44;&#32;Part&#32;&#49;</title>
  190. <link>http://frostillic.us/f.nsf/posts/C&#55;&#55;DFB&#55;&#49;B&#57;BE&#50;&#54;CE&#56;&#53;&#50;&#53;&#56;&#48;&#50;F&#48;&#48;&#54;&#54;&#56;&#49;DD</link>
  191. <comments>http://frostillic.us/f.nsf/posts/C&#55;&#55;DFB&#55;&#49;B&#57;BE&#50;&#54;CE&#56;&#53;&#50;&#53;&#56;&#48;&#50;F&#48;&#48;&#54;&#54;&#56;&#49;DD#comments</comments>
  192. <pubDate>Thu, 15 Sep 2016 18:38:12 +0000</pubDate>
  193. <dc:creator>Jesse Gallagher</dc:creator>
  194. <category>darwino</category>
  195.  
  196. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/C&#55;&#55;DFB&#55;&#49;B&#57;BE&#50;&#54;CE&#56;&#53;&#50;&#53;&#56;&#48;&#50;F&#48;&#48;&#54;&#54;&#56;&#49;DD</guid>
  197. <description>
  198. This&#32;continues&#32;to&#32;be&#32;a&#32;very&#32;interesting&#32;time&#32;for&#32;Domino&#32;developers&#44;&#32;with&#32;the&#32;&#10;consternation&#32;of&#32;[...]
  199. </description>
  200. <content:encoded>This&#32;continues&#32;to&#32;be&#32;a&#32;very&#32;interesting&#32;time&#32;for&#32;Domino&#32;developers&#44;&#32;with&#32;the&#32;&#10;consternation&#32;of&#32;MWLUG&#32;giving&#32;way&#32;to&#32;IBM&#39;s&#32;recent&#32;announcement&#32;about&#32;their&#32;&#10;plans&#32;for&#32;Domino&#46;&#32;Like&#32;everyone&#44;&#32;I&#32;have&#32;my&#32;feelings&#32;about&#32;the&#32;matter&#44;&#32;but&#32;the&#32;&#10;upshot&#32;is&#32;that&#32;moving&#45;forward&#32;tone&#32;still&#32;stands&#46;&#32;With&#32;that&#32;in&#32;mind&#44;&#32;let&#39;s&#32;get&#32;&#10;down&#32;to&#32;business&#44;&#32;shall&#32;we&#63;&#10;&#10;I&#39;m&#32;going&#32;to&#32;kick&#32;off&#32;my&#32;long&#45;term&#32;blog&#32;series&#32;of&#32;moving&#32;my&#32;blog&#32;itself&#32;over&#32;to&#32;&#10;a&#32;Darwino&#43;JEE&#32;application&#46;&#32;I&#32;say&#32;&#34;long&#45;term&#34;&#32;because&#32;it&#39;s&#32;a&#32;pure&#32;side&#32;project&#44;&#32;&#10;and&#32;I&#32;still&#32;have&#32;a&#32;lot&#32;of&#32;decisions&#32;yet&#32;to&#32;make&#32;with&#32;it&#32;&#45;&#32;for&#32;one&#44;&#32;I&#32;haven&#39;t&#32;&#10;even&#32;decided&#32;on&#32;which&#32;toolkit&#32;I&#39;ll&#32;be&#32;using&#32;for&#32;the&#32;UI&#46;&#32;However&#44;&#32;since&#32;this&#32;&#10;will&#32;have&#32;the&#32;additional&#32;effect&#32;of&#32;being&#32;a&#32;demo&#32;for&#32;Darwino&#44;&#32;I&#32;want&#32;to&#32;lay&#32;the&#32;&#10;groundwork&#32;early&#46;&#32;And&#32;hey&#44;&#32;that&#39;s&#32;one&#32;of&#32;the&#32;benefits&#32;&#45;&#32;since&#32;the&#32;data&#32;will&#32;&#10;keep&#32;replicating&#44;&#32;I&#32;can&#32;take&#32;whatever&#32;time&#32;I&#32;need&#32;on&#32;the&#32;new&#32;form&#32;while&#32;the&#32;old&#32;&#10;one&#32;chugs&#32;along&#46;&#42;&#10;&#10;As&#32;I&#32;have&#32;time&#32;to&#32;work&#32;on&#32;it&#44;&#32;I&#39;ll&#32;go&#32;over&#32;the&#32;steps&#32;I&#39;ve&#32;taken&#32;and&#32;put&#32;the&#32;&#10;current&#32;state&#32;up&#32;on&#32;GitHub&#46;&#32;These&#32;descriptions&#32;are&#32;meant&#32;to&#32;be&#32;somewhere&#32;in&#32;&#10;between&#32;an&#32;overview&#32;and&#32;a&#32;tutorial&#58;&#32;I&#39;ll&#32;cover&#32;the&#32;specific&#32;steps&#32;I&#32;took&#44;&#32;but&#32;&#10;I&#39;m&#32;leaving&#32;out&#32;a&#32;lot&#32;of&#32;background&#32;info&#32;for&#32;now&#32;&#40;like&#32;installing&#32;a&#32;PostgreSQL&#32;&#10;database&#44;&#32;for&#32;example&#41;&#46;&#10;&#10;To&#32;start&#32;out&#32;with&#44;&#32;I&#39;ll&#32;create&#32;the&#32;basic&#32;projects&#46;&#32;A&#32;prototypical&#32;Darwino&#32;&#10;application&#32;consists&#32;of&#32;a&#32;two&#45;tiered&#32;structure&#32;of&#32;Maven&#32;modules&#58;&#32;a&#32;root&#32;&#10;container&#32;module&#32;and&#32;then&#32;several&#32;related&#32;projects&#46;&#32;In&#32;my&#32;case&#44;&#32;the&#32;tree&#32;looks&#32;&#10;like&#32;this&#58;&#10;&#10;&#91;IMAGE&#93;&#10;&#10;Since&#32;my&#32;plans&#32;are&#32;simple&#44;&#32;this&#32;only&#32;has&#32;a&#32;few&#32;of&#32;the&#32;potential&#32;modules&#32;that&#32;&#10;could&#32;be&#32;created&#44;&#32;but&#32;retains&#32;the&#32;separation&#45;of&#45;concerns&#32;structure&#46;&#32;The&#32;&#10;purposes&#32;of&#32;these&#32;projects&#32;are&#44;&#32;in&#32;order&#32;of&#32;importance&#58;&#10;frostillicus&#45;blog&#45;sharedThis&#32;project&#32;holds&#32;the&#32;database&#32;definition&#32;and&#32;any&#32;&#10;business&#32;logic&#32;that&#32;should&#32;be&#32;shared&#32;across&#32;each&#32;UI&#32;for&#32;the&#32;application&#46;&#32;Most&#32;&#10;of&#32;my&#32;Java&#32;code&#32;will&#32;go&#32;here&#32;&#40;unless&#32;I&#32;pick&#32;a&#32;Java&#45;heavy&#32;UI&#32;toolkit&#44;&#32;I&#32;guess&#41;&#46;&#32;&#10;Any&#32;model&#32;objects&#44;&#32;servlet&#32;definitions&#44;&#32;scheduled&#32;tasks&#44;&#32;and&#32;so&#32;forth&#32;will&#32;go&#32;&#10;here&#46;frostillicus&#45;blog&#45;webuiThis&#32;project&#32;holds&#32;the&#32;assets&#32;used&#32;by&#32;the&#32;web&#32;UI&#32;of&#32;&#10;the&#32;application&#44;&#32;which&#32;could&#32;be&#32;shared&#32;by&#32;the&#32;JEE&#32;project&#32;and&#32;any&#32;&#34;hybrid&#34;&#32;&#10;web&#45;based&#32;mobile&#32;UIs&#32;I&#32;make&#32;&#40;which&#32;I&#32;won&#39;t&#32;for&#32;this&#41;&#46;&#32;By&#32;default&#44;&#32;this&#32;contains&#32;&#10;a&#32;skeletal&#32;Ionic&#45;based&#32;UI&#46;frostillicus&#45;blog&#45;j&#50;eeThis&#32;project&#32;holds&#32;the&#32;&#10;scaffolding&#32;for&#32;the&#32;JEE&#32;servlet&#32;app&#32;&#40;&#34;J&#50;EE&#34;&#32;still&#32;has&#32;a&#32;better&#32;ring&#32;to&#32;it&#32;than&#32;&#10;&#34;JEE&#34;&#44;&#32;though&#41;&#46;&#32;Depending&#32;on&#32;where&#32;I&#32;go&#32;with&#32;the&#32;UI&#44;&#32;this&#32;will&#32;either&#32;be&#32;a&#32;&#10;small&#32;shim&#32;just&#32;to&#32;get&#32;HTML&#32;served&#32;up&#32;or&#32;a&#32;larger&#32;server&#45;side&#32;toolkit&#32;project&#46;&#10;&#10;In&#32;a&#32;different&#32;situation&#44;&#32;there&#32;could&#32;be&#32;up&#32;to&#32;five&#32;additional&#32;modules&#58;&#32;native&#32;&#10;and&#32;hybrid&#32;UIs&#32;for&#32;Android&#44;&#32;the&#32;same&#32;pair&#32;for&#32;iOS&#44;&#32;and&#32;an&#32;OSGi&#32;plugin&#32;shim&#32;for&#32;&#10;running&#32;on&#32;Domino&#46;&#32;I&#32;may&#32;end&#32;up&#32;wanting&#32;to&#32;run&#32;this&#32;on&#32;my&#32;existing&#32;Domino&#32;&#10;server&#44;&#32;but&#32;I&#32;don&#39;t&#32;have&#32;a&#32;need&#32;for&#32;offline&#32;mobile&#32;access&#32;just&#32;for&#32;my&#32;blog&#44;&#32;so&#32;&#10;I&#39;ll&#32;definitely&#32;be&#32;skipping&#32;those&#46;&#32;&#40;Edit&#58;&#160;I&#32;forgot&#32;one&#32;potential&#32;UI&#32;project&#58;&#32;a&#32;&#10;SWT&#32;front&#45;end&#32;for&#32;desktops&#41;&#10;&#10;For&#32;the&#32;most&#32;part&#44;&#32;the&#32;default&#32;created&#32;classes&#32;do&#32;what&#32;I&#32;want&#32;them&#32;to&#32;do&#32;to&#32;get&#32;&#10;it&#32;started&#46;&#32;There&#39;s&#32;really&#32;only&#32;one&#32;tweak&#32;to&#32;make&#58;&#32;since&#32;I&#39;ll&#32;want&#32;to&#32;be&#32;able&#32;&#10;to&#32;search&#44;&#32;I&#32;know&#32;up&#32;front&#32;that&#32;I&#32;want&#32;to&#32;enable&#32;FT&#32;searching&#32;in&#32;the&#32;Darwino&#32;&#10;DB&#46;&#32;This&#32;sort&#32;of&#32;thing&#32;is&#32;done&#32;in&#32;the&#32;created&#32;AppDatabaseDef&#32;class&#46;&#32;There&#39;s&#32;&#10;quite&#32;a&#32;bit&#32;that&#32;you&#32;can&#32;do&#32;there&#44;&#32;but&#32;I&#39;ll&#32;mostly&#32;just&#32;uncomment&#32;the&#32;lines&#32;&#10;that&#32;enable&#32;full&#45;text&#32;search&#32;in&#32;the&#32;loadDatabase&#32;method&#58;&#10;&#10;&#64;Override&#10;public&#32;&#95;Database&#32;loadDatabase&#40;String&#32;databaseName&#41;&#32;throws&#32;JsonException&#32;&#123;&#10;&#9;if&#40;&#33;StringUtil&#46;equalsIgnoreCase&#40;databaseName&#44;&#32;DATABASE&#95;NAME&#41;&#41;&#32;&#123;&#10;&#9;&#32;return&#32;null&#59;&#10;&#9;&#125;&#10;&#9;&#95;Database&#32;db&#32;&#61;&#32;new&#32;&#95;Database&#40;DATABASE&#95;NAME&#44;&#32;&#34;frostillic&#46;us&#32;Blog&#34;&#44;&#32;&#10;DATABASE&#95;VERSION&#41;&#59;&#10;&#10;&#9;db&#46;setReplicationEnabled&#40;true&#41;&#59;&#10;&#9;&#10;&#9;db&#46;setInstanceEnabled&#40;false&#41;&#59;&#10;&#9;&#10;&#9;&#123;&#10;&#9;&#32;&#95;Store&#32;&#95;def&#32;&#61;&#32;db&#46;getStore&#40;Database&#46;STORE&#95;DEFAULT&#41;&#59;&#10;&#9;&#32;&#95;def&#46;setFtSearchEnabled&#40;true&#41;&#59;&#10;&#9;&#32;&#95;FtSearch&#32;ft&#32;&#61;&#32;&#40;&#95;FtSearch&#41;&#32;&#95;def&#46;setFTSearch&#40;new&#32;&#95;FtSearch&#40;&#41;&#41;&#59;&#10;&#9;&#32;ft&#46;setFields&#40;&#34;&#36;&#34;&#41;&#59;&#32;&#47;&#47;&#36;NON&#45;NLS&#45;&#49;&#36;&#10;&#9;&#125;&#10;&#10;&#9;return&#32;db&#59;&#10;&#125;&#10;&#10;That&#32;will&#32;ensure&#32;that&#44;&#32;when&#32;the&#32;database&#32;is&#32;deployed&#32;&#40;or&#44;&#32;if&#32;I&#32;make&#32;changes&#32;&#10;later&#44;&#32;upgraded&#41;&#44;&#32;FT&#32;search&#32;is&#32;on&#46;&#32;The&#32;line&#32;ft&#46;setFields&#40;&#34;&#36;&#34;&#41;&#32;uses&#32;a&#32;bit&#32;of&#32;&#10;JSONPath&#44;&#32;basically&#32;saying&#32;&#34;start&#32;at&#32;the&#32;root&#44;&#32;and&#32;cover&#32;all&#32;fields&#34;&#46;&#32;I&#39;ll&#32;&#10;probably&#32;come&#32;back&#32;to&#32;this&#32;class&#32;later&#32;to&#32;add&#32;some&#32;more&#32;optimizations&#44;&#32;but&#32;that&#32;&#10;can&#32;wait&#32;until&#32;I&#39;m&#32;sure&#32;how&#32;the&#32;structure&#32;of&#32;the&#32;app&#32;will&#32;take&#32;form&#46;&#10;&#10;The&#32;last&#32;step&#32;for&#32;now&#32;is&#32;to&#32;set&#32;up&#32;replication&#32;between&#32;Domino&#32;and&#32;this&#32;&#10;fledgling&#32;Darwino&#32;app&#46;&#32;To&#32;do&#32;that&#44;&#32;I&#39;ll&#32;set&#32;up&#32;an&#32;adapter&#32;definition&#32;in&#32;the&#32;&#10;Sync&#32;Admin&#32;database&#32;&#40;the&#32;Domino&#45;side&#32;application&#32;that&#32;manages&#32;Darwino&#32;&#10;replication&#41;&#58;&#10;&#10;&#91;IMAGE&#93;&#10;&#10;The&#32;code&#32;on&#32;the&#32;page&#32;is&#32;the&#32;DSL&#32;used&#32;to&#32;define&#32;the&#32;mapping&#32;between&#32;Domino&#32;&#10;documents&#32;and&#32;Darwino&#39;s&#32;JSON&#32;docs&#46;&#32;In&#32;this&#32;case&#44;&#32;it&#39;s&#32;the&#32;code&#32;that&#32;is&#32;&#10;automatically&#32;generated&#32;by&#32;the&#32;&#34;Generate&#32;From&#32;Database&#34;&#32;tool&#44;&#32;and&#32;everything&#32;&#10;after&#32;the&#32;first&#32;line&#32;isn&#39;t&#32;strictly&#32;necessary&#58;&#32;without&#32;guidance&#44;&#32;the&#32;replicator&#32;&#10;will&#32;try&#32;to&#32;translate&#32;the&#32;doc&#32;contents&#32;as&#32;best&#32;it&#32;can&#44;&#32;and&#32;the&#32;data&#32;in&#32;this&#32;DB&#32;&#10;is&#32;pretty&#32;clean&#46;&#32;It&#32;doesn&#39;t&#32;hurt&#32;to&#32;clamp&#32;it&#32;down&#32;a&#32;bit&#44;&#32;though&#46;&#32;I&#32;have&#32;it&#32;&#10;pointed&#32;to&#32;a&#32;non&#45;replica&#32;copy&#32;of&#32;the&#32;DB&#32;for&#32;now&#44;&#32;since&#32;I&#32;plan&#32;to&#32;do&#32;some&#32;&#10;destructive&#32;tinkering&#32;with&#32;the&#32;data&#32;when&#32;I&#32;actually&#32;make&#32;a&#32;UI&#32;that&#32;I&#32;don&#39;t&#32;want&#32;&#10;replicating&#32;back&#32;to&#32;&#34;production&#34;&#32;just&#32;yet&#44;&#32;but&#32;I&#39;ll&#32;clear&#32;the&#32;Darwino&#32;side&#32;and&#32;&#10;replicate&#32;in&#32;the&#32;live&#32;data&#32;when&#32;I&#39;m&#32;ready&#46;&#10;&#10;To&#32;enable&#32;replication&#32;in&#32;the&#32;Darwino&#32;app&#44;&#32;I&#32;commented&#32;out&#32;the&#32;labeled&#32;block&#32;in&#32;&#10;the&#32;JEE&#32;project&#39;s&#32;web&#46;xml&#32;and&#32;set&#32;a&#32;few&#32;properties&#32;in&#32;my&#32;Tomcat&#32;server&#39;s&#32;&#10;darwino&#46;properties&#32;&#40;to&#32;externalize&#32;sensitive&#32;information&#41;&#58;&#10;&#10;frostillicus&#95;blog&#46;sync&#45;enabled&#61;true&#10;frostillicus&#95;blog&#46;sync&#45;url&#61;http&#58;&#47;&#47;pelias&#45;l&#46;frostillic&#46;us&#47;darwino&#46;sync&#10;&#10;Once&#32;that&#32;was&#32;set&#44;&#32;I&#32;launched&#32;the&#32;app&#32;using&#32;a&#32;Tomcat&#32;instance&#32;in&#32;Eclipse&#44;&#32;and&#32;I&#32;&#10;could&#32;see&#32;it&#32;doing&#32;its&#32;thing&#58;&#10;&#10;Start&#32;deploying&#32;database&#32;frostillicus&#95;blog&#44;&#32;POSTGRESQL&#44;&#32;&#48;&#47;&#48;&#10;Finished&#32;deploying&#32;database&#32;frostillicus&#95;blog&#44;&#32;&#48;&#44;&#32;&#48;&#47;&#48;&#10;Start&#32;replication&#32;with&#32;server&#32;http&#58;&#47;&#47;pelias&#45;l&#46;frostillic&#46;us&#47;darwino&#46;sync&#10;Started&#32;replication&#32;Pull&#32;frostillicus&#95;blog&#44;&#32;estimated&#32;entries&#58;&#32;&#53;&#48;&#49;&#51;&#32;&#91;September&#32;&#10;&#49;&#53;&#44;&#32;&#50;&#48;&#49;&#54;&#32;&#50;&#58;&#48;&#51;&#58;&#51;&#55;&#32;PM&#32;EDT&#93;&#10;&#49;&#32;processed&#44;&#32;&#48;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#49;m&#53;&#53;s&#44;&#32;avg&#32;rate&#32;&#49;&#47;s&#44;&#32;instant&#32;rate&#32;&#10;&#48;&#47;s&#41;&#10;&#54;&#54;&#52;&#32;processed&#44;&#32;&#49;&#51;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#49;&#51;s&#44;&#32;avg&#32;rate&#32;&#51;&#51;&#50;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#51;&#51;&#50;&#47;s&#41;&#10;&#49;&#51;&#49;&#51;&#32;processed&#44;&#32;&#50;&#54;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#49;&#49;s&#44;&#32;avg&#32;rate&#32;&#51;&#50;&#56;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#51;&#50;&#52;&#47;s&#41;&#10;&#49;&#57;&#52;&#49;&#32;processed&#44;&#32;&#51;&#56;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#57;s&#44;&#32;avg&#32;rate&#32;&#51;&#50;&#51;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#51;&#49;&#52;&#47;s&#41;&#10;&#50;&#53;&#49;&#56;&#32;processed&#44;&#32;&#53;&#48;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#55;s&#44;&#32;avg&#32;rate&#32;&#51;&#49;&#52;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#50;&#56;&#56;&#47;s&#41;&#10;&#51;&#48;&#56;&#54;&#32;processed&#44;&#32;&#54;&#49;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#53;s&#44;&#32;avg&#32;rate&#32;&#51;&#48;&#56;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#50;&#56;&#52;&#47;s&#41;&#10;&#51;&#53;&#57;&#55;&#32;processed&#44;&#32;&#55;&#49;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#52;s&#44;&#32;avg&#32;rate&#32;&#50;&#57;&#57;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#50;&#53;&#53;&#47;s&#41;&#10;&#52;&#48;&#54;&#57;&#32;processed&#44;&#32;&#56;&#49;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#50;s&#44;&#32;avg&#32;rate&#32;&#50;&#57;&#48;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#50;&#51;&#54;&#47;s&#41;&#10;&#52;&#52;&#56;&#57;&#32;processed&#44;&#32;&#56;&#57;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#49;s&#44;&#32;avg&#32;rate&#32;&#50;&#56;&#48;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#50;&#49;&#48;&#47;s&#41;&#10;&#52;&#57;&#50;&#57;&#32;processed&#44;&#32;&#57;&#56;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#48;&#44;&#32;avg&#32;rate&#32;&#50;&#55;&#51;&#47;s&#44;&#32;instant&#32;rate&#32;&#10;&#50;&#50;&#48;&#47;s&#41;&#10;&#53;&#48;&#49;&#51;&#32;processed&#44;&#32;&#49;&#48;&#48;&#37;&#32;&#40;total&#32;&#53;&#48;&#49;&#51;&#44;&#32;remaining&#32;time&#32;&#48;&#44;&#32;avg&#32;rate&#32;&#50;&#55;&#56;&#47;s&#44;&#32;instant&#32;&#10;rate&#32;&#56;&#52;&#47;s&#41;&#10;&#43;&#43;&#43;&#32;Finished&#44;&#32;&#53;&#48;&#49;&#51;&#32;processed&#32;&#40;estimated&#32;&#53;&#48;&#49;&#51;&#44;&#32;time&#32;&#49;&#56;s&#44;&#32;avg&#32;rate&#32;&#50;&#55;&#56;&#47;s&#41;&#10;&#10;Once&#32;that&#32;was&#32;done&#44;&#32;I&#32;went&#32;over&#32;to&#32;the&#32;default&#32;utilitarian&#32;web&#32;UI&#32;to&#32;make&#32;sure&#32;&#10;everything&#32;looked&#32;good&#44;&#32;and&#32;it&#32;did&#58;&#10;&#10;&#91;IMAGE&#93;&#10;&#10;&#40;the&#32;advice&#32;about&#32;reverse&#32;proxies&#32;still&#32;stands&#44;&#32;by&#32;the&#32;way&#41;&#10;&#10;Nothing&#32;app&#45;specific&#32;in&#32;there&#32;yet&#32;&#40;and&#32;I&#32;haven&#39;t&#32;hooked&#32;up&#32;authentication&#32;to&#32;&#10;Domino&#32;yet&#44;&#32;so&#32;I&#32;don&#39;t&#32;have&#32;my&#32;Gravatar&#32;icon&#41;&#44;&#32;but&#32;it&#32;shows&#32;that&#32;the&#32;data&#32;made&#32;&#10;the&#32;trip&#32;none&#32;the&#32;worse&#32;for&#32;wear&#44;&#32;authors&#32;field&#32;and&#32;all&#46;&#10;&#10;That&#32;will&#32;do&#32;it&#32;for&#32;the&#32;initial&#32;phase&#46;&#32;I&#32;plan&#32;to&#32;revisit&#32;this&#32;down&#32;the&#32;line&#44;&#32;&#10;once&#32;I&#39;ve&#32;made&#32;a&#32;decision&#32;on&#32;a&#32;UI&#32;framework&#32;and&#32;have&#32;the&#32;time&#32;to&#32;actually&#32;start&#32;&#10;implementing&#32;that&#46;&#32;That&#32;will&#32;be&#32;an&#32;interesting&#32;one&#32;&#45;&#32;there&#32;are&#32;strong&#32;reasons&#32;&#10;to&#32;make&#32;single&#45;page&#32;applications&#32;in&#32;JavaScript&#44;&#32;but&#32;my&#32;heart&#32;is&#32;still&#32;in&#32;&#10;server&#45;side&#32;toolkits&#46;&#32;That&#32;will&#32;be&#32;a&#32;choice&#32;for&#32;another&#32;day&#44;&#32;though&#46;&#10;&#10;&#10;&#42;&#32;If&#32;you&#39;ll&#32;forgive&#32;the&#32;blatant&#32;sales&#32;pitch&#46;&#10;</content:encoded>
  201. </item>
  202.  
  203. <item>
  204. <title>There&#32;Are&#32;Pods&#32;That&#32;Need&#32;Casting</title>
  205. <link>http://frostillic.us/f.nsf/posts/&#55;&#52;FAC&#53;D&#57;E&#49;&#49;&#52;&#53;&#49;&#57;&#57;&#56;&#53;&#50;&#53;&#56;&#48;&#50;&#54;&#48;&#48;&#52;F&#57;&#57;E&#49;</link>
  206. <comments>http://frostillic.us/f.nsf/posts/&#55;&#52;FAC&#53;D&#57;E&#49;&#49;&#52;&#53;&#49;&#57;&#57;&#56;&#53;&#50;&#53;&#56;&#48;&#50;&#54;&#48;&#48;&#52;F&#57;&#57;E&#49;#comments</comments>
  207. <pubDate>Tue, 06 Sep 2016 14:25:35 +0000</pubDate>
  208. <dc:creator>Jesse Gallagher</dc:creator>
  209. <category>podcast</category>
  210.  
  211. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/&#55;&#52;FAC&#53;D&#57;E&#49;&#49;&#52;&#53;&#49;&#57;&#57;&#56;&#53;&#50;&#53;&#56;&#48;&#50;&#54;&#48;&#48;&#52;F&#57;&#57;E&#49;</guid>
  212. <description>
  213. I&#32;had&#32;the&#32;pleasure&#32;of&#32;taking&#32;part&#32;in&#32;the&#32;long&#45;awaited&#32;demise&#32;episode&#32;of&#32;This&#32;&#10;Week&#32;In&#32;Lotus&#33;&#10;&#10;h[...]
  214. </description>
  215. <content:encoded>I&#32;had&#32;the&#32;pleasure&#32;of&#32;taking&#32;part&#32;in&#32;the&#32;long&#45;awaited&#32;demise&#32;episode&#32;of&#32;This&#32;&#10;Week&#32;In&#32;Lotus&#33;&#10;&#10;http&#58;&#47;&#47;thisweekinlotus&#46;com&#47;&#49;&#49;&#53;&#45;doing&#45;a&#45;three&#45;way&#47;&#10;&#10;We&#32;covered&#32;a&#32;lot&#32;of&#32;ground&#44;&#32;with&#32;a&#32;reflection&#32;on&#32;this&#32;year&#39;s&#32;MWLUG&#44;&#32;the&#32;Sturm&#32;&#10;und&#32;Drang&#32;about&#32;Domino&#44;&#32;Toscana&#47;IBM&#32;design&#44;&#32;and&#32;a&#32;few&#32;other&#32;topics&#46;&#32;Most&#32;&#10;important&#44;&#32;though&#44;&#32;is&#32;the&#160;special&#32;announcement&#160;at&#32;the&#32;end&#32;of&#32;the&#32;episode&#44;&#32;which&#32;&#10;you&#39;ll&#32;just&#32;have&#32;to&#32;listen&#32;for&#46;&#32;Or&#32;skip&#32;to&#32;the&#32;end&#44;&#32;I&#32;guess&#59;&#32;there&#39;s&#32;a&#32;tracking&#32;&#10;bar&#32;right&#32;on&#32;the&#32;page&#46;&#10;</content:encoded>
  216. </item>
  217.  
  218. <item>
  219. <title>Quick&#32;XPages&#32;Utility&#58;&#32;Keep&#32;Alive&#32;and&#32;Alert</title>
  220. <link>http://frostillic.us/f.nsf/posts/&#57;&#48;A&#49;BD&#49;&#54;&#55;B&#50;BC&#55;&#54;&#53;&#56;&#53;&#50;&#53;&#56;&#48;&#49;F&#48;&#48;&#54;&#52;&#56;&#53;&#52;E</link>
  221. <comments>http://frostillic.us/f.nsf/posts/&#57;&#48;A&#49;BD&#49;&#54;&#55;B&#50;BC&#55;&#54;&#53;&#56;&#53;&#50;&#53;&#56;&#48;&#49;F&#48;&#48;&#54;&#52;&#56;&#53;&#52;E#comments</comments>
  222. <pubDate>Tue, 30 Aug 2016 18:17:40 +0000</pubDate>
  223. <dc:creator>Jesse Gallagher</dc:creator>
  224. <category>xpages</category>
  225.  
  226. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/&#57;&#48;A&#49;BD&#49;&#54;&#55;B&#50;BC&#55;&#54;&#53;&#56;&#53;&#50;&#53;&#56;&#48;&#49;F&#48;&#48;&#54;&#52;&#56;&#53;&#52;E</guid>
  227. <description>
  228. For&#32;one&#32;of&#32;my&#32;projects&#32;recently&#44;&#32;I&#32;put&#32;together&#32;a&#32;small&#32;custom&#32;control&#32;that&#32;I&#32;&#10;sure&#32;wish&#32;I&#32;had&#32;[...]
  229. </description>
  230. <content:encoded>For&#32;one&#32;of&#32;my&#32;projects&#32;recently&#44;&#32;I&#32;put&#32;together&#32;a&#32;small&#32;custom&#32;control&#32;that&#32;I&#32;&#10;sure&#32;wish&#32;I&#32;had&#32;thought&#32;to&#32;do&#32;years&#32;ago&#58;&#32;a&#32;&#34;keep&#32;alive&#32;and&#32;alert&#34;&#32;control&#46;&#32;For&#32;&#10;a&#32;long&#32;time&#32;now&#44;&#32;the&#32;Extension&#32;Library&#32;has&#32;had&#32;a&#32;&#34;keepAlive&#34;&#32;control&#44;&#32;which&#32;&#10;keeps&#32;a&#32;page&#32;session&#32;&#40;and&#44;&#32;usually&#44;&#32;authentication&#41;&#32;alive&#32;while&#32;the&#32;user&#32;has&#32;&#10;the&#32;browser&#32;window&#32;open&#44;&#32;avoiding&#32;the&#32;otherwise&#45;common&#32;issue&#32;of&#32;someone&#32;sitting&#32;&#10;on&#32;a&#32;page&#32;&#34;too&#32;long&#34;&#32;and&#32;having&#32;it&#32;break&#32;underfoot&#46;&#32;However&#44;&#32;that&#32;doesn&#39;t&#32;cover&#32;&#10;the&#32;edge&#32;cases&#58;&#32;the&#32;user&#32;putting&#32;their&#32;computer&#32;to&#32;sleep&#32;and&#32;waking&#32;it&#32;with&#32;the&#32;&#10;same&#32;page&#32;open&#44;&#32;the&#32;server&#32;rebooting&#44;&#32;a&#32;server&#32;cluster&#32;failover&#44;&#32;expiring&#32;SSO&#32;&#10;token&#44;&#32;or&#32;so&#32;forth&#46;&#32;In&#32;those&#32;cases&#44;&#32;the&#32;problem&#32;will&#32;fall&#32;more&#32;or&#32;less&#32;&#10;&#34;silently&#34;&#32;to&#32;the&#32;JavaScript&#32;console&#44;&#32;and&#32;the&#32;page&#32;will&#32;just&#32;be&#32;mysteriously&#32;&#10;unresponsive&#46;&#10;&#10;This&#32;control&#32;has&#32;a&#32;similar&#32;starting&#32;point&#44;&#32;where&#32;it&#32;will&#32;ping&#32;the&#32;server&#32;&#10;periodically&#32;&#40;every&#32;&#49;&#48;&#32;seconds&#32;in&#32;this&#32;case&#41;&#44;&#32;but&#32;will&#32;also&#32;display&#32;a&#32;Bootstrap&#32;&#10;modal&#32;alert&#32;when&#32;things&#32;go&#32;awry&#46;&#32;It&#39;s&#32;not&#32;too&#32;picky&#32;about&#32;the&#32;cause&#32;of&#32;the&#32;&#10;problem&#58;&#32;since&#32;usually&#32;the&#32;only&#32;practical&#32;solution&#32;is&#32;to&#32;reload&#32;the&#32;page&#44;&#32;it&#32;&#10;just&#32;says&#32;that&#32;and&#32;leaves&#32;it&#32;there&#46;&#32;This&#32;could&#32;also&#32;be&#32;redone&#32;to&#32;be&#32;more&#32;&#10;efficient&#32;like&#32;the&#32;ExtLib&#32;one&#32;&#40;which&#32;would&#32;avoid&#32;the&#32;page&#32;recomputation&#32;&#10;inherent&#32;in&#32;the&#32;partial&#32;refresh&#41;&#44;&#32;and&#32;it&#32;may&#32;not&#32;cover&#32;the&#32;case&#32;of&#32;&#10;authorization&#32;expiring&#32;in&#32;an&#32;app&#32;that&#32;allows&#32;anonymous&#32;access&#44;&#32;but&#32;it&#32;should&#32;do&#32;&#10;the&#32;job&#32;nicely&#32;in&#32;the&#32;normal&#32;case&#58;&#10;&#10;&#60;&#63;xml&#32;version&#61;&#34;&#49;&#46;&#48;&#34;&#32;encoding&#61;&#34;UTF&#45;&#56;&#34;&#63;&#62;&#10;&#60;xp&#58;view&#32;xmlns&#58;xp&#61;&#34;http&#58;&#47;&#47;www&#46;ibm&#46;com&#47;xsp&#47;core&#34;&#62;&#10;&#9;&#60;xp&#58;div&#32;id&#61;&#34;keepAliveAndAlert&#34;&#32;style&#61;&#34;display&#58;&#32;none&#34;&#62;&#60;&#47;xp&#58;div&#62;&#10;&#9;&#60;xp&#58;scriptBlock&#62;&#60;xp&#58;this&#46;value&#62;&#60;&#33;&#91;CDATA&#91;&#10;&#9;&#32;window&#46;&#95;&#95;keepAliveAndAlert&#32;&#61;&#32;setInterval&#40;function&#40;&#41;&#32;&#123;&#10;&#9;&#32;&#32;XSP&#46;partialRefreshGet&#40;&#34;&#35;&#123;id&#58;keepAliveAndAlert&#125;&#34;&#44;&#32;&#123;&#10;&#9;&#32;&#32;&#32;onComplete&#58;&#32;function&#40;&#41;&#32;&#123;&#10;&#9;&#32;&#32;&#32;&#32;&#47;&#47;&#32;Good&#33;&#10;&#9;&#32;&#32;&#32;&#125;&#44;&#10;&#9;&#32;&#32;&#32;onError&#58;&#32;function&#40;&#41;&#32;&#123;&#10;&#9;&#32;&#32;&#32;&#32;jQuery&#40;dojo&#46;byId&#40;&#34;&#35;&#123;id&#58;keepAliveAndAlertError&#125;&#34;&#41;&#41;&#46;modal&#40;&#123;&#10;&#9;&#32;&#32;&#32;&#32;&#32;backdrop&#58;&#32;&#39;static&#39;&#10;&#9;&#32;&#32;&#32;&#32;&#125;&#41;&#59;&#10;&#9;&#32;&#32;&#32;&#32;&#10;&#9;&#32;&#32;&#32;&#32;clearInterval&#40;window&#46;&#95;&#95;keepAliveAndAlert&#41;&#59;&#10;&#9;&#32;&#32;&#32;&#32;window&#46;&#95;&#95;keepAliveAndAlert&#32;&#61;&#32;null&#59;&#10;&#9;&#32;&#32;&#32;&#125;&#10;&#9;&#32;&#32;&#125;&#41;&#59;&#10;&#9;&#32;&#125;&#44;&#32;&#49;&#48;&#32;&#42;&#32;&#49;&#48;&#48;&#48;&#41;&#59;&#10;&#9;&#93;&#93;&#62;&#60;&#47;xp&#58;this&#46;value&#62;&#60;&#47;xp&#58;scriptBlock&#62;&#10;&#9;&#60;xp&#58;div&#32;style&#61;&#34;display&#58;&#32;none&#34;&#32;id&#61;&#34;keepAliveAndAlertError&#34;&#32;&#10;styleClass&#61;&#34;modal&#32;fade&#32;error&#45;modal&#34;&#32;role&#61;&#34;dialog&#34;&#62;&#10;&#9;&#32;&#60;div&#32;class&#61;&#39;modal&#45;dialog&#39;&#62;&#60;div&#32;class&#61;&#39;modal&#45;content&#39;&#62;&#10;&#9;&#32;&#32;&#60;div&#32;class&#61;&#39;modal&#45;header&#39;&#62;&#60;h&#52;&#32;class&#61;&#39;modal&#45;title&#39;&#62;Page&#32;Session&#32;&#10;Expired&#60;&#47;h&#52;&#62;&#60;&#47;div&#62;&#10;&#9;&#32;&#32;&#60;div&#32;class&#61;&#39;modal&#45;body&#39;&#62;&#10;&#9;&#32;&#32;&#32;&#60;p&#62;Your&#32;page&#32;session&#32;has&#32;expired&#46;&#60;&#47;p&#62;&#10;&#9;&#32;&#32;&#32;&#60;p&#62;Please&#38;&#35;&#49;&#54;&#48;&#59;&#60;a&#32;&#10;href&#61;&#34;javascript&#58;location&#46;reload&#40;&#41;&#34;&#62;reload&#60;&#47;a&#62;&#38;&#35;&#49;&#54;&#48;&#59;the&#32;page&#32;to&#32;continue&#32;&#10;working&#46;&#60;&#47;p&#62;&#10;&#9;&#32;&#32;&#60;&#47;div&#62;&#10;&#9;&#32;&#60;&#47;div&#62;&#60;&#47;div&#62;&#10;&#9;&#60;&#47;xp&#58;div&#62;&#10;&#60;&#47;xp&#58;view&#62;&#10;&#10;</content:encoded>
  231. </item>
  232.  
  233. <item>
  234. <title>Change&#32;Is&#32;In&#32;The&#32;Air</title>
  235. <link>http://frostillic.us/f.nsf/posts/AA&#49;&#57;&#51;&#56;&#56;C&#56;D&#50;F&#54;&#55;F&#51;&#56;&#53;&#50;&#53;&#56;&#48;&#49;B&#48;&#48;&#55;&#49;BA&#49;F</link>
  236. <comments>http://frostillic.us/f.nsf/posts/AA&#49;&#57;&#51;&#56;&#56;C&#56;D&#50;F&#54;&#55;F&#51;&#56;&#53;&#50;&#53;&#56;&#48;&#49;B&#48;&#48;&#55;&#49;BA&#49;F#comments</comments>
  237. <pubDate>Fri, 26 Aug 2016 20:41:50 +0000</pubDate>
  238. <dc:creator>Jesse Gallagher</dc:creator>
  239. <category>xpages</category>
  240. <category>domino</category>
  241.  
  242. <guid isPermaLink="false">http://frostillic.us/f.nsf/posts/AA&#49;&#57;&#51;&#56;&#56;C&#56;D&#50;F&#54;&#55;F&#51;&#56;&#53;&#50;&#53;&#56;&#48;&#49;B&#48;&#48;&#55;&#49;BA&#49;F</guid>
  243. <description>
  244. During&#32;last&#32;week&#8217;s&#32;MWLUG&#44;&#32;there&#32;was&#32;a&#32;clear&#32;sense&#32;that&#32;things&#32;are&#32;a&#32;little&#32;&#10;different&#32;this&#32;year[...]
  245. </description>
  246. <content:encoded>During&#32;last&#32;week&#8217;s&#32;MWLUG&#44;&#32;there&#32;was&#32;a&#32;clear&#32;sense&#32;that&#32;things&#32;are&#32;a&#32;little&#32;&#10;different&#32;this&#32;year&#46;&#32;Dave&#32;Navarre&#32;dubbed&#32;the&#32;technical&#32;implications&#32;&#8220;platform&#32;&#10;agnosticism&#8221;&#44;&#32;while&#32;I&#32;geared&#32;my&#32;presentation&#32;towards&#32;the&#32;feeling&#32;that&#32;change&#32;is&#32;&#10;in&#32;the&#32;air&#46;&#10;&#10;This&#32;is&#32;not&#32;totally&#32;new&#46;&#32;Red&#32;Pill&#32;Now&#32;cast&#32;aside&#32;the&#32;XPages&#32;UI&#32;layer&#32;and&#32;most&#32;&#10;of&#32;the&#32;assumptions&#32;of&#32;Domino&#32;development&#32;to&#32;move&#32;to&#32;a&#32;new&#32;level&#59;&#32;PSC&#39;s&#32;&#10;presentations&#32;have&#32;long&#32;developed&#32;a&#32;polyglot&#32;tone&#44;&#32;and&#32;this&#32;ramped&#32;up&#32;this&#32;&#10;year&#59;&#32;and&#32;people&#32;like&#32;Paul&#32;Withers&#32;have&#32;been&#32;growing&#32;with&#32;tools&#32;like&#32;Vaadin&#46;&#10;&#10;It&#39;s&#32;not&#32;too&#32;important&#32;to&#32;dive&#32;into&#32;the&#32;specifics&#32;of&#32;market&#32;forces&#32;or&#32;the&#32;&#10;shifting&#32;sands&#32;of&#32;technology&#44;&#32;and&#32;the&#32;platform&#32;defensiveness&#32;that&#32;we&#32;tend&#32;to&#32;&#10;wear&#32;as&#32;a&#32;cozy&#32;blanket&#32;doesn&#39;t&#32;serve&#32;anyone&#32;properly&#46;&#32;Our&#32;beloved&#32;Domino&#32;&#10;app&#45;dev&#32;platform&#32;has&#32;grown&#32;pretty&#32;long&#32;in&#32;the&#32;tooth&#32;and&#32;it&#32;doesn&#8217;t&#32;seem&#32;like&#32;&#10;it&#8217;s&#32;in&#32;for&#32;a&#32;revitalization&#46;&#10;&#10;The&#32;situation&#32;is&#44;&#32;fortunately&#44;&#32;an&#32;opportunity&#46;&#10;&#10;One&#32;of&#32;the&#32;things&#32;I&#32;hoped&#32;to&#32;convey&#32;in&#32;my&#32;presentation&#32;is&#32;that&#44;&#32;though&#32;the&#32;&#10;prospect&#32;of&#32;learning&#32;some&#32;of&#32;the&#32;ever&#45;changing&#32;array&#32;of&#32;modern&#32;development&#32;&#10;tools&#32;is&#32;daunting&#44;&#32;it&#32;is&#32;also&#32;exhilarating&#32;and&#32;profitable&#32;both&#32;professionally&#32;&#10;and&#32;personally&#46;&#32;As&#32;insane&#32;as&#32;the&#32;tangled&#32;web&#32;of&#32;server&#32;frameworks&#44;&#32;JS&#32;&#10;optimizers&#44;&#32;language&#32;transpilers&#44;&#32;automation&#32;tools&#44;&#32;dependency&#32;managers&#44;&#32;and&#32;so&#32;&#10;forth&#32;may&#32;seem&#44;&#32;particularly&#32;compared&#32;to&#32;the&#32;simple&#32;days&#32;of&#32;Notes&#32;client&#32;&#10;development&#44;&#32;there&#32;is&#32;a&#32;great&#32;deal&#32;of&#32;good&#32;news&#46;&#10;&#10;The&#32;popular&#32;tools&#32;are&#32;awash&#32;in&#32;documentation&#44;&#32;with&#32;clear&#32;examples&#32;for&#32;doing&#32;&#10;basically&#32;whatever&#32;you&#32;will&#32;want&#32;to&#32;do&#46;&#32;There&#39;s&#32;also&#32;a&#32;lot&#32;of&#32;conceptual&#32;&#10;overlap&#32;and&#32;familiarity&#58;&#32;if&#32;your&#32;tool&#32;of&#32;choice&#32;loses&#32;favor&#44;&#32;it&#32;won&#39;t&#32;be&#32;a&#32;&#10;start&#32;from&#32;square&#32;one&#32;to&#32;learn&#32;the&#32;next&#46;&#32;And&#32;it&#39;s&#32;not&#32;required&#32;to&#32;learn&#32;every&#32;&#10;single&#32;thing&#32;that&#32;comes&#32;along&#46;&#32;If&#32;you&#32;build&#32;yourself&#32;a&#32;Java&#32;web&#32;stack&#32;using&#44;&#32;&#10;say&#44;&#32;Spring&#32;that&#32;does&#32;the&#32;job&#44;&#32;it&#39;s&#32;not&#32;also&#32;necessary&#32;to&#32;learn&#32;every&#32;single&#32;&#10;new&#32;client&#45;side&#32;JS&#32;app&#32;framework&#32;that&#32;comes&#32;along&#46;&#10;&#10;And&#44;&#32;in&#32;the&#32;mean&#32;time&#44;&#32;there&#39;s&#32;a&#32;lot&#32;of&#32;great&#32;work&#32;left&#32;to&#32;do&#32;with&#32;Domino&#46;&#32;&#10;There&#32;are&#32;XPages&#32;applications&#32;in&#32;use&#32;and&#32;development&#44;&#32;and&#32;these&#32;will&#32;go&#32;a&#32;very&#32;&#10;long&#32;way&#46;&#32;Domino&#32;remains&#32;a&#32;very&#32;capable&#32;platform&#44;&#32;and&#32;the&#32;path&#32;through&#32;XPages&#32;&#10;can&#32;be&#32;a&#32;very&#32;natural&#32;lead&#45;in&#32;to&#32;other&#32;technologies&#44;&#32;especially&#32;if&#32;you&#32;focus&#32;on&#32;&#10;the&#32;aspects&#32;that&#32;carry&#32;on&#58;&#32;Java&#44;&#32;data&#32;separation&#44;&#32;REST&#32;services&#44;&#32;and&#32;so&#32;forth&#46;&#10;&#10;For&#32;my&#32;part&#44;&#32;I&#44;&#32;too&#44;&#32;still&#32;have&#32;great&#32;work&#32;to&#32;do&#32;on&#32;Domino&#32;and&#32;XPages&#44;&#32;but&#32;I&#39;m&#32;&#10;also&#32;expanding&#32;beyond&#32;it&#32;with&#32;eyes&#32;open&#46;&#32;As&#32;I&#32;mention&#32;frequently&#44;&#32;I&#32;believe&#32;&#10;that&#32;Darwino&#32;is&#32;the&#32;best&#32;path&#32;for&#32;a&#32;number&#32;of&#32;reasons&#46;&#32;When&#32;I&#32;have&#32;the&#32;&#10;opportunity&#44;&#32;I&#32;plan&#32;to&#32;start&#32;getting&#32;into&#32;the&#32;meat&#45;and&#45;potatoes&#32;reasons&#32;why&#32;and&#32;&#10;examples&#32;of&#32;how&#32;to&#32;actually&#32;use&#32;the&#32;thing&#46;&#32;Time&#32;permitting&#44;&#32;I&#32;hope&#32;to&#32;have&#32;a&#32;&#10;series&#32;at&#32;some&#32;point&#32;for&#32;converting&#32;my&#32;blog&#32;over&#32;to&#32;a&#32;Darwino&#43;JEE&#32;application&#44;&#32;&#10;and&#32;I&#39;ll&#32;share&#32;my&#32;process&#32;of&#32;picking&#32;my&#32;tools&#32;and&#32;replicating&#32;with&#32;its&#32;current&#32;&#10;NSF&#32;form&#32;as&#32;I&#32;go&#46;&#32;If&#32;all&#32;goes&#32;well&#44;&#32;it&#32;should&#32;serve&#32;as&#32;an&#32;example&#32;of&#32;taking&#32;an&#32;&#10;existing&#32;XPages&#32;app&#32;and&#32;transforming&#32;it&#32;into&#32;something&#32;new&#46;&#10;&#10;This&#32;is&#32;an&#32;opportunity&#44;&#32;and&#32;it&#39;s&#32;an&#32;exciting&#32;time&#46;&#10;&#10;&#10;Postscript&#58;&#32;This&#32;is&#32;the&#32;optimistic&#32;take&#44;&#32;granted&#44;&#32;and&#32;some&#32;people&#8217;s&#32;situations&#32;&#10;are&#32;a&#32;bit&#32;more&#32;dire&#46;&#32;Admins&#44;&#32;I&#32;imagine&#44;&#32;are&#32;in&#32;a&#32;strange&#32;spot&#32;&#40;I&#32;hope&#32;you&#8217;ve&#32;&#10;been&#32;brushing&#32;up&#32;on&#32;ancillary&#32;tools&#33;&#41;&#44;&#32;and&#32;a&#32;lot&#32;of&#32;companies&#32;are&#32;doing&#32;a&#32;lot&#32;&#10;of&#32;hand&#45;wringing&#32;about&#32;the&#32;future&#32;for&#32;app&#32;dev&#32;and&#32;maintenance&#32;as&#32;well&#44;&#32;&#10;particularly&#32;those&#32;with&#32;a&#32;heavy&#32;Notes&#45;client&#32;dependency&#46;&#32;My&#32;point&#32;is&#32;that&#32;it&#8217;s&#32;&#10;not&#32;necessary&#32;to&#32;get&#32;too&#32;mired&#32;in&#32;the&#32;doom&#32;and&#32;gloom&#46;&#10;</content:encoded>
  247. </item>
  248.  
  249. </channel>
  250. </rss>
  251.  

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//unenc.frostillic.us/f.nsf/feed.xml

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