Some Notes on Xpages (or What I Did Over My Summer Holiday)        


With props to John Mackey and Andrew Pollack for publishing tips that I leaned on in my work today.  And a deep, ingratiating bow to Thomas Gumz for taking the time to talk to me about some tricky pieces on Thursday afternoon!

You must use Session-based authentication for Xpages.

applicationScope and sessionScope variables totally kick ass.

Finding all the detail controls for things like "what to iterate over in a repeat control" is some deep voodoo.  But it's very satisfying once you find it.

When in doubt, Project - Clean is your friend.

Speaking of the Project menu, make sure "Build Automatically" is turned on.  Unless you don't want it on -- in which case make sure you remember to Build before testing.

It's helped a lot to have a second machine on my desk, with 8.0.1, where I can do things like create new libraries, since that's broken in 8.5 Beta 1.

Screen real estate is VITAL when working with Eclipse.  I already kinda knew this working with Component design, but now that we have visual editors for xpages and HUGE property sets for various controls, dual monitors is going to be a minimum requirement.

The Outline control is one of the most useful aspects of DDE (Domino Designer in Eclipse).

Debugging is a major challenge.  Sometimes the engine throws a global error page.  Sometimes it doesn't.  Sometimes you have to just use the print () command in your server-side script to trace what's going on.

You MUST just open your mind and explore things.  There's no way it's all going to get documented, and it's going to be years before there's a broad base of design patterns and tools to make things obvious.  But you can learn a lot just by going to All Properties and reading the hover help on the properties labels.

The visual editor really only scratches the surface.  Try this: create an Xpage.  Go to the All Properties tab.  Go down to the "data" section.  Click on the property value and you'll see a little plus icon.  Click it.  Read the list of options.  You won't be disappointed.  

All the editors controls -- every place you type in text -- still need a LOT of work in DDE.  The script editor is really rough, and you particularly don't want to try to use the mouse to select content in the script edit pane.  But even some of the edit boxes in regular properties try to deal with type-ahead, and can drag on like a Friday afternoon in the summertime.  (oh... wait... it IS Friday afternoon in the summertime!)

Okay... it's late.... probably no one will read this until Monday, but today is Independence Day, and that's exactly what I feel like I'm getting as I start trying to do some serious projects with Xpages!

 Missing Carlin (or How to Look Thirty Years into the Future)        


I know I'm a little late, but...

Birth control pills are still on prescription... you still need a note to get laid.  You gotta go to one guy to get the note and then to another guy.  Ladies must feel silly going 'here's my note!"

Someday birth control pills will come off prescription....  When they do, they'll need those cute little catchy names that the patent medicines have.  Names which describe what the product does... sleepez, no-doz, dentugrip, orafix...something for the youngster: juniormiss... wombbroom... humptydumpty.


In case there was any doubt as to Carlin's genius, I offer you Yaz.

I'm heartbroken.  I can't think of a person that I don't know in person that I will miss more.

 The Law of Unintended Consequences (or Why Most of Your Workflow Apps Are Deeply Flawed) - Now with Update Details!        


I've really been torn whether to write this entry.  It might be petty of me, but I can't stand the fact that it benefits someone who doesn't deserve it.  Nevertheless, it also benefits way too many other people for me to ignore the matter.  My magnanimous tendencies seem to get the best of me again.

It turns out that there's a very deep bug in Domino with the advanced switch to "Optimize Table Bitmap."  I'm sure many readers know this switch.  It's the one that makes all your views work faster, even though it has nothing whatsoever to do with Tables or with Bitmaps.   What the switch really means is "create a special index criteria for the Form field so views that select by it go faster."  I guess they couldn't fit that in the properties box.

Anyway, the deep bug is that sometimes documents disappear from the index, and basically, it seems like the view's index becomes corrupted.  It doesn't.  It's just that the selection criteria isn't actually being applied.  According to IBM, the problem is...
...a very rare issue that appears to be limited to documents whose form has changed. We do not currently believe that this behavior would be seen in databases that do not have this type of workflow, with the NAB being an important example.


In other words, "this bug doesn't affect our templates, so it's not a priority."

Well, that just gets my hackles up.  Because a) it's a pretty big deal; b) it's undocumented; and c) I can't even begin to count the number of applications I've seen in production that change the Form on a document over the course of a process.  Far from being "rare," it's actually the epitome of an advanced Domino application.  Separating presentation and logic from data is the "A-HA!" moment for thousands of Domino developers.

In fact, I wonder whether this bug will affect Xpages applications.  Xpages allow a developer to render documents with a variety of pages, and then validate them against an arbitrary form.  So toggling Form values is a key aspect of refactoring to Xpages.  I could easily see lots of unintended consequences springing forth from trying to optimize Xpages applications (and when people start doing lookups in view columns, performance is going to become paramount) and not being able to evolve backend forms as, say, a Prospect changes to a Customer.  The word "showstopper" doesn't do it justice.

But even more simply: this switch could break any application that has a mildly sloppy Form formula in a view.

Frankly, I wouldn't have considered this important until I saw IBM's reply.  If they know where the problem is, then the hard part isn't coding a fix -- it's testing.  And IBM is already in the middle of testing the most dramatic updates in the on-disk structure for NSFs since R6.  So there's little reason not to bundle this one in.  Given that NSF reliability is one of the key objectives of the 8.5 server, it seems important to throw a light on this matter and let IBM know that, yes, we do indeed care about both index performance and being able to build flexible workflow applications.

So I have three questions for you, dear reader...

1) Do you regularly change Form field values in your applications to manage workflow or presentation?

2) Would you consider the failure to shine a light on this matter to be a grievous oversight by IBM?

3) Do you know of any standard templates that ship with Notes (or any companion product) that change the Form value in order to achieve some desired outcome?  (This would be the smoking gun.)

Thank you in advance for your answers.

UPDATE: First, I'd forgotten that this switch had been updated since it's origination.  It was originally "Optimize Table Bitmap" but has since been changed to "Optimize document table map."  My apologies for misquoting the switch.

Second, according to Chad Scott from IBM, the problem only occurs when the Form value is changed by the HTTP process.  Details are available in this technote.

Chad describes the existence of the technote as having documented the problem.  I'm afraid I have to disagree.  If it's not in the documentation I see when I press F1, it's not documented.

Lastly, it turns out that this technique IS used in the NAB.  The Domino directory itself calculates the Form field on the Connections form.  Here's the formula...
REM {For compatibility with V3 (sigh)};
@If(ConnectionType="0";"local";"remote")

"sigh" indeed.

So the result is that if you change your Connection type from "Local Area Network" to anything else, using a web browser (including the web admin client,) you could experience this problem.  Why might you have this Optimize switch on in your NAB?  Because it's offered by the Help as a performance advantage...
This significantly improves the performance of view updates, especially updates of small views within large databases -- for example, the Connections view in the Domino Directory.


Amusingly, the $Connections view -- the one that would actually benefit from the Form linkage because it's most often used by the server -- doesn't use the Form= approach.  It uses Type=.  So therefore it doesn't get the advantage of the "Optimize" switch, nor is it subject to this bug.  Indeed, most of the internal views for the directory don't use Form selections.  Which means there's a substantial performance gain available for the directory -- and therefore every Domino server -- through some fairly simple SELECT formula updates and an actual fix for this SPR.  Art Thomas, are you reading?

There is, however, a standard Domino template that changes the Form value on a regular basis: the Resource Reservation database.  The action of submitting and accepting reservations over the web explicitly calls Form value changes, and almost every view has a Form="Reservation" line in it.

How many times have you had "apparently view corruption" problems or "busy time strangeness" in the Resource Reservation database?  Problems that were mysteriously resolved by deleting and recreating reservations, or by doing a Ctrl + Shift + F9?  If those problems came from web users of the database, you might have suffered this bug with an out-of-the-box workflow template from IBM.  I know I've had this issue with at least one customer in the last 90 days.

 My First Stalker (or "lotus notes is so not being used anyore")        


Just received the most amazing email from my friend "businessadvice10@yahoo.com"  Apparently, my advocacy of "Louts Notes (sic)" has been redefining me.

I'm kind of curious whether this is actually targeted at me personally, or if this is one of those "topical spam" messages meant to trick me into some weird phishing scam.  I hope Chris Linfoot has some insight.

Continued...

 A quick tip on how to read my blog        


Always read the ALT tags for images.  You may occasionally suffer a bad pun.  You may also occasionally pick up more information.

 Meet Domino Superior (or A Tutorial on Why Xpages Are Better Than Cake and Ice Cream)        

Join the Evolution
Mutation: it is the key to our evolution. It has enabled us to evolve from a single-celled organism into the dominant species on the planet. This process is slow, and normally taking thousands and thousands of years. But every few hundred millennia, evolution leaps forward.
- Patrick Stewart as Professor Charles Xavier


After spending three days in meetings and workshops in Westford, I would submit that for Domino, that leap forward has arrived.  In the form of the now-ironically-named Xpages, the Yellowverse is going to get a lot of long-standing problems solved in a very short time.  Much like learning to live with people that can walk through walls or read minds or shoot lasers from their eyes, it's going to require some getting used to.  There will be prejudice, and a longing for the "old ways" and a few reactionaries will probably even want to do away with this new super-species of design.  But those who embrace it will find themselves quickly getting back to building Super Human Software.

Today, I'm going to show you how Xpages can quickly solve one of the greatest long-standing problems in Domino development: the inability to do an @DbLookup in a view column -- otherwise known as "can't do JOINs."

Continued...

 iPhone and the Enterprise (or How to Read Beyond a Press Release)        


When I was a kid, long distance phone calls were expensive.  My mother and I rarely had much money, so on those occasions when we'd make a road trip, we developed a system to convey information on departures and arrivals without paying for them.

The process was simple: after arriving some where on a trip, we'd make a person-to-person call to where ever we'd left to "I. M. Home" or something similar.  If the someone at our origination point needed to talk to us, they'd simply claim to be I.M. Home and the conversation would begin.  If they only wanted to acknowledge the message, they'd say that I. M. Home wasn't available, and the call would end, free of charge.

In the modern era of caller ID, we can do this even easier.  If my mother leaves my house to drive home, a trip taking about 5 hours, and I see a call coming in from her home number about 5 hours later, I usually don't bother to answer.  Clearly she's arrived home, and if there was some urgency to the matter, she'll call again.  Similarly I often don't bother to leave voice mail messages for my wife.  She'll see my number on the caller ID, and doesn't need to waste time dialing into a recording to know that I'd like her to call me back.

I think about these strategies every time I hear someone talk about "push" messaging to mobile devices.  "Push" information from one device to another on an IP system requires that each device be connected and be addressable.  But staying on the network is exactly the worst thing a mobile device can do, since even digital networks require 5 times the power to stay connected to in a broadcastable mode.  3G devices in stand-by consume about 0.6W, while active connections consume about 3W.

Continued...

 John's Call to Action        


John makes a call to action by providing a set of slides to encourage all community participants to drive visibility for the the Yellowverse in their presentation.  This strikes me as extremely important, particularly for IBM to do.  Product ecologies must be cultivated outside themselves to grow.  At the moment, we are far too insular.

John also mentions my observation to him that was inspired by Carl Tyler's comments on his blog.  Allow me to elaborate...

If we take as an assumption the figures from IBM about user population and number of orgs using Notes/Domino, there are about 100 million active users and about 45,000 organizations with Domino deployed.  If we compare this to the number of participants in certain areas of the Yellowverse, we can see some interesting representations crop up.  Let's start with something as simple as the number of active bloggers tracked on Planetlotus.org: 266.  If this user population is representative even of the world of Lotus professionals, then each blogger represents about 170 Lotus customers.  If we extrapolate that to users, each blogger represents 375,000 users - or basically a customer set the size of IBM itself.

Of course, these numbers are obviously an exaggeration, but look at how they pan out for other groups, too.

 Most annoying sentence I read all day        


Unbelievable...

"Based on Microsoft data, we estimate that 81 of Fortune 100 companies, along with millions of users, use Exchange as their primary messaging and calendaring platform."  -- Terry Myerson, VP, Microsoft

I have no idea whether that number is true.  It might very well be.  But can anyone tell me why they would need to estimate?  It's 100 companies.  If you're going to throw a statistic like that around, CALL THEM.  Otherwise astute readers just might notice that you're talking out of your ass, and you're using a weasel word to give you deniability later.

 Berke Breathed on blogging -- from 1987        

Do APIs, SDKs and feature triage count as 'issues of unimaginable complexity?'
I found some old Bloom County books the other day, and was howling with laughter at the author's 20-year-early prediction of the blogging phenomenon.

I think "LHPuttgrass" needs to become a social tagging standard for when everyday schleps start talking.  hehe

(Note: there are many occasions in which I'd categorize myself as an L.H. Puttgrass, and certainly we eventually got more skin on HBO, in the form of Cinemax!)

Hire Me 

Lotus-911-Logo.jpg

Search 

Disclaimer 

Welcome to Escape Velocity!

Opinions expressed here by Nathan T. Freeman are not necessarily those of his employer. However, there's a decent chance they are, so check with them if you really want to know.

But really... do you need that kind of validation? Are the opinions expressed here in doubt?

MiscLinks