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

<channel>
	<title>Bassett-Jones</title>
	<atom:link href="http://bassett-jones.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bassett-jones.com</link>
	<description>The web site of Hugh Bassett-Jones</description>
	<lastBuildDate>Mon, 23 Jan 2012 22:38:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Day of the Starwind: The Last Legionary Book 3</title>
		<link>http://bassett-jones.com/day-of-the-starwind-the-last-legionary-book-3/</link>
		<comments>http://bassett-jones.com/day-of-the-starwind-the-last-legionary-book-3/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 22:08:33 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[The Last Legionary]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=895</guid>
		<description><![CDATA[Book three of The Last Legionary is a bit weak but reveals the leader of the Deathwing]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-896" title="starwind" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/starwind.jpg" alt="" width="209" height="348" /></p>
<p>Other posts in this series:</p>
<ul><li><a title="3 Jul 2011: “Avenge us Keill.” The beginning of The Last Legionary story with Galactic Warlord." href="http://bassett-jones.com/galactic-warlord-the-last-legionary-book-1/">Galactic Warlord: The Last Legionary Book 1</a></li><li><a title="16 Jul 2011: The second book in the Last Legionary Quartet with Kriell battling to stop two planets from going to war." href="http://bassett-jones.com/deathwing-over-veynaa-the-last-legionary-book-2/">Deathwing Over Veynaa: The Last Legionary Book 2</a></li><li><a title="20 Aug 2011: Book three of The Last Legionary is a bit weak but reveals the leader of the Deathwing" href="http://bassett-jones.com/day-of-the-starwind-the-last-legionary-book-3/">Day of the Starwind: The Last Legionary Book 3</a></li></ul> 
<p>The weakest novel of the quartet, Day of the Starwind sees Keill investigate a rumoured legionaries base on the planet Rilyn.</p>
<p>Following an interesting crash-landing start, the action gets bogged down in dull dialogue with new characters who care little and ultimately matter less.</p>
<p>Glr&#8217;s warm friendship remains a high point, although as she and Keill are separated near the beginning of the book it does introduce some distance in their interaction.</p>
<p>We finally get to find out more about the leader of the Deathwing, so far only known as <em>The One</em> and now revealed as a tiny grey mutant in a giant golden cyborg body. Once again Keill prevails in a fight to the death, using his unbreakable organic alloy skeleton to surprise his foe.</p>
<blockquote><p>At first glance the person looking down on him was beautiful, in an inhuman way [...] for an instant, Keill thought the golden figure was a robot, but then he saw the face more clearly, and knew otherwise — sickeningly otherwise.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/day-of-the-starwind-the-last-legionary-book-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deathwing Over Veynaa: The Last Legionary Book 2</title>
		<link>http://bassett-jones.com/deathwing-over-veynaa-the-last-legionary-book-2/</link>
		<comments>http://bassett-jones.com/deathwing-over-veynaa-the-last-legionary-book-2/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 22:35:56 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[The Last Legionary]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=870</guid>
		<description><![CDATA[The second book in the Last Legionary Quartet with Kriell battling to stop two planets from going to war.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-854" src="http://www.bassett-jones.com/wp-content/uploads/2011/07/DeathwingOverVeynaa.jpg" />In Deathwing Over Veynaa, the second book of The Last Legionary Quartet, the action is focussed on a single star system where the Warlord is trying to ferment war between two planets.</p>
<p>Keill battles the Deathwing mutant telepath Quern after it is revealed that Quern alone knows how to create the deadly radiation that destroyed Kreill&#8217;s world.</p>
<p>The organic metal that the Overseers replaced Kriell&#8217;s skeleton with come in handy again, when a second Deathwing agent uses a robot to try to crush Kiell to death.</p>
<blockquote><p>My people believed &#8230; that if you sacrifice everything to win &#8211; all principles, all sense of right &#8211; you end up with a pretty hollow victory.</p>
<p>There&#8217;s a line in a Legion song &#8211; better to lose like men than win like beasts.</p></blockquote>
<p>Not much more is learned about The One and the Warlord during the second book. The action remains fast-paced and Douglas Hill holds back in revealing who the second agent is until the very end. Glr&#8217;s humour and bravery comes over well, as does Keill&#8217;s growing fondness for his alien companion.</p>
<p>An enjoyable book leading to the next in the series.</p>
<p>Other posts in this series: <ul><li><a title="3 Jul 2011: “Avenge us Keill.” The beginning of The Last Legionary story with Galactic Warlord." href="http://bassett-jones.com/galactic-warlord-the-last-legionary-book-1/">Galactic Warlord: The Last Legionary Book 1</a></li><li><a title="16 Jul 2011: The second book in the Last Legionary Quartet with Kriell battling to stop two planets from going to war." href="http://bassett-jones.com/deathwing-over-veynaa-the-last-legionary-book-2/">Deathwing Over Veynaa: The Last Legionary Book 2</a></li><li><a title="20 Aug 2011: Book three of The Last Legionary is a bit weak but reveals the leader of the Deathwing" href="http://bassett-jones.com/day-of-the-starwind-the-last-legionary-book-3/">Day of the Starwind: The Last Legionary Book 3</a></li></ul>  </p>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/deathwing-over-veynaa-the-last-legionary-book-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Galactic Warlord: The Last Legionary Book 1</title>
		<link>http://bassett-jones.com/galactic-warlord-the-last-legionary-book-1/</link>
		<comments>http://bassett-jones.com/galactic-warlord-the-last-legionary-book-1/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 20:50:17 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[The Last Legionary]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=851</guid>
		<description><![CDATA[“Avenge us Keill.” The beginning of The Last Legionary story with Galactic Warlord.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-854" src="http://www.bassett-jones.com/wp-content/uploads/2011/07/LastLegionary.jpg" alt="" /></p>
<p>When I was about 10 years old I read Douglas Hills&#8217;s The Last Legionary and thought it was fantastic.</p>
<p>Now, 20 years later, I was pretty excited to spot a signed copy of the book on eBay. A quick bid later and it was in my hands.</p>
<p>Would Keill be as awesome as I remembered, or would he be reduced to quaint dullness by watching too many blockbuster movies in the intervening years?</p>
<p>Would the Warlord still be as despicable?</p>
<p>Would I still be entertained by a book written for young adults?</p>
<p>My hopes were high.</p>
<p>Spoilers ahoy!</p>
<p><span id="more-851"></span></p>
<p>Galactic Warlord is the first book in The Last Legionary science-fiction series.</p>
<p>It introduces Keill Randor, a martial warrior whose home planet Moros has been made lifeless by an unknown radiation, and the Overseers, a group of benevolent scientists who have discovered a galaxy-wide threat that may be linked to Moros&#8217; destruction.</p>
<p>Even though he doesn&#8217;t believe the Overseers, Keill agrees to investigate a moon base purportedly home to other surviving legionaries. He is accompanied by Glr, an extra-galactic telepathic alien, who wins his trust and gratitude.</p>
<p>During a fight with the base commander and false legionary Thr&#8217;un, it is revealed that everything the Overseers had said was true and that Thr&#8217;un is part of a grand plan to plunge the galaxy into war. Keill is shocked but eventually wins the fight and agrees to work with the Overseers to find those responsible known only as the One and the Master.</p>
<blockquote><p>He gave no hint or warning, did not tense or poise his body. He simply dropped, full-length, to one side. His right hand met the plasticrete, the arm rigid to take his weight. On the pivot of that hand, his body swung in a horizontal arc, legs scything.</p></blockquote>
<p>Although a bit short &#8211; 114 pages compared to the usual 350 &#8211; the book&#8217;s story remains as strong as I remember and the action fast-paced. Glr&#8217;s humorous quips counter-balance Keill&#8217;s intensity, although the Overseers can come across a bit flat through overuse of the group&#8217;s secrecy to not detail the characters. The bad guys so far are a bit generic, being used as cannon fodder to demonstrate Keill&#8217;s skills.</p>
<p>Overall a cracking start to the series that remains as good as I had hoped.</p>
<p>Other posts in this series:</p>
<ul><li><a title="3 Jul 2011: “Avenge us Keill.” The beginning of The Last Legionary story with Galactic Warlord." href="http://bassett-jones.com/galactic-warlord-the-last-legionary-book-1/">Galactic Warlord: The Last Legionary Book 1</a></li><li><a title="16 Jul 2011: The second book in the Last Legionary Quartet with Kriell battling to stop two planets from going to war." href="http://bassett-jones.com/deathwing-over-veynaa-the-last-legionary-book-2/">Deathwing Over Veynaa: The Last Legionary Book 2</a></li><li><a title="20 Aug 2011: Book three of The Last Legionary is a bit weak but reveals the leader of the Deathwing" href="http://bassett-jones.com/day-of-the-starwind-the-last-legionary-book-3/">Day of the Starwind: The Last Legionary Book 3</a></li></ul> 
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/galactic-warlord-the-last-legionary-book-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>San Francisco: disaster central?</title>
		<link>http://bassett-jones.com/san-francisco-disaster-central/</link>
		<comments>http://bassett-jones.com/san-francisco-disaster-central/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 15:37:23 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[disaster]]></category>
		<category><![CDATA[golden gate bridge]]></category>
		<category><![CDATA[movie]]></category>
		<category><![CDATA[san francisco]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=263</guid>
		<description><![CDATA[Is San Fran doooomed? Maybe movies have the answer.]]></description>
			<content:encoded><![CDATA[<p>I was watching The Core as San Francisco was half destroyed by a tear in the ozone layer that let in microwaves from space<em>*</em>, when it occured to me that San Fran and the Golden Gate Bridge in particular get boshed <em>way</em> more than average.</p>
<p><em>*</em> movie science alert!</p>
<p>This is an on-going list of film San Francisco disasters.</p>
<h3><a href="http://www.imdb.com/title/tt0298814/">The Core</a> (2003)</h3>
<p><strong>Doomed rating:</strong> <img class="three-star" src="/wp-content/themes/hugh/images/stars.png" alt="Three star out of five" /><br />
<img class="alignnone size-full wp-image-582" title="the-core" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/the-core-e1267915009502.jpg" alt="The Core" width="600" height="396" /></p>
<p>Half destroyed in microwave meltdown when the Earth&#8217;s core stops spinning and the planet is no longer shielded from electromagnetic radiation from the Sun. Motorists get sunburnt, car tyres melt, and the Bridge&#8217;s ropes twang.<br />
<span id="more-263"></span></p>
<h3><a href="http://www.imdb.com/title/tt0796366/">Star Trek</a> 2009</h3>
<p><strong>Doomed rating:</strong> <img class="two-star" src="/wp-content/themes/hugh/images/stars.png" alt="Two star out of five" /><br />
<img class="alignnone size-full wp-image-583" title="star trek" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/star-trek.jpg" alt="" width="600" height="259" /></p>
<p>A Romulan ship deploys its drilling rig directly over San Francisco, before beginning to drill a hole to the centre of the Earth. Luckily Spock shoots through the chain holding the rig and saves the planet from the same fate as Vulcan.</p>
<h3><a href="http://www.imdb.com/title/tt0892782/">Monsters vs Aliens</a> 2009</h3>
<p><strong>Doomed rating:</strong> <img class="two-star" src="/wp-content/themes/hugh/images/stars.png" alt="Two star out of five" /><br />
<img class="alignnone size-full wp-image-584" title="monsters vs aliens" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/monsters-vs-aliens.jpg" alt="" width="600" height="252" /></p>
<p>Evil alien overlord Gallaxhar starts his conquest of Earth by sending a giant robot to San Francisco. Luckily a bunch of monsters held by the US government stop it by fighting over the Golden Gate Bridge.</p>
<h3><a href="http://http://www.imdb.com/title/tt0438488/">Terminator Salvation</a> 2009</h3>
<p><strong>Doomed rating:</strong> <img class="three-star" src="/wp-content/themes/hugh/images/stars.png" alt="Three star out of five" /><br />
<img class="alignnone  size-full" title="t4" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/t4-e1267912700490.jpg" alt="Terminator 4" width="600" height="254" /></p>
<p>Skynet is holed up in -sigh- San Franciso and the only way John Conner can get there to do a rescue / blow stuff up is by crossing the heavily damaged post-apocalyptic bridge.</p>
<h3><a href="http://www.imdb.com/title/tt0457400/">Land of the lost</a> (2009)</h3>
<p><strong>Doomed rating:</strong> <img class="four-star" src="/wp-content/themes/hugh/images/stars.png" alt="Four star out of five" /><br />
<img class="alignnone size-full wp-image-585" title="land of the lost" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/land-of-the-lost.jpg" alt="" width="600" height="323" /><br />
Alternate universe? Check. Primate named Chaka? Check. World full of dinosaurs? Check check check. </p>
<h3><a href="http://www.Sega.com/Vanquish">Vanquish game</a> 2010</h3>
<p><strong>Doomed rating:</strong> <img class="five-star" src="/wp-content/themes/hugh/images/stars.png" alt="Five stars out of five" /><br />
<img src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/Vanquish.jpg" alt="" title="Vanquish" width="599" height="273" class="alignnone size-full wp-image-741" /><br />
In a near-future setting Russian forces take control of a US energy gathering satellite and use its harvested energy to completely wipe out San Francisco.</p>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/san-francisco-disaster-central/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Music mashing with YouTube, YQL and Open Data Tables</title>
		<link>http://bassett-jones.com/music-mashing-with-youtube-yql-and-open-data-tables/</link>
		<comments>http://bassett-jones.com/music-mashing-with-youtube-yql-and-open-data-tables/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 07:42:53 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[addbass]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[open data table]]></category>
		<category><![CDATA[top20]]></category>
		<category><![CDATA[youtube]]></category>
		<category><![CDATA[yql]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=479</guid>
		<description><![CDATA[BBC's top 20 chart + YouTube's music videos + YQL = AddBass top 20 excellence!]]></description>
			<content:encoded><![CDATA[<p>BBC&#8217;s <a href="http://www.bbc.co.uk/radio1/chart/singles/">top 20 chart</a> + YouTube&#8217;s <a href="http://www.youtube.com/channels?c=10">music videos</a> + <a href="http://developer.yahoo.com/yql/">YQL</a> = <a href="http://addbass.com/top20/">AddBass top 20</a> excellence!</p>
<p><a class="aligncenter" href="http://addbass.com/top20/"><img class="alignnone size-full wp-image-486" src="http://www.bassett-jones.com/wp-content/uploads/2010/01/addbass-top20.jpg" alt="" width="600" height="486" /></a></p>
<h2>The plan</h2>
<p>Grab the top 20 chart singles from the BBC web site, look up each song on YouTube and get the most popular matching videos. Show them in the chromeless player and set it so that they play automatically and users can skip ones they don&#8217;t like.</p>
<p><img class="aligncenter size-full wp-image-704" title="diagram" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/diagram.png" alt="" width="528" height="720" /></p>
<p><span id="more-479"></span><br />
<h2>Make it so</h2>
<h3>BBC chart data</h3>
<p>The BBC publish chart data at <a href="http://www.bbc.co.uk/radio1/chart/singles/">www.bbc.co.uk/radio1/chart/singles/</a> but this is not available in a raw data format such as XML or JSON. Luckily, Yahoo have introduced Yahoo! Query Language (YQL) that can <a href="http://www.wait-till-i.com/2009/11/16/using-yql-to-read-html-from-a-document-that-requires-post-data/">extract data from HTML</a> pages using an XPath expression. I needed the song title and artist and the BBC has these in the image <code>alt</code> attribute.</p>
<p><img class="alignnone size-full wp-image-686" title="bbc-chart-alt" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/bbc-chart-alt.png" alt="" width="601" height="256" /></p>
<p>The following YQL extracts the top 20 from the chart page:</p>
<p>[codesyntax lang="sql"]</p>
<pre>SELECT alt FROM html WHERE
url="http://www.bbc.co.uk/radio1/chart/singles/" and xpath="//li/img" LIMIT 20</pre>
<p>[/codesyntax]</p>
<p>The result from <a href="http://developer.yahoo.com/yql/console/?q=SELECT%20alt%20FROM%20html%20WHERE%0Aurl%3D%22http%3A%2F%2Fwww.bbc.co.uk%2Fradio1%2Fchart%2Fsingles%2F%22%20AND%20xpath%3D%22%2F%2Fli%2Fimg%22%20LIMIT%2020">trying it in the console</a>:</p>
<p><a href="http://developer.yahoo.com/yql/console/?q=SELECT%20alt%20FROM%20html%20WHERE%0Aurl%3D%22http%3A%2F%2Fwww.bbc.co.uk%2Fradio1%2Fchart%2Fsingles%2F%22%20AND%20xpath%3D%22%2F%2Fli%2Fimg%22%20LIMIT%2020"><img class="alignnone size-full wp-image-687" title="yql-bbc" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/yql-bbc.png" alt="" width="589" height="474" /></a></p>
<h3>YouTube data</h3>
<p>Now that I had the chart data, an option would be for the web browser to query YouTube for each song title and show the video. This would be a slow process and a bit of a pain as each request would be asynchronous and be returned in a different order to the one sent.</p>
<p>YQL supports the <a href="http://www.w3schools.com/sql/sql_in.asp">IN operator</a> and sub-queries for <a href="http://datatables.org/">Open Data Tables</a>. If I used a YouTube table, I could have all the processing done on Yahoo&#8217;s servers in one YQL query. There wasn&#8217;t a YouTube <a href="http://github.com/yql/yql-tables">community table</a> so I created an Open Table at <a href="http://addbass.com/youtube.xml">http://addbass.com/youtube.xml</a> with the following definition:</p>
<p>[codesyntax lang="xml"]</p>
<pre>&lt;table&gt;
  &lt;meta&gt;
    &lt;author&gt;Hugh Bassett-Jones&lt;/author&gt;
    &lt;documentationURL&gt;http://code.google.com/apis/youtube/2.0/reference.html&lt;/documentationURL&gt;
    &lt;sampleQuery&gt;select entry where q="jackson"&lt;/sampleQuery&gt;
  &lt;/meta&gt;
  &lt;bindings&gt;
    &lt;select itemPath="feed.entry" produces="XML"&gt;
      &lt;urls&gt;
        &lt;url env="all"&gt;http://gdata.youtube.com/feeds/api/videos&lt;/url&gt;
      &lt;/urls&gt;
      &lt;inputs&gt;
        &lt;key id="q" type="xs:string" paramType="query" required="true"/&gt;
        &lt;key id="format" type="xs:string" paramType="query" default="5"/&gt;
        &lt;key id="max-results" type="xs:string" paramType="query" default="1"/&gt;
        &lt;key id="start-index" type="xs:string" paramType="query" default="1"/&gt;
        &lt;key id="orderby" as="order" type="xs:string" paramType="query" default="relevance"/&gt;
      &lt;/inputs&gt;
    &lt;/select&gt;
  &lt;/bindings&gt;
&lt;/table&gt;</pre>
<p>[/codesyntax]</p>
<p>This data table is used in the YQL query</p>
<p>[codesyntax lang="sql"]</p>
<pre>USE "http://addbass.com/youtube.xml" AS vids;
SELECT id, title FROM vids WHERE order="viewCount" AND q IN (
  SELECT alt FROM html WHERE url="http://www.bbc.co.uk/radio1/chart/singles/" and xpath="//li/img" LIMIT 20)</pre>
<p>[/codesyntax]</p>
<p>The result from <a href="http://developer.yahoo.com/yql/console/?q=USE%20%22http%3A%2F%2Faddbass.com%2Fyoutube.xml%22%20AS%20vids%3B%0ASELECT%20id%2C%20title%20FROM%20vids%20WHERE%20order%3D%22viewCount%22%20AND%20q%20IN%20(%0A%20%20SELECT%20alt%20FROM%20html%20WHERE%20url%3D%22http%3A%2F%2Fwww.bbc.co.uk%2Fradio1%2Fchart%2Fsingles%2F%22%20and%20xpath%3D%22%2F%2Fli%2Fimg%22%20LIMIT%2020)">trying it in the console</a>:</p>
<p><a href="http://developer.yahoo.com/yql/console/?q=USE%20%22http%3A%2F%2Faddbass.com%2Fyoutube.xml%22%20AS%20vids%3B%0ASELECT%20id%2C%20title%20FROM%20vids%20WHERE%20order%3D%22viewCount%22%20AND%20q%20IN%20(%0A%20%20SELECT%20alt%20FROM%20html%20WHERE%20url%3D%22http%3A%2F%2Fwww.bbc.co.uk%2Fradio1%2Fchart%2Fsingles%2F%22%20and%20xpath%3D%22%2F%2Fli%2Fimg%22%20LIMIT%2020)"><img class="alignnone size-full wp-image-693" title="ytopen" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/ytopen.png" alt="" width="599" height="413" /></a></p>
<h3>Putting it all together with javascript: the breakdown</h3>
<p>Link to the latest versions of <a href="http://jquery.com/">jQuery</a> and <a href="http://code.google.com/p/swfobject/">swfobject</a> on <a href="http://code.google.com/apis/ajaxlibs/documentation/">Google&#8217;s CDN</a> and the <a href="http://addbass.com/top20/top.js">local js file</a> in the document <code>head</code>:</p>
<p>[codesyntax lang="xml"]</p>
<pre>&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"&gt;&lt;/script&gt;
&lt;script src="http://ajax.googleapis.com/ajax/libs/swfobject/2/swfobject.js"&gt;&lt;/script&gt;
&lt;script src="top.js"&gt;&lt;/script&gt;</pre>
<p>[/codesyntax]</p>
<p>Load the YouTube chromeless player before the closing document <code>body</code>:</p>
<p>[codesyntax lang="xml"]</p>
<pre>&lt;script type="text/javascript"&gt;
  swfobject.embedSWF('http://www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=player', 'video', '400', '300', '8', null, null, { allowScriptAccess: 'always', bgcolor: '#000000', wmode: 'transparent' }, { id: 'myplayer' });
&lt;/script&gt;;</pre>
<p>[/codesyntax]</p>
<p>In <code>top.js</code>, declare a global variable to hold video player details:</p>
<p>[codesyntax lang="javascript" lines_start="1"]</p>
<pre>var player;</pre>
<p>[/codesyntax]</p>
<p><code>onYouTubePlayerReady</code> is called when the player has loaded:</p>
<p>[codesyntax lang="javascript" lines_start="3"]</p>
<pre>function onYouTubePlayerReady(playerId) {

  // youtube player
  player = document.getElementById('myplayer');
  player.addEventListener('onStateChange', 'onPlayerStateChange');
  player.userEnded = false;
  player.currentVideoID = undefined;
  player.playvideo = function() {
    if(player.currentVideoID == undefined)
      player.currentVideoID = $('#tracks li:first').attr('id');

    $('#tracks li').removeClass('selected').find('span').remove();
    $('#' + player.currentVideoID).addClass('selected');
    player.loadVideoById(player.currentVideoID, 0);

    player.userEnded = false; // reset
    $('#loading').fadeOut('slow');
  };</pre>
<p>[/codesyntax]</p>
<p><code>player.updateRemaining()</code> gets the total number of seconds remaining and converts it to minutes and seconds. This function is called once a second.</p>
<p>[codesyntax lang="javascript" lines_start="21"]</p>
<pre>  player.updateRemaining = function () {
    var mins = Math.floor((player.getDuration() - player.getCurrentTime()) / 60);
    var secs = Math.floor((player.getDuration() - player.getCurrentTime()) % 60);
    secs = ('00' + secs).slice(-2); // leading zero
    $('#' + player.currentVideoID).find('span').remove();
    $('#' + player.currentVideoID).append('&lt;span&gt;'+ mins + ':' + secs + '&lt;/span&gt;');
  };

  setInterval(player.updateRemaining, 1000);</pre>
<p>[/codesyntax]</p>
<p>The control click events are wired up:</p>
<p>[codesyntax lang="javascript" lines_start="31"]</p>
<pre>    // wire up controls
    $('#previous').click(function() { player.userEnded = true; player.currentVideoID = $('#' + player.currentVideoID).prev().attr('id'); player.playvideo(); return false; });
    $('#back').click(function() { player.seekTo(player.getCurrentTime() - 30, true); return false; });
    $('#play').click(function() { player.userEnded = true; player.currentVideoID = player.currentVideoID; player.playvideo(); return false; });
    $('#stop').click(function() { player.userEnded = true; player.stopVideo(); return false; });
    $('#forward').click(function() { player.seekTo(player.getCurrentTime() + 30, true); return false; });
    $('#next').click(function() { player.userEnded = true; player.currentVideoID = $('#' + player.currentVideoID).next().attr('id'); player.playvideo(); return false; });</pre>
<p>[/codesyntax]</p>
<p><a href="http://api.jquery.com/jQuery.ajax/">jQuery&#8217;s ajax method</a> is used to get the YouTube chart data through <a href="http://developer.yahoo.com/yql/console/?q=USE%20%22http%3A%2F%2Faddbass.com%2Fyoutube.xml%22%20AS%20vids%3B%0ASELECT%20id%2C%20title%20FROM%20vids%20WHERE%20order%3D%22viewCount%22%20AND%20q%20IN%20(%0A%20%20SELECT%20alt%20FROM%20html%20WHERE%20url%3D%22http%3A%2F%2Fwww.bbc.co.uk%2Fradio1%2Fchart%2Fsingles%2F%22%20and%20xpath%3D%22%2F%2Fli%2Fimg%22%20LIMIT%2020)">the YQL query</a>. This allows the response to be cached on the browser making it speedy the next time the data is requested. As the data does not change often, <code>_maxage=86400</code> is specified to allow Yahoo to cache the results for 24 hours on their servers:</p>
<p>[codesyntax lang="javascript" lines_start="39"]</p>
<pre>  // go go go!
  $.ajax({
    url: 'http://query.yahooapis.com/v1/public/yql?q=USE%20%22http%3A%2F%2Faddbass.com%2Fyoutube.xml%22%20AS%20vids%3B%20SELECT%20id%2C%20title%20FROM%20vids%20WHERE%20order%3D%22viewCount%22%20AND%20q%20IN%20(SELECT%20alt%20FROM%20html%20WHERE%20%0Aurl%3D%22http%3A%2F%2Fwww.bbc.co.uk%2Fradio1%2Fchart%2Fsingles%2F%22%20and%20xpath%3D%22%2F%2Fli%2Fimg%22%20LIMIT%2020)%20%7C%20sanitize()&amp;format=json&amp;diagnostics=false&amp;_maxage=86400',
    cache: true,
    dataType: 'jsonp',
    jsonp: 'callback',
    jsonpCallback: 'yqlSuccess',
    success: function(data, text, request) { yqlSuccess(data); },
    error: function(request,status,errorThown) { yqlFail(status);}
  });</pre>
<p>[/codesyntax]</p>
<p>If the request fails, show an error message instead of the loading text:</p>
<p>[codesyntax lang="javascript" lines_start="50"]
<pre>
  function yqlFail(status) {
    $('#loading').addClass('fail').html('Oh noes! ' + status );
  }
</pre>
<p>[/codesyntax]</p>
<p>If the request is successful, build a list where each list item has the same ID as the music video on YouTube:</p>
<p>[codesyntax lang="javascript" lines_start="54"]
<pre>
  function yqlSuccess(data) {

    $('#tracks').empty();

    $.each(data.query.results.entry, function(i,item){
      var id = item.id.replace('http://gdata.youtube.com/feeds/api/videos/','');
      var title = item.title.content.indexOf(" - ") == -1 ? '&lt;b&gt;' + item.title.content + '&lt;/b&gt;' : '&lt;b&gt;' +     item.title.content.substring(0,item.title.content.indexOf(" - ")) + '&lt;/b&gt; '+ item.title.content.substring(item.title.content.indexOf(" - "));
      var $li = $('&lt;li id="' + id + '" &gt;&lt;a title="Play ' + item.title.content + '" href="http://www.youtube.com/watch#!v=' + id + '"&gt;' + title + ' &lt;/li&gt;&lt;/a&gt;');
      $li.click(function() { player.userEnded = true; player.currentVideoID = this.id; player.playvideo(); return false;  });
      $('#tracks').append($li);
    });

    player.playvideo();
  }

};
</pre>
<p>[/codesyntax]</p>
<p><code>onPlayerStateChang</code>e has been wired up on line 7 to fire every time there&#8217;s a change in state. This could be from the music video starting, ending, or a user skipping a track.</p>
<p>[codesyntax lang="javascript" lines_start="70"]
<pre>
function onPlayerStateChange(newState) {

  if (newState == 0 &amp;&amp; !player.userEnded) { // track finished
    player.currentVideoID = $('#' + player.currentVideoID).next().attr('id');
    player.playvideo();
  }

};
</pre>
<p>[/codesyntax]</p>
<p>View the complete listing at <a href="http://addbass.com/top20/top.js">http://addbass.com/top20/top.js</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/music-mashing-with-youtube-yql-and-open-data-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Category Clouds WordPress widget</title>
		<link>http://bassett-jones.com/category-clouds-wordpress-widget/</link>
		<comments>http://bassett-jones.com/category-clouds-wordpress-widget/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 17:10:47 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=628</guid>
		<description><![CDATA[A WordPress widget that displays selected categories as a tag cloud]]></description>
			<content:encoded><![CDATA[<p>Tag clouds are an effective way of conveying information about the popularity of key words where the size of the word corresponds to the importance of the word. It is also visually more interesting than a standard list and attracts attention.</p>
<p><a href="http://www.superfundaysout.com"><img class="alignnone size-full wp-image-652" title="example category cloud" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/example-category-cloud.png" alt="" width="588" height="173" /></a></p>
<p>On Super Fun Days Out we needed something similar to WordPress&#8217;s built in tag cloud using categories instead of tags. Fortunately WordPress has an active plugin community and developer Lee Kelleher had already written a <a href="http://leekelleher.com/wordpress/plugins/category-cloud-widget/">Category Cloud widget</a>. A couple of changes were needed to update it for multiple sidebars and to include or exclude specific categories.</p>
<p>Now hosted at WordPress.org at <a href="http://wordpress.org/extend/plugins/category-clouds-widget/">http://wordpress.org/extend/plugins/category-clouds-widget/</a>.</p>
<ul class="download">
<li class="zip"><span>Download widget</span><a href="http://downloads.wordpress.org/plugin/category-clouds-widget.2.0.zip&quot;">3k zip file</a></li>
<li class="source"><span>View source</span><a href="http://plugins.svn.wordpress.org/category-clouds-widget/tags/2.0/category_clouds.php">8k text file of PHP</a></li>
</ul>
<h3>New in version 2!</h3>
<p>Added [categoryclouds] shortcode to use the category cloud on a post or page.</p>
<p><span id="more-628"></span></p>
<h2>How to use</h2>
<ol>
<li>From the Administration Panels in your WordPress site, click on the Plugin tab</li>
<li>Search for <em>Category Clouds Widget</em></li>
<li>Activate the plugin</li>
<li>Add the widget to your sidebar through the Appearance &gt; Widgets menu</li>
</ol>
<h3>Shortcode examples</h3>
<ul>
<li><code>[categoryclouds]</code></li>
<li><code>[categoryclouds order="DESC"]</code></li>
<li><code>[categoryclouds min_size="8" max_size="24" unit="px"]</code></li>
</ul>
<h3>Widget options</h3>
<p><img class="alignleft size-full wp-image-631" style="margin-right: 20px;" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/category-clouds-admin.png" alt="Category Clouds plugin widget page" width="260" height="386" /></p>
<h4>Title</h4>
<p>This is the usual widget title that will appear in your theme&#8217;s sidebar.</p>
<h4>Category font size</h4>
<p>The minimum and maximum font sizes you want the cloud to show and their unit of measurement. For example, <code>min: 50 max: 200 unit: %</code> would show the smallest category at half your normal text size and the largest at double.</p>
<h4>Order by</h4>
<p>Choose between ordering by number of posts in a category, or alphabetically by category name.</p>
<h4>Show by</h4>
<p>Either the category with the most posts first or the category with the fewest posts first if using <code>Order by: count</code>, or A-Z or Z-A if <code>Order by: name</code>.</p>
<h4>Minimum number of posts</h4>
<p>Categories where the total number of posts is less than this number will not be shown. Set to <code>1</code> to hide empty categories.</p>
<h4>Comma separated category IDs</h4>
<p>If you only want to include specific categories, enter their IDs in a list. If you want to <em>exclude</em> a category, enter its ID as a negative number. Leave blank for all categories.</p>
<p>Example: <code>1,4,9,36,37,38</code><br />
This will create a category cloud with only categories <code>1,4,9,36,37,38</code> in it.</p>
<p>Example: <code>-1,-3</code><br />
This will create a category cloud hiding categories <code>1</code> and <code>3</code>.</p>
<h2>Code breakdown</h2>
<p>This section isn&#8217;t required to use Category Clouds, but discusses how it works.</p>
<p>The plugin comprises three main sections: using the widget class, getting the data from the database, and setting the font size.</p>
<h4>Using the <code>WP_Widget</code> class</h4>
<p>Category Clouds extends the <a href="http://codex.wordpress.org/Widgets_API"><code>WP_Widget</code></a> widget class which already has the plumbing to work with multiple sidebars, display configuration options and save those options to the database. Justin Tadlock has a useful <a href="http://justintadlock.com/archives/2009/05/26/the-complete-guide-to-creating-widgets-in-wordpress-28">introduction guide</a> on how to develop a basic widget using WordPress 2.8+.</p>
<h4>Getting the data from the database</h4>
<p>All the heavy lifting for database access for this widget is by using the WordPress query <code><a href="http://codex.wordpress.org/Function_Reference/get_categories">get_categories</a></code>, which means most of the work is performed on the database server, not on the PHP server. This accepts a number of parameters and returns a collection of categories. Category Clouds conditionally builds the query parameters based on the saved options:</p>
<p>[codesyntax lang="php"]<br />
&lt;?php</p>
<pre>// build query
$query = 'show_option_all=1&amp;style=cloud&amp;show_count=1&amp;use_desc_for_title=0&amp;hierarchical=0';
$query .= '&amp;order=' . $instance['order'];
$query .= '&amp;orderby=' . $instance['orderby'];
if($instance['min_count'] &gt; 0) { $query .= '&amp;hide_empty=1';}</pre>
<p>?&gt;<br />
[/codesyntax]</p>
<p>Specific categories to include or exclude are added to the query as needed by checking the saved comma separated list of ID numbers:</p>
<p>[codesyntax lang="php"]<br />
&lt;?php</p>
<pre>// specified categories
$inc_cats = array(); $exc_cats = array();
foreach (explode("," ,$instance['cats_inc_exc']) as $spec_cat) {
  if ($spec_cat &lt; 0) { $exc_cats[] = abs($spec_cat); }
  elseif ( $spec_cat &gt; 0) { $inc_cats[] = abs($spec_cat); }
}
if(count($inc_cats) &gt; 0) { $query .= '&amp;include=' . implode(",", $inc_cats); }
if(count($exc_cats) &gt; 0) { $query .= '&amp;exclude=' . implode(",", $exc_cats); }</pre>
<p>?&gt;<br />
[/codesyntax]</p>
<p>Finally, each category is checked to make sure it has the required number of posts:</p>
<p>[codesyntax lang="php"]<br />
&lt;?php</p>
<pre>// ensure minimum post count
$cats = get_categories($query);
foreach ($cats as $cat) {
  $catlink = get_category_link( $cat-&gt;cat_ID );
  $catname = $cat-&gt;cat_name;
  $count = $cat-&gt;category_count;
  if ($count &gt;= $instance['min_count'])  {
    $counts{$catname} = $count;
    $catlinks{$catname} = $catlink;
  }
}</pre>
<p>?&gt;<br />
[/codesyntax]</p>
<h4>Outputting the cloud</h4>
<p>[codesyntax lang="php"]<br />
&lt;?php</p>
<pre>// font size calculation
$spread = max($counts) - min($counts);
if ($spread &lt;= 0) { $spread = 1; };
$fontspread = $instance['max_size'] - $instance['min_size'];
$fontstep = $spread / $fontspread;
if ($fontspread &lt;= 0) { $fontspread = 1; }

echo '&lt;p class="catcloud"&gt;';

foreach ($counts as $catname =&gt; $count) {
  $catlink = $catlinks{$catname};
  echo "n&lt;a href="$catlink" title="view $count posts for $catname" style="font-size:".
    ($instance['min_size'] + ceil($count/$fontstep)).$instance['unit'].""&gt;$catname&lt;/a&gt; ";
}

echo '&lt;/p&gt;' . $after_widget;</pre>
<p>?&gt;<br />
[/codesyntax] </p>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/category-clouds-wordpress-widget/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>BBC Micro Chuckie Egg Level 4 Guide</title>
		<link>http://bassett-jones.com/bbc-micro-chuckie-egg-level-4-guide/</link>
		<comments>http://bassett-jones.com/bbc-micro-chuckie-egg-level-4-guide/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 15:00:02 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[bbc micro]]></category>
		<category><![CDATA[chuckie egg]]></category>
		<category><![CDATA[level 4]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=599</guid>
		<description><![CDATA[Chuckie Egg level 4: lift, gaps and eggs.]]></description>
			<content:encoded><![CDATA[<p>This is my guide to each Chuckie Egg level:</p>
<ol>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-1-guide">Level 1</a></li>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-2-guide">Level 2</a></li>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-3-guide">Level 3</a></li>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-4-guide">Level 4</a></li>
</ol>
<h2>Level 4</h2>
<ul>
<li>Difficulty: <img class="two-star" src="/wp-content/themes/hugh/images/stars.png" alt="Two star out of five difficulty" /></li>
<li>Best time remaining: <strong>826</strong></li>
<li>Number of hens: <strong>4</strong></li>
<li>Speed of hens: <strong>slow</strong></li>
</ul>
<h3>Level 4 strategy</h3>
<p>With a lift and a gap in the bottom platform, this level combines the features introduced in <a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-2-guide">level 2</a> and <a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-3-guide">level 3</a> and adds some tricky jumps to the mix. In particular, the top left jump nearest the caged bird can cause you to fall through if you jump from the nearest platform.</p>
<p>Avoiding hens is still fairly easy where the central ladder can be used to escape.</p>
<p><a href="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/chuckie-egg-level-4.png"><img class="alignnone size-full wp-image-600" title="chuckie-egg-level-4" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/chuckie-egg-level-4.png" alt="" width="600" height="481" /></a></p>
<p><span id="more-599"></span></p>
<h3>Level 4 video play through</h3>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="473" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/v5IEyJgawbg&amp;hl=en_GB&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="600" height="473" src="http://www.youtube-nocookie.com/v/v5IEyJgawbg&amp;hl=en_GB&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/bbc-micro-chuckie-egg-level-4-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BBC Micro Chuckie Egg Level 3 Guide</title>
		<link>http://bassett-jones.com/bbc-micro-chuckie-egg-level-3-guide/</link>
		<comments>http://bassett-jones.com/bbc-micro-chuckie-egg-level-3-guide/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 14:29:36 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[bbc micro]]></category>
		<category><![CDATA[chuckie egg]]></category>
		<category><![CDATA[level 3]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=595</guid>
		<description><![CDATA[Chuckie Egg level 3 introduces the lift!]]></description>
			<content:encoded><![CDATA[<p>This is my guide to each Chuckie Egg level:</p>
<ol>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-1-guide">Level 1</a></li>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-2-guide">Level 2</a></li>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-3-guide">Level 3</a></li>
</ol>
<h2>Level 3</h2>
<ul>
<li>Difficulty: <img class="two-star" src="/wp-content/themes/hugh/images/stars.png" alt="Two star out of five difficulty" /></li>
<li>Best time remaining: <strong>888</strong></li>
<li>Number of hens: <strong>3</strong></li>
<li>Speed of hens: <strong>slow</strong></li>
</ul>
<h3>Level 3 strategy</h3>
<p>This level introduces the lift. This is three moving platforms, moving vertically up the screen. The platforms are not evenly spaced, with two appearing closer together. Missing the lift and falling down the gap between the lift and the platform will result in a life lost.</p>
<p>The level design makes it easy to avoid the hens, but good timing is needed to complete it quickly.</p>
<p><a href="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/chuckie-egg-level-3.png"><img class="alignnone size-full wp-image-596" title="chuckie-egg-level-3" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/chuckie-egg-level-3.png" alt="" width="600" height="480" /></a></p>
<p><span id="more-595"></span></p>
<h3>Level 3 video play through</h3>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="473" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/82lHfmCc-vk&amp;hl=en_GB&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="600" height="473" src="http://www.youtube-nocookie.com/v/82lHfmCc-vk&amp;hl=en_GB&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/bbc-micro-chuckie-egg-level-3-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BBC Micro Chuckie Egg Level 2 Guide</title>
		<link>http://bassett-jones.com/bbc-micro-chuckie-egg-level-2-guide/</link>
		<comments>http://bassett-jones.com/bbc-micro-chuckie-egg-level-2-guide/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 11:46:10 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[bbc micro]]></category>
		<category><![CDATA[chuckie egg]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[playthough]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=590</guid>
		<description><![CDATA[Level 2 complete guide to BBC Micro Chuckie Egg with video play through]]></description>
			<content:encoded><![CDATA[<p>This is my guide to each Chuckie Egg level:</p>
<ol>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-1-guide">Level 1</a></li>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-2-guide">Level 2</a></li>
</ol>
<h2>Level 2</h2>
<ul>
<li>Difficulty: <img class="one-star" src="/wp-content/themes/hugh/images/stars.png" alt="One star out of five difficulty" /></li>
<li>Best time remaining: <strong>831</strong></li>
<li>Number of hens: <strong>3</strong></li>
<li>Speed of hens: <strong>slow</strong><strong> </strong></li>
</ul>
<h3>Level 2 strategy</h3>
<p>The second level has a large number of ladders connecting the platforms. Although there is one more hen compared to level one, there are many jump-able gaps to aid escape and turn back hens.</p>
<p>The single gap on the bottom platform has a gap and falling through results in an instant life lost.</p>
<p><a href="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/chuckie-egg-level-2.png"><img class="alignnone size-full wp-image-591" title="chuckie-egg-level-2" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/chuckie-egg-level-2.png" alt="" width="600" height="479" /></a></p>
<p><span id="more-590"></span></p>
<h3>Level 2 video play through</h3>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="473" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/d0nJBY71wEY&amp;hl=en_GB&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="600" height="473" src="http://www.youtube-nocookie.com/v/d0nJBY71wEY&amp;hl=en_GB&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/bbc-micro-chuckie-egg-level-2-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BBC Micro Chuckie Egg Level 1 Guide</title>
		<link>http://bassett-jones.com/bbc-micro-chuckie-egg-level-1-guide/</link>
		<comments>http://bassett-jones.com/bbc-micro-chuckie-egg-level-1-guide/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 22:39:27 +0000</pubDate>
		<dc:creator>hugh</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[bbc micro]]></category>
		<category><![CDATA[chuckie egg]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[playthough]]></category>

		<guid isPermaLink="false">http://www.bassett-jones.com/?p=536</guid>
		<description><![CDATA[Level 1 Complete guide to BBC Micro Chuckie Egg with video playthrough]]></description>
			<content:encoded><![CDATA[<p>I was a massive fan of <a href="http://en.wikipedia.org/wiki/Chuckie_Eg">Chuckie Egg</a> on the BBC Micro when I was about 10 years old. There have been a <a href="http://www.gameheads.co.uk/games/retro/chuckie-egg-flash/579">couple</a> <a href="http://www.twinbee.org/hob/play.php?snap=chuckie">of</a> <a href="http://marklomas.net/ch-egg/dhtmlch-egg/playch-egg.htm">ports</a>, but it wasn&#8217;t until 2009 that Mark Lomas released the <a href="http://www.marklomas.net/ch-egg/native/native.htm">ultimate version</a> built on an BBC emulator for the PC.</p>
<p>This is my guide to each Chuckie Egg level:</p>
<ol>
<li><a href="http://www.bassett-jones.com/bbc-micro-chuckie-egg-level-1-guide">Level 1</a></li>
</ol>
<h2>Level 1</h2>
<ul>
<li>Difficulty: <img class="one-star" src="/wp-content/themes/hugh/images/stars.png" alt="One star out of five difficulty" /></li>
<li>Best score: <strong>2,260</strong></li>
<li>Number of hens: <strong>2</strong></li>
<li>Speed of hens: <strong>slow</strong><strong> </strong></li>
</ul>
<h3>Level 1 strategy</h3>
<p>The first level is dominated by a central ladder running through all five platforms. Two hens start in the top left of the level, moving slowly towards the bottom. They can sometimes get in the way on the central ladder, but several nearby platforms can be used to wait them out.</p>
<p>The bottom two platforms have plenty of ladders to avoid getting trapped and to practice running and jumping.</p>
<p><img class="alignnone size-full wp-image-542" src="http://bassett-jones.com.109-109-131-235.predns.server18.ourlinuxnetwork.com/wp-content/uploads/chuckie-egg-level-1.png" alt="Strategy path for completing level 1 of Chuckie Egg" width="600" /><br />
<br/><br />
<span id="more-536"></span></p>
<h3>Level 1 video play through</h3>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="473" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/rEiY2HBihTI&amp;hl=en_GB&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="600" height="473" src="http://www.youtube-nocookie.com/v/rEiY2HBihTI&amp;hl=en_GB&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bassett-jones.com/bbc-micro-chuckie-egg-level-1-guide/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

