Sunday, July 29, 2007

An error was encountered while opening a window!

I've written previously about pathetically inane error messages that lurk in dark corners of otherwise good software, waiting to spring out at you when you least desire them.

Today's beauty is one that lives in the current latest release 7.0.2 of the IBM Lotus Notes client (imminently to be replaced by the brand new Notes 8 client based on the IBM Expeditor/Eclipse architecture).





This is all that you're told. No more, no less!

So, there was an error, was there? And one that was encountered while opening a window, was it? What a masterpiece of exposition! What design committee thought up that one?

If you get yourself into this predicament, you'll find that this artfully vague message will be regurgitated every time that you try to relaunch the Notes Client following the crashed session.

As it turns out, the solution is quite simple: open the Task Manager and cancel the ntaskldr.exe Notes task.

Would it not be easy to modify this error message to suggest such a remedy? No, no, of course not: let's leave it there to bamboozle even more users!

MESSAGE FOR ALL SOFTWARE DESIGNERS & DEVELOPERS:
Why not eliminate the stupidities in your old code, and not just plow ahead creating new code?

UPDATE:
There's more info about this situation in IBM support Technote 1224056 which states this "was addressed in Notes/Domino 6.5.6. It is reported as no longer occurring in the Notes/Domino 7 and 8 releases." ... I'm not too sure about that! Time will tell, eh?

Monday, July 23, 2007

Web 2.0 -- on a wing and a prayer!

"On a wing and a prayer" ...
  • In poor condition, but just managing to get the job done. (from The Phrase Finder)
  • In a desperate situation and you’re relying on hope to see you through. (from World Wide Words)
- - - - - - - - - - - - - - - - - - - - - - - - -

I've written a few posts about "Web 2.0" during the last year or two, and consider that I have a reasonable understanding of the concept -- even if I reckon, a little dismissively perhaps, that it's sort of like the notion "This is the place to be!" and will inevitably be replaced by some other faddish concept.

Another current favorite term is AJAX (Asynchronous JavaScript And XML): not an architecture or a product specification but an approach or very general methodology for designing and developing Web applications. Some of them, like Google Maps, really are very nice! But already there are dozens of incompatible developer toolkits (I've listed a small sampling of them at http://www.asiapac.com.au/Links/WebServices.htm and http://www.asiapac.com.au/Links/Design.htm#AJAX_Asynchronous_JavaScript_And_XML.

Then there's SOA (Service Oriented Architecture) not to forget Web Services, with an "acronym soup" of terms (such as SOAP, WSDL, UDDI, ...) -- indeed so many and varied are they that the pithy catch-all WS-* is generally used for convenience. Some people treat the terms SOA and Web Services synonymously, so there's a degree confusion or misinformation going the rounds. (They're not synonymous, but Web Services can form part of an SOA design.)

Like others, I'm getting annoyed by all this excessive hype about "Web 2.0" and I've already predicted its inevitable demise ... See Web 3.0 is Underway -- but "Web Pi" is unreachable ... I like the graphic so much that I'm repeating it here:


Apparently somebody else quite independently has come up with the same construct. See The we is evolving into web pi (though without having fleshed out the concept very far, only proffering "pi is good as u can C").

All that aside, it was two web interactions earlier today that irritated me top the point that I had to vent some steam in this blog.
To me, the most ridiculous thing about "Web 1.0" (not even Web 2.0) is that it's based on the fragile Web Browser as the delivery vehicle, rather than some sort of session-aware rich client.

And, as often happens, it was only a little thing that drove me over the edge today: I was carrying out two extremely simple browser-based transactions.

Firstly, while doing some Internet banking at the ANZ Bank website, I quite inadvertently pressed the Back button on the left side of my mouse (the result would have been the same if I had pressed the Back button near the top of the browser window). You already can't say what happened, can't you, because it has happened to you too? I got an error message saying, in effect, "You idiot, you are not allowed to use the browser Back button at this time. For your safety, you have been disconnected. Please log in again and restart your transaction. (By the way, did we tell you that you're a moron?"

How repugnant this is! How can they keep getting away with this when another Australian banking institution's site that I also use for Internet banking gracefully takes me back as page, as I expected. Is it not fair to expect that if one bank can do it properly, they all should? (By the way, apart from this fundamental design flaw I find the ANZ Bank's site quite nice to use.)

Secondly, a little later in the day, when three or four pages into filling out a multi-page questionnaire at the Australian government's Centrelink site, I inadvertently did the same thing again. Fancy me being so naive to expect the Back button to take me back one step here, either! The principle is the same, however in this case I was told:
Error 500: Unable to restore flow execution with key '_coed-2907-2533-8831-4187A77DB2BA_k0512D7BE-125B-2129-A2FA-5C769C52F9EB' -- permission denied.; nested exception is org.springframework.webflow.execution.repository.support.InvalidContinuationIdException: The continuation id '0512D7BE-125B-2129-A2FA-5C769C52F9EB' is invalid. Access to flow execution denied.
So until they sort out some simple architectural matters such as proper handling of the browser's Back button, why are they progressing at breakneck speed toward "Web 3.0" or whatever comes next at the bleeding edge of the hype cycle?

The whole issue of browsers (in all their flavors) versus "fat clients" or "thin clients" with their various advantages/disadvantages needs to be more fully worked on. And even if the industry moves toward SaaS (Software as a Service) with centralized Web processing via ultra-fast broadband, there's still no way that I would carry out certain types of activities on anything but a local Rich Client platform, with local control (of backup, security, performance, etc). Well, them's my preferences; I fully understand that yours might be different.

Wednesday, July 18, 2007

Calculating Documentation Cruft

There's a new (13 July 2007) article over at Dr. Dobb's Agile Modeling Newsletter portal, titled Calculating Documentation Cruft

Here "cruft" is designated as:
  • C = The percentage of the document that is currently "correct".
  • R = The chance that the document will be read by the intended audience.
  • U = The percentage of the document that is actually understood by the intended audience
  • F = The chance that the material contained in document will be followed.
  • T = The chance that the document will be trusted.
Read the article to find out how the "cruftiness" of your documentation is calculated.

At the bottom of this newsletter there are also some very useful hot links to other agile documentation strategies and approaches, including the following one for general issues surrounding communication.

Thursday, July 12, 2007

Serious, or Seriously Funny?

Last night I again watched two of Australia's best-known movie critics Margaret Pomeranz's and David Stratton's weekly show At The Movies on ABC TV, and they both admitted that it was well into the movie Lucky Miles before they realized that it was meant to be taken as a comedy, although a "bitter-sweet" one.

It was the same experience for me when I read Angsuman Chakraborty's June 2nd, 2006 posting: Top 10 Reasons Not To Use Coding Conventions / Standards

Is he serious, or is he doing it all with a tongue-in-cheek approach? Make up your own mind!

For example, what about this one:
5. Coding convention makes your code easier to understand. That makes your job less secure. Maintaining good coding standard means your code can be understood by anyone and your project easily outsourced to some lowly-paid Indian’s in Bangalore (the horror!).