Notes Sucks! I can’t even get a cup of coffee.

Yesterday the @NotesDevTips
twitter account tweeted about not using the ‘click to sort’ option in lookup
views based on a suggestion that I gave them.

The reason for the suggestion was due to what I found when I looked at
the design of one of our inhouse applications that was originally designed
by a Business Partner and then customized for our needs, both internally
and with the BP’s assistance. Users had been complaining about how slow
the application was and as time progressed and more and more data was going
into the system the application got so slow it was starting to become unusable.

What I found was that in quite a lot of the HIDDEN LOOKUP views there were
about 10 columns and all of the columns had the ‘click to sort’ option
enabled to allow sorting in both directions. This was causing the application
to be extreamly slow because the indexer was been given extra unneccessary
work. Every view has an index and every click to sort option is an extra
index for the view, so for a view with 10 columns, all with the click to
sort turned on in both directions this meant that a single view contained
21 indexes, multiply that by the number of views in the database and you
end up with a lot of extra indexes that users would never use.

In our case the application data was taking up about 2GB and the index
for the database was taking up around 4GB. After the changes the index
size dropped to about 500Mb. A few simple changes and we have saved about
3.5Gb of disk space, that alone is a big saving but this application is
replicated to about 10 servers so we have saved about 35Gb across our entire
infrastructure.

Talking to one of the applications power users this morning resulted in
the complaint that they no longer have time to go get a cup of coffee
when opening the application
, it is opening within seconds now as opposed
to taking a minute or two previously. Yes, Notes Sucks because I took away
their coffee getting time. Seriously, however, the users have noticed that
the system is now a lot faster then it was previously and they are very
happy. All those minutes of waiting are gone which leads to them being
more productive in the long term.

The moral of the story is
be very careful about how you design your views in Lotus Notes applications.
Design for performance, don;t turn on view options that will tax the indexer
unless they are really needed and test your applications with realistic
amounts of data to catch performance issues.

The next @NotesDevTips
entry will be about never using @Now or @Today in a notes view selection
formula. There were a few of them in the database design also.

Tagged with: ,
Posted in None

Some handy Blackberry Hints For The Admin

We’ve all been there, a user calls the
helpdesk saying that their blackberry isn’t syncing emails properly. One
solution is to wipe the blackberry and setup enterprise activation again
but depending on the user and size of their mailbox this can be a long
process so here are a few hints that I’ve picked up from various blackberry
forums.

First thing to do is actually make sure
that the Blackberry is not receiving emails. You could send the person
an email and then ask them if they got it but there is an easier way. In
the subject of the email make sure it starts with <confirm> and the
blackberry will automatically send you a return receipt as soon as the
message syncs to the device.

If the address book is not syncing correctly
you can easily force the blackberry to erase the current contents of the
address book and then download everything again from the server. To do
this go to the Address Book application and then go to the Options menu.
In the Options menu type RSET. You will be prompted to do the wipe and
download, it may take a few minutes depending on how many entries in the
users address book.

If the problem is the calendar then
you can use the exact same trick as above. Go to the calendar application
and then go to it’s options menu and type RSET and it will wipe the calendar
and redownload it from the server.

If the issue is syncing of eMail then
you can go to the Settings -> Advanced Settings -> Enterprise Activation
menu and hold down ATL while typing CNFG. This will bring up a hidden menu
where one of the options is to disable ‘Wireless Sync’. Set it to disabled
and exit all the way back to the blackberry home screen and then drill
back to that menu again and then set ‘Wireless Sync’ to enabled. When you
exit the menu again a short Enterprise Activation will kick in and hopefully
once it’s finished the blackberry will be syncing it’s eMail, Calendar
and Address book again with no problems.

Tagged with: ,
Posted in Uncategorized

Lotus Notes Smart Upgrade On The Mac

I’m a big fan of Smart Upgrade in Lotus
Notes when it comes to installing upgrades on MS Windows machines. The
SURunAs wizard is probably one of the best features ever added to the Smart
Upgrade toolkit and it allows me to deploy upgrades very quickly after
they are available to download from the IBM Lotus website.

Just last Friday I had build the Smart
Upgrade package for 8.5.1 FP2 and had it setup for deployment to the rest
of the IT Dept within 30 minutes of downloading the files and before the
end of the day nearly half of the IT Dept had upgraded. All I have to do
is add in a group to the Smart Upgrade kit and the rest of the company
will be upgraded to FP2 without further IT intervention.

Everybody but our Mac users that is.
I’ve never really looked into Smart Upgrade for Mac users till now and
I found a few interesting tidbits of information as well as a few headaches…

The first thing to know about Smart
Upgrade for mac users is that you attach the DMG file downloaded from the
IBM website to the Smart Upgrade kit document. I originally tried attaching
the MPKG file that is inside the DMG but it failed when it couldn’t mount
it. Thankfully the error message made sense and it was a quick fix.

The next thing to know is that there
is no SURunAs for Macs. Once the DMG file is downloaded to the client machine
and is mounted the Smart Upgrade installer will ask for a username and
password for somebody with rights to do the install. Depending on your
environment this may be the end users password if they have admin rights
on their mac, otherwise it will be an IT member that will have to remote
into the machine to supply the password. Expect a lot of helpdesk calls
if your end users don’t have install rights.

The install itself is silent, just a
small ‘Smart Upgrade’ dialog box. Unfortunately the dialog box does not
get updated with the correct information during the install. On my computer
it was stuck at ‘Lotus Notes Is Still Running’ even though I could clearly
see in the Activity Monitor on the Mac that Lotus Notes had fully closed
and that the installer was running in the background. Once the installer
finished the dialog box changed to ‘Lotus Notes Is Installing’ and then
very quickly changed to ‘Lotus Notes is Restarting’. This is probably something
that needs to be examined.

More importantly, however, is that on
the Mac the Smart Upgrade cannot chain installs like it can on Windows
Machines. Say you have a kit to goes from 8.5.1 to 8.5.1 FP1 and a second
kit to go from 8.5.1 FP1 to 8.5.1 FP2, if a user with just 8.5.1 logs in
they will get an error from Smart Upgrade telling them to inform the admin
that there are chained installs in the Smart Upgrade Kits database. Why
it can’t download one upgrade, run it and then after Notes restarts download
the next upgrade is beyond me. This is certainly something that needs to
be investigated for future versions of Smart Upgrade on the Mac.

One oddity that I noticed is that on
Windows machines the Fix pack build numbers have a space between the Notes
version number and the Fixpack number, for example, Release 8.5.1 FP2.
On the Mac there is no space so it appears as Release 8.5.1FP2. This is
something you’ll need to remember when creating the Smart Upgrade Kit Documents.

Lastly, you can customize the install
if you want to add or remove features like Sametime or Symphony. You will
need to extract the files form the DMG file into a directory and then right-click
on the MPKG file to show the package contents. In the ‘Deploy’ directory
is the install manifest XML file where you can turn on and off features.
Once edited and saved you can then use Disk Utility to create a new DMG
file that you use in the Smart Upgrade Kits.

I hope this helps demystify the Smart
Upgrade procedure for your Mac users. Maybe a Linux person out there can
blog about using Smart Upgrade on Linux machines…

Tagged with: ,
Posted in None

xPages and Javascript Libraries/Toolkits

When it comes to developing web applications
in xPages I’ve heard a number of discussions around which JavaScript library
or toolkit you should be using. There are many excellent JavaScript toolkits
the most common being MooTools, JQuery, YUI, EXT etc etc. There are tons
of them and they all have their own benefits and community of users around
them which will tell you that their particular toolkit is better then all
the rest.

When it comes to xPages there is already
a JavaScript toolkit pre-installed on the domino server called Dojo. If
you have looked at Dojo in any way you are probably thinking that IBM selected
Dojo because it has no documentation and would therefore be a perfect fit
in the xPages world because the documentation for xPages is also practically
nonexistent, but you would be wrong.

JQuery and MooTools on their own are
very lightweight libraries, the powerful features only start to appear
when you add in plugins that the developer communities around both libraries
have created, however this can pose a problem, when jQuery or MooTools
gets updated there are no guarantees that the plugins your using will still
work and lets not forget about licensing, are those plugins your using
licensed for use in corporate applications.

Dojo on the otherhand comes with Dijits
and DojoX as part of the package. These optional libraries that are easily
added to your page by using a dojo.require statement are the equivilent
of plugins in the other libraries but because they are part of the package
you know that when dojo gets updated all these extras will also get updated.
That is an incredible bonus for the dojo user community.

Now you may have seen some really cool
MooTools or JQuery examples and want to use them in your website, you could
add the Jquery or MooTools layer on top of the Dojo layer in xPages but
why stuff loads of unnecessary files down the pipe to your users when you
could do it all in Dojo. There is very little you can do in JQuery or MooTools
that can’t be done in dojo. At the end of the day the logic is the same
its really just a case of a slightly different syntax.

As an example of what I mean I found
a really cool ‘sliding login’ written by Jeremie Tisseau of web-kreation.com.
He has a version written for MooTools ( demotutorial ) and a
version writen for JQuery ( demotutorial ). I would
love to use this in a xPages application but it is not written in dojo.
I could just add JQuery to my page or I could rewrite it in dojo.

Rewriting the sliding login in dojo
was a lot easier then I imagined. I was able to take the tutorial from
web-kreation.com and look at the logic behind
how the sliding panel was created and then take that logic and apply it
to dojo. Then once I had the scripts working in dojo I was able to break
it down and apply it to an xPages application using tricks like #{id:controlname}
to get the xPages renderd ID names at runtime and by adding the onClick
events directly to the xPage controls in Domino Designer rather then link
them during a dojo.ready event.

Want to see the xPages version in action?
Here’s a demo* of how it stands
right now. While I have yet to implement the registration component the
login part is working perfectly and it does all it’s work via an AJAX call
to the domino server to determine if the person logging in has rights to
the database or not.

So now when your wondering about which
JavaScript library to use stand back a bit and ask if you can write the
function in dojo so that your not pushing extra files down to the client
that are not really needed.

* The Sliding Login panel will be released
on OpenNTF under the Apache Public License V2 when it is finished. The
original version by Jeremie Tisseau was released under the Creative Commons
License V3.0 which allows it to be included in an APL2 code release.

Tagged with: ,
Posted in None
Archives