Dec's Dom Blog

A Strange iNotes Issue Caused By Internet Explorer
Tuesday, August 31, 2010 3:37 PM

After upgrading our servers to 8.5.2 this past weekend a number of users reported that they couldn't log into iNotes using IE8 ( our default web browser ). They would enter in their username and password and the iNotes interface would start loading but would then fail with just a few of the basic elements on their screen and a javascript error.

Logging into the same computer with administrative rights and then loading iNotes as the same user would work perfectly, log back out and log in as the user and iNotes would fail. After trying all sorts of options like deleting the browser cache, removing all the crappy toolbars ( do users really need the Google Toolbar, Yahoo Toolbar AND MSN toolbar ) etc it still wouldn't work and would fail while loading the iNotes interface.

Finally I decided to do a full reset of IE. There is a handy little button to do this in the advanced tab of the Internet Explorer preferences. This resets IE back to it's default settings, it removes all the browser plugins, Browser Helper Objects, Cache, History, personal settings etc. After running the reset iNotes started working again for the user.

So if any of your users run into iNotes issues try resetting Internet Explorer first.

Get Your Feature Requests In Now
Thursday, July 22, 2010 10:02 PM

Blogsphere V4 is on the way.

If you have any feature requests then post them here and I'll see what I can get done in time for the first release.

Running On Blogsphere 4
Thursday, July 22, 2010 3:31 PM

If your viewing this on my blog you'll notice that I've replace the design with the new Blogsphere V4 template.

It is still VERY rough around the edges and there might be a few small issues but over the next few days I'll work them all out and get it ready for its initial release for testing.

Now that I'm running live I better get the RSS feed up and running next Laughing

The RSS Feed is now up and running. Actually I rewrote it as an ATOM feed but it uses the same URL.

A Web Based Interface For Blogsphere V4
Wednesday, July 21, 2010 9:03 PM
    If you didn't guess from my last post then you'll be pleased to hear that I have started working on the version of Blogsphere and this time it's all going to be done in XPages.

    One of the great things about XPages, in my opinion, is that you just have to write it once and it will work on both the web and in the Lotus Notes client so for the next version of Blogsphere I have ripped out EVERY SINGLE BIT of old code and I'm building it with just an XPages interface for both the viewer and for the blog owner. The only thing that has survived from the previous version is the form names and field names ( and even they have been reduced by about 90% down to the bare minimum ).

    So somebody visiting the blog will see this :



    But once your logged in with the correct roles in the ACL you'll see this...



    Kinda nice....
I Think I Need A New Application Icon
Tuesday, July 20, 2010 8:17 AM
8.5.2 XPages Allows You To Specify A Media Type For CSS Files
Monday, July 12, 2010 7:17 PM
    IBM Lotus Notes/Domino 8.5.2 is still in beta, All features referenced in this blog post may or may not appear in the final version of 8.5.2.

    If you attended the Lotusphere session 'Make Your XPages Applications POP with CSS And Themes' given by myself and David Leedy one of the things we mentioned was that in Domino 8.5.1 and lower there was no way to specify the media type for a CSS file that was added directly to an XPage or added via a theme document.

    The great news is that is the latest 8.5.2 code drop that I'm using ( code drop 5 for anybody else who might be on the managed beta ) has been updated so that you can now specify the media type in either location.

    When adding a Style Sheet directly to an XPage you will have to go to the 'All Properties' section for the page and then expand out the 'Resources' and 'StyleSheet' sections to find the media property. It's a nice handy dropdown list. This may get updated in later builds to expose the property in the helper dialog box that appears when you initially add the style sheet.



    If you prefer to use theme documents rather the add style sheets directly to an XPage you can specify the media type by adding the tags for it like this :



    This is especially great news for anybody who is using the BluePrint framework as that framework comes with a print.css file but you should consider setting up a printing CSS file for any apps that you are building. The most common use for a print.css file would be to use it to hide parts of the page that don't need printing. For example on a wiki app you could hide the sidebar so that the end user who prints the page just gets the raw content. Who needs a tag cloud on a printout.
Automatically Install The iPhone iOS4 Timeout Patch When You Install Traveler
Wednesday, June 30, 2010 8:33 AM
    If your running the new iPhone operating system iOS4 and your also running IBM Lotus Traveler then you may have heard about a timing issue that can slow down the syncing of eMails to the device and even cause some server issues.

    Apple has now created a support document that details the problem and they also provide a patch in the form of a 'Mobile Configuration Profile' that you can install onto your iPhone so that the default timeout is set back to 240 seconds, as it was in iOS3.

    For your current Traveler users you can just point them to this support document and get them to install the profile and restart their phones but for new Traveler users heres a little trick that you can use so that you won't have to remember to also install the second profile.

    The .mobileconfig file that you download form the Apple website is just an XML file that you can open in any text editor. Download the file you your computer and open it up and you will see an <array> section containing a <dict> section that contains a load of keys and values that define the timeout settings.

    Now go to your Traveler server and open the apple.xml file ( it's in the data\traveler\cfg\client folder ) and you'll notice that it is also an XML file that contains an <array> section with a couple of <dict> sections. Now all you have to do it copy the patch's <dict> section, including the <dict> and </dict>, into the array section of your apple.xml file and save it.

    Now when a new user installs Traveler on their device the profile that downloads from the Traveler server will include both the ActiveSync setting and the timeout settings. All the user has to do is restart the iPhone for the timeout settings to take effect.

    Hope this helps somebody...
Multiple Lotus Traveler Accounts on iPhone? Watch Out...
Wednesday, June 23, 2010 3:47 PM
    Now that the new iPhone operating system ( iOS 4 ) supports multiple ActiveSync accounts you may be tempted to point to more then one IBM Lotus Traveler, for example your corporate Lotus Traveler server and the one on the Lotus Greenhouse.

    If you try this you may end up scratching your head as the second Lotus Traveler Profile on the iPhone overwrites the first Lotus Traveler Profile, more head scratching will ensue if you reinstall the first profile only to find the second profile has now been overwritten.

    The reason that this happens is all down to the template profile that IBM Lotus Traveler uses on all installs of the IBM Lotus Traveler server. The unique profile identifier is the exact same on all servers and the iPhone iOS4 sees the two profiles coming from two different servers as the same profile.

    Fixing the problem will involve the server administrator, they will need to either manually edit the template profile ( traveler\cfg\apple.xml ) to change the profile identifier string or they can build a new template profile using the Apple iPhone Configuration Tool. Once the apple.xml file is replaced with a new one with a different profile identifier string there is no need to restart the server, just go to your Lotus Traveler server from the iPhone and you'll now be able to pickup the new Lotus Traveler profile and install it alongside the other Lotus Traveler Profile.

    Hope this helps somebody, having more then one Lotus Traveler server is not typical for end users.
Xpages Is About To Get A Lot More Powerful
Sunday, June 6, 2010 9:07 PM
    IBM Lotus Notes/Domino 8.5.2 is still in beta, All features referenced in this blog post may or may not appear in the final version of 8.5.2.

    Over on the Domino Designer Wiki a number draft documents have been released that explain the new[Xpages Extensibility API's] that should be available in 8.5.2. As a member of the managed beta for 8.5.2 I've had the chance to try out some of the concepts presented in the documents and all I can say is that WOW, Xpages just got a whole lot more powerful.

    In my simple tests I have created a number of new container-type controls to mimic some of the HTML5 elements and as you can see from the screen snippit below when I add my new controls to an XPage it adds the the namespace ( xmlns: ) and my new tags are all prefaced with 'h5' as defined per the documentation.

    Page Source :


    Rendered HTML :


    So why are XPage now a lot more powerful? Well if you read the documentation you'll see that it's now possible for third-party developers to create a pre-compiled library of controls that can be deployed to a Domino Server or Notes Client. These libraries may be simple controls that add new HTML elements like the ones above for HTML5, allowing you to write HTML5 designed applications before IBM add HTML5 support directly to XPages or they could be more complex controls like the ones that are available from third-parties for the ASP.NET development environment.

    Expect to see Business Partners selling new XPages Controls libraries and for free libraries to appear on OpenNTF once 8.5.2 is released.

    The documentation for this new feature is still missing a few parts which hopefully will be filled in by the time 8.5.2 comes out but based on what is available so far this looks like an amazing new feature in XPages.
Notes Sucks! I can't even get a cup of coffee.
Thursday, June 3, 2010 12:04 PM
    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.
Some handy Blackberry Hints For The Admin
Tuesday, March 30, 2010 1:35 PM
    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.
Lotus Notes Smart Upgrade On The Mac
Tuesday, March 30, 2010 1:16 AM
    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...
Better xPages Name Pickers
Saturday, March 27, 2010 1:13 PM
    Ahh the bane of every domino web developers life, the name picker...

    There have been a few attempts at creating a good name picker for xPages applications, some of them are up on [OpenNTF] and I even wrote one in xTalk but they all fail if the Domino Directory is too big as the lookup tries to return more then 64k of data and this causes an error.

    Last year [Tim Tripcony]posted code for a name picker that got around the 64k limits and also showed how to use one of those little 'hidden goodness' features in xPages so I started looking into his code for another application I'm working on and tried to improve on it where I could.

    This is a slightly modified version of [Tim's original code] that looks at all the public addressbooks that a user has access to. If running on the server it will show all the server directories, if running in the client it only shows the server directories and skips the local names.nsf. I have also added a boolean flag to the function to allow you to decide if you want to show a * for everybody. Handy for readers fields where you want to allow the user to allow everybody reader access. The other change I have made is to use the abbreviated name instead of the common name for better reader/author field support.

    It's still not a perfect name picker, you may need to adjust it for your environment but it sure beats having a non-functioning name picker if you have a large Domino Directory or if you have multiple Domino Directories in your environment.
xPages and Javascript Libraries/Toolkits
Monday, March 1, 2010 1:53 PM
    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 ( [demo] - [tutorial] ) and a version writen for JQuery ( [demo] - [tutorial] ). 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.
Changing the DocType in XPages
Sunday, February 28, 2010 2:28 PM
    I've been looking into HTML5 development lately for a couple of different reasons, it is an important new technology for any web developer to learn and, as we saw at Lotusphere, HTML5 is mentioned as being part of the back-end technology for Project Vulcan.

    When you start looking at HTML5 the first thing you learn is that you need to change the DOCTYPE to <!DOCTYPE html>. Here's what the draft HTML5 specification has to say about the DOCTYPE

    [
    The HTML syntax of HTML5 requires a DOCTYPE to be specified to ensure that the browser renders the page in standards mode. The DOCTYPE has no other purpose and is therefore optional for XML. Documents with an XML media type are always handled in standards mode.

    The DOCTYPE declaration is <!DOCTYPE html> and is case-insensitive in the HTML syntax. DOCTYPEs from earlier versions of HTML were longer because the HTML language was SGML-based and therefore required a reference to a DTD. With HTML5 this is no longer the case and the DOCTYPE is only needed to enable standards mode for documents written using the HTML syntax. Browsers already do this for <!DOCTYPE html>.
    ]


    By default any Xpages application you build will automatically include a doctype for you and it would appear that there is no way to change it, however, hidden away and documented only in a sample file xPages , starting in version 8.5.1, allows you to change the DOCTYPE very easily.

    Open the 'Package Explorer' eclipse view as described in [this blog entry] and then open the 'WebContent -> WEB-INF -> xsp.properties' file.



    Now all you have to do is add one additional line



    Save the file and that is it. Now when you view this xPage application in a web browser it will have the DOCTYPE that you have specified as you can see in this 'View Source' screenshot.



    Of course you can use this trick to set any doctype that you want but remember that it will effect all the pages rendered from the application. As of yet there is now way to set the doctype on a single xPages unless you use the [xPage Agent] method.
<< Older EntriesNewer Entries >>
Powered By Blogsphere V4.0.0