AdministrationEmailHannoverNewsSametimeUser Groups
Issues with LDAP and Sametime/Domino 8.0.2

Been running into issues lately with Sametime and LDAP.  The Sametime is version 8.0.2 running on Domino of the same version.  The issue occurs whenever the LDAP server gets rebooted.  The LDAP service on the Domino server isn't able to re-establish the connection to the LDAP server when it comes back up.  Restarting the LDAP service on Domino doesn't re-establish the connection either.  To solve the issue, the entire Domino service needs to be restarted.

This can't be the norm for working with LDAP.  Is there something I am missing that will resolve the issue?  I will keep investigating.

Watch out when updating Eclipse-based applications

The move of the Notes Client to an architecture based on Eclipse is seen as a good move by most people.  Recently, though, I ran into an issue that you might need to be aware of.  One of the other applications I use to develop web applications is Aptana Studio, which is also built upon Eclipse.  I hadn't been in it recently, so when I fired it up last week, it asked me to download a bunch of new updates.  Halfway through the installation, it failed because it wasn't able to access/update a certain .jar file.  The worst part was that the failure completely hosed my configuration and caused the application to be unusable.

After much debugging, I determined that the install failed because I had Notes 8.0.1 running at the same time.  After blowing away the configuration and shutting down Notes, I was able to successfully upgrade Aptana to the latest release.

So the lesson learned is to make sure all your Eclipse based applications are shut down before you try to upgrade one of them.

Twitter + Notes = TwitNotes

In case you aren't following any of the Lotus Community on Twitter, Mikkel Heisterberg has released TwitNotes for the Notes 8 Standard Client.  Although still a work in progress, it is a great example on the extensibility of the new Notes client built on Eclipse.  This will allow developers to build applications for Notes without having to learn anything about Notes.  It is almost like building applications for browsers.  When the platform is a known quantity, like Java or Eclipse, and cross platform, developers are more likely to invest the time and money learning how to develop applications for the it.

If you are a fan of Twitter and use the Notes 8 client on a regular basis, TwitNotes is a must have.

BleedYellow.com Login Tip

If you have signed up for BleedYellow.com, you may or may not be aware that there is a Sametime server (http://im.bleedyellow.com/) and an Activities server (http://www.bleedyellow.com/activities) that you can use within your recently upgraded Notes 8.0.1 client. One thing to remember when trying to access both of these services:

Use the email address you signed up with as your User ID

Don't do what I did, which was basically act like a monkey and scream at the laptop for not working correctly. Instead, login with the peace and tranquility that a Lotus professional should have. And Nathan has assured me that this tidbit of information will be making it into the BleedYellow support wiki.

Update: Nathan has setup a Sametime public group called YellowBleeders that will allow you to see who all is logged in.  Thanks, Adam

Got Domino 8.0.1?

Domino 8.0.1 Download Screenshot

I'm getting mine.  Have you gotten yours?

February DCNUG Meeting on 2/21

DC Notes User's Group Meeting Announcement

Next Meeting:
2/21/08 @ 4PM @ National Geographic
1145 17th Street, NW - use the Courtyard entrance on M Street between 16th & 17th streets)

Agenda:
We'll discuss the best announcements, products and presentations from last months Lotusphere 2008.  Among the topics we'll discuss are:

  • Notes Domino Version 8.01
  • Notes Domino version 8.5
  • Notes Traveller
  • Mac Client
  • DOJO integration
  • Lotus Foundations
  • Lotus BlueHouse
  • Quickr 8.1
  • Atlantic

Anything else that anyone wants to discuss from Lotusphere.

All are invited but it is critical that we have an idea of the number of attendees for planning purposes so please complete this form
(NOTE: If you have any specific things you would like to discuss please note them in the comments section of the RSVP Form)

Question about Smart Upgrade Kits
Smart Upgrade might easily be the most important feature to come to Notes since the live remote server console. Since Release 6, migrating from one version to the next or even applying quarterly update patches requires very little effort on the part of the Notes Administrator. This is part of the reason why a single Notes admin can easily support 1500-3000 users by himself without breaking a sweat.

Combining Smart Upgrade and Policies with the InstallShield Tuner for Notes gives an Admin almost all the control he needs when it comes to what goes on a user's machine. I have successfully used the Tuner when modifying installations of clients in a single location. The problem I have run into is how to use a custom installation with remote users. Here is what I want to be able to do:

  1. Create a custom installation.
  2. Create a Kit (single executable file) from the custom installation.
  3. Have the custom installation run after all the files are extracted from the Kit.

I know that I can't be the only person who has ever tried to do this and am probably missing something really simple. Or maybe there is a utility out there that will allow me to create a self extracting compressed file that will extract all the files and then launch one of them. Any help you can give would be greatly appreciated.

IdeaJam goes Gold

Elguji Software Announces Launch of “Idea Jam” for the IBM Lotus Software Community

Idea Jam is a place where people can post and share their ideas, and gauge the marketability, popularity and viability with input from others. When an idea gets posted, others can help promote or demote the idea and provide comments. Popular ideas will bubble to the top. Unlike blogs and discussion forums, Idea Jam provides a single place to measure the value of an idea.

Ideas are grouped into “Idea Spaces” – which currently include IBM’s Lotus Connections, Lotus Notes and Domino, Lotus Quickr, Lotus Sametime, Lotus Symphony, Lotusphere, Lotus Web Content Manager and WebSphere Portal. Additional Idea Spaces for OpenNTF and Idea Jam itself are also available. In the future additional “jam sessions” with related idea spaces will be created for other topics of interest.

“Beta testers have entered over 450 ideas, cast 8,000+ votes and made 1,400+ comments during the two month beta testing period. The development team used the ideas entered by beta testers to improve Idea Jam’s features and functionality. We used the system to build the system,” says Bruce Elgort, President of Elguji Software.

Idea Jam includes many features that make the site easy and fun to use:

  • Tags – All ideas are “tagged” with at least one or more tags. Users can then use tag clouds to see which tags are popular.
  • RSS – Idea Jam makes extensive use of RSS feeds including feeds for idea spaces, a specific idea, a user or for any given tag.
  • User Profiles – Users can view their own ideas, their comments, and the ideas they voted on.
  • Views – Ideas can be viewed by popularity, most recent, most comments, recent comments and more. Each view also has an associated RSS feed.
  • Unvoted – Users can easily review ideas that they have not voted on in each Idea Space.
  • Random – Users can be presented with a random idea for their collaboration and input.
  • What’s Hot - See which ideas were most active today, over the last seven days and over the last twenty eight days.

Elguji Ideas and the Idea Jam were developed by Elguji Software in conjunction with Matt White of Fynn Consulting Ltd, London, and Sean Burgess of ASND LLC in Laurel, Maryland. Elguji Ideas and Idea Jam software were built with IBM Lotus Domino Designer, The MooTools Javascript framework, the Yahoo User Interface Libraries, Genii Software’s CoexEdit and runs on IBM Lotus Domino 8.0. The PSC Group is hosting the Idea Jam site.

The Elguji Ideas software will be made available for purchase during the first quarter of 2008. Inquires should be made to info@elguji.com.

About Elguji Software

Elguji Software is an IBM Business Partner located in Vancouver, Washington, USA. Elguji specializes in custom application development and system administration for IBM Lotus technologies including Lotus Notes, Lotus Domino, Lotus Quickr and Lotus Sametime. Bruce Elgort, the president of Elguji is the co-founder of OpenNTF and also host of the popular Taking Notes podcast. Visit www.elguji.com for more information.

About Fynn Consulting

Fynn Consultin g Ltd is a UK based software development and consulting company that specializes in the development of extremely secure web based applications with over a decade of experience of the insurance and banking industries. The company is primarily an IBM Lotus Notes and Domino business partner but we have extensive experience in many technologies including Java, J2EE and other web development techniques including AJAX frameworks such as Prototype/Scriptaculous, MooTools and Dojo.

About ASND

ASND is an independent consulting firm specializing in delivering collaborative solutions built upon the IBM/Lotus Notes/Domino platform. Sean Burgess is President of this women-owned SMB located in Laurel, MD and writes regularly on his blog at www.phigsaidwhat.com. ASND has released a number of open source applications on OpenNTF, including the popular ASND Export Facility, and plans to release more in the future. Visit www.asndllc.com for more information.

About The PSC Group

PSC Group, LLC., headquartered in Schaumburg, Ill., is an information-technology and professional services consulting firm that specializes in providing its clients with innovative ways to maximize profitability, improve internal processes, and enhance their customer's overall experience . Since its founding in 1990, PSC has helped enterprises in the Services, Insurance, Manufacturing, Distribution, and Financial Services sectors that view IT as a strategic resource. PSC professionals provide their clients with access to current product information, technical support, advanced training programs, and future trends. PSC is a partner with many of the IT industry's leading firms and software providers. For more information, visit www.psclistens.com.

Legal Disclaimer

IBM, Lotus, Notes, Domino, Lotus Connections, Lotus Notes and Domino, Lotus Quickr, Lotus Sametime, Lotus Symphony, Lotusphere, Lotus Web Content Manager and Websphere Portal are trademarks of IBM Corporation in the United States, other countries, or both.

Contact Information

For more information about Idea Jam, contact Gayle Ujifusa 360.883.3438 gayle.elgort@elguji.com.

Nostalgic LNN

Remember when this was how you shared your Notes?

International Lotus Notes Network Setup Disk

Ahh, the good old days....

Idea Jam Beta 2 in the wild

Matt moved over some new code this morning and Bruce left the registration door open. What, was he born in a barn? For those of you who have previously visited the site, the Idea Jam databases moved directories on the server, so be sure to access the site using the domain only, http://ideajam.net/.

Idea Jam is on TakingNotes
Check out the latest episode of TakingNotes and hear Bruce, Matt, Julian and I talk about how Idea Jam came together.
Idea Jam Press Release
VANCOUVER, Washington - October 16, 2007 – Today Elguji Software announced their new “Elguji Ideas” software that will be used to support a new social networking site for the IBM Lotus Community called “Idea Jam” (IdeaJam.net). The site will officially launch on Tuesday November 20, 2007.

Idea Jam is a site where users of IBM’s Lotus software products can exchange ideas on how to improve Lotus products. Others can help promote and/or demote ideas, as well as, providing feedback through comments. Popular ideas will rise to the top. The Idea Jam, unlike blogs and discussion forums, allows a single place for the Lotus community to share and promote ideas and suggestions on how to improve IBM Lotus software.

Ideas are grouped into “idea spaces” – which currently include IBM’s Lotus Connections, Lotus Notes and Domino, Lotus Quickr, Lotus Sametime, Lotus Symphony and Websphere Portal. Additional idea spaces for OpenNTF and Idea Jam itself will also be available.

Idea Jam includes many features that make the site easy and fun to use:
  • Tags – All ideas can be “tagged” with one or more tags. Users can then use tag clouds to see which tags are popular.
  • RSS – Idea Jam provides RSS feeds for idea spaces, a specific idea, a user or for any given tag.
  • User Profiles – Users can view their ideas, their comments, and the ideas they voted on.
  • Views – Ideas can be viewed by popularity, recent ideas, most comments, recent comments or others. Each view also has an associated RSS feed.
  • Unvoted – Users can easily review ideas that they have not voted on.
  • Random – Users can be presented with a random idea to promote or demote.
Elguji Ideas and the Idea Jam were developed by Elguji Software in conjunction with Matt White of Fynn Consulting Ltd., London (www.fclonline.com), and Sean Burgess of Laurel, Maryland (www.phigsaidwhat.com). Elguji Ideas and Idea Jam software were built with IBM Lotus Domino Designer, The MooTools Javascript framework, the Yahoo User Interface Libraries, Genii Software’s CoexEdit and run on IBM Lotus Domino 8.0. The PSC Group is hosting the Idea Jam server.

The Elguji Ideas software will be made available for purchase during the first quarter of 2008. Inquires should be made to OpenNTF and also host of the popular Taking Notes podcast. Visit www.elguji.com for more information.

PDF of Press Release
October DCNUG Meeting - Oct 18

When: Thursday October 18, 2007 @ 4 PM

Where: National Geographic (1145 17th Street, NW - use the Courtyard entrance on M Street between 16th & 17th streets)

Agenda:

- Native Notes Archiving combined w/Google Enterprise Desktop is the perfect answer to the huge e-mail storage offered by Google, Yahoo, and others (archiving overview which goes into how the policy/settings work (DCC, show an advanced debug console config), and how tier the mail into (1) primary mail server, (2) archive server and (3) DVD/CD long-term storage. ) Imagine, all the advantages of the Notes client with nearly unlimited mail storage that is immediately accessible.

OpenNTF Focus : Learn how to build a quick app with the open source SuperNTF from the head chef, our own NotesGuru, Kevin Pettitt

Notes 8.01 Demonstration
ND8 to be released on August 17!
As I just read on Ed's blog, Notes and Domino 8 will be available for download this Friday, August 17.  Make sure your pipe is opened all the way to 11.
Lotusguru update

As many of you know, Kevin Pettitt suffered some injuries recently when he tried to solve the greenhouse gas problem all on his own by taking out all SUVs in the DC area, one at a time.  His first intended victim was driving down Connecticut Ave when he attacked.  Unfortunately for Kevin, the mass of his body and bicycle weren't enough to wipe out the wretched vehicle.  Not only that, but he was unceremoniously ejected from his seat and thrown to the ground.  Oh, the humanity of it all!  Well, I spoke with Kevin yesterday via Skype and he assured me that he was not defeated completely and he would be coming back with a vengeance.  Just like Bruce Willis! 

In all seriousness, Kevin's injuries are quite serious, but not life threatening.  He's had surgery on his funny bone which will hopefully improve his sense of humor.  He also has a broken collarbone and multiple lacerations and contusions.  He's not able to work right now since he can't type very well, so he is using this time to investigate the voice assisted computing programs available.  If you want to reach him to check how he's doing, you can call him on Skype at lutusguru.

ND8 to ship in August?

I just got an email from someone I know at Lotus indicating that "development is committed to shipping ND8 in August".  I wonder how true it is.  I just posted a comment on Ed's blog, so we'll see what the big man has to say.  It would be a great time for IT to get the new code due to the fact that a large portion of their user base is on vacation.  It would allow the propeller heads to have some time to build a test server and actually test out the code during normal business hours.

Update:  Ed has confirmed that ND8 will be released in August!  What a great birthday present Lotus is handing me.

Quickr is released early
Stuart McIntyre is reporting that the production code for Quickr is now available on the Business Partner download site.  Ladies and Gentlemen, start your download engines!  I wonder how long it will take for Chris to upgrade his Quickplace server to the new code.  Hopefully, it will be able to get done very shortly as I would really like to try it out.
Weather at ILUG
If you are planning on attending the ILUG conference with me at the end of this monrth, you may want to check out the historical weather summary and try to pack accordingly.  No humidity is a good thing, but highs in the 50s may mean no shorts for me.  Here's to hoping they get a warm front parked on top of the city for the time we are there.
Damn Google let the Leprechaun out of the bag

Leo Getz got it right: They f*ck you at the drive-thru.  On the Internet these days, Google is the closest we come to a universal drive-thru and it did a fine job of ruining my big surprise.  Here's exactly how this heinous crime was perpetrated:

So my wife was trying to enlighten some of her less Internet savvy co-worker to the joys of egosurfing.  Since her name isn't as out there as mine, she decided to use my name instead.  We've done this before in the past and my blog is always the first one in the list.  While my blog was still the first link on the list, it was the 5th link down that caught her attention.  The title was Speaker: Sean Burgess and pointed to a site she'd never heard of before.  While looking over the linked page, she noticed that the dates at the top of the page coincided with the dates of the secret trip that we were taking in May.  Well, she put 2 and 2 together and knew what I had been teasing her about since the beginning of February.  Thanks a lot, Google, you bitch!

So even though I had been very cautious about what I put on here and made sure to hide the credit card statements with the airline tickets on them, she still found out.  I hadn't told anyone besides my Mom, who was going to be taking care of the kids.  Not here Mom or her sisters, not the day care provider for Caden, not even the kids, and she still found out.  They used to say that if you want to keep a secret, don't tell anyone.  An addendum to that rule should be don't let it be any where on the Internet that Google indexes.  As a side note, if you can't find it on Google, does it actually exist on the Internet?

So I guess I can start promoting the ILUG Conference with reckless abandon.  Be prepared to hear more about it in the upcoming weeks.  And if you have any suggestions for things to do when kid-less in Dublin.

Are you on the list?
Stephan Wissel has started a petition to get the Domino Designer for Eclipse fast tracked into production.  I am not sure if it will have any affect, but I'd rather be safe than sorry.  The sooner our favorite IDE goes to Eclipse, the sooner we stop getting thought of as second class developers.
Save the Client, Save the World

Nathan has combined 2 of my favorite things, Notes and Heroes, in a great new graphic.

Save The Client, Save The World

Not only does the graphic look absolutely amazing, it brings to mind the need to really evangelize the advantages that a Notes client can give an organization.  Unparalleled security, local replication, full-text search capabilities, and built-in encryption are things that no Web 2.0 application can give you.  Will Notes 8 extend that set to include the ability to make the UI world class?  Only time will tell.

New Year’s Notes Resolutions

Bruce posted his own and I thought it would be a good idea to post some goals for me also.  So here goes nothing:

  1. Get Certified on 7 - I have this planned for Lotusphere later this month.  I got approval to take exams for both Administration and Development certification, but I am not sure if I will be mentally or physically able to accomplish that.
  2. Contribute more to OpenNTF - I currently have 3 projects on OpenNTF that have recent releases on them.  I would like to finish my scheduled work on the ASND Export Facility and get that to a 1.0 release.  I would also like to get web interfaces developed for the ASND Mass Mailer and ASND Recruiting applications.  Finally, I would like to add at least 1 or 2 more projects and I already have some good ideas for them.
  3. Convert my Production environment to 7 - This is a must have this year after all the work we have done to remove the view Java applet from the application I do most of my work on.  The conversion will allow me to easily add RSS feeds and web services to the application.
  4. Learn more about SVG - Some of the things I have been reading about SVG lately, especially related to Dojo, make me think that I will soon be able to give my clients the charting and graphing on the web that they desperately desire without Java.

I think that's more than enough to keep me busy.

Sarah needs your help

Radicockeye sent me this email today asking for help in another one of their famous studies.  I wonder if they would like help from the entire Lotus community.

Hello,

We would like to invite you to participate in another survey we are conducting.

If your company is running Lotus Notes/Domino 7.x or Workplace Messaging, even in a limited capacity, we would like to hear from you.

Participation will involve filling out a 20-30 minute questionnaire which we will send you about your company's deployment - the questionnaire needs to be filled out by someone knowledgeable about your company's costs and IT administrative structure. We will also conduct a 30 minute follow-up interview to go over your survey answers to ensure accuracy.

Study participants will receive a free copy of the full final report OR any report of your choice as listed at http://www.radicati.com/reports/single.asp. This is a $2,500 value. Note that you will receive your free report only after you have completed the questionnaire and interview and all responses have been verified. The results of the report will help you benchmark your organization's costs against those of other organizations running similar environments. We expect this study to be available in December, 2006.

If you agree to complete our questionnaire and participate in an interview, please respond to this email with your name, organization name, the platform you are running and number of users.

Note: We will not identify you or your company anywhere in the study. All survey results will only be presented in aggregate form. We will provide only basic demographics such as average company sizes and industries represented.

Thank you,

The Radicati Group, Inc.
www.radicati.com
(650) 322-8059

I think it would be good of us to help them out with a true TCO for Domino 7.

Want your name up in OpenNTF lights?
Bruce is looking for a few good volunteers to help re-write some of the back end processes on OpenNTF.  If you have wanted to contribute to OpenNTF and just haven't found the time to actually create your own project, this might be a great way to get involved.
What’s up with the Notes recruiters?
Is it just me or are the recruiters for Notes/Domino positions working overtime?  For the past couple of weeks, I have received at least 2 phone calls and as many as 5 email a day about new Notes/Domino positions.  Some of them are out of town, but many are in the DC area.  Is this just a fluke or a rising trend in the need for Notes/Domino professionals?
DCNUG Meeting on September 14 - Social Night Out

The DC IBM Lotus User Group (DCNUG.ORG) will be taking a hiatus from the usual technical orientation, and jumping straight into a purely social event for mixing it up and catching an early dinner.

We will be meeting at Rumors, on the corner of 19th and M (only a block or two from Farragut North metro).

Feel free to come with questions, but the conversations are completely open-ended (well, we will be discussing the future topics and laying out some long-term plans). If you haven't been to Rumors (it's the after-place restaraunt we go to, after the DCNUG sessions), they serve mostly burgers and salads. Decent, and not too expensive.

Julian has an idea

NotesCanDoThatSmaller.png


My first instructor on Notes had a great line to describe the product.  "Notes does everything ok"  What he basically meant by that was that while there may be better specialty applications on the market, no other application has the breadth of solutions that Notes has.  As my career in Notes and Domino has advanced, this simple rule has never failed me.  Sure, Microsoft Project might be better at project management, but an application built in Notes can easily get you 90% of the features plus things that Project just can't do.  Remedy might be a fine helpdesk system, but there are plenty of Domino based solutions that are easily customized and accessible via the client or a browser.  Want a CRM that is integrated with your mail system, yeah, Notes has got that.  How about a time entry system?  Expense reporting? Survey? Blog? Document Repository?  Notes can do all of those and more, so what can it do for you today?

Liberal application of the stupid stick

I am sure that most of you have heard the saying "got hit by the ugly stick" when referring to someone who ain't the prettiest flower in the bed.  My wife and I use it more often to describe the clothing we see in stores.  In fact, I have modified the saying to be "drove the clothes through the ugly forest and hit every tree".  Lately, it seems that the people in the press covering the collaboration market have endured multiple beatings from MS' stupid stick.  How else do you explain an article on Collaboration Loop that is supposed to be about collaboration non-browser and off-line clients that doesn't even mention Notes and Domino?

When talking to sales people from various collaboration vendors, they tell me that customers always request an offline client.  This begs the question, "Is a client-based collaboration tool preferred over a browser-based tool?"  Here is some history to the debate, my thoughts on what customers really want, and how vendors should evolve their products to meet their customer’s offline and online collaboration needs.

Ok, I see the first problem with the author's research.  He only talked to sales people.  Hey Steven, here's a quarter, buy a clue.  Notes has had an off-line collaborative environment since about 1989, but I guess he missed that in his thorough investigation.

If vendors could provide users with a single client that would fulfill their collaboration and messaging needs, then the messaging clients would cease to exist and users would spend most of their time in the collaboration system -- which would increase collaboration and knowledge sharing.  Maybe then users would be satisfied?  But to achieve this goal, a vendor needs to recreate the client.  This is a different philosophy then the one vendors are using today.  Many are trying to get away from the client, or copy the functionality of current clients within a browser.  This paradigm is a shift to the market’s current direction, but I believe that the first to market with this new product may gain an advantage and replace many mail systems.

I almost bet you could hear me screaming at the computer when I read this.  Isn't his description exactly what Notes is?  His next paragraph seems to read directly from the Hannover PR handbook, but he still manages to not mention Notes at all.  Could someone from Lotus Marketing please hunt this idiot down and beat him with a Notes Client?  Maybe then he will stop evangelizing start up wannabes and the reinvention of the wheel and start singing the praises of a stable, mature platform that does everything he wants.  Then again, what can we really expect from a Novell guy that doesn't even list Groupwise as a collaboration platform?

DCNUG Meeting Tonight (Yes, Tonight!)

Thursday July 20th:  We will be having our July DC IBM Lotus User Group meeting tonight at 6:30 PM at ICI Systems, Inc. It has been such an incredible period of developments, we will be taking advantage of some of the new announcements for our meeting.

In the same week that Microsoft dropped support for Windows 98, and they hosted their Microsoft Partner Conference in Boston, IBM announced a Linux release for Notes 7 !!

Notes is now supported on Windows, Macintosh and Linux clients.

We intend to be demonstrating the native Notes 7.0.1 client for Linux. Ed Brill has just posted some links that give a positive evaluation to the Linux Notes client.

We will also be showing a free organizational NSF application based off of David Allen's "Getting Things Done."

And, we will continue to explore the OpenNTF universe with our very own "Lotus Guru," Kevin Pettitt.


FREE CDs GIVEN TO EVERYONE WHO CONFIRMS ATTENDENCE BY SENDING AN EMAIL TO JACK@LEADERSHIPBYNUMBERS.COM 

 LOCATION: ICI Systems, Inc. 1150 17th Street NW, (corner of 17th & M Street) Lower Lobby - Near Farragut West & Farragut North Metro stations. We are right across Natl. Geographic, 1150 17th St., NW, Lower Lobby. It's only a couple of blocks from metro stops Farragut West and North. Call 202 887-0510 if you need more details.

We hope you can join us and for more information check-out our website at http://www.dcnug.org or call either Jack Dausman (202-887-0510) or Neil Agate (301-670-1295).

Nomad is rocking

Declan is busy testing out the feature of the Notes 7.0.2 beta and reporting back on what he finds out.  In his first report, he writes about how easy it is to setup.

Setup for Nomad currently requires that you run the setup from the command line so that you can pass in a special commandline parameter. If you have access to the beta and you have a USB key to try it on then the command line is :

setup.exe /a /v"NOMAD=1 TARGETDIR=E:\ /qb+"

This will do a silent install of the client on the USB Key that is showing up in Windows as drive E.  If your USB key is a different drive letter then just change the commandline accordingly. The installation will take up about 340Mb on the USB Key. I'd guess that in the final release the install proceedure will become an option during the standard GUI install.

Today, he's written that Nomad can easily become the killer feature for Admins that I had hoped.

To turn your recently installed Lotus Nomad client into a Lotus Admin Designer Nomad client you just need to copy over 4 files to the USB Key :

admin.exe
designer.exe
events4.ntf
domadmin.ntf

That's it, nothing more is needed.  Just start up your Lotus Nomad client and you will see the icons for the Admin and designer clients appear like magic in the bookmark bar.

I wonder if this means that I can get my company to procure me a 60GB iPod for business purposes.  ;-)  When i first heard about Nomad, my first thought was that it would really be useful for admins to be able to carry an administration client any where they went.  Being able to travel to any site your company might have without your laptop and still be able to handle any emergency or just keep track of your servers is something of a holy grail in my book.  I know the Web Administration database is also available, but not all of your Domino servers will be running the HTTP task.  Besides, I am sure that having the communications secured by a Notes ID and encrypted by the client should make your security officer happy.

DCNUG on 7/20 - Come wearing your Penguin suit!
I have just found out that we are supposed to be getting a first hand look at the upcoming Notes 7.0.2 Client for Linux.  So for all of you who have been itching to get a look at it, you can do so in person.  Better bring your best propeller hat and penguin suit, just to be fashionable.  I will have a real itinerary when it is finalized.
Notes on Linux is here....NOW!

Jack will definitely be happy to hear this announcement from Ed Brill regarding Notes 7 on .

The news today is somewhat different, and might be quite surprising.  The requirement for IBM Workplace software deployment has been removed -- and what IBM will ship is a stand-alone Lotus Notes on Linux client. No Workplace server required for provisioning, no separate deployment of the Workplace managed client required.  It's Lotus Notes, running on Linux.  Initially, support for RHEL 4.  SUSE Linux Desktop will follow.  There are features that won't work -- smarticons, color printing, a couple of others -- but for the vast majority of use cases, Notes for Linux is now a viable alternative.

All those wannabe non-MS shops just got a real pick-me-up to go along with their $5 coffee from Starbucks.  It is now possible to envision an office desktop with the need for any MS software.  I wonder if this will be the impetus I need to start writing my agents in Java instead of LotusScript.

Link to CNET article

Will Notes be next in Belgium?

From September 2008 on, all document exchanges within the services of the Belgian government will have to be in an open, standard format, according to the proposal. ODF is the only accepted standard in the proposal. Earlier drafts of the Belgian proposal had put ODF and Microsoft's own Open XML format (which is to be included in Office 2007) on equal footing.

CNET's take on the announcement is that a transition to might not be guaranteed, at the very least, a plug-in for to be able to save in format is going to be a must.  Since the Hannover will include a suite of productivity tools that support ODF, how will the extra cost for going the MS route be justified for most of the people who just need a simple word processor or spreadsheet?  This should make all companies that interact with the Belgian government and all government agencies in the EU be prime targets for IBM's marketing teams.

Domino does 64-bit

In an answer to Microsoft's assertion that the requirement that is only viable in a 64-bit environment, Lotus Marketing has put up a site to show how Domino does .

Shouldn’t the choice be yours – not your software vendor’s – when to deploy 64-bit hardware and operating systems?

IBM Lotus software is no stranger to 64-bit technology. Lotus Domino server is well known for supporting a wide range of hardware and operating systems – to provide flexibility and help you leverage existing investments.

I really like the fact that Domino will be supporting the Windows 64-bit environment in the 7.0.2 release.  Just another example of how Lotus delivers today what Microsoft promises for tomorrow.

Just a thought....Tools for Moving to a Real Collaboration Platform
As I am starting to grow weary of hearing how to migrate from Domino to MS on TMMCP, I was thinking that it would be really nice for IBM to come up with a site/blog to give Exchange sites information on how easy it is to migrate to Domino.  Does such a site already exist?  If so, it needs to be better publicised.  If not, I think this is something that a Business Unit Executive, Worldwide Lotus Messaging Sales, IBM Software Group should take on as a short term To-Do.  Either way it would be really nice to have one place to send companies who are thinking about migrating to something other than Microsoft.
Oh, I wish I were an Irish Lotus User Group member

Paul Mooney has lined up an impressive list of speakers for this month's Irish Lotus User Group meeting.  Having responsibilities here in the states, I won't be able to attend and am very hopeful that they will be able to arrange a webcast of the event.

Confirmed speakers are now:
Ed Brill (www.edbrill.com)
Thomas Duff (http://hostit1.connectria.com/twduff/home.nsf
Bill Buchan (http://www.billbuchan.com)
Warren Elsmore (http://www.elsmore.net)
Kathleen McGiveney (http://www.kmnow.com/kmnow/kmnow.nsf)
Paul Mooney (http://www.pmooney.net)
Libby Ingrasia (http://www.notesgirl.com)
Rob Novak (http://www.lotusrockstar.com)

Ed’s on his soapbox again

Really, I can completely understand how frustrating it is for him.  There comes a point when you just get fed up with the same stupid questions that are caused by , both inadvertent and deliberate, from .  I'm just not sure that any response at all is going to look like anything more than a knee-jerk reaction.  Honestly, I have never been good at dealing with unethical sales and public relations people, so I have absolutely no advice to give.

Reading his response from my point of view, his points seem to be on point and easy to understand.

What seems especially ironic about being attacked about the Notes/Domino roadmap is that the emperor has no clothes.  What's the comparative track record for Microsoft?

It's always fun to take a look at the carnage that is Microsoft's past collaboration offerings and broken promises.  If you replaced Microsoft and IBM with Company A and Company B, who in their right mind would ever believe ANYTHING that Company A promised?  Unfortunately for users and IT administrators, senior executives rarely look at the facts in this manner. 

Fortunately, relief is being provided by MS care of it's next version of .  Talk about slapping lip stick on a pig.  Their handling of the product reminds me a lot of the way handled in the mid-90's.  They believed that their market dominance would allow them to dictate to their customers instead of listening to their needs.  Time will only tell if MS will follow Novell down the path of destruction.  Think that can't happen?  In 1994, who would have ever thought that Novell would be in the shape that it is in today?  Something to chew on.

Got Cal?

It seems that Microsoft has made a change to clarified the Windows 2003 Server license:

Question: The End User License Agreement states that CALs are required for access or use of the server software and goes on to list usage examples. If I am using the server in a way that is not listed (e.g., as an application server), do I still need CALs?

Answer: Yes. The list of examples in the License Terms is not exhaustive but is instead meant to illustrate some common uses of the server software. If a device or user is accessing or using the server software, a CAL is required, unless: access is through the Internet and is unauthenticated, or access is to a server running Windows Server 2003 Web Edition, or access or use is by an External User and External Connector licenses are acquired instead of CALs.

Chuck Connell writes that he reads this as a CAL is required for all Notes users that access a Domino server on Windows 2003.  At $40 per CAL, that can double the cost of running Domino.  And this cost would apply to both Notes Client and browsers that authenticate with the Domino server.  Is this correct?

Can anyone confirm this?  If this is true, it's yet another reason to move from Windows servers to Linux and i servers.

DCNUG Meeting tonight!

DATE: Thursday May 11th, 2006 @ 6:30 PM

SUBJECT:  Lotus Workplace Forms !!
A first-hand demonstration of the award-winning Workplace Forms, based on the industry standard xForms. Also, a competitive overview of why a Domino platform returns the best value for corporate messaging.

LOCATION: ICI Systems, Inc.
1150 17th Street NW, (corner of 17th & M Street) Lower Lobby - Near Farragut West & Farragut North Metro stations.
We are right across Natl. Geographic, 1150 17th St., NW, Lower Lobby.  It's only a couple of blocks from metro stops Farragut West and North.   Call 202 887-0510 if you need more details.

We hope you can join us and for more information check-out our website at http://www.dcnug.org or call either Jack Dausman (202-887-0510) or Neil Agate (301-670-1295).

Bruce started it....
We have all seen the Mac vs PC ads running recently and I have laughed out loud at some of them.  Well, Bruce thought about doing something where ads are created to compare Notes/Domino vs Outlook/Exchange.  Many, including myself, have chimed in with ideas for the commercials.  If you have an idea or just want a good laugh, stop over and read the comments.
Is there a limit on Number of Lines to Display on an Embedded view?
I have asked around and can't seem to get a definitive answer from anyone.  If you try to set the Lines to Display in the Embedded View dialog box, the highest number you can set is 9999.  Since I don't want to change a server wide setting for just one database, I want to be able to display an unlimited number of documents in an embedded view.  Setting this number to 0 is the same as checking the Use default box.  Anyone else have any good ideas?
Multiple Domino servers without multiple IP addresses
Chuck Connell has an interesting method for hosting multiple Domino servers on a single IP address.  I hope that I am never in such an environment where I would have to result to finding innovative solutions such as this.
Using an agent to work around the AJAX cross domain limitation

AJAX is a great tool for building some really slick applications, but it has one limitation has made me ignore it for a number of things that I have wanted to do. After speaking with Chris Toohey and stealing getting inspiration from some code that he had, I have come up with a simple agent to allow me to get data from other domains. The agent is incredibly simple, but I have no idea what kind of impact this will have on the server, so test thoroughly before you implement it in your environment.

First, create an new LS agent and set the run-time security level to 2. Allow Restricted Operations. The agent can be as complex as you want it to be, but below is all that is necessary:

Dim s As New NotesSession Dim doc as NotesDocument Dim xml As Variant Dim temp As String Set doc = session.DocumentContext temp = StrRight(doc.Query_String_Decoded(0),"url=") Set xml = CreateObject("Microsoft.XMLHTTP") xml.Open "GET", temp , False xml.Send Print "Content-Type:text/html" Print "Cache-Control:NoCache" Print Cstr(xml.ResponseText) Set xml = nothing
This LotusScript was converted to HTML using the ls2html routine,
provided by Julian Robichaux at nsftools.com.

Finally, you create an AJAX call on your page that calls the agent you created and pass the URL you want to retrieve as a query string parameter. That's all it takes to basically have one AJAX call access another AJAX call to get data from some other domain. Just to prove that my dogfood tastes good, I am using a version of this agent to retrieve my Bloglines Blog Roll on the right. Just click on the RSS icon to see the data retrieved via AJAX.

Domino 7 Servicability Enhanced
Enhancements to the automatic diagnostic collection feature and the new fault analyzer feature make Lotus Notes and Domino 7 more serviceable. See how these improvements can help you with your next server or client crash.

Check out some of the new administration enhancement in Domino 7 by reading the new article from Lotus developerWorks. While the Fault Reports DB was a nice start in 6.x, the 7.x version seems to have made some nice improvements.

DCNUG Meeting Last Night

I was finally able to make the DC Notes User Group meeting last night.  Bruce Elgort was giving a presentation on how OpenNTF and open source software can  help you save time, money and your hair.  See, I was paying attention, unlike Jack.  Currently, there are over 100 projects on the site and ove a 1000 snippets of code in the Code Bin.  If you are looking for a solution that doesn't currently exist in your toolkit, OpenNTF should be your first stop.  It was great too finally meet Bruce and Kevin Pettitt in person and the dinner afterwards had some very good discussions around the true roles of consultants and status of the Lotus user groups.

Speaking of Jack, make sure that if you run into him in the near future that you sk him about all the new features in version 1.2 of domBulletin.   He he he.

MAA 2006 is back!
Peter de Hass is reporting that MS has released the final version of the Microsoft Application Analyzer 2006 for Lotus Domino.  I guess Paul and David are going to be having some fun tonight.
IJ: Domino Intranet Solutions, Part 2
Chris continues his series on using Notes and Domino as an Intranet solution in Intranet Journal.  A nice intro for those who have not partaken of the kool-aid.
TMMCP: Quadrant Categorization for Lotus Domino Applications

Amy rehashes what we already know about MAA 2006 on the Tools for Moving to a Microsoft Collaboration Platform blog.

Microsoft Application Analyzer 2006 for Lotus Domino groups together applications that share a common design template (they were created from and inherit their design from the same template).  There may be 40 applications that share a design template – the design can be analyzed one time, a solution can be identified one time and a migration tool can be configured a single time, which saves a significant amount of time and energy.

Placing applications into the appropriate quadrant is the first step in the overall application analysis process.  It provides broad guidelines for dealing with the applications and gives direction for the next steps in the analysis process.

Although comments have been turned off at the time of my writing this, there's nothing new to see here.  I do like that she took some literary license by saying "Microsoft Application Analyzer 2006 for Lotus Domino performs a high level categorization".  Isn't that the same as Al Gore saying he invented the internet?  I do hope that they start providing some more concrete information soon.

Firefox Search Plugins for Lotus Sites
As I have said before, the best programmers are the ones who are lazy. I have finally gotten fed up with having to go to multiple pages on IBM's site to search for what I am looking for, so I created a number of Search Plugins for Firefox. Feel free to use them as you see fit, you lazy bums.

Please let me know if you run into any problems with the plugins.

YITNB: Why My Company Loves Notes/Domino

Andy Broyles writes a nice little case study about how his company used Domino to provide a solution for his company.

Our resulting composite application, is glued together by Domino and Lotus Enterprise Integration (LEI). The key take away is that we went from idea to tested production application in less than THREE WEEKS!!!

In my mind, this is Notes and Domino at it's best.  Find a problem, determine a solution, and implement it before anyone has the chance to say it can't be done or it will cost too much money.  I can't wait for the next installment to see some more detail about exactly what the solution was.

Collaboration Loop - Lotus Sametime Support Could Change IM Game

The news that Lotus Sametime 7.5 will federate (aka interoperate) with AOL and the AOL Clearinghouse was welcomed with applause by most observers at Lotusphere, where the announcement was made. That’s not surprising—Lotus users want and need interoperability as much as the next guy, and IBM has been slow to embrace federation. But the move also has much broader ramifications for the IM market, and for IT executives looking to make their enterprise IM decisions soon.

via Collaboration Loop

Ask and ye shall receive
A number of people have been complaining about the Notes 6 & 7 Forum feed that Lotus initially created.  I, for one, found it almost impossible to use it since I could never figure out which of the posts were new entries.  Well, it seems that Lotus has gotten really good at listening and has subtlely added a main topics only feed for the forum.  Now this is what I call customer service.
Workdomosphere: Started a new project...

Lotus Domino Dominator

Now, please, understand that this is just phase one of what I plan to do with this. Eventually, I want this to turn in to a bridge between Sharepoint and Lotus Domino, allowing the two servers to work together.

What this project is trying to do is to create a VB.Net application to convert Shareport Applications to Domino.  Way to go modchaos!!!

Hey MS....Bring it on!

Mike Gotta believes that IBM is finally taking the fight to MS in the Real Time Collaboration.

Meanwhile, IBM essentially remained mum on the topic of convergence and the role Sametime would play.

Then along came IBM’s Lotusphere 2006 conference. And things have certainly changed over the course of a week with news of Sametime Version 7.5 (due mid-2006).
I know the press has been eating up this new version of Sametime, but I will reserve my judgement until I get to play with it myself. If the PR and screen shots are any indication of it's capabilities, I think that it's going to have a major impact.
modchaos: Another MAA Analysis
David DeWell takes Paul's analysis of the Microsoft Application Analyzer to the next step by looking at the code behind the scenes.
After looking through the Microsoft.Exechange.AppAnalyzer.DataCollection DLL I see absolutely no methods or functions reading design in this application. All the DataCollection is doing is reading the database header information. Being the disbelieving soul that I am, I restarted my machine with the SoftIce suite. Re-Ran the Analyzer and pulled up Softice during the "Data Collection" stage. Much to my surprise, there are functions that I missed that are being called that access the database. With method names such as "StartDataCollection" and "StartDataImport" I thought maybe I had missed so methods looking through these DLLs when it dawned on me that SoftIce was not lying that they returned null values. There is no code in these methods. They do NOTHING.
Is this not the epitome of smoke and mirrors? And here I thought it actually looked at the design of the database to determine how hard it would be to migrate. I would love to hear Erik Ashby's reply to this one.
Upgrading to Domino 7 Checklist
Paul Mooney has a nice write up on an upgrade session at LS, ID104 Upgrading to IBM Lotus Notes and Domino 7 in your production environment.

Another packed session. Very fast paced. Again, I will put my information down in bullet point format to get the guts of the details.

If you are planning on upgrading in the near future and you missed this session, this is a must read.
Graham has a different view than Ed
While most of the attendees at Lotusphere love to sit back and listen to Ed's "The Boss Loves Microsoft" session, Graham Chastney thinks that the points Ed make miss the mark.

Today I read through Ed Brill’s presentation on “My Boss Loves Microsoft – where does that leave Lotus?” I have seen most of the arguments before a hundred times and to be honest – they don’t carry any weight with anyone I have ever talked to. I’m assuming that because this session is a popular re-run people are actually using these arguments but it’s not the reality I am living in.
Graham goes on to say that Ed shouldn't focus on the virus issue, the concocted analyst reports, or the oft-canceled move to SQL. Instead, he thinks that reliability and scalability, a clear development direction with examples, and ease of integrated collaboration should be the focus of such a session.

First, I have to nit-pick on something that has nothing to do with the content of the entry. The only way to comment on the entry is to login to a Typepad account. Since I am not a Typepad user, I would have to create an account just to post a comment and that is more than should be asked for readers of any blog.

Aside from that, I am not sure I agree very much with Graham's point of view.

Influential people hate the Notes client, and they are the people who count. They are communication people not application people as such they couldn’t give a stuff about the applications.
I think it is wrong to portray them as communication people. In their mind, the only communication vehicle they are thinking about is email and only email that is sent person to person. They never think about notifications from applications, enhanced support via IM, or integration with voice and fax solutions. If they did, they would never look at Outlook due to it's severe limitations as a communication tool. In reality, Outlook is nothing but an email client and it is our jobs as consultants to educate the decision makers about the other possibilities that exist. If we allow them to believe that Outlook is the Holy Grail of communication tools, then we are doing a disservice to our clients. And just because a large group of people believe that something is true doesn't mean that it is true. I mean for a large part of our history, humans believed that the Earth was flat and that the Sun revolved around it and that saying it wasn't so was blasphemous. Is that belief any less preposterous than believing that Outlook is a collaboration tool?
The virus and security discussions doesn’t hold water either because they all know someone who is running Exchange successfully
That, my friend, is hogwash. It's like saying that drunk driving isn't risky cause we all have a friend who drives drunk all the time and has never been in an accident. Historically destructive episodes like the I Love You outbreak make strong arguments that, as far as viruses and worms are concerned, Outlook and Exchange are much more vulnerable than Notes and Domino.
I’ve heard it said to me “Microsoft must have a story that works because others are doing it.” Some of the technical spin in the presentation make this worse.
Unfortunately for me, I have not been privy to such an organization. I have never seen a full blown MS environment working on all cylinders so I have no way of determining if they can really do what they say they can do. But the problem that I have with the "Analyst" reports is that they are factually wrong. If they didn't fly in the face of the true numbers so badly, I would be more tempted to believe them. If the same couple of analysts weren't the ones causing all the problems, I would be more cordial to their points. But to sit back and let people out right lie and say nothing about it is a very bad business practice and has gone on too long at IBM. Hopefully, the new anti-BS site will help officially respond to the FUD out there in the world.
I wouldn’t talk to much about Microsoft’s delayed/postponed/cancelled move to SQL Server
Now that's just silly. If you can't use MS's missed deadlines and broken promises, then how are you supposed to compare the 2 product lines. If MS can come in and say that XYZ is going to happen, IBM should be able to challenge that based on their passed actions. Since it's been more than 2 years after they were supposed to be moving off the Jet engine for performance and reliability reasons, IBM should be able to use that as a reason to not believe any enhancements to the core of Exchange.

In the end, if the 2 product lines were really put to the test side by side, this type of session would no longer be necessary. Until that time, Ed should continue to provide his point of view to help the community combat the FUD. Continue to praise the advantages that Domino has while focusing light on the misrepresentations of it's competition.

Starfish gives us some constant value

John Head has developed a reference database for Office Constants.

This version adds Office 2003 constants and another neat feature. Go to the LSS view and click the Export button. You will get a MS Excel listing of all of the constants in a manner you can use as an Include file in LotusScript. I have a couple ideas of how to improve this, but this is a great start.

I cannot tell you how many times I have had to search on the net to find some constant value for Excel.  This should make things much easier. 

Whose Fault Is It When Collaboration Software Sucks?
Michael Sampson asked the above question and then did a wonderful job of answering it. In the end, it seems that developers and users are responsible for the success of a platform.
People offering services in this area have to be well trained and experienced ... because the product is so flexible, and there are different ways of doing things, you can make a great job or a right royal stuff-up. But that's no different than with any other software development environment; if a developer gets the constructs and underlying logic wrong in a C++ project, it won't work as to specification and the users will be most unhappy. Due to the rapid application development environment, Notes/Domino do have some redeeming factors over say C++, but nonetheless, if the underlying data model is wrong from the word go, it is expensive and time consuming to find redemption.
This statement couldn't be more accurate nor more frustrating. If it's so easy to screw up other platforms and even harder to fix them when they are screwed up, then why does Notes/Domino get such a bad rap? Is it due to it's ability to adapt easily and therefore it should have been done right in the first place? Or is it because, unlike with a lot of other languages, developers of Notes/Domino applications have to be part business analyst, part systems analyst, part developer, part designer, and part trainer. I can't say as I have ever met a VB or C++ developer that does all the requirements gathering, developing, and training for a given system. They may actually do this sort of thing, but not at any of the companies that I have worked at.

In the end, it is important that you understand how essential your roles as a Notes Developer is to the success or failure of the platform at your company. While at times it might seem unfair to ask so much of just one person, think of the opportunities you have to shape the way your company does business for years to come.

via Shared Spaces Research & Consulting: The Week in Collaboration, Jan 23-27 2006

I HATE Caching
I hate caching. I can't put it any other way. I have been battling a caching issue in IE for that last couple of days and have finally clubbed it to death, but not without having a few more grey hairs. (No snide hair comments are allowed, children!!!)

Any ways, IE has what they like to call an "intelligent caching system". That's an overstatement on the level of "you're much prettier than Adriana Lima", especially when it comes to the way it handles Domino. By default, IE's cache setting (Temporary Internet Files) is set to Automatic. This allows IE to decide when it needs to bring down a new copy of a page and when it can simply use the copy in the cache. This is all well and good when you are looking at static HTML pages, but blows monster chunks when you are trying to use a Domino application. As a Domino developer, the solution to this problem is relatively simple, but there are many pieces.

The easiest way to control caching is by creating a Web Site Rule. This article from LDD does a great job of walking you through how to create a rule. One thing to remember if you are using Quickplace is that, since Quickplace doesn't support multiple Internet Site documents yet, you will need to create a Global Web Settings document and then create the rule from there.

You can also do it on a form by form, page by page basis using either @SetHTTPHeader or META tags in the HTMLHead. Most of the time, this is very easy to do and can allow you to granularly control which pages and forms are cachable. Check your Administration Help database for more information on how to use @SetHTTPHeader and its counter-part @GetHTTPHeader.

Neither of these ways will work for Quickplace, however. To control caching of Quickplace data, you need to modify the qpconfig.xml file and either modify or add the following lines:

<browser_caches_place_content enabled="false"/>
<page_compression enabled="false"/>

This should help tremendously, but is no guarantee that user's won't have caching issues.

Cache control is even more important when it comes to AJAX. I have been working a bunch with Domino Agents returning data via XMLHTTP calls. While I knew that the first Print statement had to be "Content-type: text/xml" (although "Content-type: text/plain" also seems to work), I was unaware of the issues with caching. To prevent your AJAX calls from being cached, the second Print statement has to be "Cache-Control: no-cache". Otherwise, agents that are called using the same URL will not be access on the server and will instead be access in the cache, regardless of the data that is actually returned. This can be very important if the data on the back end changes without the URL changing.

Following the tips above should allow your site to work correctly, regardless of how your user's browser settings are configured.

Taking the FUD fight to MS
Welcome to this Rapid FUD Responder blog

On Lotusphere 2006 business development day, we committed to respond to Microsoft FUD within 24 hours.

I will use this blog to flag the FUD and respond on time.
It's good to see someone at IBM putting the gloves on and taking up the fight that the Lotus Community has been fighting for a while now.

via developerWorks : Blogs : Antony Satyadas

What’s wrong with this picture?

Notes has always has the reputation for being a resource HOG, but my 2 thin clients show that maybe you can put lipstick on a pig and make it look good. Exactly what are my browsers doing with all that virtual memory? I guess I am going to have to unload some of those Firefox extensions. The bad thing is that you have to restart the browsers to get them to release any of the memory that is allocated to them.

"Red Bull" is just bull
Paul has done a wonderful write up of his experiences with MS's latest tool for gauging what it will take to migrate from Notes to the MS environment. Red Bull has come into the news right before Lotusphere and is supposed to help users define "the best Microsoft solution for each application". Well, Paul's experience with the latest tool is the same as mine was with the earlier tool. Since NONE of my applications except mail are based on an unmodified template from Lotus, Red Bull is unable to tell me what it will take to migrate the apps nor which MS applications I will need to do the migration. Figures!!

Rocky says that Ferris was none too impressed either.

Most Notes users have a substantial investment in collaborative applications, and migrating these to Exchange has been very difficult. It's not clear that the new tools will ease the migration of such custom applications.
Now children, I want you to repeat after me. There is no such thing as an easy migration. Whether you believe that MS's solution is better than Lotus' is irrelevant when you talk about the pains migrating from one to the other will entail.
eWeek Review of Domino 7
The eWEEK Labs Review: IBM's Lotus Notes/Domino 7 is the first review of the latest version that I have seen.
With Version 7 of the Lotus Domino server and Notes client, IBM continues to provide the richest integrated collaborative environment available today. This release features several refinements to the Notes and Domino Web Access clients that will make users more productive. On the server side, improvements in management make it easier for large organizations to manage Domino servers and deploy Notes clients. This release also allows developers to build Notes applications that use IBM's DB2 Universal Database as a back-end data store, although this feature is currently unsupported for general deployment.
The summary above is as good as it gets, but I like the following quote even more.
Domino's ability to manage Notes client updates and policies makes it unique in the way the entire client/server architecture can be managed without the need for third-party tools.
I wonder if management ever takes into account the cost of third-party tools when it compares Notes and Exchange. I am sure that it is something that MS will not bring up. If you have doubts as to what version 7 might do for your environment, read through the review to get a good idea.

via Jack Dausman

QUICKPLACE: How to figure out which local groups a user is a member of using JavaScript and AJAX
I have been working on a Quickplace 7 application recently that required me to determine which local groups user is a member of. In a regular Notes database, this wouldn't even be an issue since I would be able to use Hide-When formulas with @Functions and LotusScript. In a Quickplace, I am limited to using a ton of JavaScript and possibly calls to external agents via AJAX. After talking with the QP guru, Rob Novak, I was able to come up with a solution that is very quick and reusable.

First, I added the following JavaScript to the HTML file for the Page and List Folder Layouts:

var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end @*/

if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
  xmlhttp = new XMLHttpRequest();
}

var dbloc = getHomeFolder('34');
  
xmlhttp.open("GET", "/PlaceCatalog.nsf/QPLocalGroup?OpenAgent&qp=" + escape(dbloc) + "&user=" + escape(haiku.loginName));
xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    try {
      ' Display everything that is hidden by default
    }
    catch (err) {
      document.getElementById('column_left').style.display = '';
    }
  }
}
xmlhttp.send(null);

The getHomeFolder function returns the directory for the current Quickplace. The code for QPLocalGroup is very simple agent that I placed in the Place Catalog database.

Sub Initialize
  Dim session As New NotesSession
  Dim db As NotesDatabase
  Dim view As NotesView
  Dim collection As NotesDocumentCollection
  Dim agentdoc As NotesDocument
  Dim doc As NotesDocument
  Dim parameters List As String
  Dim nname As NotesName
  Dim outbuf As String
  
  Set agentdoc = session.DocumentContext
  Print "Content-type: text/plain"
  
  Call PutQSIntoList(parameters,agentdoc.Query_String_Decoded(0))
  
  Set db = New NotesDatabase("",parameters("qp") & "Contacts1.nsf")
  Set view = db.GetView("h_PeopleByGroup")
  Set nname = New NotesName(parameters("user"))
  Set collection = view.GetAllDocumentsByKey(nname.Canonical,True)
  Set doc = collection.GetFirstDocument
  outbuf = "None"
  
  While Not(doc Is Nothing)
    If outbuf = "None" Then
      outbuf = doc.GetItemValue("h_Name")(0)
    Else
      outbuf = outbuf & "," & doc.GetItemValue("h_Name")(0)
    End If
    
    Set doc = collection.GetNextDocument(doc)
  Wend
  
  Print outbuf
End Sub

The agent returns the list of groups separated by commas, which is easy enough to step through using JavaScript. The PutQSIntoList function puts the parameters of the QueryString into a List object for easy access. The displayContent function can be placed in either the layout HTML pages or in individual imported pages, but not both. Here is an example of what the function might look like:

function displayContent(groups) {
  var tmp = new Array();
  
  tmp = groups.split(",");
  for (var i=1;i     switch (tmp[i-1]) {
      // snipped
    }
  }
}

I had searched for a similar solution on the LDD Forums, but found nothing, so I hope this might help someone else out there. As far as speed is concerned, there is no discernible delay due to the AJAX call.

Simple LS Function to create Connection Documents
The LotusScript function below can be used to setup Server Connection documents for Notes Clients. It checks to see if a connection document for a server exists before trying to create a new one. Nothing too special, but it beats writing instructions on how to do it by hand.

Sub ConnectionDocument(formalname As String,connectiontype As String, tcpip As String,location as string)
  Dim collection As NotesDocumentCollection
  Dim doc As NotesDocument
  Dim servername As NotesName
  
  Set servername = New NotesName(formalname)
  
  Set collection = localdb.Search(|Type = "Connection" & @LowerCase(@Name([CN];Destination)) = @LowerCase("| & connectionname & |")|,Nothing,0)
  If collection.count = 0 Then
    Set doc = localdb.CreateDocument()
    doc.Form = "Connection"
    doc.Type = "Connection"
  Else
    Set doc = collection.GetFirstDocument
  End If
  
  Select Case connectiontype
  Case Is = "LAN" :
    doc.ConnectionType = "0"
    doc.LanPortName = "TCPIP"
  Case Is = "Passthru" :
    doc.ConnectionType = "2"
  End Select
  
  doc.Destination = servername.Canonical
  If location <> "" Then doc.ConnectionLocation = "*" Else doc.ConnectionLocation = location
  doc.Source = "*"
  doc.OptionalNetworkAddress = tcpip
  Call doc.ComputeWithForm(True,False)
  Call doc.save(True,False,True)
End Sub

Whitepaper: Achieving High Availability with Exchange Server at Microsoft
I have often wondered how some of the IT companies use their own products, especially ones that have less than stellar reputations with customers. Microsoft has released a whitepaper that outlines how their internal IT department supports Exchange. I thought to myself 'Now, this is something that I have got to read!'. In the end, it is best if you read this publication through twice. The first time, read it through just to see how Microsoft goes about measuring downtime and how they determine SLAs and strive to meet them. Don't pay much attention to the technology, but rather compare their methodology to the one you use in your current position. This is where we Domino administrators can get the most value from this paper. The second time around, feel free to make snide remarks about their ideas surrounding clustering and the limitations they have to work with when implementing Exchange. Laughing out loud is not only encouraged, but truly beneficial to the soul.

The first thing that struck me was their definition of an outage.

Any downtime of e-mail services counts against availability goals, even if not caused by Exchange.
So if the switch a server is connected to blows up, it counts against the Exchange group. If the Active Directory server implodes or the DNS gets hi-jacked (personal experience on this one), their numbers take a hit. Try hitting the four nines with that type of monkey hanging on your back. Basically, this makes the Exchange group the team that is responsible for having everything working correctly on the network. In my mind, that is a lot of responsibility and I have never been in an environment where the email group had enough authority to make that a feasible situation. It's usually the networking group that is at the top of that chain of command in most companies. Chris Nelson, Director of Messaging, states it literally -- "We now own what we don't own". Kind of like being a step-parent.
Over the last several months, seven percent of total Exchange downtime has been for planned Exchange upgrades. Six percent of Exchange downtime has been due to other Exchange-specific issues. The rest of the downtime—87 percent—was caused by issues outside Exchange.
I guess that not having any major upgrades in the last 3 years has at least one positive result. It is my experience in the Domino environment that the numbers are the same if not better. Most of the unplanned outages had to do with networking or hardware issues, not Domino software issues.

I really liked the emphasis they place on writing meaningful and measurable SLAs. The 3 pronged dashboard approach of measuring messaging availability (Mailbox availability, Mail delivery time, and Email Client Availability) is straight-forward and can be used in any messaging environment. Pay close attention to the guidelines for creating meaningful SLAs and the review progress sections as they contain good information that you will be able to use immediately. Their insights into what 24x7x365 really means will give you and your management something to think about. I was a little surprised that their SLAs for historical mail restores is 2 days, but that's life in a SCOS world. Probably the best idea I saw was that one single person is responsible for each measurement's reporting and must investigate any deviations from the norm. SLAs and metrics always work better when you have defined responsibilities for measuring them.

The architecture of the Exchange 2003 servers was very interesting to me. For most of the mail infrastructure, Microsoft is using a 7 node Windows server cluster to host 20 Exchange mail databases (mail stores) with approximately 200 users per database. The average mailbox size limit is 200 MB so the mail stores average about 4,000 users/40 GB of storage per virtual server. What is not listed is the number of virtual Exchange servers are hosted on each server cluster. Without that information, it is unclear how much horsepower is needed per user and, therefore, impossible to make an accurate comparison to what I have worked with in Domino. In addition, I found their reasoning behind implementing clustering to be a little self serving.

Perhaps the biggest benefit of using Windows Server 2003 clustering on current enterprise-class hardware is not its failover capabilities but rather its management flexibility and the effect that has on planned downtime. Finding ways to reduce planned downtime can contribute even more to increasing availability than increasing your ability to cope with unplanned downtime.
So since Exchange cannot do true Active/Active, share nothing clustering, the load balancing and failover capabilities of clustering are downplayed. In my 10+ years of experience with Domino, even with quarterly upgrade releases, version upgrades, and regular windows and third party software updates, the amount of unplanned downtime from external sources, whether due to batteries in the UPS failing during a power spike or viruses killing DNS lookups, significantly dwarfs the amount of planned downtime. And this is even more true on non-Windows platforms, where critical fixes are sent out with the frequency of new AOL CDs.
Clustering contributes significantly to reducing planned downtime, because an Exchange virtual server is not tied to a single Windows host, but can be moved from one cluster node to another when software updates or hardware maintenance is necessary. This does not completely eliminate planned downtime, because a few minutes may be required to move Exchange services between cluster nodes. However, Exchange services do not have to be down for the entire duration of planned installations, reboots, and hardware replacements.
I am at a true loss for words when commenting on this. This is not clustering, this is having a hot spare ready all the time. In Domino, to see clustering work is as easy as pulling network cable on one of the servers in a cluster and watching all of the Notes clients AUTOMATICALLY fail over to one of the other servers in the cluster. And then plug the cable back in and watch the databases synch back up.

What's even worse as far as I am concerned is the level of expertise needed to get exchange running on a Windows Server cluster.

Installing a single Exchange server is straightforward, especially with the step-by-step guidance of the new Deployment Tools in Exchange Server 2003. Nonetheless, deploying a supportable Exchange system in a worldwide or enterprise environment requires significant expertise. The interaction of Exchange with Active Directory requires attention and thoughtfulness of design. Comprehensive Microsoft deployment guides and white papers can assist system architects in designing and building an effective Exchange system.
In contract, setting up a Domino cluster takes no additional expertise. Simply add the desired servers to the same cluster via the Administrator and common databases will begin replicating in real time via the cluster replicator. Sure, there are some things that can be done to optimize the cluster, but in order to get it up and running takes about 5 minutes, less if you already decided on a name for your cluster. No wonder it seems that Exchange shops employ so many administrators.

The true difference between the way Lotus does clustering and the way Microsoft sells it is illustrated in their typhoon example. Whereas a Domino administrator would have just put a cluster member in a different data center in case of a similar issue in the future, the MS team decided to move the entire Exchange cluster because the data center wasn't able to meet their needs. Talk about high maintenance!!!

via Peter de Haas

End of Year is here
The end of the year is here and I should probably take some time to reflect on the changes in my life that have occurred over the last 365 days. For the most part, this past year has been a good one, albeit more stressful than I really like. Here are some of the highlights:

  • The year started off with a bang for me as I finally got to attend Lotusphere. I was able to learn a lot and hook up with a bunch of very kewl people. John Cleese and Ray Ozzie at the same event, need I say more?
  • My wife and I got pregnant again and we are expecting our next (and last) bundle of joy on Jan. 27, although Colette doesn't think she will make it that long. This was not an uneventful pregnancy due to the incident in week 12 and the recent development of Gestational Diabetes. All in all, she is definitely ready for this parasite to get out and join us in the real world if for no other reason than for her to be semi-comfortable in bed again.
  • The boys (Craig 15, Kyle 8, Jackson 3) have all had relatively good years. Kyle finally got some new glasses so he can see what's going on in school, although he still can't hear worth a darn. Craig made it through Freshman year at Reservoir and had his first real relationship. As with most boys, we weren't aware that it was over until way after the smoke had cleared, but sometimes ignorance is bliss. Jackson made it through the year without a visit to the hospital or ER, which is somewhat amazing. His speech is still not completely intelligible, but he knows all his letters, upper and lower case, can count to 100, can spell his own name and recognizes the names of the kids in his class and people in his life, and spent so much time in the water this summer that I thought he might develop gills.
  • Yet again, I have changed jobs and it has caused me to continue my growth as a developers and a person. The new position is a bit different since it involves working with the Feds, but the commute is so much better now that I get to take the train to work instead of fight traffic for 45-90 minutes each way. And I really like being able to do a Sudoku or play my PSP.
  • I was lucky enough to WIn Second Prize in a Beauty Contest for my write-up of use for AJAX. I learned a lot this year about CSS, AJAX, and customizing Quickplace.
  • I finally took some time and attended a cooking class. It was a very rewarding time and I can't wait to take some more in the future.
  • This site turned 2 at the beginning of December with no fanfare at all. I have averaged 3 1/2 entries a week. Some of them were better than others, but I really hope to do a better job this year.

Duffbert has asked us all about what we plan to do in the next year so here are my goals:

  1. Learn PHP and MySQL enough to develop a CRM for my brother-in-law's construction company.
  2. Release a production version of my ASND Export Utility and come up with a logo for it.
  3. Install either Solaris 10 or Linux on the Sunfire R280 and get Domino 7 up and running in my office.
  4. Learn more about Domino and XML, Workplace Designer, Ruby on Rails and SOA
  5. Bring a Caden into my family and give him all the love he can handle.

Finally, Laurette and Libby both had this list going, so I thought I might add mine:

  • Four jobs you've had in your life: Food Prep/Deli Worker, Waiter, Helpdesk Technician, Lotus Notes Developer/Administrator
  • Four movies you could watch over and over: The Princess Bride, Die Hard, Payback, Some Kind of Wonderful
  • Four places you've lived: College Park, MD, Fremont, CA, Atlanta, GA, Laurel, MD
  • Four TV shows you love to watch: Everwood, ER, House, Any Law & Order or CSI
  • Four places you've been on vacation: Hawaii, Las Vegas, Europe (HS trip to London and Paris), Europe(College trip backpacking through Paris, Brussels, Interlaken, Nice, Plata de Piles, and Madrid)
  • Four websites you visit daily: Bloglines, Comcast (my ISP), Phig Said What (just to make sure it's still running), Google
  • Four of your favorite foods: Chocolate covered mints (Godiva Grande Mints, York Pepermint Patties), Chocolate Mousse(dark and without any whipped cream), Thrasher's French Fries, and Filet Mignon.
  • Four places you'd rather be: On a beach in the Caribbean, Las Vegas, Hawaii, Interlaken
LDD adds Forum feeds
Lotus has added RSS feeds for it's forums to the list of feeds you can subscribe to. Also, the History of Notes and Domino article has been updated to include Notes 7 and Hannover. Finally, Rob Novak has uploaded some information on the coexistence of the different versions of DWA/iNotes, including a PDF that outlines what features are included in each version.
A new way of looking at a Notes Database
I ran into a problem with a database last week that caused me to look at Notes in a different way. I thought the solution might be of interest to some other developers out there.

The problem in question had to do with the Shared Actions in Notes 6.5. Somehow, the Shared Actions on one of the replicas of the database I was working on didn't look like it should. I tried all the normal things to get the changes in the design to update. I cleared the replication history and replicated from every other replica I could find. I created a template of the design, replaced the design of the database with a different template, and then replaced the design again with the template I had just created. Finally, after banging on it for over an hour, I deleted the replica in question and replicated a new copy from one of the other servers. All better, right? WRONG!

Lo and behold, the same problem existed in the brand new replica I just created. It seems that nothing I did to the Shared Actions on the other servers had any impact on the server that was having the problem. My initial theory as to the cause of the problem was a Save and Replica Conflict of the Shared Actions design element. I had seen this happen to other design elements in the past, namely views and forms. Those were easy enough to handle through the Designer UI since they were listed in a view like fashion, but there was no easy way for me to see the Shared Actions conflict. Or was there???

The solution to my problem was to change the $FormulaClass property of a view to allow the view to display design elements in a view. Yes, you read that right, you can display design elements as if they were documents in a database. For me, the beauty of Notes has always been that data and design have always been kept separate. A field on a document doesn't ever have to exist on a form nor does a document ever have to show up in a view index. What I didn't really grasp until I had this problem is that all Notes Design elements are just Notes in the database. If you can get a handle on it with a NoteID or NotesURL, you can do almost anything to it that you can do with a regular document. A 1999 DominoPower article by Dan Velasco and more recent blog entries by Vince Schuurman and Julian (of course) gave me all the information I needed to create the view I needed.

  1. Create a view with 3 columns - $Title (sorted), $Flags, and ModifiedDate
  2. Create an action button or agent to modify the view's $FormulaClass property
  3. Run the action/agent and rebuild the view (Shift-F9)
Below is the code for the agent I wrote:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument

Set db = session.CurrentDatabase
Set view= db.GetView("Admin\Design")
Set doc = db.GetDocumentByUNID(view.UniversalID)
Call doc.ReplaceItemValue("$FormulaClass", "32766") ' Shows all non-data notes
Call doc.Save(True, True,True)

Now, I could see that there were indeed 2 Shared Action ($ACTION) design elements. So, I thought, I'll just select the one I don't want and hit delete to remove it forever. WRONG! Doing that through the Client UI gave me an oh-so-helpful error, #02:70. So, after chatting my issue up with Rocky, I created a LotusScript agent that allowed me to enter the NotesURL of the bad $ACTIONS Note and delete it. Plus, I now have a kewl view that I can add to all of my databases to get a look at all of the design elements in one view. I think I will have to do a huge @Replace for the $Flags column to get a readable description of what the element is.

Ray speaks up some more
ACM Queue recently posted A Conversation with Ray Ozzie. It's a good interview that gives you some insight into what makes the man tick as far as IT is concerned.
When I was at Lotus in the early ’90s, companies were a lot more vertically integrated than they are right now. At that time, people were attempting to use fairly nascent technology to break down the walls within the organization, meaning they were trying to get different departments within an organization to work together. They were trying to flatten organizations internally and get people to work together across stovepipes, within organizations, just to make processes operate more smoothly.
Luckily, I didn't have to work through the years when departments really didn't work together at all.
Sadly, I think enterprises have a lot of issues going on inside them that make it very difficult to embrace some of these innovations. Frankly, the path that we’re on leads one to believe that a lot of the benefits of these innovations are accruing to small businesses and individuals much more readily than enterprises. The reason: Enterprises are really different from the public Internet in that they have fairly substantial compliance issues. They have control hierarchies related to technology acquisition and enablement of end users. They mandate the use of certain technologies and mandate that others not be used. They control the upgrade tempo. I’ve never seen the technology environment as divergent as it is right now between what’s going on outside enterprises and what’s going on inside enterprises.
The reason for this is simple enough: changing the way you do things is very easy to do, changing the way others do things is next to impossible unless they want to change or you give them enough incentive to trust you.

via Mary Jo Foley

Exchange 12 has some Open Source competitors
I found some interesting comments in an eWeek article on Exchange 12.
Simon Phipps, Sun Microsystems Inc.'s chief officer of open source, said Sun's Internet Mail Server is more advanced than Exchange and is the mail server of choice for many large enterprises. "Numerically, we service more e-mail accounts than they do," he said.
I have been in a fair number of large organizations and I have never seen one installation of Sun's mail solution. Maybe it's being run by ISPs and I just don't know it.
Tim Bray, a Sun Web technologist and the co-inventor of XML, told eWEEK that while some of Microsoft's software was excellent, "I cannot say that Exchange falls into that category," whether from a technical engineering or feature-set perspective.
Harsh but true and it didn't come from a Lotus person!! I have been using Outlook in my new gig for about 45 days and I have to say I really don't understand what the attraction is. It might just be my lowly machine, but Outlook seems to be a real resource hog, just as much or even more so than Notes. And watching my co-workers try to find emails is so extremely painful. I catch myself telling them to just search for it when I know damn well there is no full text search in Outlook. And the little interaction I have had with the C&S is enough to want to make me go back to a daytimer. The one bright spot in this experience has been Outlook Web Access. It works very nicely and even allows me to do some things that I couldn't do in Outlook 2003, like change my password.
"We haven't seen it bubble up as a priority for most organizations to date. I believe that the time for unified messaging will come when VOIP [voice over IP] is more broadly deployed behind the firewall," she said.
We looked at this in my last company and didn't find the organization really asking for the features it gave yo, not to mention the fact that the product we were using wasn't exactly bulletproof.
But Scalix's Farris disagreed with that, saying that the underlying architecture of Exchange suffers from more than its fair share of reliability and security problems, the fundamental causes of which have not been addressed in Exchange 12.
Here's the new boss, same as the old boss. At least I find that Lotus fixes some of the short comings in Domino every time they come out with a new version.

via Ed Brill

Daily WTF: Notes ©Function gone bad
It's good to see that Notes isn't left out of the discussion on The Daily WTF

It seems that whenever I tell a Lotus Notes programmer about this site, their reaction is consistently, "you must have a lot of Lotus Notes code posted !" Of course, this is not to say that Lotus Notes is a bad language (I've never used it), but it is odd that I keep hearing this.

Even Damien took a couple of seconds to add to the conversation. I just wish that some of the other responders were a little more informed and had something more to say than "Notes sucks".

via The Daily WTF - Listing a List

Yet another way to identify something in Notes
While working with the ASND Export Utility, I came across a new NotesSession method and 2 new properties that most data and design elements have. I have no idea how long they have been available, but like everything else in this world, I only found out about them when I needed a new way to do something.

The 2 new properties are more like 2 faces to the same thing. The HttpURL and NotesURL are the improved siblings of the UniversalID property. They both contain all the information you need to get to a particular document or design element, but the use different protocols to get there, namely http:// and notes://, respectively. The URLs generated for both properties use UNIDs instead of database and view names. The easiest way to get an idea of what they look like is to bring up the properties dialog for a document and click on the Meta tab. In case you don't know which one that is (I didn't), it's the one that is a plus sign (+) inside of angled brackets. The Identifier field at the bottom of the dialog is the NotesURL for that document.

Now, I know what you are thinking. What's the big deal if you already have hooks into the database and the view. The big deal is when these properties are used with the Resolve method of the NotesSession class. notessession.Resolve(NotesURL) will return a handle to whaever the NotesURL points to, whether it's a design element or a document. Imagine the generic subs and functions you can write if all you need the one little string to get a handle on whatever you need.

For me, this was important when returning a list of agents from a database. I didn't want to use the name of the agent, cause that could change over time. It was less likely that the NotesURL would change short of the agent getting cut and pasted back into the database. I have a feeling I will be using it these new features more and more in the near future.

Dare to say no to SCOS
A number of the sickos, like Ed, Bill, and Paul, have joined in the discussion on Peter de Haas' entry concerning shared mail. I left the brunt of my point in the comments and just wanted to say a few things here. I just can't understand why any company, aside from an SMB trying to cut corners on IT or one with completely inexperienced IT management, would choose to run shared mail or single copy object store (SCOS). Although there may be some up-front cost savings as far as disk space and backup tapes are concerned, that money is easily lost the first time you have an entire office sitting around the hallway, chatting and joking about the stiffs in IT, while they wait for their mail server to be restored. Forgetting clustering, replication, and security, the fact that Domino CAN use separate files for each user's mail files is by far it's greatest advantage as far as mail is concerned.

I know that indexing is the biggest drain on any Domino server's performance and reducing a mail file's size by stubbing off attachments won't make those indexes any smaller or faster. In fact, I can't believe that there isn't some performance hit that users feel with they are in a SCOS scenario. Maybe MS' insistence on using SCOS is one of the reasons that they have not implemented their own Full-Text Search Engine for Exchange. I can't remember if cc:Mail had full text indexing, but I am pretty sure it didn't. I am sure that if Richard reads this he will set me straight. In any event, to put it bluntly, it's not the size of the file that matters, it's the number of emails that are in it.

DDM Redpaper Final released
Domino Domain Monitoring is the savior that many admins have been waiting for and IBM has just released a Redpaper outlining how best to use this new tool.

via Ed Brill

New Technotes from IBM
I came across the following technotes in IBM's Support feeds for Notes and Domino:

Using an Array to get parts of the URL
Often when I am developing a web site, I will need to get a handle on different pieces of the URL. Sometimes I will need just the database path and other times I might need the document ID. I came up with an easy function that uses the split method to get the URL into an array and retrieve whatever piece of it I needed. The function below is built to work with Quickplace databases:

function getHomeFolder(returnValues) {
  var temp = new Array();
  temp = document.location.href.split('/');
  var rv = "";

  var protocol = temp[0];
  var server = temp[2];
  var qp = temp[3];
  var sub = temp[4];
  var db = temp[5];
  var view = temp[6];
  var doc = temp[7];
  
  if (returnValues.indexOf('1') != -1) { rv = rv + protocol + '//';}
  if (returnValues.indexOf('2') != -1) { rv = rv + server + '/';}
  if (returnValues.indexOf('3') != -1) { rv = rv + qp + '/';}
  if (returnValues.indexOf('4') != -1) { rv = rv + sub + '/';}
  if (returnValues.indexOf('5') != -1) { rv = rv + db + '/';}
  if (returnValues.indexOf('6') != -1) { rv = rv + view + '/';}
  if (returnValues.indexOf('7') != -1) { rv = rv + doc;}
  return rv;
}

The above function could be easily generalized to be able to be used in any database on a Domino server or any regular web page. It's much easier than looping through the href using indexOf() or substring(). In fact, you can use split to create a JS version of Rocky's favorite @Function, @Word.

function atWord(fullstring, sep, wordno) {
  var temp = new Array();
  temp = fullstring.split(sep);
  if (temp.length > wordno) {
    return temp[wordno - 1];
  } else {
    return false;
  }
}

Symmetric Encryption Keys?
I had 2 emails from recruiters today that listed Experienced with symmetric encryption keys in Notes as a required skill. I was not familiar with that term so I went to the Help documentation in Notes and couldn't find it there either. After doing some searching on the net, I figured out that a symmetric encryption key is nothing more than a private key. Why couldn't they just say that??? Why do recruiters and managers have to make the job postings either incredibly hard to understand or impossible to fill due to the extensive list of irrelevant requirements? I mean how many people do you know who are an expert in Notes and an expert in Oracle, SAP, or .net? These days there is just too much to know to be truly proficient in multiple disciplines, unless the secondary subjects are directly related to your main knowledge set. In that case, you may be knowledgeable in that second area, but it is usually only when relating to the main area of expertise. For example, I know a bit about working in COM with Office, but that's only when I am writing LotusScript in a Notes Database. Get me in an Office only situation and I know only enough to be dangerous.
Join the cause
TheSickos.com has a number of images available for you to show your allegiance to the brotherhood of yellow and black. I opted for the little chicklet, but there are some large images that might be more your style. You know you wanna be a sicko, don't deny it. Show it with pride!!!
Quickplace User Name
I have been doing some work in Quickplace 7 recently and came across a simple problem that took me a while to find the solution for. All I wanted to do is to get the user's name and be able to manipulate it with Javascript. The Customizing Quickplace documentation says that I should be able to access the REMOTE_USER CGI variable in my script, but I was unable to get it to work. In the end, there is a variable called haiku.userName that you can access from any script in any Quickplace. I knew it had to be something simple. If you look at the source of your Quickplace page, you will see a number of other variables that you might find useful.
Exchange 12: Over Dressed and Late for the Party
As Dec, Ed, and Bill have already written about today, MicroSloth has made a couple announcements about the upcoming version of Exchange. First, it seems that you will need to embrace the new 64-bit world to upgrade.
As part of its commitment to 64-bit computing, Microsoft has been delivering products that are optimized for 64-bit, including the newly released SQL Server™ 2005, Visual Studio® 2005 and Virtual Server 2005 R2. To help customers take full advantage of the power of 64-bit computing, products including Microsoft® Exchange Server “12,” Windows Compute Cluster Server 2003, Windows Server™ “Longhorn” Small Business Server, and Microsoft’s infrastructure solution for midsize businesses, code-named “Centro,” will be exclusively 64-bit and optimized for x64 hardware.
That's right, boys and girls, if you want to go to the newest version of Exchange, you will also have to move to a new OS version and may have to move to a new hardware platform. I don't know about you, but I think that's an awful lot to ask just to be able to run a mail server. Of course, you could just use your existing hardware and move to a real application platform that also does a good job at routing mail. And it's available today!

According to Mary Jo Foley, the same cannot be said about Exchange 12.

Microsoft execs announced earlier this year that Exchange 12 would ship in 2006. Now Microsoft is back to saying to expect Exchange 12 in late 2006 or early 2007. Officials also are promising some new "E12-optimized services" in the late 2006/early 2007 timeframe.
As Ed points out, it will be more than 3 years between version releases for Exchange. I can't imagine paying maintenance on software for 3 years without getting any upgrades at all. I get frustrated when I have to wait until the next quarterly release of Domino. As some point in time, customers will no longer believe the PR and will start to look for other alternatives.
If you can’t beat ’em, use ’em
In my eyes, Gary Devendorf is much like Darth Vader. That is, even though he's gone over to the dark side, there's still a piece of him deep inside that is light and knows what is right.
I've been talking to countless Notes customers. One thing I tell them always surprises everyone in the room. "What you need is a Domino 7 server and Domino Designer 7." More that once the Microsoft sales folks got big eyes or chocked. So why would I say this? Its simple, most Notes customers have a large investment in Notes applications and data. The quickest way to write cool .NET applications that are relevant for end users is to include functionality in existing systems. And the easiest way to include functionality from one system to another is with web services.
Even though his bosses would rather it be different, he knows the power of the Domino platform and ability that it has to adapt and play well with other applications. Domino 7's ability to easily build web services may turn out to be a killer feature that changes Domino's fortunes for a number corporations.

via Domino 7 server - Microsoft says you need one

Using LotusScript’s Execute command to save redundant code
Being the ultra lazy developer that I am, I truly hate writing redundant lines of code. I ran into this recently with a client when I was writing a report. When writing reports, I have become a true fan of using Lists, but the lack of being able to use a subscript to step through the values of the single dimension array can be a bit of an issue. While this is a mild inconvenience, it certainly became a real pita. The problem wasn't with accessing any of the values in the List, but rather figuring out which List to add a specific value to. Most of the time, I just use a Switch-Case statement to get a handle on the List I want. That's fine when you have 3 or 4 lists, but when you have the 13 lists I had to work with, I thought that there had to be a better way. In the end, I was able to use a couple of Execute statements to reduce 41 lines of redundant code to 2 lines of easily modified code.

In case you have never used the Execute command, it is used to compile and run a text expression at run time. In other words, things like variable names and subroutine calls can be determined at run time. This was important to me because the names of 2 sets of 13 Lists I had were almost identical except for a number. So here is the code as it would have been written using normal Switch-Case statements:

  Select Case monthnumber
  Case 1 :
    If Iselement(month1orders(ccode)) Then month1orders(ccode) = month1orders(ccode) + oqty Else month1orders(ccode) = oqty
    If Iselement(month1total(ccode)) Then month1total(ccode) = month1total(ccode) + ocost Else month1total(ccode) = ocost
  Case 2 :
    If Iselement(month2orders(ccode)) Then month2orders(ccode) = month2orders(ccode) + oqty Else month2orders(ccode) = oqty
    If Iselement(month2total(ccode)) Then month2total(ccode) = month2total(ccode) + ocost Else month2total(ccode) = ocost
  Case 3 :
    If Iselement(month3orders(ccode)) Then month3orders(ccode) = month3orders(ccode) + oqty Else month3orders(ccode) = oqty
    If Iselement(month3total(ccode)) Then month3total(ccode) = month3total(ccode) + ocost Else month3total(ccode) = ocost
  Case 4 :
    If Iselement(month4orders(ccode)) Then month4orders(ccode) = month4orders(ccode) + oqty Else month4orders(ccode) = oqty
    If Iselement(month4total(ccode)) Then month4total(ccode) = month4total(ccode) + ocost Else month4total(ccode) = ocost
  Case 5 :
    If Iselement(month5orders(ccode)) Then month5orders(ccode) = month5orders(ccode) + oqty Else month5orders(ccode) = oqty
    If Iselement(month5total(ccode)) Then month5total(ccode) = month5total(ccode) + ocost Else month5total(ccode) = ocost
  Case 6 :
    If Iselement(month6orders(ccode)) Then month6orders(ccode) = month6orders(ccode) + oqty Else month6orders(ccode) = oqty
    If Iselement(month6total(ccode)) Then month6total(ccode) = month6total(ccode) + ocost Else month6total(ccode) = ocost
  Case 7 :
    If Iselement(month7orders(ccode)) Then month7orders(ccode) = month7orders(ccode) + oqty Else month7orders(ccode) = oqty
    If Iselement(month7total(ccode)) Then month7total(ccode) = month7total(ccode) + ocost Else month7total(ccode) = ocost
  Case 8 :
    If Iselement(month8orders(ccode)) Then month8orders(ccode) = month8orders(ccode) + oqty Else month8orders(ccode) = oqty
    If Iselement(month8total(ccode)) Then month8total(ccode) = month8total(ccode) + ocost Else month8total(ccode) = ocost
  Case 9 :
    If Iselement(month9orders(ccode)) Then month9orders(ccode) = month9orders(ccode) + oqty Else month9orders(ccode) = oqty
    If Iselement(month9total(ccode)) Then month9total(ccode) = month9total(ccode) + ocost Else month9total(ccode) = ocost
  Case 10 :
    If Iselement(month10orders(ccode)) Then month10orders(ccode) = month10orders(ccode) + oqty Else month10orders(ccode) = oqty
    If Iselement(month10total(ccode)) Then month10total(ccode) = month10total(ccode) + ocost Else month10total(ccode) = ocost
  Case 11 :
    If Iselement(month11orders(ccode)) Then month11orders(ccode) = month11orders(ccode) + oqty Else month11orders(ccode) = oqty
    If Iselement(month11total(ccode)) Then month11total(ccode) = month11total(ccode) + ocost Else month11total(ccode) = ocost
  Case 12 :
    If Iselement(month12orders(ccode)) Then month12orders(ccode) = month12orders(ccode) + oqty Else month12orders(ccode) = oqty
    If Iselement(month12total(ccode)) Then month12total(ccode) = month12total(ccode) + ocost Else month12total(ccode) = ocost
  Case 13 :
    If Iselement(month13orders(ccode)) Then month13orders(ccode) = month13orders(ccode) + oqty Else month13orders(ccode) = oqty
    If Iselement(month13total(ccode)) Then month13total(ccode) = month13total(ccode) + ocost Else month13total(ccode) = ocost
End Select

Even though it's valid script, that's a lot of code that is almost identical. And if the formula I am using changes, it will take quite a while to modify all those lines of code. And I don't even think what a pain it would be to add another list to the mix or try to compile more than 13 months worth of data. Contrast the code above to the elegant 2 lines listed below:

Execute |If Iselement(month| & monthnumber & |orders("| & ccode & |")) Then month| & monthnumber & |orders("| & ccode & |") = month| & monthnumber & |orders("| & ccode & |") + | & oqty & | Else month| & monthnumber & |orders("| & ccode & |") = | & oqty
Execute |If Iselement(month| & monthnumber & |total("| & ccode & |")) Then month| & monthnumber & |total("| & ccode & |") = month| & monthnumber & |total("| & ccode & |") + CDbl(| & ocost & |) Else month| & monthnumber & |total("| & ccode & |") = CDbl(| & ocost & |)|

A couple of things to notice about the code above. You can't just reference any of the local variables. You have to convert them to text and use the value of the variables to created the text expression. However, you can change the value of global variables that are referenced in the text expression. I also used the Execute command with a For loop to write some code that manipulates an Excel spreadsheet.

For x = 4 To 29
    Execute |xlSheet.cells(| & thisrow & |,| & x & |).FormulaR1C1 = "=SUM(R| & startrow & |C| & x & |:R| & endrow & |C| & x & |)"|
Next

This is where using the R1C1 formulas really come in handy. Instead of writing 26 lines of code that each write a single formula to a single cell in a spreadsheet, I was able to write 3 lines of code that can do the same thing. I love it when a plan comes together!!! One word of caution before you go Execute crazy. I have no idea what kind of performance impact will be paid for the increased manageability of your code. Leave a comment if you have some actual numbers.

Clean Up that Inbox or you’ll get no dessert
IBM has released a study entitled Best practices for large Lotus Notes mail files. The article, written by 2 software engineers, looks at different mailbox scenarios and how they impact the performance of the server.
In our next test, we started up 2000 users over a period of 80 minutes, followed by a steady-state period of 90 minutes. In one test, documents were left in the Inbox, while in the second test, we limited the number of documents in the Inbox to 25 percent of the total document count in the mail file. We then compared the CPU usage of both groups over time (see figure 2).

We found that when Inboxes were limited to only 25 percent of total document count, peak CPU usage was 50 percent lower, and steady-state CPU was 12 percent lower, compared to allowing all new documents to remain in the Inbox.
This article should provide plenty of fodder for getting users to clean up their inboxes at the very least.

via Ed Brill

Looking for Mr. Goodbar?
If not, then maybe you are looking for someone just like me. I am currently available for short-term or long-term contracts or even full-time employment. You can get the skinny on my by checking out my resume. Optimally, I am looking for a position within 15-20 miles of Columbia, MD, but if I was allowed to telecommute a couple of times a week, I would be willing to venture further. The wife tells me that traveling for work would be OK, just as long as it's not more than 25% of the time. Otherwise, I might come home and find the kids duct taped to the walls. If you have any questions, just holler at me through here or contact me through the links on the right.
Putting Reminders on user’s calendars
One of the most used databases at my company is our Company Communications Database. I built this database within the first 3 or 4 month of being hired and it has been a daily staple of the people in IT and HR. The core function of the database is to send out the mass mailings letting employees know about corporate events, system outages, and significant promotions. Emails are able to be sent out to users based on information in their person document, like department, region, and location. The great thing about this is that we don't have to worry about managing groups or worrying about people sending emails to everyone in the company about kittens they have for adoption. The information in the person document is updated on a weekly basis from our HR system.

A request that recently came to me was to put a reminder for an upcoming IT outage on the calendar for a specific list of users. To me, this seemed like a natural extension of the Company Communications Database. The form I used for setting up the reminder was just a modified mass email form that was already built. All the user has to do is select who gets the reminder, select when the reminder should go off, and enter the subject and body of the reminder. Below is the subroutine that actually puts the reminders on the user's calendar:

Sub SendReminder(person As NotesDocument, doc As NotesDocument)
  Dim mailfile As NotesDatabase
  Dim collection As NotesDocumentCollection
  Dim reminder As NotesDocument
  Dim item As NotesItem
  Dim body As NotesRichTextItem
  Dim oldbody As NotesRichTextItem
  Dim datetime As NotesDateTime
  
  Set mailfile = New NotesDatabase(person.MailServer(0),person.MailFile(0))
  If Not(mailfile.IsOpen) Then Exit Sub
  
  Set datetime = New NotesDateTime(doc.GetItemValue("calendardatetime")(0))
  Set collection = mailfile.Search(|Form = "Appointment" & ApptUNID = "| & doc.UniversalID & |"|,Nothing,0)
  
  If collection.Count = 0 Then
    Set reminder = mailfile.CreateDocument()
    reminder.Form = "Appointment"
    Set item = reminder.ReplaceItemValue("$Alarm",1)
    Set item = reminder.ReplaceItemValue("$AlarmOffset",0)
  '  Set item = reminder.ReplaceItemValue("$NoPurge",doc.GetItemValue("calendardatetime"))
    Set item = reminder.ReplaceItemValue("$PublicAccess","1")
    Set item = reminder.ReplaceItemValue("$CSVersion","2")
    Set item = reminder.ReplaceItemValue("_ViewIcon",10)
    Set item = reminder.ReplaceItemValue("Alarms","1")
    Set item = reminder.ReplaceItemValue("AppointmentType","4")
    Set item = reminder.ReplaceItemValue("ApptUNID",doc.UniversalID)
    Set item = reminder.ReplaceItemValue("Categories","Company Reminders")
    Set item = reminder.ReplaceItemValue("Chair","CN=Generic ID/O=Company")
    Set item = reminder.ReplaceItemValue("ExcludeFromView","D")
    Call item.AppendToTextList("S")
    Set item = reminder.ReplaceItemValue("OrgTable","C0")
    Set item = reminder.ReplaceItemValue("Principal","CN=Clark Construction/O=Clark")
    Set item = reminder.ReplaceItemValue("SequenceNum",1)
    Set item = reminder.ReplaceItemValue("UpdateSeq",1)
    Set item = reminder.ReplaceItemValue("WebDateTimeInit","1")
  Else
    Set reminder = collection.GetFirstDocument
    Set item = reminder.ReplaceItemValue("SequenceNum",reminder.SequenceNum(0) + 1)
    Set item = reminder.ReplaceItemValue("UpdateSeq",reminder.UpdateSeq(0) + 1)
    Call reminder.RemoveItem("Body")
  End If
  Set item = reminder.ReplaceItemValue("CalendarDateTime",doc.GetItemValue("calendardatetime")(0))
  Set item = reminder.ReplaceItemValue("EndDate",Datevalue(datetime.DateOnly))
  Set item = reminder.ReplaceItemValue("EndDateTime",doc.GetItemValue("calendardatetime")(0))
  Set item = reminder.ReplaceItemValue("EndTime",Timevalue(datetime.TimeOnly))
  Set item = reminder.ReplaceItemValue("StartDate",Datevalue(datetime.DateOnly))
  Set item = reminder.ReplaceItemValue("StartDateTime",doc.GetItemValue("calendardatetime")(0))
  Set item = reminder.ReplaceItemValue("StartTime",Timevalue(datetime.TimeOnly))
  Set item = reminder.ReplaceItemValue("Subject",doc.subject(0))
  Set oldbody = doc.GetFirstItem("Body")
  Set body = reminder.CreateRichTextItem("Body")
  Call body.AppendRTItem(oldbody)
  
  Call reminder.ComputeWithForm(True,False)
  Call reminder.Save(True,False,True)
End Sub

A couple of things that you should notice about the subroutine. First, a couple of NotesDocument objects are passed in, one pointing to the user's person document in the address book and the other pointing to the reminder document. Second, the agent is built to be able to update reminders that have already been created. The ApptUNID field will contain the UniversalID of the reminder document so that if the reminder document gets updated, the reminder on the user's calendar will also be updated, not duplicated. Finally, I only set the static calendar fields when the document is created. I think that I got all the required fields, but I might have missed one. Please drop me a line if you think I did.

DominoBlog testers wanted
Steve Castledine is asking for testers for his new version of the DominoBlog template. Respond with a comment or send him an email if you are interested. The quicker we test, the quicker all the bugs get fixed, and the quickers all of our sites look just that much better.
How do Exchange shops collaborate?
Kevin had an entry on his blog about going out to do an independent study of a company's mixed mail environment. He had just finished his examination of an Exchange only site so I asked what he found. Here is his response:
They really are just using their Exchange environment for email. There is zero collaboration applications in the site. When they talk collaboration they really only mean getting email and calendar on their Blackberry and document management.

One thing of interest... they were showing me their internal intranet that they use for getting corporate policies, forms, caterer menus and stuff like that. And what did I notice in the URL of this intranet... but none other then our favorite ".nsf" Turns out they do have one Domino server which they are using to host the intranet site. It's an oldie... 4.6a but one of the most stable apps that they have running.
I certainly have to hand it to the Exchange shops. They sure know how to wring every penny of value out of their software purchases. They must be the only people on the planet still running Domino 4.6 servers. That just goes to show that Lotus' 1997 collaboration platform is far and above anything that Exchange has ever delivered.
Week of upgrades
This past week was one of upgrades and changes in my environment.
  • Upgrade to Proofpoint 3.2 - As usual, the support staff at Proofpoint did a wonderful job of performing the upgrades on our 2 appliances. The upgrade was accomplished in approximately 2 hours. In fact, I was so confident in the upgrade that I left for home before in the middle of it. The only catch was that I forgot to tell our Network guru about it and he pinged me that our SNMP server had the servers going up and down. If not for that, no one would have been the wiser, which is just the way I like these types of upgrades to be. As far as the new version is concerned, what I have seen so far is making me very happy. The changes seem to address a number of the difficulties that I had when setting up routes for incoming domains. The interface just gets better and more informative every time they change it. Thanks Matt for the new tools.
  • Upgrade to BES 4 SP2 - After berrading Tony into doing the upgrade first, I upgraded our BES to SP2. The upgrade was a little rocky, as always. (he he he....little Rocky!!! I kill myself) Any ways, I shut down the Domino server, set the Domino service to manual start and stopped all the BES services. Running the install went fine until it tried to install a couple of the new services. I ignored the errors and rebooted the server completely. When the configuration screen came back up, I canceled the dialog box and reran the SP2 installation. It completed this time without any errors. After another reboot and a completion of the configuration dialog, the installation was complete. I really wish they'd get the installation routine ironed out.
  • Domino server name change - To comply with a new Network naming scheme and correct a mistake by a former administrator, I needed to rename a Domino server this week. I had never done this before, but didn't think this was going to be a huge issue. Here are the steps I took to make it as easy as possible:
    1. Create new server ID, copy the ID file to the exiting server, and put the existing and new server ino a new Domino Cluster. Even though the servers won't be up at the same time, the failover capabilities of clustering will come in handy when the server name changes.
    2. Update the new server's Server Document with the settings that were in the existing server document. Running a Decomission Server Report can help you with this and other configuration documents.
    3. Create server to server connection documents for the new server ID. This should be easy to do by copying the connection documents from the existing server. If you push out connection documents to your clients, make sure you push out connections for the new server.
    4. Add a DNS entry for the new server name that points to the existing IP address.
    5. Shutdown the Domino server, change the ServerKeyFilename value in the Notes.ini to point to the new server ID, and restart the server. Don't forget to change the KeyFilename value also if you ever plan to use the client on the server.
    6. Finally, and this is the only tedious part of the exercise, I needed to go through all the databases on the server that have scheduled agents to run on the old server and change them to run on the new server. This can be done a number of ways ,either manually or with a tool that you buy or build.
    As far as I know, no one outside of IT even knows I changed the name of the server and there have been no calls to the helpdesk from user's trying to access the old server. You may want to make sure you kill the clrepl and cldbdir tasks to avoid the errors that will show from the old server not being up and running.
To encrypt or not to encrypt, that is the question
As I previously posted in earlier entries on encryption and archiving, handling encrypted emails has become a hot issue for me as of late. The more I talk with Chris and hear from vendors, the more I am convinced that this is an issue that is not currently being taken seriously. I think that this ignorance of the problem comes from a true lack of understanding about some of the more "esoteric" features of Notes. Aside from all the true collaborative features of Notes that Outlook/Exchange lacks, two features that are differentiators for me are Security/Encryption and Searching. Both of these integral features have been a part of Notes since I started with the product in the V3 days. The built-in search engine is so intrinsic to everything I do in Notes that I can't imagine how Outlook users get along without it. I guess that's why Google Desktop Search is such a big deal for them.

As a developer, I think about Notes/Domino security every day, but rarely worry about it. I know it's there and I know how to implement it, but encryption is a different story. I have only developed a handful of applications that have every used private key encrypted fields and always have to refer back to the documentation when doing it. There are very few types of applications that truly need this level of security and, therefore, it is not something that I am that familiar with. From the administrative standpoint, I am very familiar with forcing encryption on local database replicas via profile settings. The part of encryption that has come to the fore front recently is the ability to encrypt emails on send and how we would get around that encryption as a part of litigation discovery.

So, my question to every one out there is do you allow users to send encrypted emails and how do you plan on retrieving those emails without the user's consent or if the user leaves?

Finally going to make a DCNUG meeting
I am finally going to make it to the monthly DCNUG meeting tomorrow night. Cingular is showing off the BES 4.1 server with the integrated Sametime support. It will be interesting to see how many people I recognize since it's been more than a few years since I have been to a meeting. Better yet, it will be interesting to see if anyone knows me through my blog.
Archiving Vendors
Tony asked in a comment to an early entry which vendors we are evaluating for Email Archiving. Here is the list, in no particular order:

If there is a viable solution out there that we are not looking at, please let me know.

Update: per suggestions in the comments, I have added Waterford Technologies and IBM to my list of vendors.

Welcome Home Notes/Domino 7
You can now download the gold release of Notes/Domino 7 from the Passport Advantage site. I guess it's time for me to get off my butt and start looking at this. I have an Extranet server that I would just love to be able to upgrade shortly. It's nice to see a major software product not have serious delays or have feature after feature stripped out so they can meet a deadline. It seems that some of us got up early to get the new code installed.
More on Encryption
I had a lengthy discussion on AIM with Chris before I left from work today. He had read my blog entry and wanted to get some more information on the encryption problem, as I saw it. We talked about the additional things that administrators will have to manage along with the emails that have been archived. At a minimum, you need to keep accessible copies of Notes IDs of all terminated accounts for at least as long as you keep email in the archives. But do you also need to keep their person document and an empty copy of their mail file? And since the body is encrypted, it can't be indexed by the search engines. How does that hamper your company when trying to comply with a subpoena? How do you include encrypted emails in the export from the Archive?

In case you are unaware of how native Notes mail encryption works, here is an excerpt from the Domino 6 Administration Help Database:

How outgoing Notes mail encryption works
  1. The sender sends an outgoing message and selects the Encrypt option.
  2. Notes generates a random encryption key and encrypts the message with it.
  3. Notes encrypts the random encryption key with the recipient's public key and appends the new key to the message. The recipient's public key must be stored in either a Domino Directory or LDAP directory that a user can access or in the sender's Personal Address Book.
  4. If the encrypted message is addressed to multiple recipients, the message is encrypted only once with one random key, and the random key is encrypted using the public key of each recipient.
  5. When the recipient attempts to open the encrypted message, the user's mail application attempts to decrypt the random key, using the recipient's private key. If this is successful, the random key decrypts the message.
  6. If decryption is successful, the recipient can read the message. If decryption is unsuccessful, the user receives a message indicating that the decryption failed and the mail application does not allow the user to access the message.
All except 1 of the archiving solutions that have been demonstrated have used Native Mail Journaling to get a copy of the email for them to archive. Here is how journaling handles encrypted emails:
A message that Notes has previously encrypted for its recipients is not re-encrypted with the certified public key of the specified Journal user. As a result, when depositing encrypted messages in the Mail Journaling database, Domino preserves the original encryption, so that the message content cannot be decrypted with the ID of the designated Mail Journaling user, unless, of course, that user was included in the original recipient list. A Mail Journaling user who was not on the recipient list can view header information only.
So, basically, if encryption of email is allowed, or even required, a significant number of additional things need to be managed along with just email. This is compounded greatly if you use Exchange and have a third party encryption package. Imagine having to get users to send you tokens that they create when they start using encryption. And what do you do if a token gets lost or the one copy of the file token file you have gets corrupted? I am not sure that IT departments or the Archiving Solution vendors are even thinking about this.
Email Archiving and Encryption
We are in the process of determining a solution for email archiving and retention on an enterprise level. We have met with about 5 vendors so far and have another 2 or 3 to see before I feel we have done due diligence. In any event, in the last couple of days, the question of how these vendors handle Notes Mail that has been encrypted has come up. Since encrypting an email is incredibly easy to do and is an integral part of Notes, any solution we have should be able to decrypt the messages or it provides a huge hole to bypass having every email archived. I am still waiting to hear back from some of the vendors, but was wondering if anyone else had found a solution to this problem. As a number of the vendors use native Mail Journaling to get all the messages, does the router decrypt the messages before journaling them? If not, how are these messages supposed to be accessed by a person who is not a recipient? Does Lotus see this as an issue?
Ed finally responds....
There have been a couple of articles this week that have not been exactly favorable toward Notes/Domino. While a number of people have taken these authors to task (see Chris' Fighting FUD page), Ed had been uncharacteristically quiet about the whole thing. Well, he has finally taken the time to write out his thoughts on the issue.
First, don't lose sight of the bottom line. According to Gartner, for 2004, IBM commands an impressive 45% of the e-mail market. [Note that this number wasn't cited in the article referenced above]. IDC's number is a bit lower. Either way, the corporate e-mail/ICE market is now entirely a duopoly -- with Novell, Oracle, and Bob's e-mail server fighting it out for less than 10% of the market.
It is important to keep this point in mind when reading things about some of the minor players in the enterprise messaging sector. Even saying that, it is interesting to see how "market share" is actually calculated. Although it would be an impossible task, I wish there was an easier way to count the number of people using each product. I would also love to know the number of seats in companies where Domino is still being used for applications when management has decided to move to Exchange. Exactly where is the savings when that happens?
So, with all of this, I'm not taking my toys and going home. There are over 100 Notes/Domino 7 launch events scheduled in the next 75 days. I can't attend too many in person, but you'll see executive commitment from IBM at the vast majority of them. The product rocks, the roadmap is clear, and for all the noise coming out of Redmond, ultimately they have a pile o' 16 products that somehow try to compete with Domino. I'll keep my bet on yellow, and can't wait to see what we are talking about this time next year.
16 different products?? Are you kidding me? I have never been able to understand how people can still compare the Notes/Domino platform with Exchange instead of with the plethora of products necessary to do "true collaboration" in the MS environment. Of course, I have yet to visit a site using MS that has collaboration applications that rival most Domino shops. In fact, I think that Oracle understands this better than MS when it positioned it's new collaboration platform, Oracle Workspaces, against Sharepoint and not Exchange. As with any solution that requires multiple servers to succeed, getting all the pieces to work in harmony is not something that is easily accomplished.

What I would really love to see is for experts from both companies to meet at a Battle of the Platforms. Each group would be allowed to have a similar number of team members and all the software that is usually distributed to customers. Without any outside help or prior knowledge, they would have to follow the application life cycle that we all have to deal with. They would initially be given either a set of requirements or a group of people that they would have to get the requirements out of. The amount of time that the groups would have would be limited and they would have to take into account a budget for hardware and software. And like all good projects, thing would change as the project went along. Group members would be given additional responsibilities, transferred to other departments, or quit for another job. Requirements would change and then maybe change back, time frames and budget would get adjusted without regard for the impact on the project, virus and worm outbreaks would occur, and other projects in the company would be introduced that would adversely effect the solution they were trying to implement. Then, and only then, we might be able to see which platform is better for developing collaborative solutions, not that I truly have any doubts.

SP2 for BES on Domino has been released
RIM has released SP2 for the Blackberry Enterprise Server 4.0 for Domino.
Please visit http://www.blackberry.com/support/downloads/index.shtml to access the service pack and a list of fixed issues, software updates, and additional information.
I really can't wait until 4.1 comes out with the Sametime integration.
Using Lists to write decent reports in Notes, part IV
Part I
Part II
Part III

Now, since we have used lists to gather the data, writing the data out to the Excel spreadsheet doesn't contain a single loop!! How cool is that?!? First, let me explain what some of the other subroutines that you have seen do:

  • SetExcelOptions - This is where I handle the page setup. I set the default font, page header and footer, and orientation.
  • SetWorksheetTitleRows - This is where the first row and column entries are set and where the format for the data columns are set. For most reports, I only set the top row, but since this report is a little more structured, I am also setting the first column on the first and third pages. The code in here sets not only the values for the cells, but also sets the look and feel for those cells. Here is some of that code:
    Dim thisselection As Variant
      
      With xlSheet
        .Name = "Overall Statistics"
        
        ' Top Header Row
        Set thisselection = .Range(.Cells(1,1),.Cells(1,8))
        With thisselection
          .NumberFormat = getNumberFormat("Text")
          .VerticalAlignment = xlTop
          .HorizontalAlignment = xlLeft
          .Font.Bold = True
          .Font.Italic = False
          .Font.Underline = False
          .WrapText = True
          .Font.ColorIndex = 1
          .Orientation = 0
          .MergeCells = False
          .Interior.ColorIndex = 15
          .Interior.Pattern = xlSolid
          With .Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
          End With
        End With
        
        .cells(1,1).Value = ""
        .cells(1,2).Value = "Full Day Office Interview"
        .cells(1,3).Value = "Pass"
        .cells(1,4).Value = "Offer Made"
        .cells(1,5).Value = "Rejected Offer"
        .cells(1,6).Value = "Accepted Offer"
        .cells(1,7).Value = "Hit Ratio: Accepted vs Interviewed"
        .cells(1,8).Value = "Hit Ration: Accepted vs Offered"

    All of the "xl" values are constants that I set in the declarations section. By using the .Range to get a selection of cells, I am able to set the attributes of all those cells without looping through each cell. BTW, most of the Excel specific code was created by using the Record Macro function in Excel to create VBA that I wanted to mimic in LotusScript. Since the 3 sheets in this workbook as very different, I have 3 versions of this sub in the agent.
  • getNumberFormat - This gets the codes that set the correct number format for the cells. The code for text is "@" while the code for showing only Month and Year of a date is "mmm yyyy".
The ideas behind these subs have been developed over time and are not perfect nor are they set in stone. They are often modified to suit the needs of that application's requirements.

Once we have the sheets setup like we want them, we use the AddStatstoReport sub to populate the sheet. Here is a portion of that sub:

Sub AddStatstoReport
  Call AddLine(3,"Total")
  Call AddPercentLine(4)
  Call AddLine(6,"Company 1")
  Call AddLine(7,"Company 2")
  Call AddLine(8,"Company 3")
  Call AddLine(10,"Mid-Atlantic")
  Call AddLine(11,"Midwest")
  Call AddLine(12,"Northest")
  Call AddLine(13,"Northern California")
  Call AddLine(14,"Southeast")
  Call AddLine(15,"Southwest")
  Call AddLine(16,"West")

Each row is populated by calling the AddLine sub and passing the row number and the identifier. For the second sheet of this report, calling this Sub is done using a ForAll loop and a counter to calculate identifier and row number. Here is what the AddLine sub looks like:

Sub AddLine(row As Integer, listname As String)
  If Iselement(statint(listname)) Then xlSheet.cells(row,2).Value = statint(listname) Else xlSheet.cells(row,2).Value = 0
  If Iselement(statpass(listname)) Then xlSheet.cells(row,3).Value = statpass(listname) Else xlSheet.cells(row,3).Value = 0
  If Iselement(statoffer(listname)) Then xlSheet.cells(row,4).Value = statoffer(listname) Else xlSheet.cells(row,4).Value = 0
  If Iselement(statreject(listname)) Then xlSheet.cells(row,5).Value = statreject(listname) Else xlSheet.cells(row,5).Value = 0
  If Iselement(stataccept(listname)) Then xlSheet.cells(row,6).Value = stataccept(listname) Else xlSheet.cells(row,6).Value = 0
  xlSheet.cells(row,7).FormulaR1C1 = "=if(R" & row & "C2 <> 0,R" & row & "C6/R" & row & "C2,0)"
  xlSheet.cells(row,7).NumberFormat = getNumberFormat("Percent")
  xlSheet.cells(row,8).FormulaR1C1= "=if(R" & row & "C4,R" & row & "C6/R" & row & "C4,0)"
  xlSheet.cells(row,8).NumberFormat = getNumberFormat("Percent")
End Sub

Again, the IsElement function is used to see if the identified exists for each List and, if it does, the value for that identified is retrieved. Since a couple of the cells contain formulas that evaluate out to percentages, we also set the NumberFormat for those cells here. If you have never seen the FormulaR1C1 syntax before, I would suggest getting to know it since it is the easiest way to write Excel formulas from LotusScript.

So there you have it. With a little bit of ingenuity and some efficient coding, you can use Lists and Excel to create some really nice reports that anyone in your company can run. I have posted the code for the Agent in it's entirety for you to dissect at your leisure. Just be nice in your comment as I bruise easily.

Response to RadiCockeye
has a very good analysis of the latest RadiCockeye report concerning the demise of Domino.
Microsoft must be pretty pleased with Radicati's latest Exchange Server Market Share Statistics 2005 report. Based on Radicati's methodology and market place analysis, it said that Microsoft's take from Exchange Server licensing in 2004 was $1.45 billion, about $0.45 billion more than Microsoft itself said that it earned from the product. Further, Microsoft said that the first year it earned more than $1 billion from Exchange was July 2003 to June 2004, whereas Radicati paints Microsoft as a liar, saying it has earned more than a billion each year from Exchange since 2001 (see Table 5). Strange ... if Radicati can't get the dollar figures for historical years to match reality, then its forward-looking figures are highly suspect.
I have really tried to refrain from writing about reports from this group since rarely does anything good come of it. But Michael does an excellent job of objectively pointing out where the facts in the report are wrong. You should keep this in mind in case your boss throws the report in your lap and asks you about it.
Using Lists to write decent reports in Notes, part III
Part I
Part II

So, now let's take a look at the RecruitStats() sub and what do you know, it calls another sub to actually populate the lists.

Sub RecruitStats()
  Dim collection As NotesDocumentCollection
  Dim child As NotesDocument
  Dim intern As Boolean
  
  Set collection = recruit.Responses
  Set child = collection.GetFirstDocument
  intern = False
  
  Set child = collection.GetFirstDocument
  While Not(child Is Nothing)
    If child.form(0) = "Education" Then
      Call AddtoLists(recruit.offer_status(0),child.school(0))
      Call AddtoLists(recruit.offer_status(0),child.degree_type(0))
      Call AddtoLists(recruit.offer_status(0),child.degree(0))
      If child.degree_type(0) = "Engineering" Then Call AddtoLists(recruit.offer_status(0),child.engineering_type(0))
    End If
    
    If child.form(0) = "Internship" Then intern = True
    
    Set child = collection.GetNextDocument(child)
  Wend
  
  Call AddtoLists(recruit.offer_status(0),"Total")
  Call AddtoLists(recruit.offer_status(0),recruit.company(0))
  Call AddtoLists(recruit.offer_status(0),recruit.region(0))
  Call AddtoLists(recruit.offer_status(0),recruit.gender(0))
  Call AddtoLists(recruit.offer_status(0),recruit.ethnicity(0))
  Call AddtoLists(recruit.offer_status(0),recruit.contact_type(0))
  Call AddtoLists(recruit.offer_status(0),recruit.candidate_type(0))
  If recruit.International(0) = "Yes" Then Call AddtoLists(recruit.offer_status(0),"International")
  If intern = True Then Call AddtoLists(recruit.offer_status(0),"Intern")
End Sub

Again, because I didn't want to write more than I had to, I decided to put the actual population of this lists in a different sub called AddtoLists(). This sub is passed 2 variables, the current status of the recruit and the List identifier to use. This separate sub allowed me to consolidate all of my logic in one place and not have to copy and paste it all over the place. See, I told you I was lazy. So let's take a look at the AddtoLists() sub:

Sub AddtoLists(status As String, listname As String)
  Dim addint As Boolean
  
  If status = "Rejected Offer" Then
    addint = True
    Forall x In recruit.GetItemValue("reason")
      If x = "Prior to Interview" Then addint = False
    End Forall
    If addint = True Then
      If Iselement(statint(listname)) Then statint(listname) = statint(listname) + 1 Else statint(listname) = 1
    End If
  Else
    If Iselement(statint(listname)) Then statint(listname) = statint(listname) + 1 Else statint(listname) = 1
  End If
  
  Select Case status
  Case "Passed" :
    If Iselement(statpass(listname)) Then statpass(listname) = statpass(listname) + 1 Else statpass(listname) = 1
  Case "Offer Made" :
    If Iselement(statoffer(listname)) Then statoffer(listname) = statoffer(listname) + 1 Else statoffer(listname) = 1
  Case "Accepted Offer" :
    If Iselement(statoffer(li