Why in-text ads suck and what to do about it

Have you ever visited a web site with contextual advertisements associated with certain words within the text of the page? It looks like this:

Kontera links

Moving your cursor over one of the links produces a pop-up advertisement that blocks the text you were reading. Here’s the ad I saw when I inadvertently moved my mouse over the “business” link:

Pop-up advertisement

Can anyone explain to me what Bloomberg Businessweek has to do with Dell knowingly selling defective products? So much for the contextual aspect of the contextual ads. All that’s left are the annoying aspects!

The company behind this little “innovation” is called Kontera. The way it works is like this:

  • Advertisers publish ads to be displayed with certain keywords.
  • Publishers sign up to host ads.
  • Publishers place a reference to a Javascript file hosted at kontera.com on their web page.
  • The Javascript file inserts the links into the text, as the page is rendered.

Frankly, I find this sort of thing highly irritating. Here I am, trying to learn about why Dell knowingly shipped faulty computers, and all the sudden the text of the article I’m reading is covered by an animated ad. Now, I have to stop, click the little X to close the darn thing, and find my place all over again.

What this says to me is that neither Kontera, nor the publisher (in this case Gnomelocker.com) have any concern about my experience reading their content. Their only concern is using their content as a means to deliver advertisements, in pursuit of a buck. It makes me not want to read Gnomelocker.com or any other publisher that used Kontera.

At home, I’ve found a solution that works like a champ. I added the following entry into my hosts file: te.kontera.com

Now, whenever my browser requests the Javascript file from te.kontera.com, it is redirected to my localhost and fails to load the file. Problem solved.

Unfortunately, when you use a proxy server – like most corporations – the browser defaults to resolving host names via the proxy server rather than using the hosts file. So, my solution only works at home.

Hmmm… I wonder what it would take to get te.kontera.com added to our corporate black-list? Hmmm…


As much as I love Rally for managing work, I think I may have found something better. Votebox is where Dropbox users can request features and vote for those they’d most like to see. What I like about it is how simple it is:


Here you see the three most popular feature requests on their site. Each feature request contains a title, a short description, a category (not shown) and some metadata (in red). Users may vote for and comment on feature requests (in blue). And, Dropbox can update the status of a specific request (in green).

This is the simplest, most elegant site I’ve ever seen for managing a backlog of work. It simultaneously a) houses the backlog, b) tracks feedback, c) gauges interest in competing priorities, d) communicates progress, and e) manages expectations. It’s like a suggestion box that worked out really hard, but never took any steroids. It has all the muscle it needs, without all the bulging veins and other side effects (er, features) of larger sites like Rally.

The only thing I’d be hesitant to do with a tool like this is turn over product decisions to the crowd. What makes Votebox work for Dropbox is that Dropbox has stayed true to their original product vision – a simple, 100% reliable way to backup files to the Internet and sync them across multiple computers. Feature requests outside that vision may be popular, but they would dilute the brand, causing more harm than good to the product.

Rather, I see Votebox as a tool to help talented Product Owners with strong visions for their products interact with their audiences.

Time Tracking

Having spent much of my career as a consultant, I’m used to tracking my time against customer and project codes. But, in that environment, there is a tangible value associated with entering my time. If I don’t enter it, I don’t get paid.

But, corporate IT time tracking systems don't usually offer users anything tangible in return for their participation. Sure, I could run a report to see where I’m spending my time. But, how much value does that provide me as an individual contributor? (Okay, I suppose it might be helpful during my annual review. Maybe.)

What I’d really like to see is a system that gives me something in exchange for the time it takes me to use the system. For example, I know of a consulting company that implemented a 360 degree project and peer review system on top of their time tracking system. Their inspiration was the Amazon.com product rating system. It worked like this:

When an employee entered their time into the tracking system (which by the way had a very strong search mechanism for finding the right customer and project codes), they were asked to answer a few generic questions about the project, like this:

  • How do you feel about this customer? (very good, good, not good, bad)
  • How do you feel about this project? (very good, good, not good, bad)
  • How do you feel about this team? (very good, good, not good, bad)

Next, the employee was asked how they felt about working with each of the individuals who’d recently billed time to that same project code, using the same scale: very good, good, not good, bad.

Finally, every question also provides space for comments. These were optional as well. Typically they were used to give out kudos. Though sometimes people used it for “constructive” criticism, as well.

Once the user completed their survey, they were taken to a summary page that displayed the current week’s results, including: (Users were not allowed to see the current week’s results until they completed their survey.)

  • Your personal weekly peer review rating
  • Your personal comments from the weekly peer review
  • Your personal peer review rating trend (a graph of your rating over time)
  • Weekly ratings for every customer, team and project you worked with/on during the week
  • Comments for every customer, project and team you worked with/on during the week
  • Rating trends for every customer, project and team you worked with/on during the week

All data in the system was treated anonymously, but all data in the system was available to everyone in the company. So, people felt safe venting, but also knew that everyone could see what they were typing. This kept the comments civil – if not always 100% constructive.

The end result – it took a little longer to use the system, but everyone got something out of it:

  • The accountants got the billing information they needed.
  • Management got valuable insight into how well their projects were going (way before a traditional status reporting system would’ve provided that information).
  • Management got valuable insight into which customers were not worth the trouble, and were able to take proactive steps to disengage from those unhealthy relationships.
  • Management got valuable insight into which employees were truly admired (or reviled) by their peers and could take action (bonuses!) accordingly.
  • And, individual employees got weekly feedback on their performance.

Why haven't more companies leveraged the eyeballs they're putting on their corporate time tracking systems?

On Source Control and Flow

While working on a new WCF front-end for some legacy software today, I wanted to go look at how another team setup the WIX file for their service. So, I fired up a second copy of Visual Studio and began fighting with AccuBridge. Here’s the sequence of events:

  • Launch Visual Studio
  • Open solution from Start Page
  • Wait...
  • Wait some more...
  • Wait a little while longer...
  • Accept changes that AccuBridge found in the repository
  • Wait...
  • Realize I opened the wrong solution
  • Try to open correct solution
  • No response, just a throbbing AccuRev icon in my status bar


  • Wait some more...
  • Try to close Visual Studio


  • Wait a little while longer...
  • Finally, AccuBridge finishes futzing around and allows me to open the correct solution
  • Wait...
  • Wait some more...
  • Wait a little while longer...
  • Accept changes that AccuBridge found in the repository
  • Open the WXS file and find the line of code I need

Without AccuBridge, this process would have taken 2 minutes, tops – even with accidentally opening the wrong solution. With AccuBridge, this process took a rather frustrating 10 minutes. I almost forgot what it was I was looking for.

Some might argue that I should have just popped over to Windows Explorer and viewed the file in Notepad. Others might argue that I should turn off AccuRev integration in Visual Studio. But, neither of those solutions is optimal: one loses syntax highlighting, the other loses source control integration.

It seems to me that the proper solution would be for my source control provider to wait for an explicit command before running off to check the repository for updates. It also seems to me that a plug-in should allow the parent application to close, regardless of what it is trying to do when the end user asks to close the application.

Why these things don’t work this way, I do not know. One thing I do know – it would do wonders for my flow.