Latest Updates

Products & Applications

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.

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!

Public Build: Event Calendar

12/29/2008 03:17:18 PM by Chris Toohey

In this post - the first in an ongoing series of Public Build projects - I plan to discuss the first steps when starting a project, followed by additional posts, screencasts, and other publishings specific to this particular build project.

About this Project

A customer of mine was in dire need of a simple events calendar to facilitate their corporate training endeavors. This simple events calendar, which we'll call Events Calendar (or EC for short), will consist of event coordination through the native Lotus Notes client, review and "reservations" via a web browser client (Internet Explorer 6+ in this particular case, but we'll write for everything), and simple integration with a shared mail database and calendar that will handle all of the actual Calendaring & Scheduling work.

This project - at least phase 1 - is due by 12/31/2008, and counts against my project champion's year-end reviews.

Getting Started

You went for the Domino Designer client didn't you?! Tsk tsk tsk -- we're not going to touch the Designer client until we're actually ready to code something. And with (... checking Calendar) less than 3 days until this application needs to go live, the last thing that we need to do is get stuck in the building phase before we've confirmed the functional requirements for our build project.

Those of you who have checked out YellowCast may be familiar with the term Napkin Development. Those of you who haven't (for shame!) or would like a recap, Napkin Development is the simple practice of blueprinting the application outside of the code, through a combination of workflow diagrams, ~pseudocoding, and - when the need arises - jotting something down on a napkin!

This may seem an inconvenience, but consider this:

  1. This allows you to easily confirm that you understand what the customer wants (and that they understand what they're asking of you) -- which greatly decreases scope creep.
  2. ... and since I hate to document things, you can use the majority of the blueprinting as a jumpstart to the documentation of the project!

So, let's start by talking a little bit more about the build project itself:

  • 3 User Types: Event Admin : Attendee : Coordinator
  • 2 Client Types: Lotus Notes : Web Browser
  • An Event Admin will create an event entry in the EC via Lotus Notes, Attendees across the organization will create a reservation entry for a given event via their Web Browser, and the Coordinator will use the reservation data to create emails, and invite the Attendees to a scheduled Meeting through a pre-existing established Group Mail Database.

That's pretty much it for phase 1 on this project. The architecture-minded will immediately consider creating a simple Parent-Child data hierarchy with the Event and Reservation entries respectively, which is exactly what I plan on doing.

For those of you who are more visually-minded (like me), here is a simple architecture diagram of how we'll design EC:

Events Calendar - Architecture Overview

Data

Now that we have a rough idea of what the application will do, as well as the "main players", we're going to deep dive into what each type of NotesDocument in our NotesDatabase will contain from a data perspective.

As we've established, there will be two types of NotesDocuments: Events and Reservations. Each of these NotesDocuments will contain both functional and data storage NotesItems, and we'll take a few moments to outline the ones that we know we'll need now:

Event|event

NotesItem Usage
title Simple 1-line identifier for the event.
description Multi-line descriptive identifier for the event.
date_start Starting Date for the event.
time_start Starting Time for the event.
date_end Ending Date for the event.
time_end Ending Time for the event.
location Location/venue for the event.
categories Optional categorization option for the events.
subject Computed - special NotesItem name used for bookmark mouseover text.

Reservation|reservation

NotesItem Usage
$ref Created automatically, stores the Event NotesDocument UNID.
username Computed, using the user's runtime evaluation of @UserName

And that's really - the Event Admin will create an event NotesDocument, entering in the Title, Description, date and times of the event, it's location, and any categorization they choose. Pretty simple. The reservation is simply a username-stamped Response NotesDocument to the event NotesDocument.

The real work is going to be the visual representation of the events on the web browser client, with the ability to click and create a reservation. That, we'll cover in the next post - where we should be finished with the blueprinting of the application and move onto planning which particular technologies we will employ to deliver our Events Calendar!

xCopy v0.2 - OS xcopy Client for Lotus Notes

08/07/2008 11:19:25 PM by Chris Toohey

A better description, and a MUCH smoother process overall, v0.2 of xCopy comes with the following enhancements from the original:

  • xcopy via Java Agents and Script Libraries
  • Transaction Log documents via Java Agents and Script Libraries.
  • Can now handle multi-thread large file xcopies.

And that's about it! Not a major release from a feature perspective, but certainly a major overhaul as I've ported the actual functional Agents from LotusScript to Java... with Tim's help of course!

New/first-time xCopy downloaders just download, sign, and go! v0.1 users: download, sign, change to a Design Template, change the extension from .NSF to .NTF, and run Replace Design!

Download xCopy

If you have a need to either manually or automatically copy defined files to a defined target location, this is the app for you! If not, download it if for nothing other than a very simple example of Java Agents and Script Libraries. Feedback and feature requests appreciated.

xCopy - Local Archiving and File Copying Utility for Lotus Notes

07/22/2008 12:28:25 PM by Chris Toohey

I ran into a situation recently where I needed to start backing up my My Documents contents onto a network drive (which is a good idea of course). I wanted to do this as easily as possible, and without the headache. So I thought to myself that there HAD to be a way that I could schedule the execution of a simple batch file that I'd write that did this for me. After I wrote this - which took a few minutes, it's not doing anything outside of a simple xcopy command with some attributes - I thought to myself that there's an opportunity here for not only a configurable application but also a slick little sidebar application in Lotus Notes. A few hours later, I had xCopy v0.1, a pretty slick little utility. The hours came as the result of little UI tweaks, including something slick that I'm doing with the Transaction Logs Form Design Element, a nice little sidebar widget in the form of a Form Design Element, which showcases a configurable embedded frameset and "webby" tabbed-navigation. And like with Sorting Hat v0.1, I've added an About this Application element that includes an embedded Digsby chat so - from within the application - you can instant message the author (... me).

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.

Have a Javascript Library that you want to easily maintain? Simply download your library updates, and your previously-defined xCopy Profile will incrementally update your Webdav-enabled Domino Application!

It's simple, easy to use, and full of solid development examples!

Download xCopy

To "install" the sidebar, check out this quick tutorial on Creating Form Design Element Sidebar Widgets!

Feedback/suggestions appreciated!

Sorting Hat v0.1

06/30/2008 12:31:08 PM by Chris Toohey

In this application, we see how the Microsoft Web Browser Embedded Object Control can be used in the Lotus Notes Client to provide programatically-defined File Browsers. Pretty slick for "storage" of large files, as this can allow you to control the target storage directory via application logic while allowing storage of large files on a File Server.

Please Note: There are two (2) "document" Form Design Elements - the hidden "document" showing the initial demo displaying two (2) Microsoft Web Browser Embedded Object Controls and allows Drag-and-Drop between them. The active "document" is used to maintain a full-screen File Browser; it's URL calculated in the "url" NotesItem, which uses the "filestorebrowser" Form Design Element for UI presentation.

Sorting Hat v0.1 Download

For an added bonus, check out the About tab!

Feedback and suggestions are always welcome!

Thanks,

-Chris

YellowCast Episode 2: Vicodin and MonkeyButter

06/02/2008 12:11:04 PM by Chris Toohey

In this episode, we discuss the benefits of "separating UI from data" architectures in Lotus Notes client applications, as well as our frustrations with Domino ("our little brother"), as well as some new BETA release software that hit the community recently...

As for the Vicondin reference... I'm about to head off to the doctors (again) as the Vicodin that I was on while recording Episode 2 ain't quite helping my back. MonkeyButter? You'll just have to listen...

Get it via:

Runtime for this episode is 1:06:41 - which we think is still long but we're getting closer. Feedback, comments, and suggestions always welcome!