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.
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.
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.
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
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)
/51D34622FBC4E988852573C900528F50/$File/ls2008logo.jpg)
Agenda:
We'll discuss the best announcements, products and presentations from last months Lotusphere 2008. Among the topics we'll discuss are:
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)
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:
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.
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:
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.
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/.
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.
Focus : Learn how to build a quick app with the open source SuperNTF from the head chef, our own NotesGuru, Kevin Pettitt
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.
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.
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.
Nathan has combined 2 of my favorite things, Notes and Heroes, in a great new graphic.

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.
Bruce posted his own and I thought it would be a good idea to post some goals for me also. So here goes nothing:
I think that's more than enough to keep me busy.
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.
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.
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?
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?
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).
Declan is busy testing out the Nomad 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.ntfThat'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.
Jack will definitely be happy to hear this announcement from Ed Brill regarding Notes 7 on Linux.
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.
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 Open Office might not be guaranteed, at the very least, a plug-in for Microsoft Office to be able to save in ODF 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.
In an answer to Microsoft's assertion that the requirement that Exchange 12 is only viable in a 64-bit environment, Lotus Marketing has put up a site to show how Domino does 64-bit.
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.
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)
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 erroneous statements, both inadvertent and deliberate, from competitors. 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 Exchange. Talk about slapping lip stick on a pig. Their handling of the product reminds me a lot of the way Novell handled Netware 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.
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.
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).
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
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.
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.
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.
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.
Please let me know if you run into any problems with the plugins.
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.
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.
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!!!
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.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.
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).
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.
If you are planning on upgrading in the near future and you missed this session, this is a must read.Another packed session. Very fast paced. Again, I will put my information down in bullet point format to get the guts of the details.
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 successfullyThat, 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 ServerNow 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.
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.
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
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:
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.
Welcome to this Rapid FUD Responder blogIt'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.
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.
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.
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.
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
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
// 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.
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
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
Duffbert has asked us all about what we plan to do in the next year so here are my goals:
Finally, Laurette and Libby both had this list going, so I thought I might add mine:
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.
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.
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
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
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".
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.
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.
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;
}
}
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.
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.
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.
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).This article should provide plenty of fodder for getting users to clean up their inboxes at the very least.
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.
via Ed Brill
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.
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.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.
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.
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?
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.
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 worksAll 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:
- The sender sends an outgoing message and selects the Encrypt option.
- Notes generates a random encryption key and encrypts the message with it.
- 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.
- 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.
- 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.
- 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.
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.
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.
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.
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:
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.
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.
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