Conflicting Reports on IE Market Share

Internet Explorer 8 came out today, I’ve been using the beta a bit and it’s actually pretty good.  I’ve never used IE routinely but as it renders pages differently from other browsers, I use it for compatibility testing.  Come to that, I use lots of Microsoft products, I don’t disparage them just because they’re Microsoft.  I do prefer alternatives though, if they do what I need.

So the news sites have the obligatory stories on IE’s declining browser market share.  I came across this gem of misinformation on Wired, from Reuters: 

According to a recent survey by IT consultants Janco Associates Inc, Internet explorer has a 72.2 percent market share, ahead of the Mozilla Foundation’s Firefox browser with 17.2 percent. Google Inc’s new Chrome browser has only 2.8 percent of the market, while Apple Inc’s Safari has less than 1 percent.

Not quite sure what they mean by ‘recent’, perhaps five years ago?  OK Chrome wasn’t out then, but, still.  So I did a little survey of my own website stats going back to September 2007, when I switched to Google stats.

browser_share_sm.png
So in 2007, IE’s share was just under 60%, now it’s just under 50%.  Firefox is up from 32% to almost 40%, Safari and Opera are trucking along at 4-5% each (though some stats sites have Safari at 8-9%), and Chrome is 3% and growing.

I think it’s safe to say my site does not attract a broad cross-section of society, which would explain why it leads the way in embracing the values of Anything But Microsoft.

Lots of Screen Captures

Recently I got around to another thing I’ve been meaning to do, which is to allow more than one screen capture per program.  I was getting pretty tired of seeing the same pictures, and plenty of programs have lots of sample images up on their web sites.  Part of the reason was laziness on my part, and part was poor software design.  I’m not sure which of these I feel better about.

The software design aspect was something that has bitten me before, and I haven’t learned. 

prog_208_anatomist_0_200_197.jpg

 In my haste to get the screen captures feature implemented, I made ‘screencap’ a field of the ‘program’ table in the database.  This is easy: it only requires adding one field to the database and then remembering to extract the name of the screen capture image file when I retrieve the program’s name, URL and so forth.  Of course, the limitation here is that there is only one field for a screen capture file so it doesn’t scale nicely,  or at all.
So I went back in recently and as usual improving the design took no time at all.  I made a new database table called ‘image’, which will be used to store the details of all images.  There’s a field in the table that links back to the ‘program’ table, so with one more MySQL call I can get all the screen captures that relate to a program.  I should have done it this way to start with.
Of course, once I started with the database table for the image files, new improvements suggested themselves.  The biggest gain is that I can now quickly pull up the exact size of an image and include this as part of the img tag in the HTML.  This should help the pages load faster as the browser now knows exact image sizes in advance, instead of having to load the images to determine their size.

prog_109_isosurf_0_109_200.jpg

The other improvement was to pre-calculate reduced size versions of each image capture file.  I use three sizes: full sized, for the popup screen captures, 320 pixel width for the pages of just screen caps, and 200 pixel width for the screen cap tooltip popup.  I have to admit that previously I’d been loading the entire image file even when it was just displayed at 320 pixel width.  With the reduced image files, the 320-width version can be 10 times smaller than the full size.  Needless to say I used PerlMagick, the Perl API to ImageMagick, as I have hundreds of image files to process and am not fond of doing things by hand (I characterize this as Actual Work whereas programming is more along the lines of recreation).  The image-creating program got a bit involved, as it has to check for database duplicates, come up with unique image file names and so forth.  But the gist of the work is done in just a few lines:
        $image->Scale(width  => $newwidth,
                      height => $newheight);
        $image->Composite(image   => $magimage,
                          compose => ‘Atop’,
                          gravity => ‘SouthEast’);
 

prog_276_mevis_3_320_236.jpg

The first bit does the scaling, obviously, and the second adds the little magnifying glass icon to the bottom right corner.  I’d pre-calculated this to be 40% transparent so it doesn’t overpower the screen cap image.  Now that I’ve put the work into writing a program to create the reduced size image files, I can easily change their size or add a new size.  Should have done it this way the first time.
The screen caps on this page are largely gratuitous.  And they’re all volume renderings because they just look good.  All the programs that do volume renderings do a lightbox view as well, but for the purposes of general illustration the volume renderings work well.  And I have plenty of images to use, I just added 170 so now have just over 300 screen caps.  I started with the most active programs and now slowly I’m working my way through all the programs, visiting their websites and capturing images (I’m up to ‘D’).  Programs that I have personally used often have a capture of my own MRI.

Icons Worth One Word Each

A month ago I added icons to most program names and listings, to show the platform the program runs on, and its user interface.  I used to have this information only listed on each program’s page but I’d like to make it more obvious before you click on a program, what it runs on, and whether it’s GUI or not.  I try not to use images where words can work, but words like ‘Windows’ take up a lot of horizontal space.

So this guy and its permutations are for the operating systems.  To get them to line up
plat_win_mac_linux.png
when stacked above each other in a table, I made all the constituent icons 16 pixels wide
with a 1-pixel space either side.  So the 3-wide icon group is always 54 pixels wide.  The icons themselves I made up myself just by shrinking logos and then cleaning them up a bit with a graphics program.  I put them together along with 16-pixel wide transparent spacers using the amazing ImageMagick.  They’re actually 50% transparent as with so many of them on a page, they were looking a bit overpowering, particularly the Apple icon. 

The interface icons are a bit less intuitive, and I debated whether to include them.  I have hover-text explanations on them so after reading that once or twice I hope it’ll be
interface_gui_cmd_lib.png
clear what they mean (they are ‘GUI’, ‘Command Line’, and ‘Library’, in that order).  They’re also 16 pixels wide; I got them from famfamfam’s beautiful ‘Silk’ icon set.  Categorizing by interface probably isn’t as important to a lot of users, particularly as most Windows programs are GUI, but for Linux (and hence Mac) power users, it’s nice to be able to find the command line programs.  And for super users, programs that provide programming libraries or APIs are just wonderful.

The name of the icon group is systematic so I can create it in the CGI programs, the image files are named like plat_win_mac_linux.png for all 3 platforms as above, or plat__mac_.png for just Macintosh.   I put them into groups of 3 to avoid lots of little sub-tables, or tables with dozens of columns, and yet still get them nicely aligned horizontally.  They seem to load pretty quickly despite the front page having 68 of the platform and interface icons.  They’re only about 2 kB each (ImageMagick is frugal with bytes) and the browser will cache them, so they each should only need to be loaded once. 

The tip text Javascript comes from Dynamic Web Coding’s ‘Tooltip’ library.  This is a really nicely designed and implemented library with all sorts of features.  I felt guilty for not learning Javascript and doing it myself, but this passed in about 10 seconds.  This is a good library and I’m fine with licensing someone else’s code.  I next want to incorporate their ‘Scrolling Divs’ library for the screen capture images.