Friday, March 19, 2010

iPad Detection Now Online

I don't actually own an iPad yet, but I've been playing with the iPhone/iPad simulator which is part of the iPhone SDK (Software Development Kit). Using this as my model, I've been able to add iPad detection to the WunderCounter, so that your account will properly detect this device once it starts to ship out to customers. If you're curious, the actual iPad UserAgent string (according to the simulator) looks like this:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B348b Safari/531.21.10

On a related note, the Perl module HTTP::BrowserDetect now also has support for the iPad. It will be available on the CPAN in the next day or so.

Tuesday, March 16, 2010

Tonight's Upgrades: Twitter Tracking goes Beta

I had a chance to perform some code and OS upgrades on the WunderCounter this evening. Most WunderCounter web servers are now running the very latest updates of Ubuntu 9.10 (Karmic Koala) and I've also upgraded the WunderCounter codebase to the very latest version in the repository. Most of the changes have taken place in the back end. So, if they've been patched correctly, you should never notice them. Some changes of note:

Session Control Reset (One Time Change)

After upgrading Perl, I had to change the way some session data is stored. This means I had to reset all session control data in the system. If you have Session Control enabled, you may see some pages tracked twice late Monday evening. This is a one time blip and it's part of the upgrade process. There wasn't any good way to get around this, so I made the decision to start fresh. It should only affect a small amount of user and tracking data. If you have any questions about this, feel free to get in touch with me.

URL Shortening/Twitter Tracking in Beta Mode

The WunderCounter has had link tracking for a lot of years and it's a great feature. However, the link tracking code is quite long and not suited for use with services like Twitter or Facebook. I'll be rolling out URL Shortening in Beta mode this week. If you have a paid Premium account and you'd like to be a Beta Tester, just message me with your account name and I'll give you access to the new service to test and give your feedback. This new service will provide short URLs which the same sort of fine grained tracking which you've come to expect from the WunderCounter. It will also be suitable for tracking links in email campaigns and any situation where you'd like to get feedback on how often a link is clicked, like Podcast and other media downloads, photos and links you're sharing on Twitter, links you share on Facebook and the list goes on. I'm really excited about this as it opens up many new opportunities to integrate the WunderCounter with services which many of you are already using.

I expect the Beta period to be relatively short as I'd like to roll the service out to all Premium users ASAP. I'll post more info on the blog as I know more.

Better/Newer Hardware + Load Balancing

I'm in the process of moving the WunderCounter to newer, faster servers with more RAM. The login area is already on the new setup. Over the next couple of days the front end of the WunderCounter (the one which actually does the tracking) will move to the new system. This will make serving the counter images faster and more reliable. If, for any reason, one of the WunderCounter servers has to be shut down, traffic will automatically be routed to a backup machine. This will mean even better uptime and a live backup machine ready to step in and share the load at any time.

Git > SVN

The real geeks may be interested to know that I've changed almost all of the source code management from Subversion to Git. I've found Git to be much more flexible and generally much more of a pleasure to work with than Subversion. Don't get me wrong. Subversion is great for what it is, but branching and merging code in Subversion can drive a grown developer to tears. Branching and merging in Git, by comparison, is a real pleasure. Developing the WunderCounter and adding new features should be much easier under Git. I've held off on upgrading the live sites as I switched from Subversion to Git. Now that the transition is complete, I'll be able to roll out changes to the WunderCounter quite quickly.

Wednesday, February 3, 2010

Don't Get Your Web Analytics From the Same Place You Get Your Ads

I had a fellow call me this week about an email campaign which he is running for a client. The client had sent out an email blast to his list and the analytics report which the email sending company had returned did not mesh with what was being reported by the WunderCounter. Is this good or bad? Whom is he to believe?

This leads me to one of the really great reasons to use the WunderCounter. You can (and should) use it to track the success of your ads, email campaigns and marketing initiatives. Since the WunderCounter is not affiliated with the 3rd party which you are buying your services from, there is no conflict of interest in getting you an honest breakdown of your web traffic. There's no pressure to over inflate the success of your marketing initiative or even to suppress potential click fraud. It's in my best interest to get you the most accurate stats which I possibly can, because this is a service which helps you to keep other services honest.

For example, if you're paying for your ads by the click, do you trust the click reports which your ad provider sends you? How thorough are these reports? Do they drill down to the individual clicks? If not, how are you to know that there is no click fraud being perpetrated on your ads? If you are getting a breakdown by IP, can you trust it 100%? If you have been billed for fraudulent activity, how likely is your ad provider to let you know about it?

Your ad provider wants to bill you for as many clicks as possible. Your email delivery provider wants to prove to you that a very high percentage of your messages have been successfully delivered and opened. Are you really getting what you've paid for? Whom are you going to trust to tell you what really happened with the money you've spent?

Think about it. Keeping companies honest ranges from uncovering dishonest business practices to discovering sloppy accounting or oversights on their part. It's easy to track the success of your ads and emails yourself, so why not gather this info for comparison? You may be surprised at what you find.

Wednesday, January 13, 2010

When a Power Supply Burns Out Late at Night...

You may have noticed there was some downtime earlier this evening (Tuesday, Jan 12), around 10:20 pm CST. One of the main WunderCounter servers went offline with a burned out power supply. I get an SMS within a minute of this kind of thing, so we were able to begin dealing with it immediately. Normally losing a power supply is not a big deal, but in this case the data centre didn't have a matching part on hand, so I had to have one of the techs take an unused server off the rack, extract its power supply and use this to bring the front end of the WunderCounter back online. The entire process took about 90 minutes from finding the problem, diagnosing it, finding the correct part, replacing it and getting the machine back on the rack and correctly connected to the network.

I apologize for the downtime. I have, actually, already been in the process of replacing this machine with a pair of newer units, but the new machines aren't fully configured and tested yet. I hope to have that done in the next week or so in order to add some more redundancy to the system. I'll be having a closer look at what's on the rack and possibly having some more machines and/or parts shipped in so that I continue to have enough spare hardware handy for any future issues.

Thursday, December 24, 2009

Merry Christmas! Here are my Latest Christmas Recordings

First off, I hope everyone is having a great Christmas season. Over the past few years, I've recorded some Christmas music for family and friends. This year my band has released some recordings in album format. There are a couple of samples online. First off, here's a cover of "Baby, It's Cold Outside", which I sang with Catherine Taddo.



Secondly, my bandmate Andrew recorded an excellent version of Away in a Manger.

That's it for today, really. You'll notice some improvements to the WunderCounter going into the month of January, but that's not a topic for today.

Merry Christmas and Happy New Year!

Olaf

Sunday, December 13, 2009

Analyze Your Traffic Before You Optimize Your Site

Recently I was asked if I do SEO. That's "Search Engine Optimization", if you're not familiar with that acronym (and a lot of people aren't). I actually do some SEO work for clients and, of course, for the WunderCounter and I've also talked a bit about it on this blog. I explained why it's a waste of money to pay someone to submit your site to search engines and I also gave some tips on how to create Google friendly URLs.

To be honest, a lot of what passes for SEO involves a lot of smoke and mirrors. People will call and email you saying they can get you on the first page of Google search results. In many cases the claims are likely true, because anyone can do it. Optimizing your site for Google isn't about learning a lot of secret tricks as much as it is about using common sense and making sure you have relevant and unique content on your site. Thinking you need to optimize your site? Ready to start today?

Wait.

Do you know how much traffic you're getting now? Do you know which search terms are driving visitors to your site? Which are your most popular pages? Which are the least popular? How often does the Googlebot visit your web site?

You don't know? In that case, what you shouldn't be doing is optimizing your site. What you should be doing is analyzing your site traffic. If you're going to increase your site traffic, you'll never know if it's working until you know your current traffic patterns. Don't pay some guy thousands of dollars to increase your traffic if you don't know how much traffic you're currently getting. It's a fool's errand. He can tell you you're getting twice as much traffic and you'll never be able to verify it.

Before you do any kind of work on your site, get yourself set up with a good web site traffic analysis tool. The WunderCounter can give you all the information you need to arm yourself with before spending the time and/or money on optimizing your site. There are also a number of other services you can use to analyze your site traffic. The main thing is to be fully informed before you go making changes. You should also be aware that, by making a lot of changes, you may actually decrease the amount of traffic you're getting, so you should have a way of measuring that so that you can protect yourself and be able to reverse bad choices.

So, basically what I'm trying to say is that any meaningful set of measurements requires a baseline to measure against. If you optimize before setting your baseline, many of your measurements will largely be meaningless.

Tuesday, December 8, 2009

Twitter and Avoiding Weak Passwords

A friend and I were recently poking around the Twitter signup process, having a look at how the field validation takes place. As we were doing so, we noticed that Twitter has embedded a list of banned passwords into the source of the following page:


Just to make it easy for you, I've reproduced the list on this page. I've filtered out some of the racier ones just to keep things family friendly. If you'd like to see the full, original list, just open up the source code of https://twitter.com/signup with your favourite browser, search for "twttr.BANNED_PASSWORDS" and you'll find the entire list.

The reason I present this is because it's an interesting study of what Twitter thinks is a bad idea. I would guess that many of these passwords were taken from published lists of passwords used when cracking accounts. If you currently use passwords which resemble any of these listed below, I'd encourage you to change them as soon as possible.
  • 111111
  • 11111111
  • 112233
  • 121212
  • 123123
  • 123456
  • 1234567
  • 12345678
  • 131313
  • 232323
  • 654321
  • 666666
  • 696969
  • 777777
  • 7777777
  • 8675309
  • 987654
  • aaaaaa
  • abc123
  • abc123
  • abcdef
  • abgrtyu
  • access
  • access14
  • action
  • albert
  • alexis
  • amanda
  • amateur
  • andrea
  • andrew
  • angela
  • angels
  • animal
  • anthony
  • apollo
  • apples
  • arsenal
  • arthur
  • asdfgh
  • asdfgh
  • ashley
  • august
  • austin
  • badboy
  • bailey
  • banana
  • barney
  • baseball
  • batman
  • beaver
  • beavis
  • bigdaddy
  • bigdog
  • birdie
  • bitches
  • biteme
  • blazer
  • blonde
  • blondes
  • bond007
  • bonnie
  • booboo
  • booger
  • boomer
  • boston
  • brandon
  • brandy
  • braves
  • brazil
  • bronco
  • broncos
  • bulldog
  • buster
  • butter
  • butthead
  • calvin
  • camaro
  • cameron
  • canada
  • captain
  • carlos
  • carter
  • casper
  • charles
  • charlie
  • cheese
  • chelsea
  • chester
  • chicago
  • chicken
  • cocacola
  • coffee
  • college
  • compaq
  • computer
  • cookie
  • cooper
  • corvette
  • cowboy
  • cowboys
  • crystal
  • dakota
  • dallas
  • daniel
  • danielle
  • debbie
  • dennis
  • diablo
  • diamond
  • doctor
  • doggie
  • dolphin
  • dolphins
  • donald
  • dragon
  • dreams
  • driver
  • eagle1
  • eagles
  • edward
  • einstein
  • erotic
  • extreme
  • falcon
  • fender
  • ferrari
  • firebird
  • fishing
  • florida
  • flower
  • flyers
  • football
  • forever
  • freddy
  • freedom
  • gandalf
  • gateway
  • gators
  • gemini
  • george
  • giants
  • ginger
  • golden
  • golfer
  • gordon
  • gregory
  • guitar
  • gunner
  • hammer
  • hannah
  • hardcore
  • harley
  • heather
  • helpme
  • hockey
  • hooters
  • horney
  • hotdog
  • hunter
  • hunting
  • iceman
  • iloveyou
  • internet
  • iwantu
  • jackie
  • jackson
  • jaguar
  • jasmine
  • jasper
  • jennifer
  • jeremy
  • jessica
  • johnny
  • johnson
  • jordan
  • joseph
  • joshua
  • junior
  • justin
  • killer
  • knight
  • ladies
  • lakers
  • lauren
  • leather
  • legend
  • letmein
  • little
  • london
  • lovers
  • maddog
  • madison
  • maggie
  • magnum
  • marine
  • marlboro
  • martin
  • marvin
  • master
  • matrix
  • matthew
  • maverick
  • maxwell
  • melissa
  • member
  • mercedes
  • merlin
  • michael
  • michelle
  • mickey
  • midnight
  • miller
  • mistress
  • monica
  • monkey
  • monkey
  • monster
  • morgan
  • mother
  • mountain
  • muffin
  • murphy
  • mustang
  • naked
  • nascar
  • nathan
  • naughty
  • ncc1701
  • newyork
  • nicholas
  • nicole
  • nipple
  • nipples
  • oliver
  • orange
  • packers
  • panther
  • panties
  • parker
  • password
  • password
  • password1
  • password12
  • password123
  • patrick
  • peaches
  • peanut
  • pepper
  • phantom
  • phoenix
  • player
  • please
  • pookie
  • porsche
  • prince
  • princess
  • private
  • purple
  • pussies
  • qazwsx
  • qwerty
  • qwertyui
  • rabbit
  • rachel
  • racing
  • raiders
  • rainbow
  • ranger
  • rangers
  • rebecca
  • redskins
  • redsox
  • redwings
  • richard
  • robert
  • rocket
  • rosebud
  • runner
  • rush2112
  • russia
  • samantha
  • sammy
  • samson
  • sandra
  • saturn
  • scooby
  • scooter
  • scorpio
  • scorpion
  • secret
  • sexsex
  • shadow
  • shannon
  • shaved
  • sierra
  • silver
  • skippy
  • slayer
  • smokey
  • snoopy
  • soccer
  • sophie
  • spanky
  • sparky
  • spider
  • squirt
  • srinivas
  • startrek
  • starwars
  • steelers
  • steven
  • sticky
  • stupid
  • success
  • summer
  • sunshine
  • superman
  • surfer
  • swimming
  • sydney
  • taylor
  • tennis
  • teresa
  • tester
  • testing
  • theman
  • thomas
  • thunder
  • thx1138
  • tiffany
  • tigers
  • tigger
  • tomcat
  • topgun
  • toyota
  • travis
  • trouble
  • trustno1
  • tucker
  • turtle
  • twitter
  • united
  • vagina
  • victor
  • victoria
  • viking
  • voodoo
  • voyager
  • walter
  • warrior
  • welcome
  • whatever
  • william
  • willie
  • wilson
  • winner
  • winston
  • winter
  • wizard
  • xavier
  • xxxxxx
  • xxxxxxxx
  • yamaha
  • yankee
  • yankees
  • yellow
  • zxcvbn
  • zxcvbnm
  • zzzzzz