Top 5 Must-Have Tools Every Developer Should Download Now

PixelRuler // download // Free

Know the exact size and position of any element with this screen rulerPixel Ruler features horizontal and vertical orientation, dynamic mouse measurement tracking in pixels, cool design.

Snippet Compiler // download // Free

The Snippet Compiler is a small Windows®-based application that allows you to write, compile, and run code. This tool is useful if you have small pieces of code for which you don’t want to create an entire Visual Studio .NET project (along with all the files that come with it). To test this snippet, just press the play button (green triangle), and it will run in debug mode. The snippet will generate a console application popup, and Notepad will appear. When you close Notepad, the console application will close as well.

Regulator // download // Free + More Free Goodies

Regulator is the most recent addition to my top tools list. It is a full-featured tool that makes it easy to build and test regular expressions. There is a renewed interest in regular expressions because of the excellent support for them in the .NET Framework. Regular expressions are used to define patterns in strings based on characters, frequency, and character order. They are most commonly used as a means to validate user input or as a way to find a string of characters inside a larger string—for instance, when looking for a URL or e-mail address on a Web page.

CodeSmith // download // Trial

CodeSmith is a template-based code-generation tool that uses a syntax similar to ASP.NET to generate any type of code or text. Unlike many other code-generation tools, CodeSmith does not require you to subscribe to a particular application design or architecture. Using CodeSmith, you can generate anything from a simple, strongly typed collection to an entire application.

NUnit //  download //  Free

NUnit is an open source unit testing framework built for the .NET Framework. NUnit allows you to write tests in the language of your choice to test a specific function of your application. Unit tests are an excellent way to test the functionality of your code when you first write it, and also to provide a method for regression testing of your application. The NUnit application provides a framework for writing unit tests, as well as a graphical interface to run these tests and view the results.

Blog Post: How do I uninstall the Internet Explorer 9 beta?

Now that the Internet Explorer 9 beta is available for download, I’ve seen a lot of people asking the question: “If I install the beta and don’t like it, can I easily remove it?”

The answer is YES – removing the beta is easy. I’ve detailed the steps below. But I should also say that I’ve been using the beta since it was released, and I love it! Betas usually aren’t for everyone, but I think this one is rock solid. I’m encouraging all of my family and friends (even the non-techies out there) to install it. Internet Explorer 9 is faster, cleaner, and introduces some really cool new features to make my web browsing experience better than ever. So far my favorite features are support for HTML5, “tear away” tabs (cool!), and built-in recommendations for making your browser faster (IE9 tells you which browser add-ons you might want to consider disabling due to performance reasons).

So to be clear… I have no plans to uninstall the Internet Explorer 9 beta. But if you have reservations about installing the beta, rest assured that it’s easy to uninstall if you don’t like it.

The steps below show how to uninstall the Internet Explorer 9 beta using Windows 7. The exact steps may differ slightly on other versions of Windows.

To uninstall the Internet Explorer 9 beta, start by opening the Control Panel:

Next, click on “Uninstall a program”: (on other versions of Windows this might be called “Add/Remove Programs”)

This opens the “Programs and Features” dialog. This is where the uninstallation process is a bit different from the way you uninstall other programs. Since Internet Explorer 9 beta gets installed as an update, you need to click on “View installed updates”:

Finally, select “Windows Internet Explorer 9” from this list and click “Uninstall” at the top of the Programs and Features dialog and follow the prompts:

That’s it! So go ahead – install the beta. As you’ve seen, if you don’t like it, you can easily remove it (but secretly, I think you’ll like it).

Brian Keller, co-author of Professional ALM with Visual Studio 2010

Merging Season

Area 51 is filling up with thousands of ideas for new Stack Exchange sites, and a pretty clear pattern has started to worry us: too many ridiculously niche proposals, overlapping proposals, and proposals that are already covered by an existing site.

Merging Season


Need to hire a really great programmer? Want a job that doesn’t drive you crazy? Visit the Joel on Software Job Board: Great software jobs, great people.

Fork it!

The Stack Overflow Blog: “The Unix world loves to take sides. I don’t have to blog about this; Freud already did, in 1930. He called it ‘the narcissism of minor differences’”

Need to hire a really great programmer? Want a job that doesn’t drive you crazy? Visit the Joel on Software Job Board: Great software jobs, great people.

A new WordPress Stack Exchange

We’ve been opening new Stack Exchanges left and right on a variety of topics. In almost every case, the Stack Exchange appears to duplicate the content of an existing community. For example, our WordPress answers site (now in beta) covers the exact same material as’s existing forums.

This is nothing new to us at Stack Overflow, which purported to cover the exact same material as hundreds (if not thousands) of other programming sites. There’s no rule that says that there needs to be exactly one Q&A website per topic.

There is, however, a compelling case for the Stack Exchange technology.’s forums don’t have voting, so you have to read through every answer and decide for yourself which one might solve your problem. They don’t have reputation, so there’s no way to see whether you’re getting an answer from someone who knows what they’re talking about. They don’t have wiki-style editing, so collaboration is impossible. You have to log on to ask or answer a question, so the burden of participation is higher. Stack Overflow is simply better than traditional forums, which is why it largely replaced proprietary forums. I remember hours of discussion with John Resig and the folks at jQuery who couldn’t decide whether to replace the jQuery Google Group with a forum or with a Stack Exchange. Ultimately it didn’t matter that much, because most of the jQuery Q&A activity happens on Stack Overflow anyway.

One day, the features that are standard on Stack Exchange will be copied everywhere. Until then, we’ll keep churning out new sites.

Need to hire a really great programmer? Want a job that doesn’t drive you crazy? Visit the Joel on Software Job Board: Great software jobs, great people.

The growing empire of Stack Exchange

We launched three new Stack Exchange sites this week!

We’ll have three more for you next week, too.

Need to hire a really great programmer? Want a job that doesn’t drive you crazy? Visit the Joel on Software Job Board: Great software jobs, great people.

Domain Names

“We decided that individually-branded sites felt more authentic and trustworthy. We thought that letting every Stack Exchange site have its own domain name, visual identity, logo, and brand would help the community feel more coherent. After all, nobody wants to say that they live in Housing Block 2938TC. They want to live in Colonial Manor. Never mind the connotation of, well, colonies.”

Domain Names

Need to hire a really great programmer? Want a job that doesn’t drive you crazy? Visit the Joel on Software Job Board: Great software jobs, great people.

Web Applications Stack Exchange now in beta

Want to know how to export mail from Gmail? Or delete your Facebook account? Or send giant files via email?

Well, the new Web Applications Stack Exchange is for you. It’s a part of the Stack Exchange network, so it has the clean, elegant design that made Stack Overflow a phenomenal success.

The newest member of the Stack Exchange Network is the first one to go through the community site-creation process called Area 51. There are more great sites in the pipeline, but they have to demonstrate that they can reach critical mass or we won’t create them.

Need to hire a really great programmer? Want a job that doesn’t drive you crazy? Visit the Joel on Software Job Board: Great software jobs, great people.

Odds, Disclosure, Etc…

While doing some research I happened across an old post of mine that I had totally forgotten about. It was an old post about betting on the chances of compromise. Specifically I was asked to give odds against whether I thought Google or would survive a penetration test (ultimately leading to disclosure of data). Given that both Google and are under constant attack, it stands to reason that sitting in the ecosystem is virtually the equivalent of a penetration test every day. I wasn’t counting things like little bugs that are disclosed in our sites, I was specifically counting only data compromise.

There are a few interesting things about this post, looking back 4 years. The first thing is that pretty much everything I predicted came true in regards to Google:

… their corporate intranet is strewn with varying operating systems, with outdated versions of varying browsers. Ouch. Allowing access from the intranet out to the Internet is a recipe for disaster …

So yes, this is damned near how Google was compromised. However, there’s one very important thing, if I want to be completely honest, that I didn’t understand back then. I gave Google a 1:300 (against) odds on being hacked before would be. While I was right, in hindsight, I’d have to change my odds. I should have given it more like 1:30. The important part that I missed was the disclosure piece. Any rational person would assume that Google has had infections before (as has any large corporation that doesn’t retain tight controls over their environment). That’s nothing new – and not what I was talking about anyway. I was talking only about publicly known disclosures of data compromise.

So the part that I didn’t talk to, and the part that is the most interesting is that Google actually disclosed the hack. Now if we were to go back in time and you were to tell me that Google would get hacked into and then disclose that information voluntarily, I would have called BS. Now the cynics might say that Google had no choice – that too many people already knew, and it was either tell the world or have someone out you in a messy way. But that’s irrelevant. I still wouldn’t have predicted it.

So that brings me to the point of the post (as you can hopefully see, this is not a Google bashing post or an I told you so post). I went to Data Loss DB the other day and I noticed an interesting downward trend over the last two years. It could be due to a lot of things. Maybe people are losing their laptops less or maybe hackers have decided to slow down all that hacking they were doing. No, I suspect it’s because in the dawn of social networking and collective thinking, companies fear disclosure more than ever before. They don’t want to have a social uprising against them when people find out their information has been copied off. Since I have no data to back it up, I have a question for all the people who are involved in disclosing or recovering from security events. How many compromises of data security, that you are aware of, have been disclosed to the public as a percentage? You don’t have to post under your own name – I just want to get some idea of what other people are seeing.

If my intuition is correct, this points to the same or more breaches than ever before, but less and less public scrutiny and awareness of what happened to the public’s information. Perhaps this points to a lack of good whistle-blower laws against failing to disclose compromises (and monetary incentives for good Samaritans to do so). Or perhaps this points to a more scary reality where the bad-guys have all the compromised machines and data that they need for the moment. Either way, it’s a very interesting downward trend in the public stats that seems incongruent to what I hear when I talk to people. Is the industry really seeing less successful attacks than a few years ago?

Bear In Woods Or Prairie Dog Ecosystem

The post I did a few days ago apparently resonated with a lot of people. So I decided to do a quick follow up. If a true ecosystem is not like two guys being chased by a bear in the woods, what is it like? I think the closest real life analogy I can come up with is the humble prairie dog. This is not a hero most people want to liken themselves to, typically. It’s more vermin than role model. But one thing is undeniable – they are a tremendously successful species that have next to no defense mechanisms. So how do they succeed when the fox is on the hunt?

Before I answer that, it’s important to know that prairie dogs aren’t exactly the most friendly beasts to other prey animals that compete for food – like rabbits or ground squirrels and so on. So those animals are not welcome in the prairie dog’s holes in times of plenty. Much in the same way executives are territorial about their intellectual property. But once a real predator, like a fox or a hawk is spotted everything changes. Now the prairie dog will let any prey animals into their holes that can fit, regardless of the fact they may be in competition normally. Now the prairie dog is strong enough to shove out many of those smaller creatures that seek refuge and let them get eaten, thereby removing one competitor, but they don’t and here’s why.

Predators need food to survive (think of a predator as a hacker that profits off of cyber crime in this analogy). If the prairie dog shoves their competitors out to be eaten, now the predator has been sustained. Every time the predator eats they gain enough strength to hunt again and possibly even produce offspring. This works completely contrary to the prairie dog’s goals. No, evolutionarily, the humble prairie dog, who has the biggest hole around, has learned that it’s better to save your competitors to starve your attacker. Starving the predator so they move on or die works much better over the long haul.

The last thing the prairie dog wants is more hawks around, even if that means the prairie dog would be in less competition for food from the other prey animals. Of course, I don’t expect executives to be as smart a rodent right off the bat. But maybe they don’t have to – maybe evolutionary forces are at work even as we speak – and those who fail to cooperate are being eaten. Meanwhile the attacker community grows to whatever the prey companies will support (monetarily or in terms of intellectual property or whatever currency the attacker trades in). There will always be predators in the wild, but the numbers can be limited when the prey work together.