February Stats

Well, it's been about a month since I last did this. I know that Ross was really keen on it, so I thought I'd share my web site traffic stats again.

I'm curious to know if anyone else finds this interesting or not. Post a comment to tell me either way, and I'll take it into account next month. 🙂
It hasn't been a really busy month on my blog, with only four new posts in February. (Five including this one... and yes, it is still Feb 28 for another 20 minutes where I am!) Despite that, my traffic has increased, and so have the number of visitors that have subscribed to my RSS feed. Unfortunately, my Spam count has also increased astronomically as well, but we'll get to that in a bit. 😉

One thing I should mention... all the screen shots in this post (actually on my sites) were captured with Techsmith's SnagIt. It's a great little app that I will post a review on at some point. 🙂

Web site Feed stats
As I write this, there are now 30 people subscribed to the blog through one feed or another. And if you're interested, you can actually see the current number at the left of your screen just below the "subscribe to RSS" gadget. Again, this is complements of the free Feedburner service, which provides me with the full graph for feed growth shown below:


So as of last month, the highest subscribers I had was 19, and now that's my average, with a peak of 30. Not too shabby for growth in a low post month. 🙂

Excelguru.ca Main Site Traffic

I was actually helping a friend out with an email issue earlier tonight, and she was asking about my blog. Specifically, the question was "who reads that?"... especially after I told her that none of my visitors were from my family as they don't hold any interest in this. 😉

Honestly, I can't really answer the question. I know that some of my online friends do, but there are a great many people who return here that I just don't know. What I can say, beyond that they have some interest in the material, is where they come from. Thanks again to Google's free Analytics service, here's the graph that shows Excelguru.ca's traffic for February 2007:


Total visits (at least up till 10:30PM my time) is up to 6640 from 5977 in January. That's just over a 10% increase in one month. Total pageviews have also increased, from 12,434 to 13,349. Not quite 10% there, but still an increase. I sure do see some wild dips on weekends... you'd think that no one reads Excel stuff on their days off or something. 😉
My returning visitor percentage actually dropped a bit in February at the main site. It's down from 22.82% to 21.54%. I'm trying to decide if I should be worried about it or not. In the grand scheme of things, January saw about 1360 of my visits came from people who returned at least once, and that number grew to about 1430 in February.

With regards to the map, remember that the dots indicate the highest numbers of visitors from specific areas. There were also many different visitors from other countries that are not shown, but they were filtered out if there were less than 9 visits from that city in the month. (It's an automatic stats thing on Google's part. I didn't decide on that magic number.)

Google is still my biggest referrer, (no surprise there,) and mvps.org is still second on the list.

While I was fooling around in Analytics getting the info for February, I stumbled on how to actually pull a custom period too. I actually only installed Analytics on October 31, 2006, and therefore meaningful stats didn't start being generated until November 1. I was curious to see the site growth over that time, so snapped it as well:


The nice little dip in traffic in the middle is the week around Christmas, but despite that, I've managed to attract over 23,000 visitors in four months. That's pretty neat. In addition, the traffic is on an up hill climb, which is also kind of cool.

With regards to the rest of the pie graph stats, they're honestly pretty much in the same range as I'm used to seeing. For reference, though, the lowest number I could find on the map was 27 visitors. Anything less than 26 has been ignored for map clarity.

Blog Stats

I'm only going to share the blog stats for February, as I didn't snap the Analytics into it until the first week of December. There just isn't the same amount of info there, but I may show a three month view if I post on this subject again at the end of March. Here's the February view for the blog:


So... things to note here are...

My total blog visits are up 32% from 1250 to 1652, but Pageviews are only up 10% from 2784 to 3056. This is pretty much telling me that while more people are finding the blog, they're not necessarily interested in what's here. My visitors last month looked at an average of 2.23 pages before they left, while now it's down to 1.85. Actually, since many of the original visitors were friends and colleagues, it doesn't really surprise me that this is happening, and I'd actually expect the average pageviews to drop as the number of visitors continues to increase.

My returning visitor percentage also dropped to 28.15% from 39.84%. That's pretty drastic, so maybe I should start posting some worthwhile content again. 🙂

That really big lump on the left side of the map is Los Angeles. It seems that I get the most visits to my blog from that city.

With regards to the referral sources, I'm going to save commenting on that. The percentages this month bear almost no resemblance to last month. If you are still reading, and interested, let me know and I'll add it to the post.


One of my biggest, err.., "accomplishments" this month seems to have been attracting spammers. It would actually be interesting to know just what my stats looked without them. I actually cleared all my spam filters at the beginning of the month, and then saved every one that I got, as I figured it would make an interesting study. Th thing is that I forgot that I use a spam filter on my email server which black-holes spam, so I don't actually get a record of it. On my blog, though, it's another story.

WordPress has a great little anti-spam snap-in called "Akismet", which seems to work very well. In the entire time I've been running it, it's only given me two false positives, (sorry, Will!) and only missed a few. Fortunately, I have a moderation system in place for comments, so I could flag those as spam before they showed up.

What I found with spam on my blog surprised me though. From February 1-14, Akismet caught 370 spam messages. I cleared all of them out, and my spam filter currently holds another 875 from February 15-28! That's 1245 spam posts in one (short) month, at a rate of over 44 per day! In fact, it was about 26 per day in the first half of the month, and is up to over 62 per day in the last half. At that rate of increase, I could be seeing 100 per day by the end of March, easily. (I hope it's not exponential, or I might have to buy more server space. LOL!)

I do have a quick review of them, to try and see if anything was a false positive, and some of them are pretty funny. I had one with a subject of "Mexican Taco", (which wasn't about food ,) several which tell me how great my site is, (only to be followed up with a link to theirs,) and even a marriage proposal. Too funny, but a total waste of time.

At any rate, that's all for now, but please do tell if you like this kind of post or not.

Office 2007 Icon Gallery

No more fooling around trying to figure out what the idMso is for the built in Excel commands when you're trying to customize the Ribbon. There is a great little download available from Microsoft to add a group of galleries to the Developer tab on the Excel ribbon. So what's in the galleries? Check this out:

And when you click on a button, you get a little expansion like below:


Not too shabby! Finally there is an easy way to figure out the idMso for the built in commands, and browse all the images in an easy to use location. (Okay, granted, I just found it, and I'm sure it's been up for a while. 😉 ) The really good thing here is that you can see ALL the images, not just the ones that are on the menus. Not to mention that this is actually efficient. You don't actually have to click on the item to get the id!
As an FYI, you'll need to pass the Genuine Validation tests to download the file, but so long as you can, it's all good. It comes as an .exe file (go figure), that extracts an .xlsm file. (Excel Macro enabled workbook.)

The one change I made to this, based on the recommendations of a friend, was to save the file as an Excel add-in (.xlam). Once done, I installed it as an Add-in (Office menu|Excel Options|Add-ins|Go). I now have it available whenever I need it.

EDIT February 23, 2007:

Based on Zack's feedback, I thought I'd make this change as well. I added a textbox to the userform, and modified the onAction code to the following:

[vb]Sub OnAction(control As IRibbonControl, id As String, index As Integer)
If (control.Tag = "large") Then
id = Strings.Mid(id, 3)
End If

Dim form As New ControlInfoForm
With form
.nameX.Caption = "imageMso: "
.tbMso = id
Set .Image1.Picture = Application.CommandBars.GetImageMso(id, 16, 16)
Set .Image2.Picture = Application.CommandBars.GetImageMso(id, 32, 32)
End With
End Sub[/vb]

The result of this, as Zack points out, allows us to easily copy the control name in case it's really long:


Another interesting thing here, though, is the code. Despite moving to the Ribbon for the Office 2007 UI, Microsoft still references the commandbars objects to get the images. I found that just a little surprising, as I'd assume that they would have abandoned it all together. Go figure!

Thanks for the ideas, Zack. 😉

Some updates to PDF articles

Over the past three weeks, I've received quite a few emails asking about methods to deal with the "Can't initialize PDFCreator." error message. I've been meaning to write about it for a while, and have been responding to everyone who emailed me about it, but it took me until tonight to write up a page on it. That can be found here, and details an inelegant workaround.

I hate intentionally pausing my code, though. It feels wrong on so many levels, as we're usually trying to speed code up, not slow it down. Because of that, I've spent the last half hour looking for ways to check if the PDFCreator engine is at a point where it can be stopped, and I think I've found it. In my routines here, I ended the routines with the following code:

[vb]'Wait until the print job has entered the print queue
Do Until pdfjob.cCountOfPrintjobs = 1
pdfjob.cPrinterStop = False

'Wait until the PDF file shows up then release the objects
Do Until Dir(sPDFPath & sPDFName) <> ""
Set pdfjob = Nothing[/vb]

This checks to make sure the job is printed to the printer, tells the printer that's all there is, checks to make sure the PDF file is outputted, then finally unloads the objects.

My rationale for the above was that once the file appears, PDFCreator should be finished. I'm starting to think that's not the case. If we change the Waiting portion to the code below, it seems to be reliably closing PDFCreator on my system. (PDF Creator is NOT closing with the code above)

[vb] 'Wait until the PDF file shows up then release the objects
Do Until pdfjob.cCountOfPrintjobs = 0

I'm curious if anyone else can reproduce this. Does the change act reliably to close PDF Creator for you as well? If it does, I see some article updates in the near future. 🙂

RBL Frustration

Don't get me wrong here, I hate SPAM. It costs money to deal with it, from spam filters, to the time of both my staff and I. I would far prefer to spend my dollars on other things.

A couple of years ago, we signed up for a service at work which filters Spam. It scans both my inbound and outbound emails with four different anti virus scanners, and also check both inbound and outbound emails for Spam content. Naturally, it filters out attachments, suspect HTML and a few other things. It costs our company (about 50 email accounts) close to $125 CDN per month for this service, and I feel that it's a bargain when compared to the amount of staff time it would take to sort through and kill all the spam messages we get per month. Our email now goes from our server to a relay server (we'll call it MXR), to the destination.
Imagine my surprise when we start having issues with outbound email...

I've been here before, once, when we were flagged as spammers, and email did not get to our head office. It was a pain to get cleared, but we did it. That was about a year ago, and I had help from head office to get cleared on that. At the time, we were being picked up because our email server did not have reverse DNS lookup specified or something. (I can't quite remember.)

This time, though, email was not getting through to one company (our engineering firm) from us. The rest of our emails seemed to be going just fine. So they called their ISP, who claimed that we were tagged as spammers. To be really helpful, they sent me an email with a link to Spamcop so that I could get myself removed. Very helpful of them, only...

I went to Spamcop... and we're not listed. Neither by IP address, nor by domain name. So far as I can see, we've never been listed, so now what?

Finally, after wasting a ton of time, it's brought to my attention that we've been tagged by Spews... only it wasn't just me. It was my ISP's entire subnet that was flagged. Great. So now I phone up my ISP and ask what they are doing about it, and what they are doing to ensure that I don't have my email blocked. I had some long discussions with the tech there, and they sound pretty frustrated. Spews has about two suggestions on how to fix what they see as the ISP's disregard of spam. My ISP swears that they did this a year ago, but they keep getting listed weekly. Further, Spews will not return email to the ISP so that they can deal with the current issue. I appreciate the blacklist, but these idiots need to realize that there are legitimate businesses running on these ISP's, and that ignoring their requests does not cut it. I'd like to think that they have a good reason to blanket block and entire ISP's subnet, but they got their attention. Answer them and fix it! Once you've got the ISP excited, talk to them and tell them what you want to do to deal with the issue. Playing games to punish the ISP at that point is NOT cool. This is not a game, and is costing legitimate companies money. At any rate, the ISP tech tells me that they are doing what they can, but it's pretty much a waiting game.

So the next thing I do is call the firm's ISP. (Go figure, but we need to get emails to them.)

Ken: "I know this sounds strange, but I was wondering if I could get you to make an exception to your policies. Could you whitelist my domain so that I can get emails to one of your clients? My ISP has been tagged as spammers by Spews"

ISP: "Oh yeah. They get on that list weekly. We white-listed their entire subnet a couple of years ago."

"Oh great", I think, "this is getting better and better, isn't it?" So the issue isn't my ISP after all. Now what?

As it turns out, there are two issues. The firm's ISP is having an issue receiving email from MXR. In addition, MXR has also recently decreed that our email server's outbound address (pointing to them) be changed. We knew about the last, but when we'd made the change before, email was only getting through to other MXR customers. We changed the setting back to what was working at the time.

At this point, we find out that several of our suppliers and customers in the area use this other ISP to get their email.  So now it's not only our engineering firm that isn't getting their email.  We sell real estate, and some of the agents can't receive theirs.  (This is really not good now.)  Our printing services are another...

Trying to do what we can to get this resolved, we changed the our outbound mail server setting to the newly defined (approved) outbound mail address. Our entire mail server, which also hosts our directory services, abends. (Grabs it's chest, gurgles about and falls to the floor writhing in agony.) Further, every time we try to make the change, the same thing happens. We appear to be locked in to a mail server that is pointing outbound mail to an address that isn't working correctly.

After a bit more sleuthing, I get one of my tech support guys to edit the config files themselves, and we bring everything back up. Email finally starts getting through to all destinations. Yay!

So then, for whatever reason, I decide to head back to DNSStuff one last time to check if we're on any spam blacklists. To my horror, while Spews is gone, I've been picked up by CBL, and about 30 minutes later, this replicated to both DNSBLNETAUT1 and Spamhaus. Argghhh!

One thing I will say about CBL is that they are really effective. You can ask for manual removal immediately, which is fantastic. They also have several suggestions to look at as to why you were listed in the first place, and what you should look at to ensure that you won't be listed again. One of those things, which we did this afternoon, was ensure that no outbound email can be sent from out network via port 25 (SMTP) unless it goes directly to MXR. CBL's suspicions are that we have a virus or a spam bot within out networking flooding spam out the door. I do not believe that, but locking down the outbound email will tell us for sure.

Through all of this, we're in the middle of a month end, down one of my staff members due to a car accident. (She's recovering, but off work for a few weeks.) So I'm trying to do my job, co-ordinate and fill in her job, and also fool around with this stuff.

My biggest frustration in all of this is that we are a legitimate business that do not spam. We've purchased a system to ensure outbound mail is filtered. We are really trying. I see a huge problem with how the RBL's function though... if I'm suspected, my emails just start being black-holed. They simply disappear. I have no idea it's even happening until someone starts complaining that they are not getting their email.

So the big question of this post is: why is there no way to deal with this for legit companies? We have a requirement to have specific email addresses in place for other things (abuse@ for example), so why can't we do the same with this? If we are suspected, email spam@domain.com requesting a reply within 48 hours. If we don't give it, and a reasonable explanation as to what we're doing to fix the issue, THEN tag us. At least this would give us a chance to deal with it.

For those of you who do look after email, if you don't know about DNSStuff, you need to. Just go there, scroll down the page, and drop your IP address into their Spam Database Lookup tool. It's the only site that I know of that check all RBL servers. Lord knows that if you tried to hunt them down on your own, you'd be hunting a long time. There's a ton of other tools there as well, that just may be of interest to you. One word of advice on the Spam tool though... look yourself up by domain and by IP. They return different results.

All in all, this has taken me three days to sort through. I'm hoping that I've seen the back of this issue for a while.

Treeview Control Article

Over the last couple of nights, I've decided to create a VBA project, and in doing so worked with the Treeview control.  One thing I found frustrating was a lack of very simple information on how to set it up, so I decided to write up an article on it.  You can find that right here.

I'm curious to know other's thoughts on both the article and the control.  I do appreciate that it is a little bit long, but if you've never used one before, and you know how to code a little, I'm hoping that it will explain enough for people to understand how it works.  Even better would be if it is good enough that people could easily adapt it to their own work.

So what do you think?  For the intermediate level coder, is it too dumbed down, or...?