Rants, rambles, news and notes from another geek

Google Calculator

Yeah yeah, everyone is talking about it. But did you know it does square roots? Even negative ones? Trig? Unit conversions?

Try these:

  • sqrt(5)
  • sqrt(-5)
  • sine(30 degrees)
  • sine(pi radians)
  • 2 inches in millimeters
  • 30 fahrenheit in celsius

Combined with the google toolbar this rocks!

.NET Bug List

Peter Marshall posts:

I don’t want to point to a bug list for .net. I would rather there were not any at all, but there are, and because there are, its good to know what they are. There is a privately (Dejan Jelovic) maintained bug list here.

I agree. I wish we didn’t have to have such a list, but we do. Thanks for pointing it out and thanks to Dejan for maintaining it.

Pragmatic Practitioners Denver?

Is anyone interested (Brad?) in putting together a Pragmatic Practitioners group for Denver? I recently discovered this idea and was surprised that there wasn’t one here already.

Leave comments if you are interested (or if you think it is stupid).

Identity Theft

I just finished re-reading a long thread on Slashdot about Identity Theft. It is something I’ve been thinking about for a while. I mean, I have a firewall on my home network and run 128-bit WEP on my wireless, but I don’t do anything to protect myself from identity theft. Why not?

So I decided to try to learn a little bit about how you can protect yourself. Some of the funniest responses in that Slashdot thread are people saying the best way to avoid identity theft is to fuck up your credit so bad that nobody wants your identity. Good point, but not the solution I’m looking for.

I found this site which seems to have a bunch of different information, but I don’t know what their motives are. The first thing I wanted to know is how do I put a fraud alert on├é my credit report? After that I was interested to read on /. about putting a password on my bank account. Are there any other things that I’m missing? Is there a better site for this kind of information?

Create the Solution Before Adding Projects

Korby Parnell writes:

Here’s my Source Control Tip of the Week:&nbsp_place_holder;

«Create a blank solution before creating&nbsp_place_holder;a project.»

In&nbsp_place_holder;Web Projects and Source Control Integration in Visual Studio .NET,&nbsp_place_holder; I state that doing so will, “_ …improve the long-term manageability and discoverability of your projects_ [and] maintain a close symmetry between local project files and their master copies on the source control server.”

I couldn’t agree more. Even when you aren’t using Source Control Integration you should follow this guideline. Unless I know I am creating a one-off Spike Solution, I always create a blank solution first.

As Korby shows, it is the only way to ensure that you get a parent solution folder containing child project folders. This is a good thing whether you are using the VS.NET Source Control stuff or not. I use CVS these days and it makes me a lot happier to have my folders structured this way.

Another thing that I do that I don’t think many other people do (except Brad Wilson) is to create my web projects as Class Libraries instead of ASP.NET Projects. By doing this, you get to keep the source files in the normal project file tree instead of over in the wwwroot folder. With a little bit of tweaking you can debug just fine, add all the same kinds of project files, etc. Works like a charm. (Thanks to Brad for suggesting it.)

Real Money From Imaginary Goods

This is insane. I knew that people were making money selling crap from online games (even selling shares in virtual stock markets like blogshares).

But now people are actually earning a full-time living at it. Or at least they’re trying. Apparently Ultima Online encourages this and people are making real money from it.

The amounts being traded are huge. Figures collected by economist Edward Castronova show that the total dollar value of what is being traded, excluding EverQuest items, runs into the millions.

Mr Dibbell has become an itinerant merchant wandering the land of Britannia seeking out gold and other goods to sell.

“I’ve discovered that there is a food chain and the producers are at the bottom and the merchants are at the top,” he says.

“The producers are the teenage kids that have a lot of time on their hands but no money so they go out and hunt and loot and craft and produce the stuff that I am buying and selling,” he says.

[via Chris Sells]

More Tricks W/ C# Generics

Christian Nagel shows us another neat trick we can expect out of C# generics:

The declaration

public delegate void EventHander<S, T>(S sender, T args) where T : EventArgs;

also shows a big difference to the template implementation of C++. With C# generics it is possible to define requirements of generic types, such as T needs&nbsp_place_holder;to be of type of&nbsp_place_holder;EventArgs (or derived from this class).&nbsp_place_holder;With C++ templates we just find out that a type doesn’t fulfill the requirements when compiling the template using the specific type. Often the compiler error messages with many, many lines are not easy to read.

Very nice. I was an STL junkie I remember all the nasty errors produced by the compiler when you did something wrong. I really like the way that reads too.