Showtime
My Blackberry Enterprise Server Push Utility for the Lotus Notes Client, allows you to create Jobs for individual Channel, Message, and Browser Content Pushes, as well as allows you to delete Pushed Channel Icons from defined recipient devices.
Contact Information
Blogger, podcaster, writer, and geek Chris Toohey covers topics from application development to the latest must-have-gadgets.
Latest Updates

More on Mailer...
More on Junction Lite...
More on Remote Console...

More on Controller API Utility...
Products & Applications
Time Tracker
The idea is simple. At the start of your day - upon completion of your first task - create an entry highlighting what you did and whether you feel it was an efficient or inefficient use of your time. Based on several requests, you can also select the priority, apply categories, or even align your time against a project.
For Lotus Notes Client v8.0 and above, you can use the Time Tracker Widget to make this process even easier!
Zephyr
My Configuration-based Rich Text Mail Merge and Emailing Utility, Zephyr allows you to create rich, data-driven emails to support automated workflow - all via Microsoft Word Mail Merge-like architecture. Dear <firstname> allows you to personalize each email message not only to the individual recipient, but also to the individual application workflow event!
xCopy
xCopy is a simple configurable xCopy client for the Lotus Notes client. By creating and defining xCopy Profiles, you can batch process your file backup or remote upload jobs. With the addition of the xCopy sidebar widget, you can easily kick-off these jobs, and modify both the xCopy Profiles and xCopy itself.
Community & Resources
Lotus Technical Information & Education Community
The Lotus Technical Information & Education community is comprised of IBM, business partner, and customer subject matter experts who use product wikis, published articles, white papers, community blogs and the latest in social media to build and share high quality technical content.
OpenNTF.org - Open Source Community for Lotus Notes Domino
OpenNTF is devoted to enabling groups of individuals all over the world to collaborate on IBM Lotus Notes/Domino applications and release them as open source.
developerWorks Lotus : Wikis
Share your deployment experiences and best practices in our wikis and help IBM to create scenarios for successful deployments. Contribute to the community by collaborating on shared content and leverage the shared knowledge from that community.
Welcome to dominoGuru.com!
Focused on being the go-to resource for the IBM Lotus Notes Domino developer, dominoGuru.com delivers introductory-level best practices and advanced development deep dives for the IT professional, book and gadget reviews, and technical weblog, and more!
Lotus Domino Designer Wiki, Remote Redbook Residency for Lotus Notes/Domino 8.5.1, and why you should care!
10/19/2009 06:54:20 AM by Chris Toohey
Today we begin the Best Practices for Building Web Applications for Domino 8.5(.1) Remote Redbook Residency... and I'm a little more than excited with not only the team that we've managed to assemble, but also the content that we are looking to cover in our 8 week remote residency. I'm excited by the prospect of creating content for both the seasoned Lotus developer as well developers new to the platform.
Lotus Domino NotesDocument Auto-Save for Web Browser Applications - Article and Download
09/03/2009 07:52:53 AM by Chris Toohey
This tutorial will showcase a simple NotesDocument auto-save engine for an example NotesDatabase using the Domino CRUD API. The desired user experience will have the user's non-submitted NotesDocument auto-save after an admin-defined interval. To ensure a seamless user experience, I will continually - via a JavaScript timer - submit the "uidoc" via HTTP POST through AJAX to the Domino CRUD API to create (or update) a "temp" NotesDocument. We will create a custom response message to the HTTP POST and return the "temp" NotesDocument Unique ID (UNID), which we will use to update the "uidoc" HTML Form Processing Agent.
What's this all about? This is my NotesDocument Auto-Save engine for Domino Web Applications, which is an online demo turned Lotus Domino Designer Wiki article turned downloadable example application. Check out a quick video I put together to showcase just how simple it is to provide your users with such a valued feature:
For those of you - like me - who prefer to download an example application:
And now you have no excuse! Go add this feature into your existing Lotus Domino Web Applications, and never again get a call from a frustrated user who just lost 6 hours of editing a NotesDocument via a Web Browser when your Domino session authentication times out after 30 minutes...
Personal Address Book + 1 Domino Agent = Read-Only WAP UI for Mobile Devices
07/29/2009 12:42:41 AM by Chris Toohey
I was contacted by Keith the other day asking me for a downloadable example from my WML-enabling a Personal Address Book - It's in the cards.... article.
Instead of going the multi-Design Element route (as the original article called for a View Design Element and a Form Design Element), I thought that I would take a second to simplify the approach and instead deliver the same functionality with a single Agent Design Element.
The Agent - named mobile - can be added to any Lotus Notes Personal Address Book Template-based NotesDatabase, have that NotesDatabase setup with an appropriately configured Access Control List, put in on a Domino HTTP-enabled Server, and simply point your mobile devices to NotesDatabase/mobile.
The Agent itself is very simple - by design - and can allow for customization via tweaking to meet the needs of the particular customer:
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim markup_options As String
Dim markup_cards As String
Set db = s.CurrentDatabase
Set col = db.AllDocuments
Call col.FTSearch(|[form] = "Person"|, 0)
Print |Content-type: text/vnd.wap.wml|
If (col.Count > 0) Then
Set doc = col.GetFirstDocument
Do Until (doc Is Nothing)
markup_options = markup_options + |<option value="| + Join(doc.GetItemValue("fullname"), "") + |"><onevent type="onpick"><go href="#card_| + Cstr(doc.UniversalID) + |" /></onevent>| + Join(doc.GetItemValue("fullname"), "") + |</option>|
markup_cards = markup_cards + |<card id="card_| + Cstr(doc.UniversalID) + |" title="Contact Info"><p><b>| + Join(doc.GetItemValue("fullname"), "") + |</b><br />| + Join(doc.GetItemValue("mailaddress"), "") + |<br />| + Join(doc.GetItemValue("officephonenumber"), "") + |</p></card>|
Set doc = col.GetNextDocument(doc)
Loop
Print |<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">|
Print |<wml><card id="card1" title="| + Cstr(db.Title) + |"><p><select name="name">| + markup_options + |</select></p></card>| + markup_cards + |</wml>|
Else
Print |<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">|
Print |<wml><card id="card1" title="| + Cstr(db.Title) + |"><p><b>Unable to load Contacts</b></p><p>There appears to be an issue with this address book. Please contact support.</p></card></wml>|
End If
End Sub
Pretty simple stuff here, which renders the following WML markup:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="card1" title="Example WAP NAB">
<p>
<option value="Chris Toohey">
<onevent type="onpick">
<go href="#card_3CEDB7D07E5327D98525760200117ECA" />
</onevent>Chris Toohey</option>
</select>
</p>
</card>
<card id="card_3CEDB7D07E5327D98525760200117ECA" title="Contact Info">
<p>
<b>Chris Toohey</b><br />
ctoohey@dominoguru.com<br />
610.417.1700</p>
</card>
</wml>
So feel free to take the above LotusScript-based Agent Design Element code and use it to add a mobile device WAP UI to any Group Address Books and such that you might have lying around. Also, feel free to point your mobile device WAP-friendly browser to check-out the online demo that I've setup.
(Note: I wrote this in an Agent and leveraged things like FTSearch from within the mobile Agent. I do this so you can easily pinpoint what's going on and apply any required modifications.)
Now, for a killer solution: combine this with Showtime and deliver via Channel Push - for example - as many icon-laden WAP-enabled Personal Address Books that your customer teams require.
So, to review:
To implement this solution, you can simply create a new Agent Design Element named mobile, past in my code, and point any WAP-friendly mobile device to /mobile.
Google Gears vs. DOLS for offline rich Web Browser-based applications
07/22/2009 03:14:37 PM by Chris Toohey
Not that I'm the first to bring up this subject - a simple Google search for Google Gears vs DOLS returns a few really great articles and blog topics... but I have to wonder myself...
What's the best approach for a Lotus Notes-based application that you're looking to to extend to the Web Browser client that you want to also allow functional offline access? My gut tells me that there will be more web developers using Google Gears, and thus more published examples on how I can get the job done. Hell, just searching for DOLS on google brings mixed results while searching for Google Gears... Well, you get the idea.
I'll leave this up to you, Constant Reader: Google Gears vs. DOLS for a functional offline application? You decide!
The application in question? Well, I'm thinking about implementing this on my untitled Project Management and Tasking Application which I'll get started on as soon as the CMS is finished this week.
Understanding the Domino CRUD API: $$Return and Smart Landing Pages
04/16/2009 02:00:58 AM by Chris Toohey
In the last video, I showed how you can use the $$Return in combination with some basic markup to create a simple Create and Update submission confirmation message or redirect to a URL.
In this video, I talk about creating a context-sensitive Smart Landing Page that uses a combination of Page Design Element, URL QueryString Parameter, XHTML, and some JavaScript to create a user experience that we're used to in Web Browser Applications.
Consider this my entry for Show-and-Tell-Thursday. ;-)
Questions, comments, and suggestions welcomed and appreciated!



