<?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>ZenDraL.NET</title>
	<atom:link href="http://www.zendral.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zendral.net</link>
	<description>Programming and Design</description>
	<lastBuildDate>Mon, 08 Feb 2010 01:55:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Algorithms for Rotating the Centers in a Rubenking</title>
		<link>http://www.zendral.net/2010/02/07/algorithms-for-rotating-the-centers-in-a-rubenking/</link>
		<comments>http://www.zendral.net/2010/02/07/algorithms-for-rotating-the-centers-in-a-rubenking/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 00:56:38 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=530</guid>
		<description><![CDATA[I recently made myself a Rubenking cube with stickers from CubeSmith and after solving most of the cube I got stuck with centers that were not aligned properly. Below are the algorithms I found for aligning the centers and completing my solution.
Note that these algorithms will work for picture cubes.


Case 1: Two centers with 90 [...]]]></description>
			<content:encoded><![CDATA[<p>I recently made myself a Rubenking cube with stickers from CubeSmith and after solving most of the cube I got stuck with centers that were not aligned properly. Below are the algorithms I found for aligning the centers and completing my solution.</p>
<p>Note that these algorithms will work for picture cubes.</p>
<ul>
<li>
<strong>Case 1:</strong> Two centers with 90 degree rotations, hold on the piece that requires a clockwise rotation on the left and the piece that requires a counter-clockwise rotation on the up face and perform the following algorithm:</p>
<p><strong style="font-size:1.5em">MR&#8217; MU&#8217; MR U MR&#8217; MU MR U&#8217;</strong>
</li>
<li>
<strong>Case 2:</strong> One center requires 180 degree rotation, hold on top face and perform the following algorithm:</p>
<p><strong style="font-size:1.5em">(U R L U2 R&#8217; L&#8217;)2</strong>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2010/02/07/algorithms-for-rotating-the-centers-in-a-rubenking/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rubik&#8217;s Cube &#8211; 3&#215;3x3 Algorithm Inverter</title>
		<link>http://www.zendral.net/2010/02/02/rubiks-cube-3x3x3-algorithm-inverter/</link>
		<comments>http://www.zendral.net/2010/02/02/rubiks-cube-3x3x3-algorithm-inverter/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 08:49:43 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Rubik's Cube]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=496</guid>
		<description><![CDATA[ When trying to work on an OLL or PLL algorithm it is often useful to have the inverse of the algorithm so that you can easily setup the situation you want to try. Use the algorithm inverter below to obtain an inverted algorithm.
 This inverter uses Superset notation which you can find defined in [...]]]></description>
			<content:encoded><![CDATA[<p> When trying to work on an OLL or PLL algorithm it is often useful to have the inverse of the algorithm so that you can easily setup the situation you want to try. Use the algorithm inverter below to obtain an inverted algorithm.</p>
<p> This inverter uses Superset notation which you can find defined in detail <a href="http://www.randelshofer.ch/cubetwister/doc/notations/superset_eng_3x3.html"> here!</a></p>
<p> There is support for the following symbols: 	R  	U  	F  	L  	D  	B	TR 	TU 	TF 	TL 	TD 	TB	CR 	CU 	CF 	CL 	CD 	CB    MR 	MU 	MF 	ML 	MD 	MB</p>
<p>
There <strong>IS</strong> suppport for inverting any of the symbols above one at a time.<br />
<strong>Valid inversion</strong>	 R&#8217;	U&#8217;	F&#8217;<br />
<strong>Invalid inversion</strong>	 (R	 U	 F)&#8217;
</p>
<p>
<strong>ALL</strong> moves must be seperated by a space.<br />
<strong>Valid input </strong>	 R&#8217;	U&#8217;	F&#8217;<br />
<strong>Invalid input</strong>	 R&#8217;U'F&#8217;
</p>
<p> This inverter is very basic there is no support for inversion of groups (i.e., (F R U)&#8217;), commutators (i.e., [a,b]), repitition, or any other advanced Superset constructs.</p>
<p><script type="text/javascript" src="/applets/AlgorithmInverter.js"> </script></p>
<style type="text/css">
	#outputBox {
		margin: 25px;
		margin-top:0px;
		padding:50px;
		border: dashed black 1px;
		background-color: #4F5869;
		color: #CCCCCC;
		font-size:1.75em;
		font-weight:bold;
	}
	.error { color: Red; }
</style>
<p><div id="outputBox">
		Enter the algorithm to invert in the text box below and hit the &#8216;Invert Algorithm&#8217; button.
	</div>
<div style="margin:25px">
<form onsubmit="invertAlgorithm(); return false">
<input type="text" id="inputBox" style="width:550px;"> </input>
<input type="submit" value="Invert Algorithm" > </input>
</p></form>
</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2010/02/02/rubiks-cube-3x3x3-algorithm-inverter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Counter-Strike 1.6 Scripts</title>
		<link>http://www.zendral.net/2010/01/15/counter-strike-1-6-scripts/</link>
		<comments>http://www.zendral.net/2010/01/15/counter-strike-1-6-scripts/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 22:09:57 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=432</guid>
		<description><![CDATA[
One of the nicest things about the Counter-Strike series of games is the ability to customize your interface using scripts.
For those unaware of how to use scripts there are basically three kinds of statements:
 Variable assignment 
Alone these variables are not so useful; however, used in one of the following statements they can be much [...]]]></description>
			<content:encoded><![CDATA[<p>
One of the nicest things about the Counter-Strike series of games is the ability to customize your interface using scripts.</p>
<p>For those unaware of how to use scripts there are basically three kinds of statements:</p>
<h2> Variable assignment </h2>
<p>Alone these variables are not so useful; however, used in one of the following statements they can be much more powerful.</p>
<div class="codecolorer-container cstrike vibrant" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="cstrike codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #990099; font-weight: bold;">fps_max</span> <span style="color: #cc0000;">&quot;72&quot;</span><br />
volume <span style="color: #cc0000;">&quot;0.2&quot;</span></div></td></tr></tbody></table></div>
<h2> Bind statments </h2>
<p>You can associate a statement with a key by using the <code class="codecolorer cstrike vibrant"><span class="cstrike"><span style="color: #990099; font-weight: bold;">bind</span></span></code> command.<br />
<br/><br />
The following command will bind a statement to the F12 key which will mute the volume.</p>
<div class="codecolorer-container cstrike vibrant" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="cstrike codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #990099; font-weight: bold;">bind</span> F11 <span style="color: #cc0000;">&quot;volume 0.0&quot;</span></div></td></tr></tbody></table></div>
<h2> Alias statements </h2>
<p>This is the closest that you&#8217;re going to get to a function. As long as you can accept the idea that this is a sequence of commands delimited by a &#8216;;&#8217; symbol that takes no parameters and cannot read variables.</p>
<div class="codecolorer-container cstrike vibrant" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="cstrike codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">volume <span style="color: #cc0000;">&quot;0.2&quot;</span> <span style="color: #ff6600;">// Setting default volume.</span><br />
<span style="color: #990099; font-weight: bold;">alias</span> volume_mute <span style="color: #cc0000;">&quot;volume 0.0&quot;</span><br />
<span style="color: #990099; font-weight: bold;">alias</span> volume_restore <span style="color: #cc0000;">&quot;volume 0.2&quot;</span><br />
<span style="color: #990099; font-weight: bold;">bind</span> F11 <span style="color: #cc0000;">&quot;volume_mute&quot;</span><br />
<span style="color: #990099; font-weight: bold;">bind</span> F12 <span style="color: #cc0000;">&quot;volume_restore&quot;</span></div></td></tr></tbody></table></div>
<p>With these two commands we can now mute the volume in the console by typing <code class="codecolorer cstrike vibrant"><span class="cstrike">volume_mute</span></code> and similarly we can restore the volume using <code class="codecolorer cstrike vibrant"><span class="cstrike">volume_restore</span></code><br />
<br/><br />
There is a second kind of alias that you can implement which involves prepending the alias name with either the &#8216;+&#8217; or &#8216;-&#8217; operators. An example of this is <code class="codecolorer cstrike vibrant"><span class="cstrike">+attack</span></code> which is provided by the game to allow you to fire.  Binding <code class="codecolorer cstrike vibrant"><span class="cstrike">+attack</span></code> to a key causes that key to fire while depressed and cease firing when released.<br />
<br/><br />
Lets say we only want the volume to be muted while we hold down the F11 key. We can define an alias as following and bind it to F11.</p>
<div class="codecolorer-container cstrike vibrant" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="cstrike codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #990099; font-weight: bold;">alias</span> +temp_mute <span style="color: #cc0000;">&quot;volume 0.0&quot;</span><br />
<span style="color: #990099; font-weight: bold;">alias</span> -temp_mute <span style="color: #cc0000;">&quot;volume 0.2&quot;</span><br />
<span style="color: #990099; font-weight: bold;">bind</span> F11 <span style="color: #cc0000;">&quot;+temp_mute&quot;</span></div></td></tr></tbody></table></div>
<p>Alternatively, if we desire to have the bind act as a toggle then we have to introduce a method of keeping track of state into our aliases. This is done by defining a third alias and then dynamically setting this alias depending on state.</p>
<div class="codecolorer-container cstrike vibrant" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="cstrike codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">volume <span style="color: #cc0000;">&quot;0.2&quot;</span> <span style="color: #ff6600;">// Setting default volume.</span><br />
<span style="color: #990099; font-weight: bold;">alias</span> volume_toggle <span style="color: #cc0000;">&quot;volume_mute&quot;</span><br />
<span style="color: #990099; font-weight: bold;">alias</span> volume_mute <span style="color: #cc0000;">&quot;alias volume_toggle volume_restore; volume 0.0&quot;</span><br />
<span style="color: #990099; font-weight: bold;">alias</span> volume_restore <span style="color: #cc0000;">&quot;alias volume_toggle volume_mute; volume 0.2&quot;</span></div></td></tr></tbody></table></div>
<p>On line 1 we ensure that the volume is enabled.<br />
On line 2 we set the default action for the mute toggle to mute the volume (which is the opposite of the current state.)<br />
Lines 3 and 4 define an alias to perform an action and set the toggle to perform the opposite action.<br />
Now when we hit F12 it toggles the ingame volume.</p>
<h2> Setting up CS 1.6 to automatically use your scripts on every load </h2>
<p>If you place your scripts in a file called &#8216;userconfig.cfg&#8217; and place the file in your &#8216;cstrike&#8217; directory your scripts will be executed on every run.</p>
<p>Alternatively, you can run scripts through the console by using <code class="codecolorer cstrike vibrant"><span class="cstrike"><span style="color: #990099; font-weight: bold;">exec</span> scriptname.<span style="color: #9900cc;">ext</span></span></code>.</p>
<p><a href="http://www.zendral.net/2010/01/15/counter-strike-1-6-scripts/2/"><strong>You can find the scripts that I use and my configuration here.<strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2010/01/15/counter-strike-1-6-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F2L Algorithms</title>
		<link>http://www.zendral.net/2010/01/14/f2l-algorithms/</link>
		<comments>http://www.zendral.net/2010/01/14/f2l-algorithms/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 04:51:02 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Rubik's Cube]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=314</guid>
		<description><![CDATA[It is possible to solve the first layer corners and the second layer pieces at the same time. I do this intuitively (meaning I dont&#8217; actually memorize these algorithms.) Yet here they are&#8230; enjoy. 
There are three cases which I cover here.

Bottom cross colour on Up face. 
Bottom cross colour on Right face. 
Bottom cross [...]]]></description>
			<content:encoded><![CDATA[<p>It is possible to solve the first layer corners and the second layer pieces at the same time. I do this intuitively (meaning I dont&#8217; actually memorize these algorithms.) Yet here they are&#8230; enjoy. </p>
<p>There are three cases which I cover here.</p>
<ul>
<li><a style="font-weight:bold"  href="http://www.zendral.net/2010/01/14/f2l-algorithms/2/">Bottom cross colour on Up face. </a></li>
<li><a style="font-weight:bold"  href="http://www.zendral.net/2010/01/14/f2l-algorithms/3/">Bottom cross colour on Right face. </a></li>
<li><a style="font-weight:bold"  href="http://www.zendral.net/2010/01/14/f2l-algorithms/4/">Bottom cross colour on Front face. </a></li>
</ul>
<p> I do not cover the case for when the bottom cross colour is on the bottom face. For the most part I just pop this piece on to the top layer and solve with one of the above sets of algorithms. There are two exceptions:</p>
<ul>
<li> When the piece is correctly oriented I perform the algorithm from the beginner tutorial to place the edge from the top layer.</li>
<li> When moving the piece to the top layer creates a solved corner/edge pair I just place it where it belongs.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2010/01/14/f2l-algorithms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rubik&#8217;s Cube &#8211; 2 Look PLL</title>
		<link>http://www.zendral.net/2010/01/11/rubiks-cube-2-look-pll/</link>
		<comments>http://www.zendral.net/2010/01/11/rubiks-cube-2-look-pll/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 05:59:07 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Rubik's Cube]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=272</guid>
		<description><![CDATA[2 Look PLL

If you've followed my beginner tutorial then at this point you permute the last layer by first solving the corners and then solving the center edges. This should take you at most 4 looks. We're going to cut that down to two by introducing some new algorithms so that we can solve the [...]]]></description>
			<content:encoded><![CDATA[<h2>2 Look PLL</h2>
<p>
If you've followed my beginner tutorial then at this point you permute the last layer by first solving the corners and then solving the center edges. This should take you at most 4 looks. We're going to cut that down to two by introducing some new algorithms so that we can solve the corners in one algorithm as well as the center edges in one other algorithm.
</p>
<p><a style="font-weight:bold"  href="http://www.zendral.net/2010/01/11/rubiks-cube-2-look-pll/2/">Click here to see the algorithms.</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2010/01/11/rubiks-cube-2-look-pll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rubik&#8217;s Cube &#8211; 2 Look OLL Tutorial</title>
		<link>http://www.zendral.net/2010/01/08/rubiks-cube-2-look-oll-tutorial/</link>
		<comments>http://www.zendral.net/2010/01/08/rubiks-cube-2-look-oll-tutorial/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:11:27 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Rubik's Cube]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=216</guid>
		<description><![CDATA[2 Look OLL

If you've followed my beginner tutorial then at this point you can solve the cross on the Up face
using one algorithm and then repeat another algorithm  up to 4 times (if you're not solving the cross with one algorithm check out my beginner tutorial to learn how to do it in one [...]]]></description>
			<content:encoded><![CDATA[<h2>2 Look OLL</h2>
<p>
If you've followed my beginner tutorial then at this point you can solve the cross on the Up face
using one algorithm and then repeat another algorithm  up to 4 times (if you're not solving the cross with one algorithm check out <a href="http://www.zendral.net/2009/12/29/rubiks-cube-beginner-tutorial/3/">my beginner tutorial</a> to learn how to do it in one step.)
</p><p>
Each of these times you must orient the cube before you perform the algorithm. 
</p><p>
Using the following algorithms you look once to determine how to solve the top cross, then you look again to solve the corners.
You can reduce the time necessary to complete your OLL by memorizing the following algorithms.
</p>
<p><a style="font-weight:bold"  href="http://www.zendral.net/2010/01/08/rubiks-cube-2-look-oll-tutorial/2/">Click here to see the algorithms.</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2010/01/08/rubiks-cube-2-look-oll-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rubik&#8217;s Cube &#8211; Beginner Tutorial</title>
		<link>http://www.zendral.net/2009/12/29/rubiks-cube-beginner-tutorial/</link>
		<comments>http://www.zendral.net/2009/12/29/rubiks-cube-beginner-tutorial/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 03:14:38 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Rubik's Cube]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=42</guid>
		<description><![CDATA[
   This is a beginners tutorial about solving the Rubik's cube. While learning the Rubik's cube I encountered many different beginner solutions. Parts of these solutions remained relevant as I learned more advanced methods; however, some of these algorithms are no longer useful to me. I have endevoured to write this tutorial using [...]]]></description>
			<content:encoded><![CDATA[<p>
   This is a beginners tutorial about solving the Rubik's cube. While learning the Rubik's cube I encountered many different beginner solutions. Parts of these solutions remained relevant as I learned more advanced methods; however, some of these algorithms are no longer useful to me. I have endevoured to write this tutorial using algorithms that will remain of use even as you progress and learn faster methods for solving the cube.  
</p>
   <ul>
   <li> This tutorial uses Superset notation which you can find defined in detail <a href="http://www.randelshofer.ch/cubetwister/doc/notations/superset_eng_3x3.html"> here!</a></li>
   <li> <a href="http://www.zendral.net/2009/12/29/rubiks-cube-beginner-tutorial/2/">First and second layer.</a></li>
   <li> <a href="http://www.zendral.net/2009/12/29/rubiks-cube-beginner-tutorial/3/">Orienting the last layer.</a></li>
   <li> <a href="http://www.zendral.net/2009/12/29/rubiks-cube-beginner-tutorial/4/">Permuting the last layer..</a></li>   
   </ul>

]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2009/12/29/rubiks-cube-beginner-tutorial/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rubik&#8217;s Cube Links</title>
		<link>http://www.zendral.net/2009/12/01/rubiks-cube-links/</link>
		<comments>http://www.zendral.net/2009/12/01/rubiks-cube-links/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 01:59:55 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Rubik's Cube]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=20</guid>
		<description><![CDATA[
I recently picked up a Rubik's cube and started learning algorithms to solve it.

I've only been at it for a week now but I've gotten my solution down to an average of 2:30 1:30 60 60 seconds with a best time of 45 seconds.

My target is 30 seconds but I'm sure that's going to take [...]]]></description>
			<content:encoded><![CDATA[<p>
I recently picked up a Rubik's cube and started learning algorithms to solve it.

I've only been at it for a week now but I've gotten my solution down to an average of <del datetime="2009-12-16T22:53:17+00:00">2:30</del><del datetime="2010-01-12T07:21:36+00:00"> 1:30</del> <del datetime="2010-01-15T05:42:37+00:00">60</del> 60 seconds with a best time of 45 seconds.

My target is 30 seconds but I'm sure that's going to take a little while.

Here are some useful resources I found along the way:
<ul>
	<li><a href="http://www.rubiks.com/World/~/media/Files/Solution_book_LOW_RES.ashx">Rubiks.com Solution Book</a> - A tutorial for beginners straight form the horse's mouth.</li>
	<li><a href="http://www.cubestation.co.uk/cs2/index.php?page=3x3x3/3x3x3">Dan @ Cubestation.com</a> - A different beginner tutorial and some more advanced tutorials including information on speedcubing.</li>
	<li><a href="http://www.cubetimer.com/">CubeTimer.com</a> - A great online timer for seeing how fast you are.</li>
	<li><a href="http://sourceforge.net/projects/jnetcube/">JNetCube @ Sourceforge</a> - An opensource cube timer application written in Java.</li>
         <li><a href="http://www.speedcubing.com/chris/4-solution.html">Chris @ SpeedCubing.com</a> - a good tutorial for the 4x4x4 </li>
         <li><a href="http://www.cubeinfo.co.cc/">CubeInfo.co.cc</a> - A great blog with lots of video tutorials. </li>
         <li><a href="http://www.blueknightcubing.com"> BlueKnightCubing.com </a> - BlueKnight's cubing site with a good intermediate and advanced information. </li>
<li><a href="http://www.cubefreak.net/Fridrich/F2L.html">CubeFreak.net </a> - Nice F2L Tutorial. </li>
<li><a href="http://www.bigcubes.com/5x5x5/lastedges.html"> BigCubes.com </a> - 5x5x5 Parity Algorithms. </li>
</ul>

<h3>Here's a cube to play with:</h3>
<div style="margin-left: 160px;">
<script type="text/javascript">

var whichApplet = "RubikPlayer";	 

var defaultColorTable = "0x8c000f,0x00732f,0x003373,0xff4600,0xf8f8f8,0xffd200,0x0";	

var defaultLeft  = "2,2,2,2,2,2,2,2,2";
var defaultRight = "1,1,1,1,1,1,1,1,1";
var defaultUp    = "5,5,5,5,5,5,5,5,5";
var defaultDown  = "4,4,4,4,4,4,4,4,4";
var defaultFront = "0,0,0,0,0,0,0,0,0";
var defaultBack  = "3,3,3,3,3,3,3,3,3";	

function writeCube(left, right, up, down, front, back, script, initScript) 
{	
	if (left == undefined)  left  = defaultLeft;
	if (right == undefined) right = defaultRight;
	if (up == undefined)    up    = defaultUp;
	if (down == undefined)  down  = defaultDown;
	if (front == undefined) front = defaultFront;
	if (back == undefined)  back  = defaultBack;		
	document.write('<applet archive="RubikPlayer.jar" codebase = "/applets" ');
	document.write('code="'+whichApplet+'" width="400" height="400" mayscript="mayscript">');
			document.write('<param name="scriptLanguage" value="HarrisENG"/>');
	document.writeln('<param name="backgroundColor" value="#CCCCCC"/>');
	document.writeln('<param name="codebase_lookup" value="false"/>');
	document.writeln('<param name="classloader_cache" value="false"/>');
	document.writeln('<param name="java_arguments" value="-Djnlp.packEnabled=true"/>');
	document.writeln('<param name="boxborder" value="false"/>');
	document.writeln('<param name="centerimage" value="true"/>');
	document.writeln('<param name="colorTable" value="'+defaultColorTable+'" />');			
	document.writeln('<param name="stickersLeft" value="'+left+'"/>');
	document.writeln('<param name="stickersRight" value="'+right+'"/>');
	document.writeln('<param name="stickersUp" value="'+up+'"/>');
	document.writeln('<param name="stickersDown" value="'+down+'"/>');
	document.writeln('<param name="stickersFront" value="'+front+'"/>');
	document.writeln('<param name="stickersBack" value="'+back+'"/>');
	document.writeln('<param name="scriptProgress" value="0" />');		
	if (script != undefined) document.writeln('<param name="script" value="'+script+'" />');
	if (initScript != undefined) document.writeln('<param name="initScript" value="'+initScript+'"/>');		
	setAlphaBeta();
}	

function endCube() 
{
      document.write('</applet>');
}

function setAlphaBeta(alpha, beta)
{
	    if (alpha == undefined) { alpha = -25; }
		if (beta == undefined) { beta = 45; }
		document.write('<param name="alpha" value="'+alpha+'"/>');
		document.write('<param name="beta" value="'+beta+'"/>');
}

function setResetEnabled(value)
{
       document.write('<param name="showResetButton" value="'+value+'"/>');
}	   

writeCube();
endCube();
</script>
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2009/12/01/rubiks-cube-links/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MARE Suggestions</title>
		<link>http://www.zendral.net/2009/10/16/mare-suggestions/</link>
		<comments>http://www.zendral.net/2009/10/16/mare-suggestions/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 01:51:27 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[MARE]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=7</guid>
		<description><![CDATA[This is just a post to keep track of suggestion for MARE.
]]></description>
			<content:encoded><![CDATA[<p>This is just a post to keep track of suggestion for MARE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2009/10/16/mare-suggestions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Back Online</title>
		<link>http://www.zendral.net/2009/10/09/hello-world/</link>
		<comments>http://www.zendral.net/2009/10/09/hello-world/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 04:49:41 +0000</pubDate>
		<dc:creator>ZenDraL</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.zendral.net/?p=1</guid>
		<description><![CDATA[I was getting some free ASP.NET hosting from a buddy&#8230; thanks Alex it was great while it lasted.
However, that no longer being an option I&#8217;m going with the budget PHP wordpress site (thanks duckie).
Hopefully, I&#8217;ll get some free time soon and update the site with at least the latest version of MARE.
Till then, stay frosty.
]]></description>
			<content:encoded><![CDATA[<p>I was getting some free ASP.NET hosting from a buddy&#8230; thanks Alex it was great while it lasted.</p>
<p>However, that no longer being an option I&#8217;m going with the budget PHP wordpress site (thanks duckie).</p>
<p>Hopefully, I&#8217;ll get some free time soon and update the site with at least the latest version of MARE.</p>
<p>Till then, stay frosty.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zendral.net/2009/10/09/hello-world/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
