At work, a coworker of mine spent a VERY long time building exstensive network graphs using Microsoft Visio. These graphs were great and I was tasked with putting them on my Linux/Apache webserver. This is a very simple process I've done before with Visio drawings (before Microsoft purchased Visio): I create a directory and scp the files to the webserver. However, this time there were some serious problems. Not all features work under Netscape and no images showed up! So I'm presented with the following information:

a.) Microsoft Visio only works properly with IE (creates two sets of html files, one for netscape and one for IE that uses proprietary vml image encoding)
b.) Viewing the HTML files on a local windows drive works fine
c.) Viewing the HTML over my Linux/Apache webserver works, but no images show up

The first thing the maker of these maps suggests is building an Microsoft IIS webserver, and it would have worked! However, I'm not going to let Microsoft thrust its way into my network without a good fight, so I explore why these images aren't showing up. After a good amount of arguing and exploring, I find that when Visio creates its proprietary image files, it does so with an extension of '.EMZ' while in the HTML it references those with '.emz' ... Windows file systems (including IIS) are not case-sensitive while *nix is. I fixed the problem with the following script:

#!/bin/bash
x=1
max=`echo "$1 + 1" | bc`
while [ "$x" -lt $max ]
do
        ln -s PROJECT_All_vml_$x.EMZ PROJECT_All_vml_$x.emz
        x=`echo "$x + 1" | bc`
done
echo "Be sure to thank Microsoft for this!"

which takes one argument (the maximum number of emz files in the directory) and creates symbolic links from the lower case extension to the upper case extension.

So what Microsoft has done here has made this task a little less convenient. What they almost did here was make another user who thought that Windows webservers are better than their *nix counterparts because it worked seamlessly with their Visio drawings.

We all need to put up a good fight: not against Microsoft, but for the right solution.

We must not choose to let Microsoft choose for us