<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Web Designer - Defining the internet through beautiful design</title>
	
	<link>http://www.webdesignermag.co.uk</link>
	<description>Web Design for real people</description>
	<lastBuildDate>Tue, 31 Jan 2012 14:35:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WebDesignerMag" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="webdesignermag" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>iCloud for Beginners on Apple iBooks 2</title>
		<link>http://www.webdesignermag.co.uk/blog/icloud-for-beginners-on-apple-ibooks-2/</link>
		<comments>http://www.webdesignermag.co.uk/blog/icloud-for-beginners-on-apple-ibooks-2/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:35:38 +0000</pubDate>
		<dc:creator>Mark Billen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Beginners]]></category>
		<category><![CDATA[iBooks]]></category>
		<category><![CDATA[iCloud]]></category>
		<category><![CDATA[Imagine]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[Publishing]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8278</guid>
		<description><![CDATA[First-ever multimedia-enriched ebook from Imagine Publishing, iCloud For Beginners, released on Apple’s iBookstore
]]></description>
			<content:encoded><![CDATA[<!--iCloudBeginners2--><p><a href="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/iCloudBeginners2.jpg"><img class="alignnone size-full wp-image-8279" title="iCloud for Beginners on Apple iBooks 2" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/iCloudBeginners2.jpg" alt="iCloud for Beginners on Apple iBooks 2" width="500" height="646" /></a></p>
<p><strong>Imagine is first UK publisher to launch title for Apple’s iBooks 2</strong></p>
<p><a href="http://www.imagine-publishing.co.uk/" target="_self">Imagine Publishing</a> has launched a new digital-only, Multi-Touch ebook, <a href="http://www.imagine-publishing.co.uk/news/262/imagine_is_first_uk_publisher_to_launch_title_for_apple_s_ibooks_2" target="_self">iCloud For Beginners</a>, specifically designed for Apple’s iBooks 2. Featuring slideshows, interactive images and more, it is one of the first ebooks of its type in the world.<br />
Using iBooks Author’s revolutionary Multi-Touch technology, iCloud For Beginners teaches everything users need to know about iCloud, the free new back-up and sync service. From how to set-up your free iCloud account to sharing your information across your Apple devices, the ebook uses cutting-edge technology to deliver enhanced, easy-to-use tutorials.<br />
“At Imagine, we’re always excited by cool new ways to deliver our world-leading content.” said Editor In Chief Aaron Asadi “iBooks Author is another great opportunity for us to create more products we love for a whole new type of audience. It’s this sort of game-changing innovation that makes us do what we do. ”<br />
“With the speed that the publishing industry is changing, there’s nothing more exhilarating than grabbing hold of new technologies and seeing how we can get the most out of them to serve-up the content we’re so passionate about” added Ross Andrews, Head of Design “What could be better than going from saying ‘we should try that’ to a fully published product in just a few days? It’s hard to think of a more exciting time for the industry.”<br />
iCloud For Beginners is available now on <a href="http://itunes.apple.com/gb/book/icloud-for-beginners/id497723676?mt=11" target="_self">iTunes</a> and iBookstore worldwide.<br />
Imagine Publishing is one of the UK’s fastest-growing multimedia content producers. Formed in May 2005, Imagine now publishes 20 regular print magazines, 30 digital apps, 25 websites and thousands of articles every month in the technology, videogames, photography and knowledge/science markets. An Imagine magazine is purchased every ten seconds.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/XErEWOKaD5A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/blog/icloud-for-beginners-on-apple-ibooks-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How It Works Daily site gets revamp!</title>
		<link>http://www.webdesignermag.co.uk/blog/how-it-works-daily-site-gets-revamp/</link>
		<comments>http://www.webdesignermag.co.uk/blog/how-it-works-daily-site-gets-revamp/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 11:03:26 +0000</pubDate>
		<dc:creator>Mark Billen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[HIW]]></category>
		<category><![CDATA[How It Works]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[Masonry]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[redesign]]></category>
		<category><![CDATA[revamp]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8274</guid>
		<description><![CDATA[How It Works Daily gets new site design utilising WordPress and jQuery technology to add next-gen appeal]]></description>
			<content:encoded><![CDATA[<!--HIWhome--><!--layout--><p><a href="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/HIWhome.jpg"><img class="alignnone size-full wp-image-8276" title="How It Works Daily site gets revamp!" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/HIWhome.jpg" alt="How It Works Daily site gets revamp!" width="500" height="281" /></a></p>
<p><strong>HOW IT WORKS DAILY GETS BRAND NEW SITE DESIGN</strong></p>
<p>How it Works is the most exciting science &amp; technology magazine in the world today, and is now a well-respected globally successful brand comprising of a magazine, bookazines, website, mobile app and many licensed editions.<br />
The official magazine website at <a href="http://www.howitworksdaily.com/">www.howitworksdaily.com</a> has just been given an exciting revamp, introducing a modern and dynamic design for housing a wealth of content spanning news, facts and competitions.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><p>How It Works’ web developer, Andy Leon, said: “There&#8217;s something for everyone in How It Works, so we&#8217;ve focused on making it easier for readers to find content that interests them. The continuous-loading homepage means that it&#8217;s near impossible to run out of fascinating articles to browse. These are also now more engaging, with interactive illustrations that take the reader inside some of the awesome technology. Plus, sharing with friends is now effortless, with social networks and aggregator sites available on-the-page.”</p>
<p>As well as using WordPress to serve the content, the site utilises a jQuery plugin for WordPress called <a href="http://masonry.desandro.com/" target="_self">Masonry</a> to achieve the unorthodox layout. Designed by web designer and front-end developer <a href="http://desandro.com/" target="_self">David DeSandro</a>, the plugin  enhances CSS Float methods to pull elements together and make them stack more tightly, as the official developer page explains:<br />
&#8220;Masonry is a dynamic grid layout plugin for jQuery. Think of it as the flip-side of CSS floats. Whereas floating arranges elements horizontally then vertically, Masonry arranges elements vertically, positioning each element in the next open spot in the grid. The result minimises vertical gaps between elements of varying height, just like a mason fitting stones in a wall.&#8221;</p>
<p><a href="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/layout.jpg"><img class="alignnone size-full wp-image-8275" title="How It Works Daily site gets revamp!" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/layout.jpg" alt="How It Works Daily site gets revamp!" width="480" height="481" /></a></p>
<img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/m4oHBlPBioQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/blog/how-it-works-daily-site-gets-revamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 Please offers markup help</title>
		<link>http://www.webdesignermag.co.uk/blog/html5-please-offers-markup-help/</link>
		<comments>http://www.webdesignermag.co.uk/blog/html5-please-offers-markup-help/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 12:19:02 +0000</pubDate>
		<dc:creator>Mark Billen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Please]]></category>
		<category><![CDATA[shiny]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[tags]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8269</guid>
		<description><![CDATA[New site from Divya Manian offers extensive help on key HTML5 tags and advice on using the shiny new specification more responsibly]]></description>
			<content:encoded><![CDATA[<!--HTML5please11--><!--HTML5please2--><p><a href="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/HTML5please11.jpg"><img class="alignnone size-full wp-image-8271" title="HTML5please1" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/HTML5please11.jpg" alt="HTML5 Please offers markup help" width="500" height="281" /></a></p>
<p><strong>HTML5 PLEASE GIVES DESIGNERS &amp; DEVELOPERS TOP TIPS ON NEXT-GEN MARKUP</strong></p>
<p>Prolific developer and Opera Web Opener <a href="http://nimbupani.com/" target="_self">Divya Manian</a> has beautifully constructed a brand new website called <a href="http://html5please.us/" target="_self">HTML5 Please</a> – offering invaluable help on mastering HTML5 coding the right way. With a focus on conveying responsible techniques that adhere to desirable standards, the site offers a serach filter for drilling down to the finer details you want answered, whereas more casual browsers can access specific points via an accordian-type design. You&#8217;ll then reveal actually tag and snippet examples, working demos and links to the best developer resource sites for taking your knowledge to the next level.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><p><a href="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/HTML5please2.jpg"><img class="alignnone size-full wp-image-8272" title="HTML5 Please offers markup help" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/HTML5please2.jpg" alt="HTML5 Please offers markup help" width="500" height="281" /></a></p>
<p><a href="http://html5please.us/" target="_self">http://html5please.us/</a></p>
<img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/fVn3ZkphmIw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/blog/html5-please-offers-markup-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimise WordPress &amp; enhance site performance</title>
		<link>http://www.webdesignermag.co.uk/tutorials/optimise-wordpress-enhance-site-performance/</link>
		<comments>http://www.webdesignermag.co.uk/tutorials/optimise-wordpress-enhance-site-performance/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 15:50:05 +0000</pubDate>
		<dc:creator>Steve Jenkins</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[Optimize]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[WP Super Cache]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8243</guid>
		<description><![CDATA[Maximise performance of your WordPress installation by using a few 
plug-ins and useful techniques]]></description>
			<content:encoded><![CDATA[<!--final--><!--step_01--><!--step_02--><!--step_03--><!--step_05--><!--step_06--><!--step_07--><!--step_08--><!--step_09--><!--step_10--><!--step_11--><!--step_12--><!--step_13--><!--step_14--><p><img class="alignnone size-full wp-image-8247" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/final.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="444" />As the web evolves, it is of even more importance for your new-look WordPress site to respond quickly and efficiently, giving your users and visitors exactly what they’ve searched for without them waiting around for an eternity for it to load.<br />
Site optimisation is more important now than ever, as users access your content on a variety of devices across varying levels of connection speeds.<br />
In this tutorial, we will have a look at some of the plug-ins available to download and implement within your WordPress installation to help reduce server load, optimise code and templates, and go some way to improving the speed and performance of your site.<br />
We’ll primarily focus on adding a caching plug-in to generate and serve static HTML versions of your dynamic content, as well as look at other areas where performance can be enhanced.</p>
<h3>tools | tech | trends: WordPress, PHP<br />
expert: Matt Gifford<br />
tutorial files: <a href="http://www.webdesignermag.co.uk/tutorial-files/issue-187-tutorial-files/" target="_self">download here</a></h3>
<p><strong>01. Start caching</strong><br />
<img class="alignnone size-full wp-image-8248" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_01.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="381" /><br />
There are a few plug-ins out there to assist in setting up caching, but we’re going to be looking at WP Super Cache. Go to the Plugins&gt;Add New menu option in your WordPress administrator and search for the plug-in by name in the available form field.</p>
<p><strong>02. Install plug-in</strong><br />
<img class="alignnone size-full wp-image-8249" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_02.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="384" /><br />
The results from the search displayed in the admin interface should list WP Super Cache as the first option. Select the ‘Install Now’ link to automatically download the plug-in. Alternatively, you can download the plug-in separately and use an FTP client to upload to the plug-ins directory in your WordPress installation. Finally, activate the plug-in.</p>
<p><strong>03. Set permissions</strong><br />
<img class="alignnone size-full wp-image-8250" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_03.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="384" /><br />
Depending on the current access configuration of your WordPress installation, you may see an error message regarding the ‘advanced-cache.php’ file. To resolve this issue you simply need to temporarily alter the permissions of the wp-content directory to 777 to allow write privileges, which you can do via your FTP client. Revert to 755 when finished.</p>
<p><strong>04. Caching enabled</strong><br />
Having successfully generated the required files for the plug-in, the WordPress installation should have also made an amendment to the ‘wp-config.php’ file to enable caching. If you see any errors relating to the config file, try adjusting the permission levels and activating the plug-in once more to generate the required changes.<br />
<em><br />
001 /** The name of the         database for WordPress */<br />
002 define(‘WP_CACHE’, true);     //Added by WP-Cache Manager</em></p>
<p><strong>05. Simple caching</strong><br />
<img class="alignnone size-full wp-image-8251" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_05.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="384" /><br />
The plug-in should now present you with a number of tabbed menu options within the administration panel. Within the Easy tab, set Caching On to enable the abilities and static file generation. For the majority of simple blogs this may be enough, but we’ll progress and see what advanced options are available to us.</p>
<p><strong>06. Advanced settings</strong><br />
<img class="alignnone size-full wp-image-8252" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_06.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="384" /><br />
There are a number of options available to implement here. The success and availability of some will depend on your hosting plan and server setup, so try them out. Start by checking all recommended settings, specifically the mod_rewrite setting to serve cached files. You can also restrict caching for frequent visitors.</p>
<p><strong>07. Mod rewrite</strong><br />
<img class="alignnone size-full wp-image-8253" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_07.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="384" /><br />
The mod rewrite rules required to serve up<br />
the static html-generated files are quite extensive, but the plug-in will warn you that your ‘.htaccess’ file needs to be updated and provides you with the ability to update on your behalf or the content to manually update/create the file yourself.</p>
<p><strong>08. Test caching</strong><br />
<img class="alignnone size-full wp-image-8254" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_08.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="339" /><br />
Return to the Easy tab option and run a test on the cache, which retrieves two static-generated files for timestamp comparison. Any issues found here can be a good indication as to what settings on the server you may need to change. You can also delete the cache and start again if you need to.</p>
<p><strong>09. View source</strong><br />
<img class="alignnone size-full wp-image-8255" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_09.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="156" /><br />
Check your site and view the source in a number of different browsers to test the caching procedure. The WP Super Cache plug-in will automatically insert cache information at the bottom of every page, with information on caching times and compression to let you know it’s working and hopefully quicker than before.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><p><strong>10. Consider CDN</strong><br />
<img class="alignnone size-full wp-image-8256" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_10.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="444" /><br />
If your site relies heavily on static components such as images, CSS or JS files, consider the use of a content distribution network (CDN) to serve these up and share the load. Services such as Amazon S3 or Rackspace Cloud Files can be of help here, and the cache plug-in can be configured to work with these services.</p>
<p><strong>11. Optimise plug-ins</strong><br />
<img class="alignnone size-full wp-image-8257" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_11.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="444" /><br />
Deactivate any plug-ins you no longer need or use. These could be having a large impact on loading times and response. Consider the possibility of streamlining any active plug-ins. If you see any code that could be written more efficiently, do so. The smallest tweak to a function could improve loading times and functionality.</p>
<p><strong>12. Combine CSS and JS</strong><br />
<img class="alignnone size-full wp-image-8258" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_12.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="444" /><br />
One clear way to improve the performance of any website is to reduce the number of http requests made to obtain resources and assets. Where possible, combine multiple CSS and JS files into one. The WP Minify plug-in assists in collating and minimising the contents of these files. You can get it here: http://bit.ly/wpminify.</p>
<p><strong>13. Load JS in footer</strong><br />
<img class="alignnone size-full wp-image-8259" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_13.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="444" /><br />
When creating or amending your WordPress theme, try to place any JS files into the footer of the template. This helps to ensure that all DOM elements have been created on the page before any manipulation or JavaScript functions are performed. WP Minify can help you with this option automatically or manually.</p>
<p><strong>14. Reduce image sizes</strong><br />
<img class="alignnone size-full wp-image-8260" title="Optimise WordPress & enhance site performance" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/step_14.jpg" alt="Optimise WordPress & enhance site performance" width="610" height="384" /><br />
Images can create unnecessary overhead, due to file size and compression. When uploading images, consider reducing the file size where possible to optimise for the web. Alternatively, download and install the WP Smush.it plug-in (http://bit.ly/wp_smush), which will run any image in your media library through Yahoo’s smush.it service and compress the image without losing quality.</p>
<p><strong>15. Browser caching</strong><br />
Using the browser cache doesn’t necessarily increase the loading time of your WordPress installation, but it can help to reduce strain on the server by caching objects that are loaded often. Add the code for this step to your<br />
‘.htaccess’ file, to help reduce the load when requesting static files and images.</p>
<p><em>001 FileETag MTime Size<br />
002 &lt;ifmodule mod_expires.c&gt;<br />
003 &lt;filesmatch                 “\.(jpg|gif|png|    css|js)$”&gt;<br />
004 ExpiresActive on<br />
005 ExpiresDefault “access plus     1 year”<br />
006 &lt;/filesmatch&gt;<br />
007 &lt;/ifmodule&gt;</em></p>
<h3>Query performance</h3>
<p>WordPress makes it incredibly simple to create custom queries to obtain data not easily provided by the default functions available, but these database interactions need to be as optimal as possible to avoid any latency or lag. Any possible bottlenecks and issues need to be discovered and resolved as quickly as possible, but they’re typically quite hard to track down.<br />
To assist you in finding any query issues, download and install the Debug Queries plug-in (http://bit.ly/oLnht3). This will display all queries running on a page at the bottom of the screen, complete with total time taken to return results, also showing you the full SQL query being run so you can copy it and revise if necessary. It will only show the results for logged-in administrators to the site, so your users never see the output.</p>
<p><em><br />
</em></p>
<img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/ygdt-fUYOms" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/tutorials/optimise-wordpress-enhance-site-performance/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web Designer wants your portfolio</title>
		<link>http://www.webdesignermag.co.uk/oddsnsods/web-designer-wants-your-portfolio/</link>
		<comments>http://www.webdesignermag.co.uk/oddsnsods/web-designer-wants-your-portfolio/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 13:03:20 +0000</pubDate>
		<dc:creator>Steve Jenkins</dc:creator>
				<category><![CDATA[Odds & sods]]></category>
		<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8236</guid>
		<description><![CDATA[Send Web Designer your portfolio and get a chance to be seen by thousands.]]></description>
			<content:encoded><![CDATA[<!--WDappicon--><p><img class="size-full wp-image-4105 alignleft" title="Web Designer wants your portfolio" src="http://www.webdesignermag.co.uk/wp-content/uploads/2010/03/WDappicon.jpg" alt="Web Designer wants your portfolio" width="193" height="197" /></p>
<p>Don’t be shy, we really do want to see your portfolios. If you think  you have what it takes, email us at   steve.jenkins@imagine-publishing.co.uk with a URL and a quick comment.</p>
<p>Already looking forward to getting your portfolios,  so start sending now.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/XMRL_42hQsQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/oddsnsods/web-designer-wants-your-portfolio/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Web Designer 192 on sale now</title>
		<link>http://www.webdesignermag.co.uk/magazine-issues/web-designer-192-on-sale-now/</link>
		<comments>http://www.webdesignermag.co.uk/magazine-issues/web-designer-192-on-sale-now/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 09:00:57 +0000</pubDate>
		<dc:creator>Mark Billen</dc:creator>
				<category><![CDATA[Magazine Issues]]></category>
		<category><![CDATA[192]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[agency]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[CHIPS]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Dart]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Fjord]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flypost]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[issue]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Magazine]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[parallax]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Proto]]></category>
		<category><![CDATA[sliders]]></category>
		<category><![CDATA[transitions]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8203</guid>
		<description><![CDATA[Web Designer issue 192 is on sale now. Get a look at the latest cover and find out the major highlights in the mag and on the coverdisc… ]]></description>
			<content:encoded><![CDATA[<!--WD192_cover--><h2><a href="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/WD192_cover.jpg"><img class="alignnone size-full wp-image-8204" title="Web Designer 192 on sale now" src="http://www.webdesignermag.co.uk/wp-content/uploads/2012/01/WD192_cover.jpg" alt="Web Designer 192 on sale now" width="461" height="595" /></a></h2>
<p><strong>- Main Features</strong><br />
Web Designer&#8217;s HOT 100 2012<br />
- Annual feature special with 15-pages of expert tips on what&#8217;s hot in HTML5, CSS3, jQuery and WordPress!</p>
<p>Adobe Proto<br />
- Learn how to generate site wireframes on the fly with this new Android-based application</p>
<p>Design Diary: Fjord &amp; Flypost<br />
- Agency Fjord explains the process behind redesigning and rebranding the Flypost mobile app</p>
<p>Pro File: CHIPS NY<br />
- We land on Brooklyn New York for a chat and tour with this three-man creative collective</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><p><strong>- Also inside&#8230;</strong><br />
- Next-gen rollovers: Add big impact hover effects using CSS3<br />
- Design an image-slider header element with Photoshop (part 1)<br />
- Add trendy parallax-scrolling techniques to your backgrounds<br />
- Discover how to cache browser data with the Web Storage API<br />
- Learning JavaScript, part 4: generate custom backgrounds<br />
- Emulate interactive maps inspired by taocommunity.com<br />
- Master transparency effects with layered images</p>
<p><strong>- Covermount CD</strong><br />
Portfolio &amp; MMO WordPress Themes worth $50<br />
OVER 85 mins of video:<br />
Dreamweaver Forms Part 1 video<br />
AS3 Menus Part 2 video<br />
Wacky Duck Font from Nick&#8217;s Fonts<br />
30 Music Loops from Soundsnap<br />
Skin and fur texture pack from Go Media&#8217;s Arsenal<br />
25 Japanese Foliage Vectors from Design Fruit</p>
<p>As usual, you an buy the issue directly from our <a href="https://www.imagineshop.co.uk/magazines/webdesigner.html" target="_self">Imagine eShop</a></p>
<img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/dY9LhH6w4E4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/magazine-issues/web-designer-192-on-sale-now/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Build responsive sites using the 320 and up framework</title>
		<link>http://www.webdesignermag.co.uk/tutorials/build-responsive-sites-using-the-320-and-up-framework/</link>
		<comments>http://www.webdesignermag.co.uk/tutorials/build-responsive-sites-using-the-320-and-up-framework/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 08:30:27 +0000</pubDate>
		<dc:creator>Steve Jenkins</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[320 and up]]></category>
		<category><![CDATA[Responsive design]]></category>
		<category><![CDATA[Thord Daniel Hedengren]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8101</guid>
		<description><![CDATA[Adopt the 320 and up framework to build flexible layouts that respond and react to desktop, mobile and tablet screens]]></description>
			<content:encoded><![CDATA[<!--wpwwp5--><!--wpwwp4--><!--step1-1--><!--step31--><!--step81--><!--step102--><!--step121--><!--step132--><!--step141--><!--step16-2--><p><img class="alignnone size-full wp-image-8120" title="Build responsive sites using the 320 and up framework" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/wpwwp5.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="399" /></p>
<p><img class="alignnone size-full wp-image-8119" title="Build responsive sites using the 320 and up framework" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/wpwwp4.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="443" /></p>
<p>The hottest trend in web design right now is responsive design. Thanks to the powers of CSS3 and HTML5, we can finally embrace the concept of One Web, which lets us build one website that adapts to the device it is being viewed upon. This is necessary since the plethora of devices on the market is ever-growing, and with that we get more and more screen resolutions to take into account. For most projects it just isn’t possible to build a mobile version, an app and then a tablet version, and a desktop one at that – there is no sense in the economy there.<br />
Luckily responsive web design can help, thanks to the possibility to query the screen resolution using   @media and min-width, and then act upon that. This means that we can have one set of styles for resolutions up to 768 pixels, and one for those above, for example.<br />
320 and Up is an interesting framework developed by Andy Clarke that helps you build sites, starting with the most common denominator, which is the smallest screen. Then we add to it with additional styles. This tutorial will help you understand how to start working with it, so that you can apply it to your own projects.</p>
<h3>tools | tech | trends: HTML, CSS, JavaScript, 320 and up (framework)<br />
expert: Thord Daniel Hedengren<br />
tutorial files: <a title="320 and up" href="http://www.webdesignermag.co.uk/tutorial-files/issue-186-tutorial-files/" target="_self">download</a></h3>
<p><strong>01. Download 320 and Up</strong><br />
<img class="alignnone size-full wp-image-8103" title="Build responsive sites using the 320 and up framework" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/step1-1.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="335" /><br />
The first thing we need to do is download the 320 and Up framework. At the time of press the most current version available is 0.9, and you can access it directly by visiting http://stuffandnonsense.co.uk/projects/320andup/latest.zip</p>
<p><strong>02. Examine the package</strong><br />
The 320 and Up ZIP archive contains two folders, one titled Multiple linked style sheets and one called Single style sheet. These contain different versions of the 320 and Up framework, either as one style sheet or split up into several. The fewer style sheets you use the better, since it makes it easier on the server due to fewer requests, but it also means the files get bigger and perhaps harder to work with. Copy the contents of the Single style sheet folder to a place of your choosing. That’s what we’ll work with.</p>
<p><strong>03. A closer look at the contents</strong><br />
<img class="alignnone size-full wp-image-8105" title="step3" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/step31.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="364" /><br />
320 and Up is an organised framework, as you’ll see when looking at the contents of the Single style sheet folder. You’ve got your style sheets in a folder called ‘CSS’, images in the ‘img’ folder and JavaScript files in the ‘js’ folder. You’ll also notice ‘index.html’ and ‘404.html’, which will help us create our mobile site.</p>
<p><strong>04. Let’s take a look at ‘index.html’</strong><br />
The ‘index.html’ file is essentially empty of content, the only thing we get is a h1 heading at the top and the basic HTML markup needed. What’s interesting is the actual markup obviously, and the style sheets that make it all happen. Get familiar with ‘index.html’ and, if things like viewport are Greek to you, at least take a look at the page markup, starting with header on line 63, down to the closing off footer on line 78.</p>
<p><strong>05. ‘index.html’ in the browser</strong><br />
Looking at ‘index.html’ in the browser as it is now doesn’t tell us much, but the developer has been kind enough to leave us a grid that we can ”activate”. Open ‘style.css’ (in the CSS folder) and scroll down to line 64. There, uncomment the url(../img/tmp/grid.png) repeat-y 50% 0 part for the html tag. Reloading ‘index.html’ in the browser will show a grid image being repeated, which will be helpful as we go along.</p>
<p><strong>06. Let’s add some content</strong><br />
Let’s add some content to ‘index.html’. First of all, change the contents of h1 (on line 64) to something else, and then put a few simple paragraphs within the &lt;div role=”main”&gt; tag on line 69. Dragging the Browser window now<br />
will just let the content flow to almost full width.</p>
<p><strong>07. Populate the other columns</strong><br />
To really get an idea of how things relate to each other, let’s add some paragraphs to the &lt;div role=”complementary”&gt; as well. Then, while we’re at it, put something within the &lt;footer role=”contentinfo” class=”clearfix”&gt;, preferably something that tells you it is from the footer.</p>
<p><strong>08. It doesn’t work!</strong><br />
<img class="alignnone size-full wp-image-8109" title="step8" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/step81.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="306" /><br />
Taking a look at ‘index.html’ as it is now, you’ll notice that nothing aligns – the content is just presented in one long column. That’s because 320 and Up doesn’t come littered with stylings for your desktop experience.</p>
<p><strong>09. Find our way in the style sheet</strong><br />
If you want to learn a thing or two on how to organise a style sheet, look no further than to ‘style.css’. There’s even an index at the start of the file, which is nice. Consult it to find your way in the file.</p>
<p><strong>10. Let’s add some style</strong><br />
<img class="alignnone size-full wp-image-8110" title="step10" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/step102.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="534" /><br />
In ‘style.css’, you’ll find that the media queries start at line 423. There you’ll find a placeholder for adding styles for screens larger than 480 pixels (min-width: 480px is the rule). Let’s make some changes to the h1 tag here, shall we? The added code changes the h1 color to blue, gives it padding and a line below it whenever the screen is more than 480 pixels. Obviously we could add more, but this will do for this particular size.</p>
<p><em>001 /*480px ______________ */<br />
002 @media only screen and (min-width: 480px) {<br />
003 /* 2.HEADINGS */<br />
004 h1 {<br />
005 color: blue;<br />
006 padding-bottom: .1em;<br />
006 border-bottom: 1px solid #bbb;<br />
007 }</em></p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><p><strong>11. Column markup</strong><br />
If you drag your Browser window right now, you’ll find that larger screens also inherit the style we added in step 10. That’s because we’re designing from the small screen out. Next resolution is 768 pixels upwards (line 453 in ‘style.css’), so let’s make this the point where we start using columns. First, open ‘index.html’ and find &lt;div role=”main”&gt;, to which you’ll add class=”content-main”. Then do the same with &lt;div role=”complementary”&gt; but add class=”content-complementary”. This will make it easier for us to style the div containers using CSS.</p>
<p><strong>12. Add the main column style</strong><br />
<img class="alignnone size-full wp-image-8111" title="step12" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/step121.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="420" /><br />
Next, go back to ‘style.css’ and the @media rule for min-width: 768px (and up). Here, under ”11. MAIN”, we’ll add the necessary style to float the div.content-main container left.</p>
<p><em>001 /* 11.MAIN */<br />
002 div.maincontent {<br />
003 float: left;<br />
004 width: 65%;<br />
005 }</em></p>
<p><strong>13. Add the secondary column style</strong><br />
<img class="alignnone size-full wp-image-8112" title="step13" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/step132.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="420" /><br />
Now, let’s give the secondary column, the one with the role ”complementary” in ‘index.html’, float: right and a better suited width. In fact, let’s also make sure that the font size differs and the color is dark grey rather than black as the main content. Refer to ”3. TYPOGRAPHY” and ”12. COMPLEMENTARY” in the code below, still within the @media rule with<br />
min-width: 768px, of course.</p>
<p><em>001 /*768px ___________ */<br />
002 @media only screen and (min-width:     768px) {<br />
003 /* 3.TYPOGRAPHY */<br />
004 div.complementarycontent p {<br />
005 font-size: 0.9em;<br />
006 color: #666;<br />
007 }<br />
008 /* 11.MAIN */<br />
009 div.maincontent {<br />
010 float: left;<br />
011 width: 65%;<br />
012 }<br />
013 /* 12.COMPLIMENTARY */<br />
014 div.complementarycontent {<br />
015 float: right;<br />
016 width: 30%;<br />
017 }<br />
018 }/*/mediaquery*/</em></p>
<p><strong>14. Draw the line</strong><br />
<img class="alignnone size-full wp-image-8113" title="step14" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/step141.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="367" /><br />
There are several sizes beyond min-width: 768px, but chances are you want to draw the line somewhere as to how wide your site can be. We’ll do that in the @media query with min-width: 992px, setting the maximum allowed width to 960 pixels. While we’re at it, let’s also make that blue h1 heading a bit larger, shall we?</p>
<p>001 /*992px ____________ */<br />
002 @media only screen and (min-width:     992px) {<br />
003 /* 1.ROOT */<br />
004 body {<br />
005 max-width: 960px;<br />
006 }<br />
007 /* 2.HEADINGS */<br />
008 h1 {<br />
009 font-size: 4em;<br />
010 padding-bottom: .5em;<br />
011 }<br />
012 /* 17.MODERNIZR */<br />
013 }/*/mediaquery*/</p>
<p><strong>15. Add an image</strong><br />
Images need some love if they are to fit to the screen size. Let’s open ‘index.html’ and add one to the HTML markup, between two paragraph tags in the main div container. For demonstration purposes, we added ‘image.jpg’ to the img/tmp/ folder.</p>
<p><strong>16. Scale the image</strong><br />
<img class="alignnone size-full wp-image-8115" title="Build responsive sites using the 320 and up framework" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/step16-2.jpg" alt="Build responsive sites using the 320 and up framework" width="610" height="646" /><br />
We need to make sure that the image scales with the content. The solution is to give all img tags max-width: 100%, which will make sure that it never exceeds its wrapping container’s width. Adding max-width: 100% to img on<br />
the screen sizes you want this behaviour on is easy, of course. You might want it to be a global thing, in which case you would add it to the img tag globally.</p>
<p><em>001 div.content img {<br />
002 max-width: 100%;<br />
003 }</em></p>
<p><strong>17. Hide an element</strong><br />
Let’s say that we don’t want to show the complimentary column’s content if the screen width is smaller than 480 pixels. We do this with display: none applied to div.complimentarycontent, which will stop it from rendering. To make it work, we first must add it under ”12.COMPLIMENTARY” on line 255 in ‘style.css’, to make it a starting point.</p>
<p><em>001 /* 12.COMPLIMENTARY */<br />
002 div.complimentarycontent {<br />
003 display: none;<br />
004 }</em></p>
<p><strong>18. Show the element when needed</strong><br />
So now div.complimentarycontent is hidden on small screens, and since that is where the code begins, all other resolutions will inherit it. To sort that out we’ll have to add display: block to div.complimentarycontent at the @media rule, where we want it to start appearing. In this case, that would be at min-width: 768px, where we’ll add display:block to the already present stylings of div.complimentarycontent.</p>
<p><em>001 /*768px ______________ */<br />
002 @media only screen and (min-width: 768px) {<br />
003 /* 3.TYPOGRAPHY */<br />
004 div.complimentarycontent p {<br />
005 font-size: 0.9em;<br />
006 color: #666;<br />
007 }<br />
008 /* 5.FIGURES &amp; IMAGES */<br />
009 div.content img {<br />
010 max-width: 100%;<br />
011 }<br />
012 /* 11.MAIN */<br />
013 div.maincontent {<br />
014 float: left;<br />
015 width: 65%;<br />
016 }<br />
017 /* 12.COMPLIMENTARY */<br />
018 div.complimentarycontent {<br />
019 display: block;<br />
020 float: right;<br />
021 width: 30%;<br />
022 }<br />
023 /* 17.MODERNIZR */<br />
024 }/*/mediaquery*/</em></p>
<img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/A-eiEcaEKi0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/tutorials/build-responsive-sites-using-the-320-and-up-framework/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Going 3D with WebGL</title>
		<link>http://www.webdesignermag.co.uk/blog/going-3d-with-webgl/</link>
		<comments>http://www.webdesignermag.co.uk/blog/going-3d-with-webgl/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 12:38:57 +0000</pubDate>
		<dc:creator>Steve Jenkins</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8189</guid>
		<description><![CDATA[HTML 5’s canvas element means it’s now easy to deliver compelling 2D graphics in a modern browser. However, Simon Bisson reckons it’s time to add a third dimension with one of the industry’s buzz technologies…]]></description>
			<content:encoded><![CDATA[<!--873026--><!--3-1--><!--glasshader--><!--physics--><!--model_viewer--><p><img class="alignnone size-full wp-image-8193" title="Going 3D with WebGL" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/873026.jpg" alt="Going 3D with WebGL" width="610" height="416" /></p>
<p>There’s a lot of power in the average PC, with 64-bit operating systems, multicore processors and gigabytes of RAM, along with the parallel processing engines built into modern graphics processors. It’s power that’s being used to drive the web forward, enabling modern browsers to take advantage of the features of HTML 5. But there’s something amiss.<br />
Web gaming has taken a great leap forward with HTML5, as has visualisation. But it’s still missing a few things. If the web is to be the heart of the next generation of computing, in Google’s Chromebooks and Microsoft’s Windows 8, it needs to be as good as – or better than – the graphics capabilities of the desktop, whether it’s a Mac or PC. The web needs that missing link, to give us immersive games and compelling images, and to offer user interfaces that go beyond the traditional point-and-click. So what’s that missing piece?<br />
It’s the third dimension. Internet Explorer 9 may have started a GPU acceleration arms race in the latest browsers, but everything it does is in 2D. From font smoothing to canvas animations, and accelerated layouts to CSS effects, it’s all 2D. It’s not surprising really, as 2D is easy to do, and the APIs and technologies are easily understood, and easy to hook up to HTML, JavaScript, and to CSS. With plenty of graphics processing power in the latest GPUs, whether discreet or integrated, it’s time to add that third dimension to the web at long last.</p>
<p><strong>A short history of web 3D</strong><br />
Delivering a 3D web isn’t easy, as numerous failed approaches to the 3D web have shown. Right from the early days of the graphical web, there’s been interest in building and displaying 3D content online. Starting with VRML, the Virtual Reality Modelling Language, designers and developers have tried to bring 3D worlds and navigation into the familiar frame of the browser.<br />
We can probably blame two science fiction novels for the 3D web; William Gibson’s Neuromancer and Neal Stephenson’s Snowcrash. Both envision 3D interfaces to a global computer network, with Neuromancer’s abstract Matrix and Snowcrash’s Metaverse with its simulated worlds. Both are compelling visions, but only one was to be the inspiration for the first mainstream 3D web technology – the Virtual Reality Markup Language.<br />
Taking the Metaverse as its inspiration, VRML was an attempt to build simulated worlds that would run in your browser, using an XML-based language to describe 3D models and animations, with JavaScript tools for managing interactions between users and 3D objects. It was going to be the next big thing, and all sorts of companies developed plug-ins and editing tools to help kick-start the VRML revolution. But not everyone wanted to install a plug-in, and VRML faded away.<br />
While it’s no longer in the public eye, development of VRML hasn’t stopped, and work is continuing on the next generation of XML-based 3D languages. The latest version, X3D, is now an international standard with tools for humanoid animation and geo-tagging. There’s support for X3D in the open source Blender 3D rendering application, and plug-ins for most common browsers. The team behind X3D hopes it will make its way into modern browsers as an inline language, much like SVG, and there’s an integrated prototype with its own script library.<br />
Other alternatives for delivering 3D in the browser came from the plug-in world, with Java 3D giving 3D capabilities to Java applets. Using either the OpenGL graphics API or Microsoft’s Direct3D, Java 3D is an object-orientated graphics programming tool, with support for most common 3D graphics formats.<br />
The most recent Flash tools added basic 3D support for simple animations using 3D models from Adobe’s graphics tools. They’re easy to build, and don’t require learning additional tooling. The future of 3D in Flash is looking very promising, with GPU-accelerated Stage 3D (previously codenamed Molehill) taking Flash’s frame rate from around 30fps for a few thousand triangles to 60fps with hundreds of thousands of triangles at HD resolution. You’ll be able to use Stage 3D directly, or through familiar third-party ActionScript 3D libraries. Adobe’s been demonstrating Stage 3D with HD 3D games, and its performance is looking impressive.<br />
Microsoft’s Silverlight has had basic 3D support from the very start, as it’s built using the company’s DirectX APIs. You can use the Blend XAML design tools to create and animate 3D objects. The upcoming Silverlight 5 will add full 3D support, with support for textures and shaders. There are plans to integrate the XNA tools used to build Xbox 3D games and add additional effects in future releases. If you’re using an older version of Silverlight, you can take advantage of the Balder 3D libraries (which can also be used to add 3D support to Windows Phone applications).</p>
<p><img class="alignnone size-full wp-image-8191" title="Going 3D with WebGL" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/3-1.jpg" alt="Going 3D with WebGL" width="610" height="400" /></p>
<p>Game developers can use the Unity tools to build 3D games that run on everything. There’s also a browser plug-in for Mac and Windows, and plans to support Unity in Chrome’s native client and Flash. There are limitations to the free version, and if you’re planning on building 3D web games in Unity then you’ll want to purchase a Pro license. You can write unity scripts in Mono, the open source version of Microsoft’s .NET. It’s a quick tool to learn, and can be used for a lot more than just games, especially if you want your code to run nearly everywhere.<br />
The arrival of Canvas in HTML 5 has allowed some designers to build relatively primitive 3D environments, with JavaScript libraries handling much of the work. It’s an approach that’s slow, both to develop and for end users. Even so, it’s an example of just where 3D on the web can go, built into the browser and using JavaScript libraries and APIs.</p>
<p><strong>What is WebGL?</strong><br />
The biggest problem with all the earlier attempts at delivering 3D on the web was that they all needed plug-ins. That’s not particularly practical, especially when a download (in the early days of VRML) could take hours, and that was before you could even start to view any 3D content. With mobile browsers restricting many plug-ins, you’re unable to view 3D Flash on any iOS devices, and 3D Silverlight is only available if you build a native Windows Phone application.<br />
So how can we give users a fast, powerful, 3D experience? What’s needed is a technology that runs natively in the browser, giving access to all the 3D capabilities of the modern PC from familiar JavaScript APIs. You’d be able to build 3D web applications without needing to learn another programming language, and without having to invest in any new development tool. That’s the promise of WebGL, which looks set to become the in-browser 3D standard, with support from almost all the main browser manufacturers.<br />
Based on the widely used OpenGL standard, WebGL is a browser API for 3D graphics that takes advantage of the 2D work done in HTML 5. It’s an open standard, and is managed by the Khronos Group. It’s still a work in progress, however, and not all browsers support WebGL yet, though there are indications of support from most of the browser manufacturers. If you’re planning on experimenting with the next generation 3D web, then you’ll want to use either recent versions of Chrome or Firefox (or an Internet Explorer plug-in), as WebGL is enabled by default. You can build WebGL applications in a standard Canvas element, which is much like working with 2D graphics, with JavaScript using the standard HTML Document Object Model.</p>
<p><strong>From OpenGL to WebGL</strong><br />
If you’ve done any work with OpenGL before, then the chances are that you will probably find that many of the WebGL concepts familiar (as it’s based on the ES 2.0 specification, and uses the OpenGL GLSL shader language). All you need to add to a page HTML is a Canvas element, with JavaScript code to handle everything else, taking advantage of familiar web techniques. Using Canvas makes WebGL content automatically a seamless part of the page – and part of the DOM – so it can be used for any and all types of user interactions. You can also use CSS tools to handle the Canvas you’re using, so it can be overlaid on text or moved around a page.<br />
There are some significant differences between WebGL and OpenGL, most of which are a result of its integration with the browser DOM and JavaScript. One trick is to use the standard HTML image features to load textures, and another is to use JavaScript’s event handling features. If you’ve programmed OpenGL in the past, then there’s one big advantage to WebGL’s JavaScript dependence, as it means you won’t need to spend time writing code to manage graphics memory, as JavaScript’s memory management tools will handle it all for you.</p>
<p><img class="alignnone size-full wp-image-8194" title="Going 3D with WebGL" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/glasshader.jpg" alt="Going 3D with WebGL" width="610" height="400" /></p>
<p>It’s important to remember that WebGL is a low-level API, and that means you’re unlikely to actually work with it directly. Building 3D from scratch is hard, and while low level access means that you get the best possible performance, the actual coding required to import meshes and texture maps, as well as handling rendering and display, is going to take time and a lot of hard work. While JavaScript has got a lot faster in the last year or so, thanks to the return of the browser wars, it’s still slow compared to the C++ code that normally drives games and 3D imagery. To speed things up, it’s a good idea to pass as much functionality across to the GPU as possible, using shaders to handle complex operations. You’ll need to learn GLSL if you’re going to be doing this, and while it’s a simple language, it is very specialised and different from familiar web coding.<br />
Some of the early WebGL experiments have been impressive. Google’s 3 Dreams Of Black RO.ME (http://www.ro.me/) project uses it to produce a dreamlike music video that mixes morphing animals into a 3D journey through changing landscapes. It’s worth spending some time looking at the associated ‘making-of’ site (launch it from the Technology link), as it goes into a lot of detail on how the various 3D models were built and animated – making it a useful tool for anyone wanting to learn how to build complex WebGL sites.<br />
You can see further WebGL samples on the Chrome Experiments site (http://www.chromeexperiments.com/webgl), where you can get access to the code and libraries used to build the sites.<br />
WebGL is a complex tool, and you’ll get the most out of it using a JavaScript library to handle the more complex effects. Google has released a library from its RO.ME experiment, three.js, which it used to create many of the effects in 3 Dreams of Black, as well as several of the demos on the site. Another useful WebGL library is SpiderGL, which gives you tools for handling realtime rendering. It’s able to import and render 3D meshes, as well as giving you tools for working with the 3D mathematics used to build complex scenes.<br />
There’s a lot to consider when building 3D applications. They’re large environments, and the mathematics needed to calculate interactions between objects can be complex, especially if you’re modelling real world physics. That’s why WebGL JavaScript libraries are important, as they give you a way of handling the algorithms needed to build and programme 3D environments without having to reinvent the wheel each time you build a new site or animation.</p>
<p><strong>Build your own WebGL</strong><br />
The best way to get to grips with WebGL is to build your own WebGL animations, starting simply and building up to more complex animations with support for user interactions. We’ll use WebGL<br />
to display a simple rotating cube, using a pair of JavaScript libraries from Google to simplify things – glMatrix.js to handle 3D objects, and webGl-utils.js to work with the WebGL APIs. Our sample rotating cube is based on the code from the excellent Learning WebGL site (http://learningwebgl.com/blog/). It’s an excellent resource for anyone wanting to get to grips with WebGL, taking you from simple 2D shapes in a 3D world to 3D objects, lighting effects and using the mouse to control a 3D world.<br />
You’ll find the code for the sample on the magazine CD-ROM, as it’s too long to include here. Instead, we’ll take a look at some key pieces of the code that show just how you can construct a WebGL application.<br />
Like all good JavaScript applications, WebGL uses low level building blocks that in turn build functions that finally can be used to deliver an image or an animation. That means we can actually have very little HTML on a page; indeed, all our sample has is a Canvas element and an onload JavaScript call to our WebGL code:</p>
<p>001 &lt;body onload=”webGLStart();”&gt;<br />
002 &lt;canvas id=”cube” style=”border:     none;” width=”500” height=”500”&gt;&lt;/canvas&gt;<br />
003 &lt;/body&gt;<br />
All our code needs is the canvas id, which we can then use to initialise our WebGL code and start to draw and animate a cube. You can find all the following code snippets on the disc also:</p>
<p><span style="color: #888888;"><em>001 functionwebGLStart() {<br />
002 var canvas = document.        getElementById(“cube”);<br />
003 initGL(canvas);<br />
004 initShaders()<br />
005 initBuffers();<br />
006<br />
007 gl.clearColor(0.0, 0.0, 0.0, 1.0);<br />
008 gl.enable(gl.DEPTH_TEST);<br />
009 newFrame();<br />
010 }</em></span><br />
We first initialise our WebGL space, and set up the shaders and buffers used to communicate with the GPU. Once that’s done, we can initialise our drawing area, clear the WebGL buffers, and paint on the first frame of our animation. The co-ordinate system used by WebGL is very simple. The centre of the canvas is 0.0, the top left -1,-1 and the bottom right 1,1. It doesn’t matter if your canvas is a rectangle or a square – the coordinates remain the same, so you’ll need to be aware of the proportions of your objects.<br />
The actual process of animation is simple enough, using a callback function provide with the Google WebGL utilities library:</p>
<p><span style="color: #888888;"><em>001 functionnewFrame() {<br />
requestAnimFrame(newFrame);<br />
002 drawCube();<br />
003 animateCube();<br />
004 }</em></span></p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><p>Once a frame has been drawn, the requestAnimFrame function just calls the newFrame function again, leaving a cube rotating on screen until you load another page.drawCube() paints each cube, while animateCube() calculates the rotation to be applied to the next frame.</p>
<p><span style="color: #888888;"><em>001 functionanimateCube() {<br />
002 vartimeNow = new Date().getTime();<br />
003 if (lastTime != 0) {<br />
004 var elapsed = timeNow &#8211; lastTime;<br />
005 rotateCube -= (40 * elapsed) / 1000.0;<br />
006        }<br />
007 lastTime = timeNow;<br />
008 }</em></span></p>
<p>The cube animation is simple enough, and uses the current time to calculate an angle of rotation. We’ll convert the angle from degrees into radians later in order to update the matrix of points that makes up the cube. You can change the speed of rotation by changing the number in the rotateCube function – the smaller they are, the slower and smoother the rotation.</p>
<p><span style="color: #888888;"><em>001 functiondrawCube() {<br />
002 gl.viewport(0, 0, gl.viewportWidth,      gl.viewportHeight);<br />
003 gl.clear(gl.Color_BUFFER_BIT |      gl.DEPTH_BUFFER_BIT);<br />
004                                             005 mat4.perspective(45, gl.viewportWidth / gl.viewportHeight, 0.1, 100.0, pMatrix);<br />
006 mat4.identity(mvMatrix);<br />
007 mat4.translate(mvMatrix, [0.0, 0.0,     -5.0]);<br />
008 mvPushMatrix();<br />
009 mat4.rotate(mvMatrix,         degToRad(rotateCube), [1, 1, 1]);<br />
010 gl.bindBuffer(gl.ARRAY_BUFFER,     cubeVertexPositionBuffer);<br />
011 gl.vertexAttribPointer(shader        Program.vertexPositionAttribute,         cubeVertexPositionBuffer.itemSize,         gl.FLOAT, false, 0, 0);<br />
012 gl.bindBuffer(gl.ARRAY_BUFFER,     cubeVertexColourBuffer);<br />
013 gl.vertexAttribPointer(shad        erProgram.vertexColorAttribute,         cubeVertexColourBuffer.itemSize,         gl.FLOAT, false, 0, 0);<br />
014                                         015 gl.bindBuffer(gl.ELEMENT_ARRAY_    BUFFER, cubeVertexIndexBuffer);<br />
016 setMatrixUniforms();<br />
017 gl.drawElements(gl.TRIANGLES,<br />
cubeVertexIndexBuffer.numItems,         gl.UNSIGNED_SHORT, 0);<br />
018 mvPopMatrix();<br />
019 }</em></span></p>
<p>This is where we start to get into the nitty gritty of WebGL; first setting and clearing the viewport for our animation. We then use a call from the matrix mathematical JavaScript library we’re using to set the projection matrix (pMatrix) that defines where we’re viewing an object from. We also go about defining the base position from where we draw our cube, setting up a model-view matrix of points (mvMatrix), which we’ll use to apply rotations. We first do a translation, moving the array of points behind our viewport with a Z value of -5. You’ll see that at this point, we’re starting to work with much lower level functionality, accessing the WebGL buffers and handing data over to shaders running on the GPU. Once we’ve delivered data to the GPU buffers, we can then draw the triangle elements that make up the cube in our chosen colours. In the event, WebGL supports three types of drawing: points, lines, and triangles.</p>
<p><img class="alignnone size-full wp-image-8196" title="Going 3D with WebGL" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/physics.jpg" alt="Going 3D with WebGL" width="610" height="522" /></p>
<p>If you drill down into the rest of the code, you’ll see how we define the matrix of points for the cube, starting with the vertices for each face. We use a similar technique to calculate a matrix of colours that can be used to paint each face of the cube. Other parts of the code set up the shader code that’s used by the GPU. You’ll see there are two shaders used – a fragment shader and a vertex shader.<br />
The shader code isn’t JavaScript – it’s the OpenGL GLSL language. For a simple application like this, the fragment shader does nothing more than draw in the current colour. It’s the fragment shader that handles painting the pixels that make up our object, and it’s the vertex shader that draws our cube (it’ll actually draw anything with vertices, and is a very powerful part of any WebGL application). The rest of the application code handles delivering the matrices that hold perspective and model information to the shaders, as well as compiling and loading the shader code into the GPU.</p>
<p><img class="alignnone size-full wp-image-8195" title="Going 3D with WebGL" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/model_viewer.jpg" alt="Going 3D with WebGL" width="610" height="441" /></p>
<p>As you can see, there’s a lot of code for something that looks to be relatively simple on screen. We’ve used relatively low-level JavaScript libraries here; in practice, you’ll probably use much higher level tools to build you applications, as well as importing far more complex models and texture maps produced in 3D design and authoring tools.</p>
<p>Browser support and developer tools<br />
So you want to get started with WebGL. What browsers can you use?<br />
Current support in the major browsers is as follows:<br />
Browser    Version<br />
<em>Mozilla Firefox    4.0 and above<br />
Google Chrome    9.0 and above in Stable, Beta and Dev channels<br />
Apple Safari    5.1 but disabled by default, enable from the developer menu<br />
Opera    11.50 beta on Windows only<br />
Internet Explorer    Not currently supported</em></p>
<p>If you want to use WebGL in Internet Explorer, use either Chrome Frame (a Chrome browser running inside IE), or the recently released IEWebGL plug-in.<br />
At the moment, there aren’t any specific WebGL design tools on the market. However, you can build models in 3D design tools like Blender, and export them in formats that, if not directly suitable for WebGL, can be converted to WebGL-friendly formats.</p>
<p><strong>Security concerns</strong><br />
Recent news stories have focused on security issues with WebGL, and Microsoft not supporting it in Internet Explorer as a result. Certainly, it’s theoretically possible to use WebGL to take advantage of graphics driver bugs to, for example, steal the content held in a different graphics page – allowing WebGL malware to take screenshots of other windows and tabs – or to continually crash your graphics driver, making your PC unusable until you reboot. With WebGL applications coming from the web, it’s sometimes hard to know what’s malware and what’s not, especially with the current spate of poisoned advertising elements.<br />
It turns out that this type of attack is possible with any software that works directly with a GPU (including Flash’s Stage 3D and Microsoft’s Silverlight). We’ve grown used to the protections built into today’s CPUs and today’s operating systems, which stop similar attacks from working in traditional applications. GPU computing is still relatively new, and those protection devices aren’t yet built into GPU silicon or into graphics drivers. The WebGL working group is working on several different approaches to securing 3D web graphics, among them tools for blacklisting insecure drivers and operating systems.<br />
Currently, Firefox will automatically block WebGL on Windows XP, and on versions of OS X that are older than 10.6, as well as locking down specific drivers on UNIX systems. It also enforces minimum driver versions for both NVIDIA and ATI graphics cards, as well as for Intel’s integrated graphics chipsets. Google Chrome does much the same, blacklisting specific graphics chipsets on Windows and OS X (and blocking all but NVIDIA cards on Linux).<br />
As WebGL becomes more popular, it’s likely that blacklists and whitelists for graphics hardware and drivers will be managed by browser developers and updated regularly. A driver that worked in the past may not work in the future, and your WebGL code and sites will need to check that WebGL will run, and if not provide an appropriate fall back, perhaps to Flash or Silverlight. However, it’s likely that any driver that’s blacklisted for WebGL will have also been blacklisted by any other web 3D tool, as they all have to build on the same foundations.</p>
<p><strong>The future is in 3D</strong><br />
The web is going to be 3D, and looks increasingly likely that the 3D future is going to be powered<br />
by WebGL. With browser giants like Mozilla and Google throwing their weight behind the specification, it’s not going to go away, and if you’re using the latest Chrome or Firefox builds, you’re running a browser that’s ready for WebGL content. Competition from 3D versions of Flash and Silverlight is a good thing, as it’ll encourage all three different approaches to the 3D web to develop in different directions – with 3D tools for WebGL (and the JavaScript libraries and tools that make it easy to use) that are an important part of the next generation of the web. If you’re thinking of working with 3D content, then it’s certainly worth thinking about trying it out, and building your first 3D experiments today, not tomorrow. They might just be spinning cubes now, but those cubes are the building blocks of 3D games, of 3D shopping sites, and of<br />
a whole new way of working with content and services online.</p>
<img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/XWDKczJ6wAQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/blog/going-3d-with-webgl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML5 Elements poster</title>
		<link>http://www.webdesignermag.co.uk/inspiration/html5-elements-poster/</link>
		<comments>http://www.webdesignermag.co.uk/inspiration/html5-elements-poster/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 08:30:36 +0000</pubDate>
		<dc:creator>Steve Jenkins</dc:creator>
				<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Alara Mills]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8177</guid>
		<description><![CDATA[Alara Mills, an educational product designer, recently launched the world’s first information graphic depicting the full collection of the HTML5 Elements (including their Global Attributes and Event Handlers)]]></description>
			<content:encoded><![CDATA[<!--htmlposter--><p><img class="size-full wp-image-8179 alignleft" style="margin-right: 5px;" title="HTML5 Elements poster" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/htmlposter.jpg" alt="HTML5 Elements poster" width="400" height="320" />Alara Mills, an educational product designer, recently launched a unique Web site where beginning and experienced Web authors can learn how to get started with coding in HTML5 (Hypertext Markup Language). The newly emerging HTML5 standard is overseen by the international World Wide Web Consortium (w3.org) and consists of more than 100 different elements designed to semantically “mark-up” the content and structure of<br />
Web documents.</p>
<p>Necessity being the mother of invention, Mills created the world’s first information graphic depicting the full collection of the HTML5 Elements (including their Global Attributes and Event Handlers), to aid her with her own learning of HTML. With a layout inspired by the Periodic Table of Elements from the field of chemistry, Mills recently released a Poster-size version of her information graphic which is now available for purchase at <strong><a href="http://www.alaramills.com/">www.AlaraMills.com</a></strong>. The HTML5 Elements Table Poster is the ultimate visual reference tool for writing standards-compliant XHTML documents confidently.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/mvG2yhUOu1M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/inspiration/html5-elements-poster/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebKit: HTML animation with Javscript</title>
		<link>http://www.webdesignermag.co.uk/webkit/webkit-html-animation-with-javscript/</link>
		<comments>http://www.webdesignermag.co.uk/webkit/webkit-html-animation-with-javscript/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 08:30:13 +0000</pubDate>
		<dc:creator>Steve Jenkins</dc:creator>
				<category><![CDATA[WebKit]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.webdesignermag.co.uk/?p=8146</guid>
		<description><![CDATA[Foundation HTML5 Animation with JavaScript is a fantastic resource for all web developers working in HTML5 or switching over from Flash]]></description>
			<content:encoded><![CDATA[<!--HTMLanimation--><p><img class="alignnone size-full wp-image-8147" title="WebKit: HTML animation with Javscript" src="http://www.webdesignermag.co.uk/wp-content/uploads/2011/12/HTMLanimation.jpg" alt="WebKit: HTML animation with Javscript" width="610" height="750" /></p>
<p><strong><a href="http://www.apress.com/9781430236658" target="_self"><em>Foundation HTML5 Animation with JavaScript</em></a></strong> covers everything  that you need to know to create dynamic scripted animation using the  HTML5 canvas. It provides information on all the relevant math you&#8217;ll  need, before moving on to physics concepts like acceleration, velocity,  easing, springs, collision detection, conservation of momentum, 3D, and  forward and inverse kinematics. <em> </em></p>
<p><em>Foundation HTML5 Animation with JavaScript </em>is  a fantastic resource for all web developers working in HTML5 or  switching over from Flash to create standards-compliant games,  applications, and animations that will work across all modern browsers  and most mobile devices, including iPhones, iPads, and Android devices.</p>

					<div class="adInPost">
						<script type="text/javascript">
							GA_googleFillSlot("WD_MidPage_MPU1");
						</script>
					</div><img src="http://feeds.feedburner.com/~r/WebDesignerMag/~4/ewQ-jLzWH5M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webdesignermag.co.uk/webkit/webkit-html-animation-with-javscript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

