Ya, sure, ya betcha. I spent the past week in the grid-like city of Fargo, North Dakota, working with other Engineers on starting up the Lavelle Treating Plant. I’m now an expert on installing Avery Weigh-Tronix scales. The weather was actually much nicer than I had anticipated, though I failed to notice as I was mostly engaged in a search for buried money.
Monthly Archives: January 2006
Microsoft PowerPoint Package for CD
One of the annoyances with Microsoft PowerPoint is that you have to test your presentations well in advance. If the target computer doesn’t have the same fonts as your presentation, for example, things may go wrong. If the target computer doesn’t have the same version of PowerPoint as your source presentation, even more things may go wrong. Sometimes, these discrepancies are easy to fix on the fly. At other times, they are not.

I recently discovered the Package for CD menu option in Microsoft PowerPoint 2003, which tackles this very issue nicely. Package for CD will allow you to include all objects associated with your presentation, as well as a PowerPoint viewer, so that you can display presentations even if the target computer does not have PowerPoint installed. In addition to CD, Package for CD can package files for other removable devices, such as USB memory sticks, by selecting the Copy to Folder button. Finally, be sure to check Embedded TrueType fonts, found under Options, to ensure that your fonts are included in the distribution.
IBM is Microsoft’s Greatest Threat
Recently, Microsoft declared that IBM, and not Google, is their greatest threat:
“The biggest company in the computer industry by far is IBM. They have four times the employees that I have, way more revenues than I have. IBM has always been our biggest competitor. The press just doesn’t like to write about IBM,” said Bill Gates.
At first, I was a little skeptical of this claim, but after some careful consideration, I realize that Bill Gates is probably telling the truth. After all, you very often hear about Google rivaling Microsoft in the search engine field. But when put in perspective, most people fail to recognize that Google is competing against only a tiny fraction of Microsoft. While the large majority of Google employees are commited to search engine technology, Microsoft operates in many different markets, and MSN is only one of these small arenas. Thus, Google is not as big of a threat as people think it is compared to Microsoft’s total industry.
If IBM continues to flex its muscle with open source software, however, then it could have a very negative affect on Microsoft. And given IBM’s recent use of free and open source software, IBM might just be their biggest competitor. Let’s look at it more closely.
While Microsoft is a proprietary software vendor, IBM is a hardware and services company. From a services angle, the best route to maximize profit is to go with a non-proprietary infrastructure, to avoid getting bogged down with licensing costs, while still getting maximum value for your consulting services. And if you’re hired to consult for someone, you actually have to send people there. The key part of the equation is people — people can only be at one place, or do one thing at a time. So if you have a new support contract, you have to hire additional support staff. If you get a new maintenance contract, you have to hire additional maintainers. IBM is selling labor to companies. If they sell additional products, they have to hire additional consultants, and the cost is almost directly proportional.
Microsoft, on the other hand, has made a conscious decision to stay out of the support and consulting business for its software. Instead, they rely on third-party Microsoft Partners to handle these issues. Microsoft could have become like IBM and built its own service and support arm, but they cannot easily do so without alienating partners that it needs very badly.
Despite the fact that IBM is a giant like Microsoft, they have shown themselves to be resiliant and have weathered a lot of storms:
- They are one of the only companies still doing pure scientific and technology research, especially in semiconductors. The only other giant research operations outside of universities are IBM, HP, and AT&T Labs, as far as I know.
- They killed their low-margin PC business. For better or worse, it definitely improved their profit margin. IBM is diverse, but they aren’t trying to monopolize every segment of the market.
- IBM has worked with, and not against, open source technologies. No matter how the whole OSS movement shakes out after the dust settles, IBM is ideally positioned. Almost all their proprietary products can run on both closed and open source systems.
Microsoft, in sharp contrast, has changed their business model very little over time. If Microsoft is successful, then the new Microsoft will look a lot more like the IBM of today. If Microsoft is unsuccessful, then they will probably die.
i18n in Visual Basic for Applications
While Visual Basic for Applications has no implicit support for internationalization, the task can be accomplished through the use of a Visual Basic satellite DLL, from MSDN article Q188659. While this approach works, it requires the use of separate DLLs for each supported language. I also don’t like this approach because it requires the programmer to manually align the constants for their string tables. More importantly, since VB already supports multiple languages in a single resource, this seems like an unnecessary complication.
One variation is an approach that uses multiple string tables within a single resource file using an ActiveX DLL. The LoadResString function is then utilized to automatically load the locale identifier (LCID) from the operating system:
Public Enum StringIDs
resCaption = 101
resCmdYes = 102
End Enum
Caption = LoadResString(resCaption)
The disadvantage of this technique, of course, is that it does not allow the user to select the program language explicitly. This may or may not be the desired behavior, depending on the application.
Other techniques for adding internationalization support include using the registry, a flat text-file, a SQL database, or XML. I find all of these techniques to be kludgy with respect to the Microsoft provided resource files. For information on these techniques, see the VB Helper tutorial on Internationalization.
Unattended Setup for Adobe Acrobat Reader 7
When downloading Adobe Reader over the Internet, the delivered software is packaged using the FEAD (Fast Electronic Application Distribution) Optimizer. This article tells you how to convert the FEAD package into a customized, unattended setup using free software from Adobe. These instructions also work on the full version of Adobe Acrobat, with some minor modifications in the path.
The first obstacle is to obtain the InstallShield MSI installation files from within the FEAD package. Paradoxically, one must first install the Adobe Reader program to get access to these. After installation, the necessary files can be found under the path:
%PROGRAMFILES%\Adobe\Acrobat 7.0\Setup Files\RdrBig705\ENU
Note: When downloading the FEAD package, be sure to uncheck the Adobe Yahoo! Toolbar and the Adobe Photoshop Album Starter Edition extra downloads.
From this point, one can use standard MSI command-line switches and Transform Files to create a standard, unattended install. But I find the process of configuring an MSI to be tedious and unnecessarily complicated when performed by hand. Fortunately, Adobe provides the InstallShield Tuner for Adobe Acrobat, a graphical interface to Acrobat’s Windows Installer that enables IT administrators to make modifications to the installer via a Transform File.
The Tuner enables you to set a variety of options, including the default install path, supressing the EULA, and setting security policy. After saving your changes, an MST transform file will be created. However, the Adobe installer will not utilitize this transform file by default. To do so, you must repackage the setup and create a new installer package by selecting Packaging Wizard from the Project menu.
Under Windows Installer Command Line Arguments, pass /qb-! for a quiet, basic installer that disables the Cancel button during installation. All other options should be self-explanatory. When the Packaging Wizard is complete, your unattended installation should be available under the Network Location specified in the wizard.
While there are other ways to create unattended installers, I find this technique to be the “most official” for the Adobe Acrobat Reader product.
