As threatened, I re-ran my Browser Market Share numbers, but restricting the analysis to people who came to ongoing as the result of a search. It shows a pattern much more like what others in the industry are reporting: Internet Explorer has a large but steadily-diminishing lead. Here’s the chart, plus some notes on methodology and believability.

Browsers arriving at ongoing via a search engine

I think the people who come here via a search engine are much more representative than the geeks, hacks, and weirdos in the regular readership (but hey, I love y’all). Here’s some evidence; the top ten Google searches so far this week are: “mukhtaran mai”, “dyndns”, “tim bray”, “ongoing”, “browser market share”, “binary search”, “bittorrent porn”, “debbie does dallas”, “glitters”, and “white flowers”.

Even stronger: remember that I get way more Google image than string searches, and the top ten image searches are: “grass”, “beach”, “yankee stadium”, “sun”, “construction”, “bristol”, “white flowers”, “9/11”, “concorde”, and “glacier”.

Interestingly, ongoing has progressed from just over 3,000 search-sourced visitors a week in early 2004 to around between 9,000 and 12,000 these days.

As always, transparency is good, so I attach the Perl script that I use to process one week’s data. Bug reports are gratefully received.

#/usr/bin/perl

use strict;
my $f = '\S+\s+';
my %engines;

my @bnames = ('IE', 'Mozilla', 'Safari', 'Opera', 'Lynx');
my %browsers;
my $count = 0;
my %puzzle;

my $lastGImage;
while (<STDIN>)
{
  my $who;
  my $referer;
  my $agent;

  if (/^(\S+)\s+$f$f$f$f$f$f$f$f$f\"(\S+)\"\s+\"(.*)\"$/o)
  {
      $who = $1;
      $referer = $2;
      $agent = $3;
  }
  
  s/\" .*$//;
  my $e = '';
  next if ($referer =~ /^-?$/);
  if    ($referer =~ /search\.yahoo/)               { $e = 'Yahoo'; }
  elsif ($referer =~ m@^http://images.google@)
  {
      if ($who ne $lastGImage) { $e = 'Google Images'; }
      $lastGImage = $who;
  }
  elsif ($referer =~ m@^http://www.google.*search@) { $e = 'Google'; }
  elsif ($referer =~ m@^http://search.msn.com@)     { $e = 'MSN'; }
  elsif ($referer =~ m@^http://web.ask.com@)        { $e = 'Ask Jeeves'; }
  if ($e)
  {
      $engines{$e}++;
      &browser($agent);
  }
}

my $b;

# Turn on from time to time to sanity-check
if (0)
{
    foreach $b (sort keys(%puzzle))
    {
        print "$puzzle{$b} $b\n";
    }
}

$ARGV[0] =~ s/\..*$//;
print "$ARGV[0]\t";
foreach $b (@bnames)
{
    printf "%0.1f\t", 100.0 * $browsers{$b} / $count;
}
print "\n";

print STDERR "Total searches: ", $count, "\n";

sub browser
{
    my $b = shift;
    my $a = '';

    if    ($b =~ /lynx/i) { $a = 'Lynx'; }
    elsif ($b =~ /Safari/i) { $a = 'Safari'; }
    elsif ($b =~ /opera/i) { $a = 'Opera'; }
    elsif ($b =~ /MSIE/) { $a = 'IE'; }
    elsif ($b =~ /Mozilla.*Gecko/) { $a = 'Mozilla'; }

    if ($a)
    {
	$browsers{$a}++;
	$count++;
    }
    else    { $puzzle{$b}++;   }
}

author · Dad · software · colophon · rights

July 07, 2005
· Technology (87 fragments)
· · Publishing (157 more)
· · Web (393 more)

By .

The opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.