Archive for June, 2005

In Defense of Microsoft (aka Standing up for the little guy)

I was originally trying to write a response to Alex Bosworth’s post about Microsoft and standards,
but I realized that maybe it deserved a post of its own. 
Especially because you can’t just leave a comment on his blog, you have
to sign up for a forum account and post a comment to the forum thread
that matches the blog post, which is rather annoying.

I have to take issue with some of Alex’s points, I will reference them from his post.

1. Ajax - Just because ajax didn’t take off when ms first developed
it doesn’t mean anything.  There was nothing stopping the other
browsers from implementing a similar interface.  I don’t
understand what this has to do with standards; they decided to
implement a feature in a browser, so they went ahead and implemented
it.  Yes, it used ActiveX which I don’t really care for, but its their browser, let them live and die by their decisions.

2. .NET - You mention that this only runs on windows, however you reference Mono
later in your post.  I have copied an asp.net application from a
windows box to a linux box and had it run in xsp with no problems. And
I question your assertion that “no one wants to run Windows
servers.”  You know on a test with true/false questions the
easiest way to tell if a statement is false is to look for the
words “always”, “every”, “never”, “everybody”, etc.  I
think Alex may have a slanted perspective on this, I believe there
are plenty of people who find a windows server easier to deal with.

3. Office XML - I’m at a loss as to how a non-GPL xml format makes
the office formats any less open?  As long as they release the
schemas they use (I’m assuming they will), then thats as open as I care
about.  Office is already the dominant business software and with
better xml support I believe they will provide a better integration
opportunity.

Alex, feel free to comment, even anonymously.

Synchronizing Windows Installer Custom Events

I was working on an installer today at
work.  Its an installer for a windows service, so after I copied
some files I wanted to run a batch file that would register the
service.  So the install was working fine, I added the batch file
as a custom action on the install event, I would copy the necessary
files, run the batch file, and I could fire the service up.  Now,
I also wanted to be able to use the msi file to uninstall the service
as well.  So I needed to run another batch file that would
uninstall the windows service before the files were removed.  No
problem,  I thought, I can just add another custom action to the
uninstall event that would run the appropriate batch file. So I
set it up, installed the service and immediately tried to uninstall
it.  I saw the dos prompt come up, but I got a
FileNotFoundException when I tried to uninstall the service. 
It seems the .exe was already gone by the time I tried to uninstall it.
I was perplexed, why would they schedule my custom action to run AFTER
the installer had already removed the files?  So I messed around
with it a litle more, but I couldn’t figure it out.  Then a
thought came to me, here was the code I was using to execute the batch
file for the install and uninstall:

System.Diagnostics.Process.Start(batchFilePath);

What this does is start a new process using the
path provided.  After the new process starts, the code continues
on executing without waiting for the new process to complete
This is fine for the install because by the time I’m running my batch
file theres nothing left for the installer to do, however, for the
uninstall the installer was starting my batch file, and then continuing
the uninstall process and there was a race condition between my batch
file and the uninstaller to get to the .exe first. So I needed to
modify my code slightly to make the uninstall work properly, I needed
to make the uninstaller wait for my batch file to finish its task.

using System.Diagnostics;
Process p = Process.Start(batchFilePath);
p.WaitForExit();

This code will make the current process wait
until the process p has exited, thus allowing my batch file to
uninstall the windows service before it removed the .exe from my disk.

Just a little tip for those of you running into a similar problem, it was bugging me for about an hour this evening [:)]

Basic MSDE 2000 Install parameters

This is more for personal reference than anything, but it seems that everytime I install the MSDE I need to go and look up which command line switches I have to use, so I’m putting here to help anyone else out, as well as myself.

This is a very basic configuration that installs the MSDE on the local machine, with an admin password, mixed security mode, and allows network access.

setup.exe SAPWD=myPassword SECURITYMODE=SQL DISABLENETWORKPROTOCOLS=0

The network access part is the one I always forget………….

Off topic, but interesting

I Don’t Like the GPL

The GPL is annoying.  I understand the people that use this license for their software want to ensure that nobody makes a profit from the work that they have freely provided, I understand that by using the GPL you ensure the progression of open source software.  What I don’t like about it is that it can handcuff other open source developers who want to use some GPL’ed code in their project.  If I’m working on an open source project and I want anyone to be able to use it - for profit or not - I can’t use any GPL code.  By using any GPL licensed code, the developer is required to license all of their code using the GPL as well. 

So now I’ve got to decide whether or not to use some GPL code, which means I’m not choosing the code based on its quality, but rather the tradeoff between quality and a restrictive license.  Do I want to use this great, free, open source code that will force me into a license, or this other, not-quite-as-good code that gives me the freedom to license my code however I want.  I don’t see the winner in this situation.  I’m being hampered by the license, the guy who wrote the GPL code isn’t making money anyways, and now his code is potentially unusable by some audiences because of the license, and the end users potentially won’t get a quality product as quickly.

If you are not trying to make money, I would think your primary goal is to get recognition for some great code you wrote, and the way to get that recognition is to get as many people using it as possible.  It almost seems selfish to forbid others from making money by using your code in their product (not simply repackaging your code, but using it), wouldn’t you rather you maximize the number of people who found your code useful?  By licensing your code under the GPL you force people to lose focus on making great software, instead concerning them with the politics of “free” software.

You want the truth?

This “A Few Good Men” parody from Rico Mariani is absolutely hilarious!  I love that the conversation is pretty much right on, with the context changed just slightly :-)

SMS RSS Alerts

For all you geeks who need instant notification of new posts in your
blogroll, now you can get alerts sent to your cell phone!  This is
pretty sweet (not free however).

Beating a dead horse with Office 12 and XML

I know by now you’ve heard that Office 12’s default file format will be XML

This doesn’t seem too radical to me, as Office 2003 already has some XML support, but it sounds like they are going to make it better this time around.  I think the most exciting part about all of this is that its going to make it so much easier to extend the Office functionality using .NET.  I’m assuming they will release the .xsd files that correspond to the Office xml formats, meaning you can use xsd.exe to make XmlSerializer friendly object representations of Office documents.  I’m really curious to see the extent of the XML file format in Outlook.  If all of my emails and calendar items are stored as XML, it seems like it would be really easy to make some cool Outlook AddIns (nothing against the current outlook api). 

It’ll be interesting to see some of the cool new Office applications that people come up with when Office 12 comes out.

Bosworth on AJAX

Adam Bosworth has weighed in on AJAX.  I’ve been looking forward to this for a few reasons:

  • Adam’s blog is what introduced me to blogging, I didn’t realize how prevalent blogging was until I read his.
  • He had a huge influence on developing DHTML and IE when he worked at Microsoft, so he has intimate knowledge of the web and its applications.
  • He now works at Google who has defintely seen the uses for ajax, evidenced by GMail, Google Maps, Google Suggest, etc.
  • He doesn’t blog very often. When I started reading him, he would post something maybe a few times a month, but its been months since he last posted.  I wish he would post more, I find him to be one of the more interesting reads in my blogroll.

Adam has the ability to take an extremely high level view of things, and his posts are very thoughtful and insightful.  I highly recommend subscribing.