<?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>PC Pro blog &#187; How To</title>
	<atom:link href="http://www.pcpro.co.uk/blogs/category/howto/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pcpro.co.uk/blogs</link>
	<description>Blogging in the real world</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:54:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SD cards: the cheap way to boost laptop storage</title>
		<link>http://www.pcpro.co.uk/blogs/2011/08/24/sd-cards-the-cheap-way-to-boost-laptop-storage/</link>
		<comments>http://www.pcpro.co.uk/blogs/2011/08/24/sd-cards-the-cheap-way-to-boost-laptop-storage/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 10:58:22 +0000</pubDate>
		<dc:creator>David Bayon</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[View from the Labs]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[media card]]></category>
		<category><![CDATA[sd]]></category>
		<category><![CDATA[SSD]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=41293</guid>
		<description><![CDATA[
An increasing number of laptops these days boast SSDs, but capacities are rising quite slowly. For some people, 128GB as your main drive might be enough, but if you want more, is it worth shelling out the huge fees charged by manufacturers to upgrade to a higher capacity SSD, or can you make do with [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-41353" title="Apple SSD" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/ssd2.JPG" alt="Apple SSD" width="459" height="153" /></p>
<p>An increasing number of laptops these days boast SSDs, but capacities are rising quite slowly. For some people, 128GB as your main drive might be enough, but if you want more, is it worth shelling out the huge fees charged by manufacturers to upgrade to a higher capacity SSD, or can you make do with alternative storage?</p>
<p>To find out, we ran our standard file transfer tests – first between a RAM disk and the SSD of a brand new laptop, then between a RAM disk and a variety of external storage devices. <span id="more-41293"></span>The results are in the table at the bottom of this post.</p>
<h2><strong>The SSD</strong></h2>
<p><strong></strong>The tidiest upgrade is to a larger internal SSD, and there’s no doubt this is also best for performance. With a single 1.5GB file, the SSD in our test MacBook Air delivered read and write speeds of 187MB/sec and 156MB/sec. More importantly (you’ll see why later), with 1.5GB of tiny files its read and write speeds were a healthy 87MB/sec and 75MB/sec.</p>
<p>The big problem is the hefty price of a bigger SSD, with Apple charging £250 to step up from 128GB to 256GB in its 13in MacBook Air, and Sony charging £410 for the same upgrade in the VAIO Z. That’s a lot of money.</p>
<p><img class="aligncenter size-full wp-image-41308" title="Sony SSD pricing" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/ssd.JPG" alt="Sony SSD pricing" width="452" height="171" /></p>
<h2>The external hard disk</h2>
<p>The first alternative is an external hard disk, and it’s a cost-efficient way of adding storage, particularly for files you won’t always need to hand. The winner of this month&#8217;s USB 3 hard disk Labs (issue 204, in shops now!) costs only £51 inc VAT for a 500GB drive.</p>
<p>In our tests with a single 1.5GB file, it achieved identical read and write speeds of 82MB/sec. With 1.5GB of tiny files this figure fell, but only to 60MB/sec read and 51MB/sec write; not as fast as an SSD, but significantly cheaper.</p>
<p>Of course, not all laptops have USB 3 ports – the MacBook Air being one such example. In our last USB 2 hard disk Labs, the winner achieved 32MB/sec read and 28MB/sec write speeds with a single 1.5GB file, and 26MB/sec and 12MB/sec with 1.5GB of tiny files.</p>
<h2><strong>The SD card</strong></h2>
<p>Adding external storage is cheap and fast, but if you prefer the convenience of having something you don’t have to carry around, you could make use of the SD card slot. Now, SD cards aren’t built for the kind of constant writing that you do on your main hard disk. They have a limited number of guaranteed write cycles before the card risks failing, so they’re best considered for storing files you don’t update often – a media collection, for example.</p>
<p>There are also several speed categories of SD cards. Look for a class rating on the packaging: this refers to its minimum non-fragmented sequential write speed. So, Class 2 will do at least 2MB/sec, and Class 10 at least 10MB/sec. To confuse matters, some manufacturers use “x” ratings that have minimum rates even higher than Class 10.</p>
<p><img class="aligncenter size-large wp-image-41338" style="border-style: initial; border-color: initial;" title="SD cards" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/SD-cards-cropped-462x241.jpg" alt="SD cards" width="462" height="241" /></p>
<p>Sure enough, in the large file test a Class 10 card saw read and write speeds of 30MB/sec and 23MB/sec. For Class 6 this was 18MB/sec and 15MB/sec, while Class 4 saw 16MB/sec and 6MB/sec. You wouldn’t want to write 64GB of data regularly, but for a one-off the speeds are fine.</p>
<p>With small files those cards had healthy read speeds too, from 44MB/sec on Class 10 down to 20MB/sec with Class 4. But the big problem with using an SD card in this way is writing multiple small files: transferring 1.5GB of files to a Class 10 card pummelled the speed down to below 1MB/sec, and that fell even further with lower classes. If you’re going to regularly write a lot of small files, these cards are a terrible choice.</p>
<h2>The value question</h2>
<p>For data that will be written once and largely stay unchanged, however, does an SD card offer a value alternative to an SSD upgrade? At the kind of large capacities where it’s feasible, we found several 32GB Class 10 cards on sale for less than £40 inc VAT, and 64GB Class 10 cards at around £100. That’s for basic cards; those rated faster and with a higher number of guaranteed write cycles can cost up to several hundred pounds, so you can pick and choose to suit your needs.</p>
<p>You’ll need an SDXC slot for 64GB cards, and some slots don’t accept the card fully inside – on the MacBook Air it protrudes by 8mm, ripe for the snapping. But if your laptop meets the requirements, and if you’re after only a quick boost in capacity for non-critical files, the sheer convenience of being able to leave an SD card in there at all times makes it a great way to save money. And at lower capacities we really are talking pocket money.</p>
<p style="text-align: center;"><a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/Transfer-speeds.jpg"><img class="size-large wp-image-41326 aligncenter" title="Transfer speeds" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/Transfer-speeds-462x110.jpg" alt="Transfer speeds" width="462" height="110" /></a></p>
<p style="text-align: left;"><em>(Click to enlarge)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2011/08/24/sd-cards-the-cheap-way-to-boost-laptop-storage/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>What&#8217;s really killing your Wi-Fi? Here&#8217;s a graphic illustration</title>
		<link>http://www.pcpro.co.uk/blogs/2011/08/19/whats-really-killing-your-wi-fi-heres-a-graphic-illustration/</link>
		<comments>http://www.pcpro.co.uk/blogs/2011/08/19/whats-really-killing-your-wi-fi-heres-a-graphic-illustration/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 15:52:27 +0000</pubDate>
		<dc:creator>Jonathan Bray</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[2.4GHz]]></category>
		<category><![CDATA[5GHz]]></category>
		<category><![CDATA[802.11n]]></category>
		<category><![CDATA[dual-band]]></category>
		<category><![CDATA[interference]]></category>
		<category><![CDATA[Wi-Fi]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=41197</guid>
		<description><![CDATA[We’ve written many times about how crowded the 2.4GHz frequency band is becoming these days, and how that can affect the reliability and speed of your wireless network.
There are so many devices and routers now using the unlicensed space between 2,400MHz and 2,475MHz that finding a quiet, undisturbed channel for your network to reside on [...]]]></description>
			<content:encoded><![CDATA[<p>We’ve written many times about how crowded the 2.4GHz frequency band is becoming these days, and how that can affect the reliability and speed of your wireless network.</p>
<p>There are so many devices and routers now using the unlicensed space between 2,400MHz and 2,475MHz that finding a quiet, undisturbed channel for your network to reside on is nigh on impossible. That’s why we recommend anyone upgrading their wireless router chooses a dual-band model &#8212; one that gives you the option of connecting in the less congested 5GHz frequency band.</p>
<p><span id="more-41197"></span></p>
<p>This can be a difficult concept to grasp without visual aids, so let me show you exactly what we mean when we talk about RF congestion.</p>
<p><a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/24GHz-wispy.png"></a><a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/24GHz-wispy.png"></a><a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/24GHz-wispy.png"><img class="aligncenter size-large wp-image-41212" title="Chanalyzer 4 - local 2.4GHz RF spectrum analysis" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/24GHz-wispy-462x274.png" alt="Chanalyzer 4 - local 2.4GHz RF spectrum analysis" width="462" height="274" /></a><br />
<a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/5GHz-wispy.png"></a></p>
<p>Using our recently-acquired Wi-Spy spectrum analyser (kindly supplied by <a href="http://www.metageek.net" target="_blank">Metageek</a> for use in a forthcoming wireless router Labs), combined with the firm’s Chanalyzer 4 radio frequency (RF) analysis software, we recorded the above graph.</p>
<p>It shows all the RF activity in the vicinity of the <em>PC Pro</em> office, and can detect not only nearby wireless networks – of which there are an alarming number &#8212; but also other devices using the 2.4GHz band.</p>
<p>Look closely and you’ll see that, on channel 8, there’s a non-Wi-Fi source of interference, represented as three bright stripes in the bottom “waterfall” window: I’ve not tracked down the culprit yet. To the right, the broad red/green stripe flanked by two narrower vertical green  lines shows you the devastation a cheap wireless video sender can wreak.</p>
<p>While this might seem a rather extreme example, I’m sure that many living in densely populated urban centres will be surrounded by a similar level of congestion and interference. Just imagine how many baby monitors, cordless phones and wireless routers there are in a modern, central London block of flats, and you&#8217;ll get the idea.</p>
<p>It&#8217;s frequency band bedlam out there, and the effect is slower, more unreliable wireless networks. Now take a look at the 5GHz band at the same location:</p>
<p><a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/5GHz-wispy.png"><img class="aligncenter size-large wp-image-41209" title="Chanalyzer 4 - local 5GHz RF spectrum analysis" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/08/5GHz-wispy-462x274.png" alt="Chanalyzer 4 - local 5GHz RF spectrum analysis" width="462" height="274" /></a></p>
<p>The difference is quite staggering &#8212; an oasis of calm by comparison, with only <em>PC Pro</em>&#8217;s own dual-band wireless router interrupting the tranquil RF landscape.</p>
<p>If that doesn&#8217;t get you hankering after a dual-band router, then nothing will.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2011/08/19/whats-really-killing-your-wi-fi-heres-a-graphic-illustration/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Intel Thunderbolt FAQ</title>
		<link>http://www.pcpro.co.uk/blogs/2011/03/01/intel-thunderbolt-faq/</link>
		<comments>http://www.pcpro.co.uk/blogs/2011/03/01/intel-thunderbolt-faq/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 14:42:21 +0000</pubDate>
		<dc:creator>David Bayon</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[Light Peak]]></category>
		<category><![CDATA[Thunderbolt]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=34693</guid>
		<description><![CDATA[
Intel’s Light Peak technology has made a surprise early appearance in Apple’s MacBook Pros, under the new name Thunderbolt. But those leaving the Apple store with a shiny new laptop will find it’s not as simple as plugging in and getting started. We run through the facts.

Q: What is Thunderbolt?
Thunderbolt is an advanced input/output technology [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-large wp-image-34732" title="Thunderbolt" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/03/tb_vrt_rgb_3000-462x207.jpg" alt="Thunderbolt" width="462" height="207" /></p>
<p>Intel’s Light Peak technology has made a surprise early appearance in Apple’s MacBook Pros, under the new name <em>Thunderbolt</em>. But those leaving the Apple store with a shiny new laptop will find it’s not as simple as plugging in and getting started. We run through the facts.</p>
<p><span id="more-34693"></span></p>
<h2><strong>Q: What is Thunderbolt?</strong></h2>
<p>Thunderbolt is an advanced input/output technology capable of carrying data, video and power over a single copper cable. It can transfer two simultaneous PCI Express channels of data at 10Gbits/sec each – twice the speed of USB 3 – and a DisplayPort channel, as well as up to 10W of power to connected peripherals. The two 10Gbits/sec channels mean you can daisy-chain up to six data devices, or five devices plus one display, from a single Thunderbolt port.</p>
<p><img class="aligncenter size-large wp-image-34729" title="Thunderbolt Technology" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/03/Thunderbolt_Technology-462x141.jpg" alt="Thunderbolt Technology" width="462" height="141" /></p>
<h2>Q: Light Peak was optical, but Thunderbolt uses copper?</h2>
<p>Intel’s cost-saving tests using copper came out better than expected, simple as that. The first Thunderbolt cables will be copper-based, but Apple told us for cables longer than 3m optical is still an option in the future.</p>
<h2>Q: How fast is Thunderbolt in the real world?</h2>
<p>Apple demonstrated to us an external Promise Pegasus RAID device running four simultaneous uncompressed HD video streams on a MacBook Pro 15in across a Thunderbolt connection. This was daisy-chained to a 27in Cinema Display. The process peaked at 600MB/sec (4.8Gbits/sec), an effortlessly attained real-world speed that almost tops USB 3’s theoretical maximum throughput.</p>
<p><img class="aligncenter size-large wp-image-34705" title="Apple demo" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/03/demo-462x128.jpg" alt="Apple demo" width="462" height="128" /></p>
<h2>Q: What laptops can use Thunderbolt?</h2>
<p>It’s making its debut in the new MacBook Pro 13in, 15in and 17in models, as part of a collaboration between Intel and Apple. Thunderbolt is integrated into the existing Mini-DisplayPort connector design, but is signified by the new lightning bolt symbol. There are no other laptops currently announced with Thunderbolt support, although Intel says there is nothing in the Apple deal to prevent other manufacturers incorporating the technology.</p>
<p><img class="aligncenter size-large wp-image-34723" title="MacBook Pro" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/03/thunderbolt-462x108.jpg" alt="MacBook Pro" width="462" height="108" /></p>
<h2>Q: What can I plug into it?</h2>
<p>Right now, nothing that can take advantage of that bandwidth. Any monitor that currently uses the Mini-DisplayPort connector (including HDMI, DVI and VGA via existing adapters) will plug straight in and work as normal, and adapters are in the works for connecting to existing USB and FireWire products. But there are currently no other native Thunderbolt products on the market.</p>
<p><img class="aligncenter size-large wp-image-34735" title="Cables" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2011/03/cable2-462x292.jpg" alt="Cables" width="462" height="292" /></p>
<h2>Q: When will third-party peripherals be released?</h2>
<p>Eight companies have already announced plans to produce Thunderbolt products, including Promise Technology, LaCie and Western Digital. None has put an exact date on release yet, but we’ve seen a prototype of the Promise Pegasus RAID in action and have been told to expect products by summer, with an outside chance of some arriving in late spring.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2011/03/01/intel-thunderbolt-faq/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Top ten price comparison websites</title>
		<link>http://www.pcpro.co.uk/blogs/2010/12/29/top-ten-price-comparison-websites/</link>
		<comments>http://www.pcpro.co.uk/blogs/2010/12/29/top-ten-price-comparison-websites/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 11:36:43 +0000</pubDate>
		<dc:creator>Jonathan Bray</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[internet shopping]]></category>
		<category><![CDATA[online shopping]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=30019</guid>
		<description><![CDATA[Looking to save pennies in the aftermath of a blowout Christmas? Made a New Year’s resolution to tighten your belt? You need to get down to your local price comparison website.
It isn’t just about Kelkoo and Google Products any more either. These days there’s a huge choice of specialist sites, catering for everything from supermarket [...]]]></description>
			<content:encoded><![CDATA[<p>Looking to save pennies in the aftermath of a blowout Christmas? Made a New Year’s resolution to tighten your belt? You need to get down to your local price comparison website.</p>
<p>It isn’t just about Kelkoo and Google Products any more either. These days there’s a huge choice of specialist sites, catering for everything from supermarket shopping to selling your mobile phone. Here’s our pick of the best.</p>
<p><span id="more-30019"></span></p>
<h3>1. <a title="MySupermarket.com" href="http://www.mysupermarket.com" target="_self">MySupermarket.com</a></h3>
<p><img class="alignnone size-large wp-image-30106" title="MySupermarket" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/mysupermarket-462x365.png" alt="MySupermarket" width="462" height="365" /></p>
<p>This is not your run of the mill price comparison site. Instead of comparing prices of individual products, it allows you to compare the cost of your whole shop. First, choose from one of the four supported supermarkets – ASDA, Tesco, Sainsbury’s or Waitrose – then fill up your cart with groceries as normal.</p>
<p>The site displays the cost of your shop in tabs at the top of the screen as you go; you can switch to the cheapest at the end and even book your delivery slot.</p>
<p>The truly impressive thing about this website, however, is its Swap &amp; Save feature, which suggests better value alternatives to items you’ve already selected. It has an uncanny knack of rooting out the best bargains, and has the potential to slash even more off your weekly bill.</p>
<h3>2. <a href="http://www.omio.com">Omio</a></h3>
<p><img class="alignnone size-large wp-image-30130" title="Omio" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/omio1-462x392.png" alt="Omio" width="462" height="392" /></p>
<p>Trawling around the individual mobile networks’ websites trying to find a good deal on a phone is so tortuous the CIA ought to use it on terrorist suspects as an alternative to waterboarding. If you want to avoid the pain, we suggest Omio – a fantastic comparison website for skinflints with no patience.</p>
<p>It compares prices across a huge number of brokers and networks, and offers every filter and sorting option you can think of. Want a free phone on a 24-month contract with internet but below £15 per month? How about the best free gift or cashback offer? Omio’s sliders and simple-to-use front end make it easy to ferret out the best value deal. Give it a whirl: even £5 cut from your monthly mobile bill would save £120 over the course of a 24-month contract.</p>
<h3>3. <a title="Omio" href="http://www.sellmymobile.com" target="_self">SellMyMobile</a></h3>
<p><img class="alignnone size-large wp-image-30097" title="SellMyMobile" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/sellmymobile-462x399.png" alt="SellMyMobile" width="462" height="399" /></p>
<p>You can maximise your money saving in the New Year not only by using a price comparison site for your new smartphone, but also selling your old handset to the highest bidder. One way of doing this is to hawk it on eBay, but if you don’t want to take the risk of the phone being damaged in transit, or having your buyer fail to cough up, this is the website to try.</p>
<p>SellMyMobile compares the prices mobile phone recycling websites offer for your model of phone and helps you find the best one. Prices offered for an 8GB Apple iPhone 3GS ranges from £150 to £186, so it definitely pays to use the site.</p>
<h3>4. <a title="Scccope.com" href="http://www.scccope.com" target="_self">Scccope</a></h3>
<p><img class="alignnone size-large wp-image-30100" title="Scccope" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/scccope-462x343.png" alt="Scccope" width="462" height="343" /></p>
<p>This one isn’t a specialist comparison engine, but it does offer one unique feature that no other site we use does. As well as straight product prices from all the big name vendors, Sccope also offers price analysis tools.</p>
<p>Displayed as a line graph alongside your traditional results, you can see maximum, minimum and average prices across all retailers over the past three months. The filtering options across the various categories could be better, but for the tactical bargain hunter it’s an indispensible aid: a flat graph for months, then a momentary dip in the minimum price might indicate a not-to-be-repeated deal, for instance, while an unstable, fluctuating graph could help you decide whether to wait for a currently high price to drop again.</p>
<h3>5. <a title="Cable.co.uk" href="http://www.cable.co.uk" target="_self">Cable.co.uk</a></h3>
<p><img style="border: 0px initial initial;" title="cable.co.uk" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/cable-462x395.png" alt="cable.co.uk" width="462" height="395" /></p>
<p>Visit Virgin Media or Sky’s websites and it’s easy to be confused into signing up for a deal you don’t want, and paying more than you planned to. You can cut through the confusing bundles and options, however, by using Cable.co.uk.</p>
<p>Pop your postcode into the search box and it quickly allows you to compare sports, movies, and HD packages available in your area, as well as broadband and phone packages across multiple suppliers. Through the website we discovered a deal for Sky Sports 1 and Eurosport, plus 65 other channels, for £17.75 a month for the first six months, then £21 per month for the remaining 12 months of the contract.  It’s a brilliant way to save on what for many people (especially sports fans) is one of their highest monthly outgoings.</p>
<h3>6. <a title="TOP10.com" href="http://www.top10.com" target="_self">TOP10.com</a></h3>
<p><img class="alignnone size-large wp-image-30094" title="TOP10.com" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/top10-462x422.png" alt="TOP10.com" width="462" height="422" /></p>
<p>Of all the broadband comparison websites we’ve seen (and there’s a bundle out there, believe us), TOP10.com is the best. Although very simple, it has a wide-ranging list of suppliers on its books: type your postcode into the box on the home page and you’ll be provided with not only a list of deals, sortable by speed, cost, or the size of the download cap, but also a page of information showing you how far you are from your nearest exchange, and the sorts of speeds others near you are getting from their broadband suppliers. Don’t take its results as gospel – some quality providers such as Zen Internet don’t make the TOP10.com cut – but it is very useful as a general guide.</p>
<h3>7. <a title="Tunechecker" href="http://www.tunechecker.com" target="_self">Tunechecker</a></h3>
<p><img class="alignnone size-large wp-image-30091" title="Tunechecker" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/tunechecker-462x404.png" alt="Tunechecker" width="462" height="404" /></p>
<p>If you’re not among the legion of illegal music downloaders, there’s no need to pay top whack for your downloaded music. Tunechecker compares prices for MP3 downloads (and CDs – remember them?) across a total of 11 different services. It isn’t the most attractive website, but in a matter of seconds it will find you the cheapest single or album and allow you to search by artist, single, album title and more. With potential savings of up to a fiver an album these aren&#8217;t savings to be sniffed at.</p>
<h3>8. <a title="uSwitch" href="http://www.uswitch.com" target="_self">uSwitch.com</a></h3>
<p><img class="alignnone size-large wp-image-30088" title="uSwitch" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/uswitch-462x343.png" alt="uSwitch" width="462" height="343" /></p>
<p>With energy prices rising every year there’s every reason to switch supplier, but with each of the big companies offering an array of prices and deals that would baffle even money-saving expert Martin Lewis, it can be hard to see the wood for the potential eco-friendly energy source.</p>
<p>Use uSwitch.com’s comparison engine to keep on top of prices, however, and you could be saving yourself over £100 per year. Not only that, but it’s a good source of news on price rises and movements in the energy markets, so you can make sure you’re not switching to a supplier that’s about to put its prices up by 10%. uSwitch also has comparison tools for everything from mortgages, credit cards and loans to insurance and broadband. A well-laid out, very easy to use comparison site.</p>
<h3>9. <a title="eBookPrice.info/" href="http://www.ebookprice.info" target="_self">eBookPrice.info /</a></h3>
<p><img style="border: 0px initial initial;" title="eBookPrice.info" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/ebookprice-462x343.png" alt="eBookPrice.info" width="462" height="343" /></p>
<p>We love the Amazon Kindle for the sheer convenience and the (generally) low cost of books in the Kindle store. But some prefer the more open approach, the touchscreen and better build quality of Sony’s eBook readers. Trouble is, the prices of non-Kindle ebooks can vary wildly from website to website, making it a slow process to find a good price on a particular title.</p>
<p>eBookPrice.info may be a bit sparse on the design front, and it certainly isn’t exhaustive in its list of suppliers, but as it’s the only comparison site we’ve come across to make an even halfway decent stab at comparing eBook prices, it’s worth bookmarking.</p>
<h3>10. <a title="Google Products" href="http://www.google.co.uk/products" target="_self">Google Products</a></h3>
<p><img class="alignnone size-large wp-image-30109" title="Google product search" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/googleproducts-461x440.png" alt="Google product search" width="461" height="440" /></p>
<p>No price comparison round-up would be complete without mentioning the king of comparison engines, Google Products. It&#8217;s great: we use price comparison sites every day at <em>PC Pro </em>to find the best prices for laptops, netbooks, peripherals, PCs, gadgets and phones, and the one we come back to every time is Google’s.</p>
<p>In short, there is no general price comparison search engine that can match Google’s reach and breadth of product search, and it manages to pack in a wealth of features too, from overviews and specifications lists for individual products to reviews and ratings for the retailers themselves. We wouldn’t be without it, and nor should you. A class act.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2010/12/29/top-ten-price-comparison-websites/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Displaying a location marker on a Google Map</title>
		<link>http://www.pcpro.co.uk/blogs/2010/12/23/displaying-a-location-marker-on-a-google-map/</link>
		<comments>http://www.pcpro.co.uk/blogs/2010/12/23/displaying-a-location-marker-on-a-google-map/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 12:54:54 +0000</pubDate>
		<dc:creator>Ian Devlin</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Real World Computing]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[google maps api]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=29482</guid>
		<description><![CDATA[
One of the most popular features on websites today is a marker pinpointing a location on Google Maps. It&#8217;s incredibly easy to add such a map to a website and I&#8217;m going to show you how.
I said it was easy, and with the recent release of version 3 of the Google Maps JavaScript API, it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/google-map.jpg" alt="Google Map" /></p>
<p>One of the most popular features on websites today is a marker pinpointing a location on Google Maps. It&#8217;s incredibly easy to add such a map to a website and I&#8217;m going to show you how.</p>
<p>I said it was easy, and with the recent release of version 3 of the Google Maps JavaScript API, it&#8217;s become even easier. With the previous version of this API, you had to register your map to receive an API key, but that&#8217;s now no longer necessary.</p>
<p>Naturally Google provide <a href="http://code.google.com/apis/maps/documentation/javascript/basics.html" target="_new">a comprehensive guide to the Maps API</a>, but I will run through the basics here.</p>
<p><span id="more-29482"></span></p>
<p><strong>Setting up the Map</strong></p>
<p>First of all you need to include the map API in your web page. This is done by adding the following line in the <code>&lt;head&gt;</code> element of your code:</p>
<pre><code>&lt;script
type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false"&gt;
&lt;/script&gt;</code></pre>
<p>You may notice the sensor parameter, which is set to false. This is a required parameter and should be set to &#8220;true&#8221; if the application used to determine the user&#8217;s location has a sensor device (e.g. a GPS locator). That&#8217;s not the case here, so we set it to false as shown.</p>
<p>Naturally, we need to define a map to display, but before we do that we need three things: somewhere on the web page to actually place the map, a default position to use as the map&#8217;s centre, and then some options to define the type of map that we require.</p>
<p>Setting up somewhere on the web page to place the map is a simple case of defining a div with a unique id, and some inline styling. So we have:</p>
<pre><code>&lt;div id="map" style="width:600px;
height:600px; margin-top:10px;"&gt;&lt;/div&gt;</code></pre>
<p>And that&#8217;s all we need.</p>
<p>To define a default position we need a latitude and longitude. There are plenty of websites out there that will convert addresses or places into coordinates for you, and I will centre this particular example on the <em>PC Pro </em>offices at latitude 51.515252 and longitude -0.189852. From these values a Google map position is defined by using the following:</p>
<pre><code>var latlngPos = new google.maps.LatLng(51.515252, -0.189852);</code></pre>
<p>We then set up the map options as follows:</p>
<pre><code>var myOptions = {
   zoom: 10,
   center: latlngPos,
   mapTypeId: google.maps.MapTypeId.ROADMAP
};</code></pre>
<p>Where <code>zoom</code> (naturally) indicates the zoom level of the map (you may want to play about with these to get the value that you want), <code>center</code> is set to the latitude/longitude position that we defined, and <code>mapTypeId</code> is set to the type of map that we wish to display initially. The map types are defined by the Google Maps API and are:</p>
<ul>
<li>MapTypeId.ROADMAP displays the default road map view</li>
<li>MapTypeId.SATELLITE displays Google Earth satellite images</li>
<li>MapTypeId.HYBRID displays a mixture of normal and satellite views</li>
<li>MapTypeId.TERRAIN displays a physical map based on terrain information</li>
</ul>
<p>Note: this simply defines the initial map type to display, the user can change it via a dropdown list that appears on the map itself. You can read more about the different map types over at <a href="http://code.google.com/apis/maps/documentation/javascript/maptypes.html" target="_new">Google</a> should you want to know more.</p>
<p>With these things done, we can now initialise our map as follows:</p>
<pre><code>var map = new google.maps.Map(document.getElementById("map"), myOptions);</code></pre>
<p>This will now cause the map to appear on your web page, contained within the map div (the map itself stays within the boundaries of the div&#8217;s dimensions).</p>
<p><strong>Marking the Location</strong></p>
<p>With the map set up, we can now go about defining the marker on the map that we want displayed. Once again we need to define a position for the Google map using latitude and longitude. I&#8217;m using the same values as above, as I want to place a marker on the <em>PC Pro</em> offices (it&#8217;ll help the staff when they stumble back from their Christmas party).</p>
<pre><code>var markerPos = new google.maps.LatLng(51.515252, -0.189852);</code></pre>
<p>Adding a marker to this location is as simple as:</p>
<pre><code>var marker = new google.maps.Marker({
   position: markerPos,
   map: map,
   title: "PC Pro Offices"
});</code></pre>
<p>(where map is the id of the map div)</p>
<p>As usual I have a <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/google-maps-simple-example.html">simple example</a> so that you can see it in action. (Note: this example also uses some jQuery)</p>
<p><strong>Going further</strong></p>
<p>The Google Map API is very powerful and you can go much further than I have shown here, such as adding pop-up information windows on the map marker.</p>
<p>You can even use the API to convert addresses into latitude/longitude positions and display them on the map. I have included a <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/12/google-maps-advanced-example.html">more advanced example</a> should you want to take a look at it. It&#8217;s pretty straightforward and I&#8217;ve commented the code in order to make it clearer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2010/12/23/displaying-a-location-marker-on-a-google-map/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to store website data with HTML5</title>
		<link>http://www.pcpro.co.uk/blogs/2010/09/27/data-storage-with-html5/</link>
		<comments>http://www.pcpro.co.uk/blogs/2010/09/27/data-storage-with-html5/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 11:02:47 +0000</pubDate>
		<dc:creator>Ian Devlin</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[data storage]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[localStorage]]></category>
		<category><![CDATA[sessionStorage]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=25108</guid>
		<description><![CDATA[
Throughout your web browsing careers I&#8217;m sure you&#8217;ve come across the notion of cookies, pieces of text stored by the browser to be retrieved and used at a later date. These vary from simply remembering your name to welcome you personally next time you visit, to more complicated storage of authentication and shopping-cart contents.
Cookies generally [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/09/html5-storage.jpg" alt="html5 storage" width="462" height="300" /></p>
<p>Throughout your web browsing careers I&#8217;m sure you&#8217;ve come across the notion of cookies, pieces of text stored by the browser to be retrieved and used at a later date. These vary from simply remembering your name to welcome you personally next time you visit, to more complicated storage of authentication and shopping-cart contents.</p>
<p>Cookies generally work well but can be fiddly to implement, as they are set to be deleted by default once the browser is closed. If a website owner needs the data to be stored for a longer period, a cookie can be given an expiry date. Again this isn&#8217;t as clean as it could be: how far into the future do you set the date, for example? And what happens when a user flushes out their cookies?</p>
<p>HTML5 attempts to clean this up with the introduction of web storage.</p>
<p><span id="more-25108"></span></p>
<p><strong>Web Storage</strong></p>
<p>Web storage comes in two different types, <code>sessionStorage</code> and <code>localStorage</code>. As might be deduced from the names, <code>sessionStorage</code> is for storing data that&#8217;s required for a particular session only, and <code>localStorage</code> is for data that&#8217;s to remain indefinitely.</p>
<blockquote><p>Web storage correctly separates session data from long term data</p></blockquote>
<p>This does away with the need for expiry dates, and instantly makes it clearer which data is for when and for how long. It also makes it incredibly easy to implement.</p>
<p><strong>The API</strong></p>
<p>As both types are so similiar, they share the same API, which contains the following items and functions:</p>
<pre><code>// The number of items being stored
long length;

// To retrieve the item 'key' from storage
getItem(key);

// To set the item 'key' in storage with 'value'
setItem(key, value);

// To remove the item from storage
removeItem(key);

// To clear the entire storage
clear();</code></pre>
<p>It&#8217;s all quite simple and straightforward to use.</p>
<p><strong>Saying Hello</strong></p>
<p>Let&#8217;s say you wanted to store a user&#8217;s name to welcome them back later. Assuming the existence of a simple HTML5 page consisting of one input field called <code>name</code> and a link that calls the function <code>saveName()</code> it would be defined as follows:</p>
<pre><code>function saveName() {
   var name = document.getElementById('name').value;
   localStorage.setItem('username', name);
}</code></pre>
<p><code> </code></p>
<p>Each time this page loads, call a new function <code>sayHello()</code> which is defined as:</p>
<pre><code>function sayHello() {
   var userName = localStorage.getItem('username');
   if (userName != null) alert("Hello " + userName + " and welcome back!");
}</code></pre>
<p><code> </code></p>
<p>This will check for the existence of a username in <code>localStorage</code>, and if it&#8217;s there, will welcome the user.</p>
<p><em>Note that <code>localStorage</code> is used here rather than <code>sessionStorage</code> as we want the name to be displayed next time the user visits the page again, during which time they may have closed the browser, which would clear anything in <code>sessionStorage</code>.</em></p>
<p>You can see this working for yourself in this very simple <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/09/say-hello.html">&#8220;say hello&#8221; example</a>. Enter a name, click &#8217;save&#8217;, and reload the page.</p>
<p>If you enter a different name in the input field and click &#8217;save&#8217;, the existing value will be overwritten. We could also remove the item by calling <code>localStorage.removeItem('name');</code> which would remove that item only. The entire <code>localStorage</code> could be cleared by calling <code>localStorage.clear();</code></p>
<p><strong>Session storage</strong></p>
<p><code>sessionStorage</code> works in the exact same way, except that the data will be automatically cleared once the brower is closed.</p>
<p>You can also store multiple data items in web storage attached to the one key, but you will need to use a JavaScript object and something such as JSON which helps to &#8220;stringify&#8221; the stored data, thus facilitating its storage.</p>
<p><strong>Browser Support</strong></p>
<p>If you&#8217;re used to reading about Internet Explorer&#8217;s current inability to support any HTML5 feature, you&#8217;re in for a surprise here. Web storage is actually supported by IE8 as well as all the major browsers:</p>
<ul>
<li>Firefox 3.5+</li>
<li>Safari 4.0+</li>
<li>Chrome 4.0+</li>
<li>Opera 10.5+</li>
<li>Internet Explorer 8.0+</li>
<li>iPhone 2.0+</li>
<li>Android 2.0+</li>
</ul>
<p>So basically, you can start using it now!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2010/09/27/data-storage-with-html5/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Adding your Twitter feed to your website with jQuery</title>
		<link>http://www.pcpro.co.uk/blogs/2010/09/13/adding-your-twitter-feed-to-your-website-with-jquery/</link>
		<comments>http://www.pcpro.co.uk/blogs/2010/09/13/adding-your-twitter-feed-to-your-website-with-jquery/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 10:44:11 +0000</pubDate>
		<dc:creator>Ian Devlin</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=24427</guid>
		<description><![CDATA[
If you or your company has a Twitter account, chances are you&#8217;d like to promote it and display your latest tweets from your website. Since many websites &#8211; both personal and increasingly business &#8211; are built on blogging software such as WordPress, this is usually achieved via a plugin, of which there are many out [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-large wp-image-24547" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/09/PC-Pro-Twitter-page--462x346.jpg" alt="PC Pro Twitter page" width="462" height="346" /></p>
<p>If you or your company has a Twitter account, chances are you&#8217;d like to promote it and display your latest tweets from your website. Since many websites &#8211; both personal and increasingly business &#8211; are built on blogging software such as WordPress, this is usually achieved via a plugin, of which there are many out there.</p>
<p>But what if you simply want to add your live Twitter feed to a &#8220;normal&#8221; web page? <a title="Twitter widgets" href="http://twitter.com/goodies/widgets" target="_blank">Twitter itself provides a number of HTML widgets</a>, but in this article I&#8217;ll show you how easy it is to achieve with a little bit of JavaScript, CSS, and jQuery.</p>
<p><span id="more-24427"></span></p>
<p>In case you haven&#8217;t come across it before:</p>
<p><strong>What is jQuery?</strong></p>
<p><a href="http://jquery.com/" target="_new">jQuery</a> is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. It&#8217;s very powerful and makes life a whole lot easier when writing JavaScript. To include jQuery in your webpage, simply add the following within the <code>&lt;head&gt;</code> tags:</p>
<p><code>&lt;script type="text/javascript" src="http://jqueryjs.google<br />
code.com/files/jquery-1.3.2.min.js"&gt;&lt;/script&gt;</code></p>
<p>This uses the version that is hosted on Google Code, which saves you having to download the file.</p>
<p><strong>Twitter API</strong></p>
<p>Twitter itself provides a complicated API to allow access to all sorts of things. A lot of this complication arises around authentication, and necessarily so, but thankfully to simply retrieve a stream of tweets, authentication isn&#8217;t required (as long as the user in question hasn&#8217;t hidden their tweets).</p>
<p>First of all the API provides many different ways to obtain a <a href="http://dev.twitter.com/doc/get/statuses/" target="_new">user&#8217;s statuses</a>. I won&#8217;t go into any of them other than the one that I favour, and this is the one that I&#8217;ll talk about here: <a href="http://dev.twitter.com/doc/get/statuses/user_timeline" target="_new">user_timeline</a>.</p>
<p><strong>user_timeline</strong></p>
<p>This returns a number of the most recent statuses posted by the user. It can return the data in different formats: XML, JSON, RSS and Atom. I favour  <a href="http://www.json.org/" target="_new">JSON</a>, a lightweight data-interchange format, so this is the one that I will talk about.</p>
<p>You can use a number of parameters, and a full list of what they can do can be found on the Twitter API description for <a href="http://dev.twitter.com/doc/get/statuses/user_timeline" target="_new">user_timeline</a>. For now, I will only use a few relevant ones.</p>
<p><strong>Give me the Tweets!</strong></p>
<p>To retrieve the data for a particular Twitter account (I will use <a href="http://twitter.com/pcpro" target="_new">pcpro</a> in this example here) you call the following:</p>
<p><code>$.getJSON("http://twitter.com/statuses/user_timeline.json?<br />
screen_name=pc_pro&amp;count=10&amp;callback=?",<br />
function(tweetdata) {<br />
   // do some stuff here<br />
});</code></p>
<p>This will return the last 10 tweets from the pc_pro account in JSON format in the <code>tweetdata</code> variable. By default, retweeted tweets are not included in this feed, but to include them, add the <code>&amp;include_rts=1</code> parameter above, and they will be returned.</p>
<p>Of course we now have to make sense of this data, parse it and actually do something with it.</p>
<p>On our HTML page, define a <code>&lt;ul&gt;</code> and give it the id <code>tweet-list</code>. This is where we will hold our tweets. The above code is then extended to do the following:</p>
<p><code>$.getJSON("http://twitter.com/statuses/user_timeline.json?screen_name=pc_pro&amp;count=1O&amp;callback=?", function(tweetdata) {<br />
   var tl = $("#tweet-list");<br />
   $.each(tweetdata, function(i,tweet) {<br />
      tl.append("&lt;li&gt;“" + tweet.text + "”– " + tweet.created_at + "&lt;/li&gt;");<br />
   });<br />
});</code></p>
<p>Some explanations: <code>var tl = $("#tweet-list");</code> grabs a reference to the <code>&lt;ul&gt;</code> element that we created above. We need this as we will add each tweet to it.</p>
<p><code>$.each(tweetdata, function(i,tweet) {...</code> is the start of a jQuery loop, in this case iterating through each item in <code>tweetdata</code> and storing it temporarily in <code>tweet</code>. The following line then adds the tweet within an <code>&lt;li&gt;</code> item.  The actual text of the tweet is contained within the <code>text</code> data member, and here we put double quotes around it, and the time it was created is contained within the <code>created_at</code> data member.</p>
<p>This will now display the last 10 tweets in list format on the relevant HTML page.</p>
<p>However, if there are links contained in the tweet, they won&#8217;t be clickable, and the created date is a bit long and not like the Twitter standard timelines such as &#8220;about a minute ago&#8221; or &#8220;two hours ago&#8221;. We can fix this with the following two functions <code>urlToLink();</code> which we call on <code>tweet.text</code>:</p>
<p><code>function urlToLink(text) {<br />
   var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&amp;@#\/%?=~_|!:,.;]*[-A-Z0-9+&amp;@#\/%=~_|])/ig;<br />
   return text.replace(exp,"&lt;a href='$1'&gt;$1&lt;/a&gt;");<br />
}</code></p>
<p>and <code>relTime();</code> which we call on <code>tweet.created_at</code>:</p>
<p><code>function relTime(time_value) {<br />
   time_value = time_value.replace(/(\+[0-9]{4}\s)/ig,"");<br />
   var parsed_date = Date.parse(time_value);<br />
   var relative_to = (arguments.length &gt; 1) ? arguments[1] : new Date();<br />
   var timeago = parseInt((relative_to.getTime() - parsed_date) / 1000);<br />
   if (timeago &lt; 60) return 'less than a minute ago';<br />
   else if(timeago &lt; 120) return 'about a minute ago';<br />
   else if(timeago &lt; (45*60)) return (parseInt(timeago / 60)).toString() + ' minutes ago';<br />
   else if(timeago &lt; (90*60)) return 'about an hour ago';<br />
   else if(timeago &lt; (24*60*60)) return 'about ' + (parseInt(timeago / 3600)).toString() + ' hours ago';<br />
   else if(timeago &lt; (48*60*60)) return '1 day ago';<br />
   else return (parseInt(timeago / 86400)).toString() + ' days ago';<br />
}</code></p>
<p>So we need to change the above line to the following:</p>
<p><code>tl.append("&lt;li&gt;“" + urlToLink(tweet.text) + "”– " + relTime(tweet.created_at) + "&lt;/li&gt;");</code></p>
<p>This will be called when the HTML page is loaded (or you can load it some other time, it&#8217;s up to you of course) and this is done using jQuery by inserting the code within:</p>
<p><code>$(document).ready(function() {<br />
   // code here<br />
});</code></p>
<p>which basically calls the code when the entire DOM has been loaded.</p>
<p><strong>End Result</strong></p>
<p>I have put together an <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/09/twitter-api-test3.html">example</a> using all the code above, so you can see all this together and working for yourself. Plus you can <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/09/twitter-api-test3-view.html">view the code</a> to see how it&#8217;s done. It&#8217;s all commented too, probably overly so, in case you get stuck.</p>
<p>You can of course also style the list and its contents with CSS, but I&#8217;ll leave that as an exercise for the reader.</p>
<p><strong>*Update*</strong></p>
<p>One of the comments below asked about retrieving the latest statuses from a specific account&#8217;s list. I&#8217;ve created a quick example that <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/09/twitter-api-list-test2.html">retrieves and displays the latest updates</a> from PC Pro&#8217;s &#8217;staff&#8217; Twitter list. You can of course <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/09/twitter-api-list-test-view2-view.html">view</a> the source code.</p>
<p>The main difference is the URL in included in the <code>&amp;.getJSON()</code> call which should be:</p>
<p><code>http://api.twitter.com/1/<strong>account-name</strong>/lists/<strong>list-name</strong>/statuses.json?callback=?</code></p>
<p>where <code>account-name</code> is the name of the account, in this case <code>pc_pro</code>, and <code>list-name</code> is the name of the list, in this case <code>staff</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2010/09/13/adding-your-twitter-feed-to-your-website-with-jquery/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Adding audio to your website with HTML5</title>
		<link>http://www.pcpro.co.uk/blogs/2010/08/23/adding-audio-to-your-website-with-html5/</link>
		<comments>http://www.pcpro.co.uk/blogs/2010/08/23/adding-audio-to-your-website-with-html5/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 09:25:52 +0000</pubDate>
		<dc:creator>Ian Devlin</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=22981</guid>
		<description><![CDATA[
With all the furore around the HTML5 video element, the poor audio element sits in the background wondering what it&#8217;s done wrong to receive so little attention. So in an attempt to redress the balance, I&#8217;m going to show you how you can stream audio to your website visitors without any additional plugins.
As with the video [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/08/gramaphone-2.jpg" alt="old gramaphone" /><br />
With all the furore around the HTML5 <a href="http://www.pcpro.co.uk/blogs/2010/05/18/adding-video-to-your-website-with-html5/">video element</a>, the poor audio element sits in the background wondering what it&#8217;s done wrong to receive so little attention. So in an attempt to redress the balance, I&#8217;m going to show you how you can stream audio to your website visitors without any additional plugins.</p>
<p>As with the video element, in the past the only method of embedding audio files into a web page was to use Flash or another third-party plugin. There simply was no other way. With the introduction of the audio element, this has changed.</p>
<p><span id="more-22981"></span></p>
<p><strong>Browsers and file types</strong></p>
<p>There are currently three different audio file types that are supported, and (of course) the different browsers each support different formats. The table below illustrates this:</p>
<table style="text-align: center;margin: 20px 0" border="0">
<thead>
<tr style="margin: 6px 0">
<th></th>
<th>Vorbis OGG</th>
<th>MP3</th>
<th>WAV</th>
</tr>
</thead>
<tbody>
<tr style="margin: 6px 0">
<td style="text-align:left">Firefox 3.6.8</td>
<td>✓</td>
<td>x</td>
<td>✓</td>
</tr>
<tr style="margin: 6px 0">
<td style="text-align:left">Chrome 5</td>
<td>✓</td>
<td>✓</td>
<td>x</td>
</tr>
<tr style="margin: 6px 0">
<td style="text-align:left">Safari 5</td>
<td>x</td>
<td>✓</td>
<td>✓</td>
</tr>
<tr style="margin: 6px 0">
<td style="text-align:left">Opera 10.6</td>
<td>✓</td>
<td>x</td>
<td>✓</td>
</tr>
<tr style="margin: 6px 0">
<td style="text-align:left">Internet Explorer 8</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
<tr style="margin: 6px 0">
<td style="text-align:left">Internet Explorer 9</td>
<td>x</td>
<td>✓</td>
<td>x</td>
</tr>
<tr style="margin: 6px 0">
<td style="text-align:left">iPhone</td>
<td>x</td>
<td>✓</td>
<td>✓</td>
</tr>
<tr style="margin: 6px 0">
<td style="text-align:left">Android</td>
<td>x</td>
<td>x</td>
<td>x</td>
</tr>
</tbody>
</table>
<p><strong>Code</strong></p>
<p>So how do we actually go about adding an audio file to a web page? Well it&#8217;s quite simple really, especially if you&#8217;ve already used the <a href="http://www.pcpro.co.uk/blogs/2010/05/18/adding-video-to-your-website-with-html5/">video</a> element.</p>
<p>Instead of using the &lt;<code>video&gt;</code> element we naturally use its brother, the <code>&lt;audio&gt;</code> element. Like the <code>&lt;video&gt;</code> element, we can use the <code>src</code> attribute to directly specify the audio file to play, but, as shown above, it&#8217;s more practical to use the <code>&lt;source&gt;</code> element to indicate a number of possible sources in order to cover <del datetime="2010-08-21T07:27:38+00:00">all</del> most browsers.</p>
<p><strong>The &lt;audio&gt; element</strong></p>
<p>The <code>audio</code> element takes the following attributes:</p>
<table style="text-align:left;padding-right:5px" border="0" width="400px">
<thead>
<tr style="background-color:#e2001a;color:#fff">
<th>Attribute</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr style="background-color:#ddd">
<td style="padding-left:5px" valign="top">src</td>
<td style="padding-left:5px">a valid URL to the audio file itself</td>
</tr>
<tr style="background-color:#ddd">
<td style="padding-left:5px" valign="top">preload</td>
<td style="padding-left:5px">Specifies if the audio is to be preloaded or not. Possible values:</p>
<ul style="padding-left:15px;color:#222">
<li>auto &ndash; loads the entire audio file when the page loads</li>
<li>meta &ndash; only load the audio files meta data when the page loads</li>
<li>none &ndash; don&#8217;t load the audio file when the page loads</li>
</ul>
</td>
</tr>
<tr style="background-color:#ddd">
<td style="padding-left:5px" valign="top">autoplay</td>
<td style="padding-left:5px">a boolean indicating whether the audio file should be played automatically</td>
</tr>
<tr style="background-color:#ddd">
<td style="padding-left:5px" valign="top">controls</td>
<td style="padding-left:5px">a boolean indicating that the default media controls should be displayed by the browser</td>
</tr>
<tr style="background-color:#ddd">
<td style="padding-left:5px" valign="top">loop</td>
<td style="padding-left:5px">a boolean indicating whether the audio file should be played repeatedly (this is evil)</td>
</tr>
</tbody>
</table>
<p>So you can easily add a WAV audio file to your website by using the following markup:</p>
<p><code>&lt;audio src="audioFile.wav" autoplay controls&gt;&lt;/audio&gt;</code></p>
<p>Of course, as mentioned above, this can limit your browser compatibility and it&#8217;s better to provide different audio sources using the <code>&lt;source&gt;</code> element.</p>
<p><strong>The &lt;source&gt; element</strong></p>
<p>The <code>source</code> element can take the following attributes:</p>
<table style="text-align:left;padding-right:5px" border="0" width="400px">
<thead>
<tr style="background-color:#e2001a;color:#fff">
<th>Attribute</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr style="background-color:#ddd">
<td style="padding-left:5px" valign="top">src</td>
<td style="padding-left:5px">a valid URL to the media (in this case audio) file itself</td>
</tr>
<tr style="background-color:#ddd">
<td style="padding-left:5px" valign="top">type</td>
<td style="padding-left:5px">the type of the media file which must be a <a href="http://www.webmaster-toolkit.com/mime-types.shtml" target="new">MIME type</a>, e.g. <code>type="audio/ogg"</code> indicates that it is a Vorbis OGG audio file, and you can also provide the MIME codec to help the browser to decide how to play the audio by using <code>type='audio/ogg; codecs="vorbis"</code>.</td>
</tr>
</tbody>
</table>
<p><strong>Stacking the audio sources</strong></p>
<p>Combining the <code>&lt;audio&gt;</code> and <code>&lt;source&gt;</code> elments together couldn&#8217;t be simpler, as the code below shows:</p>
<p><code>&lt;audio controls autobuffer&gt;<br />
&lt;source src="audioFile.ogg"&gt;<br />
&lt;source src="audioFile.mp3"&gt;<br />
&lt;source src="audioFile.wav"&gt;<br />
Sorry, your browser does not support the audio element<br />
&lt;/audio&gt;</code></p>
<p>The code above should play the specified audio file in all of the browsers mentioned above (except for the current incarnations of Internet Explorer and Android &#8211; which will display the message indicating as much. This could be replaced with a Flash fallback of course).</p>
<p>Feel free to <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/08/html5-audio-test-2.html">test this code for yourself</a>.</p>
<p><strong>Conclusion</strong></p>
<p>So there it is in its simplest form, adding an audio file to a web page. Of course it depends on the browser the page is being viewed in, and, as usual, we&#8217;re still waiting for Internet Explorer to catch up (A beta version of IE9 is due out next month).  Nevertheless, it&#8217;s still worth using today. Just don&#8217;t set your files to autoplay!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2010/08/23/adding-audio-to-your-website-with-html5/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Why you (probably) shouldn&#8217;t worry about diffraction in your photos</title>
		<link>http://www.pcpro.co.uk/blogs/2010/08/19/why-you-probably-shouldnt-worry-about-diffraction-in-your-photos/</link>
		<comments>http://www.pcpro.co.uk/blogs/2010/08/19/why-you-probably-shouldnt-worry-about-diffraction-in-your-photos/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 10:45:26 +0000</pubDate>
		<dc:creator>Dave Stevenson</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[dslr]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[printing]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=22903</guid>
		<description><![CDATA[As most right-thinking people will already know, I wrote an article in the latest issue of PC Pro explaining how to turn your photos into high-quality print-outs.
And I wrote what I considered to be an innocent line: &#8220;&#8230;for landscape shots, place your camera on a tripod, use a remote shutter release to minimise the risk [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/08/Cover_PCP192-DVD.jpg"><img class="alignright size-medium wp-image-22906" title="PC Pro Cover 192.indd" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/08/Cover_PCP192-DVD-123x175.jpg" alt="PC Pro Cover 192.indd" width="123" height="175" /></a>As most right-thinking people will already know, I wrote an article in the latest issue of <em>PC Pro </em>explaining how to turn your photos into high-quality print-outs.</p>
<p>And I wrote what I considered to be an innocent line: &#8220;&#8230;for landscape shots, place your camera on a tripod, use a remote shutter release to minimise the risk of camera shake, and apply a small aperture (f/16 is ideal) to get as much of the frame in focus as possible.&#8221;</p>
<p>This prompted subscriber Simon Barnes to write to PC Pro&#8217;s editor, Tim Danton, to say: &#8220;he makes a canard, suggesting f/16 is good for depth of field in landscapes, when in fact, even at full frame this is already straying into diffraction, which will be worse with smaller sensors. He&#8217;s not the only one saying this of course, it&#8217;s regularly trotted out.&#8221;</p>
<p>Quite apart from teaching me a new word, Simon was raising an interesting point, which I&#8217;ll attempt to tackle here. I should add that the pratical effect of diffraction in photography is to limit the resolving power of the camera as a whole &#8211; in other words once diffraction sets in, your images will in theory be softer, with less detail.<span id="more-22903"></span>The &#8220;sweet spot&#8221; for lenses is normally f/8 &#8211; f/11, so shooting f/16 <em>might</em> not get you the absolutely sharpest possible image you could  possibly, possibly get.</p>
<p>What it will get you is very good depth  of field &#8211; i.e. if you&#8217;ve focussed properly on one point in the frame  it&#8217;s likely the rest of the landscape will be focussed as well. If I had  the choice between a 100% focussed image that was slightly soft or an  image where focus fell off towards the back of the scene I&#8217;d take the  100% focussed image and either live with the softness or sharpen it out  afterwards.</p>
<p><a title="Quite Something" href="http://www.quitesomething.co.uk" target="_blank"><img class="alignright size-full wp-image-22936" style="margin-top: 10px; margin-bottom: 10px;" title="Landscape photo copyright Dave Stevenson" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/08/Landscape-photo-copyright-Dave-Stevenson.jpg" alt="Landscape photo copyright Dave Stevenson" width="460" height="307" /></a></p>
<p>Most of my favourite landscape images (such as the one above) are taken between f/8 and  f/16 and I&#8217;ve got no problems with the sharpness of the images taken at  f/16. Every lens is different, obviously, so a thousand pound  wide-angle lens will perform <em>much </em>better at f/16 than the lens that  comes with a 1000D.</p>
<p>Tim passed my comments on, to which Simon responded: &#8220;But again there is no mention of the sensor size which is critical in this! Also diffraction cannot be mitigated by better lens design as it&#8217;s a property of the light and aperture, not the glass.&#8221; Hands up: he&#8217;s absolutely right (for more details, visit <a title="Cambridge in Colour" href="http://www.cambridgeincolour.com/tutorials/diffraction-photography.htm" target="_blank">Cambridge in Colour</a>, which has an excellent discussion of this very subject).</p>
<p>But: the odds of a landscape being ruined by diffraction or sensor size are tiny compared to the odds of it being ruined by misjudging composition/focus/exposure/using a non-professional lens. In other words, it isn&#8217;t, personally, something I&#8217;d worry about. The lens attached to a camera has a much bigger impact on image quality than the camera it&#8217;s attached to (caveats apply as always&#8230; in most cases&#8230; with some exceptions&#8230; etc).</p>
<p>Then again, photography is a personal thing and if Simon has found a way of working that produces sharp, beautiful images that he&#8217;s proud of then I&#8217;d absolutely urge him to ignore me totally and carry on.</p>
<p>For people looking for a general guideline I&#8217;d still say f/16 is a good starting point. (If you have the inclination, look on that Cambridge in Colour page for the section headed &#8220;Notes on real-world use in photography&#8221; and read the first two paragraphs &#8211; that&#8217;s what I&#8217;m getting at.)</p>
<p><a href="http://www.quitesomething.co.uk" target="_blank"><img class="alignright size-full wp-image-22939" style="margin-top: 10px; margin-bottom: 10px;" title="Landscape photo 2 copyright Dave Stevenson" src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/08/Landscape-photo-2-copyright-Dave-Stevenson.jpg" alt="Landscape photo 2 copyright Dave Stevenson" width="460" height="307" /></a></p>
<p>f/16 is a pretty general rule. As with most aspects of photography the rules change depending on what you&#8217;re using, what you&#8217;re shooting and what kind of light you have available. And it&#8217;s true that if you&#8217;re shooting with a compact then different rules apply once again.</p>
<p>In particular, when the &#8220;what you&#8217;re using&#8221; is a compact rather than a Digital SLR, diffraction becomes a much bigger issue. As the Cambridge in Colour article points out, the sensor size in a compact is so tiny that diffraction is an issue at quite large f-stops, which means far more pictures will be affected.</p>
<p>It makes sense to me, though, that with the image quality/lens quality on offer from compacts being so much lower than that of DSLR, that diffraction will never be noticed before the other flaws in an image. I confess, though, that&#8217;s a bit of an assumption, so I&#8217;d be fascinated to know if people have encountered diffraction issues with their compacts &#8211; or indeed their DSLRs at f/16.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2010/08/19/why-you-probably-shouldnt-worry-about-diffraction-in-your-photos/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How to make your website more attractive with @font-face</title>
		<link>http://www.pcpro.co.uk/blogs/2010/07/15/embedding-fonts-in-web-pages-using-font-face/</link>
		<comments>http://www.pcpro.co.uk/blogs/2010/07/15/embedding-fonts-in-web-pages-using-font-face/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 10:42:25 +0000</pubDate>
		<dc:creator>Ian Devlin</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[@font-face]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.pcpro.co.uk/blogs/?p=19495</guid>
		<description><![CDATA[
photo by Kriss Szkurlatowski
In my last blog entry I briefly mentioned CSS3 when talking about the confusion surrounding HTML5. In this post, I&#8217;m going to talk about one of the new features of CSS3 and one which will possibly be noticed most by the non-web developer.
Allow me to introduce @font-face.

What does @font-face do?
It allows a [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/07/typewriter-type.jpg" alt="typewriter type" width="462" height="200" /></p>
<div style="margin-top:-20px;margin-bottom:10px;font-size:10px;color:#aaa">photo by Kriss Szkurlatowski</div>
<p>In my <a href="http://www.pcpro.co.uk/blogs/2010/06/22/the-confusion-surrounding-html5/">last blog entry</a> I briefly mentioned CSS3 when talking about <a href="http://www.pcpro.co.uk/blogs/2010/06/22/the-confusion-surrounding-html5/">the confusion surrounding HTML5</a>. In this post, I&#8217;m going to talk about one of the new features of CSS3 and one which will possibly be noticed most by the non-web developer.</p>
<p>Allow me to introduce @font-face.</p>
<p><span id="more-19495"></span></p>
<p><strong>What does @font-face do?</strong></p>
<p>It allows a web developer to embed a font within a web page and display it to the user. So instead of the bog standard fonts that are normally found on websites, you can now see much fancier and prettier fonts.</p>
<p><strong>A brief history</strong></p>
<p>The @font-face <abbr title="Cascading Style Sheets">CSS</abbr> rule was first introduced in the <a href="http://www.w3.org/TR/2008/REC-CSS2-20080411/fonts.html#font-descriptions" target="_new">CSS 2.0 specification</a> and then removed in <a href="http://www.w3.org/TR/CSS2/fonts.html" target="_new">CSS 2.1</a>, before being reintroduced in <a href="http://www.w3.org/TR/css3-fonts/#the-font-face-rule" target="_new">CSS 3.0</a>. The fact that it existed in CSS 2.0 is important, because it means that even legacy browsers such as Internet Explorer 6 (the bane of many a web developer&#8217;s life) support it.</p>
<blockquote><p>the @font-face rule was first introduced in the CSS 2.0 specification</p></blockquote>
<p><strong>Issues</strong></p>
<p>As is usual with such things, there are some issues with regards to implementing @font-face. First of all, as is customary in the world of web development, different browsers support different formats. Why these guys can&#8217;t seem to agree on the same format for anything is a mystery to me. So this means that a font defined with @font-face needs to be made available in different formats to be usable by each of the major browsers.</p>
<p>Secondly, not all fonts can be used legally in this manner. As @font-face downloads the required font from the server (where the site is hosted) to the user&#8217;s personal machine, the font licence needs to allow this free distribution of fonts. Thankfully there are many font developers out there who are now beginning to release their fonts with the required licence.</p>
<p><strong>Using @font-face</strong></p>
<p>So how can you use @font-face to embed an attractive typeface in your website? The answer is very easily.</p>
<p>First of all you need to pick a font, and ensure that it has the required licence. The best place to go for a comprehensive list of such fonts is <a href="http://www.fontsquirrel.com/fontface" target="_new">Font Squirrel</a>. (Incidentally, the site also has a <a href="http://www.fontsquirrel.com/fontface/generator" target="_new">@font-face Kit Generator</a> which allows you to upload fonts, and I highly recommend using it.)</p>
<p>For this demo I have chosen <a href="http://www.fontsquirrel.com/fonts/Hattori-Hanzo" target="_new">Hattori Hanzo</a> from Font Squirrel and downloaded the <a href="http://www.fontsquirrel.com/fontfacekit/Hattori-Hanzo">font kit</a>. The kit is a ZIP file that will contain a number of files, most of which are the fonts themselves in different formats, which are:</p>
<ul>
<li><abbr><strong>EOT</strong></abbr> – the font format used by Microsoft and supported from IE 4+</li>
<li><abbr><strong>TTF</strong></abbr> – the outline font standard originally developed by Apple and supported by Firefox 3.5+, Opera 10+, Safari 3.1+ and Chrome 4.0.249.4+</li>
<li><abbr title="Scalable Vector Graphics"><strong>SVG</strong></abbr> – SVG uses <abbr title="eXtensible Markup Language">XML</abbr> to describe 2D graphics and here, font characters, for the iPad and iPhone</li>
<li><abbr title="Web Open Font Format"><strong>WOFF</strong></abbr> – is a repackaged version of a TrueType or OpenType font in a compressed form and is supported by Firefox 3.6+, IE9 and Chrome 5+</li>
</ul>
<p>As shown above, different browsers support different font formats, and the @font-face CSS rule will reflect this. Included with the @font-face kit will be a CSS file which will contain this rule. Let&#8217;s take a look at the one that comes with the Hattori Hanzo font. It contains two font rule declarations, one for <em>HattoriHanzoLight</em> and another for <em>HattoriHanzoLightItalic</em>. Both declarations are the same and simply reference different files, so I will only go through the first:</p>
<p><code>@font-face {<br />
font-family: 'HattoriHanzoLight';<br />
src: url('Hattori_Hanzo-webfont.eot');<br />
src: local('?'), url('Hattori_Hanzo-webfont.woff')<br />
format('woff'), url('Hattori_Hanzo-webfont.ttf')<br />
format('truetype'),<br />
url('Hattori_Hanzo-webfont.svg#webfontwDgCZ3F8')<br />
format('svg');<br />
font-weight: normal;<br />
font-style: normal;<br />
}</code></p>
<p>The first part of the @font-face declaration indicates the font-family, in this case <em>HattoriHanzoLight</em>. This will be the name that is used throughout the CSS file to indicate that this @font-face declaration is to be used.</p>
<p>Next is the EOT declaration. This needs to be the first <code>src</code> declaration otherwise Internet Explorer won&#8217;t find it and will break. As you can see, it simply points at the font file to use.</p>
<p>The third declaration <code>local('?')</code> tells the browser to check the local system for the font first. If the user has already installed it, then that one will be used. Otherwise the declarations that follow it will be downloaded in whatever format the browser understands.</p>
<p>All you need to do to apply this font to any normal CSS declaraion is to assign the appropriate name to the <code>font-family</code> attribute. For example:</p>
<p><code>p {<br />
font-family: 'HattoriHanzoLight';<br />
font-size: 16px;<br />
font-weight: normal;<br />
}</code></p>
<p>That&#8217;s it really. Quite simple. I have created a <a href="http://www.pcpro.co.uk/blogs/wp-content/uploads/2010/07/font-face-hattori-hanzo-demo.html">demo page for @font-face and Hattori Hanzo Light</a> for you to see the font in action.</p>
<p><strong>Conclusion</strong></p>
<p>For many, @font-face won&#8217;t seem like a big deal. And the fact that the different font formats are rendered differently on the various browsers, with varying degrees of success, may dampen the effect that embedding fonts within a webpage may have. I, on the other hand, believe it to be a big step forward in allowing web developers and designers to produce better looking sites and interfaces that will benefit the end user.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcpro.co.uk/blogs/2010/07/15/embedding-fonts-in-web-pages-using-font-face/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

