<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>magecraft.net</title>
<description>magecraft | any sufficiently advanced technology is indistinguishable from magic</description>
<link>http://www.magecraft.net</link>
<lastBuildDate>Mon, 19 May 2008 12:46:00  -0700</lastBuildDate>
<item>
<title>Building a Better Script Error Handler</title>
<pubDate>Mon, 19 May 2008 12:46:00  -0700</pubDate><description>
<![CDATA[

<br /><p>I typically find that the abilities of LotusScript almost always leave me wanting more. This is particularly true in the area of error handling.</p><p>I think most Domino developers follow a fairly typical path when learning to write error handlers.<ul><li>what errors?<li>on error resume next<li>on error goto ErrorHandler</ul></p><p>The ErrorHandler typically comprises some number of the following: logging the type of error (err and / or error), where the error occurred (by line number or function name or both), and exiting. And this code in whatever form it takes, must be present in each module. Or so I assumed.</p><p>"When I was a child, I spake as a child, I understood as a child, I thought as a child: but when I became a seasoned programmer, I put away childish things."</p><p>For a couple of years now we've had lsi_info() and getthreadinfo() to help us provide some additional clues as to where a given error occurred. getthreadinfo() is pretty straightforward as it's actually documented. lsi_info() is where things really start to get interesting.</p><p>For example:<ul><li>lsi_info(2) - module name where the lsi_info() occurs.<li>lsi_info(12) - calling module name where lsi_info() occurs.<li>numerous others...</ul>all of the arguments to lsi_info() are undocumented and according to numerous reports are not entirely thread safe. So buyer beware.</p><p>I have continued to use these functions in my usual error handling. a little more sophisticated, but ultimately not much better.</p><p>It occurred to me after testing some additional arguments to the lsi_info() function that there might be a wholly different and better way to do this.</p><p>The key to all of this is lsi_info(14) which provides a stack trace (v6 and later only). Thats right, boys and girls, a stack trace. No more push() ing and pop() ing module names into an array or list to keep track of a given error. Not only that, but since unhandled errors bubble up to the calling functions errorhandler the code to handle fatal errors (you still have to handle your non-fatal ones locally) can be put in only the top level module of a given piece of code (say Initialize for an agent)</p><p>It's not a perfect world. You'll need to format the stack trace before you present it to either your log or user.</p><p><code>Function Foobar()<br /><br />'Error occurs here!<br /><br />End Function<br /><br />Sub Initialize()<br />On Error goto ErrorHandler<br />Dim errh as New customErrorHandler<br /><br />call Foobar()<br /><br />ErrorHandler:<br />call errh.ReportFatal() 'Gets handled here.<br /> Resume ExitWithError<br />ExitWithError:<br />End Sub()</code></p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/22A1AB5C534E66DE8825744E006CB2EE</link>
</item>
<item>
<title>Rant: Professional Identifier Names</title>
<pubDate>Thu, 8 May 2008 09:29:00  -0700</pubDate><description>
<![CDATA[

<br /><p>So generally I do not care for searchdomino tips. They tend to be a little basic, and the newsletters tend to be a little bloated with vendor speak. Despite that I was reading a recent <a href="http://go.techtarget.com/r/3591937/429912">submission</a> ( a pretty intestesting article) when i get to the line:</p><p>On Error Goto oops</p><p>Can we not call identifiers what they are?!? This drives me just a little nuts. Im not suggesting that we adopt full <a href="http://en.wikipedia.org/wiki/Hungarian_notation">hungarian</a>, but if its an errorhandler lets call it that instead of oops.</p><p>By the way, If you happen to have seen my name in another recent searchdomino article, please do not allow that to influence your opinion of this post. The fact that they used both my name and my quote has no bearing whatsoever on my opinions.</p><p>er.... mostly. :)</p
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/DC22A7E31F98B6F488257443005C3B11</link>
</item>
<item>
<title>Meet the Experts</title>
<pubDate>Mon, 5 May 2008 01:19:00  -0700</pubDate><description>
<![CDATA[

<br /><p>So when I was at the "Meet the Geeks" event I sat down at the IBM... er... Ed Brill and Alan Lepofsky table and apparently someone gave <a href="http://www.idonotes.com">Chris Miller</a> a <a href="http://www.flickr.com/photos/idonotes/2460484406/in/set-72157604852481877/">camera</a> and i got caught talking to Alan. Or maybe he got  caught talking to me.</p><p>Interestingly enough one of the topics was global privacy and how IBM was dealing with the latest opponent to collaboration. For the organization I work at I think this photo would have to have some kind of release. :-)</p><p>Dont you love progress.</p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/617103B31525583C8825744000704EDA</link>
</item>
<item>
<title>SearchDomino in Boston</title>
<pubDate>Fri, 2 May 2008 07:08:00  -0700</pubDate><description>
<![CDATA[

<br /><p>Currently sitting in the Web 2.0 session <a href="http://www.bobzblog.com">Bob Balaban</a> is presenting. Mostly just using Javascript and XML to make better UIs. My interpretation of that is... writing extra code to make up for what Lotus / IBM will not do with the Domino server.</p><p>As luck would have it I was approached by Matt Gervais from SearchDomino this morning to ask me what i thought about the conference.<p>In the process I asked him about the now infamous "Best practices for migrating LN apps to modern platforms" newsletter.  Lots of <a href="http://edbrill.com/ebrill/edbrill.nsf/dx/searchdomino-comments-on-recent-notes-migration-advertising">coverage</a> on it elsewhere. He went on about how the editorial staff is at the mercy of the marketers.</p><p>It seemed clear they took a beating over the whole issue. He even mentioned how people are dropping the subscription, the recent "call for experts", and eventually referenced a conference call between them and <a href="http://www.edbrill.com">ed</a> in a damage control context. </p><p>Interesting times over there at SearchDomino.</p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/90AA1175BB77D7578825743D004EC75D</link>
</item>
<item>
<title>Quote of the Day</title>
<pubDate>Fri, 2 May 2008 07:44:00  -0700</pubDate><description>
<![CDATA[

<br /><p>Bob Balaban: Doing really good web apps in Domino is possible, but it sure aint easy. You have to poke and prod.... it's a bitch.</p><p>A real live actual quote. I promise.</p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/BDCDDD6AE70B793A8825743D00511EB6</link>
</item>
<item>
<title>Public Beta of Designer 8.5</title>
<pubDate>Thu, 1 May 2008 04:47:00  -0700</pubDate><description>
<![CDATA[

<br /><p>I'm in the Designer 8.5 commercial... er... session being conducted by Maureen Leland and Phillipe Loher.</p><p><ul><li>They announced the public beta of the the 8.5 Designer is a month away.<li>They showed some of the eclipse editors (javascript, css, xml, etc)<li>Xpages of course. Web 2.0 mashup controls. Pretty nice.</ul></p><p>Observations: In typical IBM fashion they didn't put the perspectives available from the default UI. No buttons; you have to select something like tools/perspective/others... with no shortcut. :-)</p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/27C446546DE2D1E78825743C00414986</link>
</item>
<item>
<title>Advanced OO in LotusScript</title>
<pubDate>Thu, 1 May 2008 07:46:00  -0700</pubDate><description>
<![CDATA[

<br /><p>Caught <a href="http://www.billbuchan.com">Bill Buchans</a> session today: Advanced OO in LotusScript.</p><p>Interesting notes:<ul><li>.. notation for parent method execution<li>Factory class for dynamic class loading via the execute command. really sexy stuff.</ul></p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/AD4A895A9A9C49118825743D0051A492</link>
</item>
<item>
<title>Keynote</title>
<pubDate>Wed, 30 Apr 2008 07:12:00  -0700</pubDate><description>
<![CDATA[

<br /><p>Good Stuff in the keynote. Lots of bling in designer 8.5 and Sametime updates.</p><p>More of the same from Connections and quickr.</p><p>Alistair Rennie almost slipped up and admitted they nearly waited too long to re-tool the designer. My current employment is in a place that is under siege by Sharepoint and the rabid m$ faithful.</p><p>Nearly? "Your product is only mostly dead..."</p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/E6D517237962E3858825743B004E1BC7</link>
</item>
<item>
<title>Jumpstart</title>
<pubDate>Tue, 29 Apr 2008 06:52:00  -0700</pubDate><description>
<![CDATA[

<br /><p>Developer jumpstarts are kinda lame this year.</p><p>Early Sessions<ul><li>Complete Guide to Domain Monitoring<li>Sametime 8 Deployment and Upgrade<li>Administration for Developers</ul>Afternoon Sessions<ul><li>Comprehensive Guide to Policies<li>Building a Java Foundation for Eclipse<li>Coding in LotusScript: Core Elements</ul></p><p>Caught the sessions that John Kidd is doing on Administration for Developers and then Java foundation for Eclipse.</p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/99A8FEEA1DB31EB48825743B004D3683</link>
</item>
<item>
<title>No CertFX</title>
<pubDate>Tue, 29 Apr 2008 05:41:00  -0700</pubDate><description>
<![CDATA[

<br /><p>No <a href="http://www.certfx.com">CertFX</a> in the certification prep labs.</p>
]]>
</description>
<link>http://www.magecraft.net/88256C9F0079B03D/0/6E00AE9897EBD1238825743C0045E07A</link>
</item>

</channel>
</rss>
