Skip to main content


Showing posts from June, 2007

Microsoft patent (un)happiness

Microsoft is out to make money. As are most businesses. Money is required for the basic essentials of life and I personally believe Open Source cuts into that. Until food, clean water, shelter, and clothing are free for everyone, Open Source is a great idea in principle but a bad idea in practice. The only thing you can do to make money off of Open Source is to turn it into SaaS...but how long can that model _really_ hold up? Making Linux and Linux-based products easier and easier to install (e.g. Ubuntu, OpenOffice) makes it more available to the masses and IT folk to do it themselves but if a person can't eat, drink, sleep, and they can't afford clothes (naked?) it worth it?

I don't have the answer to the question. Most programmers don't think about what effect their software will have on other people. Will developing for Open Source eventually cause all software developers everywhere to eventually lose t…

How to get squish just like grape

When the other shoe drops... is going to hurt. A lot.

So this guy wrote a pretty popular add-in for Visual Studio .NET called TestDriven.NET. I've actually heard about this add-in prior to the whole mess he has currently got himself into so it is definitely popular.

Summary of how it has gone down thus far:

1) Developer creates add-in for VS.NET via COM because a VSIP license is expensive. Nothing in the EULA explicitly prohibits it.
2) People like the add-in and it becomes popular.
3) Microsoft gives him MVP status and then discovers the add-in works for VS.NET Express and asks author to remove support for Express.
4) Author refuses.
5) MVP status is revoked.
6) Author adds support for VS.NET "Orcas" Express.
7) Microsoft legal makes its move.

Frankly, VS is Microsoft's intellectual property, not the developer's. However, there are two parties at fault here:

1) Microsoft is at fault…

Why Windows Error Reporting (WER) does not work

If you are reading this, you are probably coming from the CubicleSoft website to learn more about Windows Error Reporting. This blog entry will thus be a little more professional as a result.

Windows Error Reporting, or WER for short, is a set of technologies Microsoft put together for Windows XP and expanded upon for Windows Vista:

To summarize the Wikipedia article, WER gathers error reports in a central location (Microsoft servers) and developers of software then can log into the system and retrieve those error reports and thus fix bugs. End-users of Windows see something like this when the application crashes:

The user clicks the "Send Error Report" and the bugs get fixed.

The official website of Windows Error Reporting (WER):
All that sounds good in writing until developers start reading the "fine print" on what is required. By default, applications are not WER enabled. That means the…

And out of the blue...a job offer...

Out of the blue I received today in my in-box (just now checking my e-mail - yes I'm still running on empty in terms of sleep) a job offer from Google. Well, not an offer per se, but somehow, somewhere I made a significant impression.

The amazing thing is that I haven't sent my resume anywhere. In fact, it is sorely out of date - been busy with the whole CubicleSoft thing. A Google Internet recruiter came to me. Could have been the article I just put up on CodeProject, but who knows? (Maybe I'm more important than I think I am...don't let that go to my head now :P ).

I'm not going to do anything about it today. I'm too tired. And likely to royally mess up something I'd be smacking my head against a brick wall over for the next 10 years. Best to get some sleep first before doing or saying anything I'll regret. Amazingly enough, I'm still pretty lucid.

UAC: The Definitive Guide

I'm operating on zero sleep in the last 24 hours as I write this. So I'm going to keep this short. I just finished publishing a new article on on Vista UAC. I call it the definitive guide because it combines every last bit of knowledge I've got on Vista UAC elevation, provides a really cool package called Elevate, and, well, it is everything a software developer needs to know about UAC and its quirks and workarounds...without having to spend weeks on hunting down the information:

Plus it is by an author of a book called Safe C++ Design Principles. Oh wait. That's me. I must be tired.

While you are reading the above article, be sure to listen to:

Solving pesky LNK2005 errors...

For those who read this blog and aren't technically inclined or simply don't use Microsoft Visual Studio (e.g. you use a different compiler suite), this entry isn't for you.

One of most annoying things to run into in Visual C++ are linker errors. They are obtuse, poorly documented, and double-clicking them doesn't take you to the source code (or the part of the object file) where the problem is occurring. One of the most confounding error messages is the LNK2005 error message. Usually something like this shows up:

nafxcwd.lib(afxmem.obj) : error LNK2005 ...something about operator new/delete goes here...

If you search Google, a Microsoft Knowledgebase (KB) article pops up (KB148652):

A lot of people run into LNK2005 errors, find the above article, try out what it says, and discover the "solution" makes the problem worse, not better. That is the only KB article I've ever seen that provides an incorrect solution for a probl…