PopUp Killer… and why I’m not a millionaire

If you had access to the Internet circa 1995 then you may know or at least, have heard about, a program called PopUp Killer.
At that time, it was the only solution to prevent pop-ups from disturbing your Internet experience.

Back in the day we didn’t have spam, or web worms/viruses — we had pop-ups. Basically, these were just new instances of a browser displaying some sort of advertising so when you visited a particular web site, it would launch one or more instances of the browser with small windows containing ads.
These weren’t harmful (at first) and you could just close them “by hand”, but they were extremely annoying since a single web site could display a series of pop-ups by simply visiting different sections of the web site, you could soon end up having all sorts of problems; does anyone remembers the dreaded “Insufficient Windows System Resources” error?

As time passed, these pop-ups became more and more aggressive so that when you would close one, another one would popup, as they were intercepting the onUnload event to perform additional actions as you interacted with the browser window.

Overtime, this situation became unbearable, so I decided to do something about it and this is how the first ever pop-up blocker was born.

One thing I noticed is that all pop-ups had very similar titles. Of course, these were intended to capture your attention but they were also the basis to detect and identify them.
So based on this observation I coded an application that would:

  1. Monitor all the opened windows
  2. Obtain these windows’ title (caption)
  3. Match the titles with a set of predefined known titles (black list)
  4. Close those windows whose title matched one of the entries in the black list

The program was developed using Visual Basic 6 and on the first try it worked perfectly. Of course, since VB6 does not provide any means to enumerate processes (or their windows) I had to rely on a series of API calls but, fortunately, these were very well documented.

The code to enumerate the windows looked something like this:

Function EnumWindowsProc(ByVal wHandle As Long, lParam As Long) As Long

    If wTitle(wHandle) <> "" Then
        ReDim Preserve lHandles(UBound(lHandles) + 1)
        lHandles(UBound(lHandles)) = wHandle
    End If
    EnumWindowsProc = True

End Function

Sub GetWindowHandles()

    Dim lParam As Long
    ReDim lHandles(0)
    EnumWindows AddressOf EnumWindowsProc, lParam

End Sub

There were some additional functions to ease the process of gathering the windows’ title text but, basically, that was all the code that was needed for the program to know which windows were currently open.

Again, the list of all the windows’ titles was matched against a predefined list of known spam-titles and those that matched were simple closed, by issuing a WM_CLOSE message through the PostMessage function.

The thing worked so well (as I was finally able to navigate, uninterrupted, through the Internet) that I decided to make it public.
And there’s exactly when things started to get… interesting.

Just 4 days after releasing the first version I started to receive countless emails regarding (a) problems some were having and (b) suggestions to improve it.

Doing my best, I tried to reply to all of them and when I had the time I worked on improving the program as much as I could, mainly based on the many suggestions I received.

But the really interesting thing that started to happen is that pop-ups started to evolve… many pop-ups, regardless of their content, started to use titles such as “Microsoft Word”, “Solitaire”, and some didn’t have a title at all.
This was a clear indication that spammers knew about PopUp Killer and started to “tweak” their pop-ups in order to bypass its filters.

So the next step was to improve PopUp Killer’s detection algorithm so that it wouldn’t only rely on the popup’s window text. Also, at this time, there were other browsers being released (such as Opera) which handled new windows in a very different way as Internet Explorer and Netscape Navigator did.

So, in October 1998, PopUp Killer 1.5 was released. This version included something known as “Smart!” technology.
This feature blocked new windows based on (a) their class and (b) their size.
The class was used to identify the source of the window and its size was compared to the size of other windows from the same class, effectively identifying pop-ups, regardless of their title.
Also, the ability to detect the windows’ classes allowed PopUp Killer to easily support new browsers.
Among other improvements, version 1.5 also supported wildcards and the ability to share the black lists — actually, at that time, there were web sites solely dedicated to share PopUp Killer’s black lists.

Something I haven’t mentioned, but was one of the things users liked the most, is the sound PopUp Killer made every time it killed/closed a pop-up:

PopUp Killer Default Sound

This feature was so popular that post-1.5 version supported sound packs that allowed you to choose from a variety of sounds.

Continuing with the story…

PopUp Killer on the news

All of a sudden, I get calls from CNN, CompuUSA, Wired, c|net, USA Today, The New York Times and many other “important” news-related sources to appear in off-line interviews regarding pop-ups in general and the motivations for creating PopUp Killer.

Here’s an excerpt from the interview with Wired Magazine (7/20/2001):

The most heavily downloaded ad-killing software program at Download.com is Pop-Up Killer, with over 160,000 downloads. Developed by Dominican Republic resident Xavier Flix in 1995, it was first inspired in part as a vendetta against Geocities, who he believes hijacked a utility he had previously created to facilitate their then cumbersome uploading process.

“It’s a personal issue against Geocities for me,” Flix said. “I thought I can make a program to kill their pop-ups and make life even harder for them. I made it and then more and more websites were using pop-ups, so I decided to make it work for any kind of pop-up. Without even noticing, I was having 20,000 to 30,000 hits a month of people downloading it. We’re the only program that can kill the Geocities box.”

NOTE: I’ll be writing an article regarding the mentioned GeoCities application (2Geo) in the future.

And here’s an excerpt from the USA Today interview (1/28/2002):

Computer programmer Xavier Flix hates those pesky pop-up advertising windows that are showing up with more and more frequency these days.

“At least when I watch TV I can switch channels when the commercial starts,” he says. “Pop-ups leave us with no options. They’re annoying and intrusive.”

Flix, based in the Dominican Republic, created PopUp Killer, a free software program that automatically prevents the ads from popping up on your computer screen. It’s the No. 1 program of its type at Download.com, where it has been picked up by nearly 500,000 surfers. And while Flix has clearly struck a chord, he’s got plenty of competition.

And so PopUp Killer gets over 4 million downloads. Yep, in February 2002, PopUp Killer was among the most downloaded applications of all time.
Due to its success, many other “similar” applications started to appear, but none matched the efficiency of PopUp Killer — of course, no one really knew (at that time) how it really worked. Also, most of the competition only worked for Internet Explorer, while PopUp Killer worked with all available browsers.

That same year, PopUp Killer 1.7 was released. This would be the last (publicly available) version.

Although there were nearly 5 million official downloads of PopUp Killer (since its release) I just wasn’t able to keep up with the support requests. In 2002, PopUp Killer (even with all the competition) was being downloaded over 8,000 times a day… and even though many were donating I still felt it was a lost cause:

  1. Way too many pop-up killers, blockers, fixers, solutions, etc…
  2. Way too many support requests/emails (over a million in just 3 years)
  3. Rapid and extreme changes in browsers
  4. Many new browsers

These were basically the reasons I stopped working on PopUp Killer and decided to abandon it on 3/3/2002

What a stupid decision, you may think, but trust me, it was the right one… or so I thought!

So why am I not a millionaire after developing such a popular application?
Basically because programmers aren’t good businessmen.

But besides that, let me enumerate the reasons, in chronological order:

  1. When PopUp Killer became one of the most downloaded applications from download.com I should have expanded and contracted, at least, two developers and one person to handle miscellaneous support requests
  2. Although I do not condone nor agree with software patents, I should have patented PopUp Killer’s technology, which at version 1.7 was able to block all sorts of pop-ups including html-based, javascript-based, java-based, flash-based, etc…
  3. When I started to receive calls for interviews, I should have concentrated on promoting PopUp Killer, instead of expressing my frustrations (regarding pop-ups)
  4. When I was offered links exchanges between competitors, no matter how lucrative they sounded (and they actually were), I should’ve said “no
  5. When things started to get unmanageable (due to the amount of support requests) I should have implemented a pay-per-support mechanism, while still maintaining the program free

Unfortunately (one may say, although I don’t regret anything):

Everything I’ve done so far is based on instinct and love.
Poetic… but not lucrative.