<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cotsweb.com Blog &#187; Web Design</title>
	<atom:link href="http://www.cotsweb.com/blog/category/web-design/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cotsweb.com/blog</link>
	<description>Web design, Website development and life in the Cotswolds</description>
	<lastBuildDate>Thu, 09 Sep 2010 12:57:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Styling &lt;abbr&gt; tags and displaying tooltips</title>
		<link>http://www.cotsweb.com/blog/styling-abbr-tags-and-displaying-tooltips-179.html</link>
		<comments>http://www.cotsweb.com/blog/styling-abbr-tags-and-displaying-tooltips-179.html#comments</comments>
		<pubDate>Thu, 09 Sep 2010 12:57:54 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[abbr]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=179</guid>
		<description><![CDATA[I have been working on a site which includes some abbreviations so I thought the obvious thing to do was to use the HTML abbr tag to explain them. Nice browsers like Opera and Firefox display abbreviations with a blue dashed line underneath, when you hover over the text a tooltip pops up to display [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working on a site which includes some abbreviations so I thought the obvious thing to do was to use the HTML abbr tag to explain them.</p>
<p>Nice browsers like Opera and Firefox display abbreviations with a blue dashed line underneath, when you hover over the text a tooltip pops up to display the title text of the abbreviation.  So you can do something like this to expand an abbreviation</p>
<p><pre><code>
&lt;abbr title=&quot;Hyper Text Markup Language&quot;&gt;HTML&lt;/abbr&gt;
</code></pre></p>
<p> Chrome &amp; Safari offer the tooltip feature but don&#8217;t show the dashed underlining unless you provide a style for the abbr tag.  Internet Explorer is different again, IE7 &#038; IE8 will display the tooltips (but not very reliably) but ignore the styling, IE6 doesn&#8217;t do anything.</p>
<p>To get <abbr> working properly in all browsers I thought I would try adding a class to each tag to see if Internet Explorer liked that.  I had already styled the <em>abbr</em> element to keep Chrome &amp; Safari happy so I just added a selector for a new abbr class to the existing style.</p>
<p><pre><code>abbr, .abbr {
border-bottom-style: dashed;
border-bottom-width: 1px;
border-bottom-color: blue;
}</code></pre></p>
<p>It worked better than I could have hoped, I didn&#8217;t need to add <em>class=&#8221;abbr&#8221;</em> to any of my html abbr tags at all.  It seems that just declaring a style for a class of .abbr makes Internet Explorer work like the other browsers.  And as a real bonus it also works in IE6 and IE8 behaves more consistently too!</p>
<p>I don&#8217;t know why this works and perhaps I am not the first to discover this but I thought it was worth sharing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/styling-abbr-tags-and-displaying-tooltips-179.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How many people have javaScript disabled in their browsers?</title>
		<link>http://www.cotsweb.com/blog/how-many-people-have-javascript-disabled-in-their-browsers-161.html</link>
		<comments>http://www.cotsweb.com/blog/how-many-people-have-javascript-disabled-in-their-browsers-161.html#comments</comments>
		<pubDate>Wed, 25 Aug 2010 14:15:46 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mySQL]]></category>
		<category><![CDATA[javaScript]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=161</guid>
		<description><![CDATA[cotsweb is running a little trial to answer the question What percentage of browsers have javaScript enabled?. This site isn&#8217;t busy enough to give a useful answer but we are using it as a trial to make sure that our method works and that it doesn&#8217;t mess up the existing site before rolling it out [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cotsweb.com">cotsweb</a> is running a little trial to answer the question <em>What percentage of browsers have javaScript enabled?</em>.  This site isn&#8217;t busy enough to give a useful answer but we are using it as a trial to make sure that our method works and that it doesn&#8217;t mess up the existing site before rolling it out to a busier site.</p>
<h3>Method</h3>
<p>It&#8217;s quite simple in principle.  When a user loads one of the pages we are using for this test several things happen:</p>
<ol>
<li>A PHP script creates a session on the server and logs this in a mySQL database</li>
<li>If no session exists already then the PHP script writes a little bit of javascript into the HTML page to be served</li>
<li>If the client has javaScript enabled on their computer the script will run sending an asynchronous call (to avoid slowing down the pageload while waiting for a response from the server) to the server</li>
<li>Another PHP script on the server will find the mySQL record created in step one and update the javascript_enabled flag</li>
<li>If the client doesn&#8217;t have javaScript enabled then the script won&#8217;t run and the database will not be updated</li>
</ol>
<h3>Results</h3>
<p>So far we have checked <strong>593</strong> sessions and <strong>21</strong> of them have had javaScript enabled, a rate of <strong>3.5%</strong>.</p>
<p>We will give this trial a little time and a bit of analysis before we roll this out for some proper results (and publish the code so other people can do the same). </p>
<p><strong>Edit:</strong> Well the first change was to exclude robots, Googlebot and Slurp from Yahoo! were very quick on the scene and of course they don&#8217;t use javaScript.</p>
<p><strong>Further Edit: 31st Aug 2010 </strong> The second change was to remove the logging from this page, it seems like my little script was interfering with something in the header of the blog page, perhaps Google Analytics.<br />
 I am suspicious about the very low percentage of javaScript we are seeing, further investigation is required.  It could be that people are reading this post through feed readers rather than directly and so not activating the script.</p>
<p><strong>Further Edit: 6th Sep 2010</strong> Something isn&#8217;t right here, the logging works for me but the numbers look far too low.  I wonder if there is something wrong with my javaScript code (I am no javaScript expert) which is causing it not to make the ajax call for most people.  This is the code that is included into the header of the testing page:<br />
<pre><code>
&lt;script type=&quot;text/javascript&quot;&gt;
// 
// This script is part of my javascript logging routine.
// If javascript is enabled it sends a request to the server which will log the fact that javascript is enabled.
// 
// The cunning bit which copes with the fact that IE6 doesn&#039;t know about XMLHttpRequest, thanks to
// http://ajax-prototype.blogspot.com/2007/02/workaround-to-make-ajax-calls-on.html
//
if (!window.XMLHttpRequest) {
&nbsp;&nbsp;window.XMLHttpRequest = function() {
&nbsp;&nbsp;&nbsp;&nbsp;return new ActiveXObject(&#039;Microsoft.XMLHTTP&#039;);
&nbsp;&nbsp;&nbsp;&nbsp;} 
}
//
// Send the PHP session_id to the server script so it can update the log record for this session
//
request=new XMLHttpRequest();
request.open(&quot;GET&quot;,&quot;http://www.cotsweb.com/update_javascript_log.php?session_id=&amp;lt;?php echo(session_id()); ?gt; ,true);
request.send(null);
&lt;/script&gt;</code></pre></p>
<p>Perhaps someone else can see what I have done wrong?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/how-many-people-have-javascript-disabled-in-their-browsers-161.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing the sort order in mySQL to give a rolling month</title>
		<link>http://www.cotsweb.com/blog/changing-the-sort-order-in-mysql-to-give-a-rolling-month-138.html</link>
		<comments>http://www.cotsweb.com/blog/changing-the-sort-order-in-mysql-to-give-a-rolling-month-138.html#comments</comments>
		<pubDate>Fri, 02 Apr 2010 11:45:44 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[mySQL]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[website design]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=138</guid>
		<description><![CDATA[I have been working on a new website for Sophie&#8217;s Baked Delights of Bourton-on-the-Water, Sophie creates the yummiest home-baked cakes (a sample was one of the perks of this particular job) and wanted a website to market her delicious wares. One of the pages displays the monthly menu for Sophie&#8217;s Baked Delights Club, a cake [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working on a new website for <a title="Sophie's home-baked delights in Bourton on the Water" href="http://www.sophiesbakeddelights.co.uk" target="_blank">Sophie&#8217;s Baked Delights of Bourton-on-the-Water</a>, Sophie creates the yummiest home-baked cakes (a sample was one of the perks of this particular job) and wanted a website to market her delicious wares.</p>
<p>One of the pages displays the monthly menu for Sophie&#8217;s Baked Delights Club, a cake club where subscribers get a different home-baked cake delivered to them once per month.  Each month subscribers can choose from  two different cakes made with seasonal ingredients. Quite simple really but we wanted the page to display the menu in monthly order with the current month at the top.</p>
<p>The cake details are stored in a mySQL database so Sophie can go in and change them as she changes her menu.  But we only store the month rather than the full date so that the menu can just roll over from year to year without unneccesary maintenance being required.    This meant that we couldn&#8217;t just read through the file by date nor (except in January) could we just read the months in their normal (Jan, Feb, Mar&#8230;) order, if the current month is April we want to display the months as Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Jan, Feb, Mar (stored as 4,5,6,7,8,9,10,11,12,1,2,3).</p>
<h3>Specifying a sort sequence in mySQL</h3>
<p>Fortunately mySQL has a mechanism for doing this, you can use ORDER BY FIELD in your select statement to specify the order you require.  So the code we need is;<br />
<pre><pre>SELECT * FROM cake_club_menu ORDER BY FIELD(menu_month,4,5,6,7,8,9,10,11,12,1,2,3) , menu_sequence_nbr
</pre></pre><br />
This selects the records we want and sorts them on the field menu_month but in the sequence specified.  The menu_sequence_nbr is a secondary sort field because we have 2 cakes per month and need to keep them in the right column.</p>
<h3>Using PHP to Create the ORDER BY FIELD statement</h3>
<p>Of course we can&#8217;t hard code the ORDER BY FIELD statement as the sequence will change every month, so I created a PHP function to create the  statement, hopefully the following code is pretty clear<br />
<pre><pre>&amp;lt;?php
//
// PHP functions for Sophies Baked Delights
//
function orderByFieldText()
{
//
// Dynamically create text for Order By Field mySQL statement
//   This allows us to list items in month order with the current month first and rolling in to next year
//
//  First get the current month
//
$thisMonth =(date(&quot;n&quot;));
//
//  Now set the base text for the statement - menu_month is the database field we want to order by
//
$orderByField = &quot;ORDER BY FIELD(menu_month,&quot;;
//
// Now loop through 12 times to create the list of month numbers for the statement
//
for ($i = 1; $i &amp;lt;= 12; $i +=1 )
 {
 $orderByField .= $thisMonth;   // Add this month to the statement
 if ($i &amp;lt;&amp;gt; 12) {                // If this isn&#039;t the last item in the list insert a comma
 $orderByField .= &#039;,&#039;;
 }
 else {                         // Else insert a closing bracket
 $orderByField .= &#039;)&#039;;
 }
 if ($thisMonth == 12)          // If we have got to December (12) next month is January (1)
 {
 $thisMonth = 1;
 }
 else {                         //  Else next month is this month +1
 $thisMonth += 1;
 }
 }
return $orderByField;
}
?&amp;gt;
</pre></pre></p>
<h3>Reading the database and displaying the menu</h3>
<p>Then we just need to call the function in the main PHP module and loop through the returned menu records writing the data to the screen as we go.   As you can see from the following code I used a table with a row for each month.<br />
<pre><pre>&amp;lt;table id=&quot;cakeClubMenu&quot;&amp;gt;
 &amp;lt;tbody&amp;gt;
&amp;lt;?php
//
// Populate the order by field for the database lookup
//
$orderByField = orderByFieldText();
//
// Read the cake club menu file to populate the table
//
$sql = &quot;SELECT * FROM cake_club_menu &quot; . $orderByField .&quot; , menu_sequence_nbr&quot;;
$menu_array = mysql_query($sql);
$i = 0;
//
// Now write each line of the table in turn
//
while($menu = mysql_fetch_array($menu_array)) {
 // convert month number to month name for display - thanks to &lt;a title=&quot;An easy way to convert a month number to a month name in PHP&quot; href=&quot;http://www.gilbertpellegrom.co.uk/php-month-number-to-month-name-the-easy-way/&quot;&gt;www.gilbertpellegrom.co.uk&lt;/a&gt;
 $monthNum = $menu[&#039;menu_month&#039;];   
 $monthName = date(&quot;F&quot;, mktime(0, 0, 0, $monthNum, 10));
//
//
 switch ($menu[&#039;menu_sequence_nbr&#039;])
 {
 case 1 :  // 1st cake for the month starts the row
 echo(&quot;&amp;lt;tr&amp;gt;\n&quot;);
 echo(&#039;&amp;lt;td&amp;gt;&#039;.$monthName.&#039;&amp;lt;/td&amp;gt;&#039;.&quot;\n&quot;);
 echo(&#039;&amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;&#039;.$menu[&#039;menu_cake_name&#039;].&#039;&amp;lt;/strong&amp;gt; - &#039;.$menu[&#039;menu_cake_description&#039;].&#039;&amp;lt;/td&amp;gt;&#039;.&quot;\n&quot;);
 break;
 case 2 :  // 2nd cake finishes the row
 echo(&#039;&amp;lt;td&amp;gt;OR&amp;lt;/td&amp;gt;&#039;.&quot;\n&quot;);
 echo(&#039;&amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;&#039;.$menu[&#039;menu_cake_name&#039;].&#039;&amp;lt;/strong&amp;gt; - &#039;.$menu[&#039;menu_cake_description&#039;].&#039;&amp;lt;/td&amp;gt;&#039;.&quot;\n&quot;);
 echo(&#039;&amp;lt;/tr&amp;gt;&#039;.&quot;\n&quot;);
 break;
 default : // If a 3rd cake is required then this will need modification - currently not allowed
 break;
 }
 }
echo(&#039;&amp;lt;/tbody&amp;gt;&#039;.&quot;\n&quot;);
echo(&#039;&amp;lt;/table&amp;gt;&#039;.&quot;\n&quot;);
?&amp;gt;
</pre></pre><br />
You can see the finished product on the <a title="Sophie's Baked Delights club listing the menu on a rolling month basis" href="http://www.sophiesbakeddelights.co.uk/baked_delights_club_menu.php">Sophie&#8217;s Baked Delights website</a>, and I can assure you that the cakes are very good indeed.</p>
<p>Hopefully someone will find this method useful.  As with most problems the answers are all on the internet, but sometimes you need to find the answer before you know what you should have been searching for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/changing-the-sort-order-in-mysql-to-give-a-rolling-month-138.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No Windows/XP support in IE9</title>
		<link>http://www.cotsweb.com/blog/no-windowsxp-support-in-ie9-132.html</link>
		<comments>http://www.cotsweb.com/blog/no-windowsxp-support-in-ie9-132.html#comments</comments>
		<pubDate>Mon, 29 Mar 2010 10:12:21 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[windows xp]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=132</guid>
		<description><![CDATA[Microsoft have released a platform preview of Internet Explorer 9, this is a very early release so people can play with a few of the features, it is in no way a complete browser, in fact you need IE8 to run it.    The new browser looks like a huge improvement on earlier versions of Internet [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft have released a <a title="Microsoft Internet Explorer version 9 Platform Preview page" href="http://ie.microsoft.com/testdrive/">platform preview of Internet Explorer 9</a>, this is a very early release so people can play with a few of the features, it is in no way a complete browser, in fact you need IE8 to run it.    The new browser looks like a huge improvement on earlier versions of Internet Explorer, it is much better in terms of standards compliance, much faster and has support for (among other things) HTML5, CSS5 and SVG.  I think it will be a pretty good browser.</p>
<h3>But will it run on my computer?</h3>
<p>Yes, as long as you are running Vista or Windows 7.</p>
<p>IE9 uses features  which don&#8217;t exist in Microsoft&#8217;s older operating systems; that is anything older than Windows Vista,  there are pretty good technical reasons for doing this and IE9 is faster and more secure because of it, but it does mean that IE9 will never run under Windows/XP.    Of course Windows/XP is now pretty old and we can&#8217;t expect it to be supported forever, but you can still buy a brand new PC with XP installed and<a title="Market Share for Operating System versions" href="http://marketshare.hitslink.com/operating-system-market-share.aspx?qprid=10"> over 65% of PCs are still running XP</a>, more than twice the market share of Windows Vista and Windows 7 combined.</p>
<h3>Will people upgrade to Windows 7 so they can run IE9?</h3>
<p>I think the days of people upgrading their operating systems to run the latest software, particularly something as basic as a browser are long gone.  Windows 7 looks like a pretty good operating system and I will happily run when I get a new PC, but I&#8217;m not going to upgrade an old PC to run it just so I can install IE9.  If I want a better browser than IE8 it is much less painful to install Firefox, Chrome or Opera than it is to change operating systems.</p>
<p>As PC usage increases and as people replace old PCs Windows 7 usage will increase and XP will continue its decline, but it will take years for Windows 7 (or it&#8217;s successors) to overtake XP in market share.    As technologies like HTML5 etc become more widespread there will be more need for XP users to move away from browsers which don&#8217;t support these features, otherwise they will be unable to use many of the features that other people take for granted.</p>
<h3>So what will Microsoft do about Windows/XP?</h3>
<p>The people at Microsoft are pretty canny and I don&#8217;t think they will want to risk the huge user base still on XP gradually drifting onto non-Microsoft browsers.  They might get the idea that there are other areas where Microsoft products aren&#8217;t the only option.</p>
<h3>Internet Explorer 8.5?</h3>
<p>My theory is that we will see a new version of IE8, perhaps they will call it IE8.5, which will incorporate a lot of the features from IE9 and will run on older versions of Windows.   Although <em>Internet Explorer version 8.5</em> will never be as fast or as secure as IE9 it could use the same techology to render webpages and so be a good interim step.  It could be distributed through Windows Update (as IE8 was) and so would keep the average Windows/XP user on a Microsoft Browser until they are ready to upgrade to Windows 7.</p>
<p>Of course this is just my theory and I&#8217;m sure Microsoft won&#8217;t be announcing any such move any time soon, they would much rather that everbody bought Windows 7.  But they didn&#8217;t get the market share they have by ignoring most of their customers.  Maybe this time next year I will be able to say &#8221; I told you so&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/no-windowsxp-support-in-ie9-132.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Browser Trends &#8211; IE6 is fading at last</title>
		<link>http://www.cotsweb.com/blog/browser-trends-ie6-is-fading-at-last-125.html</link>
		<comments>http://www.cotsweb.com/blog/browser-trends-ie6-is-fading-at-last-125.html#comments</comments>
		<pubDate>Wed, 10 Mar 2010 10:58:04 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=125</guid>
		<description><![CDATA[I have been keeping an eye on browser usage at Net Market Share for some time now and I have noticed an interesting underlying trend.   It seems to me that people who use Internet Explorer fall into 2 main camps; They keep up to date with the latest releases &#8211; these people have adopted IE7 [...]]]></description>
			<content:encoded><![CDATA[<p>I have been keeping an eye on browser usage at <a title="Browser Market Share statistics" href="http://marketshare.hitslink.com/">Net Market Share</a> for some time now and I have noticed an interesting underlying trend.   It seems to me that people who use Internet Explorer fall into 2 main camps;</p>
<ol>
<li>They keep up to date with the latest releases &#8211; these people have adopted IE7 in the past and are now migrating en-masse to IE8.  IE7 usage has dropped from 35% in March 2009 to 14% in February 2010 and I guess this trend will continue until IE7 disappears entirely.The combined usage of IE7 and IE8 has remained fairly stable at around 36-37% of the market.  As IE7 has faded IE8 has taken up it&#8217;s share.</li>
<li>They have used IE6 for years, possibly in a corporate environment where stability is more important than modernity, or possibly just because  that is what was installed when their PC was first delivered.  These people are now starting to upgrade from IE6 to more modern browsers, IE6 usage has dropped from 31% in March 2009 to 20% in February 2010.The interesting thing is that these people don&#8217;t seem to be upgrading to the newer versions of Internet Explorer, rather they are migrating to other browsers, some are moving to Firefox or to Opera but the biggest beneficiary of this move seems to be Google&#8217;s Chrome browser.  Chrome usage has gone from less than 2% in March 2009 to nearly 6% in February 2010.<em>As a footnote &#8211; Apple&#8217;s Safari Browser is also gaining users but I suspect that is due to more people buying Macs and iPhones with Safari installed rather than to people actually choosing to install Safari on their PC</em>.</li>
</ol>
<p>By amalgamating the version data from the <a title="Browser Market Share statistics" href="http://marketshare.hitslink.com/">Browser Trends website</a> I have come up with the following graph.  Please click on the image to see the full size graph.</p>
<div id="attachment_126" class="wp-caption alignleft" style="width: 310px"><a href="http://www.cotsweb.com/blog/wp-content/uploads/2010/03/Browser-Trends-to-Feb-2010.png"><img class="size-medium wp-image-126 " title="Browser Trends to Feb 2010" src="http://www.cotsweb.com/blog/wp-content/uploads/2010/03/Browser-Trends-to-Feb-2010-300x185.png" alt="Trends in web browser usage March 2009 to February 2010" width="300" height="185" /></a><p class="wp-caption-text">Amalgamated web browser trends Mar 2009 to Feb 2010</p></div>
<p>You can see how the more modern versions of Internet Explorer are maintaining their market share but IE6 usage is dropping quite rapidly while other (non-IE) browsers take up it&#8217;s share.</p>
<p>As a website designer I love this trend, I can look forward to a day when IE6 usage will have shrunk sufficiently that I can ignore it&#8217;s many foibles and design for 21st Century browsers instead.</p>
<p>As users of Microsoft&#8217;s newer browsers seem to keep up to date with the latest versions we can hope that they will all be using IE9 or even IE10 by then.  Internet Explorer is slowly becoming more standards compliant with each version so hopefully IE9 &amp; IE10 will continue this trend and life will become much easier for me.</p>
<p>I dream of a day when the websites I create work properly in all browsers without me having to compromise the design to get to that state.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/browser-trends-ie6-is-fading-at-last-125.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing Drive By Malware Infections</title>
		<link>http://www.cotsweb.com/blog/removing-drive-by-malware-infections-116.html</link>
		<comments>http://www.cotsweb.com/blog/removing-drive-by-malware-infections-116.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 14:00:12 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[Anti Virus]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[malware]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=116</guid>
		<description><![CDATA[As well as building websites we are sometimes called on as &#8220;someone who knows about computers&#8221; to fix problems with PCs.  It isn&#8217;t really what we do but we are often able to help out, usually by finding the answer on the internet, the answer is always out there if you know what you are [...]]]></description>
			<content:encoded><![CDATA[<p>As well as building websites we are sometimes called on as &#8220;someone who knows about computers&#8221; to fix problems with PCs.  It isn&#8217;t really what we do but we are often able to help out, usually by finding the answer on the internet, the answer is always out there if you know what you are looking for.</p>
<h2><span style="font-weight: normal;">Fake Anti-Virus Windows</span></h2>
<p>Recently we have had two cases of PCs (both running Windows XP and Internet Explorer) being infected by &#8220;drive by&#8221;  malware.   The user is surfing normally and comes across an innocent looking website, then suddenly up pops a virus warning, apparently from their own anti-virus software.  These messages are pretty scary and quite persistent, the correct response is to close the window (by clicking on the cross at the top right rather than by clicking within the window) and leave that website but if you aren&#8217;t sure you can easily end up allowing the site to install it&#8217;s &#8220;anti-virus software&#8221; on your computer.</p>
<p>Once the infected website has installed it&#8217;s payload (usually what is known as a trojan, from the Trojan Horse) on  your computer you have a big problem, it will pop up &#8220;anti-virus&#8221; windows all over the place and make web browsing and email impossible.  And, it will usually disable your own anti-virus software and make it very difficult to install any more.</p>
<h2>Anti-Malware</h2>
<p>The solution lies with the marvellous people at<a title="Malware Bytes - free anti-malware software" href="http://malwarebytes.org/" target="_blank"> Malwarebytes.org</a>, they offer a free download which, so far, has solved the problem for me.  The  paid version is well worth looking at too, it isn&#8217;t expensive and their work is definitely worth supporting.</p>
<p>Now if you have been very wise you will only have been using a limited account for your browsing rather than an account with administrator privileges; you can just login as an administrator and download the software you need.  Sadly some software doesn&#8217;t work that well without administrator privileges and most people set themselves as administrators to avoid hassle.  In this case it is likely that the whole computer is inaccessible and you will need to call on a friend so you can download the necessary software to a USB memory stick.</p>
<h2>Removing the fake Anti-Virus Trojan</h2>
<ol>
<li>Visit the <a title="Malware Bytes - free anti-malware software" href="http://malwarebytes.org/" target="_blank"> Malwarebytes.org</a> website and download their anti-malware product to a memory stick.</li>
<li>Boot the infected computer in safe mode (you can usually get this option by pressing F8 while Windows is starting up).</li>
<li>Insert the memory stick and run the anti-malware installation program</li>
<li>Use the anti-malware program to do a complete scan of the computer.  In safe mode you won&#8217;t be able to access the internet to update the malware signatures first but I found that the signatures were only a couple of weeks old anyway.</li>
<li>Hopefully the anti-malware program will find one or more offensive programs, use the program to remove them then reboot your computer, this time normally rather than in safe mode.</li>
<li>Now run the anti-malware program again, update the definitions from the internet and do another full scan.   Malware is a fast moving field and it is quite likely you will find more with a second scan.</li>
<li>Reboot again and all should be well.</li>
</ol>
<h2>How to stop malware infections in the future</h2>
<p>Make sure your computer is fully updated with the latest updates to Windows and to your other software packages.    Vendors are pretty quick to release security patches; use them.</p>
<p>Install and use another browser;   our current favourite is <a title="Google Chrome browser for a single user" href="http://www.google.com/chrome" target="_blank">Google Chrome</a>, the design of Chrome makes it very difficult for Malware to affect anything outside it&#8217;s own browser window.  Microsoft try hard with Internet Explorer but even the latest versions are nothing like Chrome for security and of course they also provide the biggest target for Malware authors.</p>
<p><strong>Installing Chrome for all users on your computer</strong></p>
<p>By default when you install Chrome it will only install it for the current user, this is a nuisance if you want to get the whole family using the safer (and faster) browser.  The answer is to  download <a title="Google Chrome for multiple=" href="http://pack.google.com" target="_blank">Chrome Pack</a> , this offers you a whole raft of goodies from Google some of which you may fancy, but if you only want Google Chrome just untick all the other boxes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/removing-drive-by-malware-infections-116.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>@font-face Rendering fonts in different browsers</title>
		<link>http://www.cotsweb.com/blog/font-face-rendering-fonts-in-different-browsers-101.html</link>
		<comments>http://www.cotsweb.com/blog/font-face-rendering-fonts-in-different-browsers-101.html#comments</comments>
		<pubDate>Mon, 30 Nov 2009 11:59:27 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[@font-face]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[typekit]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=101</guid>
		<description><![CDATA[I have been working on a new website, just a little one page site to start with, for The Coffee House in Stow on the Wold.  They already have a strong corporate brand with a 1920s look, using a font called Parisian so I wanted to incorporate that in the website design. Fonts have traditionally [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working on a new website, just a little one page site to start with, for <a href="http://www.thecoffeehousestow.co.uk">The Coffee House in Stow on the Wold</a>.  They already have a strong corporate brand with a 1920s look, using a font called Parisian so I wanted to incorporate that in the website design.</p>
<p>Fonts have traditionally been a bit of a nightmare for web designers, the web browser loads the fonts from the user&#8217;s computer.  If the font you asked for isn&#8217;t installed on the user&#8217;s machine then it will default to something else, this means that what the user sees may be quite different from what you intended.</p>
<p>My first thought was &#8220;goody a chance to use <a title="Typekit, the easiest way to use real fonts on your website" href="http://typekit.com/">Typekit</a> for real!&#8221;.   Typekit is a new service which lets you use real fonts on your own website, the fonts are loaded on demand from the Typekit website.  This means that you can use proper fonts in a legitimate way but let Typekit deal with all the licensing issues.  You have to pay for most of the fonts of course but the charges are quite reasonable and an awful lot better than licencing direct from the big commercial suppliers.</p>
<p>Unfortunately Typekit didn&#8217;t have the exact font I wanted (they are very new and their library of fonts is still growing), but I did discover a <a title="Free version of Parisian font on Fontspace" href="http://www.fontspace.com/george-williams/parisian">free version of the font on fontspace</a> which used the Open Font License (OFL) so I could legitimately incorporate it in the new website.   I was able to do this because the most modern browsers are now starting to support the CSS @font-face declaration properly (though to be fair Internet Explorer has supported @font-face since IE4 way back in 1997).</p>
<p>But of course to work properly I had to provide the browser with the font in a format it could understand.  Thank heavens for<a title="Font Squirrel font converter andl @font-face generator" href="http://www.fontsquirrel.com/fontface/generator"> Fontsquirrel&#8217;s @font-face generator</a> which converts  your existing font file into all the necessary different formats and even supplies you with the CSS code to use them.</p>
<p>So now I had fonts installed and ready to test, I always test any website as extensively as as possible but rarely have I had as wide a range of results  as this.  The following table shows my experience with the various browsers available to me.</p>
<table border="1">
<caption>Using @font-face in different browsers</caption>
<tbody>
<tr>
<th>Browser</th>
<th>version</th>
<th>font file</th>
<th>screen</th>
<th>printer</th>
</tr>
<tr>
<td>Internet Explorer</td>
<td>IE6</td>
<td>.eot</td>
<td>Works fine but typeface is much smaller than other browsers</td>
<td>Sort of works but doesn&#8217;t print the full page width.</td>
</tr>
<tr>
<td>Internet Explorer</td>
<td>IE8</td>
<td>.eot</td>
<td>Works fine but typeface is slightly larger than other browsers</td>
<td>Works fine</td>
</tr>
<tr>
<td>Firefox</td>
<td>3.0.15</td>
<td>.ttf</td>
<td>Doesn&#8217;t use @font-face font, uses font-family declaration to find a font which exists on the local machine.</td>
<td>Doesn&#8217;t use @font-face font, uses font-family declaration to find a font which exists on the local machine.</td>
</tr>
<tr>
<td>Firefox</td>
<td>3.5.5</td>
<td>.ttf</td>
<td>Works fine</td>
<td>Doesn&#8217;t use @font-face font, uses font-family declaration to find a font which exists on the local machine.</td>
</tr>
<tr>
<td>Firefox</td>
<td>3.6 beta 3</td>
<td>.ttf<br />
.woff</td>
<td>Works fine</td>
<td>Doesn&#8217;t use @font-face font, uses font-family declaration to find a font which exists on the local machine.</td>
</tr>
<tr>
<td>Safari</td>
<td>4.0.4</td>
<td>.ttf or<br />
.svg</td>
<td>Works fine</td>
<td>Works fine</td>
</tr>
<tr>
<td>Chrome</td>
<td>3.0.195.32</td>
<td>.svg</td>
<td>Works fine</td>
<td>Works fine</td>
</tr>
<tr>
<td>Opera</td>
<td>10.01</td>
<td>.ttf<br />
.svg</td>
<td>Works fine on live site<br />
But displays Times New Roman instead of the @font-face font on my local machine, this is the default action for pages without any specific style set.  I imagine that there is some subtle difference in the server setup between the two machines but I don&#8217;t know what it is and it doesn&#8217;t affect any of the other browsers.</td>
<td>Works the same as it does on the screen.</td>
</tr>
<tr>
<td>Konqueror</td>
<td>3.5.10</td>
<td>.ttf</td>
<td>Doesn&#8217;t use @font-face font, uses font-family declaration to find a font which exists on the local machine.</td>
<td>Doesn&#8217;t use @font-face font, uses font-family declaration to find a font which exists on the local machine.</td>
</tr>
</tbody>
</table>
<p>All this is very confusing but the conclusion is that I think @font-face is now well enough supported to be used on a live site.   Support should get better over the next few months, particularly as Firefox users move on to version 3.5 (or even 3.6 which supports .woff files).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/font-face-rendering-fonts-in-different-browsers-101.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome Frame &#8211; Hope for IE users?</title>
		<link>http://www.cotsweb.com/blog/google-chrome-frame-hope-for-ie-users-92.html</link>
		<comments>http://www.cotsweb.com/blog/google-chrome-frame-hope-for-ie-users-92.html#comments</comments>
		<pubDate>Thu, 24 Sep 2009 13:15:42 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=92</guid>
		<description><![CDATA[Google have just announced a new browser plugin called Google Chrome Frame.  The unusual thing about Chrome Frame is that it isn&#8217;t a plugin for Chrome (Google&#8217;s own browser), it&#8217;s a plugin for Internet Explorer!  It should work with any of the current versions, IE6, IE7 &#38; IE8. What Chrome Frame does is tell Internet [...]]]></description>
			<content:encoded><![CDATA[<p>Google have just announced a new browser plugin called <a title="Google Chrome Frame plugin for Internet Explorer" href="http://blog.chromium.org/2009/09/introducing-google-chrome-frame.html">Google Chrome Frame</a>.  The unusual thing about Chrome Frame is that it isn&#8217;t a plugin for Chrome (Google&#8217;s own browser), it&#8217;s a plugin for Internet Explorer!  It should work with any of the current versions, IE6, IE7 &amp; IE8.</p>
<p>What Chrome Frame does is tell Internet Explorer to use  Chrome&#8217;s rendering engine (Webkit) rather than IE&#8217;s own rendering engine.  The benefit for the user is faster browsing, particularly when a website uses Javascript, Chrome&#8217;s javascript module is much faster than IE&#8217;s equivalent.  The benefit for the website developer is that Chrome is a good modern browser, standards compliant and supporting a lot  of newer features such as HTML 5 &amp; CSS2/3 which are not even supported in IE8.</p>
<p>The theory is that if a web page works in Chrome then it will work in IE with Chrome Frame.  Chrome Frame  is still very new so they are not quite there yet but I&#8217;m sure they will get there.   All those IE specific problems which website designers have had to work around for years, including those still hanging around from IE6, will become a thing of the past.  Wonderful!</p>
<h2>But will people use it?</h2>
<p>The problem is that Chrome Frame, being a plugin for IE, has to be installed by the user.  Do you remember the bad old days when it seemed that every new site required a new plugin?  Once the user has installed Chrome Frame all will be well but that first installation is the sticking point.</p>
<p>As a webdesigner I can put a piece of code on any of my websites which pops up a window giving an IE user the option to install Chrome Frame so they can view the site properly, but I don&#8217;t really want to do that.  People are, and should be, wary of installing things when asked to do so by a website.  And I don&#8217;t want people to navigate away from my site because it is too scary or demanding.  In any case most sites work fine  in IE anyway so why do they need to install a plugin?</p>
<p>My real hope is that  corporate IT installations might think that installing Chrome Frame to upgrade IE6 would be a good idea.  <a title="Why we can't ignore Internet Exlorer 6 " href="http://www.cotsweb.com/blog/ie6-is-the-most-popular-browser-in-the-world-74.html">IE6 is currently the most popular browser in the world</a>, largely because there is no reason for the big corporates to change to anything else.   But a plugin might be different, any existing applications will continue to work fine but new applications could use newer features without the extra coding needed to cope with  the particular quirks found in IE6.  It could be quite a money saver.</p>
<h2>Critical Mass</h2>
<p>I will be monitoring my Google Analytics reports for the day when I see &#8220;unChromed&#8221; IE6 usage drop below 5%.   I think that will be the time to put the plugin code on my own sites.  And when it drops below 2% I will consider ignoring IE6 all together, a happy prospect.</p>
<p>In the meantime I will carry on as usual, coding around the quirks in IE6 and ignoring the other features I might use if IE7 &amp; IE8 supported them.</p>
<p><em><strong>I wonder what Microsoft think about Google writing a plugin for them?</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/google-chrome-frame-hope-for-ie-users-92.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keeping your WordPress Blog safe</title>
		<link>http://www.cotsweb.com/blog/keeping-your-wordpress-blog-safe-79.html</link>
		<comments>http://www.cotsweb.com/blog/keeping-your-wordpress-blog-safe-79.html#comments</comments>
		<pubDate>Wed, 09 Sep 2009 09:49:15 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=79</guid>
		<description><![CDATA[Anybody with any sort of website needs to think about security.  If nothing else, a hacked site is embarrassing. Part of keeping your site secure is keeping the software up to date, just like you do with your own computer (I hope).  There is a constant battle going on between nice people improving and fixing [...]]]></description>
			<content:encoded><![CDATA[<p>Anybody with any sort of website needs to think about security.  If nothing else, a hacked site is embarrassing.</p>
<p>Part of keeping your site secure is keeping the software up to date, just like you do with your own computer (I hope).  There is a constant battle going on between nice people improving and fixing software and nasty people trying to find new holes which they can exploit for their own gain.  The nice people are working for your benefit so take advantage of their labours and use the upgrades they provide.</p>
<p>If you have a self-hosted WordPress Blog, like this one, then you need to be aware of a new attack.   Take  a look at <a title="Old WordPress Versions Under Attack - upgrade to 2.8.4" href="http://lorelle.wordpress.com/2009/09/04/old-wordpress-versions-under-attack/" target="_blank">Lorelle on WordPress</a> for details.  If you haven&#8217;t upgraded to WordPress 2.8.4 then your blog is vulnerable to this attack.</p>
<p>We have already upgraded all the blogs we host, we keep an eye on software upgrades as a matter of course.  WordPress is very easy to keep up to date, some other packages require a lot more work, but we will always apply security fixes to any package we host.</p>
<p>No system is 100% secure but by keeping up to date you encourage those nasty people to look for easier targets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/keeping-your-wordpress-blog-safe-79.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE6 Is the most popular browser in the world!</title>
		<link>http://www.cotsweb.com/blog/ie6-is-the-most-popular-browser-in-the-world-74.html</link>
		<comments>http://www.cotsweb.com/blog/ie6-is-the-most-popular-browser-in-the-world-74.html#comments</comments>
		<pubDate>Tue, 01 Sep 2009 16:56:09 +0000</pubDate>
		<dc:creator>cotsweb</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://www.cotsweb.com/blog/?p=74</guid>
		<description><![CDATA[I do a lot of testing on any website I design or change.  It is very important that the site works properly and displays properly for everybody.  I try to make any website I work on comply with the proper standards so that it will work correctly in any  browser.  I test in as many [...]]]></description>
			<content:encoded><![CDATA[<p>I do a lot of testing on any website I design or change.  It is very important that the site works properly and displays properly for everybody.  I try to make any website I work on comply with the proper standards so that it will work correctly in any  browser.  I test in as many browsers as I can because even the best browsers have slight differences in the way they implement web standards.</p>
<p><strong>And then there is Internet Explorer 6! </strong>The bane of any web designer&#8217;s life.  Getting IE6 to behave the same way as more modern browsers can be a real pain.  If a site works in any more modern browser it will probably be pretty good in all the others.  Anything that works in Firefox will almost certainly work  prettywll in Chrome, Safari and Opera and although IE7 and IE8 are not as good at complying with the standards they aren&#8217;t too difficult to work with.</p>
<h2>IE6 Market Share overtakes IE7!</h2>
<p>The problem is that IE6 is still installed on millions of machines around the world.   In fact I just checked out <a title="Market Share for different browser versions" href="http://marketshare.hitslink.com/browser-market-share.aspx?qprid=2" target="_blank">browser versions on the excellent marketshare</a> website and discovered that IE6 has regained its position as the most popular browser in the world with over 25% of the market.  This is largely due to the advent of IE8, many people are starting to migrate from IE7 to IE8 which means that the market share of the newer browsers is being split.  If you combine the shares of IE7 &amp; IE8 it adds up to more than 36%.</p>
<p>I guess that most people who have made the move to IE7 will be happy enough to let Microsoft upgrade them to IE8 so eventually IE7 will fade away as earlier versions like IE4 &amp; IE5 have.  But IE6 is a bigger problem, it was the biggest browser for a  long time early on in the development of a lot of corporate systems, and it still works just as well as it ever did.<br />
If you are running a corporate intranet the substantial cost of  upgrading hundreds or thousands of PCs  to a newer browser and retesting all your internal systems to make sure they still work properly is not matched by any real benefit.  It isn&#8217;t broken so don&#8217;t  fix it.</p>
<p>This means that while a corporation may have a lovely modern website for its external customers to use, it may only have IE6 installed for its own staff, that is the browser that has been tested against their internal systems.  But this means that when those staff do a bit of surfing in their lunch hour they are still using IE6 to look at everyone else&#8217;s websites.</p>
<h2>IE6 for Ever</h2>
<p>I can&#8217;t see this situation changing any time in the next few years, IE6 will continue its slow decline and new websites will have to contine to support it.  This support comes at a cost, extra testing, extra coding and of course a whole bunch of lovely new features like CSS2 &amp; CSS3 which make building good websites much easier but which IE6 just doesn&#8217;t know about.</p>
<p>So much as I loathe IE6 I continue to use it every day for testing.   If your site doesn&#8217;t work properly with IE6 you could be losing 25% of the customers that have already made the effort to find your site.  That is like kicking out 25% of the customers in your shop because you don&#8217;t like the way they talk.  Not a good way to run a business.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cotsweb.com/blog/ie6-is-the-most-popular-browser-in-the-world-74.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
