This article explains the changes that were introduced in the IBM® Lotus® Notes® 8.5 File System installation and describes them with respect to the installation, setup/launch/run, and uninstall phases in the client's life cycle. Also included are answers to some FAQs on the client file system.
It's not often that you see an application that simply blows you away. This video has been receiving well deserved praise in the yellow-verse during the last week. If you are not a member, of said yellow-verse, you might have missed it. Frankly, its well worth watching regardless of which is your preferred platform/language/religon/taste in beer yada, yada.
Nathan Freeman and Chris Blatnick have been presenting and actively evangalising 'impactful' interfaces. This new one, blows away what has been in their presentations thus far (which has been pretty good anyway). 'Bones' sets the bar well and truly high. The whole project, not just the UI, is pretty astounding. Peter Presnell has a good write up which is worth a read.
Nathan and the team at Lotus911 have worked out some of the trickier details in crafting the interface, kiosk mode and composite applications, but have been smart in choosing Lotus Notes & Domino for the ancillary parts of the project around security, encryption and network failure. They've also been smart in choosing the hardware specifically for the target environment.
The take-away for Lotus Notes developers, who don't develop kiosk applications all that often, is that with composite applications you can craft any user interface you or your users desire.
It may not be easy, but at least now we know it's possible.
I've had this database of code that is a framework for Unit testing in Domino/LotusScript. Its somewhat similar to JUnit. I wrote it so that I could double check code that was high risk and to give me another level of confidence that it would cope with the unexpected. I've been meaning to add a little polish to the database before I release it into the community. I've finally got around to it this week (and just in time for SnTT). It's not 100% complete, but might be of use to someone and rather than it sitting on my disk I've published it as a project on OpenNTF (here).
JUnit fits into a technique for Test Driven Development (TDD) where the basic premise is that you write tests for a unit (function, method etc) before writing the actual code. You then write your intended function (or method etc) until it passes all of your pre-written tests. In practice this is quite a large shift in mindset for some programmers. However, writing unit tests without adopting the whole TDD can still be beneficial (and I believe is quite common). For me it means that I can have a set of tests that I can check against code quickly, in a repeatable way and if I need to refactor my code I can quickly determine the impact of those changes by the success (or failures) of the existing tests.
The 'Domino Unit Framework' (DUF) is the Domino (or maybe that should be LotusScript - although LUF isn't quite as funny) take on this framework. The database contains example code in the one and only agent, but here are a few snippets so that you can see how it works.
Dim OutputStream As NotesDatabaseOutputStream Set OutputStream = New NotesDatabaseOutputStream(session, "", "DominoUnitResults.nsf")
Dim testObject As New Test("Test Objects", Outputstream) Call testObject.AssertEqual(session.currentdatabase,Null)
You can also check for True or False, in the example below I have just passed a True/False but typically you would include your code that returns a true or false.
You can also group up a set of tests into a 'suite of tests' which you can get an overall pass or fail or maybe just group them into logical functions.
Dim testSuite As New TestSuite("isMemberTests", OutputStream) Call testSuite.Add(test1) Call test1.AssertEqual(True,isMember(vArray2,vArray1))
So what objects does this support ?
Currently the following objects are supported as they were the ones that I needed - I might added more later or maybe someone else might like to (if you fancy contributing).
Numeric - integer - long - double - currency LS Date Boolean (Integer) String NotesObjects - NotesDocument (based on UNID) - NotesDatabase (based on Replica Id)
Can I test my Own classes ?
You can also unit test your own custom classes. You will need to implement an isEqual method which the framework expects.
Class Person ... Function isEqual(people As Person) As Integer ' add in your own code that determines equality or not. End Function .. End Class
How can I have a quick look ?
Just download the DUF Database from OpenNTF and then create a copy (without Documents) in the root directory with a name of DUFResults.nsf. Then in the DUF database run the 'Development / Unit Test Agent'. There are some screen shots here of the database here.
Until Next Year.
I expect that this will be my last SnTT post until after LS08, I'm not going but will spending my time following all the news remotely.
For those building Composite Applications here is the latest version of the multi-media tutorial on building Notes 8 Composite Applications using IBM Education Assistant. It provides a great overview of Composite Applications, as well as, detailed step-by-step instructions on how to build one: