Sven's Blog

MemoryStream ms = new MemoryStream(MyBrain); // Management and technology considerations

Subscriptions

<January 2009>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

News

Welcome to my spot on the 'Net. I am the Principal Consultant at Adduxis, a management and IT consulting firm. This blog will provide you with some (hopefully) useful information and links to tidbits found on the Internet.

Navigation

Post Categories

Microsoft Bloggers

Wednesday, March 23, 2005 - Posts

Spam control

I just read an article on the BBC News web site that deals with spam and how users's "bad" behavior sustains it.

As I am sure everyone does

  1. I hate spam. It is counterproductive, gives the companies involved a bad name, and is a waste of costly bandwidth.
  2. I receive spam. About 40%-60% of messages daily are spam.

Here's what I do to combat spam. Not all of these measures will be appropriate for everyone.

  • Use several e-mail addresses. That's an easy one. If you have to fill out a form online to get something or to register on a site, use a different e-mail account than the one you use for work or personal purposes. That way, if the address ends up in the wrong hands, they can only send messages to that address. You could get a (second?) Hotmail, Yahoo!, etc. account for that purpose..
  • Don't put your e-mail address in newsgroup posts, blog posts etc.
    If you really have to, scramble it. So, someone@somedomain.com could become someone_AT_somedomain.nospam.com. A human reader can interpret this, automated bots may have some issues with it. Although I think it won't be long (if it hasn't already happened) before automated bots (that scour the Internet for e-mail addresses) can reconstitute those e-mail addresses too.
  • Use anti-spam tools. Personally, I use a free tool called SpamPal. It is free, easy to use, and actually offers the ability to install plug-ins. Using such plug-ins (most of which are free and available from the SpamPal site), you can highly customize SpamPal's behavior. I get about 1 in 100 false positives and 1 in 100 false negatives. In other words, 1 in 100 messages are not flagged as spam while they should be and 1 in 100 are flagged as spam while they shouldn't be. I am not sure what the average ratio is, but to me, that sounds really good.
  • Create e-mail aliases.
    If you have your own domain name (like I have aelterman.com), host your e-mail with a host that offers unlimited e-mail aliases (one such host is DirectNIC). Why? Because then you can create an alias for each company you do business with. If your domain is somedomain.com, and you buy things from Amazon.com, create an alias amazon@somedomain.com. This has two advantages. First, if the e-mail address gets abused, you just delete the alias and you will no longer be receiving messages on that address. (if the site is legitimate, change your address in your profile of course). Secondly, it makes it easy to find out who the source of the spam is. If you all of a sudden start getting junk mail at amazon@somedomain.com, you know it has to be Amazon who leaked your address (whether intentionally or not).
  • Never ever click on a link in a spam message.
  • Never ever buy anything through a spam message. Apparently, according the BBC article, 10% of recipients actually do that.
    If you do receive a message that markets a product of interest to you, go to the company's web site by typing in their address or by using Google (or better yet, use A9, Amazon's search engine to get discounts at Amazon.com) to find out what it is. The reason for this is that the links in spam e-mail messages contain references. Those references are then used for two purposes:
    • To validate your e-mail address. If you click on the link, the spammer knows that that e-mail address is valid and in use.
    • To get paid. The more clicks and/or sales spammers generate, the more they get paid. If no one clicks on the links, no one gets paid.

So, use your common sense (how often do you buy something from someone who shows up unannounced at your doorstep?) and just delete the spam messages.

I look forward to comments on this post to find out how you combat the increasing amount of junk mail. Last note: there might be some good news, the ratio of spam messages to real messages actually declined  in February 2005 from the record high of somewhere in the 80%-range in January 2005. I am not sure if we just all started sending more valuable messages or if the amount of spam really decreased.

Hope this helps,

Sven.

posted Wednesday, March 23, 2005 11:45 AM by SvenAelterman with 0 Comments

Visual Studio 2005 February CTP

I have been working with the latest "publicly" available (that is, if you have an MSDN subscription) release of Visual Studio 2005.

There are some great new features, both in Visual Studio and in the .NET Framework 2.0. As a Visual Basic.NET developer (mostly), the feature that I like the most is that VB developers finally have access to build events.

I have been filing several bugs in recent days, but still, overall the product is workable. I have converted a major development project from VS 2003 to VS 2005. I did it mostly because I wanted to see how many changes would be necessary. It's manageable, and if you follow good coding practices, it shouldn't be a headache at all. Even ASP.NET projects seem to convert just fine. I was a bit worried about that, because there are significant architectural changes to ASP.NET.

The one thing that bugs me the most about the new VB.NET compiler is the warnings about using unassigned variables.

Take this example:

Dim obj As Object
If (Not obj Is Nothing) Then
  obj.DoSomething()
End If

(Sorry, I have yet to figure out how to format code properly).

This will result in a compiler warning (error in C#, by default) because the object has not been assigned a value yet. It seems to me that this warning can be avoided, because that's exactly the scenario I am testing for. Of course, the code above would not make much sense in the first place. A similar scenario is where you check for an object reference in an exception handling routine, as in the case below:

Dim obj As Object
Try
obj = CreateObject()



obj.DoSomething()
Catch ex As Exception
throw ex
Finally
If (Not obj Is Nothing) Then
obj.Dispose()
End If
End Try

This case is valid, because it tests in the Finally clause for an object reference. It could be that the exception was thrown while the object was being initialized (by CreateObject() in this case, could be a constructor too).

The solution is to assign Nothing (null) to the object at declaration or somewhere else before you try to use it. Unfortunately, it seems that this solution can make matters worse. I hope a fix will be found for this before the final release.

BTW: This is bug #FDBK22915 in the MSDN Product Feedback Center.

posted Wednesday, March 23, 2005 10:23 AM by SvenAelterman with 0 Comments

Powered by Community Server, by Telligent Systems