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…

iPhone 3GS Security Flaw

Apparently, the iPhone 3GS has a security flaw that would allow someone to access the data on a PIN protected device by connecting it to a computer running Ubuntu Lucid Lynx. (There was no mention of the iPhone 3G or the iPad having the problem. And, the original iPhone device didn’t offer encryption at all.)

Obviously, this kind of attack would only work if the hacker had possession of the actual iPhone. But, phones get misplaced all the time. Because of this, if you own an iPhone and you care about the security of the information on the device, you need the ability to reset the device remotely.

For corporations running Microsoft Exchange 2007:

You can initiate a remote wipe using the Exchange Management Console, Outlook Web Access, or the Exchange ActiveSync Mobile Administration Web Tool.

iPhone OS Enterprise Deployment Guide (page 9)

Individual iPhone owners can use MobileMe to “Remote Wipe” their device should it be irretrievably lost. Though, the service costs $99/year, it does include many other services.

Birthday WiX Wishes

My birthday is coming in early June. If I could have anything in the whole wide world, I’d take one billion dollars. But, if I could only have something from the whole WiX world, then here’s what I’d like:

I want a WiX project template specific to my environment:

  1. I want the template to nail down all the little things we never/rarely do in our current installers, like checking for the right version of IIS, checking for previously installed versions of the application, etc.
  2. I want the template to be able to install an application in multiple environments.
  3. I want the template to auto-detect the platform, if possible.
  4. I want the template to accept command-line or UI driven properties where auto-detection of the environment is not possible.
  5. I want the template to separate static code from dynamic code (using WiX include files containing project specific information).
  6. I want to be able to point the template at a directory and have it auto-generate the appropriate Feature, Directory, Component, and File elements for installing all those files into a target directory.
  7. I want the auto-generator to understand files with DEV, TST, ACC, PRD in their names and setup conditional components as appropriate.
  8. I want the auto-generator code to work with our build process so that the WXS file can be generated at build time – preferably based on a recursive crawl of a root folder, to minimize the maintenance costs/risks.

Anyone interested in helping me blow out some of the candles?

WCF Service Configuration Editor

So, I’ve been working on a small WCF service for a while now. Everything was going well. I had a suite of tests that ran just fine when I ran the service locally. I built an installer using WIX. And, blamo! When I installed the service on a DEV server, I started seeing all kinds of strange errors. Apparently, the service web.config and the client app.config that worked locally aren’t sufficient once you leave the safety of localhost.

And, as it turns out, those config files are horrendously complex. Fortunately, there is a tool to make editing those files a little easier: The WCF Service Configuration Editor. This tool, which is available on the Tools menu in Visual Studio 2008, gives you a GUI for editing the <system.serviceModel> node of a web.config. Here’s what it looks like:

WCF Service Configuration Editor

Granted, it’s not the most intuitive thing to use. And, I’ve only used it this one time. But, it sure took the hand out of hand-editing the web.config for the WCF middleware service.