<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8279854</id><updated>2011-11-27T19:39:29.867-05:00</updated><title type='text'>Stan's Space</title><subtitle type='html'>One does what one can. And no more.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default?start-index=101&amp;max-results=100'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>110</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8279854.post-396467203369183899</id><published>2010-07-21T05:54:00.004-04:00</published><updated>2010-07-21T06:14:01.410-04:00</updated><title type='text'>Do I know you?</title><content type='html'>&lt;p class="stanza" style="text-indent: 0;"&gt;Do I know them?&lt;br /&gt;
Most of the time I could tell you their names.&lt;br /&gt;
Most of the time.&lt;/p&gt;

&lt;p class="stanza" style="text-indent: 0;"&gt;I should know this place.&lt;br /&gt;
I've been here before.&lt;br /&gt;
It looks the same.&lt;br /&gt;
It feels different.&lt;/p&gt;

&lt;p class="stanza" style="text-indent: 0;"&gt;Do I know them?&lt;br /&gt;
I think I remember them as friends.&lt;br /&gt;
I think I remember.&lt;/p&gt;

&lt;p class="stanza" style="text-indent: 0;"&gt;I should know these smiles.&lt;br /&gt;
I've seen them before.&lt;br /&gt;
They look the same.&lt;br /&gt;
It feels different.&lt;/p&gt;

&lt;p class="stanza" style="text-indent: 0;"&gt;Do I know them?&lt;br /&gt;
There were threads connecting us.&lt;br /&gt;
There were threads.&lt;/p&gt;

&lt;p class="stanza" style="text-indent: 0;"&gt;I should know this love.&lt;br /&gt;
I've felt it before.&lt;br /&gt;
It looks the same.&lt;br /&gt;
It doesn't feel at all.&lt;/p&gt;

&lt;p class="stanza" style="text-indent: 0;"&gt;Do I know you?&lt;br /&gt;
Didn't you bring me here?&lt;br /&gt;
Didn't you?&lt;/p&gt;

&lt;p class="stanza" style="text-indent: 0;"&gt;I should know.&lt;br /&gt;
I should know.&lt;/p&gt;

&lt;p&gt;Popped a breaker again, and am feeling weirdly disconnected from the world. I know  people, and have memories of fond feelings for them, but the feelings themselves are gone. It's not the apathy of depression (I know that well). It's more like what I've heard of &lt;a href="http://en.wikipedia.org/wiki/Prosopagnosia" title="go to Wikipedia entry"&gt;prosopagnosia&lt;/a&gt;, except that I do recognise the people to whom I no longer feel connected. This crap is getting too weird, and the world too scary to cope with.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-396467203369183899?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/396467203369183899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=396467203369183899' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/396467203369183899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/396467203369183899'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2010/07/do-i-know-you.html' title='Do I know you?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-583891953020340145</id><published>2010-05-07T11:13:00.000-04:00</published><updated>2010-05-07T11:16:44.532-04:00</updated><title type='text'>Anybody need a good used developer?</title><content type='html'>&lt;p&gt;Well, the last little while has been as confusing a roller-coaster ride as the previous four years or so have been, but for entirely different reasons. Or, rather, for exactly the opposite reasons. For a long time now, I've been telling all and sundry who need to hear it that the process of going sane is every bit as troubling and perplexing for someone in recovery as the process of going insane might be to someone who is headed in the other direction. Now I find that the idea of being somewhat healthy and capable is as foreign a thing to me as finding myself incapacitated in various ways once was.&lt;/p&gt;
&lt;p&gt;That's not to say that I am quite up to full operating specs yet, but I have found that I'm nowhere near as useless as I once was. That applies particularly to coding activities. I'm not quite as sharp as I once was, but I'm pretty sure that's mostly because I'm very much out of practice. I seem to have pretty much regained my chops in the Lotus Notes (or, rather, Lotus Domino) world (I still have a lot more fun writing applications meant for the web than I have writing for the Notes client, mostly because of the options for data display). I've begun to experiment with Python on the Google AppEngine framework and, while I'm still not quite one with Python, I've actually managed to impress myself so far (look for something coming up on the appspot.com domain&amp;mdash;Yellow-bleeders will find it a familiar flavour, and the Lotus-less masses just might find something a little more useful than what they're used to). And I've been able to do a thing or two on the LAMP stack along the way.&lt;/p&gt;
&lt;p&gt;I think I'm ready to give this thing a go again, but there's this great gaping hole in my resum&amp;eacute;, see. Anybody need a good, cheap Domino developer for a throwaway project I can use as a step out of oblivion? There's this scratch &amp;amp; dent sale I know about&amp;hellip;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-583891953020340145?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/583891953020340145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=583891953020340145' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/583891953020340145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/583891953020340145'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2010/05/anybody-need-good-used-developer.html' title='Anybody need a good used developer?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-359953020934449076</id><published>2010-02-24T20:23:00.005-05:00</published><updated>2010-02-25T04:37:28.128-05:00</updated><title type='text'>About pastels</title><content type='html'>&lt;p class="first_para"&gt;In the last post I raved about a &lt;a href="http://www.ononesoftware.com/detail.php?prodLine_id=7&amp;gclid=CO-DlsKf-p8CFWV75QodelwxWw" title="OnOne Genuine Fractals Pro product page"&gt;piece of software&lt;/a&gt; I found to help me with my little doodles, and I believe I mentioned that the final image was to be a pastel painting. About that...&lt;/p&gt;
&lt;p&gt;There was a time when I was serious enough about the art thing to make a reasonable income from it. I'd like to get back to that now, since it's one of those things a fellow can do without having to be reliable, meet deadlines, or even be capable of speech and locomotion every day. Anyway, on of the media I most enjoyed working in was soft pastels. And one of the media I least enjoyed working in was soft pastels. I'm fussy. I like sharp relief and a lot of detail. Pastels are fragile, crumbly, dusty, messy and &lt;strong&gt;hate&lt;/strong&gt; sharp relief or even so much as a hint of the idea of detail. That being said, the colours are and remain what you originally put down on paper or board. They are essentially pure pigment with just enough binder to keep them from being nothing but dust (thus their fragility and abhorrence of detail).&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AsuYhzr3RiQ/S4XT-zF3pRI/AAAAAAAAAD0/G7fu_98CgTs/s1600-h/zoe_start_face.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://2.bp.blogspot.com/_AsuYhzr3RiQ/S4XT-zF3pRI/AAAAAAAAAD0/G7fu_98CgTs/s320/zoe_start_face.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5441988800567289106" /&gt;&lt;/a&gt;
&lt;p&gt;In this image, for instance (and I apologize for the quality of the photo, the paper texture takes over in a way it doesn't when you see the work in person), you can see that there's really only the slightest suggestion of detail. The picture is far from finished at this point&amp;mdash;the edges of what has been drawn so far are not what they will be after the background is laid in, the ears are just blobs, and so forth&amp;mdash;but there are some areas that are pretty much as they will be when the work is complete. There is apparent detail in the mouth, for instance, that isn't actually there, and the facial contours are as close as I'm going to be able to get. It was a genuine battle getting to this point, though, and that's because I'd completely forgotten how to work with pastels.&lt;/p&gt;
&lt;p&gt;There is a trick to it, and that's what had slipped my mind during the ten years I'd spent time with &lt;em&gt;pix&lt;/em&gt;els instead of &lt;em&gt;past&lt;/em&gt;els. Painting with pastels (as opposed to drawing with them) is largely a process of creating large piles of multicoloured sticky dust, then cleaning up the dust so you can make another mess to clean up (repeat as necessary). A picture comes together gradually, layering colours, scrubbing them together, worrying areas of tone together until they agree upon an edge. That's particularly true when one works with the small number of sticks I have at my disposal (there are only nine colours in use here; back in the day I would have had closer to fifty to cover the same range of tones). Once I let go of the picture and started to concentrate on the dust cycle, there was a lot less swearing involved.&lt;/p&gt;
&lt;p&gt;Another thing I forgot was that little pictures are a waste of time. If you think about the picture as a computer graphic, you'd have to keep in mind that a "pixel" is a lot closer to an eighth of an inch than to an eightieth. This picture will matte at 18 by 24 inches when done, but if I were to start again it would be a lot more like 27 by 36, or perhaps larger. As it is, I'll have to remember to keep my expectations in check, but I think I can achieve what I'd set out to do&amp;mdash;put someone who is very important to someone who, in turn, has been important to me, into a Rockwellian Saturday Evening Post cover illustration.&lt;/p&gt;
&lt;p&gt;That leaves only one hard part to go (apart from finishing the painting, I mean): I had completely forgotten what a pain in the butt it is to transport a pastel work. That'll take some package engineering for sure, and I hope I'm up to &lt;em&gt;that&lt;/em&gt; task.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-359953020934449076?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/359953020934449076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=359953020934449076' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/359953020934449076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/359953020934449076'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2010/02/about-pastels.html' title='About pastels'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AsuYhzr3RiQ/S4XT-zF3pRI/AAAAAAAAAD0/G7fu_98CgTs/s72-c/zoe_start_face.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-2928769467737588523</id><published>2010-02-18T01:45:00.001-05:00</published><updated>2010-02-18T01:51:29.173-05:00</updated><title type='text'>I Heart OnOne Genuine Fractals</title><content type='html'>&lt;p class="first_para"&gt;Whenever I've had really, really good hand control lately, I've spent my time drawing. If you're one of the select company who are among my Facebook friends, you may have seen a horribly lit and noisy webcam photo of a pencil drawing I did of the daughter of a friend of mine. Now, I'm a bit of a sentimental old poop&amp;mdash;I always tended that way&amp;mdash;but lately I've wanted nothing more than to capture and immortalize the things in life that make me go "awww".&lt;p&gt;
&lt;p&gt;One of the most awww-some things I've seen lately is a snap of our Jess's little Zo&amp;euml; looking like the perfect cross between a Norman Rockwell Post cover and an 80s vintage Oshkosh B'Gosh ad. It's an image that &lt;em&gt;needs&lt;/em&gt; to be much more than a snap (you couldn't have posed it that perfectly) and I decided I would rectify the situation. The only problem was that the picture I was trying to work from was a mere 451 by 604 pixels, and cropping out the background left me a little less than 200 by 400 pixels. Keeping in mind that that covers Zo&amp;euml; head to stocking feet, you can imagine how little detail there would be to work with.&lt;/p&gt;
&lt;p&gt;Well, I tried, but my initial pencil drawing (the finished work will be a pastel painting) looked like a very cute generic little girl, but not a whole lot like Zo&amp;euml;. I spent hours moving the shadows around, and it continued to be a really good picture if I didn't get too hung up on the identity of the subject. That, folks, is damned frustrating.&lt;/p&gt;
&lt;p&gt;It was clear that the source material was too small to be of any real use. I tried enlarging the image in a variety of image editors (Photoshop CS3 &amp; 7, Paint Shop Pro, and the GIMP, each of which has a slightly different bicubic smoothing filter) with no joy. Oh, the picture got bigger all right, but there was no more information to work with&amp;mdash;in fact, as a drawing source the picture just plain got worse. Then I remembered having read something some years ago about some kind of image scaler based on fractals and wavelets and all of that mathy stuff I used to live in. I wasn't into computer graphics then, but the math was fascinating. It took a while to find the product name, and a while longer to find an installed copy I could use. I was at the point of giving up, so what the hell, eh?&lt;/p&gt;
&lt;p&gt;I set the plugin to 400 percent and used the defaults otherwise and&amp;hellip; HO-O-O-OLY CRAP!!! The phrase that actually came not only to mind but accidentally to tongue (did I say that out loud?) was a little less socially acceptable and likely to permanently corrupt small children within earshot. I've only had software leave me in giggly fits of delight once before, and that was the original Video Toaster on an Amiga 2000 way back when 286s roamed the planet running 1-2-3 and Wordperfect. It found detail that wasn't there (I swear), but it wasn't just made-up stuff either. It found &lt;em&gt;stitching in the clothing&lt;/em&gt;! It found freakin' &lt;em&gt;eyelashes&lt;/em&gt;!!!&lt;/p&gt;
&lt;p&gt;Having found a good source for my drawing, I saved the enlargement and quickly forgot about it. I spent the rest of the afternoon blowing every picture on the USB key up to billboard size, giggling all the while. I put together a 300 pixel per inch raster business card (600 by 1050 pixels) with a geometric Aero-style graphic and a lot of rasterized type, then blew that up to print at 20 by 35 inches (that's a thousand percent of the original size) and I swear I couldn't tell that it hadn't been created at that size in the first place. It's even better at &amp;ldquo;hard&amp;rdquo; graphics than it is at photos, probably because there's less to guess at.&lt;/p&gt;
&lt;p&gt;In any case, I'm now stuck with a deep and abiding love for a program that is neither free as in speech nor free as in beer. I'm not a stickler for open source, but this busines of being ethically compelled to pay for something because it's worth more than the price on the box has got to go. I want my moral ambivolence back!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-2928769467737588523?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/2928769467737588523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=2928769467737588523' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2928769467737588523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2928769467737588523'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2010/02/i-heart-onone-genuine-fractals.html' title='I Heart OnOne Genuine Fractals'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-1575115060879465123</id><published>2010-02-05T02:02:00.004-05:00</published><updated>2010-02-05T09:25:25.952-05:00</updated><title type='text'>Making life bigger</title><content type='html'>&lt;p class="first_para"&gt;Over the last couple of years, my life has sort of closed in on me. If anyone ever had excuses for that sort of thing, well, I think I qualify. It's kinda hard to carry on a conversation when you have trouble talking; it's hard to get out and about when your legs don't work today. Most of all, though, I've been saying a lot more goodbyes than hellos, in anticipation of the day when the big goodbye arrives. I don't know whether that goodbye will be The Big One or a final slip into uncommunicativeness and unawareness, but I do know that there's something of the sort coming down the pipe.&lt;/p&gt;
&lt;p&gt;The thing is, see, that I should be there already, and I'm not. I'm no intellectual giant these days, but I haven't collapsed into a state of simplicity either. I may have trouble fishing for words, but I can carry on a conversation most days&amp;mdash;provided that my partner has a little patience to spare. I'm not good with eye contact, but folks seem to make allowances for that, and generally seem less annoyed than I am with that little quirk. And I still have a little bit of experience, strength and hope to share with the world.&lt;/p&gt;
&lt;p&gt;Tonight I had the pleasure of attending a little celebratory gathering. I knew exactly one person, the young woman whose achievement we were celebrating, before I got there, and I'd been out of contact with her for, wow, just a little too long. I'd almost forgotten how much I enjoyed her company, and I'm starting to believe that there was method behind that particular madness. It's hard to watch the people around you when you've told them what to expect from the progression of an illness, and the closer people are the harder it hits them. Letting people just sort of drift away with time is the easy way out, but it sure leaves holes in a life.&lt;/p&gt;
&lt;p&gt;I was rather surprised to be invited to this little gathering, but I'm more than happy that I went. I found an old friendship still intact, and found that the reason we two, oddly matched as we are, were friends is strong today as it ever has been. She's weird in the right way, and I suppose she sees me in much the same light. She also has a number of, well, quirky friends who are every bit as weird in ways that suit them perfectly, and I've found, I think, the basis for a few new friendships.&lt;/p&gt;
&lt;p&gt;I have been telling people for a long time now that the secret to happiness is to take the biggest bite you can out of life's fat arse. Somehow, in the rush to die, I'd managed to forget that. I should listen to me more often&amp;mdash;I am a very wise man.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-1575115060879465123?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/1575115060879465123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=1575115060879465123' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/1575115060879465123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/1575115060879465123'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2010/02/making-life-bigger.html' title='Making life bigger'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-3391020704686369217</id><published>2009-12-20T20:39:00.002-05:00</published><updated>2009-12-20T21:45:15.184-05:00</updated><title type='text'>Holiday wish for 09/10</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AsuYhzr3RiQ/Sy7hIFARwVI/AAAAAAAAADs/omqG-wjXIus/s1600-h/blogger_card_09.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://2.bp.blogspot.com/_AsuYhzr3RiQ/Sy7hIFARwVI/AAAAAAAAADs/omqG-wjXIus/s320/blogger_card_09.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5417514930671829330" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-3391020704686369217?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/3391020704686369217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=3391020704686369217' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/3391020704686369217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/3391020704686369217'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/12/holiday-wish-for-0910.html' title='Holiday wish for 09/10'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AsuYhzr3RiQ/Sy7hIFARwVI/AAAAAAAAADs/omqG-wjXIus/s72-c/blogger_card_09.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-4315225332478085437</id><published>2009-12-11T21:34:00.004-05:00</published><updated>2009-12-11T22:35:21.420-05:00</updated><title type='text'>A Google rant ... but not the one you expect</title><content type='html'>&lt;p class="first_para"&gt;I like Google just fine, thank you very much. I gave up expectations of privacy before Scott McNealy told us all to &amp;ldquo;get over it&amp;rdquo; back in the long, long ago. I've had a sneaking suspicion that Google had been keeping an eye on things for quite a while now, what with the targeted ads and so forth. That's their freakin' business model, innit?&lt;/p&gt;
&lt;p&gt;No, I'm not complaining about a lack of privacy, but rather about a lack of respect. I'm just a poor boy (nobody loves me), so I tend to use Google's &amp;ldquo;free&amp;rdquo; tools when I need to do something webbish, all the while knowing that &lt;abbr title="There is no such thing as a free lunch"&gt;TINSTAAFL&lt;/abbr&gt;. I understand that there are going to be some limitations on what I'm allowed to do; I expect that the Google brand will have to remain intact, and that the ads that provide their revenue ought to be visible to surfers. That is, after all, why the lunch is free. Strings attached. I get it. I also understand that there are some nasty people in this world who like to engage in &lt;abbr title="Cross-site Scripting"&gt;XSS&lt;/abbr&gt;, credential-grabbing and all kinds of mean, ugly, nasty things. (&lt;q id="alices_restaurant"&gt;Mother rapers. Father stabbers. &lt;em&gt;Father rapers!&lt;/em&gt;&lt;/q&gt; &lt;cite for="alices_restaurant"&gt;Alice's Restaurant Massacree - Arlo Guthrie&lt;/cite&gt;) Well, I've done my share of littering, so I guess I deserve to be on the Group W bench playing with the pencils, but...&lt;/p&gt;
&lt;p style="font-variant: small-caps; font-weight: bolder"&gt;If you're going to offer me something called a &amp;ldquo;Page&amp;rdquo; and provide an HTML editor for that page, AND allow me to preview the page and see its wondrous beauty, why, oh why must you strip out all of the HTML on save?&lt;/p&gt;
&lt;p&gt;Okay, they do leave the p and br tags alone. Well, except for the attributes, if you've used any of them. And I can understand why they'd want to strip out script tags, and URIs that start with &amp;ldquo;javascript:&amp;rdquo; or &amp;ldquo;data:&amp;rdquo;, but when a man steals another man's identity (id attributes are stripped) and cramps his &amp;lt;style&amp;gt;, that's just wrong. (Cries of &amp;ldquo;shame&amp;rdquo; and banging of desks issue from the Opposition benches.)&lt;/p&gt;
&lt;p&gt;I'm really rather more apoplectic than this posting suggests. Google Groups meets my needs&amp;mdash;it's the fair-haired bastard child of the discussion forum and the Usenet newsgroup, except for this one little hitch. Well, the needs aren't so much mine; I'm just the guy setting up the support system for people who will be saving one another's lives. I'm just disappointed that I have to use so many different tools to do what needs doing, with the potential for privacy problems spread far and wide across the net. And all it would take to fix it, to consolidate everything in one place, is for Google to treat group owners like adults.&lt;/p&gt;
&lt;p&gt;That is all.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-4315225332478085437?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/4315225332478085437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=4315225332478085437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/4315225332478085437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/4315225332478085437'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/12/google-rant-but-not-one-you-expect.html' title='A Google rant ... but not the one you expect'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-3308313445042329357</id><published>2009-12-03T05:05:00.003-05:00</published><updated>2009-12-03T05:21:19.332-05:00</updated><title type='text'>This stylesheet is maxed out now.</title><content type='html'>&lt;p class="first_para"&gt;Yes, folks, there &lt;em&gt;are&lt;/em&gt; limits to what I will do. Adding three more images to the stylesheet has made it as large as I can let it be and still sleep at night. I hope none of you are on dial-up, 'cuz this page has just transitioned into &amp;ldquo;sometime next month&amp;rdquo; ETA territory for the fourteen-four crowd.&lt;/p&gt;
&lt;p&gt;Obviously, I need to find a place to put the images where they can load (as binaries) in a reasonable amount of time. I've tried Picassa Web Albums and Flickr, and they're both way too slow for me&amp;mdash;my browser won't load them nine times out of ten. Oh, they'd load just fine as &amp;lt;img&amp;gt; elements (eventually), but they're just decorations, not content, and I've gotten pretty hard-line about semantic purity ever since accessibility has become an issue. So for now the images will remain Base64-encoded on the stylesheet. Sorry about the page size.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-3308313445042329357?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/3308313445042329357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=3308313445042329357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/3308313445042329357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/3308313445042329357'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/12/this-stylesheet-is-maxed-out-now.html' title='This stylesheet is maxed out now.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-8979113318774947619</id><published>2009-11-29T20:51:00.000-05:00</published><updated>2009-11-29T20:58:29.376-05:00</updated><title type='text'>Good enough?</title><content type='html'>&lt;p class="first_para"&gt;So I guess the object of the game here is to post content every once in a while. There have been lengthy periods during  which I simply didn't have the inclination for whatever reason. There have been others when I didn't have the means. And there have been times when I was incapable of thought that extends beyond the basic food and shelter kinds of issues. (That's not about poverty, though my means are modest, to say the least. No, it's been more along the lines of: &amp;ldquo;Oh, yeah. Fork. How do you make it work again?&amp;rdquo;) Even on my best days now, I have more trouble than I really want to admit putting words together, let alone distilling them into glyphs for the perusal and enjoyment of others.&lt;/p&gt;
&lt;p&gt;It may seem a little bit odd, then, for me to say that I've been a little bit busy playing with things webby lately. By default, I've become the designer, administrator and moderator for a small organisation to which I'm not allowed to publicly declare my attachment. I really can't wait to hand off those responsibilities&amp;mdash;what would be a half-hour-a-day pain in the butt to most people is more or less a full-time unpaid job for me. Despite the difficulty, though, I am the only member with any expertise at all in the area, so until I can teach somebody else everything they need to know, my time is booked. To put the task into perspective, imagine doing all of your day-to-day computing tasks as text messages on a garden variety cell phone that won't let you turn off a predictive text feature, and that the predictive text can't be trained. Characters are pseudo-random, may be repeated, and are capitalised at random, and my hands are as likely to type a word that is almost, but not quite, entirely unlike the word I want simply because it starts with the same two or three characters. The backspace and delete keys on my keyboard no longer carry legends. I'm glad I don't actually do this for a living anymore&amp;mdash;I'd need to put in so much of my own time on a project that I doubt I'd make &amp;ldquo;real&amp;rdquo; minimum wage.&lt;/p&gt;
&lt;p&gt;Well, that's enough griping about typing. It's time to gripe about other things. Like, say, the English-made Stanley #9&amp;frac12; block plane I have. I'll be able to keep the body casting and the nosepiece (a part of the sole of the plane that slides, letting one control the size of the throat, or the opening in front of the blade). Everything else needs to be replaced: lever cap, lateral adjustment lever, blade follower, depth screw, and the blade itself. The blade, at least, is available in a couple of different genuine tool steels quite unlike the plasticine the Stanley blade is made from. Everything else needs to be fabricated. Even the body needs to be modified, but at least there's nothing involved that can't be done with a drill, a couple of taps, set screws, some epoxy, a file and a lapping plate.&lt;/p&gt;
&lt;p&gt;Now, I'm well aware that the intricacies of the block plane are not a subject of concern to the historical audience for this blog. The plane qua plane itself really isn't that important, but it is an excellent illustration of the decline and fall of the empire. It's a simple device, just a couple of iron castings with minimal machining, a few sheet metal stampings and a couple of screws. It should be unimaginably easy to get it right, particularly when one takes into account that the device itself hasn't really changed in a century. It's the small corners cut along the way that make my #9&amp;frac12; different from the one my grandfather had. The sheet metal is thinner and softer, the pawls are simply stamped rather than stamped and machined, the edges of stampings are raw where they used to be chased (finished by filing), and everything fits looser so small variations in the parts don't require hand work to make things fit together. That looseness, though, also means that the blade can't stay where you put it, that any adjustments mean a half-dozen back-and-forth operations to eliminate backlash (the &amp;ldquo;give&amp;rdquo; in the screw mechanism) and that the lever cap, which also acts as the handle, will adjust the angle of the blade during normal use. And since the standard blade needs to be sharpened every fifty cuts or so, the whole finicky adjustment process never seems to end.&lt;/p&gt;
&lt;p&gt;None of the changes to the production of this simple machine are, by themselves, fatal to the functioning of the machine. Taken together, though, they mark a triumph of the bottom line over the product and the consumer. A nickel saved here, a penny there, and before too long something that is conceptually foolproof is defeated by genetically-enhanced fools the original designer could not have imagined. I never thought I'd be a grumpy old fart wandering the streets saying &amp;ldquo;they don't make 'em like they used to&amp;rdquo;&amp;mdash;but here we are.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Good enough&amp;rdquo; almost never is. There is little difference between my little block plane and a lot of the code I have seen over the years. The basics are there, there are vestiges of well-thought-out features, but every corner that could be cut has been cut. An occasional user who never encounters a pin knot or difficult grain might never notice the problems, but that doesn't mean they're not there. Guard clauses, type checking, error trapping and correction and logging are as essential to code as tight threads, shims and smooth surfaces are to the functioning of a machine. As coders, we are not making widgets as much as we are making tools to help other people make widgets. Their craftsmanship depends on ours, so let's make it right.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-8979113318774947619?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/8979113318774947619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=8979113318774947619' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/8979113318774947619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/8979113318774947619'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/11/good-enough.html' title='Good enough?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-8430514095666016496</id><published>2009-11-22T12:28:00.005-05:00</published><updated>2009-11-22T12:46:55.201-05:00</updated><title type='text'>With a new life comes a new blog design</title><content type='html'>&lt;p class="first_para"&gt;And it only took me three weeks to make the template work! Which is, I suppose, the point I was trying to make in the last posting. It's not completely finished -- there are a few bits of workbench clutter I'd like to work into the mix -- but I'm still kinda juiced about the result.&lt;/p&gt;
&lt;p&gt;Oh, don't get me wrong -- I'd be happy(ish) with the result even when I was up to the task. What makes this different is that I've managed to get it done without being able to reliably link to images. That's right: there isn't a single link to a picture anywhere. If you aren't using a reasonably up-to-date browser, you won't see any pictures at all, and will probably wonder why I'm all excited about some mediocre typography.&lt;/p&gt;
&lt;p&gt;If you can see the images, it's because your browser understands the data url in CSS. The images are Base64-encoded on the stylesheet, and the stylesheet is on the page, so there are not extra requests. (Well, except for the ads and the navbar.) There is no real advantage here, since the stylesheet has to download with every page request, but if the stylesheet is cached, you can more than make up for the extra weight of the Base64-encoded images by cutting the server requests for background images to zilch.&lt;/p&gt;
&lt;p&gt;Something to keep in mind if you can ever drop support for last year's browser. (Works in current versions of IE8, Firefox and Safari. I haven't tested in Chrome or Opera, but both have a good record for CSS support. Older versions of IE must die, and maybe this trick will help kill 'em.)&lt;/p&gt;
&lt;p&gt;Oh -- the theme is woodworking and design for a reason.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-8430514095666016496?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/8430514095666016496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=8430514095666016496' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/8430514095666016496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/8430514095666016496'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/11/with-new-life-comes-new-blog-design.html' title='With a new life comes a new blog design'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-1156644787008383025</id><published>2009-11-16T05:26:00.002-05:00</published><updated>2009-11-16T06:29:07.862-05:00</updated><title type='text'>When what you are changes...</title><content type='html'>&lt;p&gt;As someone pointed out, I'm a little overdue for my "I'm not dead yet" posting. Part of that has been simply that I haven't felt like I've had much useful to say, and part has been because using the computer has been a frustrating and futile venture at best. Well, at least a part of that has changed over the last few weeks -- I am now in sufficient control of my hands often enough and for long enough to take the odd stab at life online. Some things, though, haven't changed much at all.&lt;/p&gt;
&lt;p&gt;The monster that ate my brain isn't exactly Parkinson's disease, but it's related. Dementia is the primary symptom; the shaking is just incidental. There are drugs to control the shaking, but as with anything that messes with brain chemistry, it takes some trial and error to find the right mix, and it's only been recently that I've regained the ability to type -- or to walk without having to think through the mechanics of each step, for that matter. There's not a lot anybody can do about the dementia, though.&lt;/p&gt;
&lt;p&gt;I still know enough about Notes, Java, PHP, JS and HTML that I ought to be able to make a living at it, but my "scratchpad" memory is so thoroughly shot that I can get lost in a ten-line function. That continues to get worse as time passes, so my life as a programmer (or as an answer man on the developerWorks fora) has effectively been over for quite a while now. It was a blast while it lasted, but now even the most trivial work is a source of anger and frustration. I don't need that, nor would I want to expose anyone I worked with to it. And since I have no way of predicting when or if I'm going to have a good day (that is, a day when my body and mind both show up, and when I'm not comatose), normal employment at something less intellectually demanding is also a pipe dream.&lt;/p&gt;
&lt;p&gt;Merely accepting my life as it is today, though, seems to have made me something of a local inspirational character, particularly within the recovery community. I sometimes wish there was a way to monetize un-unhappiness (although I have to admit to a steep decline in my own spending on coffee, since that nectar seems to be the traditional offering when the troubled seek solace from the guru). It's not that I enjoy having ever more restrictive limits imposed on me, but when life offers you a choice of laughing or crying one finds that the crying gets really old really fast.&lt;/p&gt;
&lt;p&gt;One thing I've found I have been able to do adequately is work with wood. By adequately, I mean I'm only scarring my fingers up badly -- I haven't actually removed any. It's all hand tools (except for the drill, since making a small hole that is actually round with a hand-cranked drill or a brace and bit is almost impossible). And I have to say that I'm enjoying the hell out of it, even when I'm screwing up. It's a quiet and solitary pursuit, which frees me from the anxiety that comes from having all of my perceptual filters turned off. The smell is intoxicating. I know by the sound that I have planed a perfect shaving half a cell thick without having to look (and when the grain has reversed on me and there has been a terrible tear-out). There's the mirror shine of wood that has been pared by a chisel that's been sharpened keener that the average razor. And don't get me started on the miracle that is the Japanese saw.&lt;/p&gt;
&lt;p&gt;So Stan is now a fine cabinetmaker. With any luck at all, I may actually make enough money to pay for the tools. For those of you who may be unaware, the good toolmakers of the past have all gone the way of the dodo. There are still tools sold under venerable names like Stanley, Record and Marples, but they're, well, crap. Worse than crap, really. Power tools are doing much better -- but a fellow in my condition can't afford to be playing with anything where a small slip can result in a big injury. So I'm stuck paying three hundred bucks to a &lt;a href="http://www.leevalley.com" title="Lee Valley and Veritas Tools"&gt;small but excellent toolmaker&lt;/a&gt; for something I would have been able to buy for fifty bucks (or, rather, yesterday's equivalent of today's fifty bucks) when I was a kid. Used? The ones that survived have become collectors' items and sit in places of honour on shelves. Kinda like what happened to those antiquated Leica cameras.&lt;/p&gt;
&lt;p&gt;In any case, I'm having fun turning big sticks into sawdust, shavings and custom convertible multifunction furniture for small spaces. And I'm pretty good at convincing people that setbacks are only defeats if they surrender. But I am not, and will never again be, a techie.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-1156644787008383025?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/1156644787008383025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=1156644787008383025' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/1156644787008383025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/1156644787008383025'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/11/when-what-you-are-changes.html' title='When what you are changes...'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-5489568438092784912</id><published>2009-05-08T04:14:00.003-04:00</published><updated>2009-05-08T04:19:42.838-04:00</updated><title type='text'>A Must-Read for Geeks. I MEAN Must.</title><content type='html'>&lt;p&gt;&lt;a href="http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html"&gt;A Brief, Incomplete, and Mostly Wrong History of Programming Languages&lt;/a&gt; (via &lt;a href="http://news.ycombinator.com/"&gt;Hacker News&lt;/a&gt;). Beyond funny.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-5489568438092784912?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/5489568438092784912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=5489568438092784912' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/5489568438092784912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/5489568438092784912'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/05/must-read-for-geeks-i-mean-must.html' title='A Must-Read for Geeks. I MEAN Must.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-7709967086786201295</id><published>2009-02-13T04:14:00.002-05:00</published><updated>2009-02-13T04:27:37.916-05:00</updated><title type='text'>Digging for some words</title><content type='html'>&lt;p&gt;Some of you may have noticed that I am something of a naive polymath. Or, at least, that I seem to have accumulated a lot of esoteric and largely useless knowledge for a guy who never quite got around to finishing high school. I guess I have a sort of &lt;a href="http://en.wikipedia.org/wiki/Faust" title="Wikipedia entry for Faust"&gt;Faust&lt;/a&gt; complex, but I've never been willing to commit to more than hocking my soul. (And to quash any rumours before they start, let it be known that I never failed to redeem the ticket.) I just gotta know, you know?
Lately I have become rather obsessed with linguistics. I thought I knew a bit about the subject. I mean, my military career in communication electronics got me into &lt;a href="http://en.wikipedia.org/wiki/Information_Theory" title="Wikipedia entry on Information Theory"&gt;information theory&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Claude_Elwood_Shannon" title="Wikipedia entry on Claud Shannon"&gt;Shannon&lt;/a&gt; led to &lt;a href="http://en.wikipedia.org/wiki/Natural_language_processing" title="Wikipedia entry on Natural Laguage Processing"&gt;NLP&lt;/a&gt;, which eventually led to &lt;a href="http://en.wikipedia.org/wiki/Noam_Chomsky" title="Wikipedia entry on Noam Chomsky"&gt;Chomsky&lt;/a&gt; (I compulsively followed the links before Sir Tim gave us the web), and ol' Noam was the be-all and end-all of linguistic theory for a very long time. It all made perfect sense. Then I began to experience &lt;a href="http://en.wikipedia.org/wiki/Aphasia" title="Wikipedia entry on Aphasia. Imperfect at best."&gt;aphasia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That hasn't shown up in my public life, and that makes sense. There's little point in trying to blog, post cogent comments or answer technical queries when you can't glue the words together, either because the words or the glue is missing, and I haven't has anything like a hot potato in my inbox for quite a while. Even picking up the phone is pointless at times. Only my closest face-to-face friends have seen what I have sometimes become, and then only when I thought I was well enough at the beginning of a long conversation.&lt;/p&gt;
&lt;p&gt;If you know how language works, you ought to know how it breaks. One ought to be able to predict modes of failure. If one part of the brain gets stuck, you might expect to lose structure; if another goes, then you might find it difficult to fish in the big bucket o' words for the right one. What I have been experiencing doesn't jibe well with what I knew.&lt;/p&gt;
&lt;p&gt;Let's take the vocabulary failure instance first (in transmissive rather than receptive mode). Sick or healthy, we have all had occasions where the exact word we want to use seems to be just slightly out of our grasp. We know we know it (and we know that we'll wake up at about 2:37 next Tuesday morning with the word frontmost in our consciousness, a general sense of urgency about the word, and absolutely no idea why it's so damned important), and can usually slip in a substitute after a short interjectory &amp;quot;uh&amp;quot; (those outside North America may wish to read that as &amp;quot;er&amp;quot;). No harm, no foul. I thought that a pathological vocabulary slip would work much the same way, but I found that my indexing failure was somewhat more catastrophic. For instance (and this is contrived for illustrative purposes) if I were to try to name a particular shade of red and missed, I would find that it wasn't just &amp;quot;carmine&amp;quot; that was missing, but everything related to crimsons. And if I tried to climb back up the tree, I'd find that &amp;quot;red&amp;quot; was gone, along with &amp;quot;colour&amp;quot;, &amp;quot;shade&amp;quot; and &amp;quot;tone&amp;quot;. Hell, I couldn't even name things that were red to get the analogy across. Have you ever tried to make an onamatapoeic noise for an abstract concept? I have. I found that my mind is organised very much along the lines of Roget's classic thesaurus (the big one that's conceptually organised, not the little alphabetical list of synonyms they sell to schoolchildren) &amp;mdash; when things go missing, great conceptual swaths disappear, not just words. Mainstream linguistic theory doesn't suggest anything like that level of coupling.&lt;/p&gt;
&lt;p&gt;I am still trying to find a way to express the more structural failure modes. That will be harder because the recording of the experience in my brain was made through the filter of the failure itself. I'd love to tell me what was going on, but it's going to take a while to wade through an unorganised bucket of words and impressions that are more Rorschach than Rembrandt. The trick will be in teasing out the actual experience, uncoloured by pet theories or preconceived notions.&lt;/p&gt;
&lt;p&gt;As always, the best opportunity to examine how a complex system works is to examine closely what happens when a part of it breaks. As a person who has experienced the breakage, was aware of it at the time, who can describe the phenomenon from the victim's perspective, and who has witnesses who can tell me what they saw &amp;quot;in the wild&amp;quot; (as opposed to in contrived interviews), I am in what seems to be a unique position to contribute to the knowledge pool.&lt;/p&gt;
&lt;p&gt;Or maybe I'm just looking for a new way to feel important. Whatever. It makes me happy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-7709967086786201295?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/7709967086786201295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=7709967086786201295' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/7709967086786201295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/7709967086786201295'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/02/digging-for-some-words.html' title='Digging for some words'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-9061386654947685789</id><published>2009-02-11T17:34:00.002-05:00</published><updated>2009-02-11T18:00:31.402-05:00</updated><title type='text'>It's been a long, long, long time...</title><content type='html'>&lt;p&gt;&amp;hellip; but a good blogger ought to update at least once every seven or eight months or so, I suppose.&lt;/p&gt;
&lt;p&gt;Fact of the matter is that I haven't had a lot to say. Or, rather, that I haven't had the language to say a lot for some time. Things appear to be getting better, at least in terms of written language &amp;mdash; it still requires the patience of a saint to talk with me in the real-time audio sphere &amp;mdash; but there appears to be a persistent connection to some level of grammar now, so I am sending out a signal in hopes of receiving an ACK from somewhere.&lt;/p&gt;
&lt;p&gt;I've learned a lot about myself in the last few months. Take away an intellectual's intellect, and he's left wondering who he is. (Sometimes literally. That's every bit as scary as it sounds.) Take away his ability to communicate, to express himself, and (more importantly) to read and understand others, and the question turns to what it means to be human. I hope to take you on a guided tour of my explorations over the next little while, for as long as I can stitch my thoughts together coherently. I am not taking this for granted; there have been too many times when medication has caused a short-term improvement in my symptoms only to fail again in a couple of weeks. Let's see where this goes.&lt;/p&gt;
&lt;p&gt;Physically, I'm no better, but that seems utterly unimportant compared to being able to walk a block to the grocery store without getting lost. I'll take the trade-off, thanks.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-9061386654947685789?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/9061386654947685789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=9061386654947685789' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/9061386654947685789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/9061386654947685789'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2009/02/its-been-long-long-long-time.html' title='It&apos;s been a long, long, long time...'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-4161851323639728392</id><published>2008-07-10T14:54:00.002-04:00</published><updated>2008-07-10T15:10:34.314-04:00</updated><title type='text'>Some Answers?</title><content type='html'>&lt;p&gt;Hmmm. Seems like it may be Parkinson's after all. Let's see what L-dopa and a good, old-fashioned acetylcholinesterase inhibitor do for me. It would be nice to have both my mind and body back again -- I've kinda missed having them around for the ride.&lt;/p&gt;
&lt;p&gt;Have you ever had a project where you have written every line of code, and know what everything is doing right down to the iron, yet can't figure out why the whole system won't play nice together? Medicine can be a lot like that. I've had neurologists measuring this, scanning that and analyzing the other thing for quite a while now. It took a GP to put it all together, blow the whistle, throw the flag and issue a fifteen-yard penalty for excessive bullshit in the backfield. Now that everybody is re-focused, we ought to be able to make a bit of progress.&lt;/p&gt;
&lt;p&gt;On a lighter note, today marks exactly twenty-three years since my last drink. You know, this diagnosis thingy might just turn out to be the best birthday present I've had in a very long time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-4161851323639728392?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/4161851323639728392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=4161851323639728392' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/4161851323639728392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/4161851323639728392'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2008/07/some-answers.html' title='Some Answers?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-698316909812749607</id><published>2008-05-20T16:19:00.003-04:00</published><updated>2008-05-20T17:09:08.684-04:00</updated><title type='text'>Like butter scraped over too much bread</title><content type='html'>&lt;p&gt;Today, I was supposed to attend the Toronto edition of LotuSphere Comes To You. I'd been looking forward to the event, hoping to catch a glimpse of some of what's to come, and maybe get a bit of that convention high that happens when a bunch of enthusiasts get together for a common purpose. Sadly, that was not to happen. Today was, instead, one of those increasingly frequent days when my arms and legs simply would not do what I wanted them to do when I wanted them to do it.&lt;/p&gt;
&lt;p&gt;As much as I hate to admit it to myself, I have reached the point where I can no longer look after myself in any reasonable sense of that phrase. Yes, I have been working with the local social services agencies to try to find a supported living situation, but I've been fighting the process as well. I'm just forty-seven years old and most of the time my self-image is that of someone who hasn't quite gotten to thirty yet. I don't feel like someone who is ready for the nursing home. And then I run into a stretch of time when I can't dress or feed myself, and I feel so effing helpless.&lt;/p&gt;
&lt;p&gt;Contrary to what may seem to be the overall tone of this posting, my spirits are pretty high for the most part. As far as I can, I've been a pretty active participant in this life of mine, and I've been able to maintain some sense of usefulness. When I can, I've been picking some of the low-hanging fruit on the &lt;a href="http://www-10.lotus.com/ldd/nd6forum.nsf/"&gt;Notes and Domino 6 &amp;amp; 7 Forum&lt;/a&gt;  (although I would rather be taking on the bigger problems), and I still have little trouble finding people to work with who are worse off than I am in the wider world. It's getting a little harder, though, since I can no longer really make any commitments to be anywhere or do anything in the future. Life really has become a one day at a time affair, so I have to do what I can &lt;strong&gt;right now&lt;/strong&gt; since there may not be a chance later.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-698316909812749607?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/698316909812749607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=698316909812749607' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/698316909812749607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/698316909812749607'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2008/05/like-butter-scraped-over-too-much-bread.html' title='Like butter scraped over too much bread'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-2437343362837462749</id><published>2008-02-18T17:53:00.000-05:00</published><updated>2008-02-18T17:55:23.260-05:00</updated><title type='text'>Another Good Idea Jammed</title><content type='html'>&lt;script type="text/javascript"&gt; 
&lt;!--
inwidth = 500;inheight = 320;id = "5BD1CBCCEB7B8826862573F300734FBE";//--&gt;
&lt;/script&gt; 
&lt;script type="text/javascript" 
src="http://ideajam.net/IdeaJam/P/ij.nsf/ideajamblogthis.js"&gt; 
&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-2437343362837462749?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/2437343362837462749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=2437343362837462749' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2437343362837462749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2437343362837462749'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2008/02/another-good-idea-jammed.html' title='Another Good Idea Jammed'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-720146330479536854</id><published>2008-01-23T07:05:00.000-05:00</published><updated>2008-01-23T07:08:32.971-05:00</updated><title type='text'>News from Lotusphere '08</title><content type='html'>&lt;p&gt;Okay, I'm not there. I'm not bitter or anything -- really, I'm not; I'm doing a lot better, but there's just so much THERE there this year (again) that I'd probably look like the sci-fi robot thinking about the Cretan paradox right about now if I were there. I can read the news releases and blogs and whatnot, though, and wrap my tiny little mind around the summaries.&lt;/p&gt;
&lt;p&gt;So what's really big? Notes on Ubuntu is going to be big from a marketing perspective, I'd think. The Designer for 8.5 looks to be a bigger deal for folks like me, what with the Eclipse-born syntax hinting and class browser and so on. Foundations? Been asking for something like that for a while (see the ND6 beta forum). Bluehouse? Sounds good to me. Real integration with SAP? A genuine off-platform migration stopper, and a great alternative to Outlook/Exchange for those thinking of having their business SAPped. But all of that stuff is merely good news. There is bigger and better.&lt;/p&gt;
&lt;p&gt;No, the biggest news by far in everything I've read is something that's barely gotten a mention: the xPages design element. And it's not so much xPages as a whole, but the &lt;strong&gt;server-side JavaScript&lt;/strong&gt; it allows. A language with first-class functions. On Domino. I hope I'm not dreaming.&lt;/p&gt;
&lt;p&gt;Yeah, I know that we've gotten accustomed to seeing JavaScript in the browser. It kinda seems like a toy language to most developers, but that's because they're not doing a whole lot with it. Validate this field, update that one, throw some text over here and change the colour of that thingy over there. Even AJAX, all by itself, doesn't seem like much to get excited about -- unless you look under the hood of those plug-in libraries you're using.&lt;/p&gt;
&lt;p&gt;Most of us have never programmed &lt;em&gt;in&lt;/em&gt; JavaScript to any extent. We may be using JavaScript to get the job done, but we're mostly writing Basic, C or Java code using the JS vocabulary. JavaScript isn't a miniature Java, it's Haskell in disguise. Well, maybe that's going a bit overboard (can you say "side effects"?), but it's not too far from the truth, either. I can't wait to see what the implementation looks like. I wonder if they'll step it up to ECMAScript 4 at some point.&lt;/p&gt;
&lt;p&gt;Now if we could just get a Rhino-style JS engine for agents....&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-720146330479536854?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/720146330479536854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=720146330479536854' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/720146330479536854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/720146330479536854'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2008/01/news-form-lotusphere-08.html' title='News from Lotusphere &apos;08'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-690348660845263714</id><published>2007-12-30T03:24:00.000-05:00</published><updated>2007-12-30T03:30:33.012-05:00</updated><title type='text'>IdeaJam -- I Needs This</title><content type='html'>&lt;script type="text/javascript"&gt; 
&lt;!--
inwidth = 500;inheight = 320;id = "4B991FF54F6C104D862573B0001487E5";//--&gt;
&lt;/script&gt; 
&lt;script type="text/javascript" 
src="http://ideajam.net/IdeaJam/P/ij.nsf/ideajamblogthis.js"&gt; 
&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-690348660845263714?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/690348660845263714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=690348660845263714' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/690348660845263714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/690348660845263714'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2007/12/ideajam-i-needs-this.html' title='IdeaJam -- I Needs This'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-7740890331973658813</id><published>2007-12-25T22:24:00.000-05:00</published><updated>2007-12-26T13:01:55.207-05:00</updated><title type='text'>A Tale of Two Christmasses</title><content type='html'>&lt;p&gt;It was the best of times, it was the worst of times.&lt;/p&gt;

&lt;p&gt;Let's talk about the worst first, shall we? I had planned a nice Christmas dinner with friends, but things worked out just a little bit differently. I spent my Christmas in the emergency department of St. Michael's Hospital after having fallen unconscious in the shower for a couple of hours. There was much testing and poking and prodding and removal of blood and insertion of intravenous lines. After about seven hours, the conclusion was that I was merely dehydrated -- two and a half litres of saline and a "lovely" "roast" "turkey" hospital meal later, I was discharged to the ongoing care of my general practitioner, cardiologist and neurologist. I should be fine and dandy, but it would be nice to know why I was a half-gallon (Imperial) short of a full tank.&lt;/p&gt;

&lt;p&gt;Then there was the best of times. It seems a few members of our dear Lotus community got together to give me a Christmas present that will see a lot of use, and which should go a long way towards getting my life back on track. I am composing this entry on a wonderful new Thinkpad T60 with all the trimmings -- 2 GHz Core2Duo, 2 GB RAM, 120 GB hard drive, mungo road-warrior battery, DVD/CD-RW combo optical drive, XP vice Vista, et cetera, et cetera, et cetera (always loved that line when Yul Brynner said it). It actually runs some of my favorite Eclipse-based programs without seeming like a VT-101 emulator (complete with wait-for-it screen echo). Aptana goes like stink, and there's a Lotus offering that failed miserably on the borrowed PIII-800 with 128 MB I should be able to play with now. I'll be toting that around in what is definitely the best-organised backpack-style laptop case I've ever run across. Data backup (and files of questionable business use) will go to a dead-quiet 500 GB LaCie external USB 2.0 HDD. And I'll be printing and scanning on an HP OfficeJet 5610 MFP. Pretty damned sweet setup altogether, and a lot more than I could ever have imagined.&lt;/p&gt;

&lt;p&gt;I have to thank the following people for their contribution and generousity:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Eileen Fitzgerald
&lt;li&gt;Kevin Pettitt
&lt;li&gt;Rob Novak
&lt;li&gt;John Head
&lt;li&gt;Francie Whitlock
&lt;li&gt;Vince Schuurman
&lt;li&gt;Christopher Byrne
&lt;li&gt;Andre Hausberger
&lt;li&gt;Mac Guidera
&lt;li&gt;Bill Buchan
&lt;li&gt;Charles Robinson
&lt;li&gt;Richard Schwartz
&lt;li&gt;Declan Lynch
&lt;li&gt;Julian Robichaux
&lt;li&gt;Ben Langhinrichs
&lt;li&gt;Ben Poole
&lt;li&gt;Warren Elsmore
&lt;li&gt;Joe Litton
&lt;li&gt;Thomas "Duffbert" Duff
&lt;li&gt;Jess Stratton
&lt;li&gt;Vitor Pereira
&lt;li&gt;Rob McDonagh
&lt;li&gt;Bruce Elgort
&lt;li&gt;Gregg Eldred
&lt;li&gt;Pete McPhedran
&lt;li&gt;Paul Mooney (added -- thanks, Ed)
&lt;li&gt;and, of course, Ed Brill
&lt;/ul&gt;
&lt;p&gt;Your gift to me has been the basis for a new life. My gift to you will be what I do with that life. There's still a bit of cleaning up of the past to do, but it's starting to look like I won't just find another mess underneath.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-7740890331973658813?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/7740890331973658813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=7740890331973658813' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/7740890331973658813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/7740890331973658813'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2007/12/tale-of-two-christmasses.html' title='A Tale of Two Christmasses'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-8359653524527363334</id><published>2007-09-19T00:51:00.000-04:00</published><updated>2007-09-19T00:52:50.728-04:00</updated><title type='text'>More than a nerd. Really.</title><content type='html'>&lt;blockquote&gt;Let&amp;apos;s break out the booze&lt;br /&gt;And have a ball&lt;br /&gt;If that&amp;apos;s all&lt;br /&gt;There is...&lt;/blockquote&gt;
&lt;p&gt;I&amp;apos;ve spent a lot of time lately contemplating the larger meaning of life. Most of that has been in the context of the recovery community, and that&amp;apos;s been because a handful of poor lost souls have gathered under my wing looking for guidance. I &lt;em&gt;could&lt;/em&gt; let something like that go to my head, but if I choose to believe that they&amp;apos;ve decided that it is far better to learn from my mistakes than to make their own, I can maintain some of the humility that keeps me alive.&lt;/p&gt;
&lt;p&gt;Writing about this part of my life here hasn&amp;apos;t been an easy decision. There is a very important tradition in the Twelve Step community, all springing from the A.A. experience, that says we need to maintain our anonymity at the level of press, radio and films. A blog certainly counts, since it is as public as a community newspaper or a low-power broadcast, so bringing this part of my life to light is, strictly speaking, a no-no. There are a couple of reasons why we value anonymity so highly. The first, and most obvious, is that there is still a stigma attached to addiction, and newcomers need some assurance that nobody will &amp;quot;out&amp;quot; them. A little less obvious is our need to divorce the program of recovery from the people. We are all fallible, and the validity of the twelve steps as a program of recovery should not be judged on the success, failure, flaws or foibles of any one person.&lt;/p&gt;
&lt;p&gt;My readers, though, are not the public at large for the most part; they are friends I have made, mostly in the professional community. Since I have been both occupied and preoccupied with my work in the recovery community, almost to the exclusion of everything else, that leaves very little to tell my online friends. I&amp;apos;ll address the anonymity issue, then, by stating that I do not speak for A.A. or any other Twelve Step community, that my opinions are entirely my own, and that anyone foolish enough to take anything that might look like advice to heart without first consulting a sponsor or another member of your particular Fellowship who is familiar with your situation is likely to be setting him/herself up for calamity.&lt;/p&gt;
&lt;p&gt;In any case, I have taken up the formal and informal sponsorship (mentorship) of a number of younger folk. Twentysomethings, mostly, but all are facing a similar problem &amp;mdash; what to do after the plug&amp;apos;s in the jug.&lt;/p&gt;
&lt;p&gt;Addiction&amp;apos;s a son-of-a-bitch. Nobody who has ever watched a loved one throw away a perfectly good life, behaving in the most bizarre and inexplicable ways, all the while failing to see the glaringly obvious signs of impending death, can have much of an argument with that. There is at least one proven solution, though, for the people who are willing to do the things that have to be done. It does have one small problem, though.&lt;/p&gt;
&lt;p&gt;The Twelve Steps of Alcoholics Anonymous &lt;em&gt;are&lt;/em&gt; the Program, but the implementation of those steps is largely based on the accumulated experience of the millions of people who have tried, successfully and otherwise, over the years to get and stay sober. Unfortunately, most of that wealth of wisdom is aimed at older folks, people in their forties and older who make up the vast majority of the membership of the A.A. fellowship. That is unavoidable. Young people with fully-developed drinking problems tend to die before they reach out for help, and far too many of the few who manage to reach the meeting rooms look around at the sea of grey hair and decide that they&amp;apos;re in the wrong place for them. The few who do stay are mostly at the mercy of well-meaning people who simply can&amp;apos;t fathom looking forward to fifty or more years of sober living.&lt;/p&gt;
&lt;p&gt;That, I think, is where I come in. Although my drinking and drugging progressed very rapidly from zero to severe, I have been sober nearly half of my life now. I have been through enough careers in sobriety to fill a half-dozen lives, and I've had my share of ups and downs along the way. I also remember what it was like to have a couple of years of sobriety under my belt, attending a dozen or more meetings a week, keeping in the constant company of the &amp;quot;winners&amp;quot; and thinking to myself, &amp;quot;is that all there is?&amp;quot;&lt;/p&gt;
&lt;p&gt;That&amp;apos;s the world in which my new prot&amp;egrave;g&amp;eacute;s live. All the larger A.A. community offers them is a way to cling to life. I&amp;apos;m not knocking that at all &amp;mdash; first things first, after all, and keeping the inevitable end toward which active alcoholism leads at bay is Job One &amp;mdash; but try to imagine being in your early twenties and thinking that simply not dying is as good as it gets. Doesn't leave a lot to look forward to, does it? That&amp;apos;s a danger point for a lot of people.&lt;/p&gt;
&lt;p&gt;So what&amp;apos;s the secret to staying sober over the long haul? Simple. One merely needs to live a meaningful, purposeful life. Our collective experience tells us that a life led in service of a higher purpose rarely needs artificial enhancement to sustain. Ah, but there's the rub. What, exactly, does that mean? A.A. offers one solution in the box, and that is to work with other alcoholics. It works, of course, but it is a fall-back course of action, something that we do as an adjunct to an otherwise full life. Our &amp;quot;textbook&amp;quot;, the book from which the fellowship of Alcoholics Anonymous takes its name, was written in 1939 and addressed to men of a certain age who were assumed to have families to look after and so forth. There is little in the book for people who have been living in oblivion since adolescence, and who still don't know what they want to be when they grow up.&lt;/p&gt;
&lt;p&gt;It is tempting to think in terms of a life devoted to the service of ones fellow man, and there are some people who are of a temperament to set off on that journey. They are able to derive all of the satisfaction they need from the contribution they make to the lives of others. Most of us, though, are not of that temperament, and will eventually find ourselves wondering what&amp;apos;s in it for us. While we may look like we are leading the lives of saints, we are actually seething cauldrons of resentment. Sooner or later we &lt;strong&gt;will&lt;/strong&gt; boil over.&lt;/p&gt;
&lt;p&gt;Most of us understand that we are not saints. Looking for something else, we dive into the kinds of lives and careers that seem to work so well for the normal folk around us. We are determined to be successful, believing that we can use the rewards of our success to develop and support families and maybe, just maybe, ease the way for some of the less fortunate out there. Some of us will dive so deep into that life that we become workaholic &amp;mdash; slaves to our visions of success. Others will seem to find a balance for a while. Still young, and with a bit of sobriety under our belts, we may delude ourselves into believing we are just like normal folk. We forget about the things we need to do to keep ourselves alive. Before you know it we start trying to drink like normal folk. The lucky ones live to tell the tale. The lucky ones are also few and far between.&lt;/p&gt;
&lt;p&gt;The real answer is as individual as we are ourselves. The Program tells us to seek guidance from a higher power (or &amp;quot;God &lt;em&gt;as we understood Him&lt;/em&gt;&amp;quot;, to quote the Eleventh Step). That, in itself, proves difficult for a lot of people. The word &amp;quot;God&amp;quot; carries with it a lot of baggage, as I&amp;apos;m sure you can imagine. Whether one is a follower of a religious denomination, an agnostic, atheist or what have you, the word itself will bring to mind a wealth of images, not all of them particularly useful.&lt;/p&gt;
&lt;p&gt;As a sponsor (or mentor, if you prefer), it is not my job to &lt;strong&gt;be&lt;/strong&gt; that higher power, but to help others to get in contact with the small, quiet voice within. Trinitarian Christians would call it the Holy Spirit. Jungian psychologists would call it the collective unconscious. Some new-agers might call it Gaia. Douglas Hofstadter would likely call it Ant Hillary (if he could suppress his prejudices long enough to realise that he proposed a perfectly plausible explanation for a God entity in &lt;cite&gt;G&amp;ouml;del, Escher, Bach&lt;/cite&gt;). I am not particularly concerned with what to call it; I merely need to make it accessible.&lt;/p&gt;
&lt;p&gt;In that spirit, I have been constructing and deconstructing that which connects us all. Dealing with hard heads has its advantages in this kind of game &amp;mdash; I&amp;apos;ve reached a point where I can make mincemeat of the likes of Richard Dawkins (whose own arguments against anything beyond conscious interpersonal connection are based entirely upon prejudice and emotion). I do not claim to be able to prove the existence of a Creator God (and believe such proof to be impossible). I can, however, present a pretty convincing argument for an extrapersonal moral authority &lt;em&gt;and&lt;/em&gt; for a mechanism by which those three-question-mark coincidences in life might arise.&lt;/p&gt;
&lt;p&gt;The hard part now is arranging the arguments (and the background behind them) into a single, coherent work. I guess that the whole &amp;quot;nerd god&amp;quot; thing just might be true, since I have somehow managed to work talk of black holes into the text. (I was hoping that my engaging personality, my sense of humor willingness to burst into song at the drop of a hat, and my interest in the well-being of individual humans and mankind as a whole might have lost me a few points on the dorky/awkward scale.) Because the book is aimed at the recovery community, it will be published under a pseudonym: Oolon Colluphid. Some of you might know why.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-8359653524527363334?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/8359653524527363334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=8359653524527363334' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/8359653524527363334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/8359653524527363334'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2007/09/more-than-nerd-really.html' title='More than a nerd. Really.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-2620225379817126818</id><published>2007-09-12T18:43:00.000-04:00</published><updated>2007-09-12T18:49:04.935-04:00</updated><title type='text'>This is better?</title><content type='html'>&lt;a href="http://www.nerdtests.com/nt2ref.html"&gt;
&lt;img src="http://www.nerdtests.com/images/badge/nt2/b86f47ac1a7fd6ea.png" alt="NerdTests.com says I'm a Mega-Dorky Nerd God.  What are you?  Click here!"&gt;
&lt;/a&gt;
&lt;p&gt;Via &lt;a href="http://smokey.rhs.com/web/blog/poweroftheschwartz.nsf/d6plinks/RSCZ-76W7CZ" title="The Power of the Schwartz"&gt;Rich&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-2620225379817126818?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/2620225379817126818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=2620225379817126818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2620225379817126818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2620225379817126818'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2007/09/this-is-better.html' title='This is better?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-5755865595419249841</id><published>2007-07-31T17:04:00.000-04:00</published><updated>2007-07-31T17:06:42.781-04:00</updated><title type='text'>I'm not sure I like this, but...</title><content type='html'>&lt;a href="http://www.nerdtests.com/nq_ref.html"&gt;
&lt;img src="http://www.nerdtests.com/images/badge/0be1f02317a0472f.gif" alt="I am nerdier than 100% of all people. Are you a nerd? Click here to find out!"&gt;&lt;/a&gt;
&lt;p&gt;Thanks for the link, &lt;a href="http://www.ns-tech.com/blog/geldred.nsf/d6plinks/GELD-75GHRL" title="This was Gregg Eldred's fault"&gt;Gregg&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-5755865595419249841?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/5755865595419249841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=5755865595419249841' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/5755865595419249841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/5755865595419249841'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2007/07/im-not-sure-i-like-this-but.html' title='I&apos;m not sure I like this, but...'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-2933962784216535984</id><published>2007-07-02T19:18:00.000-04:00</published><updated>2007-07-02T19:19:19.440-04:00</updated><title type='text'>Mired in quicksand</title><content type='html'>&lt;p&gt;Okay, I lied. I didn't know it at the time, but it undeniably so.&lt;/p&gt;
&lt;p&gt;I have never particularly liked delving into someone else's code. There's always that feeling of disorientation that comes from looking at a landscape that was apparently painted by the love child of Pablo Picasso and Salvador Dali while on heavy-duty psychedelic drugs, and that's when the code is fundamentally sound. Let's face it, at a certain level, code is more a matter of art than engineering, and each of us has our own aesthetic. My artistic sensibilities are easily offended, but I can usually make allowances for taste by gritting my teeth and muttering &amp;quot;chacun a son gout&amp;quot; under my breath.&lt;/p&gt;
&lt;p&gt;The code I was going to &amp;quot;fix&amp;quot;, though, is diseased to the root. Patternitis, and a fatal case of it, I'm afraid. I tried a simple Fa&amp;ccedil;adectomy, but I found that the unnecessary wrappers had metastacised throughout the entire body. Why do people insist on doing this:&lt;/p&gt;
&lt;pre&gt;
function proprietary_do_something($param) {
 return generic_do_something($param);
 }
&lt;/pre&gt;
&lt;p&gt;Now, that kind of thing might be forgivable if one had created, say, a fa&amp;ccedil;ade interface for a database connection and a particular database's class happened to correspond exactly to the interface. There is no trace of that kind of foresight here. For database activity, one basically has a choice between mySQL. And there is neither interface nor class to be seen &amp;mdash; nothing but proprietary wrappers around native PHP functions. I have to be generous here and try to convince myself that the wrappers had once been necessary, but the fact that the only difference between the proprietary method names and the built-in ones is a prefix leads me to believe otherwise.&lt;/p&gt;
&lt;p&gt;Then there are the multiple if statements in a single function that repeatedly test exactly the same conditions. To the Notes folk out there, many of these instances are the equivalent of:&lt;/p&gt;
&lt;pre&gt;
@If(
 @IsError(@DbLookup("":"NoCache"; ""; "view"; key; 2);
 "";
 @DbLookup("":"NoCache"; ""; "view"; key; 2))&lt;/pre&gt;
&lt;p&gt;Yep, they're not just doing the same test over and over, but they're doing the same &lt;em&gt;high-cost&lt;/em&gt; test over and over. Now, I ain't no PHP guru, but I'd'a thunk that doing the test &lt;em&gt;once&lt;/em&gt; and setting a flag variable based on the result, then basing your conditionals on the flag woulda been the way to go. But what do I know? The last time I did anything in PHP, Rasmus Lerdorf was still in Toronto and PHP stood for &amp;quot;Personal Home Page Tools&amp;quot;.&lt;/p&gt;
&lt;p&gt;So the code that I once thought not too bad (if one ignored the HTML) goes from being the backbone of my project to a mere sketch of the functionality that I'll need. I'll grant that it works, but merely working is not enough. This thing does &amp;quot;thumbnails&amp;quot; by setting the width and height attributes on full-sized images (when PHP can easily do image resizing/resampling &amp;mdash; not fast enough to create them on the fly, but they can be created and stored when the big image is uploaded and modified when the application is reconfigured). Even the database schema needs help (said the Notes guy), and so I'll need to include a conversion utility with the &amp;quot;installer&amp;quot;. I kinda feel like Mike Holmes (of &lt;cite title="Television show - HGTV Canada"&gt;Holmes on Homes&lt;/cite&gt;, whose claim to fame is fixing criminally shoddy home renovation work).&lt;/p&gt;
&lt;p&gt;I've got a lot more work to do, but at least I can take some pride in what I'm doing. Shouldn't we all?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-2933962784216535984?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/2933962784216535984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=2933962784216535984' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2933962784216535984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2933962784216535984'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2007/07/mired-in-quicksand.html' title='Mired in quicksand'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-2936138923926256373</id><published>2007-06-13T06:50:00.001-04:00</published><updated>2007-06-13T06:52:22.545-04:00</updated><title type='text'>Let's see ... where were we?</title><content type='html'>&lt;p&gt;Well, it seems I'm starting to get some of my smarts back. There's still the occasional bad day, but things are nowhere near where they were just a couple of months ago. The biggest problem now is an annoying tremulousness, but it's nothing I can't learn to live with.&lt;/p&gt;

&lt;p&gt;Anyhow, I'm at the point where I can start to take on the occasional bit of work. Unfortunately, that work probably won't have a whole lot to do with Notes or Domino for a while &amp;mdash; my health isn't yet good enough to take on the challenges of all-day, every day slogging, so I kinda have to stick to the world of lower expectations for a while yet. These days, I'm busy building online stores with PHP and mySQL. In a way, I'm glad for the opportunity to work on a different platform. It gives me the chance to see for myself that Domino developers, as a class, are not the only ones ignoring web standards for the sake of convenience.&lt;/p&gt;

&lt;p&gt;This new adventure started when I was asked to set up a small site using the osCommerce open-source online store package. I thought it was going to be the proverbial piece of cake &amp;mdash; FTP the package up, run the database installer to create the mySQL tables, configure some images and colours &amp;mdash; right up until the point where I examined the underlying HTML. Don't get me wrong. The overall quality of the osCommerce package is pretty good, at least as far as the PHP and database code goes. But, my God(!) the HTML makes me shiver.&lt;/p&gt;

&lt;p&gt;One of the things I was asked to do for the first site was to see about driving traffic to the site. That ain't gonna happen with code like this unless the site's owner is willing to pay HUGE for something like AdWords. There is nothing in the HTML to make the page discoverable. Tables control the layout, font settings are used to create headlines and such, bare-naked images are used to convey information to sharp-eyed users. Sound familiar? At least Domino developers have Designer WYSIWYG and Notes client coexistence as excuses. There's nothing like that here &amp;mdash; the guys (and, perhaps, gals) who built osCommerce are developing exclusively for the web (and, being Open Source wonks, are probably using emacs or vi to do it all). Dammit, &lt;strong&gt;everybody&lt;/strong&gt; ought to know better by now.&lt;/p&gt;

&lt;p&gt;HTML is a text markup language, not a display description language. If your work tells the browser what the page looks like but never quite gets around to telling it what it &lt;em&gt;means&lt;/em&gt;, then, as a developer or designer, you haven't really done your job. Yahoo! can't tell what the text you rendered into your logo image says, and it doesn't give extra importance to the alternate text no matter how big the picture of the words is. Google doesn't care much which words are rendered as 18 point bold text.  Both &lt;strong&gt;do&lt;/strong&gt; pay a lot of attention to the words inside your &amp;lt;h1&amp;gt; tags. Do I really have to bring up the visually impaired user again?&lt;/p&gt;

&lt;p&gt;So that leaves me creating a &amp;quot;derivative work&amp;quot; under the GPL, re-writing significant parts of an open-source project for fun and profit. At least I hope there'll be some profit in it. Between cleaning up the HTML, making all of the data discoverable, adding RSS feeds for new products and specials, and eliminating scads of conditional code used to support PHP3 (think R4.5 in the Domino world), there's more than enough work here for me to do for now. And, need one say, more than customer number one can be expected to bear the cost of alone, so I've gotten another couple of pigeons lined up as well. &amp;quot;Template&amp;quot; pricing seems to be the order of the day in this world, so I've got to sell the work more than a couple of times to make it pay for itself. Luckily, the end result &amp;mdash; clean, semantically-valid HTML and a versatile set of basic CSS layouts &amp;mdash; mean that future sales will be a little bit more profitable. And, while the GPL (and, let's face it, the very nature of PHP) requires that I give them the source code, these aren't folks who are likely to modify or redistribute my work. I mean, these are people who are hiring a semi-disabled, self-taught, mostly-Domino-dedicated and kinda worn-out looking fellow like myself to create their killer online commerce sites. What are the chances that they're hiring out work they could have done for themselves?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-2936138923926256373?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/2936138923926256373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=2936138923926256373' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2936138923926256373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/2936138923926256373'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2007/06/lets-see-where-were-we.html' title='Let&apos;s see ... where were we?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-117036307922959992</id><published>2007-02-01T15:20:00.000-05:00</published><updated>2007-02-01T15:51:19.246-05:00</updated><title type='text'>Oh. That explains a lot.</title><content type='html'>&lt;p&gt;Seems we've found the root cause of things. Apparently, severely restricting the blood flow to ones brain can cause mood swings, memory loss, confusion and all kinds of other Alzheimer's-like symptoms. Who'd'a thunk it?&lt;/p&gt;
&lt;p&gt;I knew my cholesterol was high. I wouldn't be allowed to attend any family functions if I weren't able to prove that I was at an extreme risk for sudden, catastrophic cardiovascular collapse. It's the closest thing to a heritage that we Rogerses have, you know. What I didn't know was quite how bad things had gotten in the last year.&lt;/p&gt;
&lt;p&gt;For someone in my risk group, a total cholesterol level of 4 mmol/L is considered borderline (that translates to about 140 mg/dL for the Americans in the audience, quite a bit lower than the 200 or so that &amp;quot;normies&amp;quot; would be scared of). I knew I was high-risk, given my family history, so I'd been doing the good diet and exercise things. And I was getting regular checks. Somehow, though, my total cholesterol managed to drift a bit higher than I'd planned. To a point somewhere northward of 25 (that's around 900 on the American scale). My HDL level is normal, which means that my LDL (boo, hiss) is sitting at the &amp;quot;why are you still alive&amp;quot; level. And that's just the serum level &amp;mdash; the metric tonne is probably a better unit of measure for the deposits on my artery walls.&lt;/p&gt;
&lt;p&gt;If I hadn't been ignoring the chest pains, thinking them simply a consequence of the damage I did to my heart in my wild years, I'd probably have caught it sooner. As it was, it wasn't until my vision started to go and my hands and feet kept falling numb that I figured out that something was wronger (that &lt;em&gt;should&lt;/em&gt; be a word) than usual. An optometrist was able to see rich deposits and stake a claim on my retinas &amp;mdash; if there's a market for this stuff, he's going to be a rich man.&lt;/p&gt;
&lt;p&gt;Needless to say, the pipes are being treated with Drano now (er, Lipitor, and rather a lot of it &amp;mdash; thank God and the government of Ontario that I don't have to pay for it). It's a race to see if the clogs can be cleared before anything major fails permanently. But at least I know what's wrong. I wasn't going crazy. I was just dying quietly.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-117036307922959992?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/117036307922959992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=117036307922959992' title='31 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/117036307922959992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/117036307922959992'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2007/02/oh-that-explains-lot.html' title='Oh. That explains a lot.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>31</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-116733811412936636</id><published>2006-12-28T15:33:00.000-05:00</published><updated>2006-12-28T15:35:14.153-05:00</updated><title type='text'>Out of the silent blog</title><content type='html'>&lt;p&gt;I know it's been a while since I last surfaced. The past couple of months haven't been a whole lot of fun, and I certainly haven't been my usual self. I'm not sure who I &lt;em&gt;have&lt;/em&gt; been, or even where I have been at some points along the way.&lt;/p&gt;
&lt;p&gt;I'm afraid I don't do muddled and confused very well. I've been severely depressed before. I've been known to become reclusive from time to time. I'm not even surprised by the occasional suicidal ideation anymore. But this is the first time that things have ever been this bad. Before I hit the hospital, I was in a dissociative fugue for about three weeks. Luckily, I was jolted back into the moment in the midst of hanging myself. Another thirty seconds, and the story would have been much different.&lt;/p&gt;
&lt;p&gt;Did I actually want to die? Not at all. But I did have a couple of years worth of unresolved stress that I had entirely failed to deal with, and at some level I wanted so badly to be rid of it that I was willing to do whatever it took. Whatever, that is, except recognize that I had a problem and ask for help with it.&lt;/p&gt;
&lt;p&gt;Since I walked into the CAMH emergency department, shaking uncontrollably and in tears, I've had a few good days, but most of the time I've been lost &amp;mdash; I can't concentrate, I've had nothing that resembles a short-term memory at all, and I can find even the simplest problems overwhelming. Not exactly the ideal arrangement for a guy who's supposed to be able to make a living by making soluble molehills out of intractable mountains, is it?&lt;/p&gt;
&lt;p&gt;SSRIs (specifically, fluoxetine) are (so far, at least) keeping the suicidal thoughts, or, rather, my willingness to act upon them, at bay, but I'm left with an enormous, undirected anxiety. No, I don't think anxiety is the right word; it's more of an adrenaline rush that simply won't go away. All of the physical components of anxiety without any of the emotional complications. For the moment, I'm controlling that somewhat with a low-dose bezodiazapene (clonazepam) every so often, but that's not an acceptable long-term solution, especially for someone who has a proven track record of susceptibility to addiction. It may be a while before I find the right medication. I'll know I've found it when that JavaScript library starts to make sense again.&lt;/p&gt;
&lt;p&gt;I'm out of the hospital now, and have just moved back into the world from a Salvation Army post care facility. The Sally Anne? Yeah, I had done everything leading up to my move to ZA, including divesting myself of unnecessarily bulky winter clothing and remaining furniture, etc. I count myself incredibly lucky to have had my melt-down before getting to the airport; I can't imagine what might have happened had I arrived in a foreign country in a catatonic state.&lt;/p&gt;
&lt;p&gt;For the next little while, my life will be a mix of doctors, support groups and the like. And I need the support, if for no other reason than that I need to vent a little of the frustration I feel at being reduced to a comparative idiot. All my life, I have been able to take my intellect for granted. It has been my defining personal quality, informing everything else that I am. Without it, or at least without full-time access to all of it, I am a little less sure of who I am and where I fit into this world.&lt;/p&gt;
&lt;p&gt;It's not all bad news, though. There's always been something about being knocked off of my high horse that brings the truly important things in life back into sharp focus. My time at the Sally Anne reminded me that, despite my breakdown, things could always have been worse. I have become very active in AA again. If nothing else, my story can serve as an example to others that a bad break or two in sobriety is &lt;em&gt;not&lt;/em&gt; a sufficient excuse for relapse, and that sobriety alone does not necessarily mean and end to the struggle of living. There is, after all, no problem so big that alcohol can't make it bigger. And whether my story helps anyone else or not, working with still-suffering alcoholics is pulling me out of my little cesspool of self-pity. I have only ever really been myself when I've forgotten about myself.&lt;/p&gt;
&lt;p&gt;I hope to be able to get back into the development game again someday soon, but that day is not today. And if the day should never come, if I should never completely regain my abilities, that's okay too. I can be at peace with it. It was incredibly flattering to see myself described as a &amp;quot;legend&amp;quot; by colleagues I've admired since I began working with Notes and Domino, but my inability to accept that reputation was a large part of what led to my near-demise.&lt;/p&gt;
&lt;p&gt;I am used to coasting through life. I have had a lifetime of accolades arising entirely from my innate talents, all the while knowing that I had been pulling the wool over everyone's eyes. I have played the great impostor, knowing enough of how to talk the talk that I could fool most experts into believing that I was an expert on any subject. This Lotus stuff was the first time I ever really put an effort into learning anything, and yet there was always the feeling in the back of my mind that I was fooling everyone again, that whatever reputation I had developed was a shoddy fa&amp;ccedil;ade that would collapse the moment I was actually challenged. And let's face it, I &lt;em&gt;don't&lt;/em&gt; know everything there is to know about Notes and Domino, even on my good days. I don't think anybody does, or that anybody can anymore. There's just too much &lt;em&gt;there&lt;/em&gt; there. Nonetheless, I was determined that I would need to know everything before I could really feel like I knew enough. Talk about setting oneself up for catastrophic failure!&lt;/p&gt;
&lt;p&gt;Thanks to all who have written. I needed the boost. And my most sincere wishes for you and yours that the new year bring happiness, love and contentment in generous measure.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-116733811412936636?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/116733811412936636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=116733811412936636' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/116733811412936636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/116733811412936636'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/12/out-of-silent-blog.html' title='Out of the silent blog'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115877386521368774</id><published>2006-09-20T13:30:00.000-04:00</published><updated>2006-09-20T13:37:45.276-04:00</updated><title type='text'>Greetings from CAMH</title><content type='html'>&lt;p&gt;A funny thing happened on the way to South Africa -- I ended up in a &lt;a href="http://www.camh.net"&gt;mental hospital&lt;/a&gt; instead. Still trying to figure out what's going on -- but as long as I'm here, the likelyhood that I'll find myself wandering the streets for days with a couple of suitcases in hand, pulling knives on strangers are fairly low. Could be severe depression, could be hypomanic bipolar. SSRIs seem to be working for now, but it will be a while before we know anything for certain.&lt;/p&gt;
&lt;p&gt;I wish I had seen this coming. It could have saved a lot of people a lot of trouble, and may even have saved a life. Sorry.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115877386521368774?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115877386521368774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115877386521368774' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115877386521368774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115877386521368774'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/09/greetings-from-camh.html' title='Greetings from CAMH'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115687097781788092</id><published>2006-08-29T13:00:00.000-04:00</published><updated>2006-08-29T13:03:23.363-04:00</updated><title type='text'>Building the Behaviour Layer</title><content type='html'>&lt;p&gt;With all of this talk of fancy libraries and so forth, and with the whole Domino web world abuzz with tales of Ajaxian glory, it's sometimes hard to remember that Domino already provides us with a lot of sophisticated functionality. You say you need a field to refresh? There's a checkbox on the Field Properties box to handle that for you. Sure, it takes a post-back to do it, but most web application platforms have done much the same thing since the dawn of time (about eight years or so ago). All Ajax brings to the party is immediacy and fluidity, really. You &lt;em&gt;can&lt;/em&gt; make an Ajax app last all day on a single page &amp;mdash; something like Writely is meant for that sort of user experience &amp;mdash; but the average Domino-suited application (or application suite) is more generally suited to defined &amp;quot;locations&amp;quot;. That is, each task type would have its own workspace. Changing pages is not a dread thing to be avoided at all costs.&lt;/p&gt;
&lt;p&gt;Okay, what does all of this blathering mean? It means that Domino views, forms and pages created in Designer already do pretty much what our users expect them to do. They just might not do them in the most elegant of ways. For instance, it may take a user several seconds (during which, of course, she has been typing madly away to record one of those elusive thoughts that will never be formulated quite the same way again) to realise that the form has already been submitted for refresh and all of her recent work has gone for naught. That is something that the immediacy and fluidity of Ajax can alleviate.&lt;/p&gt;
&lt;p&gt;Now, as proud as I am of the bits of the library I've already put together, I am aware that as it stands, it still requires that a developer's efforts be concentrated on cooking a web application. atDbLookup() is way freakin' kewl (and will be &lt;em&gt;so&lt;/em&gt; much kewler when I've gotten the &lt;a href="#marshallingExplanation" title="An explanation of this appears below -- click to go there now" name="returnFromMarshallingExplanation"&gt;automatic request and callback marshalling&lt;/a&gt; bulletproofed), but somebody still has to add it to a form, field, or button event in order to make it work. I really can't wait to see what other people can do with the tool once it has matured beyond the pre-alpha stage. I'm sure there are a couple or three web wonks out there who will build things of exquisite beauty when they don't have to concentrate so much on the mechanics of the app. They will, though, be aware that they are building a web application at every step along the way. Even something like prettyView() takes developer input, if only to add the code to the database and the passthru tag to the $$ViewTemplate. It doesn't have to be that way.&lt;/p&gt;
&lt;p&gt;This is where &lt;a href="http://jackratcliff.com/" title="When will Jack blog again?"&gt;Jack Ratcliffe&lt;/a&gt; and I meet face-to-face, so to speak. The &lt;a href="http://www.openntf.org/projects/pmt.nsf/adb7158ebcdb348b862570e8005347e9/416de981e0b6f08b86256dc100765895!OpenDocument" title="DWT Project Home at OpenNTF.org"&gt;Domino Web Tools&lt;/a&gt; project was meant to automate a lot of those processes, and I'm pretty sure that having direct Formula analogues handy will make that go a lot more smoothly. As I get deeper into the library project, it's easy to see how something like DWT can become overwhelming and go fallow for a while. Its a Project with a capital P. It was great to see Jack responding to the original library posting.&lt;/p&gt;
&lt;p&gt;Right now, when you have "Use JavaScript to generate pages" turned on and select one of the refresh options on a field, Domino generates an event handler like this in the onchange: _doClick("$Refresh",this,null). Overriding a handler like that is very easy to do in JavaScript: document.forms[name].FieldName.onchange = someNewFunction. As long as it's called after the form is loaded, it's nearly foolproof. That means that right now, today, almost anyone reading this has all of the tools they need to create a "behaviour layer" that runs through Domino web page and hangs the stuff &lt;strong&gt;they&lt;/strong&gt; want to hang off of field events, etc. It isn't at all difficult, but it &lt;em&gt;is&lt;/em&gt; extra effort, and it is oh, so easy for the behaviour layer (the custom event script for a page) to get out of sync with the form or page design.&lt;/p&gt;
&lt;p&gt;That's where the more ambitious part of  Domino Web Tools comes in. In the early hours of the project formation, at least, there was much talk of automating as much of the webbification stuff as possible. You know, reading a form's design, say, and auto-generating the replacement parts. Adding datepicker widgets with the appropriate regionalisation to date fields, that sort of thing. It's all of that event code, though, that's the real sonofabee, at least when you have to create equivalent client-side web code. That is, I hope, where this library would make the greatest difference.&lt;/p&gt;
&lt;p&gt;There are boatloads of Notes-client-only developers out there, many of whom never, ever stray beyond "pure Notes" applications (if they have to talk to another system, they'll use something like Notrix to do the talking), and who never step foot outside of the comfortable world of Formula Language. Many are only part-time developers &amp;mdash; thay have &amp;quot;real&amp;quot; jobs filling up most of their time, and learning the intricacies of HTML, CSS and JavaScript is not something they'll give up their precious family time to do. Now imagine what it would be like for them to be able to create a truly usable, responsive, and (perhaps) even good-looking Domino web application by merely copying a couple of Design Notes into their database (or running an agent against the db to do it for them). Imagine the appearance transformed to look more like the thing they created in Designer. Imagine &amp;quot;Allow values not in list&amp;quot; still allowing a drop-down selection. Date fields with the date selector enabled still having them on the web. View dialogs and name-and-address pickers acting just the way you'd always imagined they should. Post-back behaviours replaced by in-browser updates. Computed fields computing right there in front of the user the way God intended. The one critical customer-interactive application a small Notes shop has does not have to be an aesthetic or functional embarrassment.&lt;/p&gt;
&lt;p&gt;Ultimately, that's what I'd like to see happening. As much as I'm jazzed about super-innovative web development on Domino, I think that it may be far more important to the platform to make the low-hanging fruit hang a whole bunch lower.&lt;/p&gt;
&lt;a name="marshallingExplanation"&gt;&lt;/a&gt;&lt;p style="border-top: dotted silver 1px; padding-top: 1ex;"&gt;It's one thing to add calls to a function like atDbLookup to a form. It's a &lt;em&gt;relatively&lt;/em&gt; simple thing to make a server request to update something on the web page. But if you use the example I've given before, where the onchange of a field contains something like refreshSelectOptions("FieldName",atDbLookup("cache","","LookupView",this,2)), there is an implied contract of synchronicity. The refreshSelectOptions() function can't do what it needs to do until the atDbLookup() function has returned its values. Well, hell &amp;mdash; we've just managed to lock up the user's browser the same way we would have by posting the form for refresh. Maybe not for nearly as long (and thanks to the way I do the caching, not every time, either), but there is that moment where the browser can't do much but wait for a reply. The big &amp;quot;A&amp;quot; at the start of the word &amp;quot;Ajax&amp;quot; stands for &amp;quot;Asynchronous&amp;quot;. The object of the game is to notify the user that something is happening, but stay out of their way otherwise. That means divorcing the main activity from the event that caused it, and giving the request all of the info it needs to look after its own affairs when it's complete.&lt;/p&gt;
&lt;p&gt;That gets a little dicey when you want to abstract things away from the developer. In normal Ajax development, one would be hands-on enough to know where you are making requests and what sort of response handler you should attach to the request. That is precisely the sort of thing I want to take off of the developer's plate. In the example above, if the lookup isn't in the cache, then atDbLookup() should immediately return &lt;em&gt;something&lt;/em&gt; to the refreshSelectOptions() function so it can terminate and let the user get on with life. In the meantime, the lookup can take as long as it takes (that depends on the connection speed and server load), and when it's done, it should be able to complete what refreshSelectOptions() started. Making that work cross-browser and one hundred percent reliably while preserving the entire calling context is one of those easier-said-than-done things. (&lt;a href="#returnFromMarshallingExplanation" tile="Return to main text"&gt;Return to main text&lt;/a&gt;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115687097781788092?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115687097781788092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115687097781788092' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115687097781788092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115687097781788092'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/08/building-behaviour-layer.html' title='Building the Behaviour Layer'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115661184076967608</id><published>2006-08-26T13:02:00.000-04:00</published><updated>2006-08-26T13:04:00.776-04:00</updated><title type='text'>And people wonder why I prefer passthru....</title><content type='html'>&lt;p&gt;Well, it seems that you folks were able to break my little piece of script pretty darned thoroughly. The "No Documents Found" bit was entirely my fault. Pulling any old bit of script off of the ol' hard drive and posting it with only minimal testing is not a good idea. It worked in the project I was doing, but that's because I had "pinned" documents so there was always something in the view.&lt;/p&gt;

&lt;p&gt;The other breakage, though, I would never have picked up. You see, I never, ever, use Domino WYSIWYG to create headings and so forth. There is no semantic value to anything created with FONT tags, so I always make sure that things like that are done in passthru. And I never use the alignment settings, since it creates markup that you can't override with CSS. (The behaviour here was actually better in R5, since CSS could tell the browser to render a CENTER tag with any alignment you saw fit to use. The DIV with an inline style can only be changed using JavaScript, because inline styles will trump whatever is in the stylesheet.)&lt;/p&gt;

&lt;p&gt;The problems with the script are twofold. First, if you create a WYSIWYG heading, Domino generates a DIV around the FONT tag soup it needs to render your semantically useless verbiage (sorry, folks, but unless you use an Hx tag to mark a heading, it ain't a heading). That wouldn't be so bad, except that it will eat the passthru DIV you created around the view by putting the heading's closing /DIV tag &lt;strong&gt;after&lt;/strong&gt; your passthru. Easy to fix, you'd think -- just make sure there's at least one line of not-centred text between the heading DIV and the passthru, right?&lt;/p&gt;

&lt;p&gt;Well, that &lt;em&gt;does&lt;/em&gt; close the alignment DIV tag before the passthru DIV, but it creates a new problem. Domino may throw in an unclosed P tag, just for fun. Now, I have no problem with Domino rendering a line break with a paragraph. It might not be semantically correct when there is no actual paragraph content, but it's not a biggie, either. What burns my butt is the fact that the tag is never closed. That throws the whole document structure for a loop. The P will not be logically closed until its parent, Domino's FORM tag, is also closed.&lt;/p&gt;

&lt;p&gt;There are three ways to try to handle this. The first is to futz around with the form in Designer until you can force Domino to render a BR instead of a P. A BR tag is not a container, so it won't interfere with stepping through the hierarchy in either direction. I'm not quite sure what the magic words are, or what face you have to make while doing it, but it CAN be done. Obviously, it's not particularly reliable, and the next developer to touch the form is going to break it. You can also try closing the P tag yourself, but this will get you no further -- eventually, someone is going to do something that changes the P to a BR. Or worse, they're going to try to get rid of the extra space between the heading and the view, closing off the DIV tag yet again.&lt;/p&gt;

&lt;p&gt;The second is to expand the script yet again to cover all of the possible bases, searching every nook and cranny of the DOM until the view table, and only the view table, is finally found. You saw how big the original script was. Scanning the whole DOM tree until you find something that looks like it might be a view will make that little script just a little bit bigger. I'm not afraid of a little scripting (remember the library I keep talking about?), but I do resent having to write that much code to get around something that should never have been a problem in the first place.&lt;/p&gt;

&lt;p&gt;The third is to lobby IBM for fixes. No, I don't expect them to add an HTML-prettifying function to the view rendering. In fact, it's just about the last thing I'd want to see, since it would mean that "normal" rendering could never be controlled with CSS -- you'd absolutely need to run some script to change the look of what Domino renders. (Yes, I know I'm running script now, but that's to add stuff that doesn't need to be there.) To my mind, something like that would be far worse than the current state of affairs. What I &lt;strong&gt;would&lt;/strong&gt; like to see is a fix that gets Domino out of my way. If I start some passthru on a new line, and that whole line is marked as passthru, I want it to appear in the HTML source &lt;strong&gt;exactly where I put it&lt;/strong&gt;, not inside a tag that Domino needs to render the previous line. In this case, if I wanted the viewPanel DIV to begin inside the heading alignment DIV, I should have to put in in the centre-aligned part of the text. Things like the document selection JavaScript should be moved completely out of the way -- the &amp;lt;head&amp;gt; sounds like a nice place to put that, doesn't it?. And since response-only columns are the last usable column in a response document row in a view, wouldn't it make a lot more sense to colspan the host cell all the way to the end (as this script does)?&lt;/p&gt;

&lt;p&gt;No, folks, I am &lt;strong&gt;not&lt;/strong&gt; whining about Domino's overall HTML rendering. While it can be improved somewhat (and Mark Vincenzes and team are working on it for Domino Next), it is very nearly impossible to create semantically-correct markup from purely visual formatting in a reliable way. A human being with good vision looking at the page can intuit the meaning of the text based on its formatting, but a machine can only do so much. What if your headings are smaller than the body text (a common-enough thing in trendy print publications)? There are some things we need to do ourselves if we want the end result to be meaningful and accessible. But there &lt;em&gt;are&lt;/em&gt; a few little bugs that need to be squashed. They might not get the fixes into the current code streams (6.5.x &amp; 7.x), but we can try to make sure that they are gone for Domino Next (no fixed number has been announced yet, but it has been stated that the number will be somewhere between 7.9 and 8.1). &lt;/p&gt;

&lt;p&gt;In any case, the script as it now stands has been through the wringer. It'll find the view table if it's there and at least comes somewhere after the viewPanel DIV tag, as long as you don't put another table between the view and the div tag. If there's a "No Documents Found", it fails gracefully -- again, as long as you don't put an H2 tag into the middle of the actual viewPanel DIV AND use a centred, justified, or right-aligned WYSIWYG heading right above the passthru. (I'm only looking for the H2, since I can't predict the language of the message.) I've done everything I can to mangle the $$ViewTemplate and the view, and it seems to be bulletproof. Well, at least until one of you folks tries to use it, that is -- somebody's going to have done something I never would have though of trying, and that will probably result in Domino  rendering the table cells outside of the table tag or something. Can you ever really win at this game?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115661184076967608?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115661184076967608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115661184076967608' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115661184076967608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115661184076967608'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/08/and-people-wonder-why-i-prefer.html' title='And people wonder why I prefer passthru....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115653863694628011</id><published>2006-08-25T16:42:00.000-04:00</published><updated>2006-08-25T16:43:56.950-04:00</updated><title type='text'>Library again....</title><content type='html'>&lt;p&gt;Working on the Formula Language analogue functions in the JS library has got me wondering. There are several @Functions (well, a lot of them, really) that will return either a single value or a list of values. In Formula Language, that's all fine and dandy, because except in a very few cases, EVERYTHING is a list. That is, you can spend most of your time oblivious to the actual output of the various lines of code you write; you don't need to make special concessions for "text" versus "text list". I've honoured that in the JS functions' inputs -- they can take a single value, an array of values, an HTML field object, or, in combination with atGetField(), a fieldname.&lt;/p&gt;
&lt;p&gt;But what about the output? As it stands right now, I am creating the output in an array, then passing the array out if there is more than one value, and passing a scalar if there is only one value. While that's great if you want to cascade these &amp;quot;@Functions&amp;quot;, I was thinking that it might make it unnecessarily difficult if you merely want to borrow a function or two to use in your own JS code. For instance, using atReplaceSubstring() is easier than writing something to iterate through two arrays, generate regular expressions on the fly, and do the replacement oneself. But is the return type uncertainty (array or scalar) going to be a problem? Should the return always be an array when the corresponding @Function allows a multi-value return?&lt;/p&gt;
&lt;p&gt;For the record, these are the functions I've already completed:&lt;/p&gt;
&lt;ul&gt;
 &lt;li&gt;function atDbLookup()&lt;/li&gt;
 &lt;li&gt;function atDbColumn()&lt;/li&gt;
 &lt;li&gt;function atExplode()&lt;/li&gt;
 &lt;li&gt;function atGetDocField()&lt;/li&gt;
 &lt;li&gt;function atGetField()&lt;/li&gt;
 &lt;li&gt;function atImplode()&lt;/li&gt;
 &lt;li&gt;function atLeft()&lt;/li&gt;
 &lt;li&gt;function atMember()&lt;/li&gt;
 &lt;li&gt;function atMiddle()&lt;/li&gt;
 &lt;li&gt;function atReplace()&lt;/li&gt;
 &lt;li&gt;function atReplaceSubstring()&lt;/li&gt;
 &lt;li&gt;function atRight()&lt;/li&gt;
 &lt;li&gt;function atSetDocField()&lt;/li&gt;
 &lt;li&gt;function atSetField()&lt;/li&gt;
 &lt;li&gt;function atSort()&lt;/li&gt;
 &lt;li&gt;function atTrim()&lt;/li&gt;
 &lt;li&gt;function atURLDecode()&lt;/li&gt;
 &lt;li&gt;function atURLEncode()&lt;/li&gt;
 &lt;li&gt;function atURLQueryString()&lt;/li&gt;
 &lt;li&gt;function atWord()&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As much as I would like to have used a proper "@" in the names, it's an illegal character thanks to Microsoft's conditional evaluation. Okay, the list isn't very long yet, but the atDbLookup() and atDbColumn() functions took a while, as did atGetDocField() and atSetDocField(). All of them rely on XmlHTTPRequests, and the xxxDocField functions need a server-side agent to work. Okay, we're talking about the simplest, smallest web agent ever, but it's still an extra piece. And it will grow as more server-interactive atFunctions are added, like atUserRoles(). Even atURLQueryString() has more to it than you'd think. And don't get me started on atReplaceSubstring(). There are also a few helper functions to do listwise and permuted operations, since JavaScript doesn't know that [text array] + [string] should add the string to every member of the array.&lt;/p&gt;
&lt;p&gt;I am also posting this, or something like it, on the LDD forum, but again, your input is valuable to me.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115653863694628011?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115653863694628011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115653863694628011' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115653863694628011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115653863694628011'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/08/library-again.html' title='Library again....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115645886440876917</id><published>2006-08-24T18:22:00.000-04:00</published><updated>2006-08-26T13:02:30.746-04:00</updated><title type='text'>SntT -- A prettier view</title><content type='html'>&lt;p&gt;Not everything needs to be Ajaxian. A simple bit of JS can make a standard &amp;quot;Display using HTML&amp;quot; on a $$ViewTemplate look and work a whole bunch better. No hand-coded "Treat as" views, no fancy background requests need apply. Just a passthru &amp;lt;div&amp;gt; tag around the embedded view, this script, and init() in the onload event of the $$ViewTemplate.&lt;/p&gt;
&lt;p&gt;By way of explanation for the long listing to follow:&lt;/p&gt;
&lt;p&gt;First, I NEVER comment code quite this way in production. The comments here are for the benefit of people who may not be very familiar with JavaScript, and might have trouble following the "story" otherwise. If you want to use the code, do everybody a big favour and delete the comments. If you are at all familiar with JS, you'll probably find it easier to follow the code without the comments anyway. (They do get in the way, don't they?)&lt;/p&gt;
&lt;p&gt;Second, there is a lot of explicit use of getElementsByTagName(). I'd never let something like this hit production with all of those wasted characters floating around in there. I use a simple little function instead:&lt;/p&gt;
&lt;pre&gt;function $tn(tn,el){el=el?el:document;return el.getElementsByTagName(tn);}&lt;/pre&gt;
&lt;p&gt;So, instead of:&lt;/p&gt;
&lt;pre&gt;var viewTable = viewPanel.getElementsByTagName("table")[0]&lt;/pre&gt;
&lt;p&gt;I would write:&lt;/p&gt;
&lt;pre&gt;var viewTable = $tn("table",viewPanel)&lt;/pre&gt;
&lt;p&gt;That is a half-truth at best. I'd probably write "var vw=$tn("table",vP)". Or at least have an obfuscator do it for me. I'm not "into" obfuscation, as a rule, but in an interpreted language where the user has to download the source code, sometimes over a bad POTS modem connection, killing off characters is the best way to save the plot.&lt;/p&gt;
&lt;p&gt;The following little bit of JavaScript takes an ordinary, Domino-created, "Display using HTML" view and transforms it into something that looks and acts a little more "applicationy". It preserves the selection margin and any clickable headers. Flat? Single category? LOTS of categories? Response docs? Response-to-responses? Action bar? It's all good. Try it out, play with it. You may like it, you may not. And no, Peter, it doesn't mess with the correct functionality when you open and close categories -- the clicked category scrolls to the top if the page is long enough to be scrollable. Sorry about the formatting -- it's gonna be a little bit on the wide side. You'll want to copy and paste this into something that has syntax highlighting (like a JS script library in Designer) -- trying to make it really pretty here makes it too wide for the screen. Even if you have a fifty-incher.&lt;/p&gt;
&lt;pre&gt;
function prettyView(){
  var debugPos = "";

/************************************************
This function adds a whole-row mouseover and click
event to a Domino "Display using HTML" view.
************************************************/

  var panel = document.getElementById('viewPanel');
  //assumes you have wrapped the view in a DIV with an ID of "viewPanel"

  /***************************************************
  Getting to the view may take some work. You KNOW the
  table lies inside your DIV, but Domino may just have
  closed your passthru DIV without asking.
  No, it SHOULDN'T happen. Yes, it DOES.
  ***************************************************/
  
  //Try the easy way first
  var viewTable = panel.getElementsByTagName("table")[0];
  
  //If that didn't work...
  if (!viewTable) {
    //It might be because there were No Documents Found...
    if (panel.getElementsByTagName("h2").length) {
      return;
      }
    //...or maybe Domino ate your DIV for lunch.
    else {    
      panel = panel.parentNode;
      if (panel.tagName) {
        viewTable = panel.getElementsByTagName("table")[0];
        }
      //Of course, the No Documents Found rule could still be in effect...
      if (!viewTable &amp;&amp; panel.getElementsByTagName("h2").length) {
        return;
        }
      }
    }

  //First, fix the situation where a collapsed categorized view
  //is all squished over to the left-hand side of the browser
  viewTable.width="100%";
  
  //Then get the collection of rows.
  var rows = viewTable.getElementsByTagName("tr");
  if (rows.length) {
    //We don't want to mess with the header row if it's there.
    //It may contain column resort hinkies.
    //Domino 6 and up renders the header cells as TH elements.
    var startRow = (rows[0].getElementsByTagName("th").length)? 1 : 0;
    for (var i=startRow;i&amp;lt;rows.length;i++){
      //Now, make sure the row is in the view table.
      //Response documents may be rendered in nested tables.
      var grandparent = rows[i].parentNode.parentNode;
      if (grandparent === viewTable) {
        //the first "parent" is an imaginary tbody element
        //so it's row-&gt;tbody-&gt;table to get to viewTable
        var href = "";
        var titleText = "";
        //Add the mouseover highlight to each row...
          rows[i].onmouseover = new Function("this.bgColor='#ffff99'");
        //...and return to the original color on mouseout.
        //This maintains any alternate colors set in the View Properties.
        rows[i].onmouseout = new Function("this.bgColor='" + rows[i].bgColor + "'");
        //Now get all of the cells in the row...
        var cells = rows[i].getElementsByTagName('td');
        for (var j=0; j&amp;lt;cells.length; j++) {
          try{
            //There is going to be an error at the end of this TRY
            //related to garbage collection of the objects we create here.
            //It is unavoidable.
            //The best we can do is CATCH the error and ignore it.
            
            //We don't want to change the behaviour of cells in the
            //selection margin.
            if (!(cells[j].getElementsByTagName("input").length&gt;0)) {
              //We need to find links to create the whole-row click.
              var links = cells[j].getElementsByTagName("a");
              if (links.length) {
                var count = 0;
                var link = links[0];
                //Not all A tags represent links. We will pass over
                //any named anchors (A tags with a NAME and no HREF).
                while (!link.href || link.href == "") {
                  link = links[++count];
                  }
                href = link.href;
                //We also need to know what's inside the link.
                var children = link.childNodes;
                var testNode = children[0];
                if (testNode &amp;&amp; (typeof testNode == "object")){
                  if (testNode.tagName &amp;&amp; testNode.tagName.toLowerCase() == "img"){
                    //In this case, it's a picture -- probably a twistie
                    titleText = testNode.alt;
                    }
                  else {
                    //Otherwise, there's got to be text in there somewhere.
                    //It may be nested in FONT tags, and there may be empty
                    //DOM nodes.
                    while (testNode.childNodes.length) {
                      testNode = testNode.childNodes[0];
                      }
                    while (testNode &amp;&amp; testNode.nodeType!=3 &amp;&amp; testNode.nodeValue!=""){
                      testNode = testNode.nextSibling;
                      }
                    //After all of that, we may not have any text...
                    if (testNode) {
                      //...but if we do, we replace the original link with plain text.
                      var swapNode = link.parentNode;
                      swapNode.replaceChild(testNode,link);
                      
                      /************************************************************
                      NOTE: Those last two lines help the view LOOK a lot prettier,
                      but they also affect accessibility. Keyboard-only users will
                      not be able to tab from link to link. If accessibility is
                      important, comment those two lines out.
                      ************************************************************/
                      
                      titleText = "Click to open " + testNode.nodeValue;

                      /************************************************************
                      For some unknown and unholy reason, Domino renders response
                      documents in nested tables in one column of the main table.
                      Not only does it make this sort of code harder (whine, grumble),
                      but it also means that response docs will shove the main document
                      content over to the right. This will fix that by removing
                      the final cells in the main table's response row and adding
                      their width to the response cell. The rest of the table can then
                      collapse back to normal size.
                      ************************************************************/
                      if (rows[i].getElementsByTagName("table").length) {
                        //This is a response doc, and we are stuck in a nested table.
                        //In order to keep the responses from pushing everything over,
                        //we need to find the outer cell containing the table...
                        var parentCell = cells[j].parentNode;
                        while (!parentCell || parentCell.nodeType != 1 || parentCell.tagName.toLowerCase() != "td") {
                          parentCell = parentCell.parentNode;
                          }
                        //...and work on getting rid of the following cells
                        var killCell = parentCell.nextSibling;
                        var removedCellCount = 0;
                        while (killCell) {
                          //Before removing any cells, we need to find out how wide they were.
                          var oldColspan = killCell.colSpan;
                          rows[i].removeChild(killCell);
                          killCell = parentCell.nextSibling;
                          removedCellCount += oldColspan;
                          }
                        //Now we add the width we removed to the response cell...
                        parentCell.colSpan = parentCell.colSpan + removedCellCount;
                        //...add the onclick event ...
                        parentCell.onclick = new Function("getLink('" + href + "')");
                        //... and the mouseover text.
                        parentCell.title = titleText;
                        //Finally, we change the cursor to tell the user they're
                        //mousing over a link.
                        parentCell.style.cursor = "pointer";
                        }
                      }
                    }
                  }
                }
              if (href != "") {
                //If, after all of that, we have a link location to use,
                //we add an onclick to the cell to take the user to the link...
                cells[j].onclick = new Function("getLink('" + href + "')");
                //... and add the mouseover text.
                cells[j].title = titleText;
                //Finally, we change the cursor to tell the user they're
                //mousing over a link.
                cells[j].style.cursor="pointer";
                }
              }
            }
          catch(e){
            alert(e.message);
            //ignore -- it's because of nested tables on response rows
            }
          }
        }
      }
    }
  }


function getLink(){
  var el=arguments[0];
  if (typeof el == "string") {
    window.location.href = el;
    }
  }

function init(){
prettyView();
}

&lt;/pre&gt;
&lt;p&gt;I try to avoid calling any function in the onload that isn't called "init()" -- that means I can change the function names in JavaScript with a search-and-replace and never have to worry about changing the body onload. The init() function calls the prettyView() function, and the prettyView() function adds an onclick call to the getLink() function. You'll need all three in your JS script library or JS Header.&lt;/p&gt;
&lt;p&gt;You can improve the appearance of the view by adding the following CSS:&lt;/p&gt;
&lt;pre&gt;
TABLE {
font-size: 1em;
border-collapse: collapse;
}
#viewPanel TR, #viewPanel TD, #viewPanel TH  {
border-bottom: solid black 1px;
}
#viewPanel TABLE TABLE TR, #viewPanel TABLE TABLE TD, #viewPanel TABLE TABLE TH {
border-bottom: none;
}
&lt;/pre&gt;
&lt;p&gt;You need to set the border-bottom of the TD and TH in order to get any lines at all. The lines won't extend all the way across all of the cells, though, unless you also set the border-bottom for the TR. The border-collapse: collapse; makes sure that both sets of lines look like one. The selectors with TABLE TABLE in them make sure that the response document nested tables don't get multiple bottom borders. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;Sometimes I hate this posting of snippets stuff SO much. There was a small problem with what I posted yesterday, in that it came from an earlier version of the original file. (A quick look at getLink() should tell you that it was excerpted from a bigger mess -- it's designed to handle links based on table row ids as well as href values.) The actual, honest-to-goodness production code lives in a template on a server (or group of servers) to which I haven't had access in a couple years, so I had to rely on what I had in text and *.js files here. I gave it a quick test before posting, but then I tested it again, and, well....&lt;/p&gt;
&lt;p&gt;The changes live in the little loop where I go looking for the parent cell of response documents. The original code would break if something other than 10pt Default Whatever Plain is selected as the font for the responses-only column. That has been changed so the code will continue upwards to find the containing cell. I've also made the link replacement code two lines instead of one to solve a node resolution problem introduced when looking for the outer cell. For some reason, doing this:
&lt;pre&gt;
someNode.replaceChild(testNode,link);
&lt;/pre&gt;
was a problem, but doing this instead:
&lt;pre&gt;
var theSameNode = someNode;
theSameNode.replaceChild(testNode,link);
&lt;/pre&gt;
fixes it. As the code above implies, &lt;em&gt;it's the same node&lt;/em&gt;. Not just the same HTML element, but the &lt;em&gt;identical object&lt;/em&gt;. The identity check, (theSameNode === someNode), will return true. Yet the two-line version works in every browser I could test, and the one-line version fails in almost all of them. Only Opera, usually the worst browser for complex JS because it swaps engine components when you change its spoofing settings, actually got it right all of the time. Mozilla and IE would bail if the link was on a responses column with a font setting.

&lt;p&gt;I've thrown in the only fix I could think of for the view title alignment problem noted in the comments. Oh, and the &amp;lt;h2&amp;gt;No Documents Found&amp;lt;/h2&amp;gt; has been fixed, too (that was in the working original). NOW I know that multiple, seemingly-identical bits of snippetalia on a drive probably means that one is right and most of the rest are just-in-case backups that should have been nuked. Oh, well.&lt;/p&gt;

&lt;p&gt;Technorati: &lt;a href="http://technorati.com/tag/show-n-tell+thursday" rel="tag"&gt;show-n-tell thursday&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115645886440876917?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115645886440876917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115645886440876917' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115645886440876917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115645886440876917'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/08/sntt-prettier-view.html' title='SntT -- A prettier view'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115593777017137071</id><published>2006-08-18T17:45:00.000-04:00</published><updated>2006-08-18T17:49:49.100-04:00</updated><title type='text'>Speaking of huge libraries ...</title><content type='html'>&lt;p&gt;... is there any interest out there in a general-purpose JS/Ajax library specifically for Domino?&lt;/p&gt;

&lt;p&gt;I've seen adaptations of &lt;a href="http://prototype.conio.net/"&gt;Prototype&lt;/a&gt;, &lt;a href="http://sourceforge.net/projects/sarissa"&gt;Sarissa&lt;/a&gt;, &lt;a href="http://script.aculo.us"&gt;Scriptaculous&lt;/a&gt; (and even &lt;a href="http://openrico.org"&gt;Rico&lt;/a&gt;, which is a lovely library but wants everything in its own format) and so on, but would there be a market for a library of components that grok Domino? One that would not force you to write responses that conform to a library designed for other platforms? One that would include not only JS functions that already know about ?ReadViewEntries, categorized views and response documents, but design elements that can make up for the difference between server time and workstation time, that can prevent save conflicts, and so on? One that lets you dynamically refresh fields using, oh, let's say @DbLookup syntax &lt;em&gt;in JavaScript&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;If there is any interest, what features would you like to see? Be wild and scary if necessary. There's no law that says I have to include everything everybody could ever want. And I've already got a few tricks up my sleeve that may be as wild and/or scary as what you have in mind. I haven't quite rewritten the Formula Language engine in JavaScript yet, but I have borrowed a few of the more useful list-processing bits, along with their familiar-to-us syntax.&lt;/p&gt;

&lt;p&gt;It is my intention to release such a library into the wild. The library itself will be free to use anywhere, both as in speech and as in beer. Thanks to View-&gt;Source and browser extensions, there's no good way around that. Even if the code is obfuscated (and it is, has been, and will continue to be, for compactness' sake), a determined developer can copy it and find a way to use it. The API documentation, though, I can charge for, so I will. Or, rather, &lt;em&gt;somebody&lt;/em&gt; will.&lt;/p&gt;

&lt;p&gt;The documentation will include the clear, unobfuscated code with comments. While the clear code would be entirely impractical as a user download (it is not a little file, or even a bunch of little files), forcing an interested developer to figure out which bits do what in the obfuscated code alone is not going to result in better code or in a better developer. Properly done, this might make a good addition to a certain training materials package, since the doco is as much about &amp;quot;why&amp;quot; as &amp;quot;what&amp;quot;.&lt;/p&gt;

&lt;p&gt;You see, I'd like to see this, or something not unlike it, become a standard part of the Domino developer's toolkit. While I would like to see every developer equipped with the knowledge and skills to do all of the work themselves, it just doesn't make sense that each of us needs to reinvent the wheel with every new application. Okay, the truth is that I was tired of reinventing wheels by the third go-around. So I've taken the bits and pieces of what I've been doing over the last year or so, located the reusable bits (and refactored to include them where they'd been redone), and come up with something I think is worth sharing. But I know that I've only included features that I needed at the time, and that there have to be things you might think are commonplace that have never occurred to me.&lt;/p&gt;

&lt;p&gt;So if you can think of anything you'd like to see, anything that can help you elevate a garden-variety web-enabled database to a holy-crap-gotta-have-it application with minimum effort, let me know. Your suggestion may be what makes the whole thing worthwhile.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115593777017137071?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115593777017137071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115593777017137071' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115593777017137071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115593777017137071'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/08/speaking-of-huge-libraries.html' title='Speaking of huge libraries ...'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115593749427718119</id><published>2006-08-18T17:43:00.000-04:00</published><updated>2006-08-18T17:44:54.296-04:00</updated><title type='text'>How nifty does it need to be?</title><content type='html'>&lt;p&gt;A while back, &lt;a href="http://www.lotusgeek.com" title="Rocky Oliver's blog"&gt;Rocky Oliver&lt;/a&gt; floated the idea of &lt;a href="http://www.lotusgeek.com/SapphireOak/LotusGeekBlog.nsf/d6plinks/ROLR-5NBK7N"&gt;resurrecting the Nifty Fifty&lt;/a&gt;, a group of fifty minimal sample applications that IBM threw into the box with every purchase of Notes 3.somethingorother. They didn't do much, and were never really intended to do much. They were fifty sets of ideas, fifty starting points for developers to build upon.&lt;/p&gt;

&lt;p&gt;Lately, the idea has been getting a lot of play, thanks mainly to &lt;a href="http://www.johndavidhead.com/jhead/johnhead.nsf/dx/maybe-it-is-time-we-all-step-up-..."&gt;John Head&lt;/a&gt;. John suggested that, with Microsoft entering the fray and including application templates with the various incarnations of Sharepoint, the community should step up and contribute a set of &amp;quot;real&amp;quot; applications to run on Notes and Domino. The community consensus seems to be that the idea would not fly unless the apps were distributed and supported by IBM.&lt;/p&gt;

&lt;p&gt;I guess it's time to throw my coupla cents in.&lt;/p&gt;

&lt;p&gt;Should there be a set of application templates available that go beyond Discussion, Document Library and TeamRoom? You betcha. Does the set need IBM distribution and support? Again, you betcha. Do these applications need to be everything an organisation could lust after out of the box? Not on your nelly, nor on mine, neither. Not no-how.&lt;/p&gt;

&lt;p&gt;What Domino needs is fifty (give or take) Really Good Ideas&amp;trade; rolled into a neat little package. The applications need to be useful and usable, but each should really only try to do One Thing Right&amp;trade;. They should do that clearly and with voluminous documentation even for the most obvious bits. And while an application would need to include all of the ancillary bits that make its particular Really Good Idea&amp;trade; work, it should absolutely cry out for extension and customisation.&lt;/p&gt;

&lt;p&gt;A big part of what got me started down this track was &lt;a href="http://www.jonvon.net/jonvon/blog/blog.nsf/dx/nifty-nifty.htm"&gt;jonvon's list of suggestions&lt;/a&gt;. In particular, it was the suggestion that there should be no obfuscated JavaScript (as one finds in Domino Web Access). As I've been doing a lot of webby things lately, it occurred to me that clear, self-documenting JavaScript on the scale required for a genuine Web Application&amp;trade;, complete with all of the neat Ajaxian features and behaviour layers and everything else that represents large-scale functionality these days, would make the needed libraries huge. Not merely big, but &lt;strong&gt;huge&lt;/strong&gt;. Obfuscation might be a maintenance programmer's worst nightmare, but failing to make the downloadable component as small as it can be by using short names and proxy functions is working at cross purposes to the user community. Sure, it's easier for a developer to see what's going on and make modifications to the code (that is, without having the same obfuscator and replacement key file), but at a cost that can be as much as 80% larger code.&lt;/p&gt;

&lt;p&gt;Let's take the Prototype library's $ function as a basic example. The name is impenetrable (and forget about documentation &amp;mdash; Prototype was not intended for human developers to interact with, so it's enough that Rails understands what's going on), but by the simple act of replacing &lt;span class="inlineSnippet"&gt;document.getElementById("someID")&lt;/span&gt; with &lt;span class="inlineSnippet"&gt;$("someId")&lt;/span&gt;, you save twenty-two characters with every call, recouping the cost of the function in only two calls. Twenty-two characters might not sound like much, but one might make a call like that a hundred times or more in a complex script, and that's more than 2KB saved right there. Short variable names come with similar savings, as do snippet &amp;quot;constants&amp;quot; fed into the constructor of a function or an object.&lt;/p&gt;

&lt;p&gt;When it means the difference between 2KB and 10KB, even over a bad &lt;acronym title="Plain Old Telephone Service"&gt;POTS&lt;/acronym&gt; connection it's not worth sweating. But when the same ratio takes you from 30KB to 150KB, you start running into usability issues over dialup and on slow, crowded networks. Sure, the file is cached, but that's on a per-database basis (and what if the user is using several applications of the same or similar design?) and only after that first slow download. The fact that the application is better-stronger-faster &lt;strong&gt;after&lt;/strong&gt; it loads means very little if the initial hit feels like one is installing Office. Users will not put up with slow, and it will be Domino's fault no matter who actually wrote the code. Chuck one application, and maybe even the platform it runs on. That means that if clarity and extensibility are among the chief aims of the project, as I believe they should be, then we have to aim lower than Google Maps or BaseCamp with our web examples.&lt;/p&gt;

&lt;p&gt;I agree that the templates in the set need to be as simple and clear as they can be. We are, after all, trying to sell the possibilities of the platform, and if a developer can't figure out what's going on, she's going to have a hell of a time trying to build her own custom applications. And they should be no simpler than necessary. Each application needs to do something that will be useful to someone, if for no other reason than to encourage the &amp;quot;Notes guy&amp;quot; to open the thing up in Designer to take a look under the hood. There almost needs to be a hole in every application, though; something that is obviously missing, but not so obvious that the template will be discounted as useless right away. NiftyNext&amp;trade; should be at least as much about teaching as it is about value added to the platform. Let the all-singing, all-dancing, impenetrably complex applications remain as they are now &amp;mdash; commercial ventures and the province of internal corporate developers.&lt;/p&gt;

&lt;p&gt;After all, if &lt;em&gt;everything&lt;/em&gt; comes in the box, we're all out of work.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115593749427718119?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115593749427718119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115593749427718119' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115593749427718119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115593749427718119'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/08/how-nifty-does-it-need-to-be.html' title='How nifty does it need to be?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115532029140586269</id><published>2006-08-11T14:13:00.000-04:00</published><updated>2006-08-11T14:18:11.420-04:00</updated><title type='text'>From the Mail &amp; Guardian online:</title><content type='html'>&lt;blockquote id="dinkum_moron"&gt;&lt;p&gt;When Australian cricket commentator Dean Jones was fired for calling Hashim Amla a &amp;quot;terrorist&amp;quot;, the manne were delighted. After all, if everyone went around indulging provocative and childish stereotypes, the Oom might be tempted to call Jones a livestock-romancing wife-beating string-vest-wearing racist bigot Australian yahoo from the arse end of nowhere whose gigantic mouth is writing cheques his tiny brain can’t cash.&lt;/p&gt;&lt;cite&gt;&amp;quot;Dinkum moron&amp;quot; by Krisjan Lemmer, 11 August, 2006&lt;/cite&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115532029140586269?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115532029140586269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115532029140586269' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115532029140586269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115532029140586269'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/08/from-mail-guardian-online.html' title='From the Mail &amp; Guardian online:'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115448116856407795</id><published>2006-08-01T21:10:00.000-04:00</published><updated>2006-08-03T15:04:43.053-04:00</updated><title type='text'>@Command([NavigateNext])</title><content type='html'>&lt;p&gt;First off, I'd like to apologize for still not having gotten back to everyone who has written me. The flood of email has been a bit overwhelming, and I've only recently had the wherewithal to download the messages and compose replies offline (thanks again, &lt;a href="http://www.devinolson.net" title="Devin 'Spanky' Olson"&gt;Devin&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Among the messages have been proposals for independent contract work, possible positions in and around Toronto, and positions elsewhere. There has been an awful lot to consider, and not just in the philosophical, &amp;quot;you've given me a lot to think about&amp;quot; sense.&lt;/p&gt;

&lt;p&gt;A big part of what I had to consider was the simple mechanics of getting back to work. As I mentioned before, my life had taken a bit of a downhill slide, and there is a point below which it becomes exceedingly difficult, if not quite impossible, to recover gracefully. I live in a dark, dank and moldy 90-square-foot basement room in a building (and neighborhood) populated primarily by the drug-addled and the insane. People who are self-medicating in extreme excess, and people who are failing to medicate adequately. The noise, the fights and the screaming can get to be a bit much. Working at home is difficult, but alternating doses of headphones and earplugs make it possible, and the occasional escape to the local intarweb cafeteria is welcome respite. Living a normal scheduled life, though, is pretty much out of the question. I sleep when I can, but I haven't had a stretch of time that would have allowed a full night's sleep in some time, and even then the time wasn't at night. So getting up at a normal time and reporting to work during normal office hours would be hit-and-miss at best. I haven't been particularly successful trying lately.&lt;/p&gt;

&lt;p&gt;The fix is a simple one. I just need to move. But moving is expensive and disruptive, no matter how one looks at it. Staying in Toronto puts me in a chicken and egg situation -- I'd need to make a considerable amount of money relatively quickly in order to finance a move that would make a regular job possible, but until I move I won't be able to keep the regular hours that would let me keep a regular job.&lt;/p&gt;

&lt;p&gt;My current circumstances, then, are not exactly conducive to a conventional approach. So I've decided on the nuclear option. Killing all of the birds in the vicinity with a single, powerful stone. Relocation. A fresh start in a new environment. New country, new surroundings, new type of work, the whole nine yards.&lt;/p&gt;

&lt;p&gt;And so I follow friend &lt;a href="http://www.openntf.org/nathan/escape.nsf" title="Escape Velocity -- Nathan T. Freeman's blog"&gt;Nathan&lt;/a&gt; to South Africa. Not to Joburg, though; I'll be heading for Cape Town. And not to the same kind of job, nor to the same sort of pay scale. Heck -- I ain't Nathan, and neither are most of you. But I couldn't ask for a better situation, really -- one foot firmly in the realm of the uber code monkey, and the other in the realm of education. That is, assuming I can manage to complete the seemingly trivial tasks of getting a passport and visa done without learning I'm PNG in a country I'm pretty sure I haven't visiteed before. Oh, and I have to hope that my criminal background check doesn't reveal any new and hitherto unknown details from my blackout days. (The hardest part of a return to consciousness was always hearing about my escapades for the first time. I'm pretty sure I know everything I should know now, but you never know, ya know?)&lt;/p&gt;

&lt;p&gt;If all goes according to plan, I'll fill in the rest of the blanks for you soon. I'd still be doing the Notes and Domino thing, but I'd be spending a lot more time doing the things that I do best. And that's already coming too close to saying too much for now.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115448116856407795?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115448116856407795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115448116856407795' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115448116856407795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115448116856407795'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/08/commandnavigatenext.html' title='@Command([NavigateNext])'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115178824505133810</id><published>2006-07-01T16:53:00.000-04:00</published><updated>2006-07-02T17:29:14.160-04:00</updated><title type='text'>Gobsmacked.</title><content type='html'>&lt;p&gt;First of all, I want to thank you all from the bottom of my heart for all of the support and encouragement I've received over the past few days. Frankly, I was at the end of my rope, and was absolutely sure that my programming career had come to an end. My previous posting wasn't meant to beg; it was just my best explanation of my absence. Thanks to all of you, though, things are not just looking up, but moving up as well. I will be replying personally to all of the email you've sent, but there's enough of it that it may take me a little while to get around to you. Oh, and enough with the donations already -- we're not quite at the dying-wish-scam level of monies or anything, but you have given me enough to take advantage of the other opportunities I've been presented, and if I manage to blow it from this point onward, then I would fully deserve to crash and burn.&lt;/p&gt;
&lt;p&gt;(For those who are interested, and in the interest of fairness and transparency, the total was just under twelve hundred dollars Canadian, which is just about the total sum I had to work with over the previous ten weeks. It means I don't have to be particularly careful using the intarweb today. Since I have real prospects in the offing, I'd prefer to be off the community dole. I'm not going to turn down token recompense for actual help rendered, which is why the button was there in the first place, but I don't particularly like being a charity case. Them what's gone a bit overboard should expect return when I can afford it.)&lt;/p&gt;
&lt;p&gt;But &lt;a href="http://bbenz.typepad.com/softwaresoapbox/2006/06/stan_rogers_get.html" title="Stan Rogers gets a hard lesson -- Software Soapbox"&gt;Brian Benz was right&lt;/a&gt;. This was a hard-learned and hard-earned lesson. There are a lot of things I could have done a lot differently along the way, and I'm pretty darned sure that I'll be doing a little more effective networking and leveraging from now on.&lt;/p&gt;
&lt;p&gt;I've been coasting through life, depending on technical talent to get me where I wanted to go. Not that I haven't put any effort into things -- I have spent at least as much time as anyone else learning and practicing my craft (whatever that craft may have been at any given point in my life). That is as true in the Notes world as it was in my avionics life (something that disappeared when discrete electronics gave way to reliable LSIs) or even when I mastered the art of bringing funky old footwear back to life. But as Brian pointed out, mere technical competence is not enough for any of us anymore.&lt;/p&gt;
&lt;p&gt;Even those of us who are &amp;quot;mere&amp;quot; employees can't afford to have an employee mentality these days. I come from a long line of labourers and tradesmen who have pretty much had a job for life as long as they did the work and didn't make too much noise along the way. I had pretty much the same thing with my first couple of jobs (including the military), and although I've watched the world around me change, I failed to change with it. I've always believed that there was work out there, and that all one could do, really, was to apply for jobs, shopping oneself out as a commodity labourer. But showing up at the factory gates with work boots and hardhat in hand, hoping that you were close enough to the front of the line to get one of the jobs on offer that day ain't cutting it anymore. That's more or less what I was doing, and it shouldn't have surprised me to find that everything was going to young 'uns with crisp new diplomas and little or no experience -- in the commodity world, price point is king. (And yes, I was testing the waters on the Dark Side as well &amp;mdash; I can speak Dotnetese, even if my VB does come out with LotusScript accent and my C# sounds a lot like Java.) I simply didn't have the financial resources to last long enough to make that approach work, and that approach takes time. More time than any of us have.&lt;/p&gt;
&lt;p&gt;I haven't had a chance yet to explore all of the &amp;quot;Stan needs help&amp;quot; traffic out there. I was pointed to &lt;a href="http://vowe.net/archives/007401.html" title="Stan Rogers needs help -- vowe.net"&gt;Volker's posting&lt;/a&gt; by &lt;a href="http://www.billbuchan.com/web.nsf" title="Will Bill Buchan's blog"&gt;Wild Bill&lt;/a&gt; and Ben Dubuc in emails, and found Brian's ruminations from the comments there. I only had a half-hour to look at the mail, this blog, check the ol' PayPal account (there was an implied &amp;quot;don't bother&amp;quot; in my previous posting that I am now immensely happy several of you chose to ignore or failed to infer) and so forth -- I was able to scrape up a buck for that, but that didn't leave a whole lot of time to do anything else, really. I have seen enough, though, and in surprising enough places, to finally realise (I hope) that I am not, and cannot treat myself as, a commodity resource. Even if my name wasn't the proverbial household word, I really had no reason to believe that being just one more CV in the pile on some HR desk was going to get me anywhere.&lt;/p&gt;
&lt;p&gt;You know, for a guy who spends so much time showing off his m4d 5|&amp;lt;i77z and hanging about in spaces with the elite in the game, I'm pretty clueless in real life.&lt;/p&gt;
&lt;p&gt;The only thing that kept the week from being the best of my life, really, was that I was completely in the dark about the Toronto geek dinner with Ed Brill. I didn't have a chance to see Ed's posting on his own site, and the half-hour I was able to manage on the net on Wednesday was timed perfectly to end minutes before a personal invitation/exhortation hit my inbox. The word &amp;quot;dammit&amp;quot; comes to mind. Well, actually, &amp;quot;dammit&amp;quot; is what comes to finger &amp;mdash; the word or words that actually come to &lt;em&gt;mind&lt;/em&gt; are somewhat less socially acceptable. I believe that makes three times now that I've managed to avoid meeting Ed in person in my own back yard. That's definitely enough of that.&lt;/p&gt;
&lt;p&gt;Again, thank you all. As much as the technical sharing in this community has always amazed me, this episode has me utterly gobsmacked.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115178824505133810?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115178824505133810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115178824505133810' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115178824505133810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115178824505133810'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/07/gobsmacked.html' title='Gobsmacked.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-115134956124942760</id><published>2006-06-26T15:18:00.000-04:00</published><updated>2006-06-26T15:19:21.260-04:00</updated><title type='text'>Thanks for all the fish....</title><content type='html'>&lt;p&gt;Some blogs die of neglect. Some are withdrawn by people who have second thoughts about being public. This one is dying of poverty and malnutrition. I can't afford to feed it any more.&lt;/p&gt;

&lt;p&gt;This whole Notes developer thing has been a blast. The past tense really seems appropriate now, though. I don't have a computer to use since my ancient laptop's power supply took up smoking. Things had been going slowly downhill for a while -- the floppy drive was long gone, the trackpad was just a nuisance that would randomly select and cut things rather than merely point, the battery had just enough capacity for a safe shut down in the event of an AC outage -- but I was really hoping to be able to replace the computer before anything failed that would keep me from working altogether. With a working machine and a wireless card, I could always piggyback on someone else's internet service and at least keep up the appearance of having resources available to me. With that gone, though, I might be able to afford to triage my email once every week or two at an internet cafe, and I can only use my pay-as-you-go cell phone when I'm not at home (I basically had a choice between a place I could afford and one that had cell signal). Combined, that makes it awfully damned difficult to get a programming job. I can't even take work-at-home stuff unless there's enough money up front to cover the price of a power supply and comms costs, and I really can't imagine anyone being that stupid.&lt;/p&gt;
&lt;p&gt;So that's it, folks. It's been a slice. I have enjoyed working on the Notes and Domino platform. And I have met some pretty fantastic people along the way, at least in the online sense of the word &amp;quot;met&amp;quot;.&lt;/p&gt;
&lt;p&gt;I don't know if I'll ever be in a position to rejoin the fold. I sold everything I had of value to keep up appearances, hoping that I would land a job before I ran out of resources. Well, that didn't quite work out the way I had hoped. I am literally using my last disposable dollar for the month of June to post this entry. I certainly won't be able to spend time and money composing or responding to blog entries or posting on the LDD forum on next month's budget unless I've found a job in the meantime. And when I do find work, it's not very likely to be Notes-related, or even computer-related, and probably won't be full-time or pay well enough to get me out of the hole I've dug for myself anytime soon.&lt;/p&gt;
&lt;p&gt;Feel free to leave comments or &lt;a href="mailto:stan.rogers@gmail.com" title="Send Stan a message"&gt;send email&lt;/a&gt;, but be aware that I won't be able to read either right away. (Same thing goes for the PayPal panhandling button in the navigation area &amp;mdash; while I'd be immensely appreciative of any spare change tossed my way, I probably wouldn't be aware of it for some time.) I'll try to keep you up to date, but I'm not sure that it'll be relevant reading for anyone who isn't fascinated by train wrecks. Sorry about that, folks.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-115134956124942760?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/115134956124942760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=115134956124942760' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115134956124942760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/115134956124942760'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/06/thanks-for-all-fish.html' title='Thanks for all the fish....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-114487309515611288</id><published>2006-04-12T16:00:00.000-04:00</published><updated>2006-04-12T16:18:15.246-04:00</updated><title type='text'>Back in business</title><content type='html'>&lt;p&gt;Yes, folks, it has been a little while. A number of things have been happening of late that have sort kept me in a perpetually flummoxed state of mind, and I haven't really known what to say.&lt;/p&gt;
&lt;p&gt;First off, for those who are keen to know, my back problems seem to be behind me now. (That seems to be a pun, but isn't really.) I've lost about fifty pounds along the way (only my socks and shoes still fit from last year's wardrobe), and I'm feeling capable, almost to the point of chipper. There's still a bit of work to go before I can say I've achieved chipperousity, but we're getting there. In the meantime, I'm ready to get back to work.&lt;/p&gt;
&lt;p&gt;Therein lies the problem. IT hiring is a Process, and I was really expecting that part of things to go slowly. What I wasn't expecting is that it would be so damned difficult to get an interim job to generate some kind of income. Even after dumbing my resume down so it wouldn't look too scary, I've found that the McJob world isn't too excited about my return to the workforce. Now, I can understand that managers might think a fellow like me might not stick around to make a career of things, but come on &amp;mdash; these places &lt;strong&gt;depend&lt;/strong&gt; on staff turnaround to avoid paying benefits. That's what the McJob is all about.&lt;/p&gt;
&lt;p&gt;Oh, well &amp;mdash; at least I'm getting some nibbles on the developer contract front. With any luck at all, one of them will pan out soon.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-114487309515611288?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/114487309515611288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=114487309515611288' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/114487309515611288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/114487309515611288'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/04/back-in-business.html' title='Back in business'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-114075027752812259</id><published>2006-02-23T22:01:00.000-05:00</published><updated>2006-02-23T22:04:37.543-05:00</updated><title type='text'>About this SnTT thing....</title><content type='html'>&lt;p&gt;From a message I found sitting on my desktop last night:&lt;/p&gt;
&lt;blockquote&gt;&lt;strong&gt;Thomas:&lt;/strong&gt; Funny thing at work today... a coworker was looking for an answer to something, and her summary statement was "And Stan Rogers comes through for me again!"...&lt;/blockquote&gt;
&lt;p&gt;While I heartily applaud this community effort, I don't think this is one of the places you should be looking for a lot of contributions. Folks, it's not that I don't want to share what I've learned with the community at large, but that Thursday is just another day of the week, you know? For the past couple of weeks I've felt kind of guilty about staying out of the Thursday thing while I try to rescue a career from the wreckage of my life -- between the book, the suite and trying to launch a business, I really haven't had the time to launch into an article-length presentation or to try to think about a problem that hasn't already been solved in a hundred ways before.&lt;/p&gt;
&lt;p&gt;Then I got the message you see above from our Duffbert. And I ran a quick agent that gave me this:&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6181/553/1600/postings_23_Feb_2006.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6181/553/320/postings_23_Feb_2006.gif" border="0" alt="" /&gt;&lt;/a&gt;
&lt;p&gt;And suddenly, I don't feel quite so guilty anymore.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-114075027752812259?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/114075027752812259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=114075027752812259' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/114075027752812259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/114075027752812259'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/02/about-this-sntt-thing.html' title='About this SnTT thing....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113900683570675670</id><published>2006-02-03T17:40:00.000-05:00</published><updated>2006-02-03T17:47:15.723-05:00</updated><title type='text'>Want it in white?</title><content type='html'>&lt;p&gt;Yellow may be the new black, but there are clean ways of getting that across, too.&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6181/553/1600/yitnb_white_sig_stripe.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6181/553/320/yitnb_white_sig_stripe.jpg" border="0" alt="" /&gt;&lt;/a&gt;
&lt;p&gt;Again, node editing in PSP was used here on shapes derived from the text. Specifically, the bottom of the &amp;quot;e&amp;quot; in the word &amp;quot;Yellow&amp;quot; was opened up so that the black outline wouldn't make it look like a Greek theta (&amp;theta;). I really have to find a better font than Arial, though &amp;mdash; it's a bit heavy-handed, even if one makes allowances for the small size of these graphics.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113900683570675670?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113900683570675670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113900683570675670' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113900683570675670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113900683570675670'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/02/want-it-in-white.html' title='Want it in white?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113875281290052288</id><published>2006-01-31T19:11:00.000-05:00</published><updated>2006-02-07T01:10:45.923-05:00</updated><title type='text'>Email signature graphic, anyone?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6181/553/1600/yitnb_sig_stripe.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6181/553/320/yitnb_sig_stripe.jpg" border="0" alt="" /&gt;&lt;/a&gt;
&lt;p&gt;I left a little room on the right for your own blurb -- or you can just chop it off. Your call.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Added:&lt;/strong&gt; Oh, by the way -- if any of you &lt;b&gt;are&lt;/b&gt; using PSP and want to modify the graphic to suit your own taste, there's no need to re-invent the wheel. Just mail me to request the multi-layer PSP-native file. The base graphic is much bigger than what you see here (3200 by 250), the text is still vector, and so forth. If you want to resize and move things around, modify the background colour, etc., you'll get a better final product than if you start with a small GIF. And big thanks to &lt;a href="http://www.benpoole.com/" title="Ben Poole"&gt;Ben Poole&lt;/a&gt; for supplying me with the Mac icon resource.&lt;/p&gt;
&lt;p&gt;I'm still looking for a larger version of the current Lotus Software logo -- all I've been able to find is a small GIF. If anyone's got a large TIFF or EPS version (the sort of thing that's usually supplied for print ads), I'd be more than happy to have it. I've got some very good ideas for future versions, but I can't use the logo I have now (the biggest I could find on a web search), and trying to recreate something that's trademarked without the original font is, um, a wee bit difficult.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Added more&lt;/strong&gt;Thanks to &lt;a href="http://www.hort-net.de/" title="Berndt Hort IT Consulting"&gt;Bernd Hort&lt;/a&gt;, I now have the EPS logo I wanted for my birthday. Now to see if I can make it worth the trouble.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113875281290052288?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113875281290052288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113875281290052288' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113875281290052288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113875281290052288'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/01/email-signature-graphic-anyone.html' title='Email signature graphic, anyone?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113865551084368602</id><published>2006-01-30T15:54:00.000-05:00</published><updated>2006-01-30T16:11:51.086-05:00</updated><title type='text'>Yellow is the new black</title><content type='html'>&lt;p&gt;Might as well join the party, what? Some nearly purty pitchers below:&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6181/553/1600/yellow_is_the_new_black.jpg" title="Just a stripe to base your own stuff on -- 1600 by 400"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6181/553/320/yellow_is_the_new_black.jpg" alt="Just a stripe" border="0" /&gt;&lt;/a&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6181/553/1600/yitnb_1600_1200.jpg" title="View wallpaper -- 1600 by 1200"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6181/553/320/yitnb_1600_1200.jpg" alt="YITNB Wallpaper -- 1600 by 1200" border="0" /&gt;&lt;/a&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6181/553/1600/yitnb_1280_1024.jpg" title="View wallpaper -- 1280 by 1024"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6181/553/320/yitnb_1280_1024.jpg" alt="YITNB Wallpaper -- 1280 by 1024" border="0" /&gt;&lt;/a&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6181/553/1600/yitnb_1024_768.gif" title="View wallpaper -- 1024 by 768"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6181/553/320/yitnb_1024_768.jpg" alt="YITNB Wallpaper -- 1024 by 768 -- GIF" border="0" /&gt;&lt;/a&gt;
&lt;p&gt;For some truly maddening reason, Blogger has decided that these images should be JPEGs rather than the original GIFs except for the 1024 by 768 version. The conversion must happen based on the image size. I've mailed the originals off to &lt;a href="http://www.lotusgeek.com" title="Rocky Oliver"&gt;Rocky&lt;/a&gt; and &lt;a href="http://www.yellowisthenewblack.com" title="Rich Schwartz -- Yellow is the new black"&gt;Rich&lt;/a&gt;, so if you want the version without JPEG artifacts, you may be able to get them somewhere else. If not, you can always mail me. Didn't hit your screen size? Want a custom insert somewhere? Same deal -- mail me.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113865551084368602?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113865551084368602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113865551084368602' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113865551084368602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113865551084368602'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/01/yellow-is-new-black.html' title='Yellow is the new black'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113848943156813822</id><published>2006-01-28T18:01:00.000-05:00</published><updated>2006-01-29T20:30:12.990-05:00</updated><title type='text'>About Lotusphere 2006</title><content type='html'>&lt;p&gt;Okay, so I wasn't there. In some respects, I'm thankful for that &amp;mdash; I had the predicted back mutiny. But this was, apparently, &lt;strong&gt;not&lt;/strong&gt; the Lotusphere to miss.&lt;/p&gt;
&lt;p&gt;There is a level of excitement in the community that I have never seen before. &lt;a href="http://www.lotusgeek.com" title="Rocky Oliver"&gt;Rocky&lt;/a&gt; blogged about the &lt;a href="http://www.lotusgeek.com/sapphireoak/lotusgeekblog.nsf/d6plinks/ROLR-6LFRSB" title="Permalink to &amp;quot;Everything is cyclic&amp;quot;"&gt;enthusiasm cycle&lt;/a&gt;, and I have to say that as somebody who entered the Notes and Domino world on or about the nadir (late 2000), I am glad to see both that IBM has made their commitment to the platform clear, and that the community has collectively stopped wondering when the other shoe is going to drop. It's not one or two voices crying in the wilderness anymore.&lt;/p&gt;
&lt;p&gt;I don't know about the rest of you, but I can't wait for Hannover to go to public beta. It's hard to tell from a coupla screen shots and some third-hand reporting, but it looks like I'll finally be able to do &lt;em&gt;in the Notes client&lt;/em&gt; a lot of what I've been working so hard to do on the web. &lt;a href="http://smokey.rhs.com/web/blog/poweroftheschwartz.nsf" title="Richard Schwartz"&gt;Rich&lt;/a&gt; is not the only one &lt;a href="http://smokey.rhs.com/web/blog/poweroftheschwartz.nsf/d6plinks/RSCZ-6LGQN2" title="Permalink to &amp;quot;Lotusphere Thursday Activities (Pun intended)&amp;quot;"&gt;turned on by activity-centric collaboration&lt;/a&gt;. That has been both the single biggest hurdle in getting my Domino application suite together, and the single biggest reason why it cannot be a Notes client application suite right now, today. Hannover and WCS look like they will provide a solution to a problem that is currently intractible in Notes.&lt;/p&gt;
&lt;p&gt;I am sorry I missed some of the sessions. &lt;a href="http://www.mattandjess.net" title="Jessica Stratton"&gt;Jess's&lt;/a&gt; admin for &lt;strike&gt;dummies&lt;/strike&gt; developers session got &lt;a href="http://joelitton.net/A559B2/home.nsf/plinks/JLIN-6LASPT" title="Joe Litton's take"&gt;rave&lt;/a&gt; &lt;a href="http://takingnotes.openntf.org/blogs/takingnotes.nsf/dx/Episode11.htm" title="You'll need to listen to the podcast"&gt;reviews&lt;/a&gt;, and &lt;a href="http://www.nsftools.com/blog/CurrentBlog.htm" title="Julian Robichaux"&gt;Julian&lt;/a&gt; has been declared the new &lt;a href="http://www.devinolson.net/spanky762/spankysplace.nsf/d6plinks/DOLN-6LAM3Z" title="Permalink to something at Spanky's place"&gt;star presenter&lt;/a&gt;. Okay, I'm not going to list everything I missed -- you can look up the whole session list more easily than I can type it.&lt;/p&gt;
&lt;p&gt;I just hope that, in a couple of thousand years' time, my descendants, should there be any, aren't gathered around a table sometime in January for a festival dinner that includes a wistful "next year in Orlando".&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113848943156813822?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113848943156813822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113848943156813822' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113848943156813822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113848943156813822'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/01/about-lotusphere-2006.html' title='About Lotusphere 2006'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113657374113193406</id><published>2006-01-06T13:48:00.000-05:00</published><updated>2006-01-06T13:55:41.146-05:00</updated><title type='text'>Visiting hours</title><content type='html'>&lt;p&gt;Howzabout a couple of you Notes-type people dropping by &lt;a href="http://esthermstrom.blogspot.com/" title="Esther Strom's blog"&gt;Esther's place&lt;/a&gt; for a visit? Seems there's a reason she went silent back there. Bring some virtual flowers, and see if you can sneak in some e-candy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113657374113193406?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113657374113193406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113657374113193406' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113657374113193406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113657374113193406'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/01/visiting-hours.html' title='Visiting hours'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113624937362835023</id><published>2006-01-02T19:48:00.000-05:00</published><updated>2006-01-02T19:49:33.643-05:00</updated><title type='text'>Better late than never, eh?</title><content type='html'>&lt;p&gt;Well, here we are at the start of another year. Or, rather, here I am. I assume that most of the rest of you were more-or-less functional over the traditional days of reflection (those being December 31 and January 1). I was somewhat less than my usual self. Or at least I hope I was. If this is the new &amp;quot;usual&amp;quot;, I'd just as soon one of you had the decency to have me put down.&lt;/p&gt;
&lt;p&gt;All that aside, though, 2005 was not such a bad year. Sure, I spent most of it in a &amp;quot;foreign&amp;quot; city that I never quite got around to seeing, doing work that I found rather less than fulfilling, and topping it all off with a mental and physical breakdown. But in a real sense, that was the good part. It forced me to take a long, hard look at where I was and what I was doing, and when I did that, it was blindingly obvious that I was headed in the wrong direction.&lt;/p&gt;
&lt;p&gt;2006 will be a little different. I have to take it easy for physical reasons, so I will have a bit of time away from the keyboard. I just might spend some of that free time interacting with humans for a change. That's something I've done far too little of for the last little while. And there's something to be said for the occasional moment of peaceful, quiet solitude. Not loneliness, Lord knows I've had more than enough of that to last me a long time, but time alone to reflect and digest. Maybe throw the occasional dab of paint onto a canvas*.&lt;/p&gt;
&lt;p&gt;On the technical front, I've still got a couple of things to tidy up. One of the nice things about new, independantly produced software is that I can take the time to do things right. I'm not facing a promised delivery date or a bunch of investors who are wondering where their profits are, so I don't have to leave any code or architecture behind that is merely good enough for now. I hope that when it is released, those of you who are in a position to know the difference can tell that I've had the chance to refine my approaches.&lt;/p&gt;
&lt;p&gt;Is the old dog going to learn any new tricks this year? Only if I have to. I don't know about you folks, but I've put a lot of time in over the years learning new technologies, techniques and environments. It's all been book learnin' and putterin', though. My day job has always been the same old same old -- formulas, LotusScript, 1.1.x-vintage Java when absolutely necessary (since one can't always count on the next Notes guy really knowing Java, we've had to limit it to things that really needed to use something like the java.net package). It's time to forget about learning new stuff and start &lt;em&gt;using&lt;/em&gt; some of what I've already learned.&lt;/p&gt;
&lt;p&gt;I'm ready to face the new year and the lessons and rewards it has to offer. And I wish you all a happy and rewarding 2006.&lt;/p&gt;
&lt;p&gt;*I started a number of paintings last year, but they all became what we artists call &amp;quot;unfinished works&amp;quot;. There is a limit to how long a painting can be left unworked before new paint stops adhering properly to old, and I'd hate to put anything out there, even as a gift, that's going to have to spend more time at the conservator's than on the wall.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113624937362835023?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113624937362835023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113624937362835023' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113624937362835023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113624937362835023'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/01/better-late-than-never-eh.html' title='Better late than never, eh?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113624315728104410</id><published>2006-01-02T18:02:00.000-05:00</published><updated>2006-01-02T18:05:57.293-05:00</updated><title type='text'>Physically Impossible</title><content type='html'>&lt;p&gt;If Stan loses 5 kilograms of mass over the course of 31 days and e=mc&lt;sup&gt;2&lt;/sup&gt;, then what happened to the 168 GW/day I've been providing? Should I be getting a rebate from Hydro?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113624315728104410?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113624315728104410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113624315728104410' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113624315728104410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113624315728104410'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2006/01/physically-impossible.html' title='Physically Impossible'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113407095248615118</id><published>2005-12-08T14:36:00.000-05:00</published><updated>2005-12-10T03:56:42.456-05:00</updated><title type='text'>Yay! Something to do!</title><content type='html'>&lt;p&gt;I knew there was a reason why I spent my waking hours over at &lt;s&gt;Notes.Net&lt;/s&gt; &lt;s&gt;LDD&lt;/s&gt; IBM Lotus developerWorks. Not that there have been huge numbers of waking hours for the last little while, but that situation has been improving lately. Improving slowly, but improving nonetheless. I can put in some time working now -- I just don't know what time of day I'll be able to do it quite yet.&lt;/p&gt;
&lt;p&gt;Seems there's an entire application niche that's been missed out along the way, and it falls right into line with the rest of the suite I have been busy with. The difference is that this go-round, there's somebody waiting for the application. I'm up against a tight deadline and some fierce non-Notes competition, but I have written most of the component bits for the application already. I'd just never quite gotten around to realising that they could fit together that particular way. If I didn't have the bits and pieces lying around, there'd be no way to get this done in time, but given what I have, the time I've given myself is conservative enough that I can tolerate a day or two lost to my back. I just have to get on my case right away so I don't lose that cushion.&lt;/p&gt;
&lt;p&gt;That's a big part of the problem I've been facing with this development thing. I'm technically competent (or so I keep telling myself), but my life experience has been almost entirely outside of the business sphere. So far, I have been an in-house guy -- somebody gives me a set of requirements, and I build what they ask for. Note I didn't say I build what they &lt;strong&gt;want&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;There have been darned few instances where I've actually been able to contribute anything to the application's fundamental design. If the requirements are confused, I'll build a wonderfully well-written but unusable and completely inappropriate application. Exactly what the customer ordered. Well, you want to know something? Sometimes the customers don't really know what they want until they see it -- they want a Labrador Retriever, but in the process of describing fur, water, a general leg count and some kind of duck association, they actually spec a platypus. I've built quite a few platypi. There's not a lot in fixing and fuelling airplanes, teaching math or even shining shoes that would make a body intuit common business processes.&lt;/p&gt;
&lt;p&gt;This new application, along with the rest of the suite, are unashamedly ripped-off from applications that exist elsewhere, adapted to Notes and Domino. With tricky bits and shiny things thrown in. I figure that if somebody's already paying for this stuff, and paying handsomely, it must be useful. And you know, I'm starting to feel a lot better about that now.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113407095248615118?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113407095248615118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113407095248615118' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113407095248615118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113407095248615118'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/12/yay-something-to-do.html' title='Yay! Something to do!'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113294276762708067</id><published>2005-11-25T12:43:00.000-05:00</published><updated>2005-11-25T13:19:27.693-05:00</updated><title type='text'>Goodbye, Norrie</title><content type='html'>&lt;p&gt;You may remember Noriyuki (Pat) Morita best as Matsuo Takahashi (&amp;quot;Arnold&amp;quot; to his friends), the malt-shop owner who bought the name along with the restaurant on television's &amp;quot;Happy Days&amp;quot; or as Mr. Kesuke Miyagi, the wax on, wax off sensei in the &amp;quot;Karate Kid&amp;quot; movies. I remember his later years, when with speaking engagements and projects like &amp;quot;Beyond Barbed Wire&amp;quot; and &amp;quot;Only The Brave&amp;quot;, this child of the internment camps worked to bring the story and the dignity of wartime Japanese Americans before his people &amp;mdash; Japanese &lt;strong&gt;and&lt;/strong&gt; Otherwise American. (Oh, and Canadian as well. We were no better than our neighbors to the south.)&lt;/p&gt;
&lt;p&gt;I'm glad I had a chance to get to know something of the man beyond the wise-cracking comic and the over-the-top characters he often played. But Norrie, we hardly knew ye. Rest well.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113294276762708067?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113294276762708067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113294276762708067' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113294276762708067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113294276762708067'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/11/goodbye-norrie.html' title='Goodbye, Norrie'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113173888787937589</id><published>2005-11-11T14:50:00.000-05:00</published><updated>2005-11-11T16:24:42.056-05:00</updated><title type='text'>Remembrance</title><content type='html'>&lt;blockquote&gt;
If ye break faith with us who die&lt;br /&gt;
We shall not sleep, though poppies grow&lt;br /&gt;
In Flanders fields.&lt;br /&gt;
&lt;cite&gt;In Flanders Fields -- John McCrae&lt;/cite&gt;
&lt;/blockquote&gt;
&lt;p&gt;Today was the first Remembrance Day on which there were no veterans of World War I in attendance at our national ceremony in Ottawa. The last survivor living in the Ottawa area passed away earlier this year. The Armistice that ended the Great War went into effect 87 years ago today, meaning that even the worst abuses of "boy soldiers" (whether enrolled at the proper rank of Boy or slipped into the regular ranks) can leave us with no veterans of that war younger than ninety-six.&lt;/p&gt;
&lt;/p&gt;(Yes, folks, there were uniformed people in the world's militaries as young as nine years old. An overgrown 13-year-old could find his way into the infantry if he was determined to do so, and there were Boys used as buglers, drummers and messengers. Boys were supposed to be thirteen, but then I was supposed to be thirteen when I joined the cadet corps too. I was only two and a half years short of that. The only real difference is that nobody was shelling the drill hall when I was a cadet.)&lt;/p&gt;
&lt;p&gt;In a lot of ways, World War I was Canada's war of independance. While we legally shed our colonial status in 1867, we were still very much in the war for King and Empire. At the beginning of the war, Canadian troops were treated as just another element of the British army, and would not have operated in consolidated Canadian units at all were it not for the "chum brigade" philosophy. By the end of the war, Canadian troops under Canadian commanders at Ypres and the Somme, at Vimy Ridge, at Amiens, at Passchendael and Cambrai, had won Canada a new status as a fierce, strong, capable and proud people worthy of respect. Our progress from colony to country was paid for with the blood of a quarter million casualties, with the lives of 66,655 young men.&lt;/p&gt;
&lt;p&gt;Nearly all of those who came home from the Great War are gone now. Let none of them ever be forgotten.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113173888787937589?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113173888787937589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113173888787937589' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113173888787937589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113173888787937589'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/11/remembrance.html' title='Remembrance'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-113017255723558747</id><published>2005-10-24T12:48:00.000-04:00</published><updated>2005-10-24T13:09:10.026-04:00</updated><title type='text'>While I have my wits about me....</title><content type='html'>&lt;p&gt;Well, folks, you've been in the dark long enough.&lt;/p&gt;
&lt;p&gt;Over the past couple of weeks, I've been through something of a core meltdown. My back exploded on me again (and before you offer friendly advice, I'd like to remind you that my problem is the result of a four-storey fall from a helicopter and the resulting displacement of the spinous and transverse processes on a number of vertebrae, and did not arise as a lack of yoga or accupuncture), landing me pretty solidly in bed for a week. And between the pain and the drugs I've been using to manage it, I've been living in a pretty dark and scary place lately. That may not have been reflected in my online life, but my online presence over the past two weeks has been the extent of my sanity, and that has been happening at odd hours to say the least, in thinly-dispersed half-hour segments.&lt;/p&gt;
&lt;p&gt;The upshot of all of this is that I've pretty thoroughly mangled my professional career, having proven myself beyond any reasonably doubt to be unreliable as an employee. That is unlikely to change in the near future, since I've got to live with this back of mine until I can arrange to have the damned thing fused. I am certainly not looking forward to it, but given a choice between severely reduced mobility and continued and increasingly frequent bouts of drug-addled agony, even permanent confinement to a wheelchair looks to be the winner.&lt;/p&gt;
&lt;p&gt;That gives me more than a little incentive to finish up those personal projects during my periods of lucidity. Whatever income they generate will likely need to supplement a disability benefit. I'd like to do something a bit more productive, but since I have no way to predict when or for how long I'll be able to work, I can't really count on work-for-hire for the next little while at least. It certainly wouldn't be fair to anyone who'd hire me to get halfway into a project then wind up putting things on hold until my mind and body are ready to work again. And that's the reality of my life right now -- I can fold up at any time, without warning.&lt;/p&gt;
&lt;p&gt;There likely won't be a huge amount of activity here for the next little bit, although I will try to post a little bit of nothing occasionally. I hope to be able to formally announce the availability of my book here in sometime in the next month. It will be a self-published title (I'll be using &lt;a href="http://www.lulu.com" title="Lulu - self publishing"&gt;Lulu&lt;/a&gt; to do on-demand printing), and probably of more use to folks other than the readers of this little blog. (Don't worry, Mr. Duff -- I'll treat you just like I was a real publisher or something.)&lt;/p&gt;
&lt;p&gt;Lotusphere is out of the question, though, so to all who have offered help, particularly to &lt;a href="http://www.bruceelgort.com" title="Bruce Elgort"&gt;Bruce&lt;/a&gt;, thanks -- the spirit is willing, but the flesh wishes it could make its way up to weak some day. Maybe someday, if I'm still in the game, but I can't take that sort of a chance right now. It's one thing to gamble on foreign health care expenses in case of an unlikely emergency; it's quite another to be almost able to count on something untoward happening.&lt;/p&gt;
&lt;p&gt;In the meantime, I will be moving back to the Toronto area shortly and putting myself in the care of good friends who likely don't realise the enormity of the generous offer they have made me. I can only hope, for their sake, that I can get this damned back problem resolved one way or another before too much time has gone by.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-113017255723558747?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/113017255723558747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=113017255723558747' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113017255723558747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/113017255723558747'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/10/while-i-have-my-wits-about-me.html' title='While I have my wits about me....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112837395370150156</id><published>2005-10-03T17:06:00.000-04:00</published><updated>2005-10-03T17:12:33.706-04:00</updated><title type='text'>L'Shanah Tovah</title><content type='html'>Just a quick note to let you all know that I am still here, if somewhat dazed and confused. A new year starts in a few minutes (well, a new year for some, at least), and I wish you all success and happiness. As for myself, the world is a bit of a jumble at the moment, but I know that things can only get better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112837395370150156?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112837395370150156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112837395370150156' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112837395370150156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112837395370150156'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/10/lshanah-tovah.html' title='L&apos;Shanah Tovah'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112730677872818323</id><published>2005-09-21T08:43:00.000-04:00</published><updated>2005-09-21T08:46:18.730-04:00</updated><title type='text'>Canadian isn't all that counts...</title><content type='html'>&lt;p&gt;INXS got it wrong, and that's all I have to say about that.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112730677872818323?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112730677872818323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112730677872818323' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112730677872818323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112730677872818323'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/09/canadian-isnt-all-that-counts.html' title='Canadian isn&apos;t all that counts...'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112687699657893814</id><published>2005-09-16T09:07:00.000-04:00</published><updated>2005-09-16T09:23:16.616-04:00</updated><title type='text'>Thanks, folks.</title><content type='html'>&lt;p&gt;Just a quick note to say thank-you to all of those who have responded to my previous posting (and not all of the responses were posted here). I feel a &lt;strong&gt;lot&lt;/strong&gt; better about the direction I'm taking now. And believe me, given my history, it's a lot easier to fall into the "what the hell have I done" thinking pattern than the "future's so bright I gotta wear shades" one.&lt;/p&gt;
&lt;p&gt;Everyone needs a certain amount of stress to function properly. Eu-stress, the psychologists call it. I didn't really understand, though, how far past that certain amount, how deeply into dys-stress (or distress), I had gone until it was lifted for a while. With your help, I feel that load lifting again.&lt;/p&gt;
&lt;p&gt;That being said, I'd still rather do this with a more substantial portfolio of liquid assets. But when all is said and done, I'd rather live with a bit of uncertainty than have a biweekly paycheque and monthly heart attacks....&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112687699657893814?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112687699657893814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112687699657893814' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112687699657893814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112687699657893814'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/09/thanks-folks.html' title='Thanks, folks.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112675837268611794</id><published>2005-09-15T00:22:00.000-04:00</published><updated>2005-09-15T00:26:12.693-04:00</updated><title type='text'>It's quiet. Too quiet.</title><content type='html'>&lt;p&gt;I know there hasn't been a whole lot going on here lately. Part of that has to do with the fact that I managed to take a week off of work a little while back. It was just a week, but it was a week of peace and quiet. The constant racket of downtown living was replaced by bird song, quiet conversation and the occasional dog bark. I didn't manage to get completely away from the computer or from development, but I was able to put the office aside and get some (well, only a little, really) of my personal work done. And for a few days, there, I actually felt something like healthy.&lt;/p&gt;
&lt;p&gt;Then the week of peace ended, and it was time to go back to work. I really didn't understand what the job was doing to me until that first day back. I could feel my chest tightening, my stomach churning, the tension returning to every muscle in my body. My back made its presence known in no uncertain terms. That was all within an hour of returning to the office. Since then, my insomnia has returned. I knew right away that this job is killing me.&lt;/p&gt;
&lt;p&gt;So to anyone that was expecting to see me at the 'sphere, I'm afraid I'll probably have to disappoint you. I may need the money to bridge the gap between jobs. I'm not exactly well-positioned for a strategic withdrawal from the working world, and I don't have anything firm lined up yet. Who knows? I may end up flipping burgers or something for a while.&lt;/p&gt;
&lt;p&gt;All I know is that I can't stay where I am, locked permanently into R5, doing minimal-touch maintenance on some of the most horrifically poorly architected and designed applications I've ever seen. (There is no way anyone can convince me that four minutes to open a form is either normal or acceptable.) I don't like not being able to fix the fundamental problems because quarterly numbers take precedence over an overall ROI on a proper fix. I don't like being handed projects in mid-stream that have been approved with estimates that are off by an order of magnitude because the time allotted for estimation is insufficient, or where the specification has little or nothing to do with the actual requirements (something that is likely to turn up only in acceptance testing). I don't like nondeterministic development cycles, waiting for weeks or months to have high-priority stuff tested by stakeholders who are too busy already, while my deliverables slip and the slippage is recorded against my performance. I don't like doing an hour of paperwork for every hour of development effort (on my own time, thanks) that is likely to be rejected at some level because I didn't use the magic words. Most of all, I don't like being called a &amp;quot;consultant&amp;quot; when I'm actually just an interchangeable warm body in just another outsourcing centre, distinguishable from my Indian colleagues only by time zone (for which the client pays a small premium).&lt;/p&gt;
&lt;p&gt;I'm good at what I do when I'm allowed to do what I'm good at. I've been known to put in 400-hour months to get the job done. I hope that when I put this job behind me I can use my powers for good. I have applications to release to beta and a book to finish, neither of which I've been able to do, what with my soul being sucked dry and all. I look forward to the day when I can solve somebody's real problems after finding out for myself what the problems were in the first place.&lt;/p&gt;
&lt;p&gt;And I look forward to meeting some of you some day, if I can ever afford it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112675837268611794?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112675837268611794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112675837268611794' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112675837268611794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112675837268611794'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/09/its-quiet-too-quiet.html' title='It&apos;s quiet. Too quiet.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112493946072090852</id><published>2005-08-24T23:09:00.000-04:00</published><updated>2005-08-25T20:55:54.356-04:00</updated><title type='text'>How much of your youth can you still stomach?</title><content type='html'>&lt;p&gt;Apparently, the game is this:&lt;/p&gt;
&lt;blockquote&gt;The instructions are: Go to &lt;a href="http://www.musicoutfitters.com/"&gt;musicoutfitters.com&lt;/a&gt;, and do a search on the most popular 100 songs from the year you graduated high school. (You can do this by searching on the year you graduated). Bold the ones you actually like. (Understand that the word "like" in this case means, at the very least, "wouldn't immediately change the radio station from.") Pick a favorite. Underline that favorite. And Strikethru the ones you loathe. Italicize the ones you consider to be guilty pleasures.&lt;/blockquote&gt;
&lt;p&gt;Well, I never actually graduated High School. I was granted sufficient credits to graduate from the Catholic school I had been attending on a part-time, casual, not-enough-money-to-play-pool-today basis at the end of the 12th grade in 1978, but without merit and on the condition that I continue elsewhere. You see, in my day, and in the province of Ontario, there was still a year to go if you wanted to attend University. I took three maths and three sciences in grade 13, but dropped out of Chemistry with a month or so to go in the year due to irreconcilable differences with my teacher (who, by the way, taught my kid brother the same analysis technique I was failed for inventing some years later, so although my year remains incomplete, I feel somewhat vindicated). I would have graduated in '79, along with &lt;a href="http://www.geniisoft.com/showcase.nsf/geniiblog"&gt;Ben&lt;/a&gt; and &lt;a href="http://www.ns-tech.com/blog/geldred.nsf/"&gt;Gregg&lt;/a&gt;, though, so here's my list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;i&gt;My Sharona, The Knack&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Bad Girls, Donna Summer&lt;/s&gt; &lt;/li&gt;
&lt;li&gt;&lt;s&gt;Le Freak, Chic&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Da Ya Think I'm Sexy, Rod Stewart&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Reunited, Peaches and Herb&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Will Survive, Gloria Gaynor&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Hot Stuff, Donna Summer&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Y.M.C.A., Village People&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Ring My Bell, Anita Ward&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Sad Eyes, Robert John&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Too Much Heaven, Bee Gees&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;MacArthur Park, Donna Summer&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;When You're In Love With A Beautiful Woman, Dr. Hook&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Makin' It, David Naughton&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Fire, Pointer Sisters&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Tragedy, Bee Gees&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;A Little More Love, Olivia Newton-John&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Heart Of Glass, Blondie&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;What A Fool Believes, Doobie Brothers&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Good Times, Chic&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;You Don't Bring Me Flowers, Barbra Streisand and Neil Diamond&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Knock On Wood, Amii Stewart&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Stumblin' In, Suzi Quatro and Chris Norman&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Lead Me On, Maxine Nightingale&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Shake Your Body, Jacksons&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Don't Cry Out Loud, Melissa Manchester &lt;/s&gt;&lt;/li&gt;
&lt;li&gt;The Logical Song, Supertramp&lt;/li&gt;
&lt;li&gt;&lt;s&gt;My Life, Billy Joel&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Just When I Needed You Most, Randy Vanwarmer&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;You Can't Change That, Raydio&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Shake Your Groove Thing, Peaches and Herb&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I'll Never Love This Way Again, Dionne Warwick&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Love You Inside Out, Bee Gees&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;I Want You To Want Me, Cheap Trick&lt;/li&gt;
&lt;li&gt;&lt;s&gt;The Main Event (Fight), Barbra Streisand&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Mama Can't Buy You Love, Elton John&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Was Made For Dancin', Leif Garrett&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;After The Love Has Gone, Earth, Wind and Fire&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Heaven Knows, Donna Summer and Brooklyn Dreams&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;The Gambler, Kenny Rogers&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Lotta Love, Nicolette Larson&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Lady, Little River Band&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Heaven Must Have Sent You, Bonnie Pointer&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Hold The Line, Toto&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;He's The Greatest Dancer, Sister Sledge&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Sharing The Night Together, Dr. Hook&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;She Believes In Me, Kenny Rogers&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;In The Navy, Village People&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Music Box Dancer, Frank Mills &lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;The Devil Went Down To Georgia, Charlie Daniels Band&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Gold, John Stewart&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Goodnight Tonight, Wings&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;We Are Family, Sister Sledge&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Rock 'N' Roll Fantasy, Bad Company&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Every 1's A Winner, Hot Chocolate&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Take Me Home, Cher&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Boogie Wonderland, Earth, Wind and Fire&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;(Our Love) Don't Throw It All Away, Andy Gibb&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;What You Won't Do For Love, Bobby Caldwell&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;New York Groove, Ace Frehley&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Sultans Of Swing, Dire Straits&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Want Your Love, Chic&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;Chuck E's In Love, Rickie Lee Jones&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Love The Night Life, Alicia Bridges&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Ain't No Stoppin' Us Now, McFadden and Whitehead&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Lonesome Loser, Little River Band&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Renegade, Styx&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Love Is The Answer, England Dan and John Ford Coley&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Got To Be Real, Cheryl Lynn&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Born To Be Alive, Patrick Hernandez&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Shine A Little Love, Electric Light Orchestra&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Just Fall In Love Again, Anne Murray&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Shake It, Ian Matthews&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Was Made For Lovin' You, Kiss&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Just Wanna Stop, Gino Vannelli&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Disco Nights, G.Q.&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Ooh Baby Baby, Linda Ronstadt&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;September, Earth, Wind and Fire&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Time Passages, Al Stewart&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Rise, Herb Alpert&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Don't Bring Me Down, Electric Light Orchestra&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;Promises, Eric Clapton&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Get Used To It, Roger Voudouris&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;How Much I Feel, Ambrosia&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Suspicions, Eddie Rabbitt&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;You Take My Breath Away, Rex Smith&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;How You Gonna See Me Now, Alice Cooper&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Double Vision, Foreigner&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Every Time I Think Of You, Babys&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Got My Mind Made Up, Instant Funk&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Don't Stop 'Til You Get Enough, Michael Jackson&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Bad Case Of Lovin' You, Robert Palmer&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Somewhere In The Night, Barry Manilow&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;We've Got Tonite, Bob Seger and The Silver Bullet Band&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Dance The Night Away, Van Halen&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Dancing Shoes, Nigel Olsson&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;The Boss, Diana Ross&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Sail On, Commodores&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;I Do Love You, G.Q.&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Strange Way, Firefall&lt;/s&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Not exactly a great year. Then again, some of these songs don't seem to belong at all. I'm pretty sure that &amp;quot;Pieces of Eight&amp;quot; was a very early '78 release &amp;mdash; I distincly remember it blaring on the 8-track in a Pacer belonging to a friend at the aforementioned Catholic school &amp;mdash; so &amp;quot;Renegade&amp;quot; shouldn't be there. &amp;quot;Parallel Lines&amp;quot; was a mid-'78 release, so &amp;quot;Heart Of Glass&amp;quot; should have come and gone before the new year. (Okay, it should have gone much sooner than that. I liked Blondie the punk band; that disco album was more than a little disappointing. And &amp;quot;Autoamerican&amp;quot; did nothing to make me feel better.) I have a feeling that the release and promotion schedule in Canada is/was significantly different than in the US; there are a lot of songs I remember from different years from my American friends, sometimes by quite a few years. &amp;quot;Sunshine On Lieth&amp;quot; was everywhere in Canada in '88; I hear it didn't get any non-college airplay in the 'States until after Benny And Joon was released.&lt;/p&gt;
&lt;p&gt;I won't apologise for &amp;quot;Chuck E's In Love&amp;quot;. Rickie Lee Jones' eponymous album is one of my all-time favorites and still gets heavy rotation in my listening list. Song 1, side 1, may not be the best song on the album, but it &lt;strong&gt;was&lt;/strong&gt; the song that got me to listen to the rest.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112493946072090852?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112493946072090852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112493946072090852' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112493946072090852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112493946072090852'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/08/how-much-of-your-youth-can-you-still.html' title='How much of your youth can you still stomach?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112485146101480937</id><published>2005-08-23T22:33:00.000-04:00</published><updated>2005-08-24T16:31:34.273-04:00</updated><title type='text'>Sorry about the Captcha* thing</title><content type='html'>&lt;p&gt;Once upon a long time ago (that would be last week some time), it was easy to comment on this blog. Nary a bit of comment spam ever came my way. In the past week and a bit, I've had to delete several. While I haven't had nearly the problems that some folks have had, I thought I'd take advantage of a Blogger feature to try to nip this stuff in the bud.&lt;/p&gt;
&lt;p&gt;A word of warning, though -- the Captcha* thing times out reltively quickly, so if you are entering a longish comment with typing skills that match my seventeen words per hour, you may have to resubmit your comment with a new Captcha value.&lt;/p&gt;
&lt;dl&gt;&lt;dt&gt;*Captcha&lt;/dt&gt;&lt;dd&gt;Completely Automated Public Turing Test to Tell Computers and Humans Apart. You know, those squiggly alphanumeric pictures you have to "copy" into a text field. So far this year, people can usually extract the characters from the picture in a reasonable amount of time and computers usually take to long. I give it until about mid-February (around my birthday, more or less) before spambots grow a good-enough OCR facility to make the whole thing worthless.&lt;/dd&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112485146101480937?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112485146101480937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112485146101480937' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112485146101480937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112485146101480937'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/08/sorry-about-captcha-thing.html' title='Sorry about the Captcha* thing'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112363692707073567</id><published>2005-08-09T19:51:00.000-04:00</published><updated>2005-08-09T21:22:07.126-04:00</updated><title type='text'>Leven Schtein all over the place....</title><content type='html'>&lt;p&gt;Okay. Let's say, for the sake of argument, that you have to import a whole whack of data into a new application. Those data have been maintained, yea, verily, passed down from generation to generation, on a series of clay tablets. Well, they might as well have been, anyway.&lt;/p&gt;
&lt;p&gt;You see, just as your brand-spanking-new application has finished all of the various tire-kicking, surprise &amp;quot;requirements&amp;quot; miraculously extrapolated from the font face used in the original request document, haggling over the UI and so forth intact and approved, you are handed the old &amp;quot;system&amp;quot; for import. A finer collection of Excel spreadsheets there never was. Each subtly different from all of the others. Oh, they all contain the same set of values, but the columns are in different orders on every sheet, and even from sheet to sheet within the same workbook, the column headers are slightly different. There is nothing really jarring about the differences. Any idiot could look at the sheets and understand what was there.&lt;/p&gt;
&lt;p&gt;Your average computer doesn't quite make it up to the level of idiot, though, does it? When I saw that the columns were out of order, I thought it would be easy to simply look at the header row and do some field mapping there. Then when I started to spot exceptions &amp;mdash;abbreviations used in one place, full spellings elsewhere, plurals used at random, and so forth &amp;mdash; I thought I could code for the oddballs. When I saw that they were all oddballs in one way or another, I had to rethink things. I could edit all of the spreadsheets, but could I be sure that I'd get them all, and get them all right? Manually entering the data was an even sillier idea, since it would be months before everything was entered, and the data are constantly changing. There would be duplicates everywhere, and we'd never be able to whittle it down to a single, correct set of data.&lt;/p&gt;
&lt;p&gt;So I needed a programmatic solution, and I needed one that could tell whether the value it was reading was &amp;quot;close enough&amp;quot; to any one of the list of canonical labels I had assembled.&lt;/p&gt;
&lt;p&gt;Enter Levenschtein.&lt;/p&gt;
&lt;p&gt;Have you ever played Word Morph? You know, the game where you try to get from one word to another by changing only one letter at a time? The Levenschtein Distance, or Edit Distance, uses the same sort of system to determine the difference between two strings. How many leters need to be changed, added or removed to get from one word or phrase to another? There are a lot of implementations out there on the web already, so there wouldn't be a whole lot of benefit posting the code I used. Google, as ever, is your bestest friend.&lt;/p&gt;
&lt;p&gt;Data import is probably not the best use of Levenschtein. It's something you'd normally see in a search, returning results that are close but not quite what the user entered, or in a &amp;quot;did you mean ...&amp;quot; suggestion. In this case, though, I could count on the fact that the variations on a theme were closer to one another than they were to any of the other headings.&lt;/p&gt;
&lt;p&gt;Now that I know it works, though, I have to go back and take a look at that PNL query code I was talking about earlier.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112363692707073567?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112363692707073567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112363692707073567' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112363692707073567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112363692707073567'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/08/leven-schtein-all-over-place.html' title='Leven Schtein all over the place....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112313116994690350</id><published>2005-08-04T00:52:00.000-04:00</published><updated>2005-08-04T00:52:49.953-04:00</updated><title type='text'>Slowly getting there</title><content type='html'>&lt;p&gt;The Utility Server applications suite is very near completion. It was getting a bit late in the Domino 6 life cycle, so I took a bit of extra time to make sure it would work with whatever Domino 7 configurations happened to be in place as well. It's going a bit more slowly than I'd like, both because of the back problem situation and because, well, this is an evenings and weekends thing, what with my employer expecting that their work would take priority in the office and all.&lt;/p&gt;
&lt;p&gt;The suite is pretty much what you'd expect, I suppose &amp;mdash; an enterprise scheduler based largely on the Open WebCalendar code you've already seen, a CRM, a CMS, a project management application, a &amp;quot;website in a box&amp;quot;, a help desk/bug tracker, and a portal. All can be used standalone or as components of an integrated application. (Okay, the portal all by itself with nothing to run in it is pretty much useless, I'll admit.) What I hope will set the suite apart from the others out there is the bang for the buck factor. I expect to price it so that it's a reasonable fit as a purchase plus optional maintenance with a Utility Express turnkey (about the price of a &amp;quot;professional&amp;quot; productivity suite) or as a rental with a low-end hosted Domino solution. Either way, the BP/ISP gets his/her/its cut as well. Target audiences would include small businesses and NGOs. (I figure the ability to create an adaptive project-oriented schedule in a volunteer-driven organisation would be a good selling point.)&lt;/p&gt;
&lt;p&gt;I've tried to make the applications as close to best-of-breed as possible, but I'm approaching the game from a developer's point of view rather than the end-users'. I'll be needing a smallish number of pre-release testers who can make a legally-binding promise not to sell the applications as their own or release them as free apps. Drop me a line if you're interested.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112313116994690350?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112313116994690350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112313116994690350' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112313116994690350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112313116994690350'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/08/slowly-getting-there.html' title='Slowly getting there'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112257771183113290</id><published>2005-07-28T15:07:00.000-04:00</published><updated>2005-07-28T15:08:31.846-04:00</updated><title type='text'>Yeah. I know.</title><content type='html'>&lt;p&gt;Yes, it's been way too long again. Funny, but every time I find a little something to get enthusiastic about, something else will come along to let the air out of the tires.&lt;/p&gt;
&lt;p&gt;For the past two weeks or so, I've been running on medication and willpower. Not recreational medication (although some of what I've been taking could be recreational under different circumstances), but muscle relaxants and pain killers to help me deal with what's left of my back. It's been getting a lot worse lately. I've had my lucid moments, but drug sleep is not real sleep, and even though I'm not catching any sort of a buzz from what I'm taking, I've found it incredibly difficult to maintain any sort of concentration. And yeah, I've been a little cranky (the verity of which Mika Heinonen would no doubt gladly confirm); the pain is diminished somewhat, but I'm still spending my days close to tears.&lt;/p&gt;
&lt;p&gt;&amp;lt;aside&amp;gt;I've always thought it was a bit unfair that all one gets from a painkiller is a painkiller when there's pain to kill. I mean, I have a good reason (not excuse) to take this stuff, a license if you will, and none of it does what it did when I didn't actually need it. It may have been twenty years, but there's still a little someone in the back of my head that would just as soon be high if he thought he could get away with it.&amp;lt;/aside&amp;gt; &lt;/p&gt;
&lt;p&gt;I have no idea where things go from here. I mean, I'm losing the ability to keep the big picture in mind when I'm working on details. In another line of work, that wouldn't be a problem, really. But when you get to a point where you can only reference the class, function, sub or even the short loop that you're currently coding without the ability to remember so much as the inputs and expected outputs for as long as it takes you to write the comments/pseudocode that would be your guide, it becomes something of a liability to a developer. I can answer people's questions on LDD only because the problems usually have a simple, short solution. Memory IO is minimal, and the whole transaction fits in a single packet.&lt;/p&gt;
&lt;p&gt;I'm currently working on a pseudo-natural-language query/reporting tool for Notes. The aim was to allow a user to perform complex ad hoc queries and create scheduled reports without further developer intervention. The user selects the document types they want to see, the fields they want in the order they want them, sets formatting preferences for the various data types, defines conditions for the query (including data relations), sets a display type (flat, categorised, paged) and a sort order on one or more values that may or may not be included in the output. When I designed it, the whole thing was pretty clear, and I've got the UML and pseudocode to prove it. Even with everything done up front, I'm having a hell of a time trying to create working code. And no, the code is not terribly difficult. Like most dev efforts, it's the &amp;quot;big picture&amp;quot; that's the hard part; translating a working mental model to running code should be a matter of getting the data types and syntax right. Right?&lt;/p&gt;
&lt;p&gt;You'd think. But I can't remember things like the well-chosen, clear variable names I've used once the declaration has scrolled out of the Programmer's Pane. (Oh, and globals, when necessary, are a real pain in the posterior. I don't mind the &amp;quot;Variable not delared&amp;quot; message, but I'd really like a &amp;quot;did you mean rawComparatorString?&amp;quot; suggestion to go along with it these days.) I'll forget what the clause I'm trying to parse looks like in the time it takes me to move my eyes from the notepad on my desk to the screen.&lt;/p&gt;
&lt;p&gt;Needless to say, my productivity is way, way down, and so is my sticktoitiveness. The frustration level is pretty much overwhelming at times. I'm almost ready to go back to shining shoes, or at least I would be if I couldn't remember what &lt;strong&gt;that&lt;/strong&gt; did to my back. I'm even having trouble genericising some truly simple but kewl stuff to throw into the OpenNTF.org CodeBin. It truly sucks when you look at a 200-character formula and all you can think is &amp;quot;Kevorkian would know what to do&amp;quot;.&lt;/p&gt;
&lt;p&gt;Well, that's enough bitching for one day. Sorry.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112257771183113290?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112257771183113290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112257771183113290' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112257771183113290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112257771183113290'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/07/yeah-i-know.html' title='Yeah. I know.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112182884631202377</id><published>2005-07-19T22:40:00.000-04:00</published><updated>2005-07-19T23:07:26.320-04:00</updated><title type='text'>Goin' Commercial</title><content type='html'>&lt;p&gt;The astute among you may notice that this blog has grown to include Google AdSense ads. I figure I should be able to take in an extra thirty-seven to forty-three cents a month, depending on the hotness of the topics. If I do that every month for the next eighty-two years, and the Canadian dollar continues at its cuurent high value, I will just about be able to afford two IBM certification exams. Yay!&lt;/p&gt;
&lt;p&gt;The real problem now is going to be carefully crafting my postings so that hugely attractive product groups are displayed. So far, my name is putting up &amp;quot;Free Music Downloads&amp;quot;. I hope the good people at &lt;a href="http://www.stanrogers.net" title="The other Stan Rogers"&gt;Fogarty's Cove Music&lt;/a&gt; don't get too upset about that. And I certainly don't want to take money away from either &lt;a href="http://www.garnetrogers.com" title="Garnet Rogers' site"&gt;Garnet&lt;/a&gt; (Stan's younger brother, sidekick, and darned fine folkie in his own right) or &lt;a href="http://nathanrogers.ca" title="Site sucks, music kills"&gt;Nathan&lt;/a&gt; (Stan's son, whose own music has a slightly edgier, party quality to it). Oh, and please don't download Judas Priest, eh?&lt;/p&gt;
&lt;p&gt;I figure the market for Domino add-ins is going to be pretty limited, so I probably shouldn't have written this sentence.&lt;/p&gt;
&lt;p&gt;Do you sense an experiment in progress?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112182884631202377?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112182884631202377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112182884631202377' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112182884631202377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112182884631202377'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/07/goin-commercial.html' title='Goin&apos; Commercial'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112106362554672488</id><published>2005-07-11T02:32:00.000-04:00</published><updated>2005-07-11T02:33:45.556-04:00</updated><title type='text'>Index of Reflection</title><content type='html'>&lt;p&gt;I made it. Today I hit a milestone in life that very few people will ever know. Unless I do something really screwed up between the time I hit the publish button and the time I go to bed, I will have accumulated seven thousand three hundred and five days of sobriety. (Don't let the date heading fool you, this is a just a bit of a late night.) That's exactly twenty years. Happy birthday to me.&lt;/p&gt;
&lt;p&gt;Well, except that I'm not celebrating. I can't help marking the passage of time. I have lived twenty years and more beyond the times I should by all rights have died. You'd think that there would be an accomplishment worthy of celebration. To tell the truth, I had always sort of pictured doing this at an AA or NA meeting, surrounded both by the people who helped me to get here and those who hope against their experience to make it this far themselves.&lt;/p&gt;
&lt;p&gt;That isn't going to happen. I have to thank AA and NA for bringing me into sobriety and for letting me know the things I have to do to stay sober and alive. I thank the members of those fellowships for telling me my story in their words and giving me hope. For most of the first eight years of my sobriety, I attended meetings at least daily, often twice in the evenings and three or more times on Saturday and Sunday. Meetings became the whole of my life, much the way that the things that qualified me for membership once had been. The Twelve Steps have been good for me (and I still live my life by them), but the meetings have not. I still go to the odd one to recharge my batteries, as it were, but I don't have a home group, so there is no party.&lt;/p&gt;
&lt;p&gt;If I am completely honest, though, I know that I have remained sober out of fear. Most of the time I don't drink or do drugs simply because it is no longer my habit to do so. After the first few months of struggling, the patterns of living that inevitably led to a binge were broken. A &amp;quot;slip&amp;quot; would not have been an accident any time after my first cake and medallion.&lt;/p&gt;
&lt;p&gt;There have been times, too (and rather a lot of them, when I think about it) that I wanted to erase the world. It isn't so much that I want to drink or get high for the party. It's more of a suicide thing, but just a temporary version of it. Not wanting to die altogether, but not particularly wanting to live through a particular moment either. That kind of thinking is obviously insane, so it's not as hard as you might think to talk oneself out of that line of thinking. I don't want to make it sound easy -- it's just not impossible to see where your mind is trying to take you as long as you are paying attention.&lt;/p&gt;
&lt;p&gt;No, the real killer for most folks in recovery for any extended period is the insidious belief that if one has been able to stay on the wagon this long, then maybe there's a chance that one was never actually addicted. Yeah, that's the ticket. I was young and irresponsible and just overdid it a bit. I'm more mature and responsible now. I can have a beer or two with the boys and that'll be the end of it, right? Not this kid. During my bad phase, I was on the wagon nearly as much as I was drunk or drugged. Never could find that moderation thing people were talking about. Still can't. For me, nothing succeeds like excess. So, yeah, I'm scared to death of that first crisp, frosty pint of an India Pale Ale, the creamy delight of a gorgeous Ontario ice wine or the peat-and-honey nose of a dram of 40-year-old Laphroaig. As much as I can taste them just writing about them, I know that the first will just be the first of many too many. And when I'm too stupid to know it, I'm still afraid that it might be true.&lt;/p&gt;
&lt;p&gt;Staying sober for twenty years has been the easy part. Living through some of those same years has been much tougher.&lt;/p&gt;
&lt;p&gt;To steal a turn of phrase from Dickens, it was the best of times, it was the worst of times. I have learned what it is to love with all my heart and soul, and I have learned what it is to have both heart and soul torn to shreds by the loss of that love. I have been there to see the spark of hope and life lit in the eyes of the hopeless and dying, and I have seen too many people with infinite promise ahead of them lose hope and kill themselves. I have had the resources to help the less fortunate around me live a slightly less desperate life, I have had nothing and found no-one there to help me.&lt;/p&gt;
&lt;p&gt;There have been times I've asked myself if it's really been worth it. When you're living on borrowed time, sometimes the interest rate seems a bit high. To those I've known for whom the answer was no, I remember you with love, and I hope you have found your peace. I'm still looking for mine.&lt;/p&gt;
&lt;p&gt;I'm hoping that much of what I have been feeling over the past few weeks has been the build-up to today. I've been spending far too much of my time gazing at my belly button lately. Perhaps, with this out of the way, I can find a little motivation to get on with my life rather than contemplating what might have been had I lived the last twenty years a little differently.&lt;/p&gt;
&lt;p&gt;Tomorrow never knows.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112106362554672488?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112106362554672488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112106362554672488' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112106362554672488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112106362554672488'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/07/index-of-reflection.html' title='Index of Reflection'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-112009821284517468</id><published>2005-06-29T22:15:00.000-04:00</published><updated>2005-06-29T22:23:32.850-04:00</updated><title type='text'>The MIT Weblog Survey</title><content type='html'>&lt;p&gt;Lately I've seen quite a number of blogs featuring a geeky logo from MIT. This ticks me off to no end. Seems just anyone can wander on over, register and participate, then throw a symbol of geek coolitude on their blog.&lt;/p&gt;
&lt;p&gt;Well, you wanna know something? I was &lt;strong&gt;invited&lt;/strong&gt; to take the survey a couple-three weeks ago, and there was no glory, no badges, and no souvenirs for this cat.&lt;/p&gt;
&lt;p&gt;Why, oh why, does the world treat me this way?&lt;/p&gt;
&lt;p&gt;Now, what I want all of you bloggers out there to do is to wander over to &lt;a href="http://blogsurvey.media.mit.edu/request" title="Take the MIT weblog survey"&gt;the survey site&lt;/a&gt;, get your key, take the survey and post the damned graphics. Maybe if I'm the only one not sporting the &amp;quot;brand&amp;quot; I can feel special again.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-112009821284517468?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/112009821284517468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=112009821284517468' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112009821284517468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/112009821284517468'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/06/mit-weblog-survey.html' title='The MIT Weblog Survey'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-111855906039396659</id><published>2005-06-12T02:47:00.000-04:00</published><updated>2005-06-12T02:51:48.966-04:00</updated><title type='text'>Oh, yeah. Blogroll. Right.</title><content type='html'>&lt;p&gt;Sorry about the linkless sidebar, folks. It goes with the template here at Blogger, and since my preferred template didn't quite work out as planned, I kinda missed the links when I threw this together. It's still not quite done (my bookmarks on this machine don't cover evertything I read), so if you're missing, please be patient. Or hand me in effigy on your own blog. Whatever.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-111855906039396659?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/111855906039396659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=111855906039396659' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111855906039396659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111855906039396659'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/06/oh-yeah-blogroll-right.html' title='Oh, yeah. Blogroll. Right.'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-111795825060705624</id><published>2005-06-05T02:50:00.000-04:00</published><updated>2005-06-05T03:57:30.660-04:00</updated><title type='text'>Penn Gillette had Uma Thurman ...</title><content type='html'>&lt;p&gt;Another small confession. Among my multiple personalities is an old-fashioned square. You know, a guy who would have been just as happy if rock and roll had never happened. Someone who likes show tunes and jazz-era pop.&lt;/p&gt;
&lt;p&gt;A couple of months back, I caught a music video on Bravo. Or, rather, I was caught by the sound of an old Gershwin tune being sung by someone with a gorgeous voice, and wandered over by the television to catch the tune. "Someone to Watch Over Me" was a little slower than I'd have played it, but certainly engaging.&lt;/p&gt;
&lt;p&gt;"Too engaging," I thought when I saw who was doing the singing. A young redhead, alone with a microphone in a large studio setting, looking far too seductive for her obvious youth and singing with a voice that did little to lessen the seduction. Trust me, to someone who looks like me, the line "he may not be the man some girls think of as handsome, but to my heart he carries the key", delivered in a particular way, can evoke some pretty deep feelings, and I was rather taken aback by the disjoint between what I was hearing and feeling and what I was seeing. As the video went on and the camera angles changed, I thought she looked a little like a kid I'd spotted on a sitcom once, but that would have been impossible -- the girl I was thinking of was barely into her teens.&lt;/p&gt;
&lt;p&gt;As it turns out, it wasn't impossible. &lt;a href="http://www.reneeolstead.com/" title="Renee Olstead's web site"&gt;Renee Olstead&lt;/a&gt; is both the difficult teevee daughter and the gorgeous voice. If you haven't heard her, go to the site and give a listen. In what I think is an absolutely amazing touch, her entire album will play at a pretty decent quality in Flash.&lt;/p&gt;
&lt;p&gt;I don't agree with the treatment in all of the songs. The duet in "Breaking Up Is Hard To Do" was a mistake from my perspective, and the break in "Sentimental Journey" could have used a little more restraint, but there is no doubt that this kid has a substantial and subtle voice. It's a mightily refreshing change from the canned "music" one usually hears from child stars who feel entitled to a recording career. No partial nudity or sexually suggestive choreography is required to make the listener hear that the girl has more than a little talent.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-111795825060705624?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/111795825060705624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=111795825060705624' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111795825060705624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111795825060705624'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/06/penn-gillette-had-uma-thurman.html' title='Penn Gillette had Uma Thurman ...'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-111711511351885440</id><published>2005-05-26T09:41:00.000-04:00</published><updated>2005-05-26T09:45:25.223-04:00</updated><title type='text'>Found problems....</title><content type='html'>&lt;p&gt;While yesterday's short-lived stylesheet looked okay, there was a wee problem that needs fixin'. For reasons unknown, the Add Comment link wasn't being displayed. (Adding the style inline to a saved version of the HTML source worked, but I couldn't find the magic class/hierarchy to make it work right away.) For that reason, I've reverted to one of the standard templates for the day. Sorry about the blogroll, etc. &amp;mdash; they'll be back tonight.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-111711511351885440?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/111711511351885440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=111711511351885440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111711511351885440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111711511351885440'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/05/found-problems.html' title='Found problems....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-111707859748860107</id><published>2005-05-25T23:30:00.000-04:00</published><updated>2005-05-26T00:19:28.266-04:00</updated><title type='text'>Connected at last....</title><content type='html'>&lt;p&gt;Hard as it may be to believe, this is the first time I've actually been connected to the internet from home since VERONICA was the bleeding edge. Well, there was that anonymous neighbor with the unsecured WAP a couple of years ago, but it wasn't actually my account. That, folks, means nothing less than that a major corporation has seen fit to make me a BILLABLE CUSTOMER. Can it be long before I'm allowed to engage in general commerce without a chaperone?&lt;/p&gt;
&lt;p&gt;I feel so grown up....&lt;/p&gt;
&lt;p&gt;Oh, and if you've got a problem with the new stylesheet, please let me know. I just got really, really tired of the template look. I had something truly kewl going on, but there's one stylesheet for both the main blog and the comments, and the overlapping classes don't quite get along. (The original version of this style had a paper-on-desktop &amp;quot;container&amp;quot;, but the single-post-plus-comments version of the page wouldn't allow the footer to work properly. Bummer. It was real key-oot.)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-111707859748860107?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/111707859748860107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=111707859748860107' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111707859748860107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111707859748860107'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/05/connected-at-last.html' title='Connected at last....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-111573513748993141</id><published>2005-05-10T10:24:00.000-04:00</published><updated>2005-05-10T10:25:37.496-04:00</updated><title type='text'>Where's the Earth-shattering kaboom?</title><content type='html'>&lt;p&gt;I'm tired. Damned tired.&lt;/p&gt;
&lt;p&gt;Like a lot of people working in a corporate environment with a mature Notes infrastructure (or, I suppose, a mature infrastructure on any platform) I spend the vast majority of my time fixing things. Not REALLY fixing, though -- no, that would involve creating an internally-billable "project" -- just putting bubblegum patches on the most obviously broken bits. That and changing keyword field values, which is something that really ought to be an end-user activity. My working life is ... well, let's just say "less than satisfying" and leave it at that, shall we?&lt;/p&gt;
&lt;p&gt;A little while back I mentioned that what I really want to do is teach other people the things I've learned (and that I continue to learn), and give them the skills they'll need to tackle the hard problems on their own. Unfortunately, I don't have the means right now to put myself backinto the classroom, not am I likely to acquire those means working where I am right now. That means I need to make a couple of changes to the way I've been living my life.&lt;/p&gt;
&lt;p&gt;First, I've got to become a little bit more, um, mercenary. For just about as long as I've been involved in the Domino community, I've put nearly as much effort into helping other developers as I've put into doing my own work. Besides my obvious presence in the LDD fora, there have been piles of emails, and several people have taken to telephoning me for answers. I can't do that anymore. In a perfect world, if making a living weren't an issue, I could afford to indulge my altruism, but this isn't a perfect world.&lt;/p&gt;
&lt;p&gt;That isn't to say that I'm going to disappear altogether. If anything, I want to increase my visibility. The big change is that I'll be considering what's in it for me. We're talking about ruthless self-marketing here. Which bring us to the question, "marketing what, exactly?"&lt;/p&gt;
&lt;p&gt;Well, I've got a few projects that have been cooking for a while, and several of them are at the "reducing the sauce" stage. Among these are a series of templates aimed squarely at the Domino Utility Server Express, which I plan to offer and support as low-cost shrinkwrapped products (well, electronically shrinkwrapped, et least). Not that I'd turn away larger customers or anything (unless they're already customers of my employer, in which case I'd be contractually obliged to say no for the moment). These represent some of the most sophisticated work I have ever done on the platform, but at the same time they have been projects I've had to take on for the sake of the challenge alone. I've never been able to sell them internally, and I can blame that on over-compartmentalized budgets. (The same problem I've had trying to sell &lt;a href="http://www.geniisoft.com"&gt;Ben's&lt;/a&gt; Midas solutions. Everybody wants the capabilities, but nobody wants to be the sponsor that ends up paying for it.) By distributing the cost of developing and maintaining these applications over a broader customer base, I hope to be able to move Utility Express into areas that have so far been the province of expensive dedicated client-server solutions (like Microsoft Project Professional/Project Server) and more expensive custom development at costs that will make Domino a first choice on a tight budget.&lt;/p&gt;
&lt;p&gt;Then there's the book. I've found myself answering the same questions over and over again over the years, and I've come to the conclusion that there are a lot of people out there who just don't get it. And "getting it" is the hardest part of Domino development. People know what they want to do with Domino, they just don't know how to translate that into forms, views, agents and resources. I know as well as you do that there are a boatload of excellent resources out there to learn from if you're willing to take the time to learn. I also know, from the email "consultancy", that there are a lot of good web developers and designers who have come to Domino from other platforms and really don't have the time to accomodate a steep learning curve before producing results. By the same token, there are a goodly number of excellent Notes developers who don't really know where to start when they have to bring their applications to the web. I hope to change all of that.&lt;/p&gt;
&lt;p&gt;Now, getting all of this going has been a bit of a challenge. Not so much the writing or the development (although they've had their own problems), but the business aspect. That comes as a consequence of the various financial triels and travails I've told you about before. Once I've got the eyes dotted and the tees crossed, I'll start introducing things here. For the benefit of the community, I'll be going over some of the technical problems I've faced and the ways I've gotten around them. And I'll be excerpting bits of the book as well.&lt;/p&gt;
&lt;p&gt;I hope that the three of you still trying to read this will join me on my new adventure.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-111573513748993141?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/111573513748993141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=111573513748993141' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111573513748993141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111573513748993141'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/05/wheres-earth-shattering-kaboom.html' title='Where&apos;s the Earth-shattering kaboom?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-111514712487485749</id><published>2005-05-03T14:59:00.000-04:00</published><updated>2005-05-03T15:05:24.873-04:00</updated><title type='text'>Watch this space</title><content type='html'>&lt;p&gt;A change is gonna come.&lt;/p&gt;&lt;p&gt;I know I've been, well, frugal with my postings for a while. Frankly, I've been putting my energies elsewhere. Some of that will be spilling over into this domain shortly, though, and it just may happen that this could become the place where the cool geeks hang out again....&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-111514712487485749?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/111514712487485749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=111514712487485749' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111514712487485749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111514712487485749'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/05/watch-this-space.html' title='Watch this space'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-111039401238870291</id><published>2005-03-09T13:46:00.000-05:00</published><updated>2005-03-09T13:46:52.393-05:00</updated><title type='text'>Up Where We Belong</title><content type='html'>&lt;p&gt;Yesterday's entry seems to have awakened a few things in me again. Like, f'rinstance, the feeling that no matter how good I may seem to be at this programming game, or at math, electronics, and so forth, I'll never be more than a grunt. That is, I can do the job and do it well, but I'll never be counted in the ranks of people who go beyond mere competence. Yeah, I've had a few good ideas, but this game is all about creativity and exploration. Or at least it should be.&lt;/p&gt;&lt;p&gt;There is one thing, though, that I'm more than just good at, and that's teaching. It wasn't something I went into on purpose. I was an avionics technician in the Canadian Forces (they used to be Armed, but that sounds a little bit too aggressive for Canadian tastes &amp;mdash; I'm sure they'd get rid of the &amp;quot;Force&amp;quot; part if they could find another word) when the decision was made to close the small base I was posted to. (It's entirely coincidental, I'm sure, that both &lt;a href="http://www.lotusgeek.com" title="Go to Rocky Oliver's blog"&gt;Rocky&lt;/a&gt; and I were doing pretty much the same job at the same time.) There was an opening at the Canadian Forces School of Communications and Electronics for an instructor in the basic electronics stream, so that's where I was sent. My contribution to the decision was the fact that I couldn't come up with a reasonable objection to the order.&lt;/p&gt;&lt;p&gt;As a student, I never had much use for the classroom, and in the few classes I sat in on before being loosed on my first group of students, I quickly realised why. The guys I watched hit every teaching point in the lesson plan, all right, and I could even tell what the really important points were &amp;mdash; they read the lesson plan a little more loudly at those points. Okay, there was more going on than reading from the lesson plan, but not &lt;em&gt;much&lt;/em&gt; more. I was determined to do better.&lt;/p&gt;&lt;p&gt;You've probably heard it said that those who can, do, and those that can't, teach. That may be true to a great extent, but it absolutely not the way it should be. If students are to understand what is being taught, most need to be able to relate the new information to concepts thay already have in hand. Understanding is object-oriented; new concepts ought to extend the old. The challenge in teaching is determining the &amp;quot;base class&amp;quot; upon which one's students can build, and since every student comes into the class with a unique set of interests and experiences, an off-the-shelf analogy will rarely be as effective as one would like. A good teacher, then, needs to be at least somewhat connected to the world the students inhabit, must be willing to engage his or her students at a level that makes it possible to see where working analogies can be drawn from, and needs to know enough about the subject matter to create relationships between what the students know and what they need to learn. To a young private who has been assigned archery as a compulsory hobby while in training (welcome to the military, kid), a strung longbow is a perfect model for explaining FM radio spectrum signatures. A good teacher of FM theory should know that, and know why &amp;mdash; and should know why somebody who has never drawn a bowstring wouldn't get it.&lt;/p&gt;&lt;p&gt;I've done a lot of things for a living over the years, from sweeping streets, shining shoes and flipping hamburgers to playing jazz saxophone, from graphic design to programming computers. All of those have been the answer to the question, &amp;quot;what do you do?&amp;quot; There has only ever been one occupation in my life that answers, &amp;quot;what are you?&amp;quot; I am a teacher. It's what I do best. It's what I enjoy most.&lt;/p&gt;&lt;p&gt;Now I have to figure out how to get back into the classroom.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-111039401238870291?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/111039401238870291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=111039401238870291' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111039401238870291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111039401238870291'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/03/up-where-we-belong.html' title='Up Where We Belong'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-111029418583967885</id><published>2005-03-08T09:54:00.000-05:00</published><updated>2005-03-08T10:03:05.846-05:00</updated><title type='text'>Girls &amp; Math &amp; Stuff</title><content type='html'>&lt;p&gt;As is her customary practice, our &lt;a href="http://www.mattandjess.net" title="Go to Jessica Stratton's blog -- and Matt's too, I guess"&gt;Jess&lt;/a&gt; has provoked me so severely as to make me blog. Okay, let's get it all out in the open -- she is the only reason I started this silly site. There's only so much prodding a fellow can take.&lt;/p&gt;&lt;p&gt;Anyway, the subject of today's discussion is, &amp;quot;Do girls suck at math genetically, or have they learned to be stupid?&amp;quot; (At this point, I duck and cover, waiting for the slings and arrows of outrageous Fortune -- who is also a girl, if you believe your mythology -- to stop flying overhead.)&lt;/p&gt;&lt;p&gt;Frankly, I think it's about time that someone had the intestinal fortitude to propose the question, and I'm sorry to see Dr. Summers attacked the way he has been for merely offering the idea for exploration. You'd think that by now somebody would have noticed that people are not interchangeable, that gender (I hate that term -- words have genders, people have sexes, but politically correct is the order of the day, what?) equality does not necessarily mean that there are not differences between men and women or between boys and girls. As long as we pretend that there are no differences, there can never be true equality.&lt;/p&gt;&lt;p&gt;I approach this particular issue wearing a couple of hats. On the one hand, I have gone through life with a bit of an aptitude, one might say, for matters mathematical (I understand equations, both the simple and quadratical, about Binomial Theorem I am teeming with a lot of news --with many cheerful facts about the square of the hypoteneuse). Like most of the people I have met who have my talent, I learned mathematics as highly abstracted concepts, to which I could usually attach practical uses by intuition as much as anything else. I didn't learn maths by practical application, I learned by symbology, and the practical application was something I did with the knowledge I had. When one progresses beyond mere arithmetic in school, that is pretty much the way mathematics is taught.&lt;/p&gt;&lt;p&gt;On the other hand, though, I have been a teacher of mathematics, and I know that many students do not learn that way. Many will spend what I consider far too much time learning to manipulate the symbols, a task that does not come naturally to them, gradually working themselves to the point that they can do symbolic calculations well enough to get most of them right on a test. Yet, after all of that work, those symbols have no real meaning. These people tend to complain of an inability to do &amp;quot;word problems&amp;quot;, and wonder why their marks should be based on something that bears so little relationship to the concepts they broke their heads learning. Well, those unfair word problems are what math is all about, boys and girls.&lt;/p&gt;&lt;p&gt;On the gripping hand, I eventually became a teacher who found that if you take the time to teach from the practical to the abstract instead of the other way around, a whole bunch more people start to grok the math. And, frankly, the girls in the class tend not to be quite so stupid when you teach that way. Yes, &amp;quot;learning styles&amp;quot; lie on a continuum, but I have found that more women than men need to know what the problem they are trying to solve is before they can deal with the symbology. And the guys don't suffer at all from the treatment -- only a slightly larger fraction of males than females appear to learn well in the abstract space alone. When you strip away all of the people of both sexes who haven't learned well enough and aren't motivated by a desire to learn more of the same in the same way, that slightly larger fraction can account for the disproportionate number of men going into physics, engineering and mathematics even though more women are progressing to higher education as a whole.&lt;/p&gt;&lt;p&gt;But what about sensitivity? Girls aren't dumb, they're just treated as if they are. Right? Sorry, Charlie. You can be as sensitive, caring and understanding as you want to be, you can spend more time being encouraging than teaching the material, but if what you are teaching has no meaning to your students, they still aren't going to learn as well as they should. Most teachers who know enough about mathematics to be effective teachers of the subject learned abstractly, and truly can't fathom that other people don't learn that way. Most don't mean to intimidate -- they have taught as well as they know how to, and those students who can't understand that way do seem hopelessly lacking.&lt;/p&gt;&lt;p&gt;How about the idea that women should teach girls in order to take &amp;quot;gender bias&amp;quot; out of the equation? You know, that might work -- if the women teaching are sensitive to the REAL issue. Taking fear out of the classroom is a great idea, but fear won't go far if the material is taught in a way that doesn't breed understanding. And let's face it, there will be two kinds of women teaching -- some who learned easily from abstract symbols, and who will therefore expect that anyone else should be able to learn the same way once the evil condescending men are removed, and those who didn't learn well enough from the abstract concepts and who can't explain the practicalities. The first group will be no less oppressive than men who learned the same way, and the second group, well-meaning as they might be, are not qualified to teach real mathematics, no matter how hard they have worked to pass a few tests.&lt;/p&gt;&lt;p&gt;I am certain that this is a fair description of the problem and the solution. I may be flattering myself, but I'm pretty sure I can teach anyone of average intelligence most of the math I've ever understood -- but you know I'm just one teacher who has had some limited success with a relatively small number of students. Unless and until the problem is properly studied with a large enough number of students, male and female, of varying social backgrounds, we'll never know for sure. As long as people mistake equality for sameness (even in math, things can be equal without being congruent, and congruent without being identical) and let defensiveness get in the way of reason, we'll never have the opportunity to find out for sure.&lt;/p&gt;&lt;p&gt;And you know what? If it turns out I'm right, not only will the girls get smarter, a lot of the sweat hogs in shop class will get a lot smarter too. As much as we need tradespeople in this world, the old &amp;quot;menial&amp;quot; trades involve a lot more than a good set of hands these days. So, if I am right in my analysis, and the necessary corrections are made, then maybe it's a good thing that girls today are &amp;quot;stupid&amp;quot;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-111029418583967885?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/111029418583967885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=111029418583967885' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111029418583967885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/111029418583967885'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/03/girls-math-stuff.html' title='Girls &amp; Math &amp; Stuff'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110754762772750194</id><published>2005-02-04T15:05:00.000-05:00</published><updated>2005-02-04T15:07:07.726-05:00</updated><title type='text'>Something good for a change</title><content type='html'>&lt;p&gt;If there's anyone reading this who doesn't also read &lt;a href="http://www.openntf.org/nathan/escape.nsf"&gt;Nathan Freeman's blog&lt;/a&gt;, I'd like to point you to a project he has begun that sounds like it could be one of the most important things ever done on our pet platform. This isn't about business processes. It isn't about greasing the wheels of the world's economy. It isn't even about entertaining web sites. Our Nathan has taken it upon himself to build a system that should make sense of the AIDS/HIV pandemic in Africa.&lt;/p&gt;

&lt;p&gt;I know that there are a few of you who may be quick to raise objections to this plan. You may think that data tracking for epidemiology sounds like something that might be much better suited to a relational database system. You may be right. You may also be thinking that way because you are used to living in a part of the world that has reliable electricity and telecommunications. Welcome to the real world. There are a lot more people living in places where that is not true than most of us can imagine.&lt;/p&gt;

&lt;p&gt;Notes and Domino brings things to the table that can get around those problems. Things that we take for granted, like replication and rock-solid security that doesn't depend on a central, connected authority. The ability to collect and review data despite outages or, in many cases, lack of coverage, is at least as big a part of the requirement as are the nature of the data collected and the way those data are arranged. Yep, Notes is the worst platform for an application like this -- except for all of the other ones.&lt;/p&gt;

&lt;p&gt;That being said, if you are an actual Notes guru, if you are in Africa or are portable enough to be in Africa when needed, this project may need your help, and it will be important enough to deserve it. Can't be there? You can still have ideas bounced off of you, and may be able to contribute simply by seeing things that others miss. Head over to Nathan's place and let him know who and where you are.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110754762772750194?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110754762772750194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110754762772750194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110754762772750194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110754762772750194'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/02/something-good-for-change.html' title='Something good for a change'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110754077385406721</id><published>2005-02-04T13:11:00.000-05:00</published><updated>2005-10-28T06:36:42.063-04:00</updated><title type='text'>It's been a long, long, long time....</title><content type='html'>&lt;p&gt;According to the mail I've been getting lately, it seems that having a blog brings with it the responsibility to blog. That's not quite as easy as it seems. I react to the world around me, of course, but I react in ways that aren't always appealing.&lt;/p&gt;

&lt;p&gt;Take the 60th anniversary of the liberation of Auschwitz, for instance. I had an entry keyed up that denied the Holocaust. Not, as some may imagine, that I believe for a single second that the murder of millions did not happen, or that there was not a definite and deliberate attempt to remove entire peoples from the face of the earth. I merely meant to point out that a Holocaust is a burnt offering, a sacrifice, and that no God worthy of the name would accept such a sacrifice. Specifically, the God of Abraham, of Isaac and of Jacob (baruch ha-Shem) has gone on public record telling believers in Him that human sacrifice is repugnant to Him. What happened was no sacrifice. There was nothing holy about it.&lt;/p&gt;

&lt;p&gt;We need a new word for what happened at Auschwitz/Birkenau, at Dachau, at Treblinka, at Babi Yar, and at so many nameless places throughout Europe. We need a word that doesn't sugar-coat what happened; a word that includes not only the Jews, but the Roma and the Poles. A word that politicians can't pussyfoot around, as they have done so often with "genocide". Something so clear, so obvious, that no-one ever has to teach their children what it means. Something so immediate that no-one can ever avoid using it when it happens. Something that might have stopped Rwanda. Something that may yet help in Darfur.&lt;/p&gt;

&lt;p&gt;It was a clever bit of writing, but I had to suck it back in, especially when I considered that people reading this might not read all the way through. I don't mind people thinking I'm a weirdo. I don't mind them thinking I'm an asshole. I DO mind them thinking I'm some kind of Nazi, and I DO care that others may take a few words out of context and cause pain I can't begin to imagine.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110754077385406721?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110754077385406721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110754077385406721' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110754077385406721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110754077385406721'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/02/its-been-long-long-long-time.html' title='It&apos;s been a long, long, long time....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110486114397774856</id><published>2005-01-04T13:48:00.000-05:00</published><updated>2005-01-04T12:53:05.636-05:00</updated><title type='text'>Some background, again</title><content type='html'>  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;A couple of days back, I mentioned the concept of tikkun ha-olam and included a link to &lt;a href="http://www.tikkun.org/"&gt;Tikkun.org&lt;/a&gt;. I suppose a few of you found yourselves asking, "what's a nice goy like you doing in a place like this?"&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;Like a lot of recovering addicts/alcoholics, I became sober with a lot of help from some well-known twelve step programs. The public face of these programs is meetings, the concept of sponshorship, and mutual support, but those are merely the outward mechanics of the program. In fact, only one of the twelve steps has anything at all to do with the concept of mutual aid. The rest deal with the healing of the self, with finding a purpose and with spirituality in general. The origins of the program are deeply rooted in a previous Christian ministry (the Oxford Groups), but the program as it has existed since its earliest days in Akron, Ohio and Montreal had tended to be non-denominational, with "God" as an abstract concept to be discovered by the individual.&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;Again, like a lot of people, I found myself rootless when confronted with the concept of God (or any Higher Power). I had been deeply involved in the Anglican church as a boy, but I had outgrown that. Or so I thought. I knew that there was something out there bigger than me, but I could no longer give a picture-book answer if you asked me what it was. I embarked on a bit of a spiritual quest.&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;I took a long look at the Eastern religions/philosophies, mostly because I had lingering memories of life-change stories from the late sixties and early seventies. Frankly, I didn't find enough "there" there to satisfy my hunger. Western secular philosophy left me with the same emptiness, although I did find some jewels in the works of Carl Jung and Soren Kirkegaard. Eventually, I decided to re-examine my childhood confession, resolving to throw away any of the "received truths" that might slant my reading and taking the writings that existed at face value, listening for my own truths.&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;One of the first things I noticed was that this Jesus guy and his followers were Jews. Funny, they don't dwell on that aspect much in the Anglican church, but it is one of the big, obvious bits that one just can't get around. It also appeared that what these guys were teaching was not particularly new, but had been hanging around Judaism for some time (if that were not so, then the debates with the Sadducees and Pharisees would not have been so easily won). That meant that if I wanted to understand real Christianity, I first had to understand Judaism -- and all I knew to that point was what I'd been able to glean from comics like Jackie Mason and Alan Sherman thanks to the Ed Sullivan show. Not exactly the basis for a complex belief system.&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;I purchased pretty much the entire Judaica sections of the local bookshops, and read everything from the Steinsaltz Talmud (or, rather, what there was of it at the time in English, which wasn't much and wasn't particularly revealing), through Maimonides and the stories of the early Hassidim (particularly, Levi Yitzak of Berdechev), from the Zohar to the more modern writings of Martin Buber and Elie Wiesel. It didn't take long to discover two things: one, that Judaism is far from monolithic; and two, that, while "Shema Yisroel" is central, it is meaningless without social responsibility.&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;Around that time, I happened to find myself in a better-than-average newsstand. The sort that carries several dozen magazine titles devoted to any weirdo hobby you may have. I can't recall which magazine I went in there for, but I spotted a magazine among the news commentaries with a familiar title, one I had seen in my recent readings. I picked up my first copy of Tikkun in January of 1990, and I read The Truth. I've been reading it ever since.&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;That's not to say that I agree with everything that is printed in Tikkun. Far from it, really, but just about everything in it is the basis for discovering some aspect of who I am, what my purpose as a human being is, and how I believe the world should be. And, in case you were wondering, you don't have to be Jewish to read it -- or to write for it, for that matter. You may or may not agree with what's said. Some of the articles and editorials may even anger you. It isn't brain candy. It will make you think long and hard about who and what you are, and of how you connect to the world around you. That makes it one of the few truly worthwhile reads out there.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110486114397774856?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110486114397774856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110486114397774856' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110486114397774856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110486114397774856'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/01/some-background-again.html' title='Some background, again'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110486092287647151</id><published>2005-01-04T13:47:00.000-05:00</published><updated>2005-01-04T12:48:42.876-05:00</updated><title type='text'>Give it up -- Stop!!!</title><content type='html'>  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;Well, we've reached somethng of a breaking point here. As much as I'd like to continue posting code on this site, I've become more than a little fed up with trying to do it through Blogger. I suppose this system works well enough if all you want to do is post meaningless text (and by that I mean text lacking anything like proper semantic markup), but there's too much futzing around trying to make the HTML I write come out properly on the other end. There's also a little less reliability here than I'd like -- if I have to make five or six attempts to post in order to get the HTML right and the "creation area" is unreachable (as it often is), then there's just too much pain for too little gain.&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;&lt;o:p&gt; &lt;/o:p&gt;I will continue to post personal entries, but until I can move this blog to a more suitable environment (like, say, Domino), there will be nothing more than the occasional snippet posted here. You may take both "occasional" and "snippet" to the extreme -- I plan to post "@", "import" or "Dim" only, and then only once or twice a year.&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;span lang="EN-CA"&gt;&lt;o:p&gt; &lt;/o:p&gt;In the meantime, I am continuing to build my Domino-based blog, including articles, working examples, downloads and pictures. When I finally have access to a publicly-accessible Domino server, you'll be able to see what this place was supposed to look like in the first place. Oh, and I just may have to take Duffbert up on the ePro article thing just to satisfy my show-off urges for a while.&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110486092287647151?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110486092287647151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110486092287647151' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110486092287647151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110486092287647151'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2005/01/give-it-up-stop.html' title='Give it up -- Stop!!!'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110450454634568188</id><published>2004-12-31T09:45:00.000-05:00</published><updated>2004-12-31T09:52:09.490-05:00</updated><title type='text'>Perspective Vortices</title><content type='html'>&lt;p&gt;The events of the past few days have certainly put my little problems into some perspective. I'm going to do something I have never done before, and pass along a bit of an editorial comment by the CBC's Rex Murphy. I can't recall his exact words, but they were very close to this: just by being born in the West, we have each already won the only lottery that really matters, and we have had the benefit of those winnings from the first time we drew breath.&lt;/p&gt;&lt;p&gt;I have had to do things to survive that many of you would find distasteful or even morally repugnant. The last couple of months have certainly been no picnic. In the final analysis, though, I have been extremely lucky. I have some ability, yes, and that has lifted me to a level above tens, even hundreds of millions of people in the affluent West who will never know the chances I have been given simply by having a natural talent for mathematics. Yet even when I was working 56 back-breaking hours a week shining shoes for tips and could afford none of the trappings of our modern consumer society, when I would have thanked you for a one-hour-less-than-full-time job at a burger joint, I was still much better off than a significant portion of our little world's people. Even when I was homeless and had to stab that fellow to keep him from stealing my blanket and spare socks, I HAD a blanket and spare socks.&lt;/p&gt;&lt;p&gt;Most of the time, I am able to keep that sort of thing in mind. Whenever I've had more than I actually needed to get by, I've given to charities and individuals (a little more than ten percent of my gross income last year, for instance). While I can't fix the world all by myself, I have tried to look after a few of the less-fortunate people in it, both through blind giving to local and international organisations that do more than run trite commercials, and through actively involving myself in the lives of those people I think I can reach. Tikkun ha-olam, the Jews call it, and although I am not Jewish (except, perhaps, philosophically), I have tried to make it the central principle of my life since I regained my sobriety. (Those of you who have a mind to can probably blame &lt;a href="http://www.tikkun.org" title="Tikkun: a magazine of social commentary and conscience"&gt;Rabbi Michael Lerner&lt;/a&gt; for that.)&lt;/p&gt;&lt;p&gt;Sometimes, though, my own relatively petty problems can lead me away from that guiding principle. The past few weeks have been a great example. I was hungry, not starving; I was looking at the possibility of homelessness, but I still lived indoors. And I sincerely thank those among you who have offered support and encouragement -- but at the same time I'd like to tell you all to look elsewhere in the world for people who may not know much about Notes or programming in general, but who need your help far more than I ever have needed or will need it.&lt;/p&gt;&lt;p&gt;The Sumatran earthquake and tsunami has killed, or will kill, something in the neighborhood of a quarter-million people. Along with the initial impact of the waves, there will be as much or more devastation caused by exposure, starvation and disease, and that's if we in the West do all that we can right now, today, to mitigate the catastrophe. As bad that has been, though, we have the exact same things going on in the world every hour of every day. The difference is that this time the causal event took only a few seconds -- that's what made the news. We can all give till it hurts then wander off in a self-congratulatory stupor until the next newsworthy disaster.&lt;/p&gt;&lt;p&gt;Well, folks, there are more people homeless and starving, living in conditions that breed disease and death in this world than were affected by the waves. A very large number of them live only a few miles inland of the disaster, just out of reach of the aid that will be pouring in to the region. A few may be living closer to you -- so close you can't see them, except as a problem. When the tsumnami crisis is over and the nice, touristy coastal areas are rebuilt, please don't forget the rest of the world. Grab what pieces you can, and take them in for repairs. Please. I've seen what the Notes community can do for its own members -- imagine what it can do for the world.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110450454634568188?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110450454634568188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110450454634568188' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110450454634568188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110450454634568188'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/12/perspective-vortices.html' title='Perspective Vortices'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110382630371294463</id><published>2004-12-23T13:24:00.000-05:00</published><updated>2004-12-23T13:25:03.713-05:00</updated><title type='text'>Remember Me?</title><content type='html'>&lt;blockquote&gt;And you to whom adversity has dealt the final blow,&lt;br /&gt;With smiling bastards lying to you everywhere you go,&lt;br /&gt;Stand to, and put up all your strength of arm and heart and brain,&lt;br /&gt;And, like the Mary Ellen Carter, rise again!&lt;br /&gt;&lt;br /&gt;Rise Again! Rise again,&lt;br /&gt;Though your heart it be broken and your life about to end.&lt;br /&gt;No matter what you've lost,&lt;br /&gt;Be it a home, a love, a friend,&lt;br /&gt;Like the Mary Ellen Carter, rise again!&lt;br /&gt;&lt;cite&gt;Stan Rogers (the other one), &lt;u&gt;The Mary Ellen Carter&lt;/u&gt;&lt;/cite&gt;&lt;/blockquote&gt;&lt;p&gt;I have recently and rightly been taken to task for my long absence here. It's not so much that I've given up on the blogging idea; I've just had my mind elsewhere lately. Yes, I've been seemingly active elsewhere on the web, but it only takes me about ten minutes to scan all of the other blogs I read, and throwing a short comment in takes just a few seconds. There have also been the developerWorks postings, but trust me, they don't occupy much of my time either.&lt;/p&gt;&lt;p&gt;I've been busy fighting with DXL, trying to keep my mind off of my non-Notes life. The DXL bit will appear in another posting &amp;mdash; it's really pretty cool &amp;mdash; but this bit's about the non-Notes life, such as it is.&lt;/p&gt;&lt;p&gt;One thing they don't tell you in the &amp;quot;So you've decided to become homeless...&amp;quot; pamphlet is that it will follow you for the rest of your life. I've been involved in a truly ridiculous situation of late, the upshot of which is that until yesterday I hadn't been paid yet by my new employer. At all. Ever.&lt;/p&gt;&lt;p&gt;On the one hand, I (like most people in the white-collar world) work for an employer who pays exclusively through direct deposit to a bank account. I have such an account, of course &amp;mdash; that's how my former employer paid as well. However, the company contracted to do the payroll requires a void cheque in order to begin payment. As luck would have it, my chequebook, which has been otherwise unused lo these many years, was one of those items that are inevitably misplaced in every move. It would seem a simple thing either to get new cheques or, failing that, to open another bank account, right? Not if your name sets off bells and sirens in the credit system, it isn't.&lt;/p&gt;&lt;p&gt;It's not that I have debt owing or anything, I just haven't had any bills to pay that weren't cash on the barrel head for the last dozen or so years, and cash businesses don't make positive reports to credit bureaus. (Or, often, to the revenuers either.) I have essentially been living off-paper for more than a decade without knowing it. Couple that with the anti-laundering measures that have been introduced into the banking system over the same decade or so, and any odd requests come up &amp;quot;potentially criminal&amp;quot;. Apparently, requesting cheques from a city in a different province from your home bank branch (which is still in Toronto for the moment) with near-zero balances in all of one's accounts is an &amp;quot;odd request&amp;quot;. No cheques for you! Next!&lt;/p&gt;&lt;p&gt;For the benefit of my American readers, I should point out that the banking system in Canada is quite a bit different from the system in the States. Here, the system consists principally of five chartered banks: TD Canada Trust; BMO Bank of Montreal; RBC (The Royal Bank of Canada); The Bank of Nova Scotia (ScotiaBank); and the Canadian Imperial Bank of Commerce (CIBC) along with a few large regional players. All of these institutions are huge (think Citibank), and you can't just go down the street to the Second National Bank of Fourth Street if you don't like the service at the Fourth Street Commercial Bank.&lt;/p&gt;&lt;p&gt;The one constant across all bureaucracies is that policy and procedure take precedence over common sense. I earn a pretty decent salary in modern Canadian terms, am single, debt-free and live in cheap, though comfortable accommodations selected specifically to allow me to save a whole whack of money in the too-few years I have left before I'll have to consider retirement. And here I was, reduced to eating plain white rice for more than two weeks (I knew there was a reason I always buy the feed-an-army-sized bag), looking at January's rent due-date, and seriously wondering what a Montreal winter outdoors might be like. Surreal. And not something I wanted to spend a lot of time dwelling upon.&lt;/p&gt;&lt;p&gt;Almost everyone has had some sort of financial fright at some point in their life. Going through the big one a second time gives me, I think, the right to assert that the fear of the unknown doesn't begin to compare to the fear of the known. Yes, I was scared. And angry. I've worked my buttocks off (figuratively &amp;mdash; I have actually accumulated surplus pew-padding in the physical sense) to move from homeless disposable humanity through skilled shoe-shine boy to relatively well-respected Notes developer, and it all seemed to be coming to naught in a huge hurry and for no good reason. I tried to write about it, but the level of venom in what I was writing was beyond the pale. (A pale, by the way, is one of those sharpened-log, overgrown picket fence deals you see around forts in Western movies, or, rather, the mediaeval version of it. That which was beyond the pale was out of the Lord's protection, lawless and wild.) Angry as I was, even I could see that my anger had displaced reason completely. The recent little incident (hereinafter referred to as The Incident) in the Notes blogging community wouldn't have been noticed at all had I published, and I would have committed social and professional suicide.&lt;/p&gt;&lt;p&gt;It seems that some sort of resolution has been reached, though. And my bank was kind enough to let me take 25% of my earnings &amp;mdash; I still have to wait until January 4 for &amp;quot;clearance&amp;quot; (on a certified corporate cheque?). It's a bit late for Christmas, but the new year should be a happier one. Perhaps with that load lifted, you may see a bit more output here.&lt;/p&gt;&lt;p&gt;If only I had listened to the other Stan.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110382630371294463?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110382630371294463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110382630371294463' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110382630371294463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110382630371294463'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/12/remember-me.html' title='Remember Me?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110382617938905714</id><published>2004-12-23T13:22:00.000-05:00</published><updated>2004-12-23T13:22:59.390-05:00</updated><title type='text'>Speaking of the other Stan....</title><content type='html'>&lt;p&gt;A number of bloggers, including &lt;a href="http://vowe.net" title="Volker Weber"&gt;Volker&lt;/a&gt;, &lt;a href="http://www.nedbatchelder.com/blog/index.html" title="Ned Batchelder"&gt;Ned&lt;/a&gt; and &lt;a href="http://www.lotusgeek.com/sapphireoak/lotusgeekblog.nsf" title="Rocky Oliver"&gt;Rocky&lt;/a&gt; have recently mentioned Google's new Suggestion service. I tried my name, just to see what would come up. Although I saw myself cited and published in a whole bunch of places I wasn't aware of (mostly repostings and translations of comments I've made in the developerWorks fora by people who've mistaken me for an expert, several in commercial newsletters and not-so-free Domino advice sites that really ought to pay for what they take &amp;mdash; or at least ask permission), the search was much as I expected. There are just under a hundred thousand results pointing to this Stan Rogers either directly or obliquely; the remaining 1.2 million or so refer to a folk singer who died tragically and far too young in an airplane fire at Chicago's O'Hare airport in 1983.&lt;/p&gt;&lt;p&gt;I've been listening to Stan quite a bit lately. Not for any particular reason; I'm just in a period where homey, honest music is what suits my tastes best. There's a bit of being at home in folk music, at least for me. I come from a family that sang the old songs around the kitchen table whenever there was anyone over for company. I don't know how well the "kitchen party" translates into your culture(s), but it is, or rather, was, a way of life in a large part of Canada. It's probably a Celtic thing, since it applies to the Normans and Bretons of Northern Ontario, Quebec and l'Acadie as much as it does to the Scots of Nova Scotia, the Irish of Newfoundland and the Welsh, Cornish and Geordie of any mining town. It's sad to see all of that being wiped away by cable TV, the internet and Nintendo. Not to mention the modern insistance that the kitchen and dining room be separate places in the house.&lt;/p&gt;&lt;p&gt;(When I buy a house, the first thing I plan to do is renovate to make the kitchen the communal area it ought to be. I don't care what it does to the property value; there are other values more important in life. The chef in me still wants a kitchen full of toys, but if it doesn't have a big ol' table, enough chairs and rickety old stools to seat half the town and direct access from the back door, it ain't a proper kitchen. Oh, and the company that comes in the front door is not the same bunch as the friends who come in the back. That may be small-town of me, but that's the way I've always felt. Where I grew up, salesmen, strangers, and maybe the boss came through the front door. The people you wanted to see knew that the welcome mat and the kitchen were around back.)&lt;/p&gt;&lt;p&gt;I really can't imagine a life without music. Not as background radiation, but as something that I actively listen to and participate in. Nor can I imagine knowing a little of what life was like for people in times gone by without having their songs to tell me who they were, what they did, and what they felt. You can't know the old colliery if you can't feel the grit on your skin or the black in your lungs; you'll never know the old fishing grounds if all you know are pleasure craft and modern trawlers. Somehow, the old songs make me feel like I've had a taste of the real thing. Stan was only twelve years older than me, and a young 34 when he was taken from us, but there was something undefinably ancient in his words. It was as though he had lived through the times he sang about, the days of wind and sail. Even his modern &amp;quot;moment in a life&amp;quot; songs had an air of poignant reflection you wouldn't expect to find in someone so young.&lt;/p&gt;&lt;p&gt;I've actually met people who don't sing. Ever. I know young people who don't know a single non-national-anthem song all the way through. There's something horribly wrong with that. You would think, no matter what your opinion of modern popular music (whenever modern happens to be), that there must be at least one song that resonates with every one of us. A lyric with special meaning, or a melody that pulls at the heart in just the right way. Something.&lt;/p&gt;&lt;p&gt;I freely admit to being a child of the sixties. I lived through the height of folk music's popularity, and I heard a lot of music that went out of its way to be meaningful. (Some of that meaning was so forced as to be cheesy, but at least people were trying.) So did a lot of people who see music as background noise to keep the quiet at bay. It wasn't what was on the radio that made the difference for me, it was what was in the kitchen.&lt;/p&gt;&lt;p&gt;By the way, if we ever get together, you and I, feel free to ask me to sing a few of Stan's songs. For many of you, it's the only way you'd ever be able to tell your friends that you actually heard Stan Rogers himself sing "Barrett's Privateers" or "The Mary Ellen Carter" live &amp;mdash; maybe even in your kitchen.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110382617938905714?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110382617938905714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110382617938905714' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110382617938905714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110382617938905714'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/12/speaking-of-other-stan.html' title='Speaking of the other Stan....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110382611694104322</id><published>2004-12-23T13:20:00.000-05:00</published><updated>2004-12-23T13:21:56.940-05:00</updated><title type='text'>The Devil is in the details</title><content type='html'>&lt;p&gt;I absolutely hate about fifty percent of my job. Don't get me wrong, I wouldn't want to do anything else at this point in life, but there's a big part of the job that gets on my nerves. Give me a non-trivial problem to solve, and I can come up with a solution that would knock a lot of socks off. Tell me what an application has to do, and I can come up with what is usually a decent, often best-case architecture in next to no time, and get from there to solid code in a flash.&lt;/p&gt;&lt;p&gt;Just don't ask me to create a compelling UI, at least not for the Notes client. No, let's make that anywhere -- the few really nice web UIs I've ever designed were probably accidents. I shouldn't be trusted with fonts, tables and colours on a computer.&lt;/p&gt;&lt;p&gt;I'm not artistically challenged. Give me a canvas, oils and brushes and I'll paint you something you'd want to hang. Hell, I'll paint you something you'd want to &lt;strong&gt;buy&lt;/strong&gt;. Give me some fine parchment or the rags to make some real paper, a collection of cured quills and reeds, a knife and some inks and I can show you what calligraphy can be. I just can't translate any of that to the computer. I can't do it in an illustration or paint package, and I certainly can't do it with declarative statements, at least not without far too many hours of trial and error. Now, if you can show me what it's supposed to look like, spec the colours, etc., I can get from your picture to a working version quickly and painlessly. That's mechanical. It's the creative aspect I can't do if there's a machine between me and the work.&lt;/p&gt;&lt;p&gt;I would love to find myself in a place where I could just throw the UI to a designer. I've heard that HTML support in Notes 7 is supposed to be a huge improvement over what's in Notes 6 (that's apparently a last-minute decision, if I read people like Debbie Branco correctly, so it probably won't be true in current betas). I wonder if it will have progressed to the point that a simple code monkey like me can delegate the artsy bits to people who are actually good at that sort of thing.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110382611694104322?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110382611694104322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110382611694104322' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110382611694104322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110382611694104322'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/12/devil-is-in-details.html' title='The Devil is in the details'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110139562639965377</id><published>2004-11-25T10:11:00.000-05:00</published><updated>2004-11-25T10:13:46.400-05:00</updated><title type='text'>La Vie Sans Roses</title><content type='html'>&lt;p&gt;(With apologies to Edith Piaf)&lt;/p&gt;&lt;p&gt;A funny thing happened on the way to Montreal &amp;mdash; I found out that there were people who mattered to me.&lt;/p&gt;&lt;p&gt;As you may imagine (or not), there have been times in my life to this point when I have known loneliness. It would have been difficult for me to contemplate being more alone than, say, in those too many hours I spent desperately looking for a reason not to die when I was nearing the end of my life as a practicing addict. My homeless period was hardly one of the high points in my social life either. Still, what I felt then was nothing more than isolation. It's not the same thing.&lt;/p&gt;&lt;p&gt;For the first time in my life, I am feeling true loneliness. Loneliness isn't just a matter of having no-one around &amp;mdash; I daresay that there are few people who pass any significant time without some kind of human contact &amp;mdash; it's more a matter of having someone NOT around. Or several someones.&lt;/p&gt;&lt;p&gt;I've moved several times before, and I've been a stranger in a strange land more than once. I have left friends and acquaintances, knowing that they would fade into vague memory in less time than it takes to think about it. We all have lives full of people who seem significant while they're with us; we never find out the truth until they've been gone from sight awhile. Those have been my friendships in the past.&lt;/p&gt;&lt;p&gt;I expected that coming to Montreal would find me in the same place again &amp;mdash; a few goodbyes and half-hearted promises to keep in touch, and before long the roster of friends and acquaintances would be back up to a full-strength team and the players traded away last season all but forgotten. That's the way it's always been before. Life has its surprises, though, and is generally a hell of a lot more complicated than it needs to be.&lt;/p&gt;&lt;p&gt;Maybe I've just lost the protection that youth affords. That's got to be it &amp;mdash; I don't feel any less self-centred, arrogant or uncaring than before. Not that I'm a monster by any means, but my caring has always been a matter of convenience. You know &amp;mdash; faceless charities I could care about in a detached and abstract sort of way, and I kept genuine human interest reserved for those in direct and immediate contact. &amp;quot;Out of sight, out of mind&amp;quot; has always been the norm. Right now, I'm wallowing in sentiment. There are a handful of people whose absence is sorely felt, and one who is making this change almost unbearably painful.&lt;/p&gt;&lt;p&gt;I don't suppose it helps at all that leaving Toronto and my old job behind finally gave me the chance to redefine that one relationship. There aren't too many rules I follow in life, but I've seen what can happen if you don't at least follow the old &amp;quot;don't shit where you eat&amp;quot; rule. (It may be more-or-less acceptable to use language like that these days, but I still find it horribly awkward. How were Borroughs, Thompson and Ginsberg able to get the pictures of their sixth-grade English teachers out of their heads?) There was one person at work, though, who I had grown quite fond of. Yes, that really is an appropriate choice of words &amp;mdash; I'm not talking about a sudden enormous hormonal rush or anything like that. As much as I tried to keep things at a safe distance, with every thoughful word and gesture she slowly worked her way into my heart to the point that I'm now pretty much lost without her. The goodbyes put all of that on the table, and more.&lt;/p&gt;&lt;p&gt;Now for the complicated bit &amp;mdash; not only are we separated by an unreasonable commute, there is the fact that she's married to deal with as well. (You knew that was coming, didn't you?) It's not so much that it's impossible to have the depth of feeling we have for each other under the circumstances, but it would be a whole lot easier to deal with if we could explore those feelings without having to consider the consequences. Even if she were to run headlong into this, I'm not sure that I could be mercenary enough to go right along with it &amp;mdash; she stands to lose a lot more than I do, and the last thing I want is to see her hurt in any way.&lt;/p&gt;&lt;p&gt;(That's part of what caused the dilemma in the first place. All I wanted to say was that she had mattered to me, that all of the things she had thanked me for were merely given in response to her own incredible warmth and generosity of spirit. How much we mattered to each other was a subject that sort of grew as the artificial barriers between coworkers were erased. I should have said so much more so much sooner; she needed to hear it. Do you have anyone in your life, even at the outermost edge,  who is just brimming over with love, kindness and caring, but who still manages to think of herself/himself as somehow unworthy of reciprocal attention? Tell them they matter before it's too late.)&lt;/p&gt;&lt;p&gt;Anyway, folks, if you've been wondering what's been keeping me too busy to blog, it has been hour upon hour of letter-writing, trying to keep the enormous holes in my life at least partially filled. (For those of you who haven't heard, I hate telephones with a passion few can imagine. Reach out and touch someone, my ass &amp;mdash; all you can do is reinforce the fact that you cannot, in fact, touch them. When I picture Hell, it is very much like that.) And Jess, if you're reading this &amp;mdash; you're a pretty special lady yourself. Thanks for checking up on me. I owe you a bucketfull of hugs. (And no, Matt, I'm not trying to add another one to the resume ;o) )&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110139562639965377?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110139562639965377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110139562639965377' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110139562639965377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110139562639965377'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/11/la-vie-sans-roses.html' title='La Vie Sans Roses'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110070281715354017</id><published>2004-11-17T09:46:00.000-05:00</published><updated>2004-11-18T12:51:09.106-05:00</updated><title type='text'>Redaction and Reaction</title><content type='html'>&lt;p&gt;First, let me beg forgiveness for the original single-list posting. I let a search-and-replace get out of control, and all of the &amp;quot;:=&amp;quot; operators in the Formula Language portions were replaced with &amp;quot;:[space]=&amp;quot;. (I needed to allow line breaks in list concatenations in order to make the web page flow and failed to use the &amp;quot;Selected Text&amp;quot; range option, in case you were wondering.) If anyone was doing a copy 'n' paste, you were likely scolded severely by Designer when you tried to save the code. That'll teach you to use code you just find laying around on the web, eh? The links were also all broken because they started with &amp;quot;http[space]:[space]//&amp;quot;.&lt;/p&gt;
&lt;p&gt;Second, I want to ask you to follow the link to &lt;a href="http://damienkatz.net/2004/11/formula-languages-dirty-secret.html" title="Damien Katz: Formula Language's Dirty Little Secret"&gt;Damien's site&lt;/a&gt; and read what he has to say about Formula Language's list handling, particularly in R5. He's in a unique position to know; he's the guy who rewrote the Formula Language engine for Notes and Domino 6. If you like things like @For, @While, @Transform and @Sort, he's the guy to thank. Send him money. While you're at it, find the name of the guy (or gal) who invented the window-screen-on-a-stick thing that keeps stuff in the frying pan from spooging up the kitchen, and send him (or her) money too.&lt;/p&gt;
&lt;p&gt;You can make the dialog snappier by exploding a string of numbers rather than coding a list directly. I was not aware that, in the example I posted, 98 separate arrays were being created and 97 destroyed in memory. I had assumed that the initial declaration of a literal array/list would be dimensioned all at once, and that only additional items would take the equivalent of a Redim Preserve (or string mutation, for those who are familiar with how strings really work) hit. I like learning stuff like that; it makes me better at what I do, and what I do is often stuff that can be horribly expensive if I don't pay attention to details like that. Interesting, though, that the segment of the posting that caused my blog to break was the same piece that will improve my code from here on out. The OpenNTF R5 version will incorporate the improvement; the Notes 6 version will be using @Transform for numbering.&lt;/p&gt;
&lt;p&gt;About being expensive &amp;mdash; it's not that I go out of my way to write stuff that takes a lot of resources. I just hate to hear things like, "Notes can't do that." Notes usually can, and if it can't, then Domino on the web can. I'm not talking about writing highly transactional systems for international money transfers or anything like that. It's almost always about taking the things that Notes has proven itself to be good at, is already being used for, and moving some aspect of that to the next level. I don't have the skills (or, frankly, the ambition to gain the skills) to write low-level tools, so I'm stuck with Formulas, LotusScript, DHTML and my embarrassingly sparse Java. Often the initial implementation, while functional, is far from the best way of going about doing what I've done, but I'll release it anyway because it fulfills a business need. Just as often, I'm in uncharted waters, so I can't just ask how others have done it before. I can usually find a much better-cheaper-faster way for version 1.1, but I can also make sure that version 1.0 is as good as it can be given that it may be a fundamentally flawed approach. Paying attention to people like Damien (and others who know what they're talking about, like &lt;a href="http://www.geniisoft.com/showcase.nsf/geniiblog" title="Ben Langhinrichs, Master of Rich Text"&gt;Ben&lt;/a&gt; and &lt;a href="http://www.lotusgeek.com" title="The redoubtable, reliable Rocky Oliver"&gt;Rocky&lt;/a&gt;) helps make my bad code limp along at least a reasonable trot, and makes sure that my good code flies.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110070281715354017?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110070281715354017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110070281715354017' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110070281715354017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110070281715354017'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/11/redaction-and-reaction.html' title='Redaction and Reaction'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110052804038281552</id><published>2004-11-15T09:09:00.000-05:00</published><updated>2004-11-16T14:25:25.166-05:00</updated><title type='text'>Sex and the single list</title><content type='html'>&lt;p&gt;Okay, the &amp;quot;sex&amp;quot; part was a blatant attempt to court visitors. This has nothing to do with sex at all, I'm just including the word &amp;quot;sex&amp;quot; several times in the title and first paragraph of the article. This is about dialogboxes in the Notes client; specifically, a single ordered-list dialog.&lt;/p&gt;&lt;p&gt;The user will see a single-value listbox, three buttons to manipulate the listbox content, specifically &amp;quot;Move Up&amp;quot;, &amp;quot;Move Down&amp;quot; and &amp;quot;Remove&amp;quot;, an OS-style field to enter new content, an &amp;quot;Add to list&amp;quot; button, and the usual OK/Cancel pair. With these tools, the user can create and manage the content of a multi-value field, putting the values into any desired order without having to do any cutting, pasting or re-typing. Optionally, ND6 designers can add a &amp;quot;Sort&amp;quot; button, just in case the user wants alphabetical sorting.&lt;/p&gt;&lt;p&gt;In order to present that dialog, we are going to need some hidden stuff as well. We can't get to the choice list for a listbox directly, but we can make the listbox get its values from a field we &lt;strong&gt;can&lt;/strong&gt; get to.&lt;/p&gt;&lt;p&gt;Create a form (or subform, if you prefer) and call it &amp;quot;(OrderedListDialog)&amp;quot;. Set the form's background colour to &amp;quot;System&amp;quot; (use the little monitor picture on the colour picker). Why? Well, even though we can do pretty much whatever we want with colours, users expect to see dialog boxes that look like dialog boxes, and &amp;quot;System&amp;quot; does just that.&lt;/p&gt;&lt;p&gt;At the top of the form, create four always-hidden fields. (If these fields are not hidden, the content of the dialogbox may move lower in the dialog window as values are added to the list). The first field should be called &amp;quot;UseNumbers&amp;quot;. It will be text, editable, do not select &amp;quot;Allow multiple values&amp;quot;, and it will either contain &amp;quot;1&amp;quot; or &amp;quot;0&amp;quot;. The second is called &amp;quot;Values&amp;quot;, and will be text, editable, and this time &lt;strong&gt;do&lt;/strong&gt; select &amp;quot;Allow muliple values&amp;quot;. The third is called &amp;quot;StrippedValues&amp;quot;. Set that to text, computed, multi-value and enter the following formula : &lt;/p&gt;&lt;div class="code"&gt;@If(UseNumbers = &amp;quot;1&amp;quot;; @Right(Values; &amp;quot;. &amp;quot;); Values)&lt;/div&gt;&lt;p&gt;The fourth and final field is called Numbers. It is text, computed, multi-value, and its formula is a hard-coded number list : &lt;/p&gt;&lt;div class="code"&gt;&amp;quot;01&amp;quot; : &amp;quot;02&amp;quot; : &amp;quot;03&amp;quot; : &amp;quot;04&amp;quot; : &amp;quot;05&amp;quot; : &amp;quot;06&amp;quot; : &amp;quot;07&amp;quot; : &amp;quot;08&amp;quot; : &amp;quot;09&amp;quot; : &amp;quot;10&amp;quot; : &amp;quot;11&amp;quot; : &amp;quot;12&amp;quot; : &amp;quot;13&amp;quot; : &amp;quot;14&amp;quot; : &amp;quot;15&amp;quot; : &amp;quot;16&amp;quot; : &amp;quot;17&amp;quot; : &amp;quot;18&amp;quot; : &amp;quot;19&amp;quot; : &amp;quot;20&amp;quot; : &amp;quot;21&amp;quot; : &amp;quot;22&amp;quot; : &amp;quot;23&amp;quot; : &amp;quot;24&amp;quot; : &amp;quot;25&amp;quot; : &amp;quot;26&amp;quot; : &amp;quot;27&amp;quot; : &amp;quot;28&amp;quot; : &amp;quot;29&amp;quot; : &amp;quot;30&amp;quot; : &amp;quot;31&amp;quot; : &amp;quot;32&amp;quot; : &amp;quot;33&amp;quot; : &amp;quot;34&amp;quot; : &amp;quot;35&amp;quot; : &amp;quot;36&amp;quot; : &amp;quot;37&amp;quot; : &amp;quot;38&amp;quot; : &amp;quot;39&amp;quot; : &amp;quot;40&amp;quot; : &amp;quot;41&amp;quot; : &amp;quot;42&amp;quot; : &amp;quot;43&amp;quot; : &amp;quot;44&amp;quot; : &amp;quot;45&amp;quot; : &amp;quot;46&amp;quot; : &amp;quot;47&amp;quot; : &amp;quot;48&amp;quot; : &amp;quot;49&amp;quot; : &amp;quot;50&amp;quot; : &amp;quot;51&amp;quot; : &amp;quot;52&amp;quot; : &amp;quot;53&amp;quot; : &amp;quot;54&amp;quot; : &amp;quot;55&amp;quot; : &amp;quot;56&amp;quot; : &amp;quot;57&amp;quot; : &amp;quot;58&amp;quot; : &amp;quot;59&amp;quot; : &amp;quot;60&amp;quot; : &amp;quot;61&amp;quot; : &amp;quot;62&amp;quot; : &amp;quot;63&amp;quot; : &amp;quot;64&amp;quot; : &amp;quot;65&amp;quot; : &amp;quot;66&amp;quot; : &amp;quot;67&amp;quot; : &amp;quot;68&amp;quot; : &amp;quot;69&amp;quot; : &amp;quot;70&amp;quot; : &amp;quot;71&amp;quot; : &amp;quot;72&amp;quot; : &amp;quot;73&amp;quot; : &amp;quot;74&amp;quot; : &amp;quot;75&amp;quot; : &amp;quot;76&amp;quot; : &amp;quot;77&amp;quot; : &amp;quot;78&amp;quot; : &amp;quot;79&amp;quot; : &amp;quot;80&amp;quot; : &amp;quot;81&amp;quot; : &amp;quot;82&amp;quot; : &amp;quot;83&amp;quot; : &amp;quot;84&amp;quot; : &amp;quot;85&amp;quot; : &amp;quot;86&amp;quot; : &amp;quot;87&amp;quot; : &amp;quot;88&amp;quot; : &amp;quot;89&amp;quot; : &amp;quot;90&amp;quot; : &amp;quot;91&amp;quot; : &amp;quot;92&amp;quot; : &amp;quot;93&amp;quot; : &amp;quot;94&amp;quot; : &amp;quot;95&amp;quot; : &amp;quot;96&amp;quot; : &amp;quot;97&amp;quot; : &amp;quot;98&amp;quot; : &amp;quot;99&amp;quot;&lt;/div&gt;&lt;p&gt;Yes, you could use three-digit numbers and go to 999. This is an R5 compromise; in ND6 you could just as easily use the new @Transform and @Member to add numbers to the results when numbering is required without hard-coding anything (again thanks, &lt;a href="http://damienkatz.net" title="Go to Damien Katz's blog"&gt;Damien&lt;/a&gt;) . If you're stuck with a hard-coded list in R5 (as I am right now), then don't just type it &amp;mdash; do as I did, write a quick web form (a couple of clicks in TextPad will give you most of the page), create the string in a field using a JavaScript &amp;quot;for&amp;quot;, then copy 'n' paste. Laziness is just another word for productvity if you know how to do lazy right.&lt;/p&gt;&lt;p&gt;Now create a table. Make it fixed width, five columns by nine rows. Oh, and make sure that it isn't hidden &amp;mdash; users really, really hate blank dialogs. Select the whole table, and set all borders to zero (users don't have to know you're using a table, and only masochists would use layout regions). While everything is still selected, set the font to Default Sans Serif 9 point (smaller text looks better in dialogs, and the default sans-serif is usually the best option).&lt;/p&gt;&lt;p&gt;Go to the second row and merge the three centremost cells. This is where you'll add text such as &amp;quot;Select a value in the list below and use the buttons provided to move your selection.&amp;quot; Leave a row blank. Go to the second cell in the fourth row, and merge it with the cell below it. This merged cell will contain the listbox. Create a listbox field called &amp;quot;SortSelection&amp;quot;, single value, and make it two inches wide by three inches high (5cm by 7.5 cm), fixed, and set the font to Default Sans Serif 9pt. Select &amp;quot;Use formula for choices&amp;quot;, and enter StrippedValues as the formula. Select  &amp;quot;Refresh fields on keyword change&amp;quot; and &amp;quot;Refresh choices on document refresh&amp;quot;.&lt;/p&gt;&lt;p&gt;Leave a row blank (yes, again) then in the second cell of the seventh row, type &amp;quot;Add New Value : &amp;quot;. In the cell below that, create an editable text field, OS style, two inches wide by 0.250 inches high, fixed, and set the font to Default Sans Serif 9pt. Call the field NewValue.&lt;/p&gt;&lt;p&gt;Now all we need is a bunch of buttons to play with. Go to the fourth column of the fifth row. Create six buttons (Create &amp;mdash;&gt; Hotspot &amp;mdash;&gt; Button), and put a carriage return between each button so they appear one above the other. Make them all fixed width, 2 inches (5cm) wide. The first three should have their font set to dark grey. Label them &amp;quot;Move Up&amp;quot;, &amp;quot;Move Down&amp;quot;, &amp;quot;Remove&amp;quot;, &amp;quot;Move Up&amp;quot;, Move Down&amp;quot;, and &amp;quot;Remove&amp;quot;.&lt;/p&gt;&lt;p&gt;I know &amp;mdash; two inches looks pretty darned wide, but trust me, there is a reason for that. Now (and here's a really, truly kewl trick), go to the &amp;lt;HTML&amp;gt; tab of the button properties, and enter a name value for each (I use greyedMoveUp, greyedMoveDown, greyedRemove, activeMoveUp, activeMoveDown, and activeRemove). What we just did, class, was prepare the dialog for internationalization.&lt;/p&gt;&lt;p&gt;&amp;lt;PopularCultureReference&amp;gt;&lt;br /&gt;&amp;lt;Voice value=&amp;quot;Isaac Hayes&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;Context value=&amp;quot;South Park&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;Character value=&amp;quot;Chef&amp;quot;/&amp;gt;&lt;br /&gt;Children, you don't have to hand-code a thousand buttons with hide-whens or create a bajillion dialog forms just because LotusScript won't let you change the labels. Use JavaScript on your sweet lady dialog, and make love to her all night long. I have a song that might help...&lt;br /&gt;&amp;lt;/PopularCultureReference&amp;gt;&lt;/p&gt;&lt;p&gt;Hey, I guess this &lt;strong&gt;is&lt;/strong&gt; about sex after all! One of the few really useful things about the Notes client JavaScript object model is that buttons are accessible via document.forms[0].elements['ButtonName'], and that the .value of each is the button label text. You can change the value at run-time from the form's onload event (or anywhere else that makes sense). The English labels may fit neatly inside a 1.1-inch wide button set, but you'll need some room for French, Spanish or German.&lt;/p&gt;&lt;p&gt;&amp;lt;Rant&amp;gt;That little discovery was made entirely by accident, previewing a form meant for the web in the Notes client. It's not documented anywhere except in a couple of postings I made on the developerWorks fora (Notes.Net), but dammit, it should be. In big, bold, red letters on the default opening page of Designer Help. I wonder how much time and effort has been wasted by developers creating multilingual applications because stuff like this isn't documented. It's not just dev time, you also create a maintenance nightmare when you have several parallel forms/pages that have to stay in sync, or even several buttons that should be identical except for the label on the same form/page.&amp;lt;/Rant&amp;gt;&lt;/p&gt;&lt;p&gt;The Notes client won't let you create mutable JavaScript (that is, you can't change the code by injecting a formula like you can on the web), so you'll need to add one or more hidden fields to carry either a language value or the actual label values themselves. Similarly, the help text can be computed to whatever language the user requires (in Formula Language, of course).&lt;/p&gt;&lt;p&gt;Select the greyed buttons and set the hide-when to !(SortSelection = &amp;quot;&amp;quot;). Select the lower three (the ones with black text) and set their hide-when to SortSelection = &amp;quot;&amp;quot;. This way, the user will not see what appear to be active buttons until they make a selection in the list. The top three buttons don't need a formula of any kind, cuz they don't do anything. The bottom three are the real ones. Ideally, you'd like to hide &amp;quot;Move Up&amp;quot; when the first value is selected and so forth, but gimme a break! I've done enough figgerin' for you already.&lt;/p&gt;&lt;p&gt;Go to Remove first. The formula for this button is simply : &lt;/p&gt;&lt;div class="code"&gt;tempValues  : = @Trim(@Replace(StrippedValues; SortSelection; &amp;quot;&amp;quot;));&lt;br /&gt;FIELD UseNumbers  : = &amp;quot;1&amp;quot;;&lt;br /&gt;FIELD Values  : = @Subset(Numbers; @Elements(tempValues)) + &amp;quot;. &amp;quot; + tempValues;&lt;br /&gt;@Command([ViewRefreshFields])&lt;/div&gt;&lt;p&gt;Note that we've set the UseNumbers field to a &amp;quot;true&amp;quot; value. The final list is available in two versions, numbered and unnumbered. If you want the unnumbered version, you use the StrippedValues field of the dialogged document, if you want numbers, use Values. It's all about reusability &amp;mdash; you shouldn't have to change anything on the form to plug it into a new application. The values in the listbox are always unnumbered in this version of the dialog. My tests have shown that users find changing numbers in the dialog less comfortable than an unnumbered list. Your mileage may vary.&lt;/p&gt;&lt;p&gt;Move Up and Move Down are a bit more complicated, but not much. We have to determine where the slection is in the list, then figure out the parts that won't change, then switch the selection with the value above or the value below. Getting the position is just a matter of using @Member against the whole list. Remember, we're getting the list from StrippedValues, so the first line of each formula will be : &lt;/p&gt;&lt;div class="code"&gt;position  : = @Member(SortSelection; StrippedValues);&lt;/div&gt;&lt;p&gt;In Move Up, the button should do nothing at all when the selection is at the top already, so the next line would be : &lt;/p&gt;&lt;div class="code"&gt;@If(position = 1; @Return(&amp;quot;&amp;quot;); &amp;quot;&amp;quot;);&lt;/div&gt;&lt;p&gt;Now we need to know how big the total list is : &lt;/p&gt;&lt;div class="code"&gt;count  : = @Elements(StrippedValues);&lt;/div&gt;&lt;p&gt;Next, we'll need the list of values below the selection that will not change. If the selection is at the bottom, this list will be empty, otherwise, we'll take a subset : &lt;/p&gt;&lt;div class="code"&gt;bottom  : = @If(position = count; &amp;quot;&amp;quot;; @Subset(StrippedValues; - (count - position)));&lt;/div&gt;&lt;p&gt;Similarly, we need the stuff at the top that won't change. Keep in mind that the value immediately above the selection will be swapped : &lt;/p&gt;&lt;div class="code"&gt;top  : = @If(position = 2; &amp;quot;&amp;quot;; @Subset(StrippedValues; position - 2));&lt;/div&gt;&lt;p&gt;Finally, we'll get the swap value : &lt;/p&gt;&lt;div class="code"&gt;swap   : = @Subset(@Subset(StrippedValues; position - 1); -1);&lt;/div&gt;&lt;p&gt;Now we can assemble the values and complete the action : &lt;/p&gt;&lt;div class="code"&gt;tempValues  : = @Trim(top : SortSelection : swap : bottom);&lt;br /&gt;FIELD UseNumbers  : = &amp;quot;1&amp;quot;;&lt;br /&gt;FIELD Values  : = @Subset(Numbers; @Elements(tempValues)) + &amp;quot;. &amp;quot; + tempValues;&lt;br /&gt;Command([ViewRefreshFields])&lt;/div&gt;&lt;p&gt;Using the same kind of logic, the MoveDown formula becomes : &lt;/p&gt;&lt;div class="code"&gt;position  : = @Member(SortSelection; StrippedValues);&lt;br /&gt;count  : = @Elements(StrippedValues);&lt;br /&gt;@If(position = count; @Return(&amp;quot;&amp;quot;); &amp;quot;&amp;quot;);&lt;br /&gt;bottom  : = @If(position = count - 1; &amp;quot;&amp;quot;; @Subset(StrippedValues; - (count - (position + 1))));&lt;br /&gt;top  : = @If(position = 1; &amp;quot;&amp;quot;; @Subset(StrippedValues; position - 1));&lt;br /&gt;swap   : = @Subset(@Subset(StrippedValues; position + 1); -1);&lt;br /&gt;tempValues  : = @Trim(top : SortSelection : swap : bottom);&lt;br /&gt;FIELD UseNumbers  : = &amp;quot;1&amp;quot;;&lt;br /&gt;FIELD Values  : = @Subset(Numbers; @Elements(tempValues)) + &amp;quot;. &amp;quot; + tempValues;&lt;br /&gt;@Command([ViewRefreshFields])&lt;/div&gt;&lt;p&gt;One more button to go. &amp;quot;Add to list&amp;quot; should not only add a new value to the list, it should also select the value so that the user can move it immediately without having to manually select it. The formula is pretty simple : &lt;/p&gt;&lt;div class="code"&gt;@If(NewValue = &amp;quot;&amp;quot;; @Return(&amp;quot;&amp;quot;); @IsMember(NewValue; StrippedValues); @Return(@Prompt([OK]; &amp;quot;Duplicate Entry&amp;quot;; &amp;quot;The value you are trying to add is already in the list.&amp;quot;)); &amp;quot;&amp;quot;);&lt;br /&gt;tempValues  : = StrippedValues : NewValue;&lt;br /&gt;FIELD UseNumbers  : = &amp;quot;1&amp;quot;;&lt;br /&gt;FIELD Values  : = @Subset(Numbers; @Elements(tempValues)) + &amp;quot;. &amp;quot; + tempValues;&lt;br /&gt;@Command([ViewRefreshFields]);&lt;br /&gt;FIELD SortSelection  : = NewValue;&lt;br /&gt;FIELD NewValue  : = &amp;quot;&amp;quot;;&lt;br /&gt;@True&lt;/div&gt;&lt;p&gt;Now it's just a matter of formatting the table. Make columns 1, 3 and 5 0.125&amp;quot; (as narrow as you can in metric). Columns 2 and 4 should be 2&amp;quot;/5cm (or as close to this as Designer will let you get).  Now, go to the cell just above the Move Up, etc., buttons,  and change the text properties to Arial and increase the font size until the first three buttons are more-or-less centred vertically beside the listbox. You can use the same font-size technique to adjust the height of the &amp;quot;white space&amp;quot; rows we left in the table, but you'll need to select the whole row to make it work.&lt;/p&gt;&lt;p&gt;That's all there is to creating the dialog in its basic form. Now to put it to use. Since this is for re-use, and we can't be sure that the fields in the dialog even remotely resemble the item names in our application, we can't simply use @DialogBox. With LotusScript, you can dialog any document you want &amp;mdash; even one that isn't really there. Create an agent, and call it CallSingleListDialog. Set it to run &amp;quot;Manually from the agent list&amp;quot; and (in R5) set the Documents to run against to &amp;quot;Run once (@Commands may be used) &amp;quot; or (in ND6+) set the target to &amp;quot;None&amp;quot;. The code is not very complex. In this example, I will be calling the dialog from a document open in edit mode using @Command([ToolsRunMacro]; &amp;quot;(CallSingleListDialog) &amp;quot;) in an action that's hidden in read mode &amp;mdash; the simplest scenario. In this case, the &amp;quot;real&amp;quot; document does not use numbering within the field.&lt;/p&gt;&lt;div class="code"&gt;Option Public&lt;br /&gt;Option Declare&lt;br /&gt;'Don't ever let me catch you not using&lt;br /&gt;'Option Declare or Option Explicit&lt;br /&gt;&lt;br /&gt;Dim s As NotesSession&lt;br /&gt;Dim ws As NotesUIWorkspace&lt;br /&gt;Dim thisDb As NotesDatabase&lt;br /&gt;Dim currentUIDoc As NotesUIDocument&lt;br /&gt;Dim currentDoc As NotesDocument&lt;br /&gt;Dim dialogDoc As NotesDocument&lt;br /&gt;Dim success As Variant&lt;br /&gt;&lt;br /&gt;Sub Initialize&lt;br /&gt;Set s = New NotesSession&lt;br /&gt;Set ws = New NotesUIWorkspace&lt;br /&gt;Set thisDb = s.CurrentDatabase&lt;br /&gt;Set currentUIDoc = ws.CurrentDocument&lt;br /&gt;Set currentDoc = currentUIDoc.Document&lt;br /&gt;Set dialogDoc = thisDb.CreateDocument&lt;br /&gt;&lt;br /&gt;Call dialogDoc.ReplaceItemValue(&amp;quot;UseNumbers&amp;quot;, &amp;quot;0&amp;quot;)&lt;br /&gt;Call dialogDoc.ReplaceItemValue(&amp;quot;Values&amp;quot;, currentDoc.GetItemValue(&amp;quot;ExistingField&amp;quot;))&lt;br /&gt;success = ws.Dialogbox(&amp;quot;(OrderedListDialog)&amp;quot;, True, True, False, False, False, False, &amp;quot;Manage List Values&amp;quot;, dialogDoc, True, False)&lt;br /&gt;&lt;br /&gt;If success Then&lt;br /&gt;Call currentDoc.ReplaceItemValue(&amp;quot;ExistingField&amp;quot;, dialogDoc.GetItemValue(&amp;quot;StrippedValues&amp;quot;))&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;/div&gt;&lt;p&gt;Here endeth the Lesson. As I mentioned, the variation that will be posted on OpenNTF.org (after the fourth article in the series) will be somewhat more fully-featured and versatile, including code for internationalization and several examples of how to use the dialog. If you find errors or improvements to be made in the posted version, please use the comments feature to tell me about them &amp;mdash; I do check, fix problems and incorporate upgrades in dot versions. If you find the code useful, use the rating system and (optionally) the comments to let other people know that the code is worth taking a look at. There's a lot of stuff in the Code Bin, and not all of it is as useful or necessary as the poster believes (some is just a lot of code to replicate a built-in feature, some is reposting of old routines, apparently so the poster can find it again later), and even I might be under unwarranted delusions of brilliance (but I doubt it). By the same token, if the code sucks, rate it as sucky. I'm not proud ... or tired. I just want to make sure that the Code Bin is and remains a worthwhile visit for OpenNTF.org's users and members. Sometimes I think a code review might be useful, but then it'd be just like the Sandbox, where a posting can take forever to appear &amp;mdash; and I'm pretty sure that &lt;a href="http://www.bruceelgort.com" title="Go to Bruce Elgort's blog"&gt;Bruce&lt;/a&gt;, &lt;a href="http://www.openntf.org/nathan/escape.nsf" title="Go to Nathan T. Freeman's blog"&gt;Nathan&lt;/a&gt;, Anil and the gang have better things to do with their time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110052804038281552?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110052804038281552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110052804038281552' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110052804038281552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110052804038281552'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/11/sex-and-single-list.html' title='Sex and the single list'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110052770701247170</id><published>2004-11-15T09:07:00.000-05:00</published><updated>2004-11-15T09:08:27.013-05:00</updated><title type='text'>Life as a Tête-Carré off Sainte-Catherine....</title><content type='html'>&lt;p&gt;Well, I'm finally in Montr&amp;eacute;al, and I have to say that I like it so far. The only problem I've come across is that I actually have to go outdoors for twenty seconds twice a day &amp;mdash; thirty if I need groceries. I found a tiny, but comfortable and quiet place for a better-than-reasonable price just a few feet off of the Maisonneuve Metro line. (Montr&amp;eacute;al's Metro is a sort of subway wearing sneakers &amp;mdash; rubber-tired trains running in a trough rather than steel wheels on steel track. If you're not actually in the tunnel, you'd never know a train was running by every few minutes.)&lt;/p&gt;&lt;p&gt;What's surprising about all of this is that I'm in what would be considered a &amp;quot;bad neighborhood&amp;quot; in most cities. I live under a bridge. The building directly across the street houses a strip club. Oh, and it's not the only such establishment in the area, since I am a short block from the fabled Sainte-Catherine strip. With all that said, it is a much quieter life than I was used to in Toronto. The traffic on the bridge is a lot quiter than a TTC streetcar, and I have yet to run across yahoo-level drunkenness. I've only been here one weekend, but even though the strip sees a lot of action, people are calm and polite. There is a lot of retail mixed in with the sin spots, and overall it's not the kind of place that parents would steer their kids away from.&lt;/p&gt;&lt;p&gt;This is in very sharp contrast to, say, the Combat Zone in Boston or even the Entertainment District/Yonge Street in Toronto. I haven't heard a single siren yet, and it would be an odd evening in downtown Toronto if a whole hour passed between multi-car police responses passing by my window with lights and sirens blazing. Does Puritanism actually cause the problems we're used to?&lt;/p&gt;&lt;p&gt;Oh, yes &amp;mdash; the food. If you happen to venture to Montr&amp;eacute;al in your jouneys, don't waste a lot of time looking for a good restaurant. As long as you stay out of the major fast food chains and mall food courts, you can eat well. The average greasy-spoon-looking hole in the wall will surprise you. These people take their food seriously, although they seem to have lost the concept of the single-serving portion somewhere along the line. If you eat all of your meals at restaurants and finish everything on your plate (&amp;quot;platter&amp;quot;, &amp;quot;serving tray&amp;quot; or even &amp;quot;shipping palette&amp;quot; would be more accurate terms), you will need a complete new wardrobe every week.&lt;/p&gt;&lt;p&gt;There is one other small hitch. I've found that my French has completely atrophied. I can understand what people are saying (to a point &amp;mdash; there's a lot that's new in the last twenty-odd years, so my childhood French didn't include any of it, the &amp;quot;in&amp;quot; slang has changed, and the patterns of speech here are a bit different from the Northern Ontario version of the language), and I can read well enough, but I'm having a devil of a time trying to talk. I can't think in French anymore, and it seems that my thought-formulation and translation routines can't multithread. And if you see my writing, you'd think that I had a random-number generator throwing accents and word endings in, but I never was much good at writing in French. It's been a long time since I spoke French on a daily basis (my mother's family is French, and a large part of the area I grew up in was francophone). Even then, my grandparents preferred that we &amp;quot;spoke white&amp;quot;, and that if we wanted to learn French, we should learn proper French and not their slangue. That's all well and good, but the Elvis Gratton patois is invaluable in real life, and French is no longer a ghetto language in Canada (there was a time when you absolutely had to speak English in order to be promoted to any decent-paying job, even in a sawmill town where the nearest English community might be hundreds of miles away). It would be a pity to live life here in English. Not that it can't be done &amp;mdash; at least downtown, you would have a hard time finding a place that won't serve you in English if that's what you need, and there are a lot of unilingual Anglos in the city. So far, I've had store clerks manage the transition for me, and only a couple have actually let me finish what I started. That's a bit frustrating; I'd have been better off in Chicoutimi as far as French immersion goes. I just think that I'd be missing out on a lot if I can't get my tongue in gear. And I would always be a t&amp;ecirc;te-carr&amp;eacute; (literally, &amp;quot;blockhead&amp;quot; or &amp;quot;square head&amp;quot;; a derisive term for Anglos when there are no Germans around).&lt;/p&gt;&lt;p&gt;I don't know for sure when I'll be able to start posting more regularly; there's a lot to do before I can say I'm properly set up here. I'll try to keep you all as up-to-date as I can, but it may be a while before I can start posting at leisure. I have a couple of tech articles brewing, but they're not quite ready for bottling yet. To any of you who haven't removed me from your bookmarks and aggregators, I thank you for your patience and hope to reward you with something a bit more substantial soon.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110052770701247170?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110052770701247170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110052770701247170' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110052770701247170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110052770701247170'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/11/life-as-t-off-sainte-catherine.html' title='Life as a T&amp;ecirc;te-Carr&amp;eacute; off Sainte-Catherine....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-110052763749556418</id><published>2004-11-15T09:06:00.000-05:00</published><updated>2004-11-15T14:16:36.586-05:00</updated><title type='text'>Room for orderly dialog</title><content type='html'>&lt;p&gt;There have been a couple of folks asking around about Notes articles. &amp;quot;When's the next article?&amp;quot; &amp;quot;Why haven't I seen any tech articles on your blog lately?&amp;quot; &amp;quot;Why are you not writing an article now?&amp;quot; &amp;quot;What's up, dude? Out of ideas? Are you just a one-trick pony? Do you only do calendars?&amp;quot; Well, I guess it's time we had an orderly dialog or two.&lt;/p&gt;&lt;p&gt;Every once in a while, you run across an application where you need things to appear in a particular order. I'm not talking about sorting &amp;mdash; there are a thousand variations of sorting algorithms for LS out there, and Java has sorting methods built-in. Even Formula Language has a wonderfully fast and efficient @Sort now, thanks to &lt;a href="http://damienkatz.net" title="Go to Damien Katz's blog"&gt;Damien&lt;/a&gt;. No, I'm talking about creating an arbitrary order in a list, and making that list easily maintained by the user.&lt;/p&gt;&lt;p&gt;One of the first things that people bang their head against in Notes is the fact that the choice list for keyword-type fields is not programmatically accessible at run time. Anyone used to creating UIs in, say, Visual Basic will have become accustomed to being able to manipulate the contents of a listbox, and then using the entire content of that listbox elsewhere in the program. We Notes types take it for granted that this can't be done directly. Fortunately, the word &amp;quot;directly&amp;quot; gives us an escape route. There may be work-arounds involved, but we don't need to offer second-class UIs to our users.&lt;/p&gt;&lt;p&gt;Over the next few entries, I'm going to take a look at two variations on that theme. One is a simple single-list dialog that will allow the user to add and remove entries and shuffle the order of entries without having to cut 'n' paste or re-type. The second is a dual-list version that allows the user to select options from a source list, add them to (or remove them from) a second list, and put the result into any desired order. There will be two versions of each, one for the Notes client and one for the web. Once the series is complete, I will add the dialogs to OpenNTF.org's Code Bin (for those who are either too busy to cut 'n' paste or who want to see the full-featured versions, since some features will not be covered here for brevity &amp;mdash; I'm long-winded enough already).&lt;/p&gt;&lt;p&gt;The Notes versions are interesting in that the entire dialog is driven by Formula Language. Oh, sure, the dialogs will be called by LotusScript, but that's only to create a temporary document so that you don't add a bunch of useless fields to the target document or worry about the field names on the dialog form. All you need to do is modify the calling script to suit the application.&lt;/p&gt;&lt;p&gt;I hope this satisfies the vultures for a little while. I know that the rest of you would be much happier reading about the life of a t&amp;ecirc;te-carr&amp;eacute; in Montr&amp;eacute;al, so there will be some discussion of smoked meat, poutine, real bagels and the meaning of the &amp;quot;RC&amp;quot; button in the elevators between installations.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-110052763749556418?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/110052763749556418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=110052763749556418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110052763749556418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/110052763749556418'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/11/room-for-orderly-dialog.html' title='Room for orderly dialog'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109890899007120396</id><published>2004-10-27T16:28:00.000-04:00</published><updated>2004-10-27T16:29:50.070-04:00</updated><title type='text'>Quote of the day</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;"A political candidate who jumps to conclusions without knowing the facts is not the person you want as your Commander-in-Chief."&lt;/p&gt;&lt;cite&gt;George W. Bush, 27 October, 2004&lt;/cite&gt;&lt;/blockquote&gt;&lt;p&gt;Need comments? Didn't think so.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109890899007120396?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109890899007120396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109890899007120396' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109890899007120396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109890899007120396'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/10/quote-of-day.html' title='Quote of the day'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109874824571534702</id><published>2004-10-25T19:49:00.000-04:00</published><updated>2004-10-25T19:50:45.716-04:00</updated><title type='text'>Being (busy) and Nothingness</title><content type='html'>&lt;p&gt;Sorry to leave you stranded, folks. Someone seems to have excised about two hours from the average day. I figure it's just a new tax -- I really should have paid more attention to the Speech from the Throne when Parliament opened.&lt;/p&gt;&lt;p&gt;The real time has gone into documenting weird forms. I'm not sure why the code got as weird as it did; maybe somebody out there can clue me in. Still, the app works now, and I have to make sure that nobody performs a weirdectomy to make the app look like a normal Domino app.&lt;/p&gt;&lt;p&gt;What I've done would only be considered a WTF in our little Domino world. I was putting a web app together, and several of the fields in this app are hidden computed fields that get their values via actions and dialogs. Taking that app to the web, I concocted a little under three thousand lines of selectively-loaded JavaScript. (The &amp;lt;script&amp;gt; tags are computed at run-time, the code itself is cacheable, and only a handful of &amp;quot;Gods of the database&amp;quot; will have to download more than a small subset of the JS. Did I mention that the app was non-trivial?) Well, a funny thing happened on the way to the Forum -- I couldn't get the hidden fields to work. It didn't matter whether I left them visible and used the HTML Attributes object or hid them and used &amp;quot;Generate HTML for all fields&amp;quot; the data would always come up truncated in the HTML source. I ended up having to hand-code the HTML fields in passthru with the Designer fields between quotes in the value attribute. I'm not talking about a couple of fields, either. This may be normal in ASP, PHP, JSP and so on, but dammit, this is Domino. I shouldn't have to wear out my typing fingers like that. (I have other fingers that are never used for typing, and they're still relaxed and comfortable. Thanks for asking.)&lt;/p&gt;&lt;p&gt;Anyway, I hope to be firmly into "what are they gonna do, fire me?" mode for the rest of the week, so I should be a bit more active here. See you tomorrow.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109874824571534702?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109874824571534702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109874824571534702' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109874824571534702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109874824571534702'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/10/being-busy-and-nothingness.html' title='Being (busy) and Nothingness'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109777764155047355</id><published>2004-10-14T14:12:00.000-04:00</published><updated>2004-10-14T14:14:01.550-04:00</updated><title type='text'>Upping the Heaval Factor</title><content type='html'>&lt;p&gt;Sorry if I've been absent for a while. If you think this blog's been missing beats, you ought to see me in real life these days.&lt;/p&gt;&lt;p&gt;Those who have been following the story so far have no doubt picked up on the fact that there hasn't always been a great deal of stability in my life. I have had the same job for four years now, and it has been rather comforting to have a regular income and a roof over my head. The fact that my work environment was keeping me less than happy was immaterial, as was the fact that the roof currently over my head is the ceiling of a ten-foot-square room in a transient hotel (the bathroom's down the hall). Examining that objectively, you'd probably come to the conclusion that my lifestyle is, well, crap. And you'd be right. But to someone who knows what it's like to sleep in the park without calling it camping, it's a hell of a lot easier to hang on to a bad certainty than it is to take a chance trying to find something better.&lt;/p&gt;&lt;p&gt;Well, events have been conspiring against me lately. The company I work for as I type has made its long-term plan for Notes clear, and that future is a Notes-free environment with no plans to build an equivalent collaborative environment on any other platform. Those of us with half a clue have put the migration off as long as we could, even momentarily expanding the Notes footprint, but there's no stopping C-levels with tunnel vision. To tell the truth, the move to Exchange would be a huge step up from the previous corporate solution, but it ain't Notes by a long shot. In fact, the possibility that we might obtain the tools to create a collaboration and workflow environment using anything beyond what comes free in the box with Win2K3 and Exchange has been clearly eliminated from consideration recently. I have no desire to become an email administrator, and that's not just because I resent the move to Exchange. I'm a puzzler, a problem-solver, a developer, and being reduced to helping fat-fingered users find errant attachments and resetting passwords after every long weekend is not what I'm built for.&lt;/p&gt;&lt;p&gt;Next, after fourteen years of searching, I have finally been able to track down someone who was once the most important person in my life. When I knew her, she was just a kid who'd been forced to get by on her own at far too young an age. With all the troubles in her life, though, she was perhaps the brightest and most articulate person I've ever known (in person at least, dear Readers), and a beautiful soul to boot. All she was missing, really, was a good dose of self-worth, and I tried to help her find that. You know, I was a really nice guy back then -- it was after I'd been sober for long enough to become (and I hate to sound hokey here) spiritually centred, and before I was affected by the ravages of homelessness. I wish I had been able to be there for her for a longer time, but the military doesn't just let you live wherever you want. I may introduce her to you later (she's notable in her own right for the work she's done) but for now it's enough to tell you that I'm hoping that regaining that connection to the person I once was can bring some healing to my life.&lt;/p&gt;&lt;p&gt;She's living and working in Montr&amp;eacute;al now, and that brings us to Exceptional Event Number Three: an innocuous posting in each of the developerWorks Notes and Domino fora by Ben Dubuc announcing that there were a couple of dev positions available in Montr&amp;eacute;al. That was one too many coincidences for me to ignore. I enquired, and was more than satisfied with the enthusiasm in the shop. For my favourite platform, I mean. The fact that my name seems to have set off bells of recognition in the Notes group is a little less thrilling. I know I'm good, or, rather, I like to think that I know at some intellectual level that I'm better than bad, but something inside me keeps me from believing that I'm good enough. It's probably a hangover from the days when I was being treated like human refuse. I hope that the expectations aren't too high, 'cause I'm taking that job. And the laws and prices in Qu&amp;eacute;bec are such that I will be in a proper dwelling this go-round.&lt;/p&gt;&lt;p&gt;I tendered my resignation from CGI Group Inc. a few minutes ago, and I'm off to Montr&amp;eacute;al and Computer Horizons for November 8. In the interim, folks, any of you who have my cgi.com address in their addy books should change it to stan dot rogers at gmail dot com for now, particularly if you aren't interested in receiving NDRs. I'm running headlong into the unknown with a mixture of excitement and apprehension. My head and my heart tell me that this will be a fantastic voyage. My demons tell me that everyone will find out I've been faking all this &amp;quot;expertise&amp;quot; stuff and that I'm going to crash and burn. My stomach tells me I have to go throw up now.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109777764155047355?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109777764155047355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109777764155047355' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109777764155047355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109777764155047355'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/10/upping-heaval-factor.html' title='Upping the Heaval Factor'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109690025646642506</id><published>2004-10-04T10:28:00.000-04:00</published><updated>2004-10-04T10:30:56.466-04:00</updated><title type='text'>Troubles Posting</title><content type='html'>Had a wee problem with Blogger this morning, which resulted in a whole hockey-sock full of duplicates of the previous entry. Management apologizes for any inconvenience, but will not accept any liability for mental distess.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109690025646642506?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109690025646642506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109690025646642506' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109690025646642506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109690025646642506'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/10/troubles-posting.html' title='Troubles Posting'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109689875548556593</id><published>2004-10-04T09:48:00.000-04:00</published><updated>2004-10-04T10:05:55.486-04:00</updated><title type='text'>The world will end at midnight....</title><content type='html'>&lt;p&gt;... and I know this because I was watching "This is America with Dennis Wholey" on PBS, and there he was, Pat Buchanan in all his glory -- but he was making sense. To me. Pat Buchanan has never made any sense to me. I haven't changed my opinions, so this must mean that there's been a fundamental shift in the Universe somewhere, and that the end is nigh.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109689875548556593?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109689875548556593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109689875548556593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109689875548556593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109689875548556593'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/10/world-will-end-at-midnight_109689875548556593.html' title='The world will end at midnight....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109648859211578186</id><published>2004-09-29T16:08:00.000-04:00</published><updated>2004-09-29T18:28:44.146-04:00</updated><title type='text'>Office Pools As Learning Tools</title><content type='html'>&lt;p&gt;As we approach the United Way silly season, I can't help thinking that most of the really useful Domino web tricks I've come up with were not so much aimed at solving business problems, but at solving various charitable fundraising problems. Eventually, all of these methods made their way into one line-of-business support application or another, but the fact remains that the tricks came about because I needed new and compelling ways to separate people from their money. And the best part of doing it on Domino is that authenticated users can't deny participating when the collector comes around to their desks.&lt;/p&gt;&lt;p&gt;Games and pools need to be immediately usable. If the user has to ask, they will move on without actually asking. Most of these deals run on a fifty-fifty basis (the winners can claim half of the funds taken in, the charity gets the other half, and the administrators and developers can bask in the glow of a good deed well done), and a user can tell at a glance whether or not the potential winnings are worth the price of admission. After all, if you're the only one dumb enough to play, then all you can get is half of your money back. You might as well have just given the money to charity to begin with &amp;mdash; and the reluctance to do that is why we're building the games in the first place.&lt;/p&gt;&lt;p&gt;What follows is a necessary disclaimer designed to cover my posterior like a pair of corduroy Dockers: I am not suggesting, even for a moment, that anyone develop or deploy any lottery or game of chance not fully licensed and approved by the appropriate federal, provincial, state and/or municipal authorities. We now return to our regularly-scheduled broadcast.&lt;/p&gt;&lt;p&gt;Take a look at any of the duly-authorized and completely above-board draws, bingos, auctions and/or pools that may be run in your organisation today, and think about how you might move them to the technological cutting edge using nothing more than your wits and your favorite collaboration platform. You'll probably find, as I did, that truly compelling game UIs are web creatures. It's not that you can't create a compelling UI in the Notes client; but the business-oriented Notes client isn't very good at the kind of Vegas-inspired UI effects needed to strip the very food from your co-workers' children's dinner plates. For charity, of course. If you do it right, though, you can bring some of what you've done back into your business apps and make it permanent.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109648859211578186?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109648859211578186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109648859211578186' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109648859211578186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109648859211578186'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/office-pools-as-learning-tools.html' title='Office Pools As Learning Tools'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109640187194057208</id><published>2004-09-28T16:03:00.000-04:00</published><updated>2004-09-28T16:04:31.940-04:00</updated><title type='text'>Still Kicking ...</title><content type='html'>&lt;p&gt;... but somewhat busy. We will rejoin our regularly-scheduled programming shortly. Please stand by.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109640187194057208?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109640187194057208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109640187194057208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109640187194057208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109640187194057208'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/still-kicking.html' title='Still Kicking ...'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109640179071782820</id><published>2004-09-28T16:02:00.000-04:00</published><updated>2004-09-29T16:33:19.806-04:00</updated><title type='text'>Being Publicly Private</title><content type='html'>&lt;h6&gt;Warning: Morality Tale&lt;/h6&gt;&lt;p&gt;As &lt;a href="http://www.edbrill.com/ebrill/edbrill.nsf" title="Ed Brill's personal blog"&gt;Ed&lt;/a&gt; has &lt;a href="http://stanrogers.blogspot.com/2004/09/vroon-weeee-laaah.html" title="Comment to blog entry 'Vroon! Weeeee-laaaah!'"&gt;noted&lt;/a&gt;, in the first two weeks of blogging I seem to have exposed quite a bit of myself. I've done that for a couple of reasons, and I hope to explain them here.&lt;/p&gt;&lt;p&gt;I really believe that's it's hard to know someone without knowing where they came from. Obviously, I am going to hold some opinions that may be hard for the normies out there to understand. I will react to some things in quite a different way from folks who haven't been where I've been. I have made some eFriends (a couple-three-four of whom I believe I could just call friends if all of this electronic nonsense were removed), and those people should know why I believe the things I believe, and why I react the way I do.&lt;/p&gt;&lt;p&gt;Apart from that, though, I want to put aside the idea that things like recovery from addiction and homelessness are things that people should be ashamed of or afraid of talking about. I was a horrible drunk &amp;mdash; more than nineteen years ago. I am sure that my friends and family didn't speak of it proudly. My co-workers and supervisors probably didn't brag about having the highest-flying, least-reliable SOB who ever lived on their crew (and YOU can't have him, nah nah nah nah nah nah). When I entered recovery, I sure didn't want anyone knowing who I was. Oddly, I had no problem demonstrating addictive and impaired behaviour in public; it was sobriety that was a problem, I guess.&lt;/p&gt;&lt;p&gt;I am an alcoholic and a multiple-drug addict. I will be that until the day I die. I am not ashamed of my condition, any more than I would be ashamed of having leukemia that was in long-term remission. No-one can hold my deep, dark secret against me unless I try to keep it secret.&lt;/p&gt;&lt;p&gt;At least the first few steps on the road to addiction were voluntary. I can see how some people might be inclined to attach a moral turpitude tag to that aspect of my past. People who don't drink can never be alcoholic; those who don't do drugs will never become addicted to them. (I exclude here those who have become addicted to narcotics due to poor medical practice.) What I can't wrap my tiny little mind around is how people can attach the same attitude to something like poverty; yet I can say that I was treated with more scorn and disdain as a sober homeless man who spent every penny he could scrape up at Kinko's printing resumes than I was as a raging, but employed, everything-oholic.&lt;/p&gt;&lt;p&gt;Something about that strikes me as wrong. Yes, we're all aware of the folks who are left on the streets because of ridiculous libertarian attitudes towards people with severe mental illness, and there is that segment of the population, particularly among youth, who ain't gonna kowtow to The Man no matter what the personal consequences may be &amp;mdash; at least until they've had a proper chance to evaluate those consequences. There are those, though, who have just had a string of bad luck.&lt;/p&gt;&lt;p&gt;There are a few of you out there, I suspect, who believe (as I do) that I have at least a budding aptitude for this line of work, yet I spent nearly five years shining shoes (and losing tech currency with each passing day) before I was able to land a zero-expectations, probationary, entry-level job. I'm not the only useful person who has ever been dealt a few bad blows in life &amp;mdash; I met few folks on my journey who should have been doing something more than looking for their next meal. What this all boils down to is a plea that you try to judge people on the basis of who they are as individuals. You never know who you might find if you can look past the shabby clothes for a second or two.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109640179071782820?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109640179071782820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109640179071782820' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109640179071782820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109640179071782820'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/being-publicly-private.html' title='Being Publicly Private'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109587800561236214</id><published>2004-09-22T14:33:00.000-04:00</published><updated>2004-09-22T14:33:25.613-04:00</updated><title type='text'>We Know Why You Fly </title><content type='html'>&lt;p&gt;Does anyone else out there find the new American Airlines commercial a little, um, disturbing? Data mining might get them when, where, how often and with whom, but how are they getting why? Time for the tin foil hat, I guess.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109587800561236214?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109587800561236214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109587800561236214' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109587800561236214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109587800561236214'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/we-know-why-you-fly.html' title='We Know Why You Fly '/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109587794407803689</id><published>2004-09-22T14:29:00.000-04:00</published><updated>2004-09-22T14:32:24.076-04:00</updated><title type='text'>History Bites</title><content type='html'>&lt;p&gt;I don't know if &lt;a href="http://www.historybites.com/"&gt;this Canadian television show&lt;/a&gt; is available outside of Canada, but if you get a chance to check it out, you should. You may me able to find it on your local public broadcaster or on the non-Canadian version of the History Channel.&lt;/p&gt;&lt;p&gt;The show is the brainchild of Rick Green, whom Americans might know as the hapless title character of the "Adventures with Bill" segments of &lt;i&gt;The Red Green Show&lt;/i&gt;. Green is actually a capable and accredited educator, but he's been involved in ensemble comedy in Canada for about as long as I can remember. A few years ago, he took advantage of his "star" power to propose a project that would combine the two.&lt;/p&gt;&lt;p&gt;History Bites is premised on one question: "What if television had been there?" Each half-hour show has the viewer flipping through the channels on his or her television, offering glimpses of critical events in the past from news clips on CNN (or whatever it might have been called in that region at the time), interviews with key figures by Larry King and Barbara Walters, period lifestyle clues from episodes of Seinfeld or All in the Family as well as "science" programming, kids' shows, David Letterman, Dennis Miller, the cable company's TV Guide channel, and so on. The ensemble cast, featuring Ron Pardo's incredible mimicry, does a creditable job of capturing the flavour of the shows they parody. As with most educational programming, there is evidence that &amp;quot;no bank balances were harmed in the making of this motion picture&amp;quot;, but this is educational programming that doesn't feel especially educational. You (and your kids) will love it, even if you don't always get the local Toronto commercial references. Don't worry, the history is not all (or even much) Canadian, just the local commercials.&lt;/p&gt;&lt;p&gt;If you know anyone who doesn't like reading about a bunch of dead white guys (and, let's face it, most history text books are drier than the begats in the Torah), treat them to this. It might spark enough interest to make them want to learn more.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109587794407803689?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109587794407803689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109587794407803689' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109587794407803689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109587794407803689'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/history-bites.html' title='History Bites'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109579975973204424</id><published>2004-09-21T16:48:00.000-04:00</published><updated>2004-09-21T16:49:19.733-04:00</updated><title type='text'>Vroon! Weeee-laaah!</title><content type='html'>&lt;p&gt;A few days back, I was the victim of an attempted drive-by trolling. The young fellow who posted the comment had put on his best Zaphod Beeblebrox persona in what I assume was an attempt to impress with sheer hoopiness. Oh, the irony!&lt;/p&gt;&lt;p&gt;Your Humble Narrator has been clean and sober since July 10, 1985. In the six or seven years prior to that date, I would have made old Zaphod look like Arthur Dent on the wagon. I have imbibed, inhaled and ingested (but never injected &amp;mdash; I hate needles) more than any human can reasonably expect to survive; in fact, without frequent intervention, I would not have lived through the period. There were a lot of days when I had at least two heads, and they both (or all) hurt like hell. And I have experienced the sudden appearance of a molten landscape with penguins without benefit of an Infinite Improbability Drive. Yeah, I really knew where my towel was.&lt;/p&gt;&lt;p&gt;I was a two-four-a-day maintenance drinker. (That's 24 bottles of proper 5% Canadian beer, Newkie Brown, Guinness and/or various high-test, 14%+ homebrews for those whose experience is with three-two Bud.) There were times, though, when I needed to get drunk, so I might throw a forty of Navy rum (or, when I needed to feel high-class, a bottle of Chivas Regal Royal Salute or maybe an eighteen-year-old Islay &amp;mdash; not that I could tell any of it from peat moss and rubbing alcohol in the state I was usually in) onto the fire. If I could find that Ol' Janx Spirit, I'd have guzzled gallons and damn the side effects. I downed eight successive 48-oz pitchers of draught in twenty minutes to win a beer-drinking contest once, after having gotten enough of a buzz on to rise to the challenge (one of the few things I actually recall is that my "crew" was already at the point of singing the three or four lines were knew of &lt;i&gt;The Black Velvet Band&lt;/i&gt; over and over again when the temporary-duty-trip grunts challenged us Noble Aircraftsmen to a match of military skills). I had to rupture my abdominal wall to accomodate the volume, but this was for pride of service. I was quite adept at getting scrips for whatever uppers or downers I wanted (Seconal was a particular favorite), and you just know there are times a fellow needs to, um, get mellow. One also needs an occasional face-to-face with the deity of one's choice, and let's not forget about the poppy juice &amp;mdash; everyone needs a break now and then, and it really helped with the never-quite-healed-properly-broken-neck pain. My favorite game was Morning Jeopardy!, and the correct questions were always "what the hell time is it, Alex", "where the hell am I, Alex", and "who the hell is this Alex you think you're talking to?"&lt;/p&gt;&lt;p&gt;The surprising part of all this is not that someone can voluntarily do that much damage to his body and his psyche, it's that he can do the vast majority of that damage while in the military, maintaining critical avionics systems that, if things go wrong, can try to force a Sea King helicopter to maintain a hover precisely forty feet underwater. When I was on my game, you see (that is, when I wasn't in a falling-down stupor), I was a hell of a tech. People were not afraid to express their disapproval to my face, but they always covered my ass. Nothing ever hit paper and stuck. At the time, I thought that was a Good Thing. I may have had to do extra duties now and again, but I stayed out of jail and (this is the important part) I was never administratively referred to rehab. Once you get referred, you have to stay dry for a year or face discharge.&lt;/p&gt;&lt;p&gt;Then I woke up one morning completely blind. I'd been &amp;quot;dead&amp;quot; before and revived; that wasn't a problem. This time, though, I might have to live with the consequences, in the dark, and that was scary. After what seemed like days, but was probably only a couple of hours, the light came back, and I wished it hadn't. I'd never felt that level of pain before (not even from a 1981-vintage cranial arteriogram; ask anyone who's had one what that's like). It took me more than two hours to button up my uniform shirt (timed it; hell, I was already beyond late and was trying to compute the AWOL punishment against the out-of-uniform penalty, and shaving was out of the question that day since my hands were doing pretty much what they pleased without consulting me). I managed to half-stagger, half-crawl to the hangar. Even looking and smelling like I did, and after arriving several hours late for work, it took an unbelievable amount of time and interviews with superiors to finally get my request for a voluntary medical referral to an alcohol rehab clinic approved. Losing my diagnostic skills for twenty-eight days and an afternoon a week for a year was, apparently, worse than watching me kill myself that way.&lt;/p&gt;&lt;p&gt;That was July 10, 1985. Nineteen years and a bit later, I still live with the damage I did. My heart and liver are largely scar tissue. The neck I broke playing Rugby drunk still causes me pain and occasional partial paralysis of my left side. (Five-ten and fifteen stone is small for a tighthead prop, even if you &lt;strong&gt;can&lt;/strong&gt; push a ruddy ton uphill. Sober people that size play the wing three-quarter or, if they're smart as well as sober, sit singing bawdy songs in the stands while the monsters on the pitch get on with the carnage.) The back I injured falling (drunk, of course) from a Sea King flares up now and again, and needs traction for relief. I am prone to paranoid depression, and worst of all I can't find the little travel bag with the tin of olive oil in it. When I'm not stepping out of the shower, I really don't give a flying [censored] where my towel is anymore. I've dealt with much scarier things than the Ravenous Bugblatter Beast of Traal and lived to tell the tale.&lt;/p&gt;&lt;p&gt;To sum up: if you want to try to impress me with your drinking prowess or tales of chemical adventures, you can't. Whatever you've done, I've done more and couldn't be less proud of it. And if you're covering the ass of someone who has a problem like mine, the little trouble they may get into now is nothing compared to the big trouble that's coming. Stop it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109579975973204424?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109579975973204424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109579975973204424' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109579975973204424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109579975973204424'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/vroon-weeee-laaah.html' title='Vroon! Weeee-laaah!'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109579966755499386</id><published>2004-09-21T16:44:00.000-04:00</published><updated>2004-09-21T16:47:47.556-04:00</updated><title type='text'>Why code here?</title><content type='html'>&lt;p&gt;A big part of what I wanted to do with this site from the beginning is captured in the web calendar articles. It's not about putting code out there so much as allowing you to follow my thought processes as I put some of my ideas together. I am not a particularly brilliant coder, although I do score the occasional three-pointer. Heck, I'm just now getting to a level that lets me see the humour on &lt;a href="http://thedailywtf.com/"&gt;The Daily WTF&lt;/a&gt;. If I have one indispensable quality, it's that I refuse to be locked into the obvious. I am willing to explore a few of my wilder ideas, even if some of them lead to dead ends. They're not all winners. Not by a long shot. With the calendar, I went through a number of decreasingly-poor implementations before polishing this version publicly. I would not have used the calendar here at all except for the recent rash of requests I've received, precisely because it was pretty much a done deal already.&lt;/p&gt;&lt;p&gt;I'm not trying to create any how-tos. There are a lot of people who would be better hosts of &amp;quot;This Old Database&amp;quot; (or is that &amp;quot;The New Yankee NSF&amp;quot;?). I want to try to explore the creative process. If you were to ask me which of the calendar articles I thought was the most important, it would have to be &lt;a href="http://stanrogers.blogspot.com/2004/09/that-damned-calendar-principles-part-i.html"&gt;The Principles (Part I)&lt;/a&gt;. As I said, any idjit can code the thing once he (or she) knows where he (or she) is going. It may take some longer than others to put the code together, but all it takes is a bit of Formula Language, a bit of basic HTML, and an even littler bit of JavaScript and CSS to make it work. None of this really requires grokking Notes or the web; the &amp;quot;aha!&amp;quot; for me was simply realizing that when a view is set to &amp;quot;Treat view contents as HTML&amp;quot;, the actual output from the view didn't necessarily have to be HTML.&lt;/p&gt;&lt;p&gt;The hard part of a development project is rarely the actual coding (assuming a basic knowledge of the language and environment), it's in evaluating the starting point, determining the destination, and developing the roadmap between those points. The rest is really just filling in the blanks. Yes, there are good ways and bad ways to fill in those blanks, but in the end it's a mechanical process. When the destination doesn't appear to be something that came on the CD, you need to let your imagination loose. (Outline views won't create displays for dates that don't have an entry, and Calendar views don't let you categorize. Now what, smart guy?)&lt;/p&gt;&lt;p&gt;The next time you see code here, I hope that it is a fresh problem for me as well as for you, and that it is once again something that Notes &amp;quot;doesn't do&amp;quot;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109579966755499386?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109579966755499386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109579966755499386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109579966755499386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109579966755499386'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/why-code-here.html' title='Why code here?'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109561820736275385</id><published>2004-09-19T14:15:00.000-04:00</published><updated>2004-09-19T14:23:27.363-04:00</updated><title type='text'>Lazy Nogoodniks may now download That Damned Calendar</title><content type='html'>&lt;p&gt;The code has been uploaded to the OpenNTF.org CodeBin as &lt;a href="http://www.openntf.org/Projects/codebin/codebin.nsf/CodeByDate/768663B8E2671E1A86256F1400636AAC" title="Get That Damned Calendar from OpenNTF.org"&gt;"Open WebCalendar"&lt;/a&gt;. It's an .ns5 to make things easier all-round; ND6 users can make the few changes required to make it an all-6 solution if they want. In keeping with the spirit of OpenNTF.org, please repost any improvements you make to the code. Since this is not a fully-realised application, it has gone into the CodeBin instead of being thrown out as a Project. I will periodically review the entry and make any fixes/improvements as may be necessary.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109561820736275385?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109561820736275385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109561820736275385' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109561820736275385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109561820736275385'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/lazy-nogoodniks-may-now-download-that.html' title='Lazy Nogoodniks may now download That Damned Calendar'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109545539557799388</id><published>2004-09-17T17:09:00.000-04:00</published><updated>2004-09-19T13:53:33.163-04:00</updated><title type='text'>That Damned Calendar: Errata</title><content type='html'>&lt;p&gt;While preparing the database for OpenNTF.org, I ran across a couple of errors in the code and a couple of things that I could have done a bit better. I have no qualms about editing postings like those (&amp;quot;articles&amp;quot; as opposed to &amp;quot;opinion and observation&amp;quot;), so the original articles will be corrected as necessary. Those who have been following this since the beginning, though, will need to be told which bits have been changed and why. Let's do the bugs first, shall we?&lt;/p&gt;&lt;p&gt;First, the goToDate() funtion is missing a set of parentheses. As it stood, if there were no categories in use, you would always go to the redirect page, and then to the current month. The problem is this line:&lt;/p&gt;&lt;div class="code"&gt;window.location.search = 'OpenView&amp;RestrictToCategory=' + (cat=='')?'':(cat + '~') + year + '-' + month;&lt;/div&gt;&lt;p&gt;If &amp;quot;cat&amp;quot; is an empty string, then year and month are ignored as well. The line should have read:&lt;/p&gt;&lt;div class="code"&gt;window.location.search = 'OpenView&amp;RestrictToCategory=' + ((cat=='')?'':(cat + '~')) + year + '-' + month;&lt;/div&gt;&lt;p&gt;As well, the line checking the Category field is going to cause fires and explosions if there are no categories in use in your application. The Categories field does not exist, and when you try to examine its properties, the script errors out. This line:&lt;/p&gt;&lt;div class="code"&gt;var cat = f.Category.options[f.Category.selectedIndex].value;&lt;/div&gt;&lt;p&gt;needs to be changed to:&lt;/p&gt;&lt;div class="code"&gt;var cat = (f.Category)? f.Category.options[f.Category.selectedIndex].value: '';&lt;/div&gt;&lt;p&gt;Next, the formulas for the Previous and next links are missing &amp;quot;?OpenView&amp;RestrictToCategory=&amp;quot;. The formula given for the Previous link should have read:&lt;/p&gt;&lt;div class="code"&gt;lastMonth := @Adjust(StartDate;0;-1;0;0;0;0);&lt;br&gt;year := @Year(lastMonth);&lt;br&gt;month := @Month(lastMonth);&lt;br&gt;textMonth := @Select(month; &amp;quot;January&amp;quot;; &amp;quot;February&amp;quot;; &amp;quot;March&amp;quot;; &amp;quot;April&amp;quot;; &amp;quot;May&amp;quot;; &amp;quot;June&amp;quot;; &amp;quot;July&amp;quot;; &amp;quot;August&amp;quot;; &amp;quot;September&amp;quot;; &amp;quot;October&amp;quot;; &amp;quot;November&amp;quot;; &amp;quot;December&amp;quot;);&lt;br&gt;&amp;quot;&amp;lt;a href=\&amp;quot;&amp;quot; + @ViewTitle + &amp;quot;?OpenView&amp;RestrictToCategory=&amp;quot; + @If(SelectedCategory = &amp;quot;&amp;quot;;&amp;quot;&amp;quot;;@URLEncode(&amp;quot;Domino&amp;quot;;SelectedCategory) + &amp;quot;~&amp;quot;) + @Right(&amp;quot;000&amp;quot; + @Text(year);4) + &amp;quot;-&amp;quot; + @Right(&amp;quot;0&amp;quot; + @Text(month);2) + &amp;quot;\&amp;quot;&amp;gt;&amp;quot; + textMonth + &amp;quot; &amp;quot; + @Text(year) + &amp;quot;&amp;lt;/a&amp;gt;&amp;quot;&lt;/div&gt;&lt;p&gt;Note, too, that I have put &amp;quot;@ViewTitle&amp;quot; in where ViewName used to be. I don't know quite what I was thinking when I typed the original posting; the application has always used @ViewTitle, even in its earliest incarnation. Sorry. And I have incorporated the enhancement discussed below.&lt;/p&gt;&lt;p&gt;On to the refinements, then. I had been storing a URL-encoded version of the current category in the SelectedCategory field. It occurred to me that it's easier to @URLEncode that value where it needs to be encoded than it is to try to decode it when needed for R5 use, like for the window title and page heading displays. Change the formula for the SelectedCategory field to:&lt;/p&gt;&lt;div class="code"&gt;@Left(Category; &amp;quot;~&amp;quot;)&lt;/div&gt;&lt;p&gt;The formula for the category picker already has taken this change into account. Again, there may be typos remaining. The demo database is clean and works, but getting its bits and pieces up here as HTML has induced the odd problem. If you find anything, please let me know.&lt;/p&gt;&lt;h5&gt;Addendum&lt;/h5&gt;&lt;p&gt;A change to keep Internet Explorer happy: in the two spacer fields, insert a &amp;amp;nbsp;into both the &amp;quot;spacetop&amp;quot; and &amp;quot;spacebootom&amp;quot; cells. That will force the borders (if any) to display in those cells.&lt;/p&gt;&lt;p&gt;For Mozilla: add &amp;quot;height: 58px;&amp;quot; to the DIV.cellcontent CSS entry, or Mozilla will extend the &amp;lt;div&amp;gt; content outside of the table cell.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109545539557799388?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109545539557799388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109545539557799388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109545539557799388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109545539557799388'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/that-damned-calendar-errata.html' title='That Damned Calendar: Errata'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109534657498558104</id><published>2004-09-16T10:55:00.000-04:00</published><updated>2004-09-16T10:56:14.986-04:00</updated><title type='text'>The band will be rockin' when I get there</title><content type='html'>&lt;p&gt;There aren't many Ramones left on this terrestrial plane. Johnny has joined Joey and Dee Dee on stage at the great CBGB in the sky. Unconfirmed reports have St. Peter greeting him at the gates with, "Gabba, gabba, we accept you, one of us."&lt;/p&gt;&lt;div style="text-align: center;"&gt;Johnny Ramone&lt;br&gt;&lt;i&gt;Rockuiescat in pacem&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109534657498558104?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109534657498558104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109534657498558104' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109534657498558104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109534657498558104'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/band-will-be-rockin-when-i-get-there.html' title='The band will be rockin&apos; when I get there'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8279854.post-109534650793117021</id><published>2004-09-16T10:54:00.000-04:00</published><updated>2004-09-16T14:54:24.390-04:00</updated><title type='text'>About that hockey lockout....</title><content type='html'>&lt;p&gt;Fans of the current game should probably avert their gaze. I don't hold opinions, I speak eternal truths, and sometimes the truth hurts. You are free to disagree with me, of course, and I will defend to the death your right to disagree and voice that disagreement &amp;mdash; but you'll have to do so with the certain knowledge that you will be wrong.&lt;/p&gt;&lt;p&gt;The mere fact of my Canadian birth and life-long residence in my Home and Native Land makes me eminently qualified to comment authoritatively and in depth on the state of the game of professional hockey. It is my stereotype, my heritage and my birthright. And now, with news of a lockout of the NHL players eclipsing coverage of events of genuine social, political and economic import throughout the Canadian media, it is my wont.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The current NHL game blows buffalo-bladder bagpipes. Badly.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I am just old enough to remember the Original Six, but even the Gump had given in and started wearing a mask in net by the time hockey began to rule my life. (That Age of Ascension was once an inevitability for Canadian lads.) Even though there were very few players who were not Canadian-born playing in the NHL, at eighteen suited players per team and only six teams, you can be sure that the players who made it to the NHL were better than just good. There were guys that could handle themselves in a confrontation (even Bobby Orr, the Gretsky of his day, could go ten rounds with the baddest cat on the other team), but there was no Designated Goon (the player whose only purpose is to cause injury to an opposition target). Helmets? Unthinkable, unless (like Stan Makita) the player had suffered an injury of such a kind as to make continued play without a helmet suicidal. No, children, there were no armoured players in those days. The pads that were worn were made of stiffened leather over a thin layer of felt. The game was chippy, but because the guy doing the chipping was as likely to get hurt as the guy being chipped, there was nothing like the level of violence you see today. Yes, there were abominations, such as the Two Handed Clubbing, of which you can read in the Saga of Maurice the Rocket, but I'm talking about the day-to-day style of play.&lt;/p&gt;&lt;p&gt;At the same time, the team/player relationship was such that a player would likely be with a team for his entire career. More often than not, that player had spent his entire junior career in the team's farm system. Sure, some of them may have had to work at normal jobs in the off-season; after all, free agency had not been invented yet. I'm not saying that professional players should be making the equivalent of eight bucks an hour in this day and age. The old, bad system meant that fans knew their players (hereinafter referred to as The Good Guys), and could hold some real enmity for the players on the other teams (Them Bums). The change to free agency and the player movement that it brings has pretty much killed the Habs. Les Canadiens were not just a team &lt;em&gt;in&lt;/em&gt; Montr&amp;eacute;al, they were the team &lt;em&gt;of&lt;/em&gt; Montr&amp;eacute;al and of all of Qu&amp;eacute;bec. My team was the Leafs, and by Leafs I mean Davey Keon, Tim Horton, Norm Ullman, Ronny Ellis, Johnny Bower, et al. None of them was picked up on a short-term contract for a playoff run.&lt;/p&gt;&lt;p&gt;Then came The Expansion. Twelve teams. The game seemed to survive it. At least I found it not only watchable, but exciting. A few years later, Buffalo and Vancouver were allowed in to bring the total to fourteen teams, and the roster size was increased. At about the same time, I began to lose interest in the game. I still watched it, but I didn't enjoy it nearly as much. Given my age at the time, I put a lot of that disinterest down to the inability to easily collect a full-league deck of hockey cards and memorize everyone's stats.&lt;/p&gt;&lt;p&gt;The horrible truth was that the game was changing, and not for the better. I finally realised that there was a problem during the historic Canada/Russia series in '72. It wasn't just that the Canadian team looked out of shape and sluggish compared to the Russians, it was that Bobby Clarke had to deliberately cripple Valeri Kharlamov for life in order for the Canadian team to even appear competitive. I could not celebrate the Holy Goal of St. Paul of Henderson; I was in the can puking.&lt;/p&gt;&lt;p&gt;I demanded emancipation from hockey's oppression the day I saw Dave Schultz of the Philadelphia Flyers in a playoff game skating with one leg actually thrown over the back of an opponent, as if to ride him like a pony. Something about that just told me that this wasn't My Game anymore. The Howie Meeker game was gone, the Don Cherry game had come to take its place.&lt;/p&gt;&lt;p&gt;I have watched the odd game since then, and I can honestly say that I have seen nothing to improve relations between me and The Game. Checking is no longer about puck control, it's all about inflicting injury. More armour equals more injuries. Hearing rabid Leafs fans cheer as Brian McCabe makes yet another deliberate and obvious dive at an opponent's knees arouses such a depth of anger in me as to endanger innocents around me. This may be what they want to see in Phoenix and San Jose, but it ain't Hockey, and I ain't a fan.&lt;/p&gt;&lt;p&gt;So the NHL team owners have spent themselves into a hole, and now they want to take a mulligan on those player contracts. As much as I am sickened by the idea that some kid who can hardly spell his own name (because he was playing major junior when he should have been going to high school) can make seven million U.S. a year doing something that, in the final analysis, makes absolutely no contribution to the betterment of mankind, I am nauseated more thoroughly by people who, in the course of operating their businesses, have wilfully and knowingly spent more than they can reasonably hope to take in, and then expect other people to pay the price for their mistakes. Neither side is particularly right in this dispute; the owners seem more wrong, but I'll have to go with &amp;quot;C: Let's start all over again&amp;quot;, Regis. Final answer.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8279854-109534650793117021?l=stanrogers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stanrogers.blogspot.com/feeds/109534650793117021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8279854&amp;postID=109534650793117021' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109534650793117021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8279854/posts/default/109534650793117021'/><link rel='alternate' type='text/html' href='http://stanrogers.blogspot.com/2004/09/about-that-hockey-lockout.html' title='About that hockey lockout....'/><author><name>Stan Rogers</name><uri>http://www.blogger.com/profile/13819463953609361042</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_AsuYhzr3RiQ/SyANiB0AC6I/AAAAAAAAACk/6MgvTzO16aY/S220/stan_oil_2.png'/></author><thr:total>7</thr:total></entry></feed>
