<?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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Candy by James</title>
	
	<link>http://james.gameover.com</link>
	<description>A journal by a James</description>
	<lastBuildDate>Sun, 12 Jul 2009 16:53:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/CandyByJames" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>CSS 3 Fonts: The ideal</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/m6DdLt0CRLI/</link>
		<comments>http://james.gameover.com/index.php/2009/css-3-fonts-the-ideal/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 15:00:15 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://james.gameover.com/?p=408</guid>
		<description><![CDATA[This series of articles is about the challenges that arise when using @font-face. Font licensing is one (that many others have written about) and the file-size of included font-files is another, but this article is about browser implementation eccentricities. I’ll start off by showing the ideal @font-face implementation in this article, before moving on to [...]]]></description>
			<content:encoded><![CDATA[<p>This series of articles is about the challenges that arise when using @font-face. Font licensing is one (that <a href="http://dbaron.org/log/20090317-fonts">many</a> <a href="http://blogs.msdn.com/ie/archive/2008/07/21/font-embedding-on-the-web.aspx">others</a> <a href="http://blog.typekit.com/2009/06/11/when-free-fonts-arent-free/">have</a><a href="http://www.webdirections.org/blog/the-return-of-font-embedding-to-the-web/"> written</a> about) and the file-size of included font-files is another, but this article is about browser implementation eccentricities. I’ll start off by showing the ideal @font-face implementation in this article, before moving on to showing current browser deficiencies and the implementation I settled on for including a full font-family which works in the here and now.</p>
<p>Ideally, designers would specify the font-file they wanted to use for regular text, and then one for each variation they had at their disposal (so, one for Bold, Italic, Bold Italic, Small Caps, Light, Ultra Condensed, etc.) – all using the same font-family name, so that all variations would be picked up automatically for body text, and, if @font-face isn’t supported by the browser,  all text will still display in the proper font-variant.</p>
<blockquote><p>To do that, your css would look something like this:</p>
<p><code>/* A font by Jos Buivenga (exljbris) -&gt; www.exljbris.nl */<br />
@font-face {font-family: "Fontin Sans";<br />
src: url(fonts/Fontin_Sans_R_45b.otf) format("opentype");<br />
}<br />
@font-face {font-family: "Fontin Sans";<br />
src: url(fonts/Fontin_Sans_B_45b.otf) format("opentype");<br />
font-weight: bold;<br />
}<br />
@font-face {font-family: "Fontin Sans";<br />
src: url(fonts/Fontin_Sans_I_45b.otf) format("opentype");<br />
font-style: italic;<br />
}<br />
@font-face {font-family: "Fontin Sans";<br />
src: url(fonts/Fontin_Sans_BI_45b.otf) format("opentype");<br />
font-style: italic;<br />
font-weight: bold;<br />
}<br />
@font-face {font-family: "Fontin Sans";<br />
src: url(fonts/Fontin_Sans_SC_45b.otf) format("opentype");<br />
font-variant: small-caps;<br />
}</code></p></blockquote>
<p>This would ensure proper fall-back in browsers that don’t support @font-face (or only part of it) and compatibility with current stylesheets, making @font-face implementation for designers plug-&amp;-play.</p>
<p>The ideal @font-face rendering (on the left) and fall-back rendering (on the right) would look a little like this (notice the fi-ligature!):</p>
<div class="insertimg"><a title="ideal-fallback by James John Malcolm, on Flickr" href="http://www.flickr.com/photos/akaxaka/3713309878/"><img src="http://farm3.static.flickr.com/2620/3713309878_a9fb7bd82e.jpg" alt="ideal-fallback" width="500" height="209" /></a></div>
<p>You’ll have guessed by now that browsers haven’t reached this ideal implementation yet. The series will continue with CSS 3 Fonts: The here and now.</p>
<p><em>Information in this series was acquired while <a href="http://james.gameover.com/index.php/portfolio/#s-next">working on the design and css</a> for the site of Standards.next and subsequent tests afterwards.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2009/css-3-fonts-the-ideal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2009/css-3-fonts-the-ideal/</feedburner:origLink></item>
		<item>
		<title>Refreshed Candy</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/NX0kcdWdsfs/</link>
		<comments>http://james.gameover.com/index.php/2009/refreshed-candy/#comments</comments>
		<pubDate>Tue, 05 May 2009 21:59:05 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://james.gameover.com/?p=384</guid>
		<description><![CDATA[Just a quick note to commemorate a design refresh of this site. Have been looking for ways to create seperate attention for main text and the sidebar. Can&#8217;t say I haven&#8217;t been inspired by Jon Hicks (and others) who has also just implemented a differing-colour-main-part-with-border on his site. Kept the main nav in the middle, to [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to commemorate a design refresh of this site. Have been looking for ways to create seperate attention for main text and the sidebar. Can&#8217;t say I haven&#8217;t been inspired by <a href="http://www.hicksdesign.co.uk/journal/">Jon Hicks</a> (and <a href="http://tangerine-tree.net/">others</a>) who has also just implemented a differing-colour-main-part-with-border on his site. Kept the main nav in the middle, to <span style="text-decoration: line-through;">add ugliness</span> give the design a quirky edge. If I have time to put the searchbar up top the nav may be able to move over to the left.</p>
<p>You&#8217;ll notice the logo is a lot smaller. What can I say? My <a href="http://makemylogobiggercream.com/">cream ran out</a>, plain and simple. I&#8217;m much happier with it, now it&#8217;s smaller. I&#8217;ve still to update the logos for the inspiration square.</p>
<p>The sidebar <span style="text-decoration: line-through;">still suffers from mixed header styles</span> headers have been updated too. Haven&#8217;t managed to add any other colours to the red &amp; gold colour scheme yet though!</p>
<p>Make sure you visit my (on site!) <a href="http://james.gameover.com/index.php/category/tumblr/">Tumblr page</a>. An upcoming post will describe how I managed to create internal links to the content there &#8211; the &#8220;latest interesting stuff&#8221; links in the sidebar are generated on the fly.</p>
<p>Of course, if you find any quirks, let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2009/refreshed-candy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2009/refreshed-candy/</feedburner:origLink></item>
		<item>
		<title>Fierce Disco Angels Wallpaper (Double Bill)</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/WdhmmrlCOvs/</link>
		<comments>http://james.gameover.com/index.php/2009/fierce-disco-angels-wallpaper-double-bill/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 11:03:58 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Wallpaper]]></category>

		<guid isPermaLink="false">http://james.gameover.com/?p=359</guid>
		<description><![CDATA[Now here&#8217;s a treat: two Jason Brooks wallpapers from his time at Fierce Angels. He&#8217;s left now, and Fierce Angels have taken on Jason Jaroslav Cook to create their covers.
The first wallpaper is taken from the beautiful Jason Brooks illustration on the website of Fierce Angels, from their september 2006 re-style. A beautiful dark angel, [...]]]></description>
			<content:encoded><![CDATA[<p>Now here&#8217;s a treat: two <a href="http://www.jason-brooks.com/">Jason Brooks</a> wallpapers from his time at Fierce Angels. He&#8217;s left now, and <a href="http://www.thefutureisfierce.com/">Fierce Angels</a> have taken on <a href="http://www.jasoncook.co.uk/">Jason Jaroslav Cook</a> to create their covers.</p>
<p>The first wallpaper is taken from the beautiful Jason Brooks illustration on the website of Fierce Angels, from their september 2006 re-style. A beautiful dark angel, with a big sword, high heeled boots and a thunderous sky above her. What more could you want?</p>
<div class="insertimg"><a href="http://www.flickr.com/photos/akaxaka/420324911/sizes/o/in/set-72157600055741578/"><img src="http://farm1.static.flickr.com/150/420324911_4ca0f1c589.jpg" alt="Fierce Angels Wallpaper (september06) (10x7)" width="500" height="375" /></a></div>
<p>Next up is a disco girl, taken from the cover of a Fierce Angels CD, Fierce Disco, in stores from 16th of April 2007. Somewhat less dramatic, but still nice to have if you&#8217;re a fan of the style.</p>
<div class="insertimg"><a href="http://www.flickr.com/photos/akaxaka/450647275/sizes/m/in/set-72157600055741578/"><img src="http://farm1.static.flickr.com/223/450647275_d9d4df34e9.jpg" alt="Fierce Disco (1024x768)" width="500" height="375" /></a></div>
<p>Download: <a href="http://www.flickr.com/photos/akaxaka/420324911/sizes/o/in/set-72157600055741578/">Fierce Angel 2006</a> &amp; <a href="http://www.flickr.com/photos/akaxaka/450647275/sizes/m/in/set-72157600055741578/">Fierce Disco</a>. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2009/fierce-disco-angels-wallpaper-double-bill/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2009/fierce-disco-angels-wallpaper-double-bill/</feedburner:origLink></item>
		<item>
		<title>Full page zoom (update)</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/n7pPjRYOH20/</link>
		<comments>http://james.gameover.com/index.php/2009/full-page-zoom/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 15:29:29 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://james.gameover.com/index.php/2009/full-page-zoom/</guid>
		<description><![CDATA[Good news! Google Chrome is getting full page zoom, and it&#8217;s the default! That only leaves Safari to implement it, as IE, Firefox &#38; Opera have had it for a while now. [1]
Full page zoom is important because it means no more mucking about with elastic layouts (em-based) or liquid layouts (%-based). That just leaves [...]]]></description>
			<content:encoded><![CDATA[<p>Good news! <a href="http://sites.google.com/a/chromium.org/dev/getting-involved/dev-channel/release-notes/releasenotes201561">Google Chrome is getting full page zoom</a>, and it&#8217;s the default! That only leaves Safari to implement it, as IE, Firefox &amp; Opera have had it for a while now. [1]</p>
<p>Full page zoom is important because it means no more mucking about with <a href="http://james.gameover.com/index.php/2008/px-vs-em-is-it-still-relevant/">elastic layouts (em-based)</a> or <a href="http://james.gameover.com/index.php/2008/bye-bye-liquid-layouts/">liquid layouts (%-based)</a>. That just leaves fixed layouts (based on pixels), which is good because images, videos and other media are in pixels too!</p>
<p>[1] <strong>Update</strong>: <a href="http://www.apple.com/safari/features.html#accessibility">Safari 4 (beta) has implemented full page zoom</a> too! All major and minor browsers have implemented full page zoom. Until widespread updating of Safari 3 with 4 and (more importantly) IE 6 with 7 or 8, approx. a quarter of visitors will only have text-based zoom available to them. IE 6 users are likely not to know anything about zoom-capabilities however.</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2009/full-page-zoom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2009/full-page-zoom/</feedburner:origLink></item>
		<item>
		<title>Improve your Wordpress: related posts for 404’s</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/u02KxhhNwBY/</link>
		<comments>http://james.gameover.com/index.php/2009/improve-your-wordpress-related-posts-for-404s/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 15:40:53 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://james.gameover.com/?p=161</guid>
		<description><![CDATA[Second in a series of articles about tinkering with improving your wordpress installation, we return to custom 404 error pages; adding a list of possibly related posts when visitors have followed an outdated link. Other 404 error page improvements can be found in the first article of this series.
One of the most useful things on a 404 [...]]]></description>
			<content:encoded><![CDATA[<p>Second in a series of articles about <span style="text-decoration: line-through;">tinkering with</span> improving your wordpress installation, we return to custom 404 error pages; adding a list of possibly related posts when visitors have followed an outdated link. Other <a href="http://james.gameover.com/index.php/2009/improve-your-wordpress-the-404-error-page/">404 error page improvements</a> can be found in the first article of this series.</p>
<p>One of the most useful things on a 404 page is a direct link to the page visitors were <em>trying</em> to get to. Now we can&#8217;t read minds, but we do know the URI (<a href="http://james.gameover.com/index.php/2009/improve-your-wordpress-the-404-error-page/">explained in the third paragraph of the previous article</a>) and that&#8217;s good enough. The following code is adapted from <a href="http://archgfx.net/blog/2007/geek/blogging/adding-search-results-to-wordpress-404-pages">this archGFX article</a>. The method used to transform the URI into a search query is very simple. If you would like a more advanced please refer to<a href="http://blog.urbanmainframe.com/2009/01/a-better-404-redux/"> &#8220;A better 404 &#8211; Redux&#8221; at Urban Mainframe</a>, where Jonathan Hollin expounds on his (downloadable!) 404 page code.</p>
<p>There are two parts to this &#8220;related posts&#8221; code. The first part makes it possible to get from &#8220;/wrong/link.html&#8221; (the URI) to &#8220;wrong link&#8221; (the search query).<span id="more-161"></span></p>
<blockquote><p>Here it is:</p>
<p>&lt;?php /* Transforming the URI into search terms */</p>
<p>$search_term = substr($_SERVER['REQUEST_URI'],1);</p>
<p>$search_term = urldecode(stripslashes($search_term));</p>
<p>$find = array (&#8221;&#8216;.html&#8217;&#8221;, &#8220;&#8216;[-/_]&#8216;&#8221;) ; </p>
<p>$replace = &#8221; &#8221; ;</p>
<p>$search_term = trim(preg_replace ( $find , $replace , $search_term ));</p>
<p>$search_term_q = preg_replace(&#8217;/ /&#8217;, &#8216;%20&#8242;, $search_term);</p>
<p>?&gt;</p>
<p>That&#8217;s all there is to it. If you, however, don&#8217;t want to make &#8220;/wrong/link.html&#8221; into &#8220;wrong link&#8221;, but rather just &#8220;link&#8221; (because the first part of the URI is likely to be useless), use the following on the fourth line:</p>
<p>$find = array (&#8221;&#8216;.html&#8217;&#8221;, &#8220;&#8216;.+/&#8217;&#8221;, &#8220;&#8216;[-/_]&#8216;&#8221;) ;</p></blockquote>
<p>The second part consists of telling Wordpress to use the search terms and outputting a list of articles based on the results.</p>
<blockquote><p>In this case the loop will output a linked title, a line-break and then the date of the article. You can edit out the line-break and the date if you want. Also, you can change OL to UL if you want an unordered list outputted.</p>
<p>&lt;?php <span style="line-height: 37px;">/* Use the search terms to run a query */  </span></p>
<p>query_posts(&#8217;s=&#8217;. $search_term_q );  </p>
<p>/* check to see if there are posts */</p>
<p>if ( have_posts() ) :  </p>
<p> ?&gt;  </p>
<p>&lt;h1&gt;Possibly related content&lt;/h1&gt;</p>
<p>&lt;ol&gt;</p>
<p>&lt;?php /* start the loop */  while ( have_posts() ) : the_post(); ?&gt;  </p>
<p>&lt;li&gt;&lt;a href=&#8221;&lt;?php the_permalink() ?&gt;&#8221;&gt;&lt;?php the_title() ?&gt;&lt;/a&gt;</p>
<p>&lt;br&gt;</p>
<p>&lt;?php unset($previousday); printf(__(&#8217;%1$s&#8217;, &#8217;sandbox&#8217;), the_date(&#8221;, &#8221;, &#8221;, false), get_the_time()) ?&gt;</p>
<p>&lt;/li&gt;  </p>
<p>&lt;?php /* end the loop */  endwhile; ?&gt;  </p>
<p>&lt;/ol&gt;  </p>
<p>&lt;?php else : endif; ?&gt; </p></blockquote>
<p>That&#8217;s all there is to it! Once you&#8217;ve added this code <a href="http://james.gameover.com/404">your 404 error page should look a little something like this</a>. </p>
<blockquote><p>To conclude, add the following to your 404.php, wherever you think it fits best, to add :</p>
<p>&lt;?php /* Transforming the URI into search terms */</p>
<p>$search_term = substr($_SERVER['REQUEST_URI'],1);  </p>
<p>$search_term = urldecode(stripslashes($search_term));  </p>
<p>$find = array (&#8221;&#8216;.html&#8217;&#8221;, &#8220;&#8216;[-/_]&#8216;&#8221;) ;  </p>
<p>/* If you only want the last term of the URI, use the following instead: </p>
<p>$find = array (&#8221;&#8216;.html&#8217;&#8221;, &#8220;&#8216;.+/&#8217;&#8221;, &#8220;&#8216;[-/_]&#8216;&#8221;) ;  */</p>
<p>$replace = &#8221; &#8221; ;  </p>
<p>$search_term = trim(preg_replace ( $find , $replace , $search_term ));  </p>
<p>$search_term_q = preg_replace(&#8217;/ /&#8217;, &#8216;%20&#8242;, $search_term); </p>
<p>?&gt;</p>
<p>&lt;?php <span style="line-height: 37px;">/* Use the search terms to run a query */  </span></p>
<p>query_posts(&#8217;s=&#8217;. $search_term_q );  </p>
<p>/* check to see if there are posts */</p>
<p>if ( have_posts() ) :  </p>
<p> ?&gt;  </p>
<p>&lt;h1&gt;Possibly related content&lt;/h1&gt;</p>
<p>&lt;ol&gt;</p>
<p>&lt;?php /* start the loop */  while ( have_posts() ) : the_post(); ?&gt;  </p>
<p>&lt;li&gt;&lt;a href=&#8221;&lt;?php the_permalink() ?&gt;&#8221;&gt;&lt;?php the_title() ?&gt;&lt;/a&gt;</p>
<p>&lt;br&gt;</p>
<p>&lt;?php unset($previousday); printf(__(&#8217;%1$s&#8217;, &#8217;sandbox&#8217;), the_date(&#8221;, &#8221;, &#8221;, false), get_the_time()) ?&gt;</p>
<p>&lt;/li&gt;  </p>
<p>&lt;?php /* end the loop */  endwhile; ?&gt;  </p>
<p>&lt;/ol&gt;  </p>
<p>&lt;?php else : endif; ?&gt; </p></blockquote>
<p>If you&#8217;ve any questions, don&#8217;t hesitate to ask!</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2009/improve-your-wordpress-related-posts-for-404s/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2009/improve-your-wordpress-related-posts-for-404s/</feedburner:origLink></item>
		<item>
		<title>Improve your Wordpress: the 404 error page</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/zG-1VCMcdcA/</link>
		<comments>http://james.gameover.com/index.php/2009/improve-your-wordpress-the-404-error-page/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 17:56:30 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://james.gameover.com/?p=139</guid>
		<description><![CDATA[First in a series of articles about tinkering with improving your wordpress installation, today we tackle custom 404 error pages; the page everyone dreads getting when they&#8217;ve followed an outdated link.
Four-Oh-Fours are hot again! Just recently came a across the article A Better 404. I remember reading the A List Apart article &#8220;A Perfect 404&#8243; [...]]]></description>
			<content:encoded><![CDATA[<p>First in a series of articles about <span style="text-decoration: line-through;">tinkering with</span> improving your wordpress installation, today we tackle custom 404 error pages; the page everyone dreads getting when they&#8217;ve followed an outdated link.</p>
<p>Four-Oh-Fours are hot again! Just recently came a across the article <a href="http://blog.urbanmainframe.com/2008/11/a-better-404/">A Better 404</a>. I remember reading <a href="http://www.alistapart.com/articles/perfect404/">the A List Apart article &#8220;A Perfect 404&#8243;</a> ages ago, but had never done anything about it. Time to improve. </p>
<p>First some quick vocab: the part after your .com (or .co.uk) is called the URI, so if www.google.com/analytics/provision/ is the address,  /analytics/provision/ would be the URI. The URI is the part that&#8217;s wrong when someone&#8217;s followed a outdated link which means we can use the URI to create a more helpful 404 page. To create a 404 page for your Wordpress theme just create a 404.php file in the directory of your theme (/wp-content/themes/default/ is the default).<span id="more-139"></span></p>
<blockquote><p>The default wordpress 404 page code looks something like this:</p>
<p>&lt;?php get_header(); ?&gt;</p>
<p>&lt;h1&gt;Nothing Found (Error 404)&lt;/h1&gt;</p>
<p>&lt;?php get_sidebar(); ?&gt;</p>
<p>&lt;?php get_footer(); ?&gt;</p></blockquote>
<p>Which I suppose is functional enough, but doesn&#8217;t actually help the user much, depending on the content of your sidebar. The first thing to do is to tell programmes visiting  (browsers and more importantly search engine spiders!) that the page is a 404 error page.</p>
<blockquote><p>You do that by adding the following to the top of your 404.php:</p>
<p>&lt;?php ob_start(); ?&gt;</p>
<p>&lt;?php header(&#8221;HTTP/1.1 404 Not Found&#8221;); ?&gt;</p>
<p>This &#8220;HTTP/1.1 404 Not Found&#8221; message tells spiders exactly what they need to know.</p></blockquote>
<p>Next up, adding useful things for human users! There are three main things you can do to be helpful. Telling the user <em>exactly</em> what&#8217;s wrong, giving them a list of related articles and listing your recent articles. Related articles requires some URI magic which I haven&#8217;t figured out yet, but <a href="http://urbanmainframe.com/">Jonathan Hollin</a> has, so stay tuned for an article from him which I&#8217;ll link to when the time comes.</p>
<blockquote><p>Telling the user exactly what&#8217;s wrong goes a little something like this:</p>
<p>&lt;blockquote&gt;</p>
<p>&lt;?php // When the visitor is linked through by another site or page</p>
<p>if ($_SERVER['HTTP_REFERER']) { ?&gt;</p>
<p>&lt;p&gt;The link at &lt;em&gt;&lt;a href=&#8221;&lt;?php echo $_SERVER['HTTP_REFERER'];?&gt;&#8221;&gt;</p>
<p>&lt;?php echo chunk_split($_SERVER['HTTP_REFERER'], 25);?&gt;</p>
<p>&lt;/a&gt;&lt;/em&gt; is incorrect or &lt;em&gt;&lt;?php echo $_SERVER['REQUEST_URI'];?&gt;&lt;/em&gt; has been moved, renamed or deleted.&lt;/p&gt;</p>
<p>&lt;?php } // When the visitor isn&#8217;t linked through (most likely a bookmark)</p>
<p>else { </p>
<p>echo &#8220;&lt;p&gt;&lt;em&gt;&#8221; . $_SERVER['REQUEST_URI'] . &#8220;&lt;/em&gt;&#8221;;</p>
<p>?&gt;</p>
<p>has been moved, renamed or deleted.&lt;/p&gt;</p>
<p>&lt;?php } ?&gt;</p>
<p>&lt;/blockquote&gt;</p></blockquote>
<p>As the comments in the code make clear, there are two situations to tailor for: when people come in from another site and when they don&#8217;t. A nice addition is &#8220;echo chunk_split($_SERVER['HTTP_REFERER'], 25)&#8221; which echo&#8217;s (outputs) the HTTP_REFERER (the site where the user was linked from) in little blocks of 25 characters. This way long URLs still wrap nicely. I chose 25 characters as that&#8217;ll put &#8220;http://james.gameover.com&#8221; all on one line.</p>
<blockquote><p>That just leaves a list of some recent posts to add:</p>
<p>&lt;h1&gt;Recent Posts&lt;/h1&gt;</p>
<p>&lt;ol&gt;</p>
<p>&lt;?php $postslist = get_posts(&#8217;numberposts=6&#8242;);</p>
<p>foreach ($postslist as $post) :</p>
<p>setup_postdata($post); ?&gt;</p>
<p>&lt;li&gt;&lt;a href=&#8221;&lt;?php the_permalink(); ?&gt;&#8221;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;</p>
<p>&lt;?php endforeach; ?&gt;</p>
<p>&lt;/ol&gt;</p></blockquote>
<p>This code simply outputs a linked title of the 6 most recent journal entries in a numbered list. Simple!</p>
<blockquote><p>So, to recap, you&#8217;ll end up with something like this as your final code in the 404.php file:</p>
<p>&lt;?php ob_start(); ?&gt;</p>
<p>&lt;?php header(&#8221;HTTP/1.1 404 Not Found&#8221;); ?&gt;</p>
<p>&lt;?php get_header(); ?&gt;</p>
<p> </p>
<p>&lt;h1&gt;Nothing Found (Error 404)&lt;/h1&gt;</p>
<p> </p>
<p>&lt;blockquote&gt;</p>
<p>&lt;? if ($_SERVER['HTTP_REFERER']) { ?&gt;</p>
<p>&lt;p&gt;The link at &lt;em&gt;&lt;a href=&#8221;&lt;?php echo $_SERVER['HTTP_REFERER'];?&gt;&#8221;&gt;</p>
<p>&lt;?php echo chunk_split($_SERVER['HTTP_REFERER'], 25);?&gt;</p>
<p>&lt;/a&gt;&lt;/em&gt; is incorrect or &lt;em&gt;&lt;?php echo $_SERVER['REQUEST_URI'];?&gt;&lt;/em&gt; has been moved, renamed or deleted.&lt;/p&gt;</p>
<div>&lt;?php } else { </div>
<p>echo &#8220;&lt;p&gt;&lt;em&gt;&#8221; . $_SERVER['REQUEST_URI'];</p>
<p>?&gt;</p>
<p>&lt;/em&gt; has been moved, renamed or deleted.&lt;/p&gt;</p>
<p>&lt;?php } ?&gt;</p>
<p>&lt;/blockquote&gt;</p>
<p> </p>
<p>&lt;p&gt;Don&#8217;t worry, just try again!&lt;/p&gt;</p>
<p> </p>
<p>&lt;h1&gt;Recent Posts&lt;/h1&gt;</p>
<p>&lt;ol&gt;</p>
<p>&lt;?php $postslist = get_posts(&#8217;numberposts=6&#8242;);</p>
<p>foreach ($postslist as $post) :</p>
<p>setup_postdata($post); ?&gt;</p>
<p>&lt;li&gt;&lt;a href=&#8221;&lt;?php the_permalink(); ?&gt;&#8221;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;</p>
<p>&lt;?php endforeach; ?&gt;</p>
<p>&lt;/ol&gt;</p>
<p>&lt;?php get_sidebar(); ?&gt;</p>
<p>&lt;?php get_footer(); ?&gt;</p></blockquote>
<p>You can visit <a href="http://james.gameover.com/try/a/link">the final 404 error page here</a>. Many thanks to <a title="go to: Who Am I?" href="http://blog.urbanmainframe.com/colophon/who-am-i/">Jonathan M. Hollin</a> for much of the code and ideas, and to the <a href="http://codex.wordpress.org/">Wordpress Codex</a> and <a href="http://php.net/chunk_split">php.net</a> for being such handy recourses.</p>
<p><strong>Update</strong>: Added &#8220;Possibly related content&#8221; to my 404 pages, followup post will come later.</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2009/improve-your-wordpress-the-404-error-page/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2009/improve-your-wordpress-the-404-error-page/</feedburner:origLink></item>
		<item>
		<title>Candy music</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/LrXY_Zbi7qY/</link>
		<comments>http://james.gameover.com/index.php/2008/no-talk-radio-podcasts-for-me/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 20:55:50 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Buzz]]></category>

		<guid isPermaLink="false">http://akaxaka.gameover.com/?p=31</guid>
		<description><![CDATA[And now for something completely different. A set of music samplers, tastety bits of songs, compactly mixed together. The first two are filled with tunes you can dance to, while the third one is much more restful. Enjoy!

Candy Volume 1 (3.54 mins) Download audio file (candy-volume1.mp3)

Space Cowboy &#8211; Crazy Talk (Pique &#38; Nique You Will Miss [...]]]></description>
			<content:encoded><![CDATA[<p>And now for something completely different. A set of music samplers, tastety bits of songs, compactly mixed together. The first two are filled with tunes you can dance to, while the third one is much more restful. Enjoy!<br />
<span id="more-31"></span><br />
<a href="http://akaxaka.gameover.com/zen/candy-volume1.mp3">Candy Volume 1</a> (3.54 mins) <a href="http://james.gameover.com/wp/../zen/candy-volume1.mp3">Download audio file (candy-volume1.mp3)</a></p>
<ol>
<li>Space Cowboy &#8211; Crazy Talk (Pique &amp; Nique You Will Miss Me Remix)</li>
<li>Justin Timberlake &#8211; Like I Love You (Basement Jaxx)</li>
<li>Polyphonics &#8211; Nightlights (Seamus Haji Vocal Mix)</li>
<li>Jamiroquai &#8211; Love Blind</li>
<li>Gadjo &#8211; So Many Times (Club Mix)</li>
</ol>
<p><a href="http://akaxaka.gameover.com/zen/candy-volume2.mp3">Candy Volume 2</a> (3.23 mins) <a href="http://james.gameover.com/wp/../zen/candy-volume2.mp3">Download audio file (candy-volume2.mp3)</a></p>
<ol>
<li>M&amp;S Presents The Girl Next Door &#8211; If You Wanna</li>
<li>Basement Jaxx &#8211; U Don&#8217;t Know Me</li>
<li>Faith Evans &#8211; Mesmerized (Freemasons Radio Edit)</li>
<li>Mint Royale &#8211; Singing In The Rain (FuzzyGroove Mix)</li>
</ol>
<p><a href="http://akaxaka.gameover.com/zen/candy-volume3.mp3">Candy Volume 3</a> (3.16 mins) <a href="http://james.gameover.com/wp/../zen/candy-volume3.mp3">Download audio file (candy-volume3.mp3)</a></p>
<ol>
<li>Michaele Buble &#8211; Feeling Good</li>
<li>Air &#8211; Universal Traveler</li>
<li>José González &#8211; Heartbeats</li>
</ol>
<p>If  you enjoyed these, you might also like <a href="http://www.djcruze.co.uk/">DJ Cruze&#8217;s podcast</a> or <a href="http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/browserRedirect?url=itms%253A%252F%252Fax.itunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewPodcast%253Fid%253D120107389">Defected&#8217;s podcast</a> (iTunes Podcast directory link).</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2008/no-talk-radio-podcasts-for-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>

<enclosure url="http://akaxaka.gameover.com/zen/candy-volume2.mp3" length="4876458" type="audio/mpeg" />
<enclosure url="http://akaxaka.gameover.com/zen/candy-volume3.mp3" length="4709693" type="audio/mpeg" />
<enclosure url="http://james.gameover.com/zen/candy-volume1.mp3" length="5626275" type="audio/mpeg" />
		<feedburner:origLink>http://james.gameover.com/index.php/2008/no-talk-radio-podcasts-for-me/</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/CandyByJames/~5/nrKRgvGrm0A/candy-volume1.mp3" length="5626275" type="audio/mpeg" /><feedburner:origEnclosureLink>http://akaxaka.gameover.com/zen/candy-volume1.mp3</feedburner:origEnclosureLink></item>
		<item>
		<title>Bugzilla Thoughts</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/OldG8bghmuU/</link>
		<comments>http://james.gameover.com/index.php/2008/bugzilla-thoughts/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 17:26:26 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://james.gameover.com/index.php/2008/bugzilla-thoughts/</guid>
		<description><![CDATA[Bug reporting is tricky. Bugs are problems in software where the software doesn&#8217;t work as it should. &#8220;It doesn&#8217;t work.&#8221; doesn&#8217;t get you anywhere with the developer of the software in question, so the key is to report exactly what happend and what should happen very clearly. Steven Frank (of Panic, Inc. software-makers) has made [...]]]></description>
			<content:encoded><![CDATA[<p>Bug reporting is tricky. Bugs are problems in software where the software doesn&#8217;t work as it should. &#8220;It doesn&#8217;t work.&#8221; doesn&#8217;t get you anywhere with the developer of the software in question, so the key is to report exactly what happend and what <em>should</em> happen very clearly. Steven Frank (of Panic, Inc. software-makers) has made a list explaining <a href="http://stevenf.com/archive/reporting-bugs-in-mac-os-x-apps.php">what you should and shouldn&#8217;t do when reporting bugs</a>. One of the things Frank specifically mentions as being good ways to convey bug reports are images and video.</p>
<p>A lot of open source projects use Bugzilla (of Mozilla origin) to track bugs and make discussion of those bugs possible. Shouldn&#8217;t Bugzilla make it possible (and easy!) to include images and video in bug reports?</p>
<p>If <a href="http://www.buzzfeed.com/blanca/marilyn-monroe-letter#add-something-interesting">Buzzfeed can do it</a>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2008/bugzilla-thoughts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2008/bugzilla-thoughts/</feedburner:origLink></item>
		<item>
		<title>Colourful crescendo</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/2HbRDuEN834/</link>
		<comments>http://james.gameover.com/index.php/2008/colourful-crescendo/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 17:06:44 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://james.gameover.com/index.php/2008/colourful-crescendo/</guid>
		<description><![CDATA[The artwork for Simon Jobling&#8217;s One Phat DJ August 2008 podcast: Colourful Crescendo. It&#8217;s a combination of Illustrator and Photoshop work misuse of filmgrain filters.

Originally made for the July Crescendo, a month and a few name changes later, the podcast and accompanying artwork go live today.
It&#8217;s quite fun to do podcast artwork; well recommended. Thanks [...]]]></description>
			<content:encoded><![CDATA[<p>The artwork for Simon Jobling&#8217;s <a href="http://www.simonjobling.com/blog/2008/colourful-crescendo/">One Phat DJ August 2008 podcast: Colourful Crescendo</a>. It&#8217;s a combination of Illustrator and <span style="text-decoration: line-through;">Photoshop work</span> misuse of filmgrain filters.</p>
<div class="insertimg" style="float:left;margin-right:8px;"><a href="http://www.flickr.com/photos/akaxaka/2764931619/"><img src="http://farm4.static.flickr.com/3041/2764931619_b726ac290b_m.jpg" alt="" /></a></div>
<p>Originally made for the July Crescendo, a month and a few name changes later, the podcast and accompanying artwork go live today.</p>
<p>It&#8217;s quite fun to do podcast artwork; well recommended. Thanks for the chance Si!</p>
<div style="clear:both"></div>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2008/colourful-crescendo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2008/colourful-crescendo/</feedburner:origLink></item>
		<item>
		<title>Inserting pages into category archives in wordpress</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/rQu0s3Dy1Ko/</link>
		<comments>http://james.gameover.com/index.php/2008/inserting-pages-into-category-archives-in-wordpress/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 22:00:59 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://james.gameover.com/index.php/2008/inserting-pages-into-category-archives-in-wordpress/</guid>
		<description><![CDATA[Wouldn’t it be handy if you could have a little story at the top of your archive pages (or other templates), explaining exactly what’s what? And wouldn’t it be handy if that little story was fully wysiwyg editable? I thought so.
Sites in Wordpress (WP) have “posts” which go into categories and “pages”, which are independent. [...]]]></description>
			<content:encoded><![CDATA[<p>Wouldn’t it be handy if you could have a little story at the top of your archive pages (or other templates), explaining exactly what’s what? And wouldn’t it be handy if that little story was fully wysiwyg editable? I thought so.</p>
<p>Sites in Wordpress (WP) have “posts” which go into categories and “pages”, which are independent. My cunning plan was to name pages exactly the same as the categories I wanted them to describe, and then insert them into the archive page. It has been quite a search to get all the right code, even though the end result looks quite simple!</p>
<p>The first thing you do, is create a category (”One &amp; One”) and create a page (with the title “One &amp; One”). Secondly, you open up your archive.php template file.</p>
<blockquote><p>You should see something like the following in it:</p>
<p><em>&lt;?php if (have_posts()) : ?&gt;</em></p>
<p>And also, further along:</p>
<p><em> &lt;?php while (have_posts()) : the_post(); ?&gt; </em></p></blockquote>
<p><span id="more-94"></span><br />
Those two statements start off  &#8220;The Loop&#8221;, which is wordpress lingo for the php-statements which produce the desired output (like posts or lists of them) in a template. We&#8217;re going to put our blurb above it. You can also put it under &#8220;The Loop&#8221; (the &#8220;main&#8221; loop really) if you so wish &#8211; no extra code needed.</p>
<blockquote><p>Simply put:</p>
<p><em>&lt;?php<br />
</em></p>
<p><em>$getcategory = $wp_query-&gt;get_queried_object();</em></p>
<p><em>$pagetoget = &#8216;pagename=&#8217; . $getcategory-&gt;category_nicename;</em></p>
<p><em>$seperate_query = new WP_Query($pagetoget); </em></p>
<p><em>/* Next&#8230;we start our own Wordpress Loop, based on the seperate query (as seen above). That way we can still use the main query! */?&gt;</em></p>
<p><em>&lt;?php while ($seperate_query-&gt;have_posts()) : $seperate_query-&gt;the_post(); ?&gt;</em></p>
<p><em>&lt;div id=&#8221;blurb&#8221;&gt;</em></p>
<p><em>&lt;h3&gt;Standard blurb for: &lt;?php echo  single_cat_title(&#8221;, false);  ?&gt;&lt;/h3&gt;</em></p>
<p><em>&lt;?php the_content() ?&gt;</em></p>
<p><em>&lt;/div&gt;</em></p>
<p><em>&lt;br style=&#8221;clear:both;&#8221;&gt;</em></p>
<p><em>&lt;?php endwhile; ?&gt;</em></p>
<p><em>&lt;?php rewind_posts();  /* This &#8220;rewinds&#8221; the loop, so we can use another loop after it safely.*/ ?&gt;</em></p>
<p>Infront of the start of the main loop in your archive.php, so above of the following line:</p>
<p><em>&lt;?php if (have_posts()) : ?&gt;</em></p></blockquote>
<p>And that&#8217;s all the code that&#8217;s needed!</p>
<p>Let me explain what the code actually does. The first two lines — <em>$getcategory = $wp_query-&gt;get_queried_object(); $pagetoget = &#8216;pagename=&#8217; . $getcategory-&gt;category_nicename; </em> — ask WP for the &#8220;category slug&#8221; or the &#8220;nicename&#8221; of the category. That&#8217;s the sanitized version of &#8220;One &amp; One&#8221; in this case, which is &#8220;one-one&#8221;.</p>
<p>This &#8220;category slug&#8221; is handy, because &#8220;one-one&#8221; will also be the &#8220;page slug&#8221;, so it&#8217;ll match the sanitized name of the page we want to insert into our category archive. We get our page by doing — <em>$seperate_query = new WP_Query($pagetoget);  while ($seperate_query-&gt;have_posts()) : $seperate_query-&gt;the_post();</em> — that starts a new, completely seperate loop from the main loop that will follow.</p>
<p>Then all that&#8217;s left is to insert the page&#8217;s content like so — <em>&lt;?php the_content() ?&gt;</em> — and then end and rewind the loop with the following statements — <em>&lt;?php endwhile; ?&gt; &lt;?php rewind_posts(); ?&gt;</em> .</p>
<p>You can see I&#8217;ve added a div around the content-insertion and <em>&lt;br style=&#8221;clear:both;&#8221;&gt; </em>after it. That prepares you for any floating-images that may be part of the inserted page&#8217;s content. The <em>&lt;h3&gt;Standard blurb for: &lt;?php echo  single_cat_title(&#8221;, false);  ?&gt;&lt;/h3&gt;</em> is there mainly to know what I&#8217;m doing (when working on it) and to seperate it out from the listing of category content that will follow after the blurb. I&#8217;ve left it in the example so you know how to get both the sanitized &#8220;category slug&#8221; and the regular &#8220;category title&#8221;, which this produces.</p>
<p>This code works in the standard Wordpress 2.6 template based on K2 and should work in pretty much all other templates too. Many thanks to <a href="http://noscope.com/">Joen</a> and <a href="http://google.com/">Google</a> for their help.</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2008/inserting-pages-into-category-archives-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2008/inserting-pages-into-category-archives-in-wordpress/</feedburner:origLink></item>
		<item>
		<title>Bye bye liquid layouts!</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/XiRaZYPwy-w/</link>
		<comments>http://james.gameover.com/index.php/2008/bye-bye-liquid-layouts/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 16:59:45 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://james.gameover.com/index.php/2008/bye-bye-liquid-layouts/</guid>
		<description><![CDATA[Yes, I am predicting the death of liquid layout of web pages. Not all mind you, some web apps will still be liquid, but for the rest of the web: liquid is dead. This is a natural next step after declaring elastic layouts dead, so no surprises here.
There are three main ways to define your layout [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, I am predicting the death of liquid layout of web pages. Not all mind you, some web apps will still be liquid, but for the rest of the web: liquid is dead. This is a natural next step after <a href="http://james.gameover.com/index.php/2008/px-vs-em-is-it-still-relevant/">declaring elastic layouts dead</a>, so no surprises here.</p>
<p>There are three main ways to define your layout in web design: fixed, elastic &amp; liquid. Having <a href="http://james.gameover.com/index.php/2006/elastic-liquid-pixel-explained/">written about the differences between them</a> before, I&#8217;ll suffice with stating that fixed layouts are defined in &#8220;px&#8221; (pixels) and liquid ones in &#8220;%&#8221; (percentages).</p>
<p>Using a fixed layout means your web page is the same width irrespective of the viewers&#8217; screen width, like so:</p>
<div class="insertimg"><img src="/zen/jjm-fixed-width-design.jpg" alt="Fixed layout." /></div>
<p>Using a liquid layout however, means your web page scales along with the viewers&#8217; screen width, like so:</p>
<div class="insertimg"><img src="/zen/jjm-flexible-width-design.jpg" alt="Liquid layout." /></div>
<p>Liquid layouts used to have an edge over pixel layouts in the sense that they increased use of the screen real estate, thus providing more room if the viewer increased their text-size. <strong>Line-lengths are hard to control with liquid layouts</strong>, because of varying screen-sizes obviously, but also when the viewer increases (just) the text-size. Jason Kottke posted a <a href="http://www.kottke.org/01/05/attention-liquid-designers-take-a">good warning about line-lengths in liquid layouts</a> a while back:</p>
<blockquote><p>Attention liquid designers: take a gander at <a href="http://www.kottke.org/plus/photos/200105europe/papyrus.jpg">this portion of an ancient Egyptian parchment</a> on papyrus from the Louvre. Even the ancient Egyptians knew not to make columns of text too wide.</p></blockquote>
<p>Now, however, most browsers have adopted full-page zooming over text-size zooming. Most provide both, but full-page zooming is the new default. Full-page zooming gives users with a wider screen (for example) the chance to increase the size of text and images, while still preserving the ratios of fixed layout pages, like so:</p>
<div class="insertimg"><img src="/zen/jjm-fixed-width-design-full-zoom.jpg" alt="Fixed design with full zoom." /></div>
<p>As you can see, full-page zooming means fixed layouts also provide increased use of screen real estate, but only <em>when needed</em>. In addition fixed layouts keep line-lengths relatively stable, and are easy to work with as they are based on pixels, just like images, videos and other objects you may have on your web page.</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2008/bye-bye-liquid-layouts/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2008/bye-bye-liquid-layouts/</feedburner:origLink></item>
		<item>
		<title>One Phat DJ – Pro Wallpaper</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/9YXS-QgqcgQ/</link>
		<comments>http://james.gameover.com/index.php/2008/one-phat-dj-pro-wallpaper/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 15:32:24 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Wallpaper]]></category>
		<category><![CDATA[Worthy]]></category>

		<guid isPermaLink="false">http://james.gameover.com/index.php/2008/one-phat-dj-pro-wallpaper/</guid>
		<description><![CDATA[I&#8217;ve been listening to Simon Jobling&#8217;s One Phat DJ, the excellent funky, sexy, house music podcast series. You should too. Twice a month, he outputs more than an hour of wicked house tunes. Give the April 2008 Crescendo one a try for instance. Of course, this is coming from someone who&#8217;s &#8220;musical compatibility rating&#8221; on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been listening to <a href="http://www.simonjobling.com/">Simon Jobling&#8217;s</a> One Phat DJ, the excellent <a href="http://onephatdj.com">funky, sexy, house music podcast series</a>. You should too. Twice a month, he outputs more than an hour of wicked house tunes. Give the <a href="http://www.simonjobling.com/blog/2008/apr08-crescendo/">April 2008 Crescendo </a>one a try for instance. Of course, this is coming from someone who&#8217;s &#8220;musical compatibility rating&#8221; on last.fm is <a href="http://www.last.fm/user/onephatdj/">&#8220;Super&#8221; with One Phat DJ</a> :)</p>
<p>So back to the subject of this post: wallpaper. I regularly feature <a href="http://james.gameover.com/index.php/2007/tokyo-project-wallpaper/">wallpaper of house music I like</a>, or rather wallpapers based on the <a href="http://james.gameover.com/index.php/2007/fierce-angels-wallpaper/"><em>artwork</em> of house music</a> that I like. Now apparently, I have the need to create a wallpaper out of <em>everything</em> I open in photoshop. I was supposed to be creating a cover for an upcoming podcast of One Phat DJ, when I realised I wasn&#8217;t busy creating a cover at all &#8211; it was a wallpaper! So while that means I had to go back to the drawing board, I still thought it&#8217;d be nice to share it with all of you.</p>
<p><a href="http://flickr.com/photos/akaxaka/2531361767/"><img src="http://farm4.static.flickr.com/3024/2531361767_25a136714a.jpg" width="500" height="321" alt="Simon Jobling's One Phat DJ Pro Wallpaper (14x9)" /></a></p>
<p>The &#8220;One Phat DJ &#8211; Pro&#8221; wallpaper is based on a <a href="http://nocturnalmonkey.com/">Sam Hardacre</a> sketch of the <a href="http://www.flickr.com/photos/peelhere/2461997665/">One Phat DJ character</a> as featured on the <a href="http://www.flickr.com/photos/peelhere/2403214026/in/set-72157594309096731/">April &#8216;08 Warm Up</a> cover. While it&#8217;s obviously inspired by the <a href="http://www.nba.com">NBA</a> logo, this style seems to be used for a lot of pro sports now, even pro gaming!</p>
<p><a href="http://flickr.com/photos/akaxaka/2531361531/"><img src="http://farm4.static.flickr.com/3262/2531361531_b9534fb73e.jpg" width="500" height="400" alt="Simon Jobling's One Phat DJ Pro Wallpaper (12x10)" /></a></p>
<p>It&#8217;s available for download in both <a href="http://james.gameover.com/zen/si-pro-wall3-14x9.png">wide-screen</a> and <a href="http://james.gameover.com/zen/si-pro-wall3-12x10.png">square format</a>. Feel free to use this wallpaper at home or at work, but please don&#8217;t redistribute.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2008/one-phat-dj-pro-wallpaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2008/one-phat-dj-pro-wallpaper/</feedburner:origLink></item>
		<item>
		<title>Photoshop disasters</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/4d0TQisx0es/</link>
		<comments>http://james.gameover.com/index.php/2008/photoshop-disasters/#comments</comments>
		<pubDate>Mon, 19 May 2008 10:25:52 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Buzz]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://james.gameover.com/index.php/2008/photoshop-disasters/</guid>
		<description><![CDATA[You see, when a picture loves another picture very much, they get together and do something very special. Son, I&#8217;m going to use a word I&#8217;m sure you&#8217;ve heard before &#8211; they get Photoshopped together. And this is how a disaster comes into the world; it&#8217;s a beautiful thing.
From Photoshop Disasters, a site which I [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>You see, when a picture loves another picture very much, they get together and do something very special. Son, I&#8217;m going to use a word I&#8217;m sure you&#8217;ve heard before &#8211; they get Photoshopped together. And this is how a disaster comes into the world; it&#8217;s a beautiful thing.</p></blockquote>
<p>From <a href="http://photoshopdisasters.blogspot.com/">Photoshop Disasters</a>, a site which I enjoy, especially since <a href="http://james.gameover.com/index.php/2006/adactio-pour-homme-et-femme/">I dabble</a> a bit in Photoshop <a href="http://james.gameover.com/index.php/2007/fat-nano/">too</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2008/photoshop-disasters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2008/photoshop-disasters/</feedburner:origLink></item>
		<item>
		<title>Px vs Em: Is it still relevant?</title>
		<link>http://feedproxy.google.com/~r/CandyByJames/~3/Y1lwActcuCI/</link>
		<comments>http://james.gameover.com/index.php/2008/px-vs-em-is-it-still-relevant/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 11:40:16 +0000</pubDate>
		<dc:creator>James John Malcolm</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://james.gameover.com/index.php/2008/px-vs-em-is-it-still-relevant/</guid>
		<description><![CDATA[You used to have to choose. Choose between an easy, but inflexible, px-based layout or a hard to control, but flexible, em-based layout.
Now with full-page zoom being implemented (as default!) in Internet Explorer 7, Firefox 3 and Opera 9*, it&#8217;s a different story. Full-page zooming means your easy px-based layout will be fully flexible. Even [...]]]></description>
			<content:encoded><![CDATA[<p>You used to have to choose. Choose between an easy, but inflexible, px-based layout or a hard to control, but flexible, em-based layout.</p>
<p>Now with full-page zoom being implemented (as default!) in Internet Explorer 7, Firefox 3 and Opera 9*, it&#8217;s a different story. Full-page zooming means your easy px-based layout will be fully flexible. Even more flexible than most em-based layouts in fact, as images will scale along too.</p>
<p>So I&#8217;m asking myself, why bother with hard-to-keep-from-breaking em-based layouts?</p>
<p><strong>[update]</strong> I don&#8217;t think <a href="http://james.gameover.com/index.php/2008/bye-bye-liquid-layouts/">liquid layouts are relevant</a> anymore either.</p>
<p><strong>[update 2]</strong> * And now Safari too! That&#8217;s all of the major browsers.</p>
<p>PS. <em>This still leaves percentage-based layouts of course, but they maximise screen real estate. Which is very different from maximising readability (line-lengths and all that jazz). As far as I can see, %-based layouts are good for some web-apps (like gmail) but aren&#8217;t optimal for other uses.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://james.gameover.com/index.php/2008/px-vs-em-is-it-still-relevant/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://james.gameover.com/index.php/2008/px-vs-em-is-it-still-relevant/</feedburner:origLink></item>
	</channel>
</rss>
