The October 2006 Blog
send me a comment

12 Weeks From Today... (Saturday, Oct 28)
[ permalink ] [ GoogleTrack ] [ e-mail me ] [ >> ]

12 weeks from today I'll be in Orlando, waiting for Lotusphere to begin. Giddyup! When you factor in all the holidays in-between, that's right around the corner.

If you haven't booked your travel yet, you'd better get crackin'.

Writing A Notes C-API Program in Visual Studio Express, Part 2 (Saturday, Oct 21)
[ permalink ] [ GoogleTrack ] [ e-mail me ] [ >> ]

Okay, so I've been playing around with writing a Notes C-API program in Visual Studio Express, and I ran into a problem. I compiled up SoapLog and people downloaded and tested it, and for some people it ran just fine but for others (notably Bruce) it would give a generic "Error loading DSAPI filter" and wouldn't work.

Naturally, it worked just fine for me.

After much investigation, I found out that it was a runtime DLL dependency issue. It appears that by default non-.NET applications compiled in Visual C++ 2005 require MSVCR80.DLL. This file should be in the directory (get this):
C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd

On most Windows XP and Windows 2003 installations the file seems to be there. However, it's not there by default on Windows 2000. If the program that you've compiled is an EXE, you'll get an obvious error that you're missing a dependent file and you can figure out how to fix it. If it's a DLL like mine, you may get a very generic error that is difficult to troubleshoot (or it may just fail silently).

One option is to have the users download the Microsoft Visual C++ 2005 Redistributable Package (only a 2.6 MB download) and install it. That will give them MSVCR80.DLL, MSVCM80.DLL, and MCVCP80.DLL and your VC++ apps should run happily.

Another option is to compile the program with the /MT option instead of the /MD option, which will make the compiled program much bigger (74.5 KB versus 14.5 KB for me) but will remove the dependency. Compiling with /MD on Visual Studio 6 wasn't a problem because it would make your program rely on MSVCRT.DLL and MSVCP60.DLL, which virtually every Windows machine in the world already has these days. VS2005 changed this dependency to MSVCR80.DLL, which isn't quite as ubiquitous.

A third possibility is to create an installer package for your application that automatically installs the redistributable files if they're not there.

In my case it was easiest just to compile with /MT and be done with it. From a percentage standpoint, the final program is much bigger (~400% bigger), but in real terms it's still only a 75KB file.

So if SoapLog didn't work for you before, please download the 1.0.2 version and try again!

We Finally Moved (Wednesday, Oct 18)
[ permalink ] [ GoogleTrack ] [ e-mail me ] [ >> ]

A week and a half ago, we finally got moved up to Atlanta. Thank goodness that's over. Moving sucks, but I sure am glad we did it.

Still lots of boxes (my office isn't nearly as clean as Devin's), but we're getting there.

SoapLog for Domino (Saturday, Oct 7)
[ permalink ] [ GoogleTrack ] [ e-mail me ] [ >> ]

Here's my latest tool/toy for you to download and play around with:

SoapLog for Domino

"What does it do", you ask? It monitors the web service traffic on your Domino 7.0 server!

SoapLog is a Lotus Notes/Domino DSAPI filter and accompanying database. The SoapLog filter can be copied to a Lotus Domino 7.0 server running on the Windows platform to track the contents of incoming SOAP requests, both the request and the response.

It can be very useful for tracking and debugging web services on the Domino server, and it requires no special configuration of any of the web services or databases that are already on the server. It just listens for any SOAP request and logs the transaction. Here's how you set it up:

That's it! All SOAP messages/web service transactions will be written to log documents in the database (see screenshots on the download page).

Version 1.0 is the initial release of this program and database. The program and database are currently unsupported but free for personal, development, and production use -- please test thoroughly before deploying to a production server for this 1.0 release. I am currently working out terms for support of the product, for companies that prefer to work with a well-supported version of this tool. The DSAPI filter itself is currently Windows-only, although I am also working on compiling a Linux version.

Instructions for setting up and using the DSAPI DLL file and database can be found in the "Using This Database" document within the database download.

GIFs Are Now Free! (Monday, Oct 2)
[ permalink ] [ GoogleTrack ] [ e-mail me ] [ >> ]

According to this article, the patent for the GIF file format finally expired yesterday, and there can no longer be any patent claims against programs (or people) that generate GIF files without paying a license fee to Unisys.

Granted, almost none of us ever felt any pain or had to pay anything extra because of the GIF patent -- it was mostly a theoretical issue for end users -- but it's a good thing to happen anyway.

Now if we can just get the Notes client to natively support the PNG format without having to resort to strange hacks I'll be in happy graphics land (PNG is a fantastic format for screenshots).