and “Smoke”

I’ve had a lot of people asking me lately what has become of the site and more importantly, about Smoke – my Windows Installer validation tool.

As enthusiastic as I was about building a community site for installation developers, the idea just didn’t take off on it’s own, and I just don’t have the time to invest in it right now.  The domain expired a while back and I just never bothered to renew it.  I just paid the renewal fee a few minutes ago, so it should be back online in a day or two, but please don’t expect any updates or new content anytime soon.

In the meantime, you also fine Smoke

In Memory of Zach

Last Wedenesday, Amanda and I got the phone call that everyone dreads.  The details were vague and sketchy, but in a shaky and uncertain voice, my Mother-In-Law informed us that my Brother-In-Law Zach had been in an accident and she needed to go with the police to identify his body.

Zach and two of his friends, Chance and Andy were speeding down a back road in Loganville when Zach lost control of the car and struck a tree.  All three boys were killed instantly.  The car was destroyed to the point that they were unable to determine the make and model of the car.

Friends and family converged on Loganville from all around the country over the next few days while the family fielded a non-stop stream of phone calls and visitors.  The outpouring of support and love for our entire family is something I still cannot begin to describe.

All three of my kids loved Zach dearly and saw him almost daily.  Breaking the news to them and helping them through the last 5 days has been really tough.  Each accepted it in their own way, but the most heart-breaking was my youngest daughter Gabi who kept saying “It’s ok.  We won’t forget Uncle Zach because we have pictures of him.“  She tried so hard to console everyone and try to make them feel better.  It was really touching…

Zach’s funeral service was held on Saturday to a crowd of family and friends so large that some people could not even get in to the chapel and had to listen from the hallways outside.  While Garth Brooks’ “The Dance” played, the overwhelming sound of sniffling and sobbing said more than anyone’s words possibly could have.  After some touching words from his friends, I took the opportunity to speak about my first memories of Zach, walking hand-in-hand with him through Opryland when he was just a little kid.  I spoke about how it was clear to me that while he had been robbed of so many things life has to offer it was clear to me that the one thing there was no shortage of in his life was the love of an enormous number of friends and family.  I thanked everyone on behalf of the family for filling his short life with so much love.

Rest In Peace Zach, Andy and Chance & Dispute Resolution

If you’ve been following along, I am trying to recover some money that I paid for web design work that I ultimately learned had been stolen from by Shayna McCullough under the name of a non-existent company called Iconic Media.

Early on in the process, I went to which is where the transaction took place, hoping that they had some policies in place to protect me under these circumstances.  I search ed all over the place and couldn’t really find anything, so I eventually ended up scouring their terms of service.  I was disappointed to see how vigorously they position themselves as a provider of payment services.  I guess I understand this in a way since they really don’t have any control over who does what when it comes to actually executing these projects, but it does seem that a basic tenant of their service is to provide some insulation and protection should thing go bad.

I did not get guru involved in this early enough, I guess because I just didn’t think they would offer any help.  I was wrong to have made that assumption, and while this is not yet resolved, I think their actions thus far are commendable and I’d like to thank them for the effort they have already expended.

Within a couple of hours of filing my complaint on their website, I received a fairly lengthy reply that was organized and well thought out.  This wasn’t the kind of template based reply you might expect, but a couple hundred words that dealt specifically with this case and the people involved.  The message described exactly what they would do to try to resolve the matter, and what my options were if they were not successful.  They asked for more information, which I supplied to them, and they followed up again to let me know exactly what they were planning to do.

I have not heard what the outcome of those efforts were yet, but I am really impressed by the sincerity with which they are pursuing this.  I still don’t know if I’ll hire anyone off again or not, but I do feel a lot better knowing that they do care.

I think the lesson here is that it is always better to try to get someone to help you than to just conclude based on the their legal mumbo jumbo that you are all alone in these kinds of matters.

To the folks at guru, I thank you for your efforts, whatever the outcome may be!

Business Fraud Alert!

A few months agao, I contracted a “company” that goes by the name “Iconic Media” through to design a new site for an eCommerce project of mine which was to be launched at  A woman named Shayna McCollough was the one and only person from this outfit with whom I have dealt with.  After paying her $2000.00 and investing significant amounts of time in waiting for a design, she finally delivered what I initially believed to be a decent design.  After having a few peers review the design, it was brought to my attention that the design was an exact rip-off of  When approached about this flagrant theft, Ms. McCollough mysteriously disappeared and has not been heard from since.

Please be aware that this work was contracted through which portrays itself as a safe intermediary between companies and contractors, yet has done absolutely nothing to help us resolve this situation.

At all costs, please avoid using this company and if you are so inclined, drop Ms. McCollough an email of better yet, a phone call and let her know what you think of her dishonest, if not criminal acts.  Here is all the info I have:

Shayna McCollough
Phone: (727) 507-0424
Fax: (310) 388-5747

A whois search turned this up:

   Iconic, Inc.

   468 N. Camden Drive, Suite 200
   Beverly Hills, California 90210
   United States

   Registered through: (
   Domain Name: ICONIC.CC
      Created on: 26-Oct-03
      Expires on: 26-Oct-05
      Last Updated on: 19-Oct-04

   Administrative Contact:
      Manager, Domain
      Iconic, Inc.
      468 N. Camden Drive, Suite 200
      Beverly Hills, California 90210
      United States
      8882888135      Fax — 8882888135
   Technical Contact:
      Manager, Domain
      Iconic, Inc.
      468 N. Camden Drive, Suite 200
      Beverly Hills, California 90210
      United States
      8882888135      Fax — 8882888135

   Domain servers in listed order:


A google search on that address revealed a plethora of businesses using the same address, which would seem to suggest that it is a mail drop of some sort.


A State of California Corporate Search turned this up:




Number: C2390033

Date Filed: 2/4/2002

Status: suspended

Jurisdiction: California






Lastly, if you are an attorney, know an attorney, or have contacts in law enforcement, please send their info on to me as I can use all the help I can get in working this out.



Here are some image links:

A snaphot of each site:

The Header of each site up close:

The footers:

Left Nav:

Lower portion of left nav:

Page Headers:

Also, you should know that the differences you do see between these designs is in every case, a result of my feedback to them during the process.  Of course at that time, I had no idea the design had been stolen from Creative…




Washing my hands…

So, after all that ruckus with Rob Mensching about COM Advertising from before Christmas, and my sincere gesture to clear the air, it seems that nothing is really resolved after all.

Just before I posted my very nice attempt at clearing the air, I put together a little sample that exactly duplicated the scenario Rob gave me under which COM Advertising had the alleged ‘bugs’ or ‘wonky’ behavior.  Of course, no matter how hard I tried, I could not break COM Advertising or even come close to reproducing the behavior Rob described.  It worked perfectly every time in every scenario I threw at it.  I wanted to clear the air between Rob and I, but wasn’t and never have been willing to concede that there was a bug there unless Rob could tell me what the bug was.  Of course he never did, so I very thoroughly documented my test rig and the scenarios I threw at it, and emailed it to him for him to comment on.  I told him I wanted to clear the air and would be posting an apology to that end, and asked that he either show me the alleged bug(s) or concede (publicly) that there are no bugs in COM Advertising.  It’s been almost three weeks now, and I’ve never heard from him again.  At first, I thought he was working like a mad-man trying to create some bizarre scenario in which it would break, but eventually I concluded that when faced with irrefutable evidence against his position, he just decides he’s too busy to back up his allegations.  This is not the first time, but actually the second time.  The first was over some bogus comments he made about using INSTALLDIR instead of TARGETDIR, but that’s a story for another day…

So, while I wish him and the WiX project well, I am done with him.  He lost my respect through this episode, and in my opinion is a poor reflection on Microsoft’s integrity.

I’ll be working on an update to
smoke sometime this week, then be posting the source code for anyone who is interested in using it.

Setting things right…

The last few days have been pretty interesting around the WiX Toolkit community, and I guess I’ve been the catalyst for most of the commotion.  A lot of folks have been following along as I publicly aired by feelings about some of Rob Mensching’s comments on COM Advertising,  but what you may not know is that Rob and I have also been exchanging some very lengthy emails offline.  In spite of what you may have seen publicly, our offline emails have been anything but a shouting match.  We both shared our feelings on a number of issues that we were both concerned about and I think we both benefited from the exchange by learning about each other and how to interact with the community.  I’m writing today to own up for my mistakes and set things right.

My comments through this whole thing have been motivated SOLELY by my passion for Windows Installer and deployment technology in general.  I have committed myself to this segment of software development and that commitment has been both a blessing and also an enormous curse for me personally.  The result of everything that I’ve been through is that sometimes I tackle things a bit too aggressively.  So, while I adamantly insist that both my intentions and arguments were honest and correct, I recognize now that my demeanor and mannerisms were easily perceived as being brash and abrasive.  For that, and that alone, I extend my sincere apologies to Rob, and to anyone else following along who may have felt insulted by my words.  I do see now that I might have been able to achieve my goal of making this an important issue without resorting to “shock” value to get people’s attention.

I’m happy to be putting this behind us, and look forward to working with Rob and everyone else in a much more productive (but less exciting) fashion in the future!

Oh – and by the way – I realize that the underlying issue of COM Advertising may still be a question in some of your minds, so I think you can expect to hear more on the topic from either Rob or myself very soon! 😉

Doh! – My Secret Agenda Revealed…

Ha! Ha!  Thanks for the laugh Justin!

Seriously now.  How anyone can come to the conclusion I have a secret agenda to promote some other product when I am in the process of contributing smoke, and fighting hard to keep features working with WiX Toolkit is a mystery to me, but I guess stranger things have happened…

For the Record:
I have NO AFFILIATION with any company anywhere.  I am NOT pimpin’ any commercial product, and frankly, even if someone wanted to pay me to evangelize their product, I don’t think they could afford me (but they are welcome to try!).  I’ve got big plans for the future and a great relationship with industry leaders like Wise and InstallShield.  I may do work for them from time to time, but the only agenda I am pushing is my own, and there is certainly nothing sinister about that…

COM Advertising Support in Windows Installer

Yesterday I mentioned some discussion on the WiX Toolkit mailing list about the use of COM Advertising support and the challenges that go along with it.  Rob Mensching argued that the tables which enable this functionality should be avoided due to some “strange behavior” that he has seen.  I pressed him for more information, pointing out that most of the 43 merge modules that you can get here and the MSXML, SOAP, FoxPro, and Crystal Reports Merge Modules all use this technique without any problems whatsoever.  Additionally, Office 2003 makes extensive use of this feature, so I really wanted to know what was driving Rob to make such a statement.

Rob followed up today with a vague reference to some bizarre scenario where if you install Office XP and the Speech Control Panel Applet in a particular order, a repair would occur the next time you launched the Speech Control Panel applet.  While I appreciate Rob’s follow-up, I am disappointed as it does nothing to explain what the specific problem was and why this scenario proves that COM Advertising is fatally flawed.  Based on what he said, it sounds like a one-time repair that is required to get Office and the Speech API in synch.  While having to dig for your Office CD is a bit of a bummer, it does not sound like that outrageous of a scenario to me.  For what it’s worth, my searches of the Knowledge Base did not turn up any results that seem to describe this problem.

We have to move on, so I wanted to post these as my final thoughts on this issue:

  • Rob is a Microsoft employee with strong ties to the Office and Windows Installer team.  If his assertions are correct, why didn’t the Windows Installer team deprecate the use of these tables in Windows Installer 3.0?  Why does Microsoft continue to advocate the use of these tables in the Windows Installer docs?  Why can’t he cite a specific technical problem that supports his position?  Why is there not a single Knowledge Base article that even mentions this problem?

  • WiX supports authoring <Class/>, <TypeLib/>, and <ProgId/> elements which should be built into the Class, TypeLib and ProgId tables respectively.  In spite of you specifically authoring these elements, WiX will ignore your intentions and dump the data into the registry table instead.  WTF?  I mean, come on.  If you want to make your own personal and unsubstantiated assertions that COM Advertising if fatally flawed, then fine.  That is your opinion, but why the hell would you make WiX ignore what the author obviously intended?  Wouldn’t it have been better to not even include (or remove) these elements?  At least then you would not be deceiving authors…

  • COM Advertising is a really important part of the application resiliency that Windows Installer delivers.  There are very few “entry points” that will cause Windows Installer to check the integrity of your application.  Shortcuts and file associations are the most common, but may apps don’t have those.  What about services?  What about Web Apps?  What about Web Services?  What about background apps that start with windows?  What about apps that are programmatically started by another app?  COM Advertising support is the ONLY entry point that Windows Installer can use to try and keep those apps in a properly installed and configured state.  Selling out and simply writing off this feature is a really bad idea at it’s face value alone, but doing that when you can’t even make a half-assed reasonable case for why you are doing it is – well – ridiculous…  If there is a problem, let’s identify and document it.  Let’s educate WiX authors on how to avoid that problem.  Let’s work with the Windows Installer team to get it fixed.  I know those guys, and I know if it’s broke, they’ll want to fix it.

  • Decisions like the one used in tallow’s implementation are self-defeating.  Basically the approach is to dump all of the COM registration data into the Registry table.  Unless by some stroke of luck, your install just happens to install the file to the exact same location as an existing version, the net result is that when your component is installed, it will overwrite previous data in the registry, making the COM subsystem use whatever version of the COM server you’ve installed, even if it is an OLDER version.  Given that Microsoft doesn’t let you dump shared components into System32 anymore, there is not a clear or consistent story around what to do with shared components.  Most people just dump them into their app folder or \bin folder.  Using tallow output, there is no legacy reference counting, no checking the registry to see if a newer version is currently installed elsewhere, no intelligence whatsoever…  If you are thinking that through this behavior, WiX is taking us right back to the DLL-hell we all have grown to hate, you are exactly right!

  • What exactly is the benefit of using tallow?  Why not just add the file and have it self-register?  I mean the only tangible benefit of tallow I can dream up is that if a rollback occurs, the registry data won’t be written (you can’t rollback a call to DllRegisterServer).  Anyone can dump a bunch of crap blindly into the registry table.  Isn’t the value of an installation tool to do the hard work for us?

In conclusion, Microsoft competitors are hard at work on intelligent application deployment and management solutions.  In many respects, their work is inspired by the powerful features of Windows Installer.  We, as developers and deployment advocates, owe it to the Windows Platform to do our part to make Windows Installer work the way it was intended.  To educate developers on how to properly use it.  To work with the Windows Installer team to improve and refine it.  Not to sell out on the vision cause it’s too much work or because you don’t understand it.

That is what I call fighting the good fight for setup!

I’m a pain in the WiX ;-)

I’m getting beat up a little bit on the WiX Toolkit mailing lists.  L  It seems that since I’ve been questioning some issues (here and here), and now Rob and Orion think I’m on a war-path.  They’ve got me all wrong.  I’ve given tons of time to helping other people solve their problems and it would be completely out of character for me to try to undermine everything I’ve done by being obnoxious for no reason.  I tend to write passionately and in a very “animated” sort of way.  I guess sometimes that comes off like a rant or something, but it’s not intended that way.

Anyway, this got me thinking about what it means to run or be a part of an open source project.

Pride has got to be a serious factor for Rob.  I mean, he wrote this thing all by himself and obviously poured his heart and soul into it.  Freely and openly sharing something that cost you so much time and energy is hard enough with out someone like me coming along and being critical of your implementation decisions.  I know how hard it is to make those critical decisions along the way.  ActiveInstall was nearly a half-million lines of code and I can’t begin to count the number of nights I spent staring at the ceiling while trying to make key decisions.  At the end of the day, you just have to make the best decisions you can, and be prepared to deal with the fallout if you are wrong.  And sometimes you are wrong.  I made mistakes, and I suspect Rob has too.

I hope that Rob will come to think of it more like this:

What he did all by himself is excellent!  It’s a stellar piece of work for sure.  But now, by opening it up for all to see and scrutinize, it can get even better.  There’s three ways that can happen:

  1. Bug identification and fixes through normal usage

  2. Enhancement or contributions from the community (think smoke)

  3. Revision/Refactoring driven by public scrutiny

It’s number three that is the most intriguing to me today.  The first two are no brainers, but the third is less obvious, yet much more profound in my opinion.  It may be painful at first to hear criticism or to have someone challenge what you say, or the decisions you made, but isn’t that the true (or hidden) power of open-source?  In my opinion, the real value is not that people can find bugs in your source code, or that like minded people will contribute new code to it, it is that the best and brightest minds around can join in and question everything!  The host should encourage discussion and yes – even debates over features and implementation decisions.  This only serves to either improve the product or validate the decisions that have already been made.

While I really don’t want to be viewed as a trouble-maker, I’m gonna keep on doing what I’ve been doing.  Why?  Because I care.  Because I like WiX and want to see it grow and mature.  Because I want to be a part of it’s success. 

‘Nuff said!