Archive for February, 2008

How to scare away customers

Monday, February 11th, 2008

Hello,

initially, I wanted to write the fourth posting in a series of posts about the “Current state of modeling”, a focal point on software modeling in the German Computerzeitung.

The fourth article was written by Chris Henn from E2E. It was quickly obvious that this article also is more or less an advertisement of a commercial product. I don’t think that’s a problem as long as the article still provides some value, even if it is just to learn something about an interesting product in the area of software modeling. Unfortunately, the article seemed a bit shallow to me and did not even give me a rudimentary understanding of how this product works. I then visited their website in the hope to find some white papers or similar resources that illustrate how their product works. I found only annoying marketing blurb and the section “DEMOS & DOWNLOADS” which seemed just what I was looking for. But when I clicked on “DEMOS & DOWNLOADS” I was asked for my contact details. Personally, I think that I should be able to collect information about a product without giving away personal data. Therefore, I did no longer try to learn and blog about E2Es products. I really don’t get those companies that in their greed for “leads” abstain from reaching the highest possible number of visitors and to provide some highly relevant content for the search machines. Maybe they fear that someone would download all their demos and other resources and create a competing product based on this information (but if I wanted to I could easily do this with faked information, so what?).

Best regards,
Andreas

Clever blog comment spam

Monday, February 4th, 2008

Hello,

comment spam in blogs is a real problem but I use Akismet and it works amazingly good.

But occasionally even Akismet misses a spam comment. Here is one which almost made me admire the unknown spam bot author:

“Hi…I found your site via Yahoo! when i was searching for models modeling, and this post regarding Oclarity 1.8.4 released really sounds very interesting to me.. Thanks.”

They mentioned the theme of my blog (”models modeling”, although I assume it was meant in a different way…) and they did not even add a single URL to the comment body. The only reference to the site they want you to visit was in the “URL” field of the comment.

I assume that Akismet will quickly learn that the used URL belongs to a spam comment and that such a comment will be correctly flagged as spam in the future.

Best regards,
Andreas

Version information in managed C++ assemblies in Visual Studio

Sunday, February 3rd, 2008

Hello,

in a newly created managed C++ project a file named AssemblyInfo.cpp is added to the project automatically by Visual Studio. The file contains the same information than the according file in C# projects but in contrast to the C# assemblies this information is not available in the Windows explorer and all other tools that expect the version information in the traditional form (as a resource in the dll). For example the setup program we use provides the capability to overwrite a DLL during installation only if the installed DLL is of lower version than the DLL contained in the setup program. But for this to work it needs to retrieve the version information from both DLLs and it fails to do so for a standard managed C++ assembly.

The reason is that the information contained in AssemblyInfo.cpp is not automatically added as a resource to the dll (but it is for C# projects). Here  are more details.

The bottom line is that you must explicitly add a resource of type “Version” to your managed C++ project to have version information in the traditional form. The information in AssemblyInfo.cpp is used only by .NETs runtime system.

The hard part however, is to synchronize the information contained in AssemblyInfo.cpp and the resource file. There is a Visual Studio AddIn that claims to support that, but I did not try it. We use a script to build our setup-programs and this script updates version information, generates configuration files, rebuilds all affected solutions and finally invokes the installer build program. I think we will add the update of the resource file from the AssemblyInfo.cpp somewhere in this tool chain.

Best regards,
Andreas