Usability - Productivity - Business - The web - Singapore & Twins

By Date: July 2007

Domino Application - ZEN style

Great work is under way to make Domino work as a first class citizen in the shiny new Ajax world. With this field covered I decided to look the other way: how minimalistic can a Domino application get and still work properly. I want to build a small approval application, just one approver level. It is mainly for documentation, not to execute a sophisticated mapped out workflow. Something that is a little bit more structured that sending eMail requests.
So let us assume I know HTTP/HTML very well. I don't know JavaScript (and I might want to use the app with devices that don't support JavaScript). I don't know Java or LotusScript. I have a limited understanding of @Formula (some basic stuff like @Command([FileSave]) or @Trim(@ThisValue) or @if(...)). I also have a friend who does the CSS for me. I have an excellent understanding however how Domino does forms, how Author and Reader fields work and how Domino URLs are constructed (which resemble some kind of REST API, so learning them with my background in HTTP was quite easy). How far can I go?

There are quite some steps involved. But they are less than it looks like.

Step 1: Create the database
Create a new database

Step 2: Set the ACL
Setting the access control
Since I want anybody to be able to use this little gem, I set default access to Author. Please --> In your environment follow best practices and set it to -No Access- and have an appropriate access group... but that is what the Administrator will do for you anyway. Just keep in mind to create the [Debug] role (You might not understand it but you liked the idea in that SnTT post).

Read more

Posted by on 30 July 2007 | Comments (3) | categories: Show-N-Tell Thursday

Story reading time

Trying to be a good dad I read to Anthony and Ernest when I'm not traveling. We did the Narnia Chronicles, The Time Apprentice, The series of Unfortunate Events, Neil Gaiman's Stardust (which was a challenge, since there are quite some adult passages in the book) and some smaller titles. Since daddy had to buy Harry Potter #7 I suggested to read all the volumes to them. When we pick a book to read, I usually pick 2 or three and let Anthony and Ernest choose which one they like better. This time I offered Harry Potter #1 and The Celestine Prophecy. After flipping a few pages Anthony insisted to read the prophecy which made me smile, since the book was part of the reading and discussion material for my counsellor training. It means quite a bit to me.
Actually I was quite sceptical if they boys would enjoy the story. However they could recall very well what happened and insisted to continue despite my offer to switch to Harry. So the experiment goes on. I'm curious how much of the book will be comprehended by two 7 year old minds.

Posted by on 21 July 2007 | Comments (0) | categories: Twins

Defeating Credit Card Security

All credit cards have this extra number. That number that doesn't appear on anything but the card. It is there for additional security. The credit card guidlines clearly state, that a merchant must not store this number. Traveling a lot I observed that most hotel chains actually record that number. Their rationale is clear: you forget to state the minibar, smashed the TV or caused any other additional charges, they simply can deduct that amount without running afoul of the internal security measures (there is more scrutiny with "card not present" transactions. That irks me like hell. And I'm not talking about cheap 3rd class hotel, the big IBM approved chains do that. I asked the receptionist, why she is doing that and she replied "company policy". I don't blame her, but I'm asking myself what are this security measures good for if they are ignored.

Posted by on 17 July 2007 | Comments (0) | categories: Travel

Mac Mini and Parallels Customer Service

A few weeks ago the old Acer laptop died and the gentlemen and she-who-must-be-obeyed demanded a new machine. So I went and had a very close look at Microsoft Vista. As a result we added a Mac Mini to our IT zoo. Microsoft nicely provides a keyboard driver for the Mac, to all the keys of the multimedia keyboard. First things first I installed Notes7, Firefox and Neo-Office and accounts for all family members. Using iSync all my phones/gadgets are in sync (Notes address book sync pending). The kids adopted iTunes and iPhoto and Comic Maker. So far so good. However some stuff (my aging Quickbooks, Domino Designer etc.) still requires Windows. So I got a copy of Parallels Desktop for the Mac. Just one week after I bought it Parallels released version 3.0. Fifty bucks for an upgrade for a software that is just one week old seemed a bit steep to me. Since I had registered my copy I decided to wait for the "Invitation to upgrade" email with a discount code. Nothing happened. So I send a short email and asked their support what they can do. Here is the reply:

Hello Stephen, writing Stephen instead of Stephan happens quite often with US correspondence

Here's your activation key for 3.0 version:

Best regards,
Parallels Customer Service

@Diana: Thanx a lot, that is excellent service!

Posted by on 09 July 2007 | Comments (4) | categories: Mac

The Eventful Notes Client -- Part 2

Slavek suggested in his comment to " The Eventful Notes Client" to use the Statusbar instead of popup messages. I replaced "@Prompt([OK];"Eventful Notes";" with "@Statusbar(", "MsgBox" with "Print" and "alert(" with "@window.status = (". Being naturally lazy I used Teamstudio Configurator for this. Here we go:

-- Open database into frameset --

07/09/2007 09:42:47 PM  Status Msg: Menu Page Title
07/09/2007 09:42:47 PM  Status Msg: Name of embedded Outline
07/09/2007 09:42:47 PM  Status Msg: $All Global Initialize
07/09/2007 09:42:47 PM  Status Msg: $All Initialize
07/09/2007 09:42:47 PM  Status Msg: $All QueryOpen
07/09/2007 09:42:48 PM  Status Msg: Initialize for database NotesEventExample
07/09/2007 09:42:48 PM  Status Msg: PostOpen for database NotesEventExample
07/09/2007 09:42:48 PM  Status Msg: $All PostOpen
07/09/2007 09:42:48 PM  Status Msg: $All OnSelect

-- Change to a different view --
07/09/2007 09:43:21 PM  Status Msg: $All QueryClose
07/09/2007 09:43:21 PM  Status Msg: $All Terminate
07/09/2007 09:43:21 PM  Status Msg: $All Global Terminate
07/09/2007 09:43:21 PM  Status Msg: SecondView Global Initialize
07/09/2007 09:43:21 PM  Status Msg: SecondView View Initialize
07/09/2007 09:43:21 PM  Status Msg: SecondView QueryOpen
07/09/2007 09:43:21 PM  Status Msg: SecondView PostOpen
07/09/2007 09:43:21 PM  Status Msg: SecondView OnSelect

Read more

Posted by on 09 July 2007 | Comments (2) | categories: Show-N-Tell Thursday

The Eventful Notes Client

There have been many attempts to explain what Lotus Notes is. I'd like to add my own - from the perspective of software development:

Lotus Notes is an event engine that provides the developer with the capability to assemble an application from predefined events and react to them.

The languages available to react to events are: @Formula, LotusScript, JavaScript, Java, C/C++. The selection of available languages depends on the event you want to react on.
. Some examples of events are: Database opened, Default value of a field, Saving a document etc. There are MANY events and the knowledge how to use what event and when makes the Notes developer <g>
I assembled a small database with one outline, one page, one frameset, two views, one form, one subform and a few fields. I "mined" almost every event I could find with prompts to determine the sequence of the events firing (I didn't mine Hide-when formulas, the onKey..., onMouse... and onChange events).

After putting all the events into code I performed the following actions, starting with the empty database:
  1. Open the database (into the frameset)
  2. Switch from the View "$All" to the View "SecondView"
  3. Create one document "EventSample"
  4. Fill all fields with values
  5. Press F9 to recompute
  6. Change one more value
  7. Press Ctrl+S to save
  8. Close the document
  9. Repeat Step 3-8
  10. Select the View "$All"
  11. Delete the current document (Del key)
  12. Select the next document
  13. Select the deleted document
  14. Undelete the document
  15. Close the database
I didn't play with agents, drag & drop or web documents (that would be more to add). There are a lot of events firing, see for yourself:

Update: Also checkout Part 2 of the story.

Read more

Posted by on 06 July 2007 | Comments (2) | categories: Show-N-Tell Thursday

Pay (with) Attention!

Interaction with each other comes at a price. The currency we settle the cost of that interaction is attention. The saying is " Pay attention", not "lend" or "give" or "show" attention. Seeing attention as a currency it starts to explain a lot of pattern in interaction:
  • If you force my attention you are an extortionist. Nobody likes to get blackmailed. So if you "steal" my currency I try to give as little as possible, if not nothing. I also will try to take back what was extorted. A vicious cycle begins
  • If I find something worthwhile, I don't mind paying. I see that as a good investment. This is why we feel good paying attention to people who are interesting, engaging and inspiring
  • If I'm paid a lot of attention I feel (emotionally) well heeled. Just imagine 10000 people paying full attention to you. This gets addictive. This is why musicians and actors never will stop, it simply feels too good. This is also a reason why lovers feel so good: they pay full attention to each other escalating the good feeling
  • If we interact and you don't pay full attention I will feel short changed. So I might start to reciprocate and hold back myself
  • If I hedge my bets and spread my attention investment (a.k.a. permanent partial attention) I might avoid total loss, but for sure I also won't get the full story, because I'm never fully here or there (How many meetings suffer from that)
  • If I want to influence someone and get a certain result I will make a deposit or pay forward with my attention.
Partial and forced attention are an epidemic. I think it is worth to fight this disease. The best remedy is to pay forward attention: whenever you interact with someone, pay full attention regardless of your expectation in return. One secret of attention: if you pay it because you want, it will replenish you with energy. If it is extorted is will drain all participant. Want to try in your next meeting: buy a palm size bean bag. Whoever holds the bag gets full attention in a meeting (no email/im/sms please) and can speak. The bag is handed over once (s)he is finished. In energy starved environments you might want to limit the time how long one person can hold on to the bag and/or have rules how to pass on the bag (e.g. in circles).

Posted by on 05 July 2007 | Comments (0) | categories: After hours

TouchPad vs. TrackPoint

I am was firmly in the TouchPad camp when it comes to Laptop mouse interfaces. I normally don't connect a mouse. All my previous Laptops had TouchPads only. My ThinkPad at work (a Lenovo T60) came with both TrackPoint and TouchPad. I never used the TrackPoint and found the TouchPad (distance with finger equals distance of mouse pointer) much more inutitive that the TrackPoint (time pressed with finger equals distance of mouse pointer). A week ago my TouchPad stopped working. While I'm quite a keyboard buff, I had to use the TrackPoint for a while.
The good folks at Tech Support in IBM's facility at Changi Techno Park fixed that within 5 minutes, but it took me almost 2 weeks to get there. So I became used to the TrackPoint. So now I got mixed feelings towards the TrackPad. I have both as my disposal and now find myself using the TrackPoint more often than the TouchPad. I especially like the middle button, that turns the TrackPoint into a scrolling device. Also the distance to move the hand from the keyboard to the TrackPoint is shorter than the TouchPad. Where both are less than ideal is working with graphics. Here the TouchPad seems to allow more precise positioning. However for drawing buffs there are this little gems (got one for the Mac and start playing with that).

Posted by on 02 July 2007 | Comments (1) | categories: IBM - Lotus

Advanced Domino Web Development

I've been charged with delivering a workshop "Advanced Domino Web Development". Musing over the content of this workshop I realized, that you need just five things:
  1. Understanding
  2. Tools
  3. Libraries
  4. Reference
  5. Code
In detail, there is a little more stuff to consider. Since a picture is worth a thousand words, here the details as MindMap:
To create this map I used a trial version of Tony Buzan's very own software.

Posted by on 01 July 2007 | Comments (2) | categories: Show-N-Tell Thursday