<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>In Theory...</title>
<description>Bob Balaban&#8217;s Blog</description>
<link>http://www.bobzblog.com/tuxedoguy.nsf/</link>
<language>en-us</language>
<lastBuildDate>Mon, 26 Jul 2010 13:45:00 -0400</lastBuildDate>
<item>
<title>Drain Google: Sample code to get all your stuff back from GoogleApps</title>
<pubDate>Mon, 26 Jul 2010 13:45:00 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! Have you tried out Google Apps yet? Are you using any of their facililties for file sharing, email, collaborative web sites, or even for posting videos (YouTube)? If so, the you ma ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/drain-google-sample-code-to-get-all-your-stuff-back-from-googleapps</link>
<category>Google Apps</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/drain-google-sample-code-to-get-all-your-stuff-back-from-googleapps?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/drain-google-sample-code-to-get-all-your-stuff-back-from-googleapps</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br /> Have you tried out Google Apps yet? Are you using any of their facililties for file sharing, email, collaborative web sites, or even for posting videos (YouTube)? If so, the you may have noticed that over time you've accumulated a lot of assets in Google's "cloud".<br /> <br /> But what happens when you want all of that stuff back? What if you gave lots of people free GMail accounts, but then you decide you need to upgrade them to a real enterprise messaging system? Or what if you decide you just don't like GMail that much? What if you decide to move from ad hoc file-sharing on GoogleDocs to an integrated Domino/Quickr "content management" system? What if hosting mission-critical business documents in the "cloud" just makes you nervous?<br /> <br /> Given that broad context, I've written a Java application (runs in Eclipse, or standalone) to log into a specified Google account, find all the objects in GoogleDocs belonging to that user, and download them into a Notes Document Library NSF. I'm posting the source code for that app here, as a sample, to illustrate how it can be done. <br /> <br /> Why? I have a couple of reasons. One, to share some basics about the Google APIs, which I think are a good example of RESTful web services technology. Two, to explain that this is a piece of what I hope to be a larger project (which I'm calling "Drain Google"), for which I'm seeking funding, to create an app that will download ALL of your assets residing anywhere in GoogleApps (docs, sites, YouTube, mail, etc.). <strong><span style="text-decoration:underline"><br /> <br /> It Is What It Is</span></strong> <br /> Legal stuff: This is a sample, no claims are being made as to functionality or reliability. Take, it, modify it, use it, give it to someone else. The sample code is Copyright 2010 by Looseleaf Software. If you make money on my code, you should give me some. <br /> <br /> The sample app relies on the Google Apps Client API library for Java, which you can get <a href=http://code.google.com/apis/gdata/><span style="text-decoration:underline">here</span></a> (basic data API), and <a href=http://code.google.com/apis/documents/overview.html><span style="text-decoration:underline">here</span></a> (GoogleDocs API). One nice thing about the Google API kits is that they give you source code, so you can compile it yourself, and debug into it using Eclipse. Good stuff! <br /> <br /> The sample does a search on a specified GoogleDocs account, and then does a 1-way download to your computer, storing the document (along with some metadata) in the specified Notes DocLib database. It contains some logic to try to figure out what the source document format was (much harder than you'd expect, since GoogleDocs does not "remember" the original file format of things you upload), and it parses folder tags, translating them into DocLib categories. <br /> <br /> One could take this sample and expand it to do 2-way synchronization with small-to-moderate levels of effort, but the sample as-is does not address that functionality. My long-term goal (see comment about funding, above) is to expand this to include other Google sources (Sites, Mail, Calendar, etc.), and to allow for 2-way synchronization of objects. <strong><span style="text-decoration:underline"><br /> <br /> It Isn't a Notes Agent</span></strong> <br /> This little app would make a nice Notes Agent, but it isn't currently configured that way. I did try, but ran into some....issues with the Notes Java Security Manager that prevented it from working. I couldn't run it in Notes 7, because the Google libs require a newer version of the JRE. Notes 8.5x has the right JRE, but the Security Manager got in my way, and I could not develop a workaround. Maybe I'll blog about that in more detail later. For now, you're limited to running this as a standalone Java application. It takes command-line inputs specifying your Google name, password and the path to the destination Notes NSF. Of course, it uses the Notes Java APIs to store the files in the database. <br /> <br /> All of the code is in one Java class (Documents.java). Not terribly complicated, but not boringly obvious, either (IMHO). I hope you can use it to learn something about how the Google APIs work, and maybe even to have some geekfun. Feel free to post comments and/or questions about the sample to this blog.<br /> <br /> Enjoy! <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/Documents.java/$file/Documents.java" title="Documents.java"Documents.java/>Documents.java</a> <br /> <br /> (Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com) <br /> Follow me on Twitter @LooseleafLLC<br /> This article ©Copyright 2010 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/drain-google-sample-code-to-get-all-your-stuff-back-from-googleapps</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/drain-google-sample-code-to-get-all-your-stuff-back-from-googleapps?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Want to debug Java agents INSIDE Designer? You can! (sort of)</title>
<pubDate>Wed, 7 Jul 2010 15:20:00 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! Here's a little something I stumbled upon last night: (using Designer 8.51) a way to actually debug Java agents *without exiting Domino Designer*! I'm pretty sure this is not doc ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/want-to-debug-java-agents-inside-designer-you-can-sort-of</link>
<category>Java</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/want-to-debug-java-agents-inside-designer-you-can-sort-of?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/want-to-debug-java-agents-inside-designer-you-can-sort-of</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br /> Here's a little something I stumbled upon last night: (using Designer 8.51) a way to actually debug Java agents *without exiting Domino Designer*! <br /> <br /> I'm pretty sure this is not documented, or actually, even supposed to be possible. But, here's the scoop. <br /> <br /> First, this only works if your agent is also set up to be a Java "application", i.e.,it has to have a main() method in it. To see how to do that, visit my previous posts on the <a href="http://bobzblog.com/tuxedoguy.nsf/dx/two-headed-beast-redux"><span style="text-decoration:underline">"2-headed beast" technique</span></a>. <br /> <br /> Assuming you've done that, open up the agent (.java) file in Designer. A new menu choice appears in the top menu bar: "Run". Click on that, and select "Debug Configurations". You are now going to set up a debug configuration that tells Eclipse (hidden down below the layers of Designer) how to launch and debug your Java code. You'll want to right-click and select "New" to create a new configuration. You can name it (but in my experimentation, I've found that Designer rarely, if ever, saves these, so you'll have to create the configuration anew each time). See Figure 1 for a screenshot of the dialog that comes up. You want to tell Eclipse that you've got a "Java Application" (that's why you need to be using the 2-headed beast, so that your code is both a <a href="http://www.hulu.com/watch/61320/saturday-night-live-shimmer-floor-wax"><span style="text-decoration:underline">Java "main" application AND a Domino agent</span></a>). <br /> <br /> Figure 1: <img  alt="Image:Want to debug Java agents INSIDE Designer? You can! (sort of)" border="0" src="http://bobzblog.com/tuxedoguy.nsf/dx/want-to-debug-java-agents-inside-designer-you-can-sort-of/content/M2?OpenElement" /><br /> <br /> You want the "project" to be your current NSF/NTF. Once that's set, you should be able to click "Search" for the "Application" choice and see your Java class name there. &nbsp;I like to use the "stop in main" checkbox, so that the debugger automatically breakpoints the main() method. But it's not required, you can just set breakpoints yourself, wherever you want by double-clicking in the left-side gutter. <br /> <br /> The first time I tried that, I got an error saying that the program was not compiled to contain line numbers for the debuggerer. If you get that too, just go to the Project menu, select Properties. Click on "Java compiler" in the left on the left side of the dialog box, and change the following options (see Figure 2): <br />  &nbsp; - Compiler level to 1.5 <br />  &nbsp; - select the "include line numbers" checkbox <br />  &nbsp; - select the "add variable attributes" checkbox <br />  &nbsp; - <br /> <br /> Figure 2: <img  alt="Image:Want to debug Java agents INSIDE Designer? You can! (sort of)" border="0" src="http://bobzblog.com/tuxedoguy.nsf/dx/want-to-debug-java-agents-inside-designer-you-can-sort-of/content/M3?OpenElement" /><br /> <br /> Click "Apply" and "OK". When it asks if you want to rebuild the code, you do. &nbsp;Designer will usually save these settings, though I've found it confusing - apparently "project properties" can apply to the .java file, OR to the entire agent, and the UI doesn't really make the distinction obvious. Or maybe I'm wrong and just confused.... <br /> <br /> So, once that's all set up, you can click the "Debug" button in the configuration dialog, and it will launch your agent. You'll probably be prompted to switch to the "Debug perspective", which I do recommend. For some reason, at least in my workspace, the debug navigation smarticons don't appear (step in, step over, etc). But you can still right-click in the stack-trace panel and get all the choices, the most common of which have FunctionKey shortcuts (F6 for "step over", and so on). It's just like real debugging!! <br /> <br /> Except, well, I couldn't figure out how to debug into a scriptlib. If you have supporting code out on your hard disk, you can add the folder and/or files to the "source code path" in the debug configuration dialog, or even specify it on the fly the first time you elect to step-in to the code. But scriptlibs are in the NSF/NTF, not on disk per se, and i couldn't figure out how to reference them. Anyone know how to do that?? It's worth a classic Looseleaf t-shirt (available in all sizes S to XXL, except for XL) to me to know! <br /> <br /> One other thing I had to play around with: how to get back to the "normal" Designer UI from the Eclipse debuggerer. Here's how I did it: <br />  &nbsp; &nbsp;- Click on the Window menu <br />  &nbsp; &nbsp;- Select "Open Perspective", then "Other" <br />  &nbsp; &nbsp;- Find "Domino Designer" in the big list, double-click on that<br /> <br /> A few caveats: <br />  &nbsp; - I'm pretty sure this is unsupported functionality, so it may disappear in some future release <br />  &nbsp; - I'm pretty sure this is unsupported functionality, so it's not guaranteed to always work <br />  &nbsp; - It's fun to play with, but I think for heavy debuggering I'm still going to just use standalone Eclipse <br />  &nbsp;<br /> Enjoy! Geek ya later! <br /> <br /> (Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com) <br /> Follow me on Twitter @LooseleafLLC<br /> This article ©Copyright 2010 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/want-to-debug-java-agents-inside-designer-you-can-sort-of</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/want-to-debug-java-agents-inside-designer-you-can-sort-of?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>I&#8217;m speaking at ATLUG (Atlanta Lotus User Group) in August</title>
<pubDate>Thu, 1 Jul 2010 17:30:00 -0400</pubDate>
<description>
<![CDATA[ 
Greetings Geeks! I am very pleased to report that I've been invited to speak at the August ATLUG meeting, in Atlanta, on the 26th. My topic will be: "Debugging Java Agents for Humans", basically a d ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/im-speaking-at-atlug-atlanta-lotus-user-group-in-august</link>
<category>i will be showing up</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/im-speaking-at-atlug-atlanta-lotus-user-group-in-august?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/im-speaking-at-atlug-atlanta-lotus-user-group-in-august</guid>
<content:encoded><![CDATA[ Greetings Geeks! <br /> <br />I am very pleased to report that I've been invited to speak at the August ATLUG meeting, in Atlanta, on the 26th. <br /> <br />My topic will be: "Debugging Java Agents for Humans", basically a demonstration of some techniques, collectively called "The 2-headed beast", that allow you to code and debug Domino agents in Eclipse, then paste them into Designer without changing a line. <br /> <br />So, Come On Over! Should be a rockin' good time. Check out <a href=http://www.atlug.org>http://www.atlug.org</a> for details. Thanks to Lisa Duke (<a href="http://bobzblog.com/tuxedoguy.nsf/dx/mailto:lisa.duke@simplified-tech.com" target=_blank><span style="text-decoration:underline">lisa.duke@simplified-tech.com</span></a> ) for handling logistics, and thanks to Randy Davison for organizing the meeting. Contact <a href=mailto:randy_davison@matrixresources.com>Randy </a>to register or to ask questions. And, of course, thanks to IBM for supplying the meeting room and, um, lunch. And the product, too, of course. :-) <br /> <br />Geek ya later!  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/im-speaking-at-atlug-atlanta-lotus-user-group-in-august</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/im-speaking-at-atlug-atlanta-lotus-user-group-in-august?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Two-Headed Beast redux</title>
<pubDate>Fri, 4 Jun 2010 18:29:42 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! Just a quickie to let you know that my friend and colleague, Chuck Connell, has posted some very cool enhancements to my original 2-headed beast samples on his downloads page. LOTS ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/two-headed-beast-redux</link>
<category>Lotus Notes</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/two-headed-beast-redux?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/two-headed-beast-redux</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br /> Just a quickie to let you know that my friend and colleague, Chuck Connell, has posted some very cool enhancements to my original 2-headed beast samples on his<a href="http://www.chc-3.com/downloads.php"><span style="text-decoration:underline"> downloads page. </span></a>LOTS of other very interesting stuff there too, so go check it out.  <br /> <br />My write-up on Two-Headed Beast is <a href="http://bobzblog.com/tuxedoguy.nsf/dx/the-2-headed-beast-debugging-domino-java-agents-with-eclipse">here.</a><br /> <br /> (Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com) <br /> Follow me on Twitter @LooseleafLLC<br /> This article ©Copyright 2010 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/two-headed-beast-redux</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/two-headed-beast-redux?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>I am doing 3 sessions at The View Admin/Developer Conference this week</title>
<pubDate>Mon, 10 May 2010 05:18:17 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! This week is a big annual geekfest here in the Boston area: The View's Admin/Developer conference. This year I am presenting 3 different sessions: Debugging Notes Java agents ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/i-am-doing-3-sessions-at-the-view-admindeveloper-conference-this-week</link>
<category>Lotus</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/i-am-doing-3-sessions-at-the-view-admindeveloper-conference-this-week?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/i-am-doing-3-sessions-at-the-view-admindeveloper-conference-this-week</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br /> This week is a big annual geekfest here in the Boston area: <a href=http://www.eview.com/><span style="text-decoration:underline">The View's Admin/Developer</span></a> conference. This year I am presenting 3 different sessions: <br /> <br />  &nbsp; &nbsp;Debugging Notes Java agents with Eclipse (the "2-Headed Beast" technique) <br />  &nbsp; &nbsp;Advanced programming with Notes/Domino COM classes (stuff you never thought you'd be able to do) <br />  &nbsp; &nbsp;Deconstructing Web services: How do they really work and what to do when they don't <br /> <br /> Tuesday is "jump-start" day, and the regular sessions are Wednesday, Thursday and Friday. <br /> Hope to see you there <br /> <br /> (Added later) <br /> Here's a .rar file containing the demos for my COM and Web Services sessions: <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/BalabanDemos.rar/$file/BalabanDemos.rar" title="BalabanDemos.rar"BalabanDemos.rar/>BalabanDemos.rar</a> <br /> <br /> And here are the Java samples from my 2-Headed Beast session: <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/Agent1.java/$file/Agent1.java" title="Agent1.java"Agent1.java/>Agent1.java</a> <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/Agent2.java/$file/Agent2.java" title="Agent2.java"Agent2.java/>Agent2.java</a> <br /><a href="http://bobzblog.com/tuxedoguy.nsf/dx/DebugAgentContext.java/$file/DebugAgentContext.java" title="DebugAgentContext.java"DebugAgentContext.java/>DebugAgentContext.java</a>   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/i-am-doing-3-sessions-at-the-view-admindeveloper-conference-this-week</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/i-am-doing-3-sessions-at-the-view-admindeveloper-conference-this-week?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Geek-o-Terica 11: View AutoUpdate, Part Deux</title>
<pubDate>Wed, 14 Apr 2010 19:19:01 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! A little over a week ago I posted on the topic of the View.AutoUpdate property, and made some comments about how it affects the results and the performance of agent (or other) code ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-11-view-autoupdate-part-deux</link>
<category>Lotus Notes</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-11-view-autoupdate-part-deux?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-11-view-autoupdate-part-deux</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br />A little over a week ago I posted on the topic of the View.AutoUpdate property, and made some <a href="http://www.bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-10-autoupdating-in-views">comments </a>about how it affects the results and the performance of agent (or other) code accessing views. I promised a follow-up post delving a bit more deeply into this topic, and here it is. <br /> <br />I created a form named "Numbers", with a single field on it, of type number, and name "number" <br />I created a view (named "Numbers") with a selection formula including all the documents whose forn field is "number", and created 1 column containing the "number" field from the form. I set the column to sort, ascending. <br /> <br />Then I created 5 documents using the "Numbers" form, with the values: 2, 4, 6, 8 and 10. <br /> <br />Then I wrote this LotusScript agent: <br /> <br />option public <br />option declare &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' no kittens were harmed in the creation of this agent <br />Sub Initialize <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim n As Integer <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim s As New NotesSession <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim db As NotesDatabase <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim doc As NotesDocument, tmp As NotesDocument <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim v As notesview <br />&nbsp; &nbsp; &nbsp; &nbsp;  <br />&nbsp; &nbsp; &nbsp; &nbsp; Set db = s.currentdatabase <br />&nbsp; &nbsp; &nbsp; &nbsp; Set v = db.getview("Numbers") <br />&nbsp; &nbsp; &nbsp; &nbsp; v.AutoUpdate = True <br />&nbsp; &nbsp; &nbsp; &nbsp; Set doc = v.GetFirstDocument <br />&nbsp; &nbsp; &nbsp; &nbsp; While Not (doc Is Nothing) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; n = doc.number(0) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Msgbox "Number is: " &amp; n <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If n = 4 Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doc.number = 7 <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doc.save True, False <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set doc = v.getnextdocument(doc) <br />&nbsp; &nbsp; &nbsp; &nbsp; Wend <br />End Sub <br /> <br />Note that I'm setting Autoupdate to "True" (it's the default setting anyway). The agent looks at (and prints out) the number value of every document, as accessed in order from top to bottom in the view. When we get to the 2nd document (number = 4), we change the value to 7 and save the document.  <br /> <br />With AutoUpdate set to True, the sequence that gets printed out is: 2, 4, 8, 10. Notice that 6 got skipped, because changing the value of the second document from 4 to 7 moved that document in the sort order AFTER the third document, which contains the value 6. So the new "next" document is the containing 8, because the getNextDocument() logic caused our snapshot of the view to be updated before retrieving the next document in the sequence. <br /> <br />Then I reset the value of the document now ontaining 7 to 4 again, and re-ran the agent with AutoUpdate set to False. The sequence that gets printed out this time is: 2, 4, 6, 8, 10. At the end of the agent's run, the view contains: 2, 6, 7, 8, 10, as it should. The difference is, that with AutoUpdate off, our snapshot of the view index remains constant after the change and save of the 2nd document, so the "next" one after that is STILL the one containing the 6. <br /> <br />That's it, in a nutshell. One final comment: Were this a Java agent, you would change the Set doc = v.getnextdocument(doc) line to: <br />&nbsp; &nbsp; &nbsp;tmp = v.getNextDocument(doc); <br />&nbsp; &nbsp; &nbsp;doc.recycle(); <br />&nbsp; &nbsp; &nbsp;doc = tmp; <br /> <br />Geek ya later! <br /> <br />(Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com) <br /> Follow me on Twitter @LooseleafLLC<br /> This article ©Copyright 2010 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/geek-o-terica-11-view-autoupdate-part-deux</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-11-view-autoupdate-part-deux?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Geek-o-terica 10: &quot;Autoupdating&quot; in views</title>
<pubDate>Sun, 4 Apr 2010 10:51:51 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! I've seen some stuff flying about recently about whether one should, or should not, disable automatic updates when iterating through the documents in a view using LotusScript or Jav ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-10-autoupdating-in-views</link>
<category>Lotus Notes</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-10-autoupdating-in-views?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-10-autoupdating-in-views</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br />I've seen some stuff flying about recently about whether one should, or should not, disable automatic updates when iterating through the documents in a view using LotusScript or Java back-end classes, and why. Some of the points made greatly surprised me with how wrong they were, so I thought I'd give you my take on the issue. <br /> <br /><strong><span style="text-decoration:underline">Background</span></strong> <br />At the level of the Notes C API (where everything that really matters really happens), what is a view? It's a data structure that represents a snapshot of the view's index. Of course, view indexes are changing all the time, some are more volatile than others, but (in the worst case) a view can be subject to change any time a single document is created or updated in the NSF. That doesn't necessarily mean that the view gets re-indexed every time that happens, but it does mean that a "view" living in an NSF on a server, as a data structure that is shared ("used") by potentially many clients at the same time, can change out from under you while you are using it. <br /> <br />So, what about the NotesView object (View in Java)? It is essentially a wrapper for a view index data structure (called an HCOLLECTION for you C API geeks). Most people use this class primarily for navigation over documents: GetFirst/NextDocument, GetNext/PreviousSibling, etc etc. Virtually all of the navigation methods in the NotesView class translate down to a single C API entry point invocation, called NIFReadEntries (the "NIF" prefix is common to many API calls having to do with views, it stands for "Notes Indexing Facility"). The job of this complex call is to take the provided "starting point", or "position" &nbsp;in the view (represented by the "current" document, for example), figure out how to navigate relative to that location (next, previous, first child, whatever), and find the document in the view's index corresponding to that new location, or position, given the view's current nesting, categorization, and so on. <br /> <br />This potentially complex navigation is done based on the "snapshot" of the view index currently held by the "user" (LotusScript/Java program, Notes client, remote C API program...). Now, suppose that my Java program is navigating through the documents in a view, and while it's doing that, some other program, or user, modifies the view from another client? Perhaps a new document was created in the database, and that document matches my &nbsp;view's selection formula. In fact, perhaps that document just happens to sort to the top of the view, so that all of the other documents in the view have a new "position". Perhaps my own program, inside the navigation loop, makes a change to a document that I see, and re-saves that document. If that change affects the value of a column in the view, and if that column is sorted or categorized, then my current document will actually "move" to a new position in the view. <br /> <br />The problem is this: when the documents in the view change position while my program is between navigational events in the view, how do I define the "next" document? Is it the document that would-have-been-next before the view changed? Or is it the document that is actually-next given what might be a new location for my "current" document? It's a puzzle! <br /> <br />One good thing about the NIFReadEntries call is that when invoke it to navigate elsewhere in the view, it tells you if the view has been modified since the last time you called it. It can detect when your current "snapshot" (HCOLLECTION) of the view gets out of sync with the "real" view index on the server. Note that there is NO WAY to <em>prevent</em> the view from being changed, if someone or something somewhere modifies the view contents, it just changes out from under you. <br /> <br />However, the implementation of the NotesView/View class gives a choice about what to do about this situation, in the form of the "AutoUpdate" property. This property is On by default, here's the logic it follows, for example, in the GetNextDocument() call: <br />1. Find the position of the "current" document (it's cached in the document object during navigation) <br />2. Invoke NIFReadEntries with the current position and the various navigational options set to get the "next" document <br />3. Read the NOTEID and position of the next document (if there is one) returned by the call <br />4. Examine the "dirty" flag returned by NIFReadEntries to detect whether the view has changed since our last call to it <br />5. If the view has changed, and if the view object "autoupdate" flag is set, then <br />6. Update our HCOLLECTION against the view index (this might, or might not force a re-indexing operation on the view) <br />7. Re-compute the position of the "current" document in the updated index (it might, or might not have moved) <br />8. Call NIFReadEntries again to navigate <br /> <br />If the "AutoUpdate" flag is off, then steps 6, 7, and 8 are skipped. <br /> <br />This is a powerful feature, though frankly, I nearly always turn it off when navigating views. From a programmatic point of view, the danger of having it on is that you can easily either miss documents in a view, or visit the same document multiple times, if you're not careful. <br /> <br />As this post is already pretty long, I'll do a Part Deux posting exploring the ins and outs of AutoUpdate soon. <br /> <br />Geek ya later! <br /> <br />(Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com) <br /> Follow me on Twitter @LooseleafLLC<br /> This article ©Copyright 2010 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/geek-o-terica-10-autoupdating-in-views</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-10-autoupdating-in-views?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Slides and demos from EnwicklerCamp 2010</title>
<pubDate>Sun, 14 Mar 2010 18:21:34 -0400</pubDate>
<description>
<![CDATA[ 
Greetings Geeks! Thanks to everyone who came out to Gelsenkirchen (Germany) for EntwicklerCamp. I did two presentations: Real-world Web Services (what happens when you sail beyond the edge of the do ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/slides-and-demos-from-enwicklercamp-2010</link>
<category>Lotus</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/slides-and-demos-from-enwicklercamp-2010?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/slides-and-demos-from-enwicklercamp-2010</guid>
<content:encoded><![CDATA[ Greetings Geeks! <br /> <br />Thanks to everyone who came out to Gelsenkirchen (Germany) for <a href=http://www.entwicklercamp.de/EntwicklerCamp/Home>EntwicklerCamp</a>. I did two presentations: <br /> <br />Real-world Web Services (what happens when you sail beyond the edge of the documented world)<br /> Advanced Programming with Notes/Domino COM classes (stuff you NEVER thought you could do from .NET or even C++ programs)  <br /> <br />The conference was superbly organized and executed, congratulations and kudos to Rudi Kneght and his minions for an enjoyable and productive event. <br /> <br />Here are the 2 presentations (in PDF format), and a .RAR file containing <em>almost</em> all of the sample source code (heh heh). <br /> <br />Note that all of these materials are Copyright 2010 by Looseleaf Software, all rights reserved. <br /> <br /> <br /><a href="http://bobzblog.com/tuxedoguy.nsf/dx/BalabanDemos.rar/$file/BalabanDemos.rar" title="BalabanDemos.rar"BalabanDemos.rar/>BalabanDemos.rar</a> <br /><a href="http://bobzblog.com/tuxedoguy.nsf/dx/COMclasses.pdf/$file/COMclasses.pdf" title="COMclasses.pdf"COMclasses.pdf/>COMclasses.pdf</a> <br /><a href="http://bobzblog.com/tuxedoguy.nsf/dx/realworldwebservices.pdf/$file/realworldwebservices.pdf" title="realworldwebservices.pdf"realworldwebservices.pdf/>realworldwebservices.pdf</a> <br /> <br />Geek ya later! <br /> <br />(Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com) <br /> Follow me on Twitter @LooseleafLLC<br /> This article ©Copyright 2010 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/slides-and-demos-from-enwicklercamp-2010</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/slides-and-demos-from-enwicklercamp-2010?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>I will be speaking at &quot;EntwicklerKamp&quot;, March 8-10, 2010</title>
<pubDate>Tue, 26 Jan 2010 14:00:00 -0400</pubDate>
<description>
<![CDATA[ 
Greetings Geeks! Gelsenkirchen is in Germany, not far from Dusseldorf. This will be my first appearance at this event, and I've heard great things about it, both from speakers and attendees, so I'm ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/i-will-be-speaking-at-entwicklerkamp-march-8-10-2010</link>
<category>I will be showing up</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/i-will-be-speaking-at-entwicklerkamp-march-8-10-2010?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/i-will-be-speaking-at-entwicklerkamp-march-8-10-2010</guid>
<content:encoded><![CDATA[ Greetings Geeks!  <br /> <br />Gelsenkirchen is in Germany, not far from Dusseldorf. This will be my first appearance at this event, and I've heard great things about it, both from speakers and attendees, so I'm excited to finally be able to go myself.<br /> <span style="text-decoration:underline"><br /> </span><a href=http://www.entwicklercamp.de/EntwicklerCamp/Home><span style="text-decoration:underline">http://www.entwicklercamp.de/EntwicklerCamp/Home</span></a> (Currently the site is mostly in German only, though some of the speakers will be presenting their sessions in English) <br /> <br /> My topics will be:<br /> Real-world Web Services (what happens when you sail beyond the edge of the documented world)<br /> Advanced Programming with Notes/Domino COM classes (stuff you NEVER thought you could do from .NET or even C++ programs)  <br /> <br />Geek ya later!  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/i-will-be-speaking-at-entwicklerkamp-march-8-10-2010</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/i-will-be-speaking-at-entwicklerkamp-march-8-10-2010?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Everybody: February 14, 2037 at 1:30pm (plus or minus)</title>
<pubDate>Sun, 24 Jan 2010 14:00:00 -0400</pubDate>
<description>
<![CDATA[ 
Greetings Geeks! This might sound stupid, but bear with me before making up your m ind. I was fortunate to have the opportunity to present a Lotusphere10 session on the Best Practices track with m ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/everybody-february-14-2037-at-130pm-plus-or-minus</link>
<category>Everything will be done</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/everybody-february-14-2037-at-130pm-plus-or-minus?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/everybody-february-14-2037-at-130pm-plus-or-minus</guid>
<content:encoded><![CDATA[ Greetings Geeks! <br /> <br /> This might sound stupid, but bear with me before making up your m ind. <br /> <br /> I was fortunate to have the opportunity to present a Lotusphere10 session on the Best Practices track with my friend and colleague,<a href=http://www.pmooney.net/><span style="text-decoration:underline"> Paul Mooney</span></a>, titled "Meet the Grumpies: Eschew Obfuscation". A PDF of the slides we used (there aren't many of them, as most of the session was ad-lib or audience Q&amp;A) are posted below. Most of the session was devoted to people (initially myself and Paul, but then audience members chimed in too) offering up things that made them grumpy. Not just any things, but things related to software development, admin and deployment. Even the sound guy at the back of the room mentioned that speakers who ask him to do things he hasn't been told about in advance make him grumpy. And rightly so, sorry! <br /> <br /> One of the topics that came up as grumpy-making was unrealistic deadlines set by managers who are running to schedule, not to functionality or quality. Especially when they keep asknig: "When will it be done". So I offered a possible reply. Just say "It will be done on February 14th, 2037, at 1:30 PM, plus or minus". Then it was suggested (from the audience) that EVERYONE (yes, including you) should use this as the canonical "when it will be done" date. I just love that idea (note that the "plus or minus" gives you huge flexibility on actually getting the work done). <br /> <br /> So, remember this date, when (I guess) EVERYTHING will be "done": <strong>14 Feb., 2037, 1:30pm (local time, plus or minus)</strong> <br /> <br /> To be somewhat more responsible, let's note that a REAL technique for dealing with this unhappy situation is to set many, short-term deadlines, rather than rely on one "Everything is done" deadline (after all, your definition of "done" may not be the same as your manager's). For example, if you're a developer working on a new piece of software, set milestones for "spec complete", "design complete", "first working demo", "UI frozen", "first draft of documentation" (hoo hah!), etc. <br /> <br /> Geek ya later! <br /> <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/BP201-Meet -The Grumpies- Eschew Obfuscation.pdf/$file/BP201-Meet -The Grumpies- Eschew Obfuscation.pdf" title="BP201-Meet -The Grumpies- Eschew Obfuscation.pdf"BP201-Meet -The Grumpies- Eschew Obfuscation.pdf/>BP201-Meet -The Grumpies- Eschew Obfuscation.pdf</a>   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/everybody-february-14-2037-at-130pm-plus-or-minus</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/everybody-february-14-2037-at-130pm-plus-or-minus?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Never done this before....</title>
<pubDate>Sat, 23 Jan 2010 09:48:38 -0400</pubDate>
<description>
<![CDATA[ 
Greetings Geeks! Everyone recovered from Lotusphere yet? I may do a #LS10WrapUp post over this weekend (or I may not), but for now I'm breaking new ground: a rare blog post with no technical content ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/never-done-this-before....</link>
<category>music</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/never-done-this-before....?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/never-done-this-before....</guid>
<content:encoded><![CDATA[ Greetings Geeks! <br /> <br />Everyone recovered from Lotusphere yet? I may do a #LS10WrapUp post over this weekend (or I may not), but for now I'm breaking new ground: a rare blog post with no technical content or Lotus/IBM-related news. I just felt like telling you about a song I really like. <br /> <br />I picked up on Flogging Molly's "The Worst Day Since Yesterday" on an episode of "StarGate/Universe". You can hear the music<a href="http://www.youtube.com/watch?v=sDSud7vAH_0&amp;feature=PlayList&amp;p&iacute;7A5BA9187EAFAF&amp;index=0&amp;playnext=1"> here</a>. (We won't go into the sexist nature of the group's name now. Maybe another time).  <br /> <br />Disclaimers: this topic has nothing to do with Lotusphere, my trip home, Lotus, IBM or anything else. I just like the song. <br /> <br />Geek ya later! <br /> <br /> <br /> <br /> <br />  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/never-done-this-before....</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/never-done-this-before....?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>&quot;First Question&quot; &#64;Lotusphere?? Vote now!</title>
<pubDate>Thu, 7 Jan 2010 16:40:35 -0400</pubDate>
<description>
<![CDATA[ 
Greeings, Geeks! Lotusphere2010 is just around the corner (festivities begin on Sunday the 17th, at Disney World, FL). Those among you who are repeat collaborators (i.e., have been to a few recent Lo ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/first-question-lotusphere-vote-now</link>
<category>IBM</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/first-question-lotusphere-vote-now?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/first-question-lotusphere-vote-now</guid>
<content:encoded><![CDATA[ Greeings, Geeks! <br /> <br />Lotusphere2010 is just around the corner (festivities begin on Sunday the 17th, at Disney World, FL). Those among you who are repeat collaborators (i.e., have been to a few recent Lotuspheres) may know that on the final day of the conference (Thursday, Jan. 21st this year), Lotus puts a bunch of real live developers on stage, and lets the audience ask questions about the products. The session is called "Meet the Developers" officially, though when I worked at Lotus/Iris (quite a while ago, now) we called it "Beat the Developers". <br /> <br />Those of you who have been to a few of these sessions, and who have been paying attention, may remember that it has become a kind of unofficial tradition that I have asked the first question of the session. This has noathing to do with getting favored treatment from Lotus or anything -- I have just been lucky at getting there early and positioning myself at the right microphone (there are usually 3 in the room) to be called upon first (Note: Last year -- LS09 -- Brent Peters, who had taken over moderating the session from Kevin Cavanaugh, violated "tradition" and started the questions from the *wrong* microphone, so I (technically) did not get the First Question. I think I got the Third Question. I hope Brent will get his act together better this year and do it right). <br /> <br />Now, to the point! I've been pondering what my Question (whether it's the first one or not) should be. For the past many (I forget how many, maybe 5?) it's been all aobut the LSX Toolkit (read about the saga <a href="http://www.bobzblog.com/tuxedoguy.nsf/dx/huzzah-new-lsx-toolkit-is-posted-part-1">here</a>). For various reasons, I have decided (really, do NOT try to change my mind about this) that this year, I will NOT ask about the LSX Toolkit. Done. Finito. No Longer Of Interest. Boring, even. <br /> <br />So, having made that decision, I said to myself: "Self! What should my Question be instead??" I have a few ideas, but I want to open the topic up to The Geekdom in general. <br /> <br />GEEKS: What do YOU think my Question (whether it be the First one or not) should be about? This is a family-oriented blog, so refrain from foul language in your responses, please. I promise to seriously consider all sincere entries. The criteria I care most about are: <br /> <br />a) Not BORING  <br />2) NOT LSX Toolkit-related <br />iii) I'll consider topics related to DXL, but I find this fairly boring now, so it would have to be *good* to win <br />d) No personal attacks on actual people will be considered (even Paul Mooney or Bill Buchan), after all, we're all friends here. "Attacks" (legitimate criticism) on products is fair game <br />5) Please, no marketing-blah-blah-blah <br />vi) Better if it's something a lot of people care about <br />g) I'll consider both admin and dev topics, but everyone knows i am biased towards dev <br /> <br />So, go forth and cogitate! <a href="http://www.bobzblog.com/tuxedoguy.nsf/dx/coming-to-lotusphere-2010-meet-the-grumpies">Eschew obfuscation</a>! <br /> <br />Geek ya later! <br /> <br />PS: YES! I will be giving away "Lotusphere Veteran" buttons. They are currently in production. Quantities limited, you have to meet strict standards to get one: You have to ask for one, and you have to (truthfully, I hope) answer one question: "How many Lotuspheres have you attended?" Honor system, no real consequences (other than to your karmic destiny) if you lie, but don't. <br />  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/first-question-lotusphere-vote-now</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/first-question-lotusphere-vote-now?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Update on US COBRA health insurance subsidies</title>
<pubDate>Fri, 25 Dec 2009 00:03:13 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! Last April I published some info in this bloc about how people (US residents) who had been laid off and who had adopted the COBRA insurance continuation plan could receive a US Gov ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/update-on-us-cobra-health-insurance-subsidies</link>
<category>COBRA</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/update-on-us-cobra-health-insurance-subsidies?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/update-on-us-cobra-health-insurance-subsidies</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br /> Last <a href="http://www.bobzblog.com/tuxedoguy.nsf/dx/relief-for-the-cobra-bite?opendocument"><span style="text-decoration:underline">April I published</span></a> some info in this bloc about how people (US residents) who had been laid off and who had adopted the COBRA insurance continuation plan could receive a US Government subsidy of their monthly premiums. <br /> <br /> At the time, the subsidies were only for a maximum of 9 months, most peoples' (including mine) expired at the end of November, meaning that the December premium went back up to full rate. <br /> <br /> However! The US Congress recently passed an extension to the subsity program. This was not related to the "health care reform bill" passed by the US Senate yesterday, it's a different bill. What I heard on the news is that the extension is valid for an additional &nbsp;6 months, although I'm not completely sure about that. <br /> <br /> I phoned the administrator of my COBRA plan, and the nice lady I talked to there said she knew about the extension, and that they were working on implementing the change to their billing systems. In my case (YMMV) this means that I have to pay the full amount for a couple of months, then when they get caught up with the new law, they'll credit the amount of the subsidy for the months I've already paid to future payments. <br /> <br /> This is great news, the subsidy is worth a lot of money (to me, anyway). Of course, remember that COBRA plans in general are only valid for 18 months, after which you have to go get another provider, or signup for another plan (either through a new employer, if you have one, or individually). <br /> <br /> As always, don't take anything I say about this (or anything!) as gospel. Check it out for yourselves. <br /> <br /> Merry Christmas to all, and a Happy New Year. And remember: "War is over, if you want it." (John Lennon). <br /> <br /> Geek ya later!   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/update-on-us-cobra-health-insurance-subsidies</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/update-on-us-cobra-health-insurance-subsidies?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Coming to Lotusphere 2010? Meet The Grumpies!</title>
<pubDate>Wed, 16 Dec 2009 09:02:14 -0400</pubDate>
<description>
<![CDATA[ 
Greetings Geeks! If you will be attending Lotusphere 2010 (January 17-21), make sure to come by the session I am pressenting with Paul Mooney: BP201 Meet &#8220;The Grumpies&#8221;: Eschew Obfuscatio ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/coming-to-lotusphere-2010-meet-the-grumpies</link>
<category>Lotusphere</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/coming-to-lotusphere-2010-meet-the-grumpies?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/coming-to-lotusphere-2010-meet-the-grumpies</guid>
<content:encoded><![CDATA[ Greetings Geeks! <br /> <br />If you will be attending<a href=http://www.lotusphere.com> Lotusphere 2010</a> (January 17-21), make sure to come by the session I am pressenting with <a href=http://www.pmooney.net/pmooney/pmooneynet.nsf>Paul Mooney</a>:  <br /> <br />BP201 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Meet &#8220;The Grumpies&#8221;: Eschew Obfuscation! &nbsp;  <br />Wednesday, 8:30am, Dolphin Northern A-C <br />Who are they? They&#8217;re a group of very, very experienced Notes/Domino Admins and Developers, who love the product, warts and all, and know it very, very well. Speakers Balaban (dev) and Mooney (admin) will debate tactics, techniques, testing and best practices in general, and they will welcome a few special guests to do the same. Much of this session will be open Q&amp;A, but don&#8217;t ask for an opinion unless you want an honest (and maybe grumpy) answer! You will learn to recite The Grumpies&#8217; motto: &#8220;Be positive when possible, be &nbsp;grumpy when necessary.&#8221;<br />  <p>We'll also be graced by the presence of a couple of "guest Grumpies". You'll hear about what we like, and what makes us grumpy. You'll have a chance to ask lots of questions and maybe even rant on a bit about what makes <em>you</em> grumpy. Hope to see you there. <p>Geek ya later! <p>  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/coming-to-lotusphere-2010-meet-the-grumpies</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/coming-to-lotusphere-2010-meet-the-grumpies?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>New &quot;Admin Bootcamp&quot; announced for Lotusphere10</title>
<pubDate>Fri, 4 Dec 2009 20:45:57 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! Lotusphere10 approacheth! There are lots of cool sessions and activities beyond the usual terrific content. One of the new "programs" being piloted this year is something called "Ad ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/new-admin-bootcamp-announced-for-lotusphere10</link>
<category>Lotusphere</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/new-admin-bootcamp-announced-for-lotusphere10?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/new-admin-bootcamp-announced-for-lotusphere10</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br />Lotusphere10 approacheth! There are lots of cool sessions and activities beyond the usual terrific content. One of the new "programs" being piloted this year is something called "Admin Bootcamp". Basically, it's a selection of 4 2-hour Jumpstart sessions, all delivered in the same room on Lotusphere Sunday, and all on admin topics. <br /> <br />There will be lots of other Jumpstart sessions available on Sunday, and also a few "Show And Tell" sessions, all of which will be 2-hours long. <br /> <br />Here's a link to the Admin Bootcamp description on the IBM Lotusphere site: <a href="http://www-01.ibm.com/software/lotus/events/lotusphere2010/admin-boot-camp.html">http://www-01.ibm.com/software/lotus/events/lotusphere2010/admin-boot-camp.html.</a> <br /> <br />Hope to see you there <br /> <br />Geek ya later...  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/new-admin-bootcamp-announced-for-lotusphere10</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/new-admin-bootcamp-announced-for-lotusphere10?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Lotusphere Idol submisssions are re-opened!! Want to be a Lotusphere speaker?</title>
<pubDate>Mon, 23 Nov 2009 22:35:20 -0400</pubDate>
<description>
<![CDATA[ 
Greetings Geeks! I was fortunate enough to be a judge in the first 2 Lotusphere Idol contests (Lotusphere 08 and 09). Here's the deal: You give a 5 minute slice of a presentation. If you win, you get ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/lotusphere-idol-submisssions-are-re-opened</link>
<category>Lotusphere</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/lotusphere-idol-submisssions-are-re-opened?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/lotusphere-idol-submisssions-are-re-opened</guid>
<content:encoded><![CDATA[ Greetings Geeks! <br /> <br />I was fortunate enough to be a judge in the first 2 Lotusphere Idol contests (Lotusphere 08 and 09). Here's the deal: You give a 5 minute slice of a presentation. If you win, you get a full 1-hour speaking slot on Lotusphere Thursday, and the adoration of hundreds of fellow-geeks. <br /> <br />If you didn't submit when the original Lotusphere2010 Call for Abstracts went out, well, you still have time. Submissions for Idol are now being accepted through December.  <br /> <br />See Ed Brill's blog post on it: <a href="http://www.edbrill.com/ebrill/edbrill.nsf/dx/lotusphere-2010-lotusphere-idol-submissions-have-re-opened?opendocument">http://www.edbrill.com/ebrill/edbrill.nsf/dx/lotusphere-2010-lotusphere-idol-submissions-have-re-opened?opendocument</a> <br />And also Paul Mooney's blog post: <a href="http://www.pmooney.net/pmooney/pmooneynet.nsf/d6plinks/PMOY-7Y45H6">http://www.pmooney.net/pmooney/pmooneynet.nsf/d6plinks/PMOY-7Y45H6</a> <br /> <br />Be there, or be square!  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/lotusphere-idol-submisssions-are-re-opened</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/lotusphere-idol-submisssions-are-re-opened?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Materials from TriStateLUG Presentation on COM</title>
<pubDate>Wed, 11 Nov 2009 07:22:54 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, Geeks! I had the privilege of attending the Tri-State LUG meeting this week in New York, where I presented a session on advanced Notes programmability using the COM interfaces. Great even ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/materials-from-tristatelug-presentation-on-com</link>
<category>Lotus</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/materials-from-tristatelug-presentation-on-com?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/materials-from-tristatelug-presentation-on-com</guid>
<content:encoded><![CDATA[ Greetings, Geeks! <br /> <br /> I had the privilege of attending the <a href=http://www.tristatelug.org/tristatelug/tristatelug.nsf><span style="text-decoration:underline">Tri-State LUG</span></a> meeting this week in New York, where I presented a session on advanced Notes programmability using the COM interfaces. Great event, thanks to the organizers and sponsors for pulling it together. <br /> <br /> Here's a PDF copy of my slide deck, plus most of the code samples (some of that is proprietary...). <br /> Enjoy! <br /> <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/3slugCOM.pdf/$file/3slugCOM.pdf" title="3slugCOM.pdf"3slugCOM.pdf/>3slugCOM.pdf</a> <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/CPPDemo.cpp/$file/CPPDemo.cpp" title="CPPDemo.cpp"CPPDemo.cpp/>CPPDemo.cpp</a> <br /><a href="http://bobzblog.com/tuxedoguy.nsf/dx/Module1.vb/$file/Module1.vb" title="Module1.vb"Module1.vb/>Module1.vb</a> <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/NotesCOM.h/$file/NotesCOM.h" title="NotesCOM.h"NotesCOM.h/>NotesCOM.h</a> <br /> <a href="http://bobzblog.com/tuxedoguy.nsf/dx/Program.cs/$file/Program.cs" title="Program.cs"Program.cs/>Program.cs</a> <br /> <br /> <br /> (Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com) <br /> Follow me on Twitter @LooseleafLLC<br /> This article and all included code samples and presentations ©Copyright 2009 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/materials-from-tristatelug-presentation-on-com</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/materials-from-tristatelug-presentation-on-com?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Tri-State LUG, New York, November 9</title>
<pubDate>Thu, 29 Oct 2009 09:27:54 -0400</pubDate>
<description>
<![CDATA[ 
The Tri-State Lotus User Group will be holding an all-day meeting on November 9, hosted by IBM (590 Madison Ave, NY). I will be doing two presentations: Advanced Programming with Notes/Domino CO ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/tri-state-lug-new-york-november-9</link>
<category>TriState LUG</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/tri-state-lug-new-york-november-9?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/tri-state-lug-new-york-november-9</guid>
<content:encoded><![CDATA[ The Tri-State Lotus User Group will be holding an all-day meeting on November 9, hosted by IBM (590 Madison Ave, NY). <br /> <br /> I will be doing two presentations: <br />  <br /> <form action=http://www.tristatelug.org/tristatelug/tristatelug.nsf/><span style="text-decoration:underline"><br /> </span><a href="http://www.tristatelug.org/tristatelug/tristatelug.nsf/SessionBySlotLookup/1-2-4"><strong><span style="text-decoration:underline">Advanced Programming with Notes/Domino COM Classes</span></strong></a> <br /> Did you ever wonder how to write standalone programs that use both the Notes back-end classes, AND the front-end (UI) classes? Did you ever want to play with the Notes objects using VB.net or C#, while maintaining your ability to call-out to CAPI entry points? Did you ever want to learn how to invoke Notes UI from a C++ program? If your answer to any of these questions was a "yes", then come to this advanced (code heavy) session and learn all about COM and how to make it work for you with Notes/Domino. There will be lots of samples, and we will spend lots of time in the Visual Studio debugger, looking at code. This session is not an introduction, it is for code geeks only.  <br /></form><br /> <br /> And a Birds-of-a-Feather together with Paul Mooney:  <br /> <form action=http://www.tristatelug.org/tristatelug/tristatelug.nsf/><span style="text-decoration:underline"><br /> </span><a href="http://www.tristatelug.org/tristatelug/tristatelug.nsf/SessionBySlotLookup/1-3-5"><strong><span style="text-decoration:underline">Meet "The Grumpies": Eschew Obfuscation!</span></strong></a> <br /> Who are they? They're a group of very, very experienced Notes/Domino Admins and Developers, who love the product, warts and all, and know it very, very well. Speakers Balaban (dev) and Mooney (admin) will debate tactics, techniques, testing and best practices in general, and they will welcome a few special guests to do the same. Much of this session will be open Q&amp;A, but don't ask for an opinion unless you want an honest (and maybe grumpy) answer! You will learn to recite The Grumpies' motto: "Be positive when possible, be grumpy when necessary."  <br /></form><br /> Get the full agenda here: <a href=http://www.tristatelug.org/tristatelug/tristatelug.nsf/NewAgenda?readform><span style="text-decoration:underline">http://www.tristatelug.org/tristatelug/tristatelug.nsf/NewAgenda?readform</span></a>  <br /> <br />Attendance is free, register and come on by!  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/tri-state-lug-new-york-november-9</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/tri-state-lug-new-york-november-9?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Ok, we have to clear this up rightnow! &quot;On premise&quot; MAKES NO SENSE!</title>
<pubDate>Sat, 29 Aug 2009 09:05:12 -0400</pubDate>
<description>
<![CDATA[ 
Greetings, geeks! I've seen it, you've seen, we all have, especially in the literature around cloud computing: "On-premise" vs. "in the cloud". The discussion around LotusLive is full of this, though ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/ok-we-have-to-clear-this-up-rightnow-on-premise-makes-no-sense</link>
<category>Lotus</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/ok-we-have-to-clear-this-up-rightnow-on-premise-makes-no-sense?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/ok-we-have-to-clear-this-up-rightnow-on-premise-makes-no-sense</guid>
<content:encoded><![CDATA[ Greetings, geeks! <br /> <br />I've seen it, you've seen, we all have, especially in the literature around cloud computing: "On-premise" vs. "in the cloud". The discussion around LotusLive is full of this, though IBM is not the only offender. It's making me crazy, so let's clear this up right now, ok? <br /> <br />Note to IBM and all marketing people (and managers, and executives who give presentations or interviews about this stuff): "On premise" makes NO SENSE! The correct word is PREMISES!! <br /> <br />Don't believe me? Lets go to <a href=http://dictionary.reference.com/browse/premise>the dictionary:</a>  <br /> <br />prem&#8901;ise&#8194;&#8194;/Pronunciation &#91;prem-is&#93;: Logic. a proposition supporting or helping to support a conclusion. <br />Law. a. a basis, stated or assumed, on which reasoning proceeds.  <br />&nbsp; &nbsp; &nbsp;b. an earlier statement in a document.  <br />&nbsp; &nbsp; &nbsp;c. (in a bill in equity) the statement of facts upon which the complaint is based.  <br /> <br />etc. (there's a verb form, too). <br /> <br />Now PREMISES: <br />&nbsp; &nbsp; &nbsp;premises, a. a tract of land including its buildings.  <br />&nbsp; &nbsp; &nbsp;b. a building together with its grounds or other appurtenances.  <br />&nbsp; &nbsp; &nbsp;c. the property forming the subject of a conveyance or bequest.  <br /> <br />So, clearly, the term for "I have computers of my own right here in the building" is "on-premises", NOT "on-premise", since you can't have computers hosted in a logical proposition. You can, of course (and often do) have computers maintained in a building. <br /> <br />In the movies, does the sherrif ever roll up to someone's house and order them to "vacate the premise"?? NO! That would be funny, perhaps, especially if the house in question were on the campus of a law school, but such an order would not be cause for people to move out. "Vacate the premises", on the other hand....yer outta there. <br /> <br />Ok? Can we all try to get this right now? Thanks! <br /> <br />Geek ya later! <br /> <br />(Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com) <br /> Follow me on Twitter @LooseleafLLC<br /> This article ©Copyright 2009 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.   ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/ok-we-have-to-clear-this-up-rightnow-on-premise-makes-no-sense</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/ok-we-have-to-clear-this-up-rightnow-on-premise-makes-no-sense?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>I have a new article in The View</title>
<pubDate>Wed, 26 Aug 2009 11:55:29 -0400</pubDate>
<description>
<![CDATA[ 
http://www.eview.com/eview/VOLR6.nsf/CurrentIssue/94FF3BDCF710A7A78525761E004CF5DD?OpenDocument (requires subscription to read the full article) I've written quite a lot for The View in previous yea ...
 ]]>
</description>
<link>http://bobzblog.com/tuxedoguy.nsf/dx/i-have-a-new-article-in-the-view</link>
<category>LotusScript</category>
<dc:creator>Bob Balaban</dc:creator>
<comments>http://bobzblog.com/tuxedoguy.nsf/dx/i-have-a-new-article-in-the-view?opendocument&amp;comments</comments>
<guid isPermaLink="true">http://bobzblog.com/tuxedoguy.nsf/dx/i-have-a-new-article-in-the-view</guid>
<content:encoded><![CDATA[ <a href=http://www.eview.com/eview/VOLR6.nsf/CurrentIssue/94FF3BDCF710A7A78525761E004CF5DD?OpenDocument>http://www.eview.com/eview/VOLR6.nsf/CurrentIssue/94FF3BDCF710A7A78525761E004CF5DD?OpenDocument <br /> <br />(requires subscription to read the full article) <br /> <br />I've written quite a lot for The View in previous years, though it's been 2 or 3 since my last piece. They asked me to take one of my old articles (from 1999, on LotusScript performance tuning) and update it. The revised article (edited some of the text, re-ran all the samples, etc.) is now posted on the eview.com site. <br /></a>  ]]></content:encoded>
<wfw:commentRss> http://bobzblog.com/tuxedoguy.nsf/dxcomments/i-have-a-new-article-in-the-view</wfw:commentRss>
<wfw:comment> http://bobzblog.com/tuxedoguy.nsf/dx/i-have-a-new-article-in-the-view?opendocument&amp;comments</wfw:comment>
</item>
</channel></rss>
