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

By Date: September 2009

Supercharge your Notes Archive in 7 easy steps

Archiving in Lotus Notes came a long way. It is easier then ever once you got it setup right (if you were nice to your Notes administrator (s)he would have setup that for you using a policy). So here is the trick. Create one folder named Archive. It is case sensitive, so archive or ARCHIVE won't do.
Step1: Have a folder named Archive
You now can drag & drop documents into that folder. The standard Notes mail template contains code to recognize when you want to drop into that special name.
Step2: drag documents into the Archive folder
Tip: when dragging from other folders than the inbox use Ctrl+Drag, so Notes will retain the folder information (and yes - I'm getting myself a Huawei E5 router). You will be prompted to archive the documents:
Step3: Say yes or no to archive your documents
While this is sweet and easy you would now have to wait until archival is complete. Waiting for a computer to finish its work is the last thing I want to do, so I say NO. With a few extra steps the documents still get archived away. Let me show you.

Read more

Posted by on 30 September 2009 | Comments (0) | categories: Show-N-Tell Thursday

Quick note to Singapore's design, carpenter and construction companies

Take note: this is the 21st century. If you want business update your YellowPages listing with an eMail address. Go and fix your websites: if all that is on your homepage is one piece of flash no searchengine will find you - and yes that high paid executive looking for you on her iPhone won't see you either.

Posted by on 30 September 2009 | Comments (1) | categories: Singapore

New Desk for my Study

With the help of Richard and Tony I found out, that the material I'm looking for is called hardwood plywood (the image shows 10 layers). Now I had to design the table. This is what I came up with (using Google SketchUp:
Design Study for Study table
I'd like to keep things simple, so the plywood sheets would be just waxed or clear painted and wall mounted using metal triangles (you can see one sticking out on the left). The sheets would have a nice finish at the edges like the picture below.
Plywood furniture quality

Now I need to find a carpenter who can do that. My kitchen guy unfortunately doesn't have the quality of wood I'm looking for (other than that: he did a real good job in our kitchen).
Update: As Nick suggested - Rubber Wood would work too!
Rubber wood seems to be more popular here
Update: It seems rubber wood is used for kitchen table tops and only comes up to 65cm wide. I would consider rearranging the layout to have a 10cm stripe of something else at the back (maybe a stripe of perforated sheet or ?). When you look at the edges of the wood, you can see, that the edges are not 90 degree, but rounded. Makes it more pleasant when resting one's arm on them. There are three potential forms which are listedt in the sequence of my preference:
Having are more professional edge for a desk

Posted by on 30 September 2009 | Comments (2) | categories: After hours

Lazyweb: What is the correct translation for "Multiplex Platte"?

My study is equipped with two Ikea Jerker computer desks. The Jerkers were great as long as SWMBO and I were the only constant users. However now " The Gentlemen" use the equiment increasingly often, so the Jerkers have to go and make space to a bespoke solution. Being a carpenter's brother I have direct access to good advice (unfortunately too far away for actual work). We decided on make and material. Then I hit the wall: What is the correct English translation of " Multiplex Platte"? It is a layered plywood panel, but I only got a blank look from the local carpenter I asked here. So I have tow questions: What is the correct English translation and (for my Singapore readers): where can you get them in Singapore?

Posted by on 26 September 2009 | Comments (4) | categories: After hours

Sending Notes email as MIME messages

In the beginning there was Notes. And Notes was used inside the corporation only. And things were good. Then came the time to link Notes to other eMail systems. These other systems only supported text. And things were good. Then MIME arrived. Notes added MIME conversion and trouble started <vbg>. A lot of admins didn't like MIME since it required additional bandwidth and opened up a can of potential worms. So they switched off the incoming or outgoing mime conversion. And forgot about the settings. So today many users grief because their nice messages are dumbed down to text. Fixing that is easy as 1-2-3 once you get your server configuration document into edit mode:
Configuring Notes to send out MIME email

If most of your communication partners use Notes on the other end of the pipes, you might consider to encapsulate the original message by default (your bandwidth watchdog will hate you for that)
Encapsulate Notes messages via MIME multipart

For the highest fidelity in RTF to MIME conversion you want to have a close look at iFidelity.

Posted by on 24 September 2009 | Comments (6) | categories: Show-N-Tell Thursday

How does your (public) application look in [insert-browser-and-version] on [insert-os-and-version]?

Testing web applications is a tedious job. Gazillion combinations of browsers and operating systems can turn that into a nightmare (suddenly a rich client doesn't look that bad anymore). Scott Hanselman has a very good blog post on testing considerations. One of the services he introduces in the post is Browsershots that allows you to take screenshots of your site using many combinations of browsers and operating systems. The only catch: the site must be publicly accessible and the free service will publish your images. There is a private service available for a fee. Neat tooling for visuals. A similar offering is available from MultiBrowserViewer which requires a client (Win only) installation. Still you need to test functionality and performance. Here you might look at JMeter for performance or Selenium for functional tests. Not to forget HTTPUnit, XPages Unit Tests and of course IBM's commercial tools like Rational Functional Tester and Rational performance Tester (For testing Notes client applications you would use Smart Toucan's AutoUser). Of course performance testing comes with its own set of caveats (Don't bother to test what you can't fix).

Posted by on 24 September 2009 | Comments (0) | categories: Show-N-Tell Thursday

Mini Sun Power Saver - How Real is Real?

Over the weekend I took a stroll over Singapore's premier consumer electronics and IT fair Comex 2009. Besides the usual suspects like all the big brands in PCs, printers, cameras and TVs one can find curiosities and strange things. One of them was the " Mini Sun Power Saver" aggressively marketed by the H2H group. The flyer claims it can reduce domestic power consumption by 30% and stabilise your power supply. The strange part here is, that you just plug the device into a socket. So it sits in parallel to other consumers. The sellers claim the savings effect is due to the stabilisation of the power flow weeding out spikes and irregularities. The picture they use shows a zigzag line which isn't entirely accurate for AC, which is a sinus wave. Also the label reads " German's technology" which is at least a grammatical error. So out the question to the lazy web: Can anyone explain how exactly such a device would work (some complicated formulas are OK for me) and/or if it is just a repackaged snake-oil variant?
Update: CASE (our SG consumer watchdog) thinks it is Snakeoil.

Posted by on 14 September 2009 | Comments (4) | categories: After hours

XPages View Pager - Advanced edition

XPages does a fe nice things automagically for you. Thinks like giving you the content of a view page by page. While this is impressive on the first view a lot of the potential users would like to see more options in that navigation/paging control. This got me thinking and I drafted how the "Ultimate View Navigator" would look like. After all Bob Obringer designed his classic Domino navigator partly based on my suggestions (Unfortunately Bob's blog is gone). So I doodled around with my favourite screen design tool and here is what I came up with:
Advanced View Pager control for XPages
I think it covers all the usual bases. A few caveats: It hasn't been designed for categorised views, but will display single category selections well (for my view on categorised views, check my earlier post). It also will not perform nicely when you use reader fields protected documents (and again that topic has been covered before). Did I miss anything in the UI?

Posted by on 10 September 2009 | Comments (10) | categories: XPages

Domino and RDBMS

The question "What is the best way to integrate Domino with an RDBMS" surfaces quite regularity. With the impending demise of NSFDB2 these are your options:
  1. Domino Enterprise Connectivity Service (DECS - part of Domino)
  2. Lotus Enterprise Integrator (LEI - separate product)
  3. Custom code using LCLSX
  4. Custom code using Java in XPages

So the interesting question is: when to use what?

To get the best performance you need to revisit architecture rather than find solutions for a specific coding problem. When it comes to RDBMS code we find that a lot of developers like to create their own code not taking advantage of optimised code (caching, pooling etc.) provided by the platform. You need to clearly be aware why your code *MUST* talk to a RDBMS. These are the guidelines:
  1. Don't use an RDBMS (1)
    Domino's multi-value field capability can model master-detail records without the need for a relation. the NotesSQL driver makes Notes databases available for report generators that require tables as input. Webservice and XML capabilities can provide many of the alternate use cases. I can have a look at specs to make suggestions how to implement them in standard Notes. We have databases in production with more than a million records and many GB in size. Some performance tuning works wonders:
    • Does my application really need a RDBMS in the background? If you are looking for performance that is probably a no, if you need to integrate into existing systems that is probably a yes. also if you look at transactional applications that would be a yes
    • Does my application need real-time lookup into an RDBMS? In a lot of cases that is a NO. You might need to lookup person information in the RDBMS. In this case you better use that information and TDI (provided with R8) to synchronize the RDBMS with the Domino Directory (there are enough fields for most information *and* there is a customization API build into the directory) and use @NameLookup which beats any RDBMS connection (for the caching have a look here: http://www.ibm.com/developerworks/lotus/library/ls-D6_Dir/ -- and that was just R6). For other databases DECS/LEI is a good option. So instead of RDBMS code you use normal lookups in Notes. A neat trick here: store the UNID of the new document into the person's record and instead a @DBLookup or getDocumentByKey you can use @NameLookup/@GetDocfield @NameLookup / getDocumentbyUNID for high performance
    • Consider well: would a "on document change" agent be sufficient? Is the result of the transaction needed for the user directly? If not: Use a Java Threat for the connectivity so a transaction can continue without the user waiting
    Don't use an RDBMS (2)
    With XPages (introduced in Domino 8.5) an application now can use data from more than one document or database in a single form easily.
  2. Use DECS
    Does my application CODE need real-time access into a RDBMS? Domino provides DECS out of the box and LEI for a fee. DECS/LEI provide a robust fast way to access RDBMS data without a developer needing to write (and maintain) ODBC/JDBC/LCLSX code. It also takes advantage of connection pooling. in DECS Domino forms are configured to map to relational tables including mapping multi-value fields to master-client tables. Entries exist in Domino and the RDBMS. Any RDBMS would work: DB/2 MySQL, Oracle and other vendors. DECS is a sufficient solution if creation/deletion of records happens through the Domino front-end (date changes, short of the primary key) can happen anywhere. There are thoughts about advanced uses of DECS.
  3. Use LEI
    Similar to DECS but with more options: records can be created/deleted from Domino and/or the backend. Data can be stored in the RDBMS only (Virtual views/documents). Data operations can be scheduled (great for reporting). I like the virtual views and probably will write about them soon(er or later).
    Domino doesn't do transaction(s) handling in an RDBMS. If you need that functionality you need to ensure that on the RDBMS side. A best practice for write access: write documents back into a "command database" that is linked to the RDBMS using DECS/LEI. The table it is linked to would be a auxiliary table with a "on create" trigger. That trigger does on the RDBMS site what it needs to do (and the developer doesn't need to understand anything about Domino. They only need to understand the RDBMS). The trigger would update the "command record" so on the Domino side you can process the result
  4. Custom code using LCLSX
    Developers love this, but I haven't seen a good use case for that. Typically this is used for small transactions where the configurability of DECS/LEI is not appreciated. One case: an existing RDBMS with a lot of triggers/stored procedures can't be amended to incorporate a neat connection to Domino (the best solution: let DECS write in a temp table and have the onInsert trigger in the RDBMS pick the value and call the stored procedure. It separates your Lotus(Script) code from SQL 100%. This way you don't need to mix code and SQL, makes maintenance muuuch easier, saver and cheaper). If you have to code: use LCLSX. Do not use ODBC direcly (especially SQLServer sucks on ODBC, it is build for OLEDB which LCLSX is using for it). Encapsulate into classes.
  5. Custom code using XPages/Java
    You can use any Java class in XPages to connect where ever you want to connect. Suitable approach when you have *huge* RDBMS databases and need to display/render small portions of it at a time (e.g. P/O database with a Domino based approval system). Maintain the connection in one of the contexts (application / session) and use a pool manager (but double-check: is DECS/LEI/TDI a better option?)
As usual YMMV.

Posted by on 07 September 2009 | Comments (4) | categories: Show-N-Tell Thursday