Scott's Column
Client/Server application, loads, digital camera, Windows 98

October 1, 1998
By Scott Lewis

It has been a busy month. I have a new manager. One of the members of my team put in for a manager position. He received the promotion, and with a little reorganizing, is now my manager, with some other people being added to our team.

This is a good thing for me. I have been without a true manager for quite a while. Now I have a manager, and it is someone that knows very well the quality of my work. This should be an advantage when raises and bonuses are given out.

I have been cranking out code building the new client portion of our client/server application. We are using Oracle Express Objects to build the client application that will be fed data by Oracle Express Server running on an RS6000.

The application is coming along nicely. I have been adding features that have been in our previous application, and adding as much new stuff as possible, without making the application harder to use. In fact, ease of use is my primary concern. Our last application got criticized for being too difficult for executives to use. True. But we were trying to build an application that executives and analysts could use.

This is were things fell apart. I have taken out some functionality were it only made the application useful to analysts. This should provide an easier application for executives. To account for the analysts needs for further data drilling, I have created a separate mode for them. This mode gives nearly full control of the data to an analyst, but with the caveat that they will need to be trained in the advanced features of the Oracle software itself.

Building Software Distributions

Long time readers may recall that we have gone through troubled times with building software distributions (loads). Well, it that time again, and this time we have a completely new set of problems. If you like technical problems, grab a cup of coffee and read this:

We originally built loads using WinInstall. We used version 5.10 Build 15. It actually took some time to get and use Build 15, but it was used for our first production load.

Time passed and we needed to build a new load. By that time Seagate Software had come out with Build 17. However, I was having a problem getting Build 15 or 17 to correctly create icons in both Windows 95 or Windows NT. If I specified the icon to be in the All Users group for Windows NT I would get no icons at all for Windows 95. If I setup the icons to work correctly for Windows 95, Windows NT would get the icons for the user logged on during the installation. In our case that meant that SMSInstaller would get the icons, and users of the workstation would see nothing.

I called Seagate Software about the problem. They said they were a couple of days away from releasing Build 18, and it would fix the problem. I waited for Build 18. Guess what? Yep, it didn't fix the problem. I contacted Seagate Software again. This time I gave them examples of my procedures for creating the loads. They use the information I gave them to create Build 19. This time it worked. I felt proud because I directly helped them find and fix a problem, and then saw the results of that work in a production software application.

Now we had our second load in a production environment using Build 19 of WinInstall 5.10. But all was not good in distribution land. It turns out that there is a problem with WinInstall when different Build versions are used to send applications to a workstations. It has been a while, but the gist of it goes like this... if you send a load to a workstation using Build 15, and send a load to a workstation using Build 19, the second installation fails. In fact, WinInstall fails to install itself. This was a big problem for us, and required us to do many manual loads to workstations.

We decided to try Wise. The Enterprise edition of Wise had a capture utility that work very similar to WinInstall's. Basically you capture the environment, install your software, make any modifications, and re-capture the environment. The difference between these two is used to create the load. Both WinInstall and Wise do an excellent job of capturing the environment. You can modify each product's load through a GUI interface, or learn there languages to further fine tune the load.

Wise has better scripting, and we were able to use it to detect previous versions of our application on the client, and delete them before the new version is loaded. It also properly created the icons we needed. Another benefit to Wise as that it created a single executable. Unlike WinInstall that has a handful of files, plus copies of all our files for the load. Wise did not have to install itself, and there were never any conflicts.

Now we had one load that worked for all variations of installations. Windows 95 & NT, and new or upgraded workstations. However, all was not golden. We built the Wise load using Windows 95. As it turns out, the Oracle software installs different versions of CTL3D.DLL for Windows 95 and Windows NT. This caused about a 10% failure rate on Windows NT workstations that received the wrong DLL. Although it would be possible to rebuild the load and account for the right DLL, we decided to live with the problem. The problem got worse with Office 97. After our company standardized on Office 97, our failure rate increased to about 25% on Windows NT workstations.

Now to the latest load. We decided to build two loads to play it safe. My company standardized on WinInstall for all distributions. Which Build? 15. Yep, an old version with known bugs. I believe that Seagate Software is up to around Build 25, but I didn't bother to confirm that for this article. Since WinInstall was the supported product, we decided to go by-the-book and use it.

The software distribution team in my company built a package wizard for creating loads. This tool is actually very good, but not without flaws. You run the package wizard, answer a few screens of information, and then the wizard prints out a detailed list of instruction on using and modifying your load with WinInstall. At this point the package wizard launches WinInstall, leaving you with the detailed instructions to follow. WinInstall is then used to capture the environment before and after you load the workstation with the appropriate software.When you finish the instructions, the load is complete, including all necessary files neatly packaged on the LAN for the SMS Distribution Team to copy into the SMS system.

Sounds great in theory, and actually works great, except for two flaws. First is a Windows 95 problem, and then a Windows NT problem.

The package wizard does everything it says it does. It creates your package including creating all the log files and batch files to install and uninstall your software. You load will even copies the appropriate log files to the LAN for inventory, etc. A little Big Brother-ish, but I've grown used to that here.

So what are the flaws? You techies will like this. Let's start with Windows 95. The package wizard requires the DLL OLEAUT32.DLL. This DLL is installed with Windows 95, and Windows NT. The version of OLEAUT32 that the package wizard needs is newer than the one that installs with Windows 95. This seems easy enough. Just copy the DLL to the workstation used to create the load. That's exactly what I did. The problem came when we tried to push the load through SMS to a clean workstation. The application didn't work. It looked like it did, except it wouldn't connect to the RS6000 server.

We tried debugging the code, but it seemed to just skip over the code to connect. No errors, but also no connection. We could manually connect to the server just fine. But when we tried to let the briefing connect in code... Nothing.

I wondered if the Oracle software needed OLEAUT32. It did, and it also required a newer version than the one that comes with Windows 95. So we have a catch 22. The package wizard needs the newer version of OLEAUT32. If we install it ourselves, the Oracle installer sees it and doesn't try to install its version of OLEAUT32. The solution was to manually add the file to the WinInstall load. However, one of the things the Oracle Installer does is register DLLs. WinInstall captures this. Since we manually added the file after the capture non of the registration information is in the load. This creates a side effect that requires us to reboot the workstation before running the application. Something we didn't have to do before.

What about Windows NT? WinInstall, in its normal operation, checks to see if it is present on the workstation. If it does not find a copy of itself on the workstation it will install itself. The problem with this is that WinInstall (at least Build 15) fails to install itself when running as a service under Windows NT. SMS is the service that is running the WinInstall program. This means we have to make sure that WinInstall is already on the workstation before trying to push our load. Fortunately, they have accounted for this, but the SMS representative I was assigned didn't know about this, and we spent over a week trying to find out why the load didn't work. After getting a couple of other people involved we were told that virtually every workstation (except my totally clean workstations) has WinInstall on it. We just list a prerequisite to our load that WinInstall must already exist on the workstation. This will keep us covered from this type of failure in a production environment.

Next month I should be able to tell you how successful (or not) our loads are. Stay tuned.

Digital Camera

I borrowed a Kodak DC25 digital camera from a friend of mine. I used it to take a picture of a lithograph I purchased from the Warner Bros. store. The lithograph is a Superman print that was too cool to pass up. Judge for yourself.

Superman.gif (59829 bytes)

Mine is number 206 of 250. It just came out in the beginning of September, so you might still be able to get one. They go for $275. Mine is priceless, unless Jerry Sienfeld wants to give me $1 Million for it. For non-Superman fans (are there any?) the frames represent: 1) Faster than a speeding bullet. 2) Move powerful than a locomotive. 3) Able to leap tall building in a single bound. My wife saw it in the catalog and thought I might want it. This was without realizing what each image meant. When I told her, she practically handed me the phone to order it.

I also took a couple of pictures of my other car, a Ford Explorer. I have been wanting to add a picture of the Explorer to the Cars sections of this site for some time.

Overall the camera sucks. Don't think too badly about that. The DC25 is an older model (like any model more than a month), and is not up to the quality and capability of today's digital cameras. My friend is well aware of the limitations of his camera. He is thinking about getting a newer one. He bought the DC25 early in the digital camera movement, and paid the price of having a camera that was a neat toy that could take decent (at the time) snapshots to display on a computer.

If you are interested in a digital camera, be sure to take a couple of pictures, and see them on a computer, before buying one. If the pictures aren't acceptable, wait 6 months and they probably will. This technology is changing faster than Intel cranks out processors. But there is still a lot of improvement if you want to replace a real camera. Get a scanner instead, it's cheaper.

I do feel there are some people that should get a digital camera right now. If your business requires you to take lots of low quality pictures for use in publications, then you need a digital camera. The two areas I see with the greatest need is real estate, and car sales.

Real estate agents take pictures of houses all the time. Using a digital camera is a much easier way for them to get these pictures into a publication and on the web fast. Car dealers and classifieds need digital cameras for the same reason. To get the picture in flyers, ads, and on the web fast. The car dealer/classifieds need it more, because cars sell faster than houses, and the goal is to sell the cars even faster..

Windows 98

The computer I used to build my software distributions has been getting Windows 98 when it is not running Windows 95 or NT. Since I completed testing the loads I left Windows 98 on it. I plan on spending a little time playing with the Active Desktop and writing more about Windows 98 from a daily usage standpoint, and cover the Active Desktop. Stay tuned.

Next month I will show you a picture of my compressed workstation with my three computers. I told you about them last month, but I will break it down again next month with a picture from the digital camera.

One last note: We are moving again. I know, they just reconfigured (compressed) our workstations. Well they are doing it again, except we are moving to another section of the building. Next month I will tell you about the move and tell you how many times I have moved since being with the company. Anyone want to guess how many times I have moved. Here are two clues... 1) I have been here a little more than 4 years, and 2) I have moved more than 4 times. Send guesses here. The person that guesses correctly will win the distinction of being mention in this column next month.

Good Luck!