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.
Expanding Domino Applications via API and UI/Data Model Separation
02/29/2008 01:43:28 PM by Chris Toohey
The majority of the work that I've been doing lately is more (I'd say at least) advanced development than your more likely to see in your typical Notes shops. I say that, not to boast or brag - as outside of the Projects (both Yellowcake and Zephyr) - the work has been pretty standard customer applications. The advanced work has been more in the architecture of the applications themselves more than any cutting-edge coding that I've been doing. It's a change in the mindset of a typical Domino developer - most of you are probably already there, but there are those of you out there that still get caught up in the trappings of yesterday. Where are I going with this? Simple - understand that Lotus Notes and Domino applications really shine and become applications when you separate data from the user interface.
"Okay, you lost me..."
When you architect your applications so that data is presented and maintained as data, and not implicitly linked to the UI - your UI becomes a variable. This is an AMAZING option for your Domino applications. And this is (typically) done by defining a API, or Application Programming Interface, for your Domino applications. Simply put - you define (and then build) all of the data processing and maintenance elements for your given application, and then build your application to utilize said definitions/elements.
Take a look at Google Maps API for example. You have all of this data at your fingertips, and having a defined API allows you - the very capable developer - to build whatever UI you wish to access said data. Even better, the defined API allows you to integrate the application with countless other technologies.
You can see examples of this across the blogosphere - developers putting their component application development chops to the test and coming up with some amazing results. So why not take our Domino application development to the next level and define APIs for data maintenance?
And going this is, if you didn't hear this word enough already in this post, simple... at least after you get the hang of it.
Remove the UI from the equation - pretend you had to do everything from the back-end - now how are you going to create/maintain the data in your application? The answer, you'll tend to find, is maintenance of data via the combination of defined configuration document(s) and a commonly-accessible engine that utilizes said document(s) to create, modify, and delete data in the Domino application. And how do you display data in from a Domino database without hard-coding markup in NotesItems? Introduce translation layers for your data, which - depending on the given client type - can conditionally render markup and different content types.
Over the next few days/weeks - in between customer projects, the Redbook residency (which starts next week, btw!), Yellowcake, Zephyr, and a few other things that I have on-the-plate - I'll try to come up with a few rip-and-play examples of what I'm getting at here. Until then, expand your minds and start getting away from Domino development practices that brought you storing markup in fields and hacking Domino RAD-generated architectures to get slightly prettier Web2.0 UIs (both of which, I've done myself countlessly in the past).



I've been down that road, but since most of the apps I've been doing are Notes client based, I've never quite gotten where I've wanted to end up.
Hmmm... I suppose you could abandon the form field, use a different field (e.g. "type") instead, and every document would instead of a form field value of "backend". Then the "backend" form's queryopen would set continue to false and open the correct UI layer based on the backend documents' "type" field, and then each UI form could have a QuerySave that sets Continue to false and then uses an API to do the saving....
...but that seems ... well certainly not simpler...
Looking forward to your next posts!
(P.S. Please look into including coComment.com functionality into your site so that users can 'subscribe' to the comments of any specific posting.)
P.P.S. Why are paragraphs right justified on this page by default???
clarification... in the "Live Comments Preview" section, "<p>test</p>" looks like
test
D'oh! Typo.. I did "text-aligh".
I'm going to quit while I'm behind now.
@John:
The Form NotesItem has something to do with it, kinda... sorta. More in the upcoming days on that though...
I'll check out coComment as I wanted to include that and the Gravatar stuff into my comments engine. Don't know if I have an ETA on such functionality, but it is on my list ;-)
And thanks for the catch John - the right-alignment was a CSS issue. Well, applied CSS issue really. The CSS was working perfectly, it was my applying a right-alignment to all paragraph tags that caused the issue!