Journalism should not be “objective.”

Posted on March 27th, 2007 by Chris.
Categories: Chris, Philosophy, Politics.

1) Objectivity is an illusion. I wrote a ridiculous entry on this the other day, but the point is that, simply by moving from an event to writing or videotaping the event, there is an ever present and strong cast that a reporter’s own perception makes on the event.

2) As a result of the societal illusion of objectivity, people can be fooled into believing that news is objective, thus causing them to think in the way the reporter thinks. But much worse than that, people may assume this way of thinking is objective.

Humans have opinions. Trying to judge the world critically and objectively is good. Pretending that one can throw away their biases when doing so for others is dishonesty.

0 comments.

Vista Preview Handlers

Posted on March 26th, 2007 by Tim.
Categories: Links, Tim.

Vista has a new API for writing “Preview Handlers”, which let you write a component to preview a custom file type in Outlook and Explorer. This is great for previewing files in folders and email attachments. I came across two really great preview handlers today for PDF files and code files (like C# and SQL files).

0 comments.

The GPL Virus

Posted on March 22nd, 2007 by Tim.
Categories: Politics, Tim.

The “open source war” is something that I frequently comment on, and as time goes on, I continually grow to understand the implications of this war, and the motivations of those involved. The war is often characterized as a war between the hacker champions of open source software and the draconian closed source overlords. In reality, this is not a war of open vs. closed at all.

Logically, there are three positions you can have on open source and closed source software. If you have an opinion on the issue at all, it must be that 1) All software should be open, 2) Some software should be open, and some should be closed, or 3) All software should be closed. However, I have never met a programmer who believes that all software should be closed. Even at Microsoft, the supposed bastion of closed-source software, the developers regularly release open source code, in the form of documentation, utilities, samples, and a multitude of projects on codeplex. So in reality, this is a war between the belief that all software should be open source, and the belief that some software should be open source.

The belief that all software should be open source is championed by Richard M Stallman. He asserts that proprietary closed-source software is unethical and immoral, and this sentiment is reflected in the terms of the GPL. Specifically, the GPL specifies that all derivative works must also be released under the GPL. This means that if I release any software that is based on GPL software, I must also release my software under a GPL compatible license. The GPL spreads to every work that it touches, irrevocably and irreversibly. Sound familiar? That’s because my description could just have easily been that of a virus. The GPL is a virus that attempts to enforce its view of the world on everyone it touches. When I worked for IBM (one of those supposed champions of open source), we were not even allowed to look at GPL code for fear of our own code becoming tainted.

Is software really free if I can’t even look at it for fear of legal repercussions? Stallmanites would likely argue that IBM is morally obligated to release their software under an open source license anyway, so why is it such a problem? The problem is that without an economic incentive, the software would never get developed, and the only business model that has been shown to be viable with open source software is the “support model.” Under this model, companies release their software for essentially no charge, but then charge their customers for support contracts. Unfortunately, this business model is completely unviable for a huge range of software industries. As an easy example, look at the video game industry. What gamer would pay for a support contract? And there are plenty of other examples where the support model obviously doesn’t work, especially in the domain of consumer oriented software.

Anyone who thinks I’m an “open-source hater” should check out my website; all of my code is released under a public domain license (the only truly Free license). But I need to work for a living, which is why I work for Microsoft. I have a feeling that most people are in the same boat as me. We need to work for a living, and companies need to make money to survive and keep paying us. Not all of us have the ability to support ourselves from speakers’ fees and prize money. So while we contribute where we can to support the community, we still plug away at our day jobs. Stop disrespecting us Stallman.

0 comments.

Blocking Queues in .Net

Posted on March 19th, 2007 by Tim.
Categories: General/Misc..

Multithreaded programming is hard. Any time you try to share data between threads, you risk data consistency problems, and using manual locks on your data can introduce deadlock issues. An easy way to sidestep these problems is by using message passing. This style of multithreading isn’t directly supported by the .Net framework, but can easily be implemented by creating a blocking queue. An easy implementation of a blocking queue can be seen here. Threads using only data passed in from a message queue can easily be written without race conditions or deadlock.

0 comments.