You’ve used google before, but did you know they keep copies of their index around the world? And when the index is being updated, you can search on the same phrase at different times, and get different results. If you would like to see how that phrase looks across all clusters of their indexes, check out http://www.google-dance.com/ .
Cheers!
Dave Wanta
Building a Newsletter
Building some of the most popular .NET email components (aspNetEmail, aspNetMime, aspNetPOP3 ) has taught me a lot about email publishing. I thought I would share some tips with you about building a newsletter.
So you’ve got a site up and running, or you have an online business. Do you have a newsletter yet? If not, why not? Email is the life blood of the internet (will it soon be replaced by RSS?) If you have a website, evidently you have content or a product that you want people to be interested in. And if they are interested in it, maybe they want to get notified when there is new information or a product upgrade available. I subscribe to at least 10 different newsletters, because I want to be proactively notified about new things.
In fact, newsletters can become a huge avenue of people staying up-to-date with your content. For example, my newsletters at www.123aspx.com or my www.kbAlertz.com daily newsletters. I probably do just as much traffic through my newsletters (if not more), than I do through the actual web pages.
TEXT or HTML?
So, you’ve decided to publish a newsletter, what should it be TEXT or HTML? Well, I can tell you what people tell me they like, and then I can show you the stats. The die hard TEXT only guys seem to be pretty outspoken, they claim that’s the only type of newsletter they like to see. That’s fine, but according to my stats on www.123aspx.com and www.kbalertz.com I do about 10x more HTML newsletters than TEXT newsletters. So I’d have to recommend you have a HTML newsletter, minimum, no questions asked. However, if at all possible, you need both. Why alienate 10% of your audience if you don’t have too? The only difference in recording the type of subscription should be a bit field in the database. Designing the letter may be a little more tricky, but again, its worth that 10%. Especially if you’re like me, sending out over a 1/4 million newsletters a week (Yes, they are opt-in, not spam).
So what client do you design for?
Well, unlike the browser, there isn’t any way to tell what type of reader your client is using to read that newsletter, so you have to go based upon surveys. Let me just say that Outlook and Outlook express rule this market, with Yahoo Mail and Hotmail close on their heels. Designing a safe newsletter for either of these clients should keep you covered nicely. But how much does MS actually control the email client market? Well, here are the results from a study I revisit from time to time:
The study is a little old, but you can view it here. The numbers may change, but I believe the trend stays the same, at least for now.
| Q. Which of the following email clients/accounts do you primarily use for work-related email? |
| Email/Client |
Adjusted Percentage |
| AOL 7.0 |
4.92 |
| AOL 6.0 |
0.61 |
| AOL 5.0 |
0.61 |
| AOL 4.0 or lower |
0 |
| Microsoft Outlook |
39.14 |
| Microsoft Outlook Express |
25.20 |
| Eudora |
4.30 |
| Netscape |
5.33 |
| Hotmail |
25.82 |
| Yahoo! Mail |
19.67 |
| Lotus Notes |
6.35 |
| UNIX Command-Line Based |
1.43 |
| Juno |
0.61 |
| Other (write-in optional) |
19.06 |
| Q. Which of the following email clients/accounts do you primarily use for personal email? |
| Email/Client |
Adjusted Percentage |
| AOL 7.0 |
6.52 |
| AOL 6.0 |
0.81 |
| AOL 5.0 |
0.81 |
| AOL 4.0 or lower |
.20 |
| Microsoft Outlook |
24.03 |
| Microsoft Outlook Express |
27.70 |
| Eudora |
3.67 |
| Netscape |
5.30 |
| Hotmail |
33.20 |
| Yahoo! Mail |
27.29 |
| Lotus Notes |
0.41 |
| UNIX Command-Line Based |
1.22 |
| Juno |
0.81 |
| Other (write-in optional) |
16.29 |
| Are you capable of receiving HTML as well as text email formats? |
| Response |
Adjusted Percentage |
| Yes, I can receive both HTML and text. |
89.18 |
| No, I can not receive HTML-formatted email. |
2.65 |
| Don't know/not sure |
8.16 |
| Total |
100.00 |
Questions? Comments? Got any gripes about a newsletter you subscribe to? Or would like to see done differently? What email client do you use?
Lets face it, its pretty difficult to secure site content and/or images on the internet. If it can be accessed via the web, it can probably be automated in someway to retrieve/download it.
A year or so ago, someone was telling me, the way they secure some image data, for their gallery, was to check the Http Referer, and if it matches their site, they let the images through.
This is great, however, the Http Referer is actually sent from the browser, so this technique depends upon two things:
a. The browser sends the correct Http Referer (which I’ve seen bugs with this).
and
b. Someone doesn’t spoof the Referer.
And with .NET this has even gotten easier, in fact, I whipped up a console app and was able to generate this code.
Imports System.IO
Imports System.Net
Imports System.Net.WebRequest
Module Module1
Sub Main()
Console.WriteLine(FetchURL("http://www.google.com"))
Console.ReadLine()
End Sub
Function FetchURL(ByVal SomeURL As String) As String
Dim WebResp As HTTPWebresponse
Dim HTTPGetRequest As HttpWebRequest
Dim sr As StreamReader
Dim myString As String
HTTPGetRequest = WebRequest.Create(SomeURL)
HTTPGetRequest.KeepAlive = False
HTTPGetRequest.Referer = "http://www.microsoft.com"
WebResp = HTTPGetRequest.GetResponse()
sr = New StreamReader(WebResp.GetResponseStream(), System.Text.Encoding.Default)
myString = sr.ReadToEnd()
Return myString
End Function
End Module
Cheers!
Dave
A number of people have pestered me about blogging, so here I go. I don’t know how often I’ll blog, but I guess well see.
Just a smidge about me, if you don’t recognize my name, I’ve written www.123aspx.com and www.kbAlertz.com , and I’m also an INETA speaker. I actually just spoke at the Boulder .NET usergroup, where I got to meet Joe from ORM. Super nice guy. If you need a data modeling/code generation tool, you need to check these guys out.
Well, I was trying to figure what I wanted to blog about, and I got to thinking about all of my INETA presentations. All of them eventually turn to the tools and resources I use to help me write code. So I thought I would share some of them with you here.
Tools I Like to use:
Anikrino
This is a must have for any developer. If you don’t have this tool in your arsenal, then set that browser process on "HIGH" and scream over and grab this gem. If you’ve ever wanted to see how the framework was built, then this is the tool to do that.
Demeanor
Demeanor stops people from using Anikrino on your code. Yes, there are cheaper obfuscators, but I must say Brent has done a superb job with it, and it simply rocks. Worth it for any serious developer who needs to publish production code.
Rotor Source Code
When Anikrino isn’t working properly then I try and go to the source. Rotor Source. Last year some time I found myself going over and over the source code, but I wished I had a browser for it. So I wrote a web based interface that categorizes rotor’s namespaces and classes.
Alex Lowe’s Super Duper C# Translator
Have you ever wanted to know what that C# code looks like in VB? Well, then this is the code to do that. Since I write in C#, my VB is pretty rusty. But when someone asks me for a VB code snippet, I’ll just pull up this page, enter the code in the TEXTAREA, and translate. Need to check this out.
BTW, Alex, if you read this, when are you going to add a "Email this code to someone" button on that page?
Reflector
If you like Anikrino, then you may also like Reflector. Lutz has incorporated a decompiler in his browser tool, and it decompiles down to C# or VB. (Anikrio only does C#)
ILDASM
When Reflector and Anikrino don’t work, and it’s not listed in rotor, then it’s time to look at some good ‘ol IL. ILDASM to the rescue.
Resources that Keep me up to date
I subscribe to tons of newsletters. If I had to subscribe to any two that would keep me up to date they would be:
www.123aspx.com Daily Newsletter
This is my little newsletter that I try to publish every day. It contains all the new resources I just added to 123aspx.com. It keeps you on top of the new products, tutorials, applications and resources you might be missing. Yes, it’s a plug for myself, but if you really want something new in your inbox every day, you need to subscribe.
www.dotnetwire.com
.NET Wire is the only other .NET newsletter I like. It seems to catch some of those resources I end up missing.
These are the basic tools I use. There are a few others but these are the main ones that I use just about anytime I’m coding.
Am I missing any? Lets hear ‘em. C’mon, share with the rest of us.
Cheers!
Dave
More Posts
« Previous page