Warning!: blockdelete.com- Protect Your Ass!

Those nasty spammers have apparently reappeared, using a private domain registration through GoDaddy.

What they do is capture your Windows Live Messenger credentials under the ruse that they will show you all your blocked contacts (which is easy enough to do yourself with libraries like DotMsn - without the security risks).

What they don't tell you is that if you do this, your account is now compromised -- and they'll send every one of your contacts a message (since it's your credentials, it appears from you, a trusted contact) that tells you to go visit their site and sucker for it too. There's only one solution if you suckered for it - you have to change your Live.com password immediately.

Just look at this:

"The longly[sic] awaited feature for MSN Messenger, completely for free[sic]!"

When you click on their Privacy page link, you get nada! What a scam. Unfortunately, from reading the newsgroup and forum posts, it appears that thousands of people are getting suckered for this social engineering scam from these total scumbags.

I'm seriously considering complaining to Google about this, because the bastards have a Google Adsense ad at the bottom of their page. Clearly a violation of Google's TOS. If enough people complain, Google will ban them and they'll have no financial incentive any longer. Incidentally, Google has recently begun actually soliciting reports of "bad" web sites. The form to do it is here. You can also visit Stop Badware, a consumer protection site sponsored by Google and other major firms.

We live in a dangerous world. Even cyberspace is dangerous. Protect Your Ass.

Getting the right client-side ID for ASP.NET Controls

This is really simple stuff, but judging by the number of forum and newsgroup posts I've seen asking the same question over and over again, it may not be very obvious to many newer developers: The ASP.NET infrastructure "mangles" control ID's based on the container hierarchy they are in. So for example if you have a Master Page and a Page that uses it, and you put a TextBox "TextBox1" on it, that's not what you'll get at the client side in the browser. So any javascript you write that is looking for "TextBox1" will fail. Here's the correct way to ensure that your script won't fail: